@tricoteuses/assemblee 0.28.0 → 0.28.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/lib/api.js +1 -1
  2. package/lib/api.mjs +1 -1
  3. package/lib/bugs/acteur-00010/plugin.test.js +45 -5
  4. package/lib/bugs/acteur-00010/plugin.test.mjs +1 -1
  5. package/lib/bugs/acteur-00010.js +29 -9
  6. package/lib/bugs/acteur-00010.mjs +1 -1
  7. package/lib/bugs/agenda-00002/plugin.test.js +46 -6
  8. package/lib/bugs/agenda-00002/plugin.test.mjs +1 -1
  9. package/lib/bugs/agenda-00002.js +29 -13
  10. package/lib/bugs/agenda-00002.mjs +1 -1
  11. package/lib/bugs/agenda-00008/plugin.test.js +44 -4
  12. package/lib/bugs/agenda-00008/plugin.test.mjs +1 -1
  13. package/lib/bugs/agenda-00008.js +29 -9
  14. package/lib/bugs/agenda-00008.mjs +1 -1
  15. package/lib/bugs/agenda-00011/plugin.test.js +50 -12
  16. package/lib/bugs/agenda-00011/plugin.test.mjs +1 -1
  17. package/lib/bugs/agenda-00011.js +39 -19
  18. package/lib/bugs/agenda-00011.mjs +1 -1
  19. package/lib/bugs.js +51 -31
  20. package/lib/bugs.mjs +1 -1
  21. package/lib/cleaners/actes_legislatifs.js +1 -1
  22. package/lib/cleaners/actes_legislatifs.mjs +1 -1
  23. package/lib/cleaners/acteurs.js +1 -1
  24. package/lib/cleaners/acteurs.mjs +1 -1
  25. package/lib/cleaners/amendements.js +1 -1
  26. package/lib/cleaners/amendements.mjs +1 -1
  27. package/lib/cleaners/documents.js +13 -1
  28. package/lib/cleaners/documents.mjs +13 -1
  29. package/lib/cleaners/dossiers_legislatifs.js +1 -1
  30. package/lib/cleaners/dossiers_legislatifs.mjs +1 -1
  31. package/lib/cleaners/index.js +1 -1
  32. package/lib/cleaners/index.mjs +1 -1
  33. package/lib/cleaners/organes.js +1 -1
  34. package/lib/cleaners/organes.mjs +1 -1
  35. package/lib/cleaners/reunions.js +1 -1
  36. package/lib/cleaners/reunions.mjs +1 -1
  37. package/lib/cleaners/scrutins.js +1 -1
  38. package/lib/cleaners/scrutins.mjs +1 -1
  39. package/lib/cleaners/xml.js +1 -1
  40. package/lib/cleaners/xml.mjs +1 -1
  41. package/lib/datasets.js +1 -1
  42. package/lib/datasets.mjs +1 -1
  43. package/lib/dates.js +1 -1
  44. package/lib/dates.mjs +1 -1
  45. package/lib/dossiers_legislatifs.js +1 -1
  46. package/lib/dossiers_legislatifs.mjs +1 -1
  47. package/lib/file_systems.js +25 -5
  48. package/lib/file_systems.mjs +1 -1
  49. package/lib/git.js +1 -1
  50. package/lib/git.mjs +1 -1
  51. package/lib/index.d.ts +1 -1
  52. package/lib/index.js +1 -1
  53. package/lib/index.mjs +1 -1
  54. package/lib/inserters.js +1 -1
  55. package/lib/inserters.mjs +1 -1
  56. package/lib/loaders.js +1 -1
  57. package/lib/loaders.mjs +1 -1
  58. package/lib/organes.js +1 -1
  59. package/lib/organes.mjs +1 -1
  60. package/lib/parsers/documents.js +27 -5
  61. package/lib/parsers/documents.mjs +1 -1
  62. package/lib/parsers/index.js +1 -1
  63. package/lib/parsers/index.mjs +1 -1
  64. package/lib/parsers/recherche_amendements.js +27 -7
  65. package/lib/parsers/recherche_amendements.mjs +1 -1
  66. package/lib/raw_types/acteurs_et_organes.d.ts +2 -1
  67. package/lib/raw_types/acteurs_et_organes.js +3 -2
  68. package/lib/raw_types/acteurs_et_organes.mjs +3 -2
  69. package/lib/raw_types/agendas.js +1 -1
  70. package/lib/raw_types/agendas.mjs +1 -1
  71. package/lib/raw_types/amendements.js +1 -1
  72. package/lib/raw_types/amendements.mjs +1 -1
  73. package/lib/raw_types/dossiers_legislatifs.d.ts +4 -0
  74. package/lib/raw_types/dossiers_legislatifs.js +10 -1
  75. package/lib/raw_types/dossiers_legislatifs.mjs +10 -1
  76. package/lib/raw_types/scrutins.js +1 -1
  77. package/lib/raw_types/scrutins.mjs +1 -1
  78. package/lib/scripts/bugs_helper.js +39 -19
  79. package/lib/scripts/bugs_helper.mjs +1 -1
  80. package/lib/scripts/clean_data.js +1 -1
  81. package/lib/scripts/clean_data.mjs +1 -1
  82. package/lib/scripts/clean_reorganized_data.js +1 -1
  83. package/lib/scripts/clean_reorganized_data.mjs +1 -1
  84. package/lib/scripts/diff_amendements.js +1 -1
  85. package/lib/scripts/diff_amendements.mjs +1 -1
  86. package/lib/scripts/document_dossiers_legislatifs.js +5 -3
  87. package/lib/scripts/document_dossiers_legislatifs.mjs +1 -1
  88. package/lib/scripts/get_today_reunions.js +1 -1
  89. package/lib/scripts/get_today_reunions.mjs +1 -1
  90. package/lib/scripts/merge_scrutins.js +1 -1
  91. package/lib/scripts/merge_scrutins.mjs +1 -1
  92. package/lib/scripts/parse_textes_lois.js +1 -1
  93. package/lib/scripts/parse_textes_lois.mjs +1 -1
  94. package/lib/scripts/raw_types_from_amendements.js +28 -4
  95. package/lib/scripts/raw_types_from_amendements.mjs +1 -1
  96. package/lib/scripts/reorganize_data.js +1 -1
  97. package/lib/scripts/reorganize_data.mjs +1 -1
  98. package/lib/scripts/retrieve_deputes_photos.js +28 -4
  99. package/lib/scripts/retrieve_deputes_photos.mjs +1 -1
  100. package/lib/scripts/retrieve_documents.js +35 -15
  101. package/lib/scripts/retrieve_documents.mjs +1 -1
  102. package/lib/scripts/retrieve_open_data.js +30 -6
  103. package/lib/scripts/retrieve_open_data.mjs +1 -1
  104. package/lib/scripts/retrieve_pending_amendments.js +26 -4
  105. package/lib/scripts/retrieve_pending_amendments.mjs +1 -1
  106. package/lib/scripts/retrieve_senateurs_photos.js +28 -4
  107. package/lib/scripts/retrieve_senateurs_photos.mjs +1 -1
  108. package/lib/scripts/retrieve_textes_lois.js +22 -4
  109. package/lib/scripts/retrieve_textes_lois.mjs +1 -1
  110. package/lib/scripts/test_load.js +1 -1
  111. package/lib/scripts/test_load.mjs +1 -1
  112. package/lib/scripts/test_load_big_files.js +1 -1
  113. package/lib/scripts/test_load_big_files.mjs +1 -1
  114. package/lib/scripts/validate_json.js +27 -7
  115. package/lib/scripts/validate_json.mjs +1 -1
  116. package/lib/shared_types/codes_actes.js +1 -1
  117. package/lib/shared_types/codes_actes.mjs +1 -1
  118. package/lib/strings.js +1 -1
  119. package/lib/strings.mjs +1 -1
  120. package/lib/types/acteurs_et_organes.js +1 -1
  121. package/lib/types/acteurs_et_organes.mjs +1 -1
  122. package/lib/types/agendas.js +1 -1
  123. package/lib/types/agendas.mjs +1 -1
  124. package/lib/types/amendements.js +1 -1
  125. package/lib/types/amendements.mjs +1 -1
  126. package/lib/types/dossiers_legislatifs.d.ts +1 -0
  127. package/lib/types/dossiers_legislatifs.js +5 -1
  128. package/lib/types/dossiers_legislatifs.mjs +5 -1
  129. package/lib/types/legislatures.js +1 -1
  130. package/lib/types/legislatures.mjs +1 -1
  131. package/lib/types/scrutins.js +1 -1
  132. package/lib/types/scrutins.mjs +1 -1
  133. package/lib/urls.js +1 -1
  134. package/lib/urls.mjs +1 -1
  135. package/package.json +6 -6
@@ -430,4 +430,4 @@ export async function retrieveTexteLoiParsed(fetch, assembleeUrl) {
430
430
 
431
431
  return parseTexteLoi(assembleeUrl, page);
432
432
  }
433
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXJzL2RvY3VtZW50cy50cyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJKU0RPTSIsInBhcnNlVGV4dGVMb2kiLCJhc3NlbWJsZWVVcmwiLCJwYWdlIiwicGFnZVNlZ21lbnRzIiwic3BsaXQiLCJzdHJpY3RFcXVhbCIsImxlbmd0aCIsImh0bWwiLCJ0cmltIiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwic3Vic3RyaW5nIiwid2luZG93IiwiZG9jdW1lbnQiLCJjaGlsZHJlbiIsImh0bWxFbGVtZW50IiwiYm9keUVsZW1lbnQiLCJkaXZFbGVtZW50IiwidGFnTmFtZSIsIm5ld0RpdkVsZW1lbnQiLCJpbnNlcnRCZWZvcmUiLCJjcmVhdGVFbGVtZW50IiwiZGl2Q2hpbGQiLCJnZXRBdHRyaWJ1dGUiLCJhcHBlbmRDaGlsZCIsImNsb3NlIiwiZXJyb3IiLCJjb2RlIiwibWVzc2FnZSIsImJvZHlDaGlsZCIsImFsaW5lYUVsZW1lbnQiLCJpc011bHRpTGluZXNIZWFkZXIiLCJsZXZlbCIsImxldmVscyIsImxpbmVFbGVtZW50cyIsIm5leHRQYXJlbnRTdGF0ZSIsInBhcmFncmFwaENoaWxkIiwicGFyYWdyYXBoRWxlbWVudCIsInN0YXRlIiwic3ViQWxpbmVhRWxlbWVudCIsInN1YmRpdmlzaW9ucyIsInN1YmRpdmlzaW9uQWxpbmVhc0h0bWwiLCJzdWJkaXZpc2lvbkFsaW5lYXNUZXh0Iiwic3ViZGl2aXNpb25IZWFkZXJzSHRtbCIsInN1YmRpdmlzaW9uSGVhZGVyc1RleHQiLCJ1bmRlZmluZWQiLCJoZWFkZXJUZXh0IiwidGV4dENvbnRlbnQiLCJuYW1lQ29tcHV0ZWQiLCJub3JtYWxpemUiLCJyZXBsYWNlIiwibmFtZVVwcGVyIiwidG9VcHBlckNhc2UiLCJuZXh0TGV2ZWwiLCJtYXRjaCIsImNvbnNvbGUiLCJsb2ciLCJwb3AiLCJwdXNoIiwiYWxpbmVhcyIsImhlYWRlcnMiLCJpZCIsInJlbGF0aXZlTGV2ZWwiLCJ0ZXh0IiwibmV4dEVsZW1lbnRTaWJsaW5nIiwiaW5jbHVkZXMiLCJsaW5lVGV4dCIsIm1hcCIsImVsZW1lbnQiLCJqb2luIiwibGluZUh0bWwiLCJvdXRlckhUTUwiLCJjbGFzc05hbWUiLCJ1cmwiLCJyZXRyaWV2ZVRleHRlTG9pUGFyc2VkIiwiZmV0Y2giLCJyZXNwb25zZSIsIm9rIiwic3RhdHVzIiwic3RhdHVzVGV4dCJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBUCxNQUFtQixRQUFuQjtBQUNBLFNBQVNDLEtBQVQsUUFBc0IsT0FBdEI7QUFFQSxPQUFPLFNBQVNDLGFBQVQsQ0FBdUJDLFlBQXZCLEVBQTZDQyxJQUE3QyxFQUEyRDtBQUNoRTtBQUNBLFFBQU1DLFlBQVksR0FBR0QsSUFBSSxDQUFDRSxLQUFMLENBQVcsVUFBWCxDQUFyQjtBQUNBTixFQUFBQSxNQUFNLENBQUNPLFdBQVAsQ0FBbUJGLFlBQVksQ0FBQ0csTUFBaEMsRUFBd0MsQ0FBeEMsRUFBMkNKLElBQTNDO0FBQ0EsTUFBSUssSUFBSSxHQUFHSixZQUFZLENBQUMsQ0FBRCxDQUFaLENBQWdCSyxJQUFoQixFQUFYO0FBQ0FWLEVBQUFBLE1BQU0sQ0FBQ1MsSUFBSSxDQUFDRSxVQUFMLENBQWdCLE1BQWhCLENBQUQsQ0FBTjtBQUNBWCxFQUFBQSxNQUFNLENBQUNTLElBQUksQ0FBQ0csUUFBTCxDQUFjLFFBQWQsQ0FBRCxDQUFOO0FBQ0FILEVBQUFBLElBQUksR0FBSSxRQUFPQSxJQUFJLENBQUNJLFNBQUwsQ0FBZSxDQUFmLEVBQWtCSixJQUFJLENBQUNELE1BQUwsR0FBYyxDQUFoQyxDQUFtQyxTQUFsRCxDQVBnRSxDQVNoRTs7QUFDQSxRQUFNO0FBQUVNLElBQUFBO0FBQUYsTUFBYSxJQUFJYixLQUFKLENBQVVRLElBQVYsQ0FBbkI7QUFDQSxRQUFNO0FBQUVNLElBQUFBO0FBQUYsTUFBZUQsTUFBckI7QUFDQWQsRUFBQUEsTUFBTSxDQUFDTyxXQUFQLENBQW1CUSxRQUFRLENBQUNDLFFBQVQsQ0FBa0JSLE1BQXJDLEVBQTZDLENBQTdD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b0MsUUFBQUEsS0FBSyxHQUFHLHNCQUFSO0FBQ0E7O0FBQ0Y7QUFDRSxjQUFPLHFCQUFvQkEsS0FBTSxFQUFqQztBQTVVSjtBQThVRDs7QUFFRDFCLEVBQUFBLE1BQU0sQ0FBQ2EsS0FBUCxHQTlZZ0UsQ0E4WWpEOztBQUVmLFNBQU87QUFDTEMsSUFBQUEsS0FBSyxFQUFFLElBREY7QUFFTG5CLElBQUFBLElBRks7QUFHTEwsSUFBQUEsSUFISztBQUlMc0MsSUFBQUEsWUFKSztBQUtMaUMsSUFBQUEsR0FBRyxFQUFFeEU7QUFMQSxHQUFQO0FBT0Q7QUFFRCxPQUFPLGVBQWV5RSxzQkFBZixDQUNMQyxLQURLLEVBS0wxRSxZQUxLLEVBTUw7QUFDQSxRQUFNMkUsUUFBUSxHQUFHLE1BQU1ELEtBQUssQ0FBQzFFLFlBQUQsQ0FBNUI7QUFDQSxRQUFNQyxJQUFJLEdBQUcsTUFBTTBFLFFBQVEsQ0FBQ2IsSUFBVCxFQUFuQjs7QUFDQSxNQUFJLENBQUNhLFFBQVEsQ0FBQ0MsRUFBZCxFQUFrQjtBQUNoQixXQUFPO0FBQ0xuRCxNQUFBQSxLQUFLLEVBQUU7QUFBRUMsUUFBQUEsSUFBSSxFQUFFaUQsUUFBUSxDQUFDRSxNQUFqQjtBQUF5QmxELFFBQUFBLE9BQU8sRUFBRWdELFFBQVEsQ0FBQ0c7QUFBM0MsT0FERjtBQUVMN0UsTUFBQUE7QUFGSyxLQUFQO0FBSUQ7O0FBQ0QsU0FBT0YsYUFBYSxDQUFDQyxZQUFELEVBQWVDLElBQWYsQ0FBcEI7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgeyBKU0RPTSB9IGZyb20gXCJqc2RvbVwiXG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVRleHRlTG9pKGFzc2VtYmxlZVVybDogc3RyaW5nLCBwYWdlOiBzdHJpbmcpIHtcbiAgLy8gUmVwYWlyIEhUTUwuXG4gIGNvbnN0IHBhZ2VTZWdtZW50cyA9IHBhZ2Uuc3BsaXQoXCI8L3N0eWxlPlwiKVxuICBhc3NlcnQuc3RyaWN0RXF1YWwocGFnZVNlZ21lbnRzLmxlbmd0aCwgMiwgcGFnZSlcbiAgbGV0IGh0bWwgPSBwYWdlU2VnbWVudHNbMV0udHJpbSgpXG4gIGFzc2VydChodG1sLnN0YXJ0c1dpdGgoXCI8ZGl2XCIpKVxuICBhc3NlcnQoaHRtbC5lbmRzV2l0aChcIjwvZGl2PlwiKSlcbiAgaHRtbCA9IGA8aHRtbCR7aHRtbC5zdWJzdHJpbmcoNCwgaHRtbC5sZW5ndGggLSA2KX08L2h0bWw+YFxuXG4gIC8vIEV4dHJhY3Qgc3ViZGl2aXNpb25zIGZyb20gSFRNTC5cbiAgY29uc3QgeyB3aW5kb3cgfSA9IG5ldyBKU0RPTShodG1sKVxuICBjb25zdCB7IGRvY3VtZW50IH0gPSB3aW5kb3dcbiAgYXNzZXJ0LnN0cmljdEVxdWFsKGRvY3VtZW50LmNoaWxkcmVuLmxlbmd0aCwgMSlcbiAgY29uc3QgaHRtbEVsZW1lbnQgPSBkb2N1bWVudC5jaGlsZHJlblswXVxuICBhc3NlcnQuc3RyaWN0RXF1YWwoaHRtbEVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoLCAyKVxuICBjb25zdCBib2R5RWxlbWVudCA9IGh0bWxFbGVtZW50LmNoaWxkcmVuWzFdXG4gIGlmIChhc3NlbWJsZWVVcmwgPT09IFwiaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wNjc1LmFzcFwiKSB7XG4gICAgLy8gUmVwYWlyIGRvY3VtZW50LlxuICAgIGFzc2VydC5zdHJpY3RFcXVhbChib2R5RWxlbWVudC5jaGlsZHJlbi5sZW5ndGgsIDEpXG4gICAgY29uc3QgZGl2RWxlbWVudCA9IGJvZHlFbGVtZW50LmNoaWxkcmVuWzBdXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRpdkVsZW1lbnQudGFnTmFtZSwgXCJESVZcIilcbiAgICBjb25zdCBuZXdEaXZFbGVtZW50ID0gYm9keUVsZW1lbnQuaW5zZXJ0QmVmb3JlKFxuICAgICAgZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSxcbiAgICAgIGRpdkVsZW1lbnQsXG4gICAgKVxuICAgIGJvZHlFbGVtZW50Lmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYnJcIiksIGRpdkVsZW1lbnQpXG4gICAgZm9yIChjb25zdCBkaXZDaGlsZCBvZiBbLi4uZGl2RWxlbWVudC5jaGlsZHJlbl0pIHtcbiAgICAgIGlmIChkaXZDaGlsZC5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKSA9PT0gXCJhOUFydGljbGVOdW1cIikge1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgbmV3RGl2RWxlbWVudC5hcHBlbmRDaGlsZChkaXZDaGlsZClcbiAgICB9XG4gIH1cbiAgaWYgKGJvZHlFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA8IDMpIHtcbiAgICAvLyBPY2N1cnMgaW4gaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wMzI2LmFzcC5cbiAgICB3aW5kb3cuY2xvc2UoKSAvLyBGcmVlIG1lbW9yeS5cbiAgICByZXR1cm4ge1xuICAgICAgZXJyb3I6IHsgY29kZTogLTEsIG1lc3NhZ2U6IFwiVGV4dGUgZGUgbG9pIHNhbnMgY29udGVudVwiIH0sXG4gICAgICBodG1sLFxuICAgICAgcGFnZSxcbiAgICB9XG4gIH1cbiAgYXNzZXJ0LnN0cmljdEVxdWFsKGJvZHlFbGVtZW50LmNoaWxkcmVuWzBdLnRhZ05hbWUsIFwiRElWXCIpXG4gIC8vIEZpcnN0IGNoaWxkIGlzIGEgRElWIGRlc2NyaWJpbmcgdGhlIGRvY3VtZW50IChBc3NlbWJsw6llJ3MgaGVhZGVyKS4gU2tpcCBpdCBmb3Igbm93LlxuICBsZXQgYm9keUNoaWxkID0gYm9keUVsZW1lbnQuY2hpbGRyZW5bMV1cbiAgYXNzZXJ0LnN0cmljdEVxdWFsKGJvZHlDaGlsZC50YWdOYW1lLCBcIkJSXCIpXG4gIGxldCBhbGluZWFFbGVtZW50OiBFbGVtZW50IHwgbnVsbCA9IG51bGxcbiAgbGV0IGlzTXVsdGlMaW5lc0hlYWRlcjogYm9vbGVhbiA9IGZhbHNlXG4gIGxldCBsZXZlbDogbnVtYmVyIHwgbnVsbCA9IG51bGxcbiAgbGV0IGxldmVsczogbnVtYmVyW10gPSBbXVxuICBsZXQgbGluZUVsZW1lbnRzOiBFbGVtZW50W10gfCBudWxsID0gbnVsbFxuICBsZXQgbmV4dFBhcmVudFN0YXRlID0gbnVsbFxuICBsZXQgcGFyYWdyYXBoQ2hpbGQ6IEVsZW1lbnQgfCBudWxsID0gbnVsbFxuICBsZXQgcGFyYWdyYXBoRWxlbWVudDogRWxlbWVudCB8IG51bGwgPSBudWxsXG4gIGxldCBzdGF0ZTogc3RyaW5nIHwgbnVsbCA9IFwibmV4dEJvZHlDaGlsZFwiXG4gIGxldCBzdWJBbGluZWFFbGVtZW50OiBFbGVtZW50IHwgbnVsbCA9IG51bGxcbiAgY29uc3Qgc3ViZGl2aXNpb25zID0gW11cbiAgbGV0IHN1YmRpdmlzaW9uQWxpbmVhc0h0bWw6IHN0cmluZ1tdIHwgbnVsbCA9IG51bGxcbiAgbGV0IHN1YmRpdmlzaW9uQWxpbmVhc1RleHQ6IHN0cmluZ1tdIHwgbnVsbCA9IG51bGxcbiAgbGV0IHN1YmRpdmlzaW9uSGVhZGVyc0h0bWw6IHN0cmluZ1tdIHwgbnVsbCA9IG51bGxcbiAgbGV0IHN1YmRpdmlzaW9uSGVhZGVyc1RleHQ6IHN0cmluZ1tdIHwgbnVsbCA9IG51bGxcbiAgd2hpbGUgKHN0YXRlICE9PSBudWxsKSB7XG4gICAgc3dpdGNoIChzdGF0ZSkge1xuICAgICAgY2FzZSBcImFsaW5lYUVsZW1lbnRcIjpcbiAgICAgICAgc3dpdGNoIChhbGluZWFFbGVtZW50IS50YWdOYW1lKSB7XG4gICAgICAgICAgY2FzZSBcIkRJVlwiOlxuICAgICAgICAgICAgc3RhdGUgPSBcImZpcnN0U3ViQWxpbmVhRWxlbWVudFwiXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgXCJINFwiOlxuICAgICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgICAgbmV4dFBhcmVudFN0YXRlID0gXCJuZXh0QWxpbmVhRWxlbWVudFwiXG4gICAgICAgICAgICBwYXJhZ3JhcGhFbGVtZW50ID0gYWxpbmVhRWxlbWVudFxuICAgICAgICAgICAgc3RhdGUgPSBcImZpcnN0UGFyYWdyYXBoQ2hpbGRcIlxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlIFwiUFwiOlxuICAgICAgICAgICAgbmV4dFBhcmVudFN0YXRlID0gXCJuZXh0QWxpbmVhRWxlbWVudFwiXG4gICAgICAgICAgICBwYXJhZ3JhcGhFbGVtZW50ID0gYWxpbmVhRWxlbWVudFxuICAgICAgICAgICAgc3RhdGUgPSBcImZpcnN0UGFyYWdyYXBoQ2hpbGRcIlxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlIFwiT0xcIjpcbiAgICAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICAgIHN0YXRlID0gXCJuZXh0QWxpbmVhRWxlbWVudFwiXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgXCJUQUJMRVwiOlxuICAgICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgICAgc3RhdGUgPSBcIm5leHRBbGluZWFFbGVtZW50XCJcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgICAgICAgY29kZTogLTIsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogYFVuZXhwZWN0ZWQgdGFnIG5hbWUgZm9yIGFsaW5lYSBlbGVtZW50OiAke1xuICAgICAgICAgICAgICAgICAgYWxpbmVhRWxlbWVudCEudGFnTmFtZVxuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBodG1sLFxuICAgICAgICAgICAgICBwYWdlLFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwiZmlyc3RBbGluZWFFbGVtZW50XCI6XG4gICAgICAgIGFsaW5lYUVsZW1lbnQgPSBib2R5Q2hpbGQuY2hpbGRyZW5bMF1cbiAgICAgICAgaWYgKGFsaW5lYUVsZW1lbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIE5vIGFsaW5lYSBpbiBjdXJyZW50IGJvZHlDaGlsZDogZ28gdG8gbmV4dCBib2R5Q2hpbGQuXG4gICAgICAgICAgc3RhdGUgPSBcIm5leHRCb2R5Q2hpbGRcIlxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlID0gXCJhbGluZWFFbGVtZW50XCJcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcImZpcnN0UGFyYWdyYXBoQ2hpbGRcIjpcbiAgICAgICAgcGFyYWdyYXBoQ2hpbGQgPSBwYXJhZ3JhcGhFbGVtZW50IS5jaGlsZHJlblswXVxuICAgICAgICBpZiAocGFyYWdyYXBoQ2hpbGQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIE5vIGNoaWxkIGluIGN1cnJlbnQgcGFyYWdyYXBoOiBnbyB0byBuZXh0IHBhcmVudCBlbGVtZW50LlxuICAgICAgICAgIHN0YXRlID0gbmV4dFBhcmVudFN0YXRlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgaGVhZGVyVGV4dCA9IHBhcmFncmFwaEVsZW1lbnQhLnRleHRDb250ZW50XG4gICAgICAgICAgY29uc3QgbmFtZUNvbXB1dGVkID0gKGhlYWRlclRleHQgfHwgXCJcIilcbiAgICAgICAgICAgIC5ub3JtYWxpemUoXCJORkRcIilcbiAgICAgICAgICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCBcIlwiKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcKG5vdXZlYXVcXCkvLCBcIlwiKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcKFBvdXIgY29vcmRpbmF0aW9uXFwpLywgXCJcIilcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXChTdXBwcmltw6lzP1xcKS8sIFwiXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvwqAvZywgXCIgXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvW1xcLSwu4oCmXS9nLCBcIlwiKVxuICAgICAgICAgICAgLnRyaW0oKVxuICAgICAgICAgICAgLnJlcGxhY2UoLyB7MSx9L2csIFwiX1wiKVxuICAgICAgICAgIGNvbnN0IG5hbWVVcHBlciA9IG5hbWVDb21wdXRlZC50b1VwcGVyQ2FzZSgpXG4gICAgICAgICAgaWYgKG5hbWVVcHBlciA9PT0gXCJcIikge1xuICAgICAgICAgICAgLy8gT2NjdXJzIGluOlxuICAgICAgICAgICAgLy8gKiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzA0NDUuYXNwXG4gICAgICAgICAgICAvLyAqIGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8xNS90ZXh0ZXMvMDYyNi5hc3BcbiAgICAgICAgICAgIC8vIFNraXAgcGFyYWdyYXBoLlxuICAgICAgICAgICAgc3RhdGUgPSBuZXh0UGFyZW50U3RhdGVcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IG5leHRMZXZlbCA9XG4gICAgICAgICAgICBuYW1lVXBwZXIubWF0Y2goL14oUkFQUE9SVF8pP0FOTkVYRShffCQpLykgIT09IG51bGwgfHxcbiAgICAgICAgICAgIG5hbWVVcHBlci5tYXRjaCgvXkVUQVRfLykgIT09IG51bGxcbiAgICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICAgIDogbmFtZVVwcGVyLm1hdGNoKC9eVE9NRV8vKSAhPT0gbnVsbFxuICAgICAgICAgICAgICA/IDFcbiAgICAgICAgICAgICAgOiBuYW1lVXBwZXIubWF0Y2goL15QQVJUSUVfLykgIT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICBuYW1lVXBwZXIubWF0Y2goXG4gICAgICAgICAgICAgICAgICAvXihQUkVNSUVSRXxTRUNPTkRFfERFVVhJRU1FfFRST0lTSUVNRXxRVUFUUklFTUUpX1BBUlRJRShffCQpLyxcbiAgICAgICAgICAgICAgICApICE9PSBudWxsXG4gICAgICAgICAgICAgID8gMlxuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXkxJVlJFXy8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gM1xuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXlRJVFJFXy8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gNFxuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXlNPVVNUSVRSRV8vKSAhPT0gbnVsbFxuICAgICAgICAgICAgICA/IDVcbiAgICAgICAgICAgICAgOiBuYW1lVXBwZXIubWF0Y2goL15DSEFQSVRSRV8vKSAhPT0gbnVsbFxuICAgICAgICAgICAgICA/IDZcbiAgICAgICAgICAgICAgOiBuYW1lVXBwZXIubWF0Y2goL15TRUNUSU9OXy8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gN1xuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXlNPVVNTRUNUSU9OXy8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gOFxuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXkFSVElDTEVTP18vKSAhPT0gbnVsbCB8fFxuICAgICAgICAgICAgICAgIC8vIFwiRXhwb3PDqSBkZXMgbW90aWZzXCIgbXVzdCBiZSBhdCB0aGUgc2FtZSBsZXZlbCBhcyBhcnRpY2xlLlxuICAgICAgICAgICAgICAgIC8vIFwiRXhwb3PDqSBkZXMgbW90aWZzXCIgd2l0aG91dCBjb250ZW50OlxuICAgICAgICAgICAgICAgIC8vICogaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wNzAyLmFzcFxuICAgICAgICAgICAgICAgIC8vIFwiRXhwb3PDqSBkZXMgbW90aWZzXCIgd2l0aCBjb250ZW50OlxuICAgICAgICAgICAgICAgIC8vICogaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8xMzI2LmFzcFxuICAgICAgICAgICAgICAgIC8vICogaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8xNjEwLmFzcFxuICAgICAgICAgICAgICAgIG5hbWVVcHBlci5tYXRjaCgvXkVYUE9TRV9ERVNfTU9USUZTJC8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gOVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICBpZiAobmV4dExldmVsID09PSBudWxsICYmIHN1YmRpdmlzaW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGlmIChuYW1lVXBwZXIubWF0Y2goL14oUFJPSkVUfFBST1BPU0lUSU9OKV9ERV9MT0koX3wkKS8pICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIC8vIE9jY3VycyBpbjpcbiAgICAgICAgICAgICAgLy8gKiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzAyMzIuYXNwXG4gICAgICAgICAgICAgIC8vICogaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wNjI2LmFzcFxuICAgICAgICAgICAgICAvLyAqIGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8xNS90ZXh0ZXMvMDY3Ni5hc3BcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgIG5hbWVVcHBlciA9PT0gXCJKRVVYX09MWU1QSVFVRVNfRVRfUEFSQUxZTVBJUVVFU19ERV8yMDI0XCJcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAvLyBPY2N1cnMgaW4gaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wNjc2LmFzcFxuICAgICAgICAgICAgfSBlbHNlIGlmIChuYW1lVXBwZXIgPT09IFwiVEVYVEVfREVfTEFfQ09NTUlTU0lPTl9NSVhURV9QQVJJVEFJUkVcIikge1xuICAgICAgICAgICAgICAvLyBPY2N1cnMgaW4gaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8xMjk0LmFzcFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgYFVuZXhwZWN0ZWQgbmFtZVVwcGVyID0gXCIke25hbWVVcHBlcn1cIiBhdCBiZWdpbm5pbmcgb2YgXCJ0ZXh0ZSBkZSBsb2lcIiBhdCAke2Fzc2VtYmxlZVVybH1gLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBTa2lwIHBhcmFncmFwaC5cbiAgICAgICAgICAgIHN0YXRlID0gbmV4dFBhcmVudFN0YXRlXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobmV4dExldmVsICE9PSBudWxsKSB7XG4gICAgICAgICAgICBsZXZlbCA9IG5leHRMZXZlbFxuICAgICAgICAgICAgd2hpbGUgKGxldmVscy5sZW5ndGggPiAwICYmIGxldmVsIDwgbGV2ZWxzW2xldmVscy5sZW5ndGggLSAxXSkge1xuICAgICAgICAgICAgICBsZXZlbHMucG9wKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsZXZlbHMubGVuZ3RoID09PSAwIHx8IGxldmVsID4gbGV2ZWxzW2xldmVscy5sZW5ndGggLSAxXSkge1xuICAgICAgICAgICAgICBsZXZlbHMucHVzaChsZXZlbClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEFydGljbGVzICYgXCJFeHBvc8OpIGRlcyBtb3RpZnNcIiBhcmUgdGhlIG9ubHkgZGl2aXNpb25zIHdpdGhvdXQgc2Vjb25kIHRpdGxlLlxuICAgICAgICAgICAgaXNNdWx0aUxpbmVzSGVhZGVyID1cbiAgICAgICAgICAgICAgbmFtZVVwcGVyLm1hdGNoKC9eQVJUSUNMRVM/Xy8pID09PSBudWxsICYmXG4gICAgICAgICAgICAgIG5hbWVVcHBlci5tYXRjaCgvXkVYUE9TRV9ERVNfTU9USUZTJC8pID09PSBudWxsXG4gICAgICAgICAgICBzdWJkaXZpc2lvbkFsaW5lYXNIdG1sID0gW11cbiAgICAgICAgICAgIHN1YmRpdmlzaW9uQWxpbmVhc1RleHQgPSBbXVxuICAgICAgICAgICAgc3ViZGl2aXNpb25IZWFkZXJzSHRtbCA9IFtdXG4gICAgICAgICAgICBzdWJkaXZpc2lvbkhlYWRlcnNUZXh0ID0gW11cbiAgICAgICAgICAgIHN1YmRpdmlzaW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgaHRtbDoge1xuICAgICAgICAgICAgICAgIGFsaW5lYXM6IHN1YmRpdmlzaW9uQWxpbmVhc0h0bWwsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogc3ViZGl2aXNpb25IZWFkZXJzSHRtbCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaWQ6IFwiRF9cIiArIG5hbWVDb21wdXRlZCxcbiAgICAgICAgICAgICAgbGV2ZWw6IGxldmVsICsgMSxcbiAgICAgICAgICAgICAgcmVsYXRpdmVMZXZlbDogbGV2ZWxzLmxlbmd0aCxcbiAgICAgICAgICAgICAgdGV4dDoge1xuICAgICAgICAgICAgICAgIGFsaW5lYXM6IHN1YmRpdmlzaW9uQWxpbmVhc1RleHQsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogc3ViZGl2aXNpb25IZWFkZXJzVGV4dCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICAgIGxpbmVFbGVtZW50cyA9IFtdXG4gICAgICAgICAgc3RhdGUgPSBcInBhcmFncmFwaENoaWxkXCJcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcImZpcnN0U3ViQWxpbmVhRWxlbWVudFwiOlxuICAgICAgICBzdWJBbGluZWFFbGVtZW50ID0gYWxpbmVhRWxlbWVudCEuY2hpbGRyZW5bMF1cbiAgICAgICAgaWYgKHN1YkFsaW5lYUVsZW1lbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIE5vIHN1Yi1hbGluZWEgaW4gY3VycmVudCBhbGluZWE6IGdvIHRvIG5leHQgYWxpbmVhLlxuICAgICAgICAgIHN0YXRlID0gXCJuZXh0QWxpbmVhRWxlbWVudFwiXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdGUgPSBcInN1YkFsaW5lYUVsZW1lbnRcIlxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwibmV4dEFsaW5lYUVsZW1lbnRcIjpcbiAgICAgICAgYWxpbmVhRWxlbWVudCA9IGFsaW5lYUVsZW1lbnQhLm5leHRFbGVtZW50U2libGluZ1xuICAgICAgICBpZiAoYWxpbmVhRWxlbWVudCA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIFRoZSBib2R5Q2hpbGQgaGFzIGJlZW4gZnVsbHkgcGFyc2VkLiBHbyB0byBuZXh0IGJvZHlDaGlsZFxuICAgICAgICAgIHN0YXRlID0gXCJuZXh0Qm9keUNoaWxkXCJcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdGF0ZSA9IFwiYWxpbmVhRWxlbWVudFwiXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJuZXh0Qm9keUNoaWxkXCI6XG4gICAgICAgIGlmIChib2R5Q2hpbGQubmV4dEVsZW1lbnRTaWJsaW5nID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gVGhlIGRvY3VtZW50IGhhcyBiZWVuIGZ1bGx5IHBhcnNlZC5cbiAgICAgICAgICBzdGF0ZSA9IG51bGxcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBib2R5Q2hpbGQgPSBib2R5Q2hpbGQubmV4dEVsZW1lbnRTaWJsaW5nXG4gICAgICAgICAgaWYgKGJvZHlDaGlsZC50YWdOYW1lID09PSBcIkRJVlwiKSB7XG4gICAgICAgICAgICBzdGF0ZSA9IFwiZmlyc3RBbGluZWFFbGVtZW50XCJcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gPFAvPiBpcyBmb3IgZm9vdG5vdGVzXG4gICAgICAgICAgICBhc3NlcnQoXG4gICAgICAgICAgICAgIFtcIkJSXCIsIFwiSFJcIiwgXCJQXCJdLmluY2x1ZGVzKGJvZHlDaGlsZC50YWdOYW1lKSxcbiAgICAgICAgICAgICAgYFVuZXhwZWN0ZWQgdGFnIG5hbWUgXCIke2JvZHlDaGlsZC50YWdOYW1lfVwiIGZvciBib2R5IGNoaWxkYCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC8vIFN0YXkgaW4gdGhlIHNhbWUgc3RhdGUgdG8gZ28gdG8gbmV4dCBib2R5Q2hpbGQuXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwibmV4dFBhcmFncmFwaENoaWxkXCI6XG4gICAgICAgIHBhcmFncmFwaENoaWxkID0gcGFyYWdyYXBoQ2hpbGQhLm5leHRFbGVtZW50U2libGluZ1xuICAgICAgICBpZiAocGFyYWdyYXBoQ2hpbGQgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBUaGUgcGFyYWdyYXBoIGVsZW1lbnQgaGFzIGJlZW4gZnVsbHkgcGFyc2VkLiBHbyB0byBuZXh0IHBhcmVudCBlbGVtZW50LlxuICAgICAgICAgIGNvbnN0IGxpbmVUZXh0ID0gbGluZUVsZW1lbnRzIVxuICAgICAgICAgICAgLm1hcCgoZWxlbWVudCkgPT4gZWxlbWVudC50ZXh0Q29udGVudClcbiAgICAgICAgICAgIC5qb2luKFwiXCIpXG4gICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgaWYgKGxpbmVUZXh0KSB7XG4gICAgICAgICAgICBjb25zdCBsaW5lSHRtbCA9IGxpbmVFbGVtZW50cyFcbiAgICAgICAgICAgICAgLm1hcCgoZWxlbWVudCkgPT4gZWxlbWVudC5vdXRlckhUTUwpXG4gICAgICAgICAgICAgIC5qb2luKFwiXCIpXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHN1YmRpdmlzaW9uSGVhZGVyc1RleHQhLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgICAgICAgICAoaXNNdWx0aUxpbmVzSGVhZGVyICYmIHN1YmRpdmlzaW9uQWxpbmVhc1RleHQhLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBzdWJkaXZpc2lvbkhlYWRlcnNIdG1sIS5wdXNoKGxpbmVIdG1sKVxuICAgICAgICAgICAgICBzdWJkaXZpc2lvbkhlYWRlcnNUZXh0IS5wdXNoKGxpbmVUZXh0KVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgc3ViZGl2aXNpb25BbGluZWFzSHRtbCEucHVzaChsaW5lSHRtbClcbiAgICAgICAgICAgICAgc3ViZGl2aXNpb25BbGluZWFzVGV4dCEucHVzaChsaW5lVGV4dClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzTXVsdGlMaW5lc0hlYWRlciAmJiBzdWJkaXZpc2lvbkhlYWRlcnNUZXh0IS5sZW5ndGggPj0gMikge1xuICAgICAgICAgICAgaXNNdWx0aUxpbmVzSGVhZGVyID0gZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgICAgbGluZUVsZW1lbnRzID0gbnVsbFxuICAgICAgICAgIHN0YXRlID0gbmV4dFBhcmVudFN0YXRlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdGUgPSBcInBhcmFncmFwaENoaWxkXCJcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcIm5leHRTdWJBbGluZWFFbGVtZW50XCI6XG4gICAgICAgIHN1YkFsaW5lYUVsZW1lbnQgPSBzdWJBbGluZWFFbGVtZW50IS5uZXh0RWxlbWVudFNpYmxpbmdcbiAgICAgICAgaWYgKHN1YkFsaW5lYUVsZW1lbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBUaGUgYWxpbmVhRWxlbWVudCBoYXMgYmVlbiBmdWxseSBwYXJzZWQuIEdvIHRvIG5leHQgYWxpbmVhRWxlbWVudC5cbiAgICAgICAgICBzdGF0ZSA9IFwibmV4dEFsaW5lYUVsZW1lbnRcIlxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlID0gXCJzdWJBbGluZWFFbGVtZW50XCJcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcInBhcmFncmFwaENoaWxkXCI6XG4gICAgICAgIHN3aXRjaCAocGFyYWdyYXBoQ2hpbGQhLnRhZ05hbWUpIHtcbiAgICAgICAgICBjYXNlIFwiQVwiOiB7XG4gICAgICAgICAgICBsaW5lRWxlbWVudHMhLnB1c2gocGFyYWdyYXBoQ2hpbGQhKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBcIkJSXCI6IHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVUZXh0ID0gbGluZUVsZW1lbnRzIVxuICAgICAgICAgICAgICAubWFwKChlbGVtZW50KSA9PiBlbGVtZW50LnRleHRDb250ZW50KVxuICAgICAgICAgICAgICAuam9pbihcIlwiKVxuICAgICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICBpZiAobGluZVRleHQpIHtcbiAgICAgICAgICAgICAgY29uc3QgbGluZUh0bWwgPSBsaW5lRWxlbWVudHMhXG4gICAgICAgICAgICAgICAgLm1hcCgoZWxlbWVudCkgPT4gZWxlbWVudC5vdXRlckhUTUwpXG4gICAgICAgICAgICAgICAgLmpvaW4oXCJcIilcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHN1YmRpdmlzaW9uSGVhZGVyc1RleHQhLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgICAgICAgICAgIChpc011bHRpTGluZXNIZWFkZXIgJiYgc3ViZGl2aXNpb25BbGluZWFzVGV4dCEubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBzdWJkaXZpc2lvbkhlYWRlcnNIdG1sIS5wdXNoKGxpbmVIdG1sKVxuICAgICAgICAgICAgICAgIHN1YmRpdmlzaW9uSGVhZGVyc1RleHQhLnB1c2gobGluZVRleHQpXG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc3ViZGl2aXNpb25BbGluZWFzSHRtbCEucHVzaChsaW5lSHRtbClcbiAgICAgICAgICAgICAgICBzdWJkaXZpc2lvbkFsaW5lYXNUZXh0IS5wdXNoKGxpbmVUZXh0KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaW5lRWxlbWVudHMgPSBbXVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBcIkRFTFwiOiB7XG4gICAgICAgICAgICBsaW5lRWxlbWVudHMhLnB1c2gocGFyYWdyYXBoQ2hpbGQhKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBcIklNR1wiOiB7XG4gICAgICAgICAgICBsaW5lRWxlbWVudHMhLnB1c2gocGFyYWdyYXBoQ2hpbGQhKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBcIlNQQU5cIjoge1xuICAgICAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gcGFyYWdyYXBoQ2hpbGQhLmdldEF0dHJpYnV0ZShcImNsYXNzXCIpXG4gICAgICAgICAgICBzd2l0Y2ggKGNsYXNzTmFtZSkge1xuICAgICAgICAgICAgICBjYXNlIFwiYUVsb2lQYXN0aWxsZVwiOiB7XG4gICAgICAgICAgICAgICAgLy8gU2tpcCBwYXN0aWxsw6kgU1BBTi5cbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNhc2UgXCJhRWxvaVBhc3RpbGxlMFwiOiB7XG4gICAgICAgICAgICAgICAgLy8gU2tpcCBwYXN0aWxsw6kgU1BBTi5cbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgbGluZUVsZW1lbnRzIS5wdXNoKHBhcmFncmFwaENoaWxkISlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBlcnJvcjoge1xuICAgICAgICAgICAgICAgIGNvZGU6IC0zLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGBVbmV4cGVjdGVkIHRhZyBuYW1lIGZvciBwYXJhZ3JhcGggY2hpbGQ6ICR7XG4gICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhDaGlsZCEudGFnTmFtZVxuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBodG1sLFxuICAgICAgICAgICAgICBwYWdlLFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHN0YXRlID0gXCJuZXh0UGFyYWdyYXBoQ2hpbGRcIlxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcInN1YkFsaW5lYUVsZW1lbnRcIjpcbiAgICAgICAgc3dpdGNoIChzdWJBbGluZWFFbGVtZW50IS50YWdOYW1lKSB7XG4gICAgICAgICAgY2FzZSBcIlBcIjpcbiAgICAgICAgICAgIG5leHRQYXJlbnRTdGF0ZSA9IFwibmV4dFN1YkFsaW5lYUVsZW1lbnRcIlxuICAgICAgICAgICAgcGFyYWdyYXBoRWxlbWVudCA9IHN1YkFsaW5lYUVsZW1lbnRcbiAgICAgICAgICAgIHN0YXRlID0gXCJmaXJzdFBhcmFncmFwaENoaWxkXCJcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSBcIlRBQkxFXCI6XG4gICAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICBzdGF0ZSA9IFwibmV4dFN1YkFsaW5lYUVsZW1lbnRcIlxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICAgICAgICBjb2RlOiAtNCxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCB0YWcgbmFtZSBmb3Igc3ViIGFsaW5lYSBlbGVtZW50OiAke1xuICAgICAgICAgICAgICAgICAgc3ViQWxpbmVhRWxlbWVudCEudGFnTmFtZVxuICAgICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBodG1sLFxuICAgICAgICAgICAgICBwYWdlLFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICAgIHN0YXRlID0gXCJuZXh0U3ViQWxpbmVhRWxlbWVudFwiXG4gICAgICAgIGJyZWFrXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBgVW5leHBlY3RlZCBzdGF0ZTogJHtzdGF0ZX1gXG4gICAgfVxuICB9XG5cbiAgd2luZG93LmNsb3NlKCkgLy8gRnJlZSBtZW1vcnkuXG5cbiAgcmV0dXJuIHtcbiAgICBlcnJvcjogbnVsbCxcbiAgICBodG1sLFxuICAgIHBhZ2UsXG4gICAgc3ViZGl2aXNpb25zLFxuICAgIHVybDogYXNzZW1ibGVlVXJsLFxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXRyaWV2ZVRleHRlTG9pUGFyc2VkKFxuICBmZXRjaDogKFxuICAgIHVybDogc3RyaW5nIHwgUmVxdWVzdCxcbiAgICBpbml0PzogUmVxdWVzdEluaXQgfCB1bmRlZmluZWQsXG4gICkgPT4gUHJvbWlzZTxSZXNwb25zZT4sXG4gIGFzc2VtYmxlZVVybDogc3RyaW5nLFxuKSB7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYXNzZW1ibGVlVXJsKVxuICBjb25zdCBwYWdlID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICByZXR1cm4ge1xuICAgICAgZXJyb3I6IHsgY29kZTogcmVzcG9uc2Uuc3RhdHVzLCBtZXNzYWdlOiByZXNwb25zZS5zdGF0dXNUZXh0IH0sXG4gICAgICBwYWdlLFxuICAgIH1cbiAgfVxuICByZXR1cm4gcGFyc2VUZXh0ZUxvaShhc3NlbWJsZWVVcmwsIHBhZ2UpXG59XG4iXX0=
433
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJKU0RPTSIsInBhcnNlVGV4dGVMb2kiLCJhc3NlbWJsZWVVcmwiLCJwYWdlIiwicGFnZVNlZ21lbnRzIiwic3BsaXQiLCJzdHJpY3RFcXVhbCIsImxlbmd0aCIsImh0bWwiLCJ0cmltIiwic3RhcnRzV2l0aCIsImVuZHNXaXRoIiwic3Vic3RyaW5nIiwid2luZG93IiwiZG9jdW1lbnQiLCJjaGlsZHJlbiIsImh0bWxFbGVtZW50IiwiYm9keUVsZW1lbnQiLCJkaXZFbGVtZW50IiwidGFnTmFtZSIsIm5ld0RpdkVsZW1lbnQiLCJpbnNlcnRCZWZvcmUiLCJjcmVhdGVFbGVtZW50IiwiZGl2Q2hpbGQiLCJnZXRBdHRyaWJ1dGUiLCJhcHBlbmRDaGlsZCIsImNsb3NlIiwiZXJyb3IiLCJjb2RlIiwibWVzc2FnZSIsImJvZHlDaGlsZCIsImFsaW5lYUVsZW1lbnQiLCJpc011bHRpTGluZXNIZWFkZXIiLCJsZXZlbCIsImxldmVscyIsImxpbmVFbGVtZW50cyIsIm5leHRQYXJlbnRTdGF0ZSIsInBhcmFncmFwaENoaWxkIiwicGFyYWdyYXBoRWxlbWVudCIsInN0YXRlIiwic3ViQWxpbmVhRWxlbWVudCIsInN1YmRpdmlzaW9ucyIsInN1YmRpdmlzaW9uQWxpbmVhc0h0bWwiLCJzdWJkaXZpc2lvbkFsaW5lYXNUZXh0Iiwic3ViZGl2aXNpb25IZWFkZXJzSHRtbCIsInN1YmRpdmlzaW9uSGVhZGVyc1RleHQiLCJ1bmRlZmluZWQiLCJoZWFkZXJUZXh0IiwidGV4dENvbnRlbnQiLCJuYW1lQ29tcHV0ZWQiLCJub3JtYWxpemUiLCJyZXBsYWNlIiwibmFtZVVwcGVyIiwidG9VcHBlckNhc2UiLCJuZXh0TGV2ZWwiLCJtYXRjaCIsImNvbnNvbGUiLCJsb2ciLCJwb3AiLCJwdXNoIiwiYWxpbmVhcyIsImhlYWRlcnMiLCJpZCIsInJlbGF0aXZlTGV2ZWwiLCJ0ZXh0IiwibmV4dEVsZW1lbnRTaWJsaW5nIiwiaW5jbHVkZXMiLCJsaW5lVGV4dCIsIm1hcCIsImVsZW1lbnQiLCJqb2luIiwibGluZUh0bWwiLCJvdXRlckhUTUwiLCJjbGFzc05hbWUiLCJ1cmwiLCJyZXRyaWV2ZVRleHRlTG9pUGFyc2VkIiwiZmV0Y2giLCJyZXNwb25zZSIsIm9rIiwic3RhdHVzIiwic3RhdHVzVGV4dCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXJzL2RvY3VtZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIlxuaW1wb3J0IHsgSlNET00gfSBmcm9tIFwianNkb21cIlxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUZXh0ZUxvaShhc3NlbWJsZWVVcmw6IHN0cmluZywgcGFnZTogc3RyaW5nKSB7XG4gIC8vIFJlcGFpciBIVE1MLlxuICBjb25zdCBwYWdlU2VnbWVudHMgPSBwYWdlLnNwbGl0KFwiPC9zdHlsZT5cIilcbiAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhZ2VTZWdtZW50cy5sZW5ndGgsIDIsIHBhZ2UpXG4gIGxldCBodG1sID0gcGFnZVNlZ21lbnRzWzFdLnRyaW0oKVxuICBhc3NlcnQoaHRtbC5zdGFydHNXaXRoKFwiPGRpdlwiKSlcbiAgYXNzZXJ0KGh0bWwuZW5kc1dpdGgoXCI8L2Rpdj5cIikpXG4gIGh0bWwgPSBgPGh0bWwke2h0bWwuc3Vic3RyaW5nKDQsIGh0bWwubGVuZ3RoIC0gNil9PC9odG1sPmBcblxuICAvLyBFeHRyYWN0IHN1YmRpdmlzaW9ucyBmcm9tIEhUTUwuXG4gIGNvbnN0IHsgd2luZG93IH0gPSBuZXcgSlNET00oaHRtbClcbiAgY29uc3QgeyBkb2N1bWVudCB9ID0gd2luZG93XG4gIGFzc2VydC5zdHJpY3RFcXVhbChkb2N1bWVudC5jaGlsZHJlbi5sZW5ndGgsIDEpXG4gIGNvbnN0IGh0bWxFbGVtZW50ID0gZG9jdW1lbnQuY2hpbGRyZW5bMF1cbiAgYXNzZXJ0LnN0cmljdEVxdWFsKGh0bWxFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCwgMilcbiAgY29uc3QgYm9keUVsZW1lbnQgPSBodG1sRWxlbWVudC5jaGlsZHJlblsxXVxuICBpZiAoYXNzZW1ibGVlVXJsID09PSBcImh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8xNS90ZXh0ZXMvMDY3NS5hc3BcIikge1xuICAgIC8vIFJlcGFpciBkb2N1bWVudC5cbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYm9keUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoLCAxKVxuICAgIGNvbnN0IGRpdkVsZW1lbnQgPSBib2R5RWxlbWVudC5jaGlsZHJlblswXVxuICAgIGFzc2VydC5zdHJpY3RFcXVhbChkaXZFbGVtZW50LnRhZ05hbWUsIFwiRElWXCIpXG4gICAgY29uc3QgbmV3RGl2RWxlbWVudCA9IGJvZHlFbGVtZW50Lmluc2VydEJlZm9yZShcbiAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksXG4gICAgICBkaXZFbGVtZW50LFxuICAgIClcbiAgICBib2R5RWxlbWVudC5pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImJyXCIpLCBkaXZFbGVtZW50KVxuICAgIGZvciAoY29uc3QgZGl2Q2hpbGQgb2YgWy4uLmRpdkVsZW1lbnQuY2hpbGRyZW5dKSB7XG4gICAgICBpZiAoZGl2Q2hpbGQuZ2V0QXR0cmlidXRlKFwiY2xhc3NcIikgPT09IFwiYTlBcnRpY2xlTnVtXCIpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIG5ld0RpdkVsZW1lbnQuYXBwZW5kQ2hpbGQoZGl2Q2hpbGQpXG4gICAgfVxuICB9XG4gIGlmIChib2R5RWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPCAzKSB7XG4gICAgLy8gT2NjdXJzIGluIGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8xNS90ZXh0ZXMvMDMyNi5hc3AuXG4gICAgd2luZG93LmNsb3NlKCkgLy8gRnJlZSBtZW1vcnkuXG4gICAgcmV0dXJuIHtcbiAgICAgIGVycm9yOiB7IGNvZGU6IC0xLCBtZXNzYWdlOiBcIlRleHRlIGRlIGxvaSBzYW5zIGNvbnRlbnVcIiB9LFxuICAgICAgaHRtbCxcbiAgICAgIHBhZ2UsXG4gICAgfVxuICB9XG4gIGFzc2VydC5zdHJpY3RFcXVhbChib2R5RWxlbWVudC5jaGlsZHJlblswXS50YWdOYW1lLCBcIkRJVlwiKVxuICAvLyBGaXJzdCBjaGlsZCBpcyBhIERJViBkZXNjcmliaW5nIHRoZSBkb2N1bWVudCAoQXNzZW1ibMOpZSdzIGhlYWRlcikuIFNraXAgaXQgZm9yIG5vdy5cbiAgbGV0IGJvZHlDaGlsZCA9IGJvZHlFbGVtZW50LmNoaWxkcmVuWzFdXG4gIGFzc2VydC5zdHJpY3RFcXVhbChib2R5Q2hpbGQudGFnTmFtZSwgXCJCUlwiKVxuICBsZXQgYWxpbmVhRWxlbWVudDogRWxlbWVudCB8IG51bGwgPSBudWxsXG4gIGxldCBpc011bHRpTGluZXNIZWFkZXI6IGJvb2xlYW4gPSBmYWxzZVxuICBsZXQgbGV2ZWw6IG51bWJlciB8IG51bGwgPSBudWxsXG4gIGxldCBsZXZlbHM6IG51bWJlcltdID0gW11cbiAgbGV0IGxpbmVFbGVtZW50czogRWxlbWVudFtdIHwgbnVsbCA9IG51bGxcbiAgbGV0IG5leHRQYXJlbnRTdGF0ZSA9IG51bGxcbiAgbGV0IHBhcmFncmFwaENoaWxkOiBFbGVtZW50IHwgbnVsbCA9IG51bGxcbiAgbGV0IHBhcmFncmFwaEVsZW1lbnQ6IEVsZW1lbnQgfCBudWxsID0gbnVsbFxuICBsZXQgc3RhdGU6IHN0cmluZyB8IG51bGwgPSBcIm5leHRCb2R5Q2hpbGRcIlxuICBsZXQgc3ViQWxpbmVhRWxlbWVudDogRWxlbWVudCB8IG51bGwgPSBudWxsXG4gIGNvbnN0IHN1YmRpdmlzaW9ucyA9IFtdXG4gIGxldCBzdWJkaXZpc2lvbkFsaW5lYXNIdG1sOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsXG4gIGxldCBzdWJkaXZpc2lvbkFsaW5lYXNUZXh0OiBzdHJpbmdbXSB8IG51bGwgPSBudWxsXG4gIGxldCBzdWJkaXZpc2lvbkhlYWRlcnNIdG1sOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsXG4gIGxldCBzdWJkaXZpc2lvbkhlYWRlcnNUZXh0OiBzdHJpbmdbXSB8IG51bGwgPSBudWxsXG4gIHdoaWxlIChzdGF0ZSAhPT0gbnVsbCkge1xuICAgIHN3aXRjaCAoc3RhdGUpIHtcbiAgICAgIGNhc2UgXCJhbGluZWFFbGVtZW50XCI6XG4gICAgICAgIHN3aXRjaCAoYWxpbmVhRWxlbWVudCEudGFnTmFtZSkge1xuICAgICAgICAgIGNhc2UgXCJESVZcIjpcbiAgICAgICAgICAgIHN0YXRlID0gXCJmaXJzdFN1YkFsaW5lYUVsZW1lbnRcIlxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlIFwiSDRcIjpcbiAgICAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICAgIG5leHRQYXJlbnRTdGF0ZSA9IFwibmV4dEFsaW5lYUVsZW1lbnRcIlxuICAgICAgICAgICAgcGFyYWdyYXBoRWxlbWVudCA9IGFsaW5lYUVsZW1lbnRcbiAgICAgICAgICAgIHN0YXRlID0gXCJmaXJzdFBhcmFncmFwaENoaWxkXCJcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSBcIlBcIjpcbiAgICAgICAgICAgIG5leHRQYXJlbnRTdGF0ZSA9IFwibmV4dEFsaW5lYUVsZW1lbnRcIlxuICAgICAgICAgICAgcGFyYWdyYXBoRWxlbWVudCA9IGFsaW5lYUVsZW1lbnRcbiAgICAgICAgICAgIHN0YXRlID0gXCJmaXJzdFBhcmFncmFwaENoaWxkXCJcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSBcIk9MXCI6XG4gICAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICBzdGF0ZSA9IFwibmV4dEFsaW5lYUVsZW1lbnRcIlxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlIFwiVEFCTEVcIjpcbiAgICAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICAgIHN0YXRlID0gXCJuZXh0QWxpbmVhRWxlbWVudFwiXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBlcnJvcjoge1xuICAgICAgICAgICAgICAgIGNvZGU6IC0yLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGBVbmV4cGVjdGVkIHRhZyBuYW1lIGZvciBhbGluZWEgZWxlbWVudDogJHtcbiAgICAgICAgICAgICAgICAgIGFsaW5lYUVsZW1lbnQhLnRhZ05hbWVcbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaHRtbCxcbiAgICAgICAgICAgICAgcGFnZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcImZpcnN0QWxpbmVhRWxlbWVudFwiOlxuICAgICAgICBhbGluZWFFbGVtZW50ID0gYm9keUNoaWxkLmNoaWxkcmVuWzBdXG4gICAgICAgIGlmIChhbGluZWFFbGVtZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAvLyBObyBhbGluZWEgaW4gY3VycmVudCBib2R5Q2hpbGQ6IGdvIHRvIG5leHQgYm9keUNoaWxkLlxuICAgICAgICAgIHN0YXRlID0gXCJuZXh0Qm9keUNoaWxkXCJcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdGF0ZSA9IFwiYWxpbmVhRWxlbWVudFwiXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJmaXJzdFBhcmFncmFwaENoaWxkXCI6XG4gICAgICAgIHBhcmFncmFwaENoaWxkID0gcGFyYWdyYXBoRWxlbWVudCEuY2hpbGRyZW5bMF1cbiAgICAgICAgaWYgKHBhcmFncmFwaENoaWxkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAvLyBObyBjaGlsZCBpbiBjdXJyZW50IHBhcmFncmFwaDogZ28gdG8gbmV4dCBwYXJlbnQgZWxlbWVudC5cbiAgICAgICAgICBzdGF0ZSA9IG5leHRQYXJlbnRTdGF0ZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGhlYWRlclRleHQgPSBwYXJhZ3JhcGhFbGVtZW50IS50ZXh0Q29udGVudFxuICAgICAgICAgIGNvbnN0IG5hbWVDb21wdXRlZCA9IChoZWFkZXJUZXh0IHx8IFwiXCIpXG4gICAgICAgICAgICAubm9ybWFsaXplKFwiTkZEXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgXCJcIilcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXChub3V2ZWF1XFwpLywgXCJcIilcbiAgICAgICAgICAgIC5yZXBsYWNlKC9cXChQb3VyIGNvb3JkaW5hdGlvblxcKS8sIFwiXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFwoU3VwcHJpbcOpcz9cXCkvLCBcIlwiKVxuICAgICAgICAgICAgLnJlcGxhY2UoL8KgL2csIFwiIFwiKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1tcXC0sLuKApl0vZywgXCJcIilcbiAgICAgICAgICAgIC50cmltKClcbiAgICAgICAgICAgIC5yZXBsYWNlKC8gezEsfS9nLCBcIl9cIilcbiAgICAgICAgICBjb25zdCBuYW1lVXBwZXIgPSBuYW1lQ29tcHV0ZWQudG9VcHBlckNhc2UoKVxuICAgICAgICAgIGlmIChuYW1lVXBwZXIgPT09IFwiXCIpIHtcbiAgICAgICAgICAgIC8vIE9jY3VycyBpbjpcbiAgICAgICAgICAgIC8vICogaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wNDQ1LmFzcFxuICAgICAgICAgICAgLy8gKiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzA2MjYuYXNwXG4gICAgICAgICAgICAvLyBTa2lwIHBhcmFncmFwaC5cbiAgICAgICAgICAgIHN0YXRlID0gbmV4dFBhcmVudFN0YXRlXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBuZXh0TGV2ZWwgPVxuICAgICAgICAgICAgbmFtZVVwcGVyLm1hdGNoKC9eKFJBUFBPUlRfKT9BTk5FWEUoX3wkKS8pICE9PSBudWxsIHx8XG4gICAgICAgICAgICBuYW1lVXBwZXIubWF0Y2goL15FVEFUXy8pICE9PSBudWxsXG4gICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICA6IG5hbWVVcHBlci5tYXRjaCgvXlRPTUVfLykgIT09IG51bGxcbiAgICAgICAgICAgICAgPyAxXG4gICAgICAgICAgICAgIDogbmFtZVVwcGVyLm1hdGNoKC9eUEFSVElFXy8pICE9PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgbmFtZVVwcGVyLm1hdGNoKFxuICAgICAgICAgICAgICAgICAgL14oUFJFTUlFUkV8U0VDT05ERXxERVVYSUVNRXxUUk9JU0lFTUV8UVVBVFJJRU1FKV9QQVJUSUUoX3wkKS8sXG4gICAgICAgICAgICAgICAgKSAhPT0gbnVsbFxuICAgICAgICAgICAgICA/IDJcbiAgICAgICAgICAgICAgOiBuYW1lVXBwZXIubWF0Y2goL15MSVZSRV8vKSAhPT0gbnVsbFxuICAgICAgICAgICAgICA/IDNcbiAgICAgICAgICAgICAgOiBuYW1lVXBwZXIubWF0Y2goL15USVRSRV8vKSAhPT0gbnVsbFxuICAgICAgICAgICAgICA/IDRcbiAgICAgICAgICAgICAgOiBuYW1lVXBwZXIubWF0Y2goL15TT1VTVElUUkVfLykgIT09IG51bGxcbiAgICAgICAgICAgICAgPyA1XG4gICAgICAgICAgICAgIDogbmFtZVVwcGVyLm1hdGNoKC9eQ0hBUElUUkVfLykgIT09IG51bGxcbiAgICAgICAgICAgICAgPyA2XG4gICAgICAgICAgICAgIDogbmFtZVVwcGVyLm1hdGNoKC9eU0VDVElPTl8vKSAhPT0gbnVsbFxuICAgICAgICAgICAgICA/IDdcbiAgICAgICAgICAgICAgOiBuYW1lVXBwZXIubWF0Y2goL15TT1VTU0VDVElPTl8vKSAhPT0gbnVsbFxuICAgICAgICAgICAgICA/IDhcbiAgICAgICAgICAgICAgOiBuYW1lVXBwZXIubWF0Y2goL15BUlRJQ0xFUz9fLykgIT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICAvLyBcIkV4cG9zw6kgZGVzIG1vdGlmc1wiIG11c3QgYmUgYXQgdGhlIHNhbWUgbGV2ZWwgYXMgYXJ0aWNsZS5cbiAgICAgICAgICAgICAgICAvLyBcIkV4cG9zw6kgZGVzIG1vdGlmc1wiIHdpdGhvdXQgY29udGVudDpcbiAgICAgICAgICAgICAgICAvLyAqIGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8xNS90ZXh0ZXMvMDcwMi5hc3BcbiAgICAgICAgICAgICAgICAvLyBcIkV4cG9zw6kgZGVzIG1vdGlmc1wiIHdpdGggY29udGVudDpcbiAgICAgICAgICAgICAgICAvLyAqIGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8xNS90ZXh0ZXMvMTMyNi5hc3BcbiAgICAgICAgICAgICAgICAvLyAqIGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8xNS90ZXh0ZXMvMTYxMC5hc3BcbiAgICAgICAgICAgICAgICBuYW1lVXBwZXIubWF0Y2goL15FWFBPU0VfREVTX01PVElGUyQvKSAhPT0gbnVsbFxuICAgICAgICAgICAgICA/IDlcbiAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgaWYgKG5leHRMZXZlbCA9PT0gbnVsbCAmJiBzdWJkaXZpc2lvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBpZiAobmFtZVVwcGVyLm1hdGNoKC9eKFBST0pFVHxQUk9QT1NJVElPTilfREVfTE9JKF98JCkvKSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAvLyBPY2N1cnMgaW46XG4gICAgICAgICAgICAgIC8vICogaHR0cDovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLzE1L3RleHRlcy8wMjMyLmFzcFxuICAgICAgICAgICAgICAvLyAqIGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8xNS90ZXh0ZXMvMDYyNi5hc3BcbiAgICAgICAgICAgICAgLy8gKiBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvMTUvdGV4dGVzLzA2NzYuYXNwXG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICBuYW1lVXBwZXIgPT09IFwiSkVVWF9PTFlNUElRVUVTX0VUX1BBUkFMWU1QSVFVRVNfREVfMjAyNFwiXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgLy8gT2NjdXJzIGluIGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8xNS90ZXh0ZXMvMDY3Ni5hc3BcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZVVwcGVyID09PSBcIlRFWFRFX0RFX0xBX0NPTU1JU1NJT05fTUlYVEVfUEFSSVRBSVJFXCIpIHtcbiAgICAgICAgICAgICAgLy8gT2NjdXJzIGluIGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8xNS90ZXh0ZXMvMTI5NC5hc3BcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgIGBVbmV4cGVjdGVkIG5hbWVVcHBlciA9IFwiJHtuYW1lVXBwZXJ9XCIgYXQgYmVnaW5uaW5nIG9mIFwidGV4dGUgZGUgbG9pXCIgYXQgJHthc3NlbWJsZWVVcmx9YCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gU2tpcCBwYXJhZ3JhcGguXG4gICAgICAgICAgICBzdGF0ZSA9IG5leHRQYXJlbnRTdGF0ZVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKG5leHRMZXZlbCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgbGV2ZWwgPSBuZXh0TGV2ZWxcbiAgICAgICAgICAgIHdoaWxlIChsZXZlbHMubGVuZ3RoID4gMCAmJiBsZXZlbCA8IGxldmVsc1tsZXZlbHMubGVuZ3RoIC0gMV0pIHtcbiAgICAgICAgICAgICAgbGV2ZWxzLnBvcCgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGV2ZWxzLmxlbmd0aCA9PT0gMCB8fCBsZXZlbCA+IGxldmVsc1tsZXZlbHMubGVuZ3RoIC0gMV0pIHtcbiAgICAgICAgICAgICAgbGV2ZWxzLnB1c2gobGV2ZWwpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBBcnRpY2xlcyAmIFwiRXhwb3PDqSBkZXMgbW90aWZzXCIgYXJlIHRoZSBvbmx5IGRpdmlzaW9ucyB3aXRob3V0IHNlY29uZCB0aXRsZS5cbiAgICAgICAgICAgIGlzTXVsdGlMaW5lc0hlYWRlciA9XG4gICAgICAgICAgICAgIG5hbWVVcHBlci5tYXRjaCgvXkFSVElDTEVTP18vKSA9PT0gbnVsbCAmJlxuICAgICAgICAgICAgICBuYW1lVXBwZXIubWF0Y2goL15FWFBPU0VfREVTX01PVElGUyQvKSA9PT0gbnVsbFxuICAgICAgICAgICAgc3ViZGl2aXNpb25BbGluZWFzSHRtbCA9IFtdXG4gICAgICAgICAgICBzdWJkaXZpc2lvbkFsaW5lYXNUZXh0ID0gW11cbiAgICAgICAgICAgIHN1YmRpdmlzaW9uSGVhZGVyc0h0bWwgPSBbXVxuICAgICAgICAgICAgc3ViZGl2aXNpb25IZWFkZXJzVGV4dCA9IFtdXG4gICAgICAgICAgICBzdWJkaXZpc2lvbnMucHVzaCh7XG4gICAgICAgICAgICAgIGh0bWw6IHtcbiAgICAgICAgICAgICAgICBhbGluZWFzOiBzdWJkaXZpc2lvbkFsaW5lYXNIdG1sLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHN1YmRpdmlzaW9uSGVhZGVyc0h0bWwsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGlkOiBcIkRfXCIgKyBuYW1lQ29tcHV0ZWQsXG4gICAgICAgICAgICAgIGxldmVsOiBsZXZlbCArIDEsXG4gICAgICAgICAgICAgIHJlbGF0aXZlTGV2ZWw6IGxldmVscy5sZW5ndGgsXG4gICAgICAgICAgICAgIHRleHQ6IHtcbiAgICAgICAgICAgICAgICBhbGluZWFzOiBzdWJkaXZpc2lvbkFsaW5lYXNUZXh0LFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHN1YmRpdmlzaW9uSGVhZGVyc1RleHQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgICBsaW5lRWxlbWVudHMgPSBbXVxuICAgICAgICAgIHN0YXRlID0gXCJwYXJhZ3JhcGhDaGlsZFwiXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJmaXJzdFN1YkFsaW5lYUVsZW1lbnRcIjpcbiAgICAgICAgc3ViQWxpbmVhRWxlbWVudCA9IGFsaW5lYUVsZW1lbnQhLmNoaWxkcmVuWzBdXG4gICAgICAgIGlmIChzdWJBbGluZWFFbGVtZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAvLyBObyBzdWItYWxpbmVhIGluIGN1cnJlbnQgYWxpbmVhOiBnbyB0byBuZXh0IGFsaW5lYS5cbiAgICAgICAgICBzdGF0ZSA9IFwibmV4dEFsaW5lYUVsZW1lbnRcIlxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlID0gXCJzdWJBbGluZWFFbGVtZW50XCJcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcIm5leHRBbGluZWFFbGVtZW50XCI6XG4gICAgICAgIGFsaW5lYUVsZW1lbnQgPSBhbGluZWFFbGVtZW50IS5uZXh0RWxlbWVudFNpYmxpbmdcbiAgICAgICAgaWYgKGFsaW5lYUVsZW1lbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAvLyBUaGUgYm9keUNoaWxkIGhhcyBiZWVuIGZ1bGx5IHBhcnNlZC4gR28gdG8gbmV4dCBib2R5Q2hpbGRcbiAgICAgICAgICBzdGF0ZSA9IFwibmV4dEJvZHlDaGlsZFwiXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdGUgPSBcImFsaW5lYUVsZW1lbnRcIlxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwibmV4dEJvZHlDaGlsZFwiOlxuICAgICAgICBpZiAoYm9keUNoaWxkLm5leHRFbGVtZW50U2libGluZyA9PT0gbnVsbCkge1xuICAgICAgICAgIC8vIFRoZSBkb2N1bWVudCBoYXMgYmVlbiBmdWxseSBwYXJzZWQuXG4gICAgICAgICAgc3RhdGUgPSBudWxsXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYm9keUNoaWxkID0gYm9keUNoaWxkLm5leHRFbGVtZW50U2libGluZ1xuICAgICAgICAgIGlmIChib2R5Q2hpbGQudGFnTmFtZSA9PT0gXCJESVZcIikge1xuICAgICAgICAgICAgc3RhdGUgPSBcImZpcnN0QWxpbmVhRWxlbWVudFwiXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIDxQLz4gaXMgZm9yIGZvb3Rub3Rlc1xuICAgICAgICAgICAgYXNzZXJ0KFxuICAgICAgICAgICAgICBbXCJCUlwiLCBcIkhSXCIsIFwiUFwiXS5pbmNsdWRlcyhib2R5Q2hpbGQudGFnTmFtZSksXG4gICAgICAgICAgICAgIGBVbmV4cGVjdGVkIHRhZyBuYW1lIFwiJHtib2R5Q2hpbGQudGFnTmFtZX1cIiBmb3IgYm9keSBjaGlsZGAsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAvLyBTdGF5IGluIHRoZSBzYW1lIHN0YXRlIHRvIGdvIHRvIG5leHQgYm9keUNoaWxkLlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcIm5leHRQYXJhZ3JhcGhDaGlsZFwiOlxuICAgICAgICBwYXJhZ3JhcGhDaGlsZCA9IHBhcmFncmFwaENoaWxkIS5uZXh0RWxlbWVudFNpYmxpbmdcbiAgICAgICAgaWYgKHBhcmFncmFwaENoaWxkID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gVGhlIHBhcmFncmFwaCBlbGVtZW50IGhhcyBiZWVuIGZ1bGx5IHBhcnNlZC4gR28gdG8gbmV4dCBwYXJlbnQgZWxlbWVudC5cbiAgICAgICAgICBjb25zdCBsaW5lVGV4dCA9IGxpbmVFbGVtZW50cyFcbiAgICAgICAgICAgIC5tYXAoKGVsZW1lbnQpID0+IGVsZW1lbnQudGV4dENvbnRlbnQpXG4gICAgICAgICAgICAuam9pbihcIlwiKVxuICAgICAgICAgICAgLnRyaW0oKVxuICAgICAgICAgIGlmIChsaW5lVGV4dCkge1xuICAgICAgICAgICAgY29uc3QgbGluZUh0bWwgPSBsaW5lRWxlbWVudHMhXG4gICAgICAgICAgICAgIC5tYXAoKGVsZW1lbnQpID0+IGVsZW1lbnQub3V0ZXJIVE1MKVxuICAgICAgICAgICAgICAuam9pbihcIlwiKVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBzdWJkaXZpc2lvbkhlYWRlcnNUZXh0IS5sZW5ndGggPT09IDAgfHxcbiAgICAgICAgICAgICAgKGlzTXVsdGlMaW5lc0hlYWRlciAmJiBzdWJkaXZpc2lvbkFsaW5lYXNUZXh0IS5sZW5ndGggPT09IDApXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgc3ViZGl2aXNpb25IZWFkZXJzSHRtbCEucHVzaChsaW5lSHRtbClcbiAgICAgICAgICAgICAgc3ViZGl2aXNpb25IZWFkZXJzVGV4dCEucHVzaChsaW5lVGV4dClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHN1YmRpdmlzaW9uQWxpbmVhc0h0bWwhLnB1c2gobGluZUh0bWwpXG4gICAgICAgICAgICAgIHN1YmRpdmlzaW9uQWxpbmVhc1RleHQhLnB1c2gobGluZVRleHQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc011bHRpTGluZXNIZWFkZXIgJiYgc3ViZGl2aXNpb25IZWFkZXJzVGV4dCEubGVuZ3RoID49IDIpIHtcbiAgICAgICAgICAgIGlzTXVsdGlMaW5lc0hlYWRlciA9IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICAgIGxpbmVFbGVtZW50cyA9IG51bGxcbiAgICAgICAgICBzdGF0ZSA9IG5leHRQYXJlbnRTdGF0ZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXRlID0gXCJwYXJhZ3JhcGhDaGlsZFwiXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJuZXh0U3ViQWxpbmVhRWxlbWVudFwiOlxuICAgICAgICBzdWJBbGluZWFFbGVtZW50ID0gc3ViQWxpbmVhRWxlbWVudCEubmV4dEVsZW1lbnRTaWJsaW5nXG4gICAgICAgIGlmIChzdWJBbGluZWFFbGVtZW50ID09PSBudWxsKSB7XG4gICAgICAgICAgLy8gVGhlIGFsaW5lYUVsZW1lbnQgaGFzIGJlZW4gZnVsbHkgcGFyc2VkLiBHbyB0byBuZXh0IGFsaW5lYUVsZW1lbnQuXG4gICAgICAgICAgc3RhdGUgPSBcIm5leHRBbGluZWFFbGVtZW50XCJcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzdGF0ZSA9IFwic3ViQWxpbmVhRWxlbWVudFwiXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJwYXJhZ3JhcGhDaGlsZFwiOlxuICAgICAgICBzd2l0Y2ggKHBhcmFncmFwaENoaWxkIS50YWdOYW1lKSB7XG4gICAgICAgICAgY2FzZSBcIkFcIjoge1xuICAgICAgICAgICAgbGluZUVsZW1lbnRzIS5wdXNoKHBhcmFncmFwaENoaWxkISlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgXCJCUlwiOiB7XG4gICAgICAgICAgICBjb25zdCBsaW5lVGV4dCA9IGxpbmVFbGVtZW50cyFcbiAgICAgICAgICAgICAgLm1hcCgoZWxlbWVudCkgPT4gZWxlbWVudC50ZXh0Q29udGVudClcbiAgICAgICAgICAgICAgLmpvaW4oXCJcIilcbiAgICAgICAgICAgICAgLnRyaW0oKVxuICAgICAgICAgICAgaWYgKGxpbmVUZXh0KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGxpbmVIdG1sID0gbGluZUVsZW1lbnRzIVxuICAgICAgICAgICAgICAgIC5tYXAoKGVsZW1lbnQpID0+IGVsZW1lbnQub3V0ZXJIVE1MKVxuICAgICAgICAgICAgICAgIC5qb2luKFwiXCIpXG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBzdWJkaXZpc2lvbkhlYWRlcnNUZXh0IS5sZW5ndGggPT09IDAgfHxcbiAgICAgICAgICAgICAgICAoaXNNdWx0aUxpbmVzSGVhZGVyICYmIHN1YmRpdmlzaW9uQWxpbmVhc1RleHQhLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgc3ViZGl2aXNpb25IZWFkZXJzSHRtbCEucHVzaChsaW5lSHRtbClcbiAgICAgICAgICAgICAgICBzdWJkaXZpc2lvbkhlYWRlcnNUZXh0IS5wdXNoKGxpbmVUZXh0KVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHN1YmRpdmlzaW9uQWxpbmVhc0h0bWwhLnB1c2gobGluZUh0bWwpXG4gICAgICAgICAgICAgICAgc3ViZGl2aXNpb25BbGluZWFzVGV4dCEucHVzaChsaW5lVGV4dClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGluZUVsZW1lbnRzID0gW11cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgXCJERUxcIjoge1xuICAgICAgICAgICAgbGluZUVsZW1lbnRzIS5wdXNoKHBhcmFncmFwaENoaWxkISlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgXCJJTUdcIjoge1xuICAgICAgICAgICAgbGluZUVsZW1lbnRzIS5wdXNoKHBhcmFncmFwaENoaWxkISlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgXCJTUEFOXCI6IHtcbiAgICAgICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IHBhcmFncmFwaENoaWxkIS5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKVxuICAgICAgICAgICAgc3dpdGNoIChjbGFzc05hbWUpIHtcbiAgICAgICAgICAgICAgY2FzZSBcImFFbG9pUGFzdGlsbGVcIjoge1xuICAgICAgICAgICAgICAgIC8vIFNraXAgcGFzdGlsbMOpIFNQQU4uXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjYXNlIFwiYUVsb2lQYXN0aWxsZTBcIjoge1xuICAgICAgICAgICAgICAgIC8vIFNraXAgcGFzdGlsbMOpIFNQQU4uXG4gICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGxpbmVFbGVtZW50cyEucHVzaChwYXJhZ3JhcGhDaGlsZCEpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICAgICAgICBjb2RlOiAtMyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBgVW5leHBlY3RlZCB0YWcgbmFtZSBmb3IgcGFyYWdyYXBoIGNoaWxkOiAke1xuICAgICAgICAgICAgICAgICAgcGFyYWdyYXBoQ2hpbGQhLnRhZ05hbWVcbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaHRtbCxcbiAgICAgICAgICAgICAgcGFnZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzdGF0ZSA9IFwibmV4dFBhcmFncmFwaENoaWxkXCJcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgXCJzdWJBbGluZWFFbGVtZW50XCI6XG4gICAgICAgIHN3aXRjaCAoc3ViQWxpbmVhRWxlbWVudCEudGFnTmFtZSkge1xuICAgICAgICAgIGNhc2UgXCJQXCI6XG4gICAgICAgICAgICBuZXh0UGFyZW50U3RhdGUgPSBcIm5leHRTdWJBbGluZWFFbGVtZW50XCJcbiAgICAgICAgICAgIHBhcmFncmFwaEVsZW1lbnQgPSBzdWJBbGluZWFFbGVtZW50XG4gICAgICAgICAgICBzdGF0ZSA9IFwiZmlyc3RQYXJhZ3JhcGhDaGlsZFwiXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgXCJUQUJMRVwiOlxuICAgICAgICAgICAgLy8gVE9ET1xuICAgICAgICAgICAgc3RhdGUgPSBcIm5leHRTdWJBbGluZWFFbGVtZW50XCJcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgICAgICAgY29kZTogLTQsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogYFVuZXhwZWN0ZWQgdGFnIG5hbWUgZm9yIHN1YiBhbGluZWEgZWxlbWVudDogJHtcbiAgICAgICAgICAgICAgICAgIHN1YkFsaW5lYUVsZW1lbnQhLnRhZ05hbWVcbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaHRtbCxcbiAgICAgICAgICAgICAgcGFnZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgICBzdGF0ZSA9IFwibmV4dFN1YkFsaW5lYUVsZW1lbnRcIlxuICAgICAgICBicmVha1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgYFVuZXhwZWN0ZWQgc3RhdGU6ICR7c3RhdGV9YFxuICAgIH1cbiAgfVxuXG4gIHdpbmRvdy5jbG9zZSgpIC8vIEZyZWUgbWVtb3J5LlxuXG4gIHJldHVybiB7XG4gICAgZXJyb3I6IG51bGwsXG4gICAgaHRtbCxcbiAgICBwYWdlLFxuICAgIHN1YmRpdmlzaW9ucyxcbiAgICB1cmw6IGFzc2VtYmxlZVVybCxcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmV0cmlldmVUZXh0ZUxvaVBhcnNlZChcbiAgZmV0Y2g6IChcbiAgICB1cmw6IHN0cmluZyB8IFJlcXVlc3QsXG4gICAgaW5pdD86IFJlcXVlc3RJbml0IHwgdW5kZWZpbmVkLFxuICApID0+IFByb21pc2U8UmVzcG9uc2U+LFxuICBhc3NlbWJsZWVVcmw6IHN0cmluZyxcbikge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGFzc2VtYmxlZVVybClcbiAgY29uc3QgcGFnZSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKVxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVycm9yOiB7IGNvZGU6IHJlc3BvbnNlLnN0YXR1cywgbWVzc2FnZTogcmVzcG9uc2Uuc3RhdHVzVGV4dCB9LFxuICAgICAgcGFnZSxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHBhcnNlVGV4dGVMb2koYXNzZW1ibGVlVXJsLCBwYWdlKVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFQLE1BQW1CLFFBQW5CO0FBQ0EsU0FBU0MsS0FBVCxRQUFzQixPQUF0QjtBQUVBLE9BQU8sU0FBU0MsYUFBVCxDQUF1QkMsWUFBdkIsRUFBNkNDLElBQTdDLEVBQTJEO0VBQ2hFO0VBQ0EsTUFBTUMsWUFBWSxHQUFHRCxJQUFJLENBQUNFLEtBQUwsQ0FBVyxVQUFYLENBQXJCO0VBQ0FOLE1BQU0sQ0FBQ08sV0FBUCxDQUFtQkYsWUFBWSxDQUFDRyxNQUFoQyxFQUF3QyxDQUF4QyxFQUEyQ0osSUFBM0M7RUFDQSxJQUFJSyxJQUFJLEdBQUdKLFlBQVksQ0FBQyxDQUFELENBQVosQ0FBZ0JLLElBQWhCLEVBQVg7RUFDQVYsTUFBTSxDQUFDUyxJQUFJLENBQUNFLFVBQUwsQ0FBZ0IsTUFBaEIsQ0FBRCxDQUFOO0VBQ0FYLE1BQU0sQ0FBQ1MsSUFBSSxDQUFDRyxRQUFMLENBQWMsUUFBZCxDQUFELENBQU47RUFDQUgsSUFBSSxHQUFJLFFBQU9BLElBQUksQ0FBQ0ksU0FBTCxDQUFlLENBQWYsRUFBa0JKLElBQUksQ0FBQ0QsTUFBTCxHQUFjLENBQWhDLENBQW1DLFNBQWxELENBUGdFLENBU2hFOztFQUNBLE1BQU07SUFBRU07RUFBRixJQUFhLElBQUliLEtBQUosQ0FBVVEsSUFBVixDQUFuQjtF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
@@ -33,4 +33,4 @@ Object.defineProperty(exports, "retrieveTexteLoiParsed", {
33
33
  var _documents = require("./documents");
34
34
 
35
35
  var _recherche_amendements = require("./recherche_amendements");
36
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBwYXJzZVRleHRlTG9pLCByZXRyaWV2ZVRleHRlTG9pUGFyc2VkIH0gZnJvbSBcIi4vZG9jdW1lbnRzXCJcbmV4cG9ydCB7XG4gIGl0ZXJSZWNoZXJjaGVBbWVuZGVtZW50cyxcbiAgaXRlclJlY2hlcmNoZVJhd0FtZW5kZW1lbnRzLFxufSBmcm9tIFwiLi9yZWNoZXJjaGVfYW1lbmRlbWVudHNcIlxuIl19
36
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BhcnNlcnMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgcGFyc2VUZXh0ZUxvaSwgcmV0cmlldmVUZXh0ZUxvaVBhcnNlZCB9IGZyb20gXCIuL2RvY3VtZW50c1wiXG5leHBvcnQge1xuICBpdGVyUmVjaGVyY2hlQW1lbmRlbWVudHMsXG4gIGl0ZXJSZWNoZXJjaGVSYXdBbWVuZGVtZW50cyxcbn0gZnJvbSBcIi4vcmVjaGVyY2hlX2FtZW5kZW1lbnRzXCJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQSJ9
@@ -1,3 +1,3 @@
1
1
  export { parseTexteLoi, retrieveTexteLoiParsed } from "./documents.mjs";
2
2
  export { iterRechercheAmendements, iterRechercheRawAmendements } from "./recherche_amendements.mjs";
3
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbInBhcnNlVGV4dGVMb2kiLCJyZXRyaWV2ZVRleHRlTG9pUGFyc2VkIiwiaXRlclJlY2hlcmNoZUFtZW5kZW1lbnRzIiwiaXRlclJlY2hlcmNoZVJhd0FtZW5kZW1lbnRzIl0sIm1hcHBpbmdzIjoiU0FBU0EsYSxFQUFlQyxzQjtTQUV0QkMsd0IsRUFDQUMsMkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBwYXJzZVRleHRlTG9pLCByZXRyaWV2ZVRleHRlTG9pUGFyc2VkIH0gZnJvbSBcIi4vZG9jdW1lbnRzXCJcbmV4cG9ydCB7XG4gIGl0ZXJSZWNoZXJjaGVBbWVuZGVtZW50cyxcbiAgaXRlclJlY2hlcmNoZVJhd0FtZW5kZW1lbnRzLFxufSBmcm9tIFwiLi9yZWNoZXJjaGVfYW1lbmRlbWVudHNcIlxuIl19
3
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXJzZVRleHRlTG9pIiwicmV0cmlldmVUZXh0ZUxvaVBhcnNlZCIsIml0ZXJSZWNoZXJjaGVBbWVuZGVtZW50cyIsIml0ZXJSZWNoZXJjaGVSYXdBbWVuZGVtZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXJzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHBhcnNlVGV4dGVMb2ksIHJldHJpZXZlVGV4dGVMb2lQYXJzZWQgfSBmcm9tIFwiLi9kb2N1bWVudHNcIlxuZXhwb3J0IHtcbiAgaXRlclJlY2hlcmNoZUFtZW5kZW1lbnRzLFxuICBpdGVyUmVjaGVyY2hlUmF3QW1lbmRlbWVudHMsXG59IGZyb20gXCIuL3JlY2hlcmNoZV9hbWVuZGVtZW50c1wiXG4iXSwibWFwcGluZ3MiOiJTQUFTQSxhLEVBQWVDLHNCO1NBRXRCQyx3QixFQUNBQywyQiJ9
@@ -1,21 +1,39 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
3
5
  require("core-js/modules/es.array.is-array.js");
4
6
 
5
7
  require("core-js/modules/es.function.name.js");
6
8
 
7
9
  require("core-js/modules/es.array.from.js");
8
10
 
11
+ require("core-js/modules/es.symbol.to-string-tag.js");
12
+
13
+ require("core-js/modules/es.json.to-string-tag.js");
14
+
15
+ require("core-js/modules/es.math.to-string-tag.js");
16
+
9
17
  require("core-js/modules/es.object.define-property.js");
10
18
 
19
+ require("core-js/modules/es.object.create.js");
20
+
21
+ require("core-js/modules/es.object.get-prototype-of.js");
22
+
23
+ require("core-js/modules/es.array.for-each.js");
24
+
25
+ require("core-js/modules/web.dom-collections.for-each.js");
26
+
27
+ require("core-js/modules/es.object.set-prototype-of.js");
28
+
29
+ require("core-js/modules/es.array.reverse.js");
30
+
11
31
  Object.defineProperty(exports, "__esModule", {
12
32
  value: true
13
33
  });
14
34
  exports.iterRechercheAmendements = iterRechercheAmendements;
15
35
  exports.iterRechercheRawAmendements = iterRechercheRawAmendements;
16
36
 
17
- require("regenerator-runtime/runtime.js");
18
-
19
37
  require("core-js/modules/es.object.to-string.js");
20
38
 
21
39
  require("core-js/modules/es.promise.js");
@@ -102,6 +120,8 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr
102
120
 
103
121
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
104
122
 
123
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
124
+
105
125
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
106
126
 
107
127
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -139,7 +159,7 @@ function iterRechercheAmendements(_x, _x2, _x3, _x4, _x5) {
139
159
  }
140
160
 
141
161
  function _iterRechercheAmendements() {
142
- _iterRechercheAmendements = _wrapAsyncGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(amendementsSearchCacheDir, url, incremental, minDateDepot, minDateExamen) {
162
+ _iterRechercheAmendements = _wrapAsyncGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(amendementsSearchCacheDir, url, incremental, minDateDepot, minDateExamen) {
143
163
  var options,
144
164
  _iteratorAbruptCompletion,
145
165
  _didIteratorError,
@@ -151,7 +171,7 @@ function _iterRechercheAmendements() {
151
171
  amendement,
152
172
  _args = arguments;
153
173
 
154
- return regeneratorRuntime.wrap(function _callee$(_context) {
174
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
155
175
  while (1) {
156
176
  switch (_context.prev = _context.next) {
157
177
  case 0:
@@ -235,7 +255,7 @@ function iterRechercheRawAmendements(_x6, _x7, _x8, _x9, _x10) {
235
255
  }
236
256
 
237
257
  function _iterRechercheRawAmendements() {
238
- _iterRechercheRawAmendements = _wrapAsyncGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(amendementsSearchCacheDir, url, incremental, minDateDepot, minDateExamen) {
258
+ _iterRechercheRawAmendements = _wrapAsyncGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(amendementsSearchCacheDir, url, incremental, minDateDepot, minDateExamen) {
239
259
  var options,
240
260
  amendementNumber,
241
261
  response,
@@ -277,7 +297,7 @@ function _iterRechercheRawAmendements() {
277
297
  urlPath,
278
298
  _args2 = arguments;
279
299
 
280
- return regeneratorRuntime.wrap(function _callee2$(_context2) {
300
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
281
301
  while (1) {
282
302
  switch (_context2.prev = _context2.next) {
283
303
  case 0:
@@ -609,4 +629,4 @@ function _iterRechercheRawAmendements() {
609
629
  }));
610
630
  return _iterRechercheRawAmendements.apply(this, arguments);
611
631
  }
612
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXJzL3JlY2hlcmNoZV9hbWVuZGVtZW50cy50cyJdLCJuYW1lcyI6WyJpdGVyUmVjaGVyY2hlQW1lbmRlbWVudHMiLCJhbWVuZGVtZW50c1NlYXJjaENhY2hlRGlyIiwidXJsIiwiaW5jcmVtZW50YWwiLCJtaW5EYXRlRGVwb3QiLCJtaW5EYXRlRXhhbWVuIiwib3B0aW9ucyIsIml0ZXJSZWNoZXJjaGVSYXdBbWVuZGVtZW50cyIsImFtZW5kZW1lbnRVcmxQYXRoIiwiYW1lbmRlbWVudCIsIkFtZW5kZW1lbnRzQ29udmVydCIsInRvQW1lbmRlbWVudCIsIkpTT04iLCJzdHJpbmdpZnkiLCJmcyIsImVuc3VyZURpciIsImFzc2VydCIsInN0cmljdEVxdWFsIiwiZXhlYyIsIm5vdFN0cmljdEVxdWFsIiwiaW5jbHVkZXMiLCJhbWVuZGVtZW50TnVtYmVyIiwidmVyYm9zZSIsImNvbnNvbGUiLCJsb2ciLCJyZXNwb25zZSIsIm9rIiwic3RhdHVzIiwic3RhdHVzVGV4dCIsInRleHQiLCJwYWdlIiwiaHRtbCIsInF1ZXJ5U2VsZWN0b3IiLCJhbWVuZGVtZW50c0NvdW50RGl2IiwiYW1lbmRlbWVudHNDb3VudCIsInBhcnNlSW50IiwiYW1lbmRlbWVudHNEaXYiLCJhbWVuZGVtZW50c1RhYmxlIiwidGZvb3RUciIsInRmb290VHJDZWxscyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJtYXAiLCJjZWxsIiwiYW1lbmRlbWVudHNUciIsImxlbmd0aCIsImFtZW5kZW1lbnRUciIsImFtZW5kZW1lbnRUZExpc3QiLCJvdXRlckhUTUwiLCJkYXRlRGVwb3RUZCIsImRhdGVEZXBvdCIsIkRhdGUiLCJsb2NhbGUiLCJmciIsInJlcHJlc2VudGF0aW9uIiwiZGF0ZUV4YW1lblRkIiwiZGF0ZUV4YW1lbiIsImdldEF0dHJpYnV0ZSIsInVuZGVmaW5lZCIsImFtZW5kZW1lbnRVcmxQYXRoU3BsaXR0ZWQiLCJzcGxpdCIsImFtZW5kZW1lbnRTZWFyY2hDYWNoZUZpbGVQYXRoIiwicGF0aCIsImpvaW4iLCJzbGljZSIsImRpcm5hbWUiLCJwYXRoRXhpc3RzIiwicmVhZEZpbGUiLCJleGlzdGluZ0FtZW5kZW1lbnRTZWFyY2hDYWNoZSIsImFtZW5kZW1lbnRUck91dGVySHRtbCIsImFtZW5kZW1lbnRTZWFyY2hDYWNoZSIsImpzWWFtbCIsImR1bXAiLCJwb3NpdGlvbiIsInNlYXJjaCIsInJlcGxhY2UiLCJzb3J0S2V5cyIsImJvZHkiLCJhbWVuZGVtZW50SHRtbFVybCIsIlVSTCIsInRvU3RyaW5nIiwiYW1lbmRlbWVudEh0bWxSZXNwb25zZSIsImFtZW5kZW1lbnRIdG1sUGFnZSIsImFtZW5kZW1lbnRIdG1sIiwiZm9ybWF0c0xpIiwianNvbkxpIiwiZmluZCIsImZvcm1hdExpIiwiZm9ybWF0U3BhbiIsImpzb25BIiwiYW1lbmRlbWVudEpzb25VcmxQYXRoIiwiYW1lbmRlbWVudEpzb25VcmwiLCJhbWVuZGVtZW50SnNvblJlc3BvbnNlIiwianNvbiIsIndyaXRlRmlsZSIsInBhZ2luYXRpb25BIiwidXJsUGF0aCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0FFdUJBLHdCOzs7Ozt3RkFBaEIsaUJBQ0xDLHlCQURLLEVBRUxDLEdBRkssRUFHTEMsV0FISyxFQUlMQyxZQUpLLEVBS0xDLGFBTEs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1MQyxZQUFBQSxPQU5LLDJEQU04QyxFQU45QztBQUFBO0FBQUE7QUFBQTtBQUFBLHVDQVdBQywyQkFBMkIsQ0FD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QTs7QUFBQTs7QUFBQTtBQW9RR0MsWUFBQUEsT0FwUUgsR0FvUWFELFdBQVcsQ0FBQ3RDLFlBQVosQ0FBeUIsTUFBekIsQ0FwUWI7O0FBcVFIeEMsK0JBQU9HLGNBQVAsQ0FBc0I0RSxPQUF0QixFQUErQnRDLFNBQS9COztBQUNBdkQsWUFBQUEsR0FBRyxHQUFHLElBQUk0RSxHQUFKLENBQVFpQixPQUFSLEVBQWtCLHFDQUFsQixFQUF5RGhCLFFBQXpELEVBQU47QUF0UUc7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCBmb3JtYXRJU08gZnJvbSBcImRhdGUtZm5zL2Zvcm1hdElTT1wiXG5pbXBvcnQgeyBmciB9IGZyb20gXCJkYXRlLWZucy9sb2NhbGVcIlxuaW1wb3J0IHBhcnNlRGF0ZSBmcm9tIFwiZGF0ZS1mbnMvcGFyc2VcIlxuaW1wb3J0IGRlZXBFcXVhbCBmcm9tIFwiZGVlcC1lcXVhbFwiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBmcm9udE1hdHRlciBmcm9tIFwiZnJvbnQtbWF0dGVyXCJcbmltcG9ydCBqc1lhbWwgZnJvbSBcImpzLXlhbWxcIlxuaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCJcbmltcG9ydCB7IHBhcnNlIGFzIHBhcnNlSHRtbCB9IGZyb20gXCJub2RlLWh0bWwtcGFyc2VyXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuaW1wb3J0IHsgY2xlYW5BbWVuZGVtZW50IH0gZnJvbSBcIi4uL2NsZWFuZXJzXCJcbmltcG9ydCB7IEFtZW5kZW1lbnQgYXMgUmF3QW1lbmRlbWVudCB9IGZyb20gXCIuLi9yYXdfdHlwZXMvYW1lbmRlbWVudHNcIlxuaW1wb3J0IHsgQW1lbmRlbWVudCwgQ29udmVydCBhcyBBbWVuZGVtZW50c0NvbnZlcnQgfSBmcm9tIFwiLi4vdHlwZXMvYW1lbmRlbWVudHNcIlxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24qIGl0ZXJSZWNoZXJjaGVBbWVuZGVtZW50cyhcbiAgYW1lbmRlbWVudHNTZWFyY2hDYWNoZURpcjogc3RyaW5nLFxuICB1cmw6IHN0cmluZyxcbiAgaW5jcmVtZW50YWw6IGJvb2xlYW4sXG4gIG1pbkRhdGVEZXBvdD86IHN0cmluZyB8IG51bGwsXG4gIG1pbkRhdGVFeGFtZW4/OiBzdHJpbmcgfCBudWxsLFxuICBvcHRpb25zOiB7IHNpbGVudD86IGJvb2xlYW47IHZlcmJvc2U/OiBib29sZWFuIH0gPSB7fSxcbik6IEFzeW5jR2VuZXJhdG9yPFtzdHJpbmcsIEFtZW5kZW1lbnRdLCB2b2lkLCB1bmtub3duPiB7XG4gIGZvciBhd2FpdCAoY29uc3QgW1xuICAgIGFtZW5kZW1lbnRVcmxQYXRoLFxuICAgIGFtZW5kZW1lbnQsXG4gIF0gb2YgaXRlclJlY2hlcmNoZVJhd0FtZW5kZW1lbnRzKFxuICAgIGFtZW5kZW1lbnRzU2VhcmNoQ2FjaGVEaXIsXG4gICAgdXJsLFxuICAgIGluY3JlbWVudGFsLFxuICAgIG1pbkRhdGVEZXBvdCxcbiAgICBtaW5EYXRlRXhhbWVuLFxuICAgIG9wdGlvbnMsXG4gICkpIHtcbiAgICBjbGVhbkFtZW5kZW1lbnQoYW1lbmRlbWVudClcbiAgICAvLyBEb3VibGUgY29udmVyc2lvbiwgdG8gY29udmVydCBzdHJpbmdzIHRvIGRhdGVzLlxuICAgIHlpZWxkIFtcbiAgICAgIGFtZW5kZW1lbnRVcmxQYXRoLFxuICAgICAgQW1lbmRlbWVudHNDb252ZXJ0LnRvQW1lbmRlbWVudChKU09OLnN0cmluZ2lmeShhbWVuZGVtZW50KSksXG4gICAgXVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiogaXRlclJlY2hlcmNoZVJhd0FtZW5kZW1lbnRzKFxuICBhbWVuZGVtZW50c1NlYXJjaENhY2hlRGlyOiBzdHJpbmcsXG4gIHVybDogc3RyaW5nLFxuICBpbmNyZW1lbnRhbDogYm9vbGVhbixcbiAgbWluRGF0ZURlcG90Pzogc3RyaW5nIHwgbnVsbCxcbiAgbWluRGF0ZUV4YW1lbj86IHN0cmluZyB8IG51bGwsXG4gIG9wdGlvbnM6IHsgc2lsZW50PzogYm9vbGVhbjsgdmVyYm9zZT86IGJvb2xlYW4gfSA9IHt9LFxuKTogQXN5bmNHZW5lcmF0b3I8W3N0cmluZywgUmF3QW1lbmRlbWVudF0sIHZvaWQsIHVua25vd24+IHtcbiAgYXdhaXQgZnMuZW5zdXJlRGlyKGFtZW5kZW1lbnRzU2VhcmNoQ2FjaGVEaXIpXG5cbiAgYXNzZXJ0LnN0cmljdEVxdWFsKFxuICAgIC9bPyZdZGF0ZV9kZXBvdD0vLmV4ZWModXJsKSxcbiAgICBudWxsLFxuICAgIGBVUkwgJHt1cmx9IGFscmVhZHkgY29udGFpbnMgYSBkZXBvc2l0IGRhdGVgLFxuICApXG4gIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAvWz8mXW9yZGVyPS8uZXhlYyh1cmwpLFxuICAgIG51bGwsXG4gICAgYFVSTCAke3VybH0gYWxyZWFkeSBjb250YWlucyBhIHNvcnQgb3JkZXJgLFxuICApXG4gIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAvWz8mXXBhZ2U9Ly5leGVjKHVybCksXG4gICAgbnVsbCxcbiAgICBgVVJMICR7dXJsfSBhbHJlYWR5IGNvbnRhaW5zIGEgcGFnZSBudW1iZXJgLFxuICApXG4gIGlmIChpbmNyZW1lbnRhbCkge1xuICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICAgIC9bPyZdZXRhdD0vLmV4ZWModXJsKSxcbiAgICAgIG51bGwsXG4gICAgICBgSW4gaW5jcmVtZW50YWwgbW9kZSwgVVJMICR7dXJsfSBtdXN0IGNvbnRhaW4gYW4gXCJldGF0XCIgcXVlcnkgcGFyYW1ldGVyYCxcbiAgICApXG4gIH1cbiAgdXJsICs9ICh1cmwuaW5jbHVkZXMoXCI/XCIpID8gXCImXCIgOiBcIj9cIikgKyBcIm9yZGVyPWRhdGVfZGVwb3QsZGVzYyZwYWdlPTFcIlxuXG4gIGlmIChtaW5EYXRlRGVwb3QgIT0gbnVsbCkge1xuICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICAgIC9cXGR7NH0tXFxkezJ9LVxcZHsyfS8uZXhlYyhtaW5EYXRlRGVwb3QpLFxuICAgICAgbnVsbCxcbiAgICAgIGBJbnZhbGlkIGZvcm1hdCBmb3IgbWluaW11bSBkYXRlOiAke21pbkRhdGVEZXBvdH1gLFxuICAgIClcbiAgfVxuXG4gIGxldCBhbWVuZGVtZW50TnVtYmVyID0gMFxuICBpdGVyU2VhcmNoUGFnZXM6IHdoaWxlICh0cnVlKSB7XG4gICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgY29uc29sZS5sb2coYEZldGNoaW5nIGFtZW5kZW1lbnRzIHNlYXJjaCBwYWdlIGF0ICR7dXJsfeKApmApXG4gICAgfVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKVxuICAgIGFzc2VydChcbiAgICAgIHJlc3BvbnNlLm9rLFxuICAgICAgYFJldHJpZXZhbCBvZiBzZWFyY2ggcGFnZSBhdCAke3VybH0gZmFpbGVkIHdpdGggZXJyb3I6ICR7cmVzcG9uc2Uuc3RhdHVzfSAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCxcbiAgICApXG4gICAgY29uc3QgcGFnZSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKVxuICAgIGNvbnN0IGh0bWwgPSBwYXJzZUh0bWwocGFnZSlcbiAgICBpZiAoaHRtbC5xdWVyeVNlbGVjdG9yKFwiZGl2Lm5vLXJlc3VsdFwiKSAhPT0gbnVsbCkge1xuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY29uc3QgYW1lbmRlbWVudHNDb3VudERpdiA9IGh0bWwucXVlcnlTZWxlY3RvcihcImRpdi5taXJyb3ItY2FyZC1zdWJ0aXRsZVwiKVxuICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChhbWVuZGVtZW50c0NvdW50RGl2LCBudWxsKVxuICAgIGNvbnN0IGFtZW5kZW1lbnRzQ291bnQgPSBwYXJzZUludCgvXFxkKy8uZXhlYyhhbWVuZGVtZW50c0NvdW50RGl2IS50ZXh0KSFbMF0pXG4gICAgY29uc3QgYW1lbmRlbWVudHNEaXYgPSBodG1sLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICBcImRpdi5hbWVuZGVtZW50LWxpc3QtLXJlc3VsdHMtdGFibGVcIixcbiAgICApXG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGFtZW5kZW1lbnRzRGl2LCBudWxsKVxuICAgIGNvbnN0IGFtZW5kZW1lbnRzVGFibGUgPSBhbWVuZGVtZW50c0RpdiEucXVlcnlTZWxlY3RvcihcInRhYmxlXCIpXG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGFtZW5kZW1lbnRzVGFibGUsIG51bGwpXG4gICAgY29uc3QgdGZvb3RUciA9IGFtZW5kZW1lbnRzVGFibGUhLnF1ZXJ5U2VsZWN0b3IoXCJ0Zm9vdCA+IHRyXCIpXG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHRmb290VHIsIG51bGwpXG4gICAgY29uc3QgdGZvb3RUckNlbGxzID0gdGZvb3RUciFcbiAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKFwidGQsIHRoXCIpXG4gICAgICAubWFwKChjZWxsKSA9PiBjZWxsLnRleHQpXG4gICAgYXNzZXJ0KFxuICAgICAgZGVlcEVxdWFsKHRmb290VHJDZWxscywgW1xuICAgICAgICBcIlwiLFxuICAgICAgICBcIm7CsFwiLFxuICAgICAgICBcIkRvc3NpZXIgbMOpZ2lzbGF0aWZcIixcbiAgICAgICAgXCJFbXBsYWNlbWVudFwiLFxuICAgICAgICBcIkF1dGV1clwiLFxuICAgICAgICBcIsOJdGF0XCIsXG4gICAgICAgIFwiU29ydFwiLFxuICAgICAgICBcIkRhdGUgZCdleGFtZW5cIixcbiAgICAgICAgXCJFeGFtaW7DqSBwYXJcIixcbiAgICAgICAgXCJUZXh0ZSB2aXPDqVwiLFxuICAgICAgICBcIkRhdGUgZGUgZMOpcMO0dFwiLFxuICAgICAgXSksXG4gICAgICBgVW5leHBlY3RlZCBjb2x1bW5zIGluICR7SlNPTi5zdHJpbmdpZnkodGZvb3RUckNlbGxzLCBudWxsLCAyKX1gLFxuICAgIClcbiAgICBjb25zdCBhbWVuZGVtZW50c1RyID0gYW1lbmRlbWVudHNUYWJsZSEucXVlcnlTZWxlY3RvckFsbChcInRib2R5ID4gdHJcIilcbiAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoYW1lbmRlbWVudHNUci5sZW5ndGgsIDApXG4gICAgZm9yIChjb25zdCBhbWVuZGVtZW50VHIgb2YgYW1lbmRlbWVudHNUcikge1xuICAgICAgYW1lbmRlbWVudE51bWJlcisrXG5cbiAgICAgIGlmIChtaW5EYXRlRGVwb3QgIT0gbnVsbCB8fCBtaW5EYXRlRXhhbWVuICE9IG51bGwpIHtcbiAgICAgICAgY29uc3QgYW1lbmRlbWVudFRkTGlzdCA9IGFtZW5kZW1lbnRUci5xdWVyeVNlbGVjdG9yQWxsKFwidGRcIilcbiAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFxuICAgICAgICAgIGFtZW5kZW1lbnRUZExpc3QubGVuZ3RoLFxuICAgICAgICAgIDExLFxuICAgICAgICAgIGBVbmV4cGVjdGVkIG51bWJlciBvZiBjb2x1bW5zIGluIGFtZW5kbWVudCByb3c6ICR7YW1lbmRlbWVudFRyLm91dGVySFRNTH1gLFxuICAgICAgICApXG4gICAgICAgIGlmIChtaW5EYXRlRGVwb3QgIT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IGRhdGVEZXBvdFRkID0gYW1lbmRlbWVudFRkTGlzdFsxMF1cbiAgICAgICAgICBjb25zdCBkYXRlRGVwb3QgPSBmb3JtYXRJU08oXG4gICAgICAgICAgICBwYXJzZURhdGUoZGF0ZURlcG90VGQudGV4dCwgXCJkIE1NTU0geVwiLCBuZXcgRGF0ZSgpLCB7IGxvY2FsZTogZnIgfSksXG4gICAgICAgICAgICB7IHJlcHJlc2VudGF0aW9uOiBcImRhdGVcIiB9LFxuICAgICAgICAgIClcbiAgICAgICAgICBpZiAoZGF0ZURlcG90IDwgbWluRGF0ZURlcG90KSB7XG4gICAgICAgICAgICAvLyBTaW5jZSB0aGUgYW1lbmRtZW50cyBhcmUgc29ydGVkIGJ5IGRlcG9zaXQgZGF0ZSwgb25jZSBhbiBhbWVuZG1lbnRcbiAgICAgICAgICAgIC8vIHdpdGggYW4gb2xkIGRlcG9zaXQgZGF0ZSBpcyBlbmNvdW50ZXJlZCwgdGhlIGZ1bGwgc2VhcmNoIGNhbiBiZSBzdG9wcGVkLlxuICAgICAgICAgICAgYnJlYWsgaXRlclNlYXJjaFBhZ2VzXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtaW5EYXRlRXhhbWVuICE9IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBkYXRlRXhhbWVuVGQgPSBhbWVuZGVtZW50VGRMaXN0WzddXG4gICAgICAgICAgaWYgKGRhdGVFeGFtZW5UZC50ZXh0KSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlRXhhbWVuID0gZm9ybWF0SVNPKFxuICAgICAgICAgICAgICBwYXJzZURhdGUoZGF0ZUV4YW1lblRkLnRleHQsIFwiZCBNTU1NIHlcIiwgbmV3IERhdGUoKSwge1xuICAgICAgICAgICAgICAgIGxvY2FsZTogZnIsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB7IHJlcHJlc2VudGF0aW9uOiBcImRhdGVcIiB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKGRhdGVFeGFtZW4gPCBtaW5EYXRlRXhhbWVuKSB7XG4gICAgICAgICAgICAgIC8vIFRoaXMgYW1lbmRtZW50IGhhcyBiZWVuIGRpc2N1c3NlZCBzaW5jZSBhIGZldyBkYXlzLlxuICAgICAgICAgICAgICAvLyA9PiBJZ25vcmUgaXQsIGJlY2F1c2UgaXQgc2hvdWxkIGJlIGluIEFzc2VtYmzDqWUgb3BlbiBkYXRhLlxuICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBhbWVuZGVtZW50VXJsUGF0aCA9IGFtZW5kZW1lbnRUci5nZXRBdHRyaWJ1dGUoXCJkYXRhLWhyZWZcIilcbiAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChhbWVuZGVtZW50VXJsUGF0aCwgdW5kZWZpbmVkKVxuICAgICAgY29uc3QgYW1lbmRlbWVudFVybFBhdGhTcGxpdHRlZCA9IGFtZW5kZW1lbnRVcmxQYXRoIS5zcGxpdChcIi9cIilcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAgICAgYW1lbmRlbWVudFVybFBhdGhTcGxpdHRlZFswXSxcbiAgICAgICAgXCJcIixcbiAgICAgICAgYFVuZXhwZWN0ZWQgVVJMIHBhdGggZm9yIGFtZW5kZW1lbnQ6ICR7YW1lbmRlbWVudFVybFBhdGh9YCxcbiAgICAgIClcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAgICAgYW1lbmRlbWVudFVybFBhdGhTcGxpdHRlZFsxXSxcbiAgICAgICAgXCJkeW5cIixcbiAgICAgICAgYFVuZXhwZWN0ZWQgVVJMIHBhdGggZm9yIGFtZW5kZW1lbnQ6ICR7YW1lbmRlbWVudFVybFBhdGh9YCxcbiAgICAgIClcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRTZWFyY2hDYWNoZUZpbGVQYXRoID1cbiAgICAgICAgcGF0aC5qb2luKFxuICAgICAgICAgIGFtZW5kZW1lbnRzU2VhcmNoQ2FjaGVEaXIsXG4gICAgICAgICAgLi4uYW1lbmRlbWVudFVybFBhdGhTcGxpdHRlZC5zbGljZSgyKSxcbiAgICAgICAgKSArIFwiLmh0bWxcIlxuICAgICAgYXdhaXQgZnMuZW5zdXJlRGlyKHBhdGguZGlybmFtZShhbWVuZGVtZW50U2VhcmNoQ2FjaGVGaWxlUGF0aCkpXG4gICAgICBjb25zdCBleGlzdGluZ0FtZW5kZW1lbnRTZWFyY2hDYWNoZSA9IChhd2FpdCBmcy5wYXRoRXhpc3RzKFxuICAgICAgICBhbWVuZGVtZW50U2VhcmNoQ2FjaGVGaWxlUGF0aCxcbiAgICAgICkpXG4gICAgICAgID8gYXdhaXQgZnMucmVhZEZpbGUoYW1lbmRlbWVudFNlYXJjaENhY2hlRmlsZVBhdGgsIFwidXRmOFwiKVxuICAgICAgICA6IG51bGxcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRUck91dGVySHRtbCA9IGFtZW5kZW1lbnRUci5vdXRlckhUTUxcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRTZWFyY2hDYWNoZSA9IGAtLS1cXG4ke2pzWWFtbC5kdW1wKFxuICAgICAgICB7XG4gICAgICAgICAgcG9zaXRpb246IGFtZW5kZW1lbnRzQ291bnQgLSBhbWVuZGVtZW50TnVtYmVyLFxuICAgICAgICAgIHNlYXJjaDogdXJsLnJlcGxhY2UoLyZwYWdlPVtcXGRdKy8sIFwiXCIpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc29ydEtleXM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICApfS0tLVxcblxcbiR7YW1lbmRlbWVudFRyT3V0ZXJIdG1sfWBcbiAgICAgIGlmIChhbWVuZGVtZW50U2VhcmNoQ2FjaGUgPT09IGV4aXN0aW5nQW1lbmRlbWVudFNlYXJjaENhY2hlKSB7XG4gICAgICAgIGlmIChpbmNyZW1lbnRhbCkge1xuICAgICAgICAgIC8vIFRoZSBzYW1lIDx0cj4gaXMgYWxyZWFkeSBpbiBjYWNoZSBhbmQgaW4gdGhlIHNhbWUgcG9zaXRpb24uXG4gICAgICAgICAgLy8gQXNzdW1lIHRoYXQgZm9sbG93aW5nIGFtZW5kbWVudHMgYXJlIG5vdCBjaGFuZ2VkIGFuZCBzdG9wIGxvb2tpbmdcbiAgICAgICAgICAvLyBmb3IgYW1lbmRtZW50cyB0byB1cHNlcnQuXG4gICAgICAgICAgYnJlYWsgaXRlclNlYXJjaFBhZ2VzXG4gICAgICAgIH1cbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgZXhpc3RpbmdBbWVuZGVtZW50U2VhcmNoQ2FjaGUgIT09IG51bGwgJiZcbiAgICAgICAgZnJvbnRNYXR0ZXIoZXhpc3RpbmdBbWVuZGVtZW50U2VhcmNoQ2FjaGUpLmJvZHkgPT09XG4gICAgICAgICAgYW1lbmRlbWVudFRyT3V0ZXJIdG1sXG4gICAgICApIHtcbiAgICAgICAgLy8gVGhlIHNhbWUgPHRyPiBpcyBhbHJlYWR5IGluIGNhY2hlLCBidXQgaW4gYSBkaWZmZXJlbnQgcG9zaXRpb24uXG4gICAgICAgIC8vIEFzc3VtZSB0aGUgYW1lbmRtZW50IGlzIHVuY2hhbmdlZC5cbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgaWYgKGV4aXN0aW5nQW1lbmRlbWVudFNlYXJjaENhY2hlID09PSBudWxsKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICBgQWRkaW5nIGFtZW5kZW1lbnQgc2VhcmNoIGNhY2hlOiAke2FtZW5kZW1lbnRTZWFyY2hDYWNoZUZpbGVQYXRofeKApmAsXG4gICAgICAgICAgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgYFVwZGF0aW5nIGFtZW5kZW1lbnQgc2VhcmNoIGNhY2hlOiAke2FtZW5kZW1lbnRTZWFyY2hDYWNoZUZpbGVQYXRofeKApmAsXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBhbWVuZGVtZW50SHRtbFVybCA9IG5ldyBVUkwoXG4gICAgICAgIGFtZW5kZW1lbnRVcmxQYXRoISxcbiAgICAgICAgXCJodHRwczovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL1wiLFxuICAgICAgKS50b1N0cmluZygpXG4gICAgICBjb25zdCBhbWVuZGVtZW50SHRtbFJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYW1lbmRlbWVudEh0bWxVcmwpXG4gICAgICBhc3NlcnQoXG4gICAgICAgIGFtZW5kZW1lbnRIdG1sUmVzcG9uc2Uub2ssXG4gICAgICAgIGBSZXRyaWV2YWwgb2YgYW1lbmRlbWVudCBIVE1MIHBhZ2UgYXQgJHthbWVuZGVtZW50SHRtbFVybH0gZmFpbGVkIHdpdGggZXJyb3I6ICR7YW1lbmRlbWVudEh0bWxSZXNwb25zZS5zdGF0dXN9ICR7YW1lbmRlbWVudEh0bWxSZXNwb25zZS5zdGF0dXNUZXh0fWAsXG4gICAgICApXG4gICAgICBjb25zdCBhbWVuZGVtZW50SHRtbFBhZ2UgPSBhd2FpdCBhbWVuZGVtZW50SHRtbFJlc3BvbnNlLnRleHQoKVxuICAgICAgY29uc3QgYW1lbmRlbWVudEh0bWwgPSBwYXJzZUh0bWwoYW1lbmRlbWVudEh0bWxQYWdlKVxuICAgICAgY29uc3QgZm9ybWF0c0xpID0gYW1lbmRlbWVudEh0bWwucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgXCJsaS5taXJyb3ItY2FyZC1oZWFkZXItLW9wdGlvbnMtLWNvbnRlbnQtLWl0ZW1cIixcbiAgICAgIClcbiAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChmb3JtYXRzTGkubGVuZ3RoLCAwKVxuICAgICAgY29uc3QganNvbkxpID0gZm9ybWF0c0xpLmZpbmQoKGZvcm1hdExpKSA9PiB7XG4gICAgICAgIGNvbnN0IGZvcm1hdFNwYW4gPSBmb3JtYXRMaS5xdWVyeVNlbGVjdG9yKFwiYSA+IHNwYW5cIilcbiAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgICAgICAgIGZvcm1hdFNwYW4sXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBgTm8gPHNwYW4+IGluIDxhPiBmb3VuZCBpbiAke2Zvcm1hdExpLnRvU3RyaW5nKCl9YCxcbiAgICAgICAgKVxuICAgICAgICByZXR1cm4gZm9ybWF0U3BhbiEudGV4dCA9PT0gXCJWZXJzaW9uIEpTT05cIlxuICAgICAgfSlcbiAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICAgICAganNvbkxpLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIGBObyBKU09OIHZlcnNpb24gZm91bmQgZm9yIGFtZW5kZW1lbnQgYXQgJHthbWVuZGVtZW50SHRtbFVybH1gLFxuICAgICAgKVxuICAgICAgY29uc3QganNvbkEgPSBqc29uTGkhLnF1ZXJ5U2VsZWN0b3IoXCJhXCIpXG4gICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgICAgIGpzb25BLFxuICAgICAgICBudWxsLFxuICAgICAgICBgTm8gPGE+IGZvdW5kIGluICR7anNvbkxpIS50b1N0cmluZygpfWAsXG4gICAgICApXG4gICAgICBjb25zdCBhbWVuZGVtZW50SnNvblVybFBhdGggPSBqc29uQSEuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKVxuICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgICAgICBhbWVuZGVtZW50SnNvblVybFBhdGgsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgYE5vIFVSTCBmb3VuZCBmb3IgSlNPTiB2ZXJzaW9uIG9mIGFtZW5kZW1lbnQ6ICR7anNvbkxpIS50b1N0cmluZygpfWAsXG4gICAgICApXG4gICAgICBjb25zdCBhbWVuZGVtZW50SnNvblVybCA9IG5ldyBVUkwoXG4gICAgICAgIGFtZW5kZW1lbnRKc29uVXJsUGF0aCEsXG4gICAgICAgIFwiaHR0cHM6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9cIixcbiAgICAgICkudG9TdHJpbmcoKVxuICAgICAgY29uc3QgYW1lbmRlbWVudEpzb25SZXNwb25zZSA9IGF3YWl0IGZldGNoKGFtZW5kZW1lbnRKc29uVXJsKVxuICAgICAgYXNzZXJ0KFxuICAgICAgICBhbWVuZGVtZW50SnNvblJlc3BvbnNlLm9rLFxuICAgICAgICBgUmV0cmlldmFsIG9mIGFtZW5kZW1lbnQgSlNPTiBwYWdlIGF0ICR7YW1lbmRlbWVudEpzb25Vcmx9IGZhaWxlZCB3aXRoIGVycm9yOiAke2FtZW5kZW1lbnRKc29uUmVzcG9uc2Uuc3RhdHVzfSAke2FtZW5kZW1lbnRKc29uUmVzcG9uc2Uuc3RhdHVzVGV4dH1gLFxuICAgICAgKVxuICAgICAgY29uc3QgYW1lbmRlbWVudCA9IGF3YWl0IGFtZW5kZW1lbnRKc29uUmVzcG9uc2UuanNvbigpXG4gICAgICB5aWVsZCBbYW1lbmRlbWVudFVybFBhdGghLCBhbWVuZGVtZW50XVxuXG4gICAgICAvLyBTZWFyY2hDYWNoZSBtdXN0IGJlIHdyaXR0ZW4gYXQgdGhlIGVuZCB0byBlbnN1cmUgdGhhdCBldmVyeXRoaW5nIGlzIGluIGEgY29uc2lzdGVudCBzdGF0ZSxcbiAgICAgIC8vIGV2ZW4gaWYgc2NyaXB0IGZhaWxzIGFicnVwdGx5LlxuICAgICAgYXdhaXQgZnMud3JpdGVGaWxlKFxuICAgICAgICBhbWVuZGVtZW50U2VhcmNoQ2FjaGVGaWxlUGF0aCxcbiAgICAgICAgYW1lbmRlbWVudFNlYXJjaENhY2hlLFxuICAgICAgICBcInV0ZjhcIixcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBwYWdpbmF0aW9uQSA9IGh0bWwucXVlcnlTZWxlY3RvcihcbiAgICAgIFwiZGl2LmFuLXBhZ2luYXRpb24tLWl0ZW0gPiBpLmFuLWljb25zLWNoZXZyb24tcmlnaHQgfiBhXCIsXG4gICAgKVxuICAgIGlmIChwYWdpbmF0aW9uQSA9PT0gbnVsbCkge1xuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY29uc3QgdXJsUGF0aCA9IHBhZ2luYXRpb25BLmdldEF0dHJpYnV0ZShcImhyZWZcIilcbiAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwodXJsUGF0aCwgdW5kZWZpbmVkKVxuICAgIHVybCA9IG5ldyBVUkwodXJsUGF0aCEsIFwiaHR0cHM6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9cIikudG9TdHJpbmcoKVxuICB9XG59XG4iXX0=
632
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpdGVyUmVjaGVyY2hlQW1lbmRlbWVudHMiLCJhbWVuZGVtZW50c1NlYXJjaENhY2hlRGlyIiwidXJsIiwiaW5jcmVtZW50YWwiLCJtaW5EYXRlRGVwb3QiLCJtaW5EYXRlRXhhbWVuIiwib3B0aW9ucyIsIml0ZXJSZWNoZXJjaGVSYXdBbWVuZGVtZW50cyIsImFtZW5kZW1lbnRVcmxQYXRoIiwiYW1lbmRlbWVudCIsImNsZWFuQW1lbmRlbWVudCIsIkFtZW5kZW1lbnRzQ29udmVydCIsInRvQW1lbmRlbWVudCIsIkpTT04iLCJzdHJpbmdpZnkiLCJmcyIsImVuc3VyZURpciIsImFzc2VydCIsInN0cmljdEVxdWFsIiwiZXhlYyIsIm5vdFN0cmljdEVxdWFsIiwiaW5jbHVkZXMiLCJhbWVuZGVtZW50TnVtYmVyIiwidmVyYm9zZSIsImNvbnNvbGUiLCJsb2ciLCJmZXRjaCIsInJlc3BvbnNlIiwib2siLCJzdGF0dXMiLCJzdGF0dXNUZXh0IiwidGV4dCIsInBhZ2UiLCJodG1sIiwicGFyc2VIdG1sIiwicXVlcnlTZWxlY3RvciIsImFtZW5kZW1lbnRzQ291bnREaXYiLCJhbWVuZGVtZW50c0NvdW50IiwicGFyc2VJbnQiLCJhbWVuZGVtZW50c0RpdiIsImFtZW5kZW1lbnRzVGFibGUiLCJ0Zm9vdFRyIiwidGZvb3RUckNlbGxzIiwicXVlcnlTZWxlY3RvckFsbCIsIm1hcCIsImNlbGwiLCJkZWVwRXF1YWwiLCJhbWVuZGVtZW50c1RyIiwibGVuZ3RoIiwiYW1lbmRlbWVudFRyIiwiYW1lbmRlbWVudFRkTGlzdCIsIm91dGVySFRNTCIsImRhdGVEZXBvdFRkIiwiZGF0ZURlcG90IiwiZm9ybWF0SVNPIiwicGFyc2VEYXRlIiwiRGF0ZSIsImxvY2FsZSIsImZyIiwicmVwcmVzZW50YXRpb24iLCJkYXRlRXhhbWVuVGQiLCJkYXRlRXhhbWVuIiwiZ2V0QXR0cmlidXRlIiwidW5kZWZpbmVkIiwiYW1lbmRlbWVudFVybFBhdGhTcGxpdHRlZCIsInNwbGl0IiwiYW1lbmRlbWVudFNlYXJjaENhY2hlRmlsZVBhdGgiLCJwYXRoIiwiam9pbiIsInNsaWNlIiwiZGlybmFtZSIsInBhdGhFeGlzdHMiLCJyZWFkRmlsZSIsImV4aXN0aW5nQW1lbmRlbWVudFNlYXJjaENhY2hlIiwiYW1lbmRlbWVudFRyT3V0ZXJIdG1sIiwiYW1lbmRlbWVudFNlYXJjaENhY2hlIiwianNZYW1sIiwiZHVtcCIsInBvc2l0aW9uIiwic2VhcmNoIiwicmVwbGFjZSIsInNvcnRLZXlzIiwiZnJvbnRNYXR0ZXIiLCJib2R5IiwiYW1lbmRlbWVudEh0bWxVcmwiLCJVUkwiLCJ0b1N0cmluZyIsImFtZW5kZW1lbnRIdG1sUmVzcG9uc2UiLCJhbWVuZGVtZW50SHRtbFBhZ2UiLCJhbWVuZGVtZW50SHRtbCIsImZvcm1hdHNMaSIsImpzb25MaSIsImZpbmQiLCJmb3JtYXRMaSIsImZvcm1hdFNwYW4iLCJqc29uQSIsImFtZW5kZW1lbnRKc29uVXJsUGF0aCIsImFtZW5kZW1lbnRKc29uVXJsIiwiYW1lbmRlbWVudEpzb25SZXNwb25zZSIsImpzb24iLCJ3cml0ZUZpbGUiLCJwYWdpbmF0aW9uQSIsInVybFBhdGgiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFyc2Vycy9yZWNoZXJjaGVfYW1lbmRlbWVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCBmb3JtYXRJU08gZnJvbSBcImRhdGUtZm5zL2Zvcm1hdElTT1wiXG5pbXBvcnQgeyBmciB9IGZyb20gXCJkYXRlLWZucy9sb2NhbGVcIlxuaW1wb3J0IHBhcnNlRGF0ZSBmcm9tIFwiZGF0ZS1mbnMvcGFyc2VcIlxuaW1wb3J0IGRlZXBFcXVhbCBmcm9tIFwiZGVlcC1lcXVhbFwiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBmcm9udE1hdHRlciBmcm9tIFwiZnJvbnQtbWF0dGVyXCJcbmltcG9ydCBqc1lhbWwgZnJvbSBcImpzLXlhbWxcIlxuaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCJcbmltcG9ydCB7IHBhcnNlIGFzIHBhcnNlSHRtbCB9IGZyb20gXCJub2RlLWh0bWwtcGFyc2VyXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuaW1wb3J0IHsgY2xlYW5BbWVuZGVtZW50IH0gZnJvbSBcIi4uL2NsZWFuZXJzXCJcbmltcG9ydCB7IEFtZW5kZW1lbnQgYXMgUmF3QW1lbmRlbWVudCB9IGZyb20gXCIuLi9yYXdfdHlwZXMvYW1lbmRlbWVudHNcIlxuaW1wb3J0IHsgQW1lbmRlbWVudCwgQ29udmVydCBhcyBBbWVuZGVtZW50c0NvbnZlcnQgfSBmcm9tIFwiLi4vdHlwZXMvYW1lbmRlbWVudHNcIlxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24qIGl0ZXJSZWNoZXJjaGVBbWVuZGVtZW50cyhcbiAgYW1lbmRlbWVudHNTZWFyY2hDYWNoZURpcjogc3RyaW5nLFxuICB1cmw6IHN0cmluZyxcbiAgaW5jcmVtZW50YWw6IGJvb2xlYW4sXG4gIG1pbkRhdGVEZXBvdD86IHN0cmluZyB8IG51bGwsXG4gIG1pbkRhdGVFeGFtZW4/OiBzdHJpbmcgfCBudWxsLFxuICBvcHRpb25zOiB7IHNpbGVudD86IGJvb2xlYW47IHZlcmJvc2U/OiBib29sZWFuIH0gPSB7fSxcbik6IEFzeW5jR2VuZXJhdG9yPFtzdHJpbmcsIEFtZW5kZW1lbnRdLCB2b2lkLCB1bmtub3duPiB7XG4gIGZvciBhd2FpdCAoY29uc3QgW1xuICAgIGFtZW5kZW1lbnRVcmxQYXRoLFxuICAgIGFtZW5kZW1lbnQsXG4gIF0gb2YgaXRlclJlY2hlcmNoZVJhd0FtZW5kZW1lbnRzKFxuICAgIGFtZW5kZW1lbnRzU2VhcmNoQ2FjaGVEaXIsXG4gICAgdXJsLFxuICAgIGluY3JlbWVudGFsLFxuICAgIG1pbkRhdGVEZXBvdCxcbiAgICBtaW5EYXRlRXhhbWVuLFxuICAgIG9wdGlvbnMsXG4gICkpIHtcbiAgICBjbGVhbkFtZW5kZW1lbnQoYW1lbmRlbWVudClcbiAgICAvLyBEb3VibGUgY29udmVyc2lvbiwgdG8gY29udmVydCBzdHJpbmdzIHRvIGRhdGVzLlxuICAgIHlpZWxkIFtcbiAgICAgIGFtZW5kZW1lbnRVcmxQYXRoLFxuICAgICAgQW1lbmRlbWVudHNDb252ZXJ0LnRvQW1lbmRlbWVudChKU09OLnN0cmluZ2lmeShhbWVuZGVtZW50KSksXG4gICAgXVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiogaXRlclJlY2hlcmNoZVJhd0FtZW5kZW1lbnRzKFxuICBhbWVuZGVtZW50c1NlYXJjaENhY2hlRGlyOiBzdHJpbmcsXG4gIHVybDogc3RyaW5nLFxuICBpbmNyZW1lbnRhbDogYm9vbGVhbixcbiAgbWluRGF0ZURlcG90Pzogc3RyaW5nIHwgbnVsbCxcbiAgbWluRGF0ZUV4YW1lbj86IHN0cmluZyB8IG51bGwsXG4gIG9wdGlvbnM6IHsgc2lsZW50PzogYm9vbGVhbjsgdmVyYm9zZT86IGJvb2xlYW4gfSA9IHt9LFxuKTogQXN5bmNHZW5lcmF0b3I8W3N0cmluZywgUmF3QW1lbmRlbWVudF0sIHZvaWQsIHVua25vd24+IHtcbiAgYXdhaXQgZnMuZW5zdXJlRGlyKGFtZW5kZW1lbnRzU2VhcmNoQ2FjaGVEaXIpXG5cbiAgYXNzZXJ0LnN0cmljdEVxdWFsKFxuICAgIC9bPyZdZGF0ZV9kZXBvdD0vLmV4ZWModXJsKSxcbiAgICBudWxsLFxuICAgIGBVUkwgJHt1cmx9IGFscmVhZHkgY29udGFpbnMgYSBkZXBvc2l0IGRhdGVgLFxuICApXG4gIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAvWz8mXW9yZGVyPS8uZXhlYyh1cmwpLFxuICAgIG51bGwsXG4gICAgYFVSTCAke3VybH0gYWxyZWFkeSBjb250YWlucyBhIHNvcnQgb3JkZXJgLFxuICApXG4gIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAvWz8mXXBhZ2U9Ly5leGVjKHVybCksXG4gICAgbnVsbCxcbiAgICBgVVJMICR7dXJsfSBhbHJlYWR5IGNvbnRhaW5zIGEgcGFnZSBudW1iZXJgLFxuICApXG4gIGlmIChpbmNyZW1lbnRhbCkge1xuICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICAgIC9bPyZdZXRhdD0vLmV4ZWModXJsKSxcbiAgICAgIG51bGwsXG4gICAgICBgSW4gaW5jcmVtZW50YWwgbW9kZSwgVVJMICR7dXJsfSBtdXN0IGNvbnRhaW4gYW4gXCJldGF0XCIgcXVlcnkgcGFyYW1ldGVyYCxcbiAgICApXG4gIH1cbiAgdXJsICs9ICh1cmwuaW5jbHVkZXMoXCI/XCIpID8gXCImXCIgOiBcIj9cIikgKyBcIm9yZGVyPWRhdGVfZGVwb3QsZGVzYyZwYWdlPTFcIlxuXG4gIGlmIChtaW5EYXRlRGVwb3QgIT0gbnVsbCkge1xuICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICAgIC9cXGR7NH0tXFxkezJ9LVxcZHsyfS8uZXhlYyhtaW5EYXRlRGVwb3QpLFxuICAgICAgbnVsbCxcbiAgICAgIGBJbnZhbGlkIGZvcm1hdCBmb3IgbWluaW11bSBkYXRlOiAke21pbkRhdGVEZXBvdH1gLFxuICAgIClcbiAgfVxuXG4gIGxldCBhbWVuZGVtZW50TnVtYmVyID0gMFxuICBpdGVyU2VhcmNoUGFnZXM6IHdoaWxlICh0cnVlKSB7XG4gICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgY29uc29sZS5sb2coYEZldGNoaW5nIGFtZW5kZW1lbnRzIHNlYXJjaCBwYWdlIGF0ICR7dXJsfeKApmApXG4gICAgfVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKVxuICAgIGFzc2VydChcbiAgICAgIHJlc3BvbnNlLm9rLFxuICAgICAgYFJldHJpZXZhbCBvZiBzZWFyY2ggcGFnZSBhdCAke3VybH0gZmFpbGVkIHdpdGggZXJyb3I6ICR7cmVzcG9uc2Uuc3RhdHVzfSAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCxcbiAgICApXG4gICAgY29uc3QgcGFnZSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKVxuICAgIGNvbnN0IGh0bWwgPSBwYXJzZUh0bWwocGFnZSlcbiAgICBpZiAoaHRtbC5xdWVyeVNlbGVjdG9yKFwiZGl2Lm5vLXJlc3VsdFwiKSAhPT0gbnVsbCkge1xuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY29uc3QgYW1lbmRlbWVudHNDb3VudERpdiA9IGh0bWwucXVlcnlTZWxlY3RvcihcImRpdi5taXJyb3ItY2FyZC1zdWJ0aXRsZVwiKVxuICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChhbWVuZGVtZW50c0NvdW50RGl2LCBudWxsKVxuICAgIGNvbnN0IGFtZW5kZW1lbnRzQ291bnQgPSBwYXJzZUludCgvXFxkKy8uZXhlYyhhbWVuZGVtZW50c0NvdW50RGl2IS50ZXh0KSFbMF0pXG4gICAgY29uc3QgYW1lbmRlbWVudHNEaXYgPSBodG1sLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICBcImRpdi5hbWVuZGVtZW50LWxpc3QtLXJlc3VsdHMtdGFibGVcIixcbiAgICApXG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGFtZW5kZW1lbnRzRGl2LCBudWxsKVxuICAgIGNvbnN0IGFtZW5kZW1lbnRzVGFibGUgPSBhbWVuZGVtZW50c0RpdiEucXVlcnlTZWxlY3RvcihcInRhYmxlXCIpXG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGFtZW5kZW1lbnRzVGFibGUsIG51bGwpXG4gICAgY29uc3QgdGZvb3RUciA9IGFtZW5kZW1lbnRzVGFibGUhLnF1ZXJ5U2VsZWN0b3IoXCJ0Zm9vdCA+IHRyXCIpXG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHRmb290VHIsIG51bGwpXG4gICAgY29uc3QgdGZvb3RUckNlbGxzID0gdGZvb3RUciFcbiAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKFwidGQsIHRoXCIpXG4gICAgICAubWFwKChjZWxsKSA9PiBjZWxsLnRleHQpXG4gICAgYXNzZXJ0KFxuICAgICAgZGVlcEVxdWFsKHRmb290VHJDZWxscywgW1xuICAgICAgICBcIlwiLFxuICAgICAgICBcIm7CsFwiLFxuICAgICAgICBcIkRvc3NpZXIgbMOpZ2lzbGF0aWZcIixcbiAgICAgICAgXCJFbXBsYWNlbWVudFwiLFxuICAgICAgICBcIkF1dGV1clwiLFxuICAgICAgICBcIsOJdGF0XCIsXG4gICAgICAgIFwiU29ydFwiLFxuICAgICAgICBcIkRhdGUgZCdleGFtZW5cIixcbiAgICAgICAgXCJFeGFtaW7DqSBwYXJcIixcbiAgICAgICAgXCJUZXh0ZSB2aXPDqVwiLFxuICAgICAgICBcIkRhdGUgZGUgZMOpcMO0dFwiLFxuICAgICAgXSksXG4gICAgICBgVW5leHBlY3RlZCBjb2x1bW5zIGluICR7SlNPTi5zdHJpbmdpZnkodGZvb3RUckNlbGxzLCBudWxsLCAyKX1gLFxuICAgIClcbiAgICBjb25zdCBhbWVuZGVtZW50c1RyID0gYW1lbmRlbWVudHNUYWJsZSEucXVlcnlTZWxlY3RvckFsbChcInRib2R5ID4gdHJcIilcbiAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoYW1lbmRlbWVudHNUci5sZW5ndGgsIDApXG4gICAgZm9yIChjb25zdCBhbWVuZGVtZW50VHIgb2YgYW1lbmRlbWVudHNUcikge1xuICAgICAgYW1lbmRlbWVudE51bWJlcisrXG5cbiAgICAgIGlmIChtaW5EYXRlRGVwb3QgIT0gbnVsbCB8fCBtaW5EYXRlRXhhbWVuICE9IG51bGwpIHtcbiAgICAgICAgY29uc3QgYW1lbmRlbWVudFRkTGlzdCA9IGFtZW5kZW1lbnRUci5xdWVyeVNlbGVjdG9yQWxsKFwidGRcIilcbiAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFxuICAgICAgICAgIGFtZW5kZW1lbnRUZExpc3QubGVuZ3RoLFxuICAgICAgICAgIDExLFxuICAgICAgICAgIGBVbmV4cGVjdGVkIG51bWJlciBvZiBjb2x1bW5zIGluIGFtZW5kbWVudCByb3c6ICR7YW1lbmRlbWVudFRyLm91dGVySFRNTH1gLFxuICAgICAgICApXG4gICAgICAgIGlmIChtaW5EYXRlRGVwb3QgIT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IGRhdGVEZXBvdFRkID0gYW1lbmRlbWVudFRkTGlzdFsxMF1cbiAgICAgICAgICBjb25zdCBkYXRlRGVwb3QgPSBmb3JtYXRJU08oXG4gICAgICAgICAgICBwYXJzZURhdGUoZGF0ZURlcG90VGQudGV4dCwgXCJkIE1NTU0geVwiLCBuZXcgRGF0ZSgpLCB7IGxvY2FsZTogZnIgfSksXG4gICAgICAgICAgICB7IHJlcHJlc2VudGF0aW9uOiBcImRhdGVcIiB9LFxuICAgICAgICAgIClcbiAgICAgICAgICBpZiAoZGF0ZURlcG90IDwgbWluRGF0ZURlcG90KSB7XG4gICAgICAgICAgICAvLyBTaW5jZSB0aGUgYW1lbmRtZW50cyBhcmUgc29ydGVkIGJ5IGRlcG9zaXQgZGF0ZSwgb25jZSBhbiBhbWVuZG1lbnRcbiAgICAgICAgICAgIC8vIHdpdGggYW4gb2xkIGRlcG9zaXQgZGF0ZSBpcyBlbmNvdW50ZXJlZCwgdGhlIGZ1bGwgc2VhcmNoIGNhbiBiZSBzdG9wcGVkLlxuICAgICAgICAgICAgYnJlYWsgaXRlclNlYXJjaFBhZ2VzXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtaW5EYXRlRXhhbWVuICE9IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBkYXRlRXhhbWVuVGQgPSBhbWVuZGVtZW50VGRMaXN0WzddXG4gICAgICAgICAgaWYgKGRhdGVFeGFtZW5UZC50ZXh0KSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlRXhhbWVuID0gZm9ybWF0SVNPKFxuICAgICAgICAgICAgICBwYXJzZURhdGUoZGF0ZUV4YW1lblRkLnRleHQsIFwiZCBNTU1NIHlcIiwgbmV3IERhdGUoKSwge1xuICAgICAgICAgICAgICAgIGxvY2FsZTogZnIsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB7IHJlcHJlc2VudGF0aW9uOiBcImRhdGVcIiB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKGRhdGVFeGFtZW4gPCBtaW5EYXRlRXhhbWVuKSB7XG4gICAgICAgICAgICAgIC8vIFRoaXMgYW1lbmRtZW50IGhhcyBiZWVuIGRpc2N1c3NlZCBzaW5jZSBhIGZldyBkYXlzLlxuICAgICAgICAgICAgICAvLyA9PiBJZ25vcmUgaXQsIGJlY2F1c2UgaXQgc2hvdWxkIGJlIGluIEFzc2VtYmzDqWUgb3BlbiBkYXRhLlxuICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBhbWVuZGVtZW50VXJsUGF0aCA9IGFtZW5kZW1lbnRUci5nZXRBdHRyaWJ1dGUoXCJkYXRhLWhyZWZcIilcbiAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChhbWVuZGVtZW50VXJsUGF0aCwgdW5kZWZpbmVkKVxuICAgICAgY29uc3QgYW1lbmRlbWVudFVybFBhdGhTcGxpdHRlZCA9IGFtZW5kZW1lbnRVcmxQYXRoIS5zcGxpdChcIi9cIilcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAgICAgYW1lbmRlbWVudFVybFBhdGhTcGxpdHRlZFswXSxcbiAgICAgICAgXCJcIixcbiAgICAgICAgYFVuZXhwZWN0ZWQgVVJMIHBhdGggZm9yIGFtZW5kZW1lbnQ6ICR7YW1lbmRlbWVudFVybFBhdGh9YCxcbiAgICAgIClcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAgICAgYW1lbmRlbWVudFVybFBhdGhTcGxpdHRlZFsxXSxcbiAgICAgICAgXCJkeW5cIixcbiAgICAgICAgYFVuZXhwZWN0ZWQgVVJMIHBhdGggZm9yIGFtZW5kZW1lbnQ6ICR7YW1lbmRlbWVudFVybFBhdGh9YCxcbiAgICAgIClcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRTZWFyY2hDYWNoZUZpbGVQYXRoID1cbiAgICAgICAgcGF0aC5qb2luKFxuICAgICAgICAgIGFtZW5kZW1lbnRzU2VhcmNoQ2FjaGVEaXIsXG4gICAgICAgICAgLi4uYW1lbmRlbWVudFVybFBhdGhTcGxpdHRlZC5zbGljZSgyKSxcbiAgICAgICAgKSArIFwiLmh0bWxcIlxuICAgICAgYXdhaXQgZnMuZW5zdXJlRGlyKHBhdGguZGlybmFtZShhbWVuZGVtZW50U2VhcmNoQ2FjaGVGaWxlUGF0aCkpXG4gICAgICBjb25zdCBleGlzdGluZ0FtZW5kZW1lbnRTZWFyY2hDYWNoZSA9IChhd2FpdCBmcy5wYXRoRXhpc3RzKFxuICAgICAgICBhbWVuZGVtZW50U2VhcmNoQ2FjaGVGaWxlUGF0aCxcbiAgICAgICkpXG4gICAgICAgID8gYXdhaXQgZnMucmVhZEZpbGUoYW1lbmRlbWVudFNlYXJjaENhY2hlRmlsZVBhdGgsIFwidXRmOFwiKVxuICAgICAgICA6IG51bGxcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRUck91dGVySHRtbCA9IGFtZW5kZW1lbnRUci5vdXRlckhUTUxcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRTZWFyY2hDYWNoZSA9IGAtLS1cXG4ke2pzWWFtbC5kdW1wKFxuICAgICAgICB7XG4gICAgICAgICAgcG9zaXRpb246IGFtZW5kZW1lbnRzQ291bnQgLSBhbWVuZGVtZW50TnVtYmVyLFxuICAgICAgICAgIHNlYXJjaDogdXJsLnJlcGxhY2UoLyZwYWdlPVtcXGRdKy8sIFwiXCIpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc29ydEtleXM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICApfS0tLVxcblxcbiR7YW1lbmRlbWVudFRyT3V0ZXJIdG1sfWBcbiAgICAgIGlmIChhbWVuZGVtZW50U2VhcmNoQ2FjaGUgPT09IGV4aXN0aW5nQW1lbmRlbWVudFNlYXJjaENhY2hlKSB7XG4gICAgICAgIGlmIChpbmNyZW1lbnRhbCkge1xuICAgICAgICAgIC8vIFRoZSBzYW1lIDx0cj4gaXMgYWxyZWFkeSBpbiBjYWNoZSBhbmQgaW4gdGhlIHNhbWUgcG9zaXRpb24uXG4gICAgICAgICAgLy8gQXNzdW1lIHRoYXQgZm9sbG93aW5nIGFtZW5kbWVudHMgYXJlIG5vdCBjaGFuZ2VkIGFuZCBzdG9wIGxvb2tpbmdcbiAgICAgICAgICAvLyBmb3IgYW1lbmRtZW50cyB0byB1cHNlcnQuXG4gICAgICAgICAgYnJlYWsgaXRlclNlYXJjaFBhZ2VzXG4gICAgICAgIH1cbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgZXhpc3RpbmdBbWVuZGVtZW50U2VhcmNoQ2FjaGUgIT09IG51bGwgJiZcbiAgICAgICAgZnJvbnRNYXR0ZXIoZXhpc3RpbmdBbWVuZGVtZW50U2VhcmNoQ2FjaGUpLmJvZHkgPT09XG4gICAgICAgICAgYW1lbmRlbWVudFRyT3V0ZXJIdG1sXG4gICAgICApIHtcbiAgICAgICAgLy8gVGhlIHNhbWUgPHRyPiBpcyBhbHJlYWR5IGluIGNhY2hlLCBidXQgaW4gYSBkaWZmZXJlbnQgcG9zaXRpb24uXG4gICAgICAgIC8vIEFzc3VtZSB0aGUgYW1lbmRtZW50IGlzIHVuY2hhbmdlZC5cbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgaWYgKGV4aXN0aW5nQW1lbmRlbWVudFNlYXJjaENhY2hlID09PSBudWxsKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICBgQWRkaW5nIGFtZW5kZW1lbnQgc2VhcmNoIGNhY2hlOiAke2FtZW5kZW1lbnRTZWFyY2hDYWNoZUZpbGVQYXRofeKApmAsXG4gICAgICAgICAgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgYFVwZGF0aW5nIGFtZW5kZW1lbnQgc2VhcmNoIGNhY2hlOiAke2FtZW5kZW1lbnRTZWFyY2hDYWNoZUZpbGVQYXRofeKApmAsXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBhbWVuZGVtZW50SHRtbFVybCA9IG5ldyBVUkwoXG4gICAgICAgIGFtZW5kZW1lbnRVcmxQYXRoISxcbiAgICAgICAgXCJodHRwczovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL1wiLFxuICAgICAgKS50b1N0cmluZygpXG4gICAgICBjb25zdCBhbWVuZGVtZW50SHRtbFJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYW1lbmRlbWVudEh0bWxVcmwpXG4gICAgICBhc3NlcnQoXG4gICAgICAgIGFtZW5kZW1lbnRIdG1sUmVzcG9uc2Uub2ssXG4gICAgICAgIGBSZXRyaWV2YWwgb2YgYW1lbmRlbWVudCBIVE1MIHBhZ2UgYXQgJHthbWVuZGVtZW50SHRtbFVybH0gZmFpbGVkIHdpdGggZXJyb3I6ICR7YW1lbmRlbWVudEh0bWxSZXNwb25zZS5zdGF0dXN9ICR7YW1lbmRlbWVudEh0bWxSZXNwb25zZS5zdGF0dXNUZXh0fWAsXG4gICAgICApXG4gICAgICBjb25zdCBhbWVuZGVtZW50SHRtbFBhZ2UgPSBhd2FpdCBhbWVuZGVtZW50SHRtbFJlc3BvbnNlLnRleHQoKVxuICAgICAgY29uc3QgYW1lbmRlbWVudEh0bWwgPSBwYXJzZUh0bWwoYW1lbmRlbWVudEh0bWxQYWdlKVxuICAgICAgY29uc3QgZm9ybWF0c0xpID0gYW1lbmRlbWVudEh0bWwucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgXCJsaS5taXJyb3ItY2FyZC1oZWFkZXItLW9wdGlvbnMtLWNvbnRlbnQtLWl0ZW1cIixcbiAgICAgIClcbiAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChmb3JtYXRzTGkubGVuZ3RoLCAwKVxuICAgICAgY29uc3QganNvbkxpID0gZm9ybWF0c0xpLmZpbmQoKGZvcm1hdExpKSA9PiB7XG4gICAgICAgIGNvbnN0IGZvcm1hdFNwYW4gPSBmb3JtYXRMaS5xdWVyeVNlbGVjdG9yKFwiYSA+IHNwYW5cIilcbiAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgICAgICAgIGZvcm1hdFNwYW4sXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBgTm8gPHNwYW4+IGluIDxhPiBmb3VuZCBpbiAke2Zvcm1hdExpLnRvU3RyaW5nKCl9YCxcbiAgICAgICAgKVxuICAgICAgICByZXR1cm4gZm9ybWF0U3BhbiEudGV4dCA9PT0gXCJWZXJzaW9uIEpTT05cIlxuICAgICAgfSlcbiAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICAgICAganNvbkxpLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIGBObyBKU09OIHZlcnNpb24gZm91bmQgZm9yIGFtZW5kZW1lbnQgYXQgJHthbWVuZGVtZW50SHRtbFVybH1gLFxuICAgICAgKVxuICAgICAgY29uc3QganNvbkEgPSBqc29uTGkhLnF1ZXJ5U2VsZWN0b3IoXCJhXCIpXG4gICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgICAgIGpzb25BLFxuICAgICAgICBudWxsLFxuICAgICAgICBgTm8gPGE+IGZvdW5kIGluICR7anNvbkxpIS50b1N0cmluZygpfWAsXG4gICAgICApXG4gICAgICBjb25zdCBhbWVuZGVtZW50SnNvblVybFBhdGggPSBqc29uQSEuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKVxuICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgICAgICBhbWVuZGVtZW50SnNvblVybFBhdGgsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgYE5vIFVSTCBmb3VuZCBmb3IgSlNPTiB2ZXJzaW9uIG9mIGFtZW5kZW1lbnQ6ICR7anNvbkxpIS50b1N0cmluZygpfWAsXG4gICAgICApXG4gICAgICBjb25zdCBhbWVuZGVtZW50SnNvblVybCA9IG5ldyBVUkwoXG4gICAgICAgIGFtZW5kZW1lbnRKc29uVXJsUGF0aCEsXG4gICAgICAgIFwiaHR0cHM6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9cIixcbiAgICAgICkudG9TdHJpbmcoKVxuICAgICAgY29uc3QgYW1lbmRlbWVudEpzb25SZXNwb25zZSA9IGF3YWl0IGZldGNoKGFtZW5kZW1lbnRKc29uVXJsKVxuICAgICAgYXNzZXJ0KFxuICAgICAgICBhbWVuZGVtZW50SnNvblJlc3BvbnNlLm9rLFxuICAgICAgICBgUmV0cmlldmFsIG9mIGFtZW5kZW1lbnQgSlNPTiBwYWdlIGF0ICR7YW1lbmRlbWVudEpzb25Vcmx9IGZhaWxlZCB3aXRoIGVycm9yOiAke2FtZW5kZW1lbnRKc29uUmVzcG9uc2Uuc3RhdHVzfSAke2FtZW5kZW1lbnRKc29uUmVzcG9uc2Uuc3RhdHVzVGV4dH1gLFxuICAgICAgKVxuICAgICAgY29uc3QgYW1lbmRlbWVudCA9IGF3YWl0IGFtZW5kZW1lbnRKc29uUmVzcG9uc2UuanNvbigpXG4gICAgICB5aWVsZCBbYW1lbmRlbWVudFVybFBhdGghLCBhbWVuZGVtZW50XVxuXG4gICAgICAvLyBTZWFyY2hDYWNoZSBtdXN0IGJlIHdyaXR0ZW4gYXQgdGhlIGVuZCB0byBlbnN1cmUgdGhhdCBldmVyeXRoaW5nIGlzIGluIGEgY29uc2lzdGVudCBzdGF0ZSxcbiAgICAgIC8vIGV2ZW4gaWYgc2NyaXB0IGZhaWxzIGFicnVwdGx5LlxuICAgICAgYXdhaXQgZnMud3JpdGVGaWxlKFxuICAgICAgICBhbWVuZGVtZW50U2VhcmNoQ2FjaGVGaWxlUGF0aCxcbiAgICAgICAgYW1lbmRlbWVudFNlYXJjaENhY2hlLFxuICAgICAgICBcInV0ZjhcIixcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBwYWdpbmF0aW9uQSA9IGh0bWwucXVlcnlTZWxlY3RvcihcbiAgICAgIFwiZGl2LmFuLXBhZ2luYXRpb24tLWl0ZW0gPiBpLmFuLWljb25zLWNoZXZyb24tcmlnaHQgfiBhXCIsXG4gICAgKVxuICAgIGlmIChwYWdpbmF0aW9uQSA9PT0gbnVsbCkge1xuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY29uc3QgdXJsUGF0aCA9IHBhZ2luYXRpb25BLmdldEF0dHJpYnV0ZShcImhyZWZcIilcbiAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwodXJsUGF0aCwgdW5kZWZpbmVkKVxuICAgIHVybCA9IG5ldyBVUkwodXJsUGF0aCEsIFwiaHR0cHM6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9cIikudG9TdHJpbmcoKVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
@@ -184,4 +184,4 @@ export async function* iterRechercheRawAmendements(amendementsSearchCacheDir, ur
184
184
  url = new URL(urlPath, "https://www.assemblee-nationale.fr/").toString();
185
185
  }
186
186
  }
187
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZXJzL3JlY2hlcmNoZV9hbWVuZGVtZW50cy50cyJdLCJuYW1lcyI6WyJhc3NlcnQiLCJmb3JtYXRJU08iLCJmciIsInBhcnNlRGF0ZSIsImRlZXBFcXVhbCIsImZzIiwiZnJvbnRNYXR0ZXIiLCJqc1lhbWwiLCJmZXRjaCIsInBhcnNlIiwicGFyc2VIdG1sIiwicGF0aCIsImNsZWFuQW1lbmRlbWVudCIsIkNvbnZlcnQiLCJBbWVuZGVtZW50c0NvbnZlcnQiLCJpdGVyUmVjaGVyY2hlQW1lbmRlbWVudHMiLCJhbWVuZGVtZW50c1NlYXJjaENhY2hlRGlyIiwidXJsIiwiaW5jcmVtZW50YWwiLCJtaW5EYXRlRGVwb3QiLCJtaW5EYXRlRXhhbWVuIiwib3B0aW9ucyIsImFtZW5kZW1lbnRVcmxQYXRoIiwiYW1lbmRlbWVudCIsIml0ZXJSZWNoZXJjaGVSYXdBbWVuZGVtZW50cyIsInRvQW1lbmRlbWVudCIsIkpTT04iLCJzdHJpbmdpZnkiLCJlbnN1cmVEaXIiLCJzdHJpY3RFcXVhbCIsImV4ZWMiLCJub3RTdHJpY3RFcXVhbCIsImluY2x1ZGVzIiwiYW1lbmRlbWVudE51bWJlciIsIml0ZXJTZWFyY2hQYWdlcyIsInZlcmJvc2UiLCJjb25zb2xlIiwibG9nIiwicmVzcG9uc2UiLCJvayIsInN0YXR1cyIsInN0YXR1c1RleHQiLCJwYWdlIiwidGV4dCIsImh0bWwiLCJxdWVyeVNlbGVjdG9yIiwiYW1lbmRlbWVudHNDb3VudERpdiIsImFtZW5kZW1lbnRzQ291bnQiLCJwYXJzZUludCIsImFtZW5kZW1lbnRzRGl2IiwiYW1lbmRlbWVudHNUYWJsZSIsInRmb290VHIiLCJ0Zm9vdFRyQ2VsbHMiLCJxdWVyeVNlbGVjdG9yQWxsIiwibWFwIiwiY2VsbCIsImFtZW5kZW1lbnRzVHIiLCJsZW5ndGgiLCJhbWVuZGVtZW50VHIiLCJhbWVuZGVtZW50VGRMaXN0Iiwib3V0ZXJIVE1MIiwiZGF0ZURlcG90VGQiLCJkYXRlRGVwb3QiLCJEYXRlIiwibG9jYWxlIiwicmVwcmVzZW50YXRpb24iLCJkYXRlRXhhbWVuVGQiLCJkYXRlRXhhbWVuIiwiZ2V0QXR0cmlidXRlIiwidW5kZWZpbmVkIiwiYW1lbmRlbWVudFVybFBhdGhTcGxpdHRlZCIsInNwbGl0IiwiYW1lbmRlbWVudFNlYXJjaENhY2hlRmlsZVBhdGgiLCJqb2luIiwic2xpY2UiLCJkaXJuYW1lIiwiZXhpc3RpbmdBbWVuZGVtZW50U2VhcmNoQ2FjaGUiLCJwYXRoRXhpc3RzIiwicmVhZEZpbGUiLCJhbWVuZGVtZW50VHJPdXRlckh0bWwiLCJhbWVuZGVtZW50U2VhcmNoQ2FjaGUiLCJkdW1wIiwicG9zaXRpb24iLCJzZWFyY2giLCJyZXBsYWNlIiwic29ydEtleXMiLCJib2R5IiwiYW1lbmRlbWVudEh0bWxVcmwiLCJVUkwiLCJ0b1N0cmluZyIsImFtZW5kZW1lbnRIdG1sUmVzcG9uc2UiLCJhbWVuZGVtZW50SHRtbFBhZ2UiLCJhbWVuZGVtZW50SHRtbCIsImZvcm1hdHNMaSIsImpzb25MaSIsImZpbmQiLCJmb3JtYXRMaSIsImZvcm1hdFNwYW4iLCJqc29uQSIsImFtZW5kZW1lbnRKc29uVXJsUGF0aCIsImFtZW5kZW1lbnRKc29uVXJsIiwiYW1lbmRlbWVudEpzb25SZXNwb25zZSIsImpzb24iLCJ3cml0ZUZpbGUiLCJwYWdpbmF0aW9uQSIsInVybFBhdGgiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQVAsTUFBbUIsUUFBbkI7QUFDQSxPQUFPQyxTQUFQLE1BQXNCLG9CQUF0QjtBQUNBLFNBQVNDLEVBQVQsUUFBbUIsaUJBQW5CO0FBQ0EsT0FBT0MsU0FBUCxNQUFzQixnQkFBdEI7QUFDQSxPQUFPQyxTQUFQLE1BQXNCLFlBQXRCO0FBQ0EsT0FBT0MsRUFBUCxNQUFlLFVBQWY7QUFDQSxPQUFPQyxXQUFQLE1BQXdCLGNBQXhCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixTQUFuQjtBQUNBLE9BQU9DLEtBQVAsTUFBa0IsWUFBbEI7QUFDQSxTQUFTQyxLQUFLLElBQUlDLFNBQWxC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ZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgZm9ybWF0SVNPIGZyb20gXCJkYXRlLWZucy9mb3JtYXRJU09cIlxuaW1wb3J0IHsgZnIgfSBmcm9tIFwiZGF0ZS1mbnMvbG9jYWxlXCJcbmltcG9ydCBwYXJzZURhdGUgZnJvbSBcImRhdGUtZm5zL3BhcnNlXCJcbmltcG9ydCBkZWVwRXF1YWwgZnJvbSBcImRlZXAtZXF1YWxcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgZnJvbnRNYXR0ZXIgZnJvbSBcImZyb250LW1hdHRlclwiXG5pbXBvcnQganNZYW1sIGZyb20gXCJqcy15YW1sXCJcbmltcG9ydCBmZXRjaCBmcm9tIFwibm9kZS1mZXRjaFwiXG5pbXBvcnQgeyBwYXJzZSBhcyBwYXJzZUh0bWwgfSBmcm9tIFwibm9kZS1odG1sLXBhcnNlclwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmltcG9ydCB7IGNsZWFuQW1lbmRlbWVudCB9IGZyb20gXCIuLi9jbGVhbmVyc1wiXG5pbXBvcnQgeyBBbWVuZGVtZW50IGFzIFJhd0FtZW5kZW1lbnQgfSBmcm9tIFwiLi4vcmF3X3R5cGVzL2FtZW5kZW1lbnRzXCJcbmltcG9ydCB7IEFtZW5kZW1lbnQsIENvbnZlcnQgYXMgQW1lbmRlbWVudHNDb252ZXJ0IH0gZnJvbSBcIi4uL3R5cGVzL2FtZW5kZW1lbnRzXCJcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uKiBpdGVyUmVjaGVyY2hlQW1lbmRlbWVudHMoXG4gIGFtZW5kZW1lbnRzU2VhcmNoQ2FjaGVEaXI6IHN0cmluZyxcbiAgdXJsOiBzdHJpbmcsXG4gIGluY3JlbWVudGFsOiBib29sZWFuLFxuICBtaW5EYXRlRGVwb3Q/OiBzdHJpbmcgfCBudWxsLFxuICBtaW5EYXRlRXhhbWVuPzogc3RyaW5nIHwgbnVsbCxcbiAgb3B0aW9uczogeyBzaWxlbnQ/OiBib29sZWFuOyB2ZXJib3NlPzogYm9vbGVhbiB9ID0ge30sXG4pOiBBc3luY0dlbmVyYXRvcjxbc3RyaW5nLCBBbWVuZGVtZW50XSwgdm9pZCwgdW5rbm93bj4ge1xuICBmb3IgYXdhaXQgKGNvbnN0IFtcbiAgICBhbWVuZGVtZW50VXJsUGF0aCxcbiAgICBhbWVuZGVtZW50LFxuICBdIG9mIGl0ZXJSZWNoZXJjaGVSYXdBbWVuZGVtZW50cyhcbiAgICBhbWVuZGVtZW50c1NlYXJjaENhY2hlRGlyLFxuICAgIHVybCxcbiAgICBpbmNyZW1lbnRhbCxcbiAgICBtaW5EYXRlRGVwb3QsXG4gICAgbWluRGF0ZUV4YW1lbixcbiAgICBvcHRpb25zLFxuICApKSB7XG4gICAgY2xlYW5BbWVuZGVtZW50KGFtZW5kZW1lbnQpXG4gICAgLy8gRG91YmxlIGNvbnZlcnNpb24sIHRvIGNvbnZlcnQgc3RyaW5ncyB0byBkYXRlcy5cbiAgICB5aWVsZCBbXG4gICAgICBhbWVuZGVtZW50VXJsUGF0aCxcbiAgICAgIEFtZW5kZW1lbnRzQ29udmVydC50b0FtZW5kZW1lbnQoSlNPTi5zdHJpbmdpZnkoYW1lbmRlbWVudCkpLFxuICAgIF1cbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24qIGl0ZXJSZWNoZXJjaGVSYXdBbWVuZGVtZW50cyhcbiAgYW1lbmRlbWVudHNTZWFyY2hDYWNoZURpcjogc3RyaW5nLFxuICB1cmw6IHN0cmluZyxcbiAgaW5jcmVtZW50YWw6IGJvb2xlYW4sXG4gIG1pbkRhdGVEZXBvdD86IHN0cmluZyB8IG51bGwsXG4gIG1pbkRhdGVFeGFtZW4/OiBzdHJpbmcgfCBudWxsLFxuICBvcHRpb25zOiB7IHNpbGVudD86IGJvb2xlYW47IHZlcmJvc2U/OiBib29sZWFuIH0gPSB7fSxcbik6IEFzeW5jR2VuZXJhdG9yPFtzdHJpbmcsIFJhd0FtZW5kZW1lbnRdLCB2b2lkLCB1bmtub3duPiB7XG4gIGF3YWl0IGZzLmVuc3VyZURpcihhbWVuZGVtZW50c1NlYXJjaENhY2hlRGlyKVxuXG4gIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAvWz8mXWRhdGVfZGVwb3Q9Ly5leGVjKHVybCksXG4gICAgbnVsbCxcbiAgICBgVVJMICR7dXJsfSBhbHJlYWR5IGNvbnRhaW5zIGEgZGVwb3NpdCBkYXRlYCxcbiAgKVxuICBhc3NlcnQuc3RyaWN0RXF1YWwoXG4gICAgL1s/Jl1vcmRlcj0vLmV4ZWModXJsKSxcbiAgICBudWxsLFxuICAgIGBVUkwgJHt1cmx9IGFscmVhZHkgY29udGFpbnMgYSBzb3J0IG9yZGVyYCxcbiAgKVxuICBhc3NlcnQuc3RyaWN0RXF1YWwoXG4gICAgL1s/Jl1wYWdlPS8uZXhlYyh1cmwpLFxuICAgIG51bGwsXG4gICAgYFVSTCAke3VybH0gYWxyZWFkeSBjb250YWlucyBhIHBhZ2UgbnVtYmVyYCxcbiAgKVxuICBpZiAoaW5jcmVtZW50YWwpIHtcbiAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgICAvWz8mXWV0YXQ9Ly5leGVjKHVybCksXG4gICAgICBudWxsLFxuICAgICAgYEluIGluY3JlbWVudGFsIG1vZGUsIFVSTCAke3VybH0gbXVzdCBjb250YWluIGFuIFwiZXRhdFwiIHF1ZXJ5IHBhcmFtZXRlcmAsXG4gICAgKVxuICB9XG4gIHVybCArPSAodXJsLmluY2x1ZGVzKFwiP1wiKSA/IFwiJlwiIDogXCI/XCIpICsgXCJvcmRlcj1kYXRlX2RlcG90LGRlc2MmcGFnZT0xXCJcblxuICBpZiAobWluRGF0ZURlcG90ICE9IG51bGwpIHtcbiAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgICAvXFxkezR9LVxcZHsyfS1cXGR7Mn0vLmV4ZWMobWluRGF0ZURlcG90KSxcbiAgICAgIG51bGwsXG4gICAgICBgSW52YWxpZCBmb3JtYXQgZm9yIG1pbmltdW0gZGF0ZTogJHttaW5EYXRlRGVwb3R9YCxcbiAgICApXG4gIH1cblxuICBsZXQgYW1lbmRlbWVudE51bWJlciA9IDBcbiAgaXRlclNlYXJjaFBhZ2VzOiB3aGlsZSAodHJ1ZSkge1xuICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBGZXRjaGluZyBhbWVuZGVtZW50cyBzZWFyY2ggcGFnZSBhdCAke3VybH3igKZgKVxuICAgIH1cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybClcbiAgICBhc3NlcnQoXG4gICAgICByZXNwb25zZS5vayxcbiAgICAgIGBSZXRyaWV2YWwgb2Ygc2VhcmNoIHBhZ2UgYXQgJHt1cmx9IGZhaWxlZCB3aXRoIGVycm9yOiAke3Jlc3BvbnNlLnN0YXR1c30gJHtyZXNwb25zZS5zdGF0dXNUZXh0fWAsXG4gICAgKVxuICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCByZXNwb25zZS50ZXh0KClcbiAgICBjb25zdCBodG1sID0gcGFyc2VIdG1sKHBhZ2UpXG4gICAgaWYgKGh0bWwucXVlcnlTZWxlY3RvcihcImRpdi5uby1yZXN1bHRcIikgIT09IG51bGwpIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGNvbnN0IGFtZW5kZW1lbnRzQ291bnREaXYgPSBodG1sLnF1ZXJ5U2VsZWN0b3IoXCJkaXYubWlycm9yLWNhcmQtc3VidGl0bGVcIilcbiAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoYW1lbmRlbWVudHNDb3VudERpdiwgbnVsbClcbiAgICBjb25zdCBhbWVuZGVtZW50c0NvdW50ID0gcGFyc2VJbnQoL1xcZCsvLmV4ZWMoYW1lbmRlbWVudHNDb3VudERpdiEudGV4dCkhWzBdKVxuICAgIGNvbnN0IGFtZW5kZW1lbnRzRGl2ID0gaHRtbC5xdWVyeVNlbGVjdG9yKFxuICAgICAgXCJkaXYuYW1lbmRlbWVudC1saXN0LS1yZXN1bHRzLXRhYmxlXCIsXG4gICAgKVxuICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChhbWVuZGVtZW50c0RpdiwgbnVsbClcbiAgICBjb25zdCBhbWVuZGVtZW50c1RhYmxlID0gYW1lbmRlbWVudHNEaXYhLnF1ZXJ5U2VsZWN0b3IoXCJ0YWJsZVwiKVxuICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChhbWVuZGVtZW50c1RhYmxlLCBudWxsKVxuICAgIGNvbnN0IHRmb290VHIgPSBhbWVuZGVtZW50c1RhYmxlIS5xdWVyeVNlbGVjdG9yKFwidGZvb3QgPiB0clwiKVxuICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbCh0Zm9vdFRyLCBudWxsKVxuICAgIGNvbnN0IHRmb290VHJDZWxscyA9IHRmb290VHIhXG4gICAgICAucXVlcnlTZWxlY3RvckFsbChcInRkLCB0aFwiKVxuICAgICAgLm1hcCgoY2VsbCkgPT4gY2VsbC50ZXh0KVxuICAgIGFzc2VydChcbiAgICAgIGRlZXBFcXVhbCh0Zm9vdFRyQ2VsbHMsIFtcbiAgICAgICAgXCJcIixcbiAgICAgICAgXCJuwrBcIixcbiAgICAgICAgXCJEb3NzaWVyIGzDqWdpc2xhdGlmXCIsXG4gICAgICAgIFwiRW1wbGFjZW1lbnRcIixcbiAgICAgICAgXCJBdXRldXJcIixcbiAgICAgICAgXCLDiXRhdFwiLFxuICAgICAgICBcIlNvcnRcIixcbiAgICAgICAgXCJEYXRlIGQnZXhhbWVuXCIsXG4gICAgICAgIFwiRXhhbWluw6kgcGFyXCIsXG4gICAgICAgIFwiVGV4dGUgdmlzw6lcIixcbiAgICAgICAgXCJEYXRlIGRlIGTDqXDDtHRcIixcbiAgICAgIF0pLFxuICAgICAgYFVuZXhwZWN0ZWQgY29sdW1ucyBpbiAke0pTT04uc3RyaW5naWZ5KHRmb290VHJDZWxscywgbnVsbCwgMil9YCxcbiAgICApXG4gICAgY29uc3QgYW1lbmRlbWVudHNUciA9IGFtZW5kZW1lbnRzVGFibGUhLnF1ZXJ5U2VsZWN0b3JBbGwoXCJ0Ym9keSA+IHRyXCIpXG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGFtZW5kZW1lbnRzVHIubGVuZ3RoLCAwKVxuICAgIGZvciAoY29uc3QgYW1lbmRlbWVudFRyIG9mIGFtZW5kZW1lbnRzVHIpIHtcbiAgICAgIGFtZW5kZW1lbnROdW1iZXIrK1xuXG4gICAgICBpZiAobWluRGF0ZURlcG90ICE9IG51bGwgfHwgbWluRGF0ZUV4YW1lbiAhPSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGFtZW5kZW1lbnRUZExpc3QgPSBhbWVuZGVtZW50VHIucXVlcnlTZWxlY3RvckFsbChcInRkXCIpXG4gICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAgICAgICBhbWVuZGVtZW50VGRMaXN0Lmxlbmd0aCxcbiAgICAgICAgICAxMSxcbiAgICAgICAgICBgVW5leHBlY3RlZCBudW1iZXIgb2YgY29sdW1ucyBpbiBhbWVuZG1lbnQgcm93OiAke2FtZW5kZW1lbnRUci5vdXRlckhUTUx9YCxcbiAgICAgICAgKVxuICAgICAgICBpZiAobWluRGF0ZURlcG90ICE9IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBkYXRlRGVwb3RUZCA9IGFtZW5kZW1lbnRUZExpc3RbMTBdXG4gICAgICAgICAgY29uc3QgZGF0ZURlcG90ID0gZm9ybWF0SVNPKFxuICAgICAgICAgICAgcGFyc2VEYXRlKGRhdGVEZXBvdFRkLnRleHQsIFwiZCBNTU1NIHlcIiwgbmV3IERhdGUoKSwgeyBsb2NhbGU6IGZyIH0pLFxuICAgICAgICAgICAgeyByZXByZXNlbnRhdGlvbjogXCJkYXRlXCIgfSxcbiAgICAgICAgICApXG4gICAgICAgICAgaWYgKGRhdGVEZXBvdCA8IG1pbkRhdGVEZXBvdCkge1xuICAgICAgICAgICAgLy8gU2luY2UgdGhlIGFtZW5kbWVudHMgYXJlIHNvcnRlZCBieSBkZXBvc2l0IGRhdGUsIG9uY2UgYW4gYW1lbmRtZW50XG4gICAgICAgICAgICAvLyB3aXRoIGFuIG9sZCBkZXBvc2l0IGRhdGUgaXMgZW5jb3VudGVyZWQsIHRoZSBmdWxsIHNlYXJjaCBjYW4gYmUgc3RvcHBlZC5cbiAgICAgICAgICAgIGJyZWFrIGl0ZXJTZWFyY2hQYWdlc1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAobWluRGF0ZUV4YW1lbiAhPSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgZGF0ZUV4YW1lblRkID0gYW1lbmRlbWVudFRkTGlzdFs3XVxuICAgICAgICAgIGlmIChkYXRlRXhhbWVuVGQudGV4dCkge1xuICAgICAgICAgICAgY29uc3QgZGF0ZUV4YW1lbiA9IGZvcm1hdElTTyhcbiAgICAgICAgICAgICAgcGFyc2VEYXRlKGRhdGVFeGFtZW5UZC50ZXh0LCBcImQgTU1NTSB5XCIsIG5ldyBEYXRlKCksIHtcbiAgICAgICAgICAgICAgICBsb2NhbGU6IGZyLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgeyByZXByZXNlbnRhdGlvbjogXCJkYXRlXCIgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGlmIChkYXRlRXhhbWVuIDwgbWluRGF0ZUV4YW1lbikge1xuICAgICAgICAgICAgICAvLyBUaGlzIGFtZW5kbWVudCBoYXMgYmVlbiBkaXNjdXNzZWQgc2luY2UgYSBmZXcgZGF5cy5cbiAgICAgICAgICAgICAgLy8gPT4gSWdub3JlIGl0LCBiZWNhdXNlIGl0IHNob3VsZCBiZSBpbiBBc3NlbWJsw6llIG9wZW4gZGF0YS5cbiAgICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgYW1lbmRlbWVudFVybFBhdGggPSBhbWVuZGVtZW50VHIuZ2V0QXR0cmlidXRlKFwiZGF0YS1ocmVmXCIpXG4gICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoYW1lbmRlbWVudFVybFBhdGgsIHVuZGVmaW5lZClcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRVcmxQYXRoU3BsaXR0ZWQgPSBhbWVuZGVtZW50VXJsUGF0aCEuc3BsaXQoXCIvXCIpXG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoXG4gICAgICAgIGFtZW5kZW1lbnRVcmxQYXRoU3BsaXR0ZWRbMF0sXG4gICAgICAgIFwiXCIsXG4gICAgICAgIGBVbmV4cGVjdGVkIFVSTCBwYXRoIGZvciBhbWVuZGVtZW50OiAke2FtZW5kZW1lbnRVcmxQYXRofWAsXG4gICAgICApXG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoXG4gICAgICAgIGFtZW5kZW1lbnRVcmxQYXRoU3BsaXR0ZWRbMV0sXG4gICAgICAgIFwiZHluXCIsXG4gICAgICAgIGBVbmV4cGVjdGVkIFVSTCBwYXRoIGZvciBhbWVuZGVtZW50OiAke2FtZW5kZW1lbnRVcmxQYXRofWAsXG4gICAgICApXG4gICAgICBjb25zdCBhbWVuZGVtZW50U2VhcmNoQ2FjaGVGaWxlUGF0aCA9XG4gICAgICAgIHBhdGguam9pbihcbiAgICAgICAgICBhbWVuZGVtZW50c1NlYXJjaENhY2hlRGlyLFxuICAgICAgICAgIC4uLmFtZW5kZW1lbnRVcmxQYXRoU3BsaXR0ZWQuc2xpY2UoMiksXG4gICAgICAgICkgKyBcIi5odG1sXCJcbiAgICAgIGF3YWl0IGZzLmVuc3VyZURpcihwYXRoLmRpcm5hbWUoYW1lbmRlbWVudFNlYXJjaENhY2hlRmlsZVBhdGgpKVxuICAgICAgY29uc3QgZXhpc3RpbmdBbWVuZGVtZW50U2VhcmNoQ2FjaGUgPSAoYXdhaXQgZnMucGF0aEV4aXN0cyhcbiAgICAgICAgYW1lbmRlbWVudFNlYXJjaENhY2hlRmlsZVBhdGgsXG4gICAgICApKVxuICAgICAgICA/IGF3YWl0IGZzLnJlYWRGaWxlKGFtZW5kZW1lbnRTZWFyY2hDYWNoZUZpbGVQYXRoLCBcInV0ZjhcIilcbiAgICAgICAgOiBudWxsXG4gICAgICBjb25zdCBhbWVuZGVtZW50VHJPdXRlckh0bWwgPSBhbWVuZGVtZW50VHIub3V0ZXJIVE1MXG4gICAgICBjb25zdCBhbWVuZGVtZW50U2VhcmNoQ2FjaGUgPSBgLS0tXFxuJHtqc1lhbWwuZHVtcChcbiAgICAgICAge1xuICAgICAgICAgIHBvc2l0aW9uOiBhbWVuZGVtZW50c0NvdW50IC0gYW1lbmRlbWVudE51bWJlcixcbiAgICAgICAgICBzZWFyY2g6IHVybC5yZXBsYWNlKC8mcGFnZT1bXFxkXSsvLCBcIlwiKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNvcnRLZXlzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgKX0tLS1cXG5cXG4ke2FtZW5kZW1lbnRUck91dGVySHRtbH1gXG4gICAgICBpZiAoYW1lbmRlbWVudFNlYXJjaENhY2hlID09PSBleGlzdGluZ0FtZW5kZW1lbnRTZWFyY2hDYWNoZSkge1xuICAgICAgICBpZiAoaW5jcmVtZW50YWwpIHtcbiAgICAgICAgICAvLyBUaGUgc2FtZSA8dHI+IGlzIGFscmVhZHkgaW4gY2FjaGUgYW5kIGluIHRoZSBzYW1lIHBvc2l0aW9uLlxuICAgICAgICAgIC8vIEFzc3VtZSB0aGF0IGZvbGxvd2luZyBhbWVuZG1lbnRzIGFyZSBub3QgY2hhbmdlZCBhbmQgc3RvcCBsb29raW5nXG4gICAgICAgICAgLy8gZm9yIGFtZW5kbWVudHMgdG8gdXBzZXJ0LlxuICAgICAgICAgIGJyZWFrIGl0ZXJTZWFyY2hQYWdlc1xuICAgICAgICB9XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGV4aXN0aW5nQW1lbmRlbWVudFNlYXJjaENhY2hlICE9PSBudWxsICYmXG4gICAgICAgIGZyb250TWF0dGVyKGV4aXN0aW5nQW1lbmRlbWVudFNlYXJjaENhY2hlKS5ib2R5ID09PVxuICAgICAgICAgIGFtZW5kZW1lbnRUck91dGVySHRtbFxuICAgICAgKSB7XG4gICAgICAgIC8vIFRoZSBzYW1lIDx0cj4gaXMgYWxyZWFkeSBpbiBjYWNoZSwgYnV0IGluIGEgZGlmZmVyZW50IHBvc2l0aW9uLlxuICAgICAgICAvLyBBc3N1bWUgdGhlIGFtZW5kbWVudCBpcyB1bmNoYW5nZWQuXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgIGlmIChleGlzdGluZ0FtZW5kZW1lbnRTZWFyY2hDYWNoZSA9PT0gbnVsbCkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgYEFkZGluZyBhbWVuZGVtZW50IHNlYXJjaCBjYWNoZTogJHthbWVuZGVtZW50U2VhcmNoQ2FjaGVGaWxlUGF0aH3igKZgLFxuICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgIGBVcGRhdGluZyBhbWVuZGVtZW50IHNlYXJjaCBjYWNoZTogJHthbWVuZGVtZW50U2VhcmNoQ2FjaGVGaWxlUGF0aH3igKZgLFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3QgYW1lbmRlbWVudEh0bWxVcmwgPSBuZXcgVVJMKFxuICAgICAgICBhbWVuZGVtZW50VXJsUGF0aCEsXG4gICAgICAgIFwiaHR0cHM6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9cIixcbiAgICAgICkudG9TdHJpbmcoKVxuICAgICAgY29uc3QgYW1lbmRlbWVudEh0bWxSZXNwb25zZSA9IGF3YWl0IGZldGNoKGFtZW5kZW1lbnRIdG1sVXJsKVxuICAgICAgYXNzZXJ0KFxuICAgICAgICBhbWVuZGVtZW50SHRtbFJlc3BvbnNlLm9rLFxuICAgICAgICBgUmV0cmlldmFsIG9mIGFtZW5kZW1lbnQgSFRNTCBwYWdlIGF0ICR7YW1lbmRlbWVudEh0bWxVcmx9IGZhaWxlZCB3aXRoIGVycm9yOiAke2FtZW5kZW1lbnRIdG1sUmVzcG9uc2Uuc3RhdHVzfSAke2FtZW5kZW1lbnRIdG1sUmVzcG9uc2Uuc3RhdHVzVGV4dH1gLFxuICAgICAgKVxuICAgICAgY29uc3QgYW1lbmRlbWVudEh0bWxQYWdlID0gYXdhaXQgYW1lbmRlbWVudEh0bWxSZXNwb25zZS50ZXh0KClcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRIdG1sID0gcGFyc2VIdG1sKGFtZW5kZW1lbnRIdG1sUGFnZSlcbiAgICAgIGNvbnN0IGZvcm1hdHNMaSA9IGFtZW5kZW1lbnRIdG1sLnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgIFwibGkubWlycm9yLWNhcmQtaGVhZGVyLS1vcHRpb25zLS1jb250ZW50LS1pdGVtXCIsXG4gICAgICApXG4gICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoZm9ybWF0c0xpLmxlbmd0aCwgMClcbiAgICAgIGNvbnN0IGpzb25MaSA9IGZvcm1hdHNMaS5maW5kKChmb3JtYXRMaSkgPT4ge1xuICAgICAgICBjb25zdCBmb3JtYXRTcGFuID0gZm9ybWF0TGkucXVlcnlTZWxlY3RvcihcImEgPiBzcGFuXCIpXG4gICAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICAgICAgICBmb3JtYXRTcGFuLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgYE5vIDxzcGFuPiBpbiA8YT4gZm91bmQgaW4gJHtmb3JtYXRMaS50b1N0cmluZygpfWAsXG4gICAgICAgIClcbiAgICAgICAgcmV0dXJuIGZvcm1hdFNwYW4hLnRleHQgPT09IFwiVmVyc2lvbiBKU09OXCJcbiAgICAgIH0pXG4gICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgICAgIGpzb25MaSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICBgTm8gSlNPTiB2ZXJzaW9uIGZvdW5kIGZvciBhbWVuZGVtZW50IGF0ICR7YW1lbmRlbWVudEh0bWxVcmx9YCxcbiAgICAgIClcbiAgICAgIGNvbnN0IGpzb25BID0ganNvbkxpIS5xdWVyeVNlbGVjdG9yKFwiYVwiKVxuICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgICAgICBqc29uQSxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgYE5vIDxhPiBmb3VuZCBpbiAke2pzb25MaSEudG9TdHJpbmcoKX1gLFxuICAgICAgKVxuICAgICAgY29uc3QgYW1lbmRlbWVudEpzb25VcmxQYXRoID0ganNvbkEhLmdldEF0dHJpYnV0ZShcImhyZWZcIilcbiAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICAgICAgYW1lbmRlbWVudEpzb25VcmxQYXRoLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIGBObyBVUkwgZm91bmQgZm9yIEpTT04gdmVyc2lvbiBvZiBhbWVuZGVtZW50OiAke2pzb25MaSEudG9TdHJpbmcoKX1gLFxuICAgICAgKVxuICAgICAgY29uc3QgYW1lbmRlbWVudEpzb25VcmwgPSBuZXcgVVJMKFxuICAgICAgICBhbWVuZGVtZW50SnNvblVybFBhdGghLFxuICAgICAgICBcImh0dHBzOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvXCIsXG4gICAgICApLnRvU3RyaW5nKClcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRKc29uUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChhbWVuZGVtZW50SnNvblVybClcbiAgICAgIGFzc2VydChcbiAgICAgICAgYW1lbmRlbWVudEpzb25SZXNwb25zZS5vayxcbiAgICAgICAgYFJldHJpZXZhbCBvZiBhbWVuZGVtZW50IEpTT04gcGFnZSBhdCAke2FtZW5kZW1lbnRKc29uVXJsfSBmYWlsZWQgd2l0aCBlcnJvcjogJHthbWVuZGVtZW50SnNvblJlc3BvbnNlLnN0YXR1c30gJHthbWVuZGVtZW50SnNvblJlc3BvbnNlLnN0YXR1c1RleHR9YCxcbiAgICAgIClcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnQgPSBhd2FpdCBhbWVuZGVtZW50SnNvblJlc3BvbnNlLmpzb24oKVxuICAgICAgeWllbGQgW2FtZW5kZW1lbnRVcmxQYXRoISwgYW1lbmRlbWVudF1cblxuICAgICAgLy8gU2VhcmNoQ2FjaGUgbXVzdCBiZSB3cml0dGVuIGF0IHRoZSBlbmQgdG8gZW5zdXJlIHRoYXQgZXZlcnl0aGluZyBpcyBpbiBhIGNvbnNpc3RlbnQgc3RhdGUsXG4gICAgICAvLyBldmVuIGlmIHNjcmlwdCBmYWlscyBhYnJ1cHRseS5cbiAgICAgIGF3YWl0IGZzLndyaXRlRmlsZShcbiAgICAgICAgYW1lbmRlbWVudFNlYXJjaENhY2hlRmlsZVBhdGgsXG4gICAgICAgIGFtZW5kZW1lbnRTZWFyY2hDYWNoZSxcbiAgICAgICAgXCJ1dGY4XCIsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgcGFnaW5hdGlvbkEgPSBodG1sLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICBcImRpdi5hbi1wYWdpbmF0aW9uLS1pdGVtID4gaS5hbi1pY29ucy1jaGV2cm9uLXJpZ2h0IH4gYVwiLFxuICAgIClcbiAgICBpZiAocGFnaW5hdGlvbkEgPT09IG51bGwpIHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGNvbnN0IHVybFBhdGggPSBwYWdpbmF0aW9uQS5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpXG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHVybFBhdGgsIHVuZGVmaW5lZClcbiAgICB1cmwgPSBuZXcgVVJMKHVybFBhdGghLCBcImh0dHBzOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvXCIpLnRvU3RyaW5nKClcbiAgfVxufVxuIl19
187
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJmb3JtYXRJU08iLCJmciIsInBhcnNlRGF0ZSIsImRlZXBFcXVhbCIsImZzIiwiZnJvbnRNYXR0ZXIiLCJqc1lhbWwiLCJmZXRjaCIsInBhcnNlIiwicGFyc2VIdG1sIiwicGF0aCIsImNsZWFuQW1lbmRlbWVudCIsIkNvbnZlcnQiLCJBbWVuZGVtZW50c0NvbnZlcnQiLCJpdGVyUmVjaGVyY2hlQW1lbmRlbWVudHMiLCJhbWVuZGVtZW50c1NlYXJjaENhY2hlRGlyIiwidXJsIiwiaW5jcmVtZW50YWwiLCJtaW5EYXRlRGVwb3QiLCJtaW5EYXRlRXhhbWVuIiwib3B0aW9ucyIsImFtZW5kZW1lbnRVcmxQYXRoIiwiYW1lbmRlbWVudCIsIml0ZXJSZWNoZXJjaGVSYXdBbWVuZGVtZW50cyIsInRvQW1lbmRlbWVudCIsIkpTT04iLCJzdHJpbmdpZnkiLCJlbnN1cmVEaXIiLCJzdHJpY3RFcXVhbCIsImV4ZWMiLCJub3RTdHJpY3RFcXVhbCIsImluY2x1ZGVzIiwiYW1lbmRlbWVudE51bWJlciIsIml0ZXJTZWFyY2hQYWdlcyIsInZlcmJvc2UiLCJjb25zb2xlIiwibG9nIiwicmVzcG9uc2UiLCJvayIsInN0YXR1cyIsInN0YXR1c1RleHQiLCJwYWdlIiwidGV4dCIsImh0bWwiLCJxdWVyeVNlbGVjdG9yIiwiYW1lbmRlbWVudHNDb3VudERpdiIsImFtZW5kZW1lbnRzQ291bnQiLCJwYXJzZUludCIsImFtZW5kZW1lbnRzRGl2IiwiYW1lbmRlbWVudHNUYWJsZSIsInRmb290VHIiLCJ0Zm9vdFRyQ2VsbHMiLCJxdWVyeVNlbGVjdG9yQWxsIiwibWFwIiwiY2VsbCIsImFtZW5kZW1lbnRzVHIiLCJsZW5ndGgiLCJhbWVuZGVtZW50VHIiLCJhbWVuZGVtZW50VGRMaXN0Iiwib3V0ZXJIVE1MIiwiZGF0ZURlcG90VGQiLCJkYXRlRGVwb3QiLCJEYXRlIiwibG9jYWxlIiwicmVwcmVzZW50YXRpb24iLCJkYXRlRXhhbWVuVGQiLCJkYXRlRXhhbWVuIiwiZ2V0QXR0cmlidXRlIiwidW5kZWZpbmVkIiwiYW1lbmRlbWVudFVybFBhdGhTcGxpdHRlZCIsInNwbGl0IiwiYW1lbmRlbWVudFNlYXJjaENhY2hlRmlsZVBhdGgiLCJqb2luIiwic2xpY2UiLCJkaXJuYW1lIiwiZXhpc3RpbmdBbWVuZGVtZW50U2VhcmNoQ2FjaGUiLCJwYXRoRXhpc3RzIiwicmVhZEZpbGUiLCJhbWVuZGVtZW50VHJPdXRlckh0bWwiLCJhbWVuZGVtZW50U2VhcmNoQ2FjaGUiLCJkdW1wIiwicG9zaXRpb24iLCJzZWFyY2giLCJyZXBsYWNlIiwic29ydEtleXMiLCJib2R5IiwiYW1lbmRlbWVudEh0bWxVcmwiLCJVUkwiLCJ0b1N0cmluZyIsImFtZW5kZW1lbnRIdG1sUmVzcG9uc2UiLCJhbWVuZGVtZW50SHRtbFBhZ2UiLCJhbWVuZGVtZW50SHRtbCIsImZvcm1hdHNMaSIsImpzb25MaSIsImZpbmQiLCJmb3JtYXRMaSIsImZvcm1hdFNwYW4iLCJqc29uQSIsImFtZW5kZW1lbnRKc29uVXJsUGF0aCIsImFtZW5kZW1lbnRKc29uVXJsIiwiYW1lbmRlbWVudEpzb25SZXNwb25zZSIsImpzb24iLCJ3cml0ZUZpbGUiLCJwYWdpbmF0aW9uQSIsInVybFBhdGgiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFyc2Vycy9yZWNoZXJjaGVfYW1lbmRlbWVudHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcbmltcG9ydCBmb3JtYXRJU08gZnJvbSBcImRhdGUtZm5zL2Zvcm1hdElTT1wiXG5pbXBvcnQgeyBmciB9IGZyb20gXCJkYXRlLWZucy9sb2NhbGVcIlxuaW1wb3J0IHBhcnNlRGF0ZSBmcm9tIFwiZGF0ZS1mbnMvcGFyc2VcIlxuaW1wb3J0IGRlZXBFcXVhbCBmcm9tIFwiZGVlcC1lcXVhbFwiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBmcm9udE1hdHRlciBmcm9tIFwiZnJvbnQtbWF0dGVyXCJcbmltcG9ydCBqc1lhbWwgZnJvbSBcImpzLXlhbWxcIlxuaW1wb3J0IGZldGNoIGZyb20gXCJub2RlLWZldGNoXCJcbmltcG9ydCB7IHBhcnNlIGFzIHBhcnNlSHRtbCB9IGZyb20gXCJub2RlLWh0bWwtcGFyc2VyXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuaW1wb3J0IHsgY2xlYW5BbWVuZGVtZW50IH0gZnJvbSBcIi4uL2NsZWFuZXJzXCJcbmltcG9ydCB7IEFtZW5kZW1lbnQgYXMgUmF3QW1lbmRlbWVudCB9IGZyb20gXCIuLi9yYXdfdHlwZXMvYW1lbmRlbWVudHNcIlxuaW1wb3J0IHsgQW1lbmRlbWVudCwgQ29udmVydCBhcyBBbWVuZGVtZW50c0NvbnZlcnQgfSBmcm9tIFwiLi4vdHlwZXMvYW1lbmRlbWVudHNcIlxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24qIGl0ZXJSZWNoZXJjaGVBbWVuZGVtZW50cyhcbiAgYW1lbmRlbWVudHNTZWFyY2hDYWNoZURpcjogc3RyaW5nLFxuICB1cmw6IHN0cmluZyxcbiAgaW5jcmVtZW50YWw6IGJvb2xlYW4sXG4gIG1pbkRhdGVEZXBvdD86IHN0cmluZyB8IG51bGwsXG4gIG1pbkRhdGVFeGFtZW4/OiBzdHJpbmcgfCBudWxsLFxuICBvcHRpb25zOiB7IHNpbGVudD86IGJvb2xlYW47IHZlcmJvc2U/OiBib29sZWFuIH0gPSB7fSxcbik6IEFzeW5jR2VuZXJhdG9yPFtzdHJpbmcsIEFtZW5kZW1lbnRdLCB2b2lkLCB1bmtub3duPiB7XG4gIGZvciBhd2FpdCAoY29uc3QgW1xuICAgIGFtZW5kZW1lbnRVcmxQYXRoLFxuICAgIGFtZW5kZW1lbnQsXG4gIF0gb2YgaXRlclJlY2hlcmNoZVJhd0FtZW5kZW1lbnRzKFxuICAgIGFtZW5kZW1lbnRzU2VhcmNoQ2FjaGVEaXIsXG4gICAgdXJsLFxuICAgIGluY3JlbWVudGFsLFxuICAgIG1pbkRhdGVEZXBvdCxcbiAgICBtaW5EYXRlRXhhbWVuLFxuICAgIG9wdGlvbnMsXG4gICkpIHtcbiAgICBjbGVhbkFtZW5kZW1lbnQoYW1lbmRlbWVudClcbiAgICAvLyBEb3VibGUgY29udmVyc2lvbiwgdG8gY29udmVydCBzdHJpbmdzIHRvIGRhdGVzLlxuICAgIHlpZWxkIFtcbiAgICAgIGFtZW5kZW1lbnRVcmxQYXRoLFxuICAgICAgQW1lbmRlbWVudHNDb252ZXJ0LnRvQW1lbmRlbWVudChKU09OLnN0cmluZ2lmeShhbWVuZGVtZW50KSksXG4gICAgXVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiogaXRlclJlY2hlcmNoZVJhd0FtZW5kZW1lbnRzKFxuICBhbWVuZGVtZW50c1NlYXJjaENhY2hlRGlyOiBzdHJpbmcsXG4gIHVybDogc3RyaW5nLFxuICBpbmNyZW1lbnRhbDogYm9vbGVhbixcbiAgbWluRGF0ZURlcG90Pzogc3RyaW5nIHwgbnVsbCxcbiAgbWluRGF0ZUV4YW1lbj86IHN0cmluZyB8IG51bGwsXG4gIG9wdGlvbnM6IHsgc2lsZW50PzogYm9vbGVhbjsgdmVyYm9zZT86IGJvb2xlYW4gfSA9IHt9LFxuKTogQXN5bmNHZW5lcmF0b3I8W3N0cmluZywgUmF3QW1lbmRlbWVudF0sIHZvaWQsIHVua25vd24+IHtcbiAgYXdhaXQgZnMuZW5zdXJlRGlyKGFtZW5kZW1lbnRzU2VhcmNoQ2FjaGVEaXIpXG5cbiAgYXNzZXJ0LnN0cmljdEVxdWFsKFxuICAgIC9bPyZdZGF0ZV9kZXBvdD0vLmV4ZWModXJsKSxcbiAgICBudWxsLFxuICAgIGBVUkwgJHt1cmx9IGFscmVhZHkgY29udGFpbnMgYSBkZXBvc2l0IGRhdGVgLFxuICApXG4gIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAvWz8mXW9yZGVyPS8uZXhlYyh1cmwpLFxuICAgIG51bGwsXG4gICAgYFVSTCAke3VybH0gYWxyZWFkeSBjb250YWlucyBhIHNvcnQgb3JkZXJgLFxuICApXG4gIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAvWz8mXXBhZ2U9Ly5leGVjKHVybCksXG4gICAgbnVsbCxcbiAgICBgVVJMICR7dXJsfSBhbHJlYWR5IGNvbnRhaW5zIGEgcGFnZSBudW1iZXJgLFxuICApXG4gIGlmIChpbmNyZW1lbnRhbCkge1xuICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICAgIC9bPyZdZXRhdD0vLmV4ZWModXJsKSxcbiAgICAgIG51bGwsXG4gICAgICBgSW4gaW5jcmVtZW50YWwgbW9kZSwgVVJMICR7dXJsfSBtdXN0IGNvbnRhaW4gYW4gXCJldGF0XCIgcXVlcnkgcGFyYW1ldGVyYCxcbiAgICApXG4gIH1cbiAgdXJsICs9ICh1cmwuaW5jbHVkZXMoXCI/XCIpID8gXCImXCIgOiBcIj9cIikgKyBcIm9yZGVyPWRhdGVfZGVwb3QsZGVzYyZwYWdlPTFcIlxuXG4gIGlmIChtaW5EYXRlRGVwb3QgIT0gbnVsbCkge1xuICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICAgIC9cXGR7NH0tXFxkezJ9LVxcZHsyfS8uZXhlYyhtaW5EYXRlRGVwb3QpLFxuICAgICAgbnVsbCxcbiAgICAgIGBJbnZhbGlkIGZvcm1hdCBmb3IgbWluaW11bSBkYXRlOiAke21pbkRhdGVEZXBvdH1gLFxuICAgIClcbiAgfVxuXG4gIGxldCBhbWVuZGVtZW50TnVtYmVyID0gMFxuICBpdGVyU2VhcmNoUGFnZXM6IHdoaWxlICh0cnVlKSB7XG4gICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgY29uc29sZS5sb2coYEZldGNoaW5nIGFtZW5kZW1lbnRzIHNlYXJjaCBwYWdlIGF0ICR7dXJsfeKApmApXG4gICAgfVxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKVxuICAgIGFzc2VydChcbiAgICAgIHJlc3BvbnNlLm9rLFxuICAgICAgYFJldHJpZXZhbCBvZiBzZWFyY2ggcGFnZSBhdCAke3VybH0gZmFpbGVkIHdpdGggZXJyb3I6ICR7cmVzcG9uc2Uuc3RhdHVzfSAke3Jlc3BvbnNlLnN0YXR1c1RleHR9YCxcbiAgICApXG4gICAgY29uc3QgcGFnZSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKVxuICAgIGNvbnN0IGh0bWwgPSBwYXJzZUh0bWwocGFnZSlcbiAgICBpZiAoaHRtbC5xdWVyeVNlbGVjdG9yKFwiZGl2Lm5vLXJlc3VsdFwiKSAhPT0gbnVsbCkge1xuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY29uc3QgYW1lbmRlbWVudHNDb3VudERpdiA9IGh0bWwucXVlcnlTZWxlY3RvcihcImRpdi5taXJyb3ItY2FyZC1zdWJ0aXRsZVwiKVxuICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChhbWVuZGVtZW50c0NvdW50RGl2LCBudWxsKVxuICAgIGNvbnN0IGFtZW5kZW1lbnRzQ291bnQgPSBwYXJzZUludCgvXFxkKy8uZXhlYyhhbWVuZGVtZW50c0NvdW50RGl2IS50ZXh0KSFbMF0pXG4gICAgY29uc3QgYW1lbmRlbWVudHNEaXYgPSBodG1sLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICBcImRpdi5hbWVuZGVtZW50LWxpc3QtLXJlc3VsdHMtdGFibGVcIixcbiAgICApXG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGFtZW5kZW1lbnRzRGl2LCBudWxsKVxuICAgIGNvbnN0IGFtZW5kZW1lbnRzVGFibGUgPSBhbWVuZGVtZW50c0RpdiEucXVlcnlTZWxlY3RvcihcInRhYmxlXCIpXG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGFtZW5kZW1lbnRzVGFibGUsIG51bGwpXG4gICAgY29uc3QgdGZvb3RUciA9IGFtZW5kZW1lbnRzVGFibGUhLnF1ZXJ5U2VsZWN0b3IoXCJ0Zm9vdCA+IHRyXCIpXG4gICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKHRmb290VHIsIG51bGwpXG4gICAgY29uc3QgdGZvb3RUckNlbGxzID0gdGZvb3RUciFcbiAgICAgIC5xdWVyeVNlbGVjdG9yQWxsKFwidGQsIHRoXCIpXG4gICAgICAubWFwKChjZWxsKSA9PiBjZWxsLnRleHQpXG4gICAgYXNzZXJ0KFxuICAgICAgZGVlcEVxdWFsKHRmb290VHJDZWxscywgW1xuICAgICAgICBcIlwiLFxuICAgICAgICBcIm7CsFwiLFxuICAgICAgICBcIkRvc3NpZXIgbMOpZ2lzbGF0aWZcIixcbiAgICAgICAgXCJFbXBsYWNlbWVudFwiLFxuICAgICAgICBcIkF1dGV1clwiLFxuICAgICAgICBcIsOJdGF0XCIsXG4gICAgICAgIFwiU29ydFwiLFxuICAgICAgICBcIkRhdGUgZCdleGFtZW5cIixcbiAgICAgICAgXCJFeGFtaW7DqSBwYXJcIixcbiAgICAgICAgXCJUZXh0ZSB2aXPDqVwiLFxuICAgICAgICBcIkRhdGUgZGUgZMOpcMO0dFwiLFxuICAgICAgXSksXG4gICAgICBgVW5leHBlY3RlZCBjb2x1bW5zIGluICR7SlNPTi5zdHJpbmdpZnkodGZvb3RUckNlbGxzLCBudWxsLCAyKX1gLFxuICAgIClcbiAgICBjb25zdCBhbWVuZGVtZW50c1RyID0gYW1lbmRlbWVudHNUYWJsZSEucXVlcnlTZWxlY3RvckFsbChcInRib2R5ID4gdHJcIilcbiAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoYW1lbmRlbWVudHNUci5sZW5ndGgsIDApXG4gICAgZm9yIChjb25zdCBhbWVuZGVtZW50VHIgb2YgYW1lbmRlbWVudHNUcikge1xuICAgICAgYW1lbmRlbWVudE51bWJlcisrXG5cbiAgICAgIGlmIChtaW5EYXRlRGVwb3QgIT0gbnVsbCB8fCBtaW5EYXRlRXhhbWVuICE9IG51bGwpIHtcbiAgICAgICAgY29uc3QgYW1lbmRlbWVudFRkTGlzdCA9IGFtZW5kZW1lbnRUci5xdWVyeVNlbGVjdG9yQWxsKFwidGRcIilcbiAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKFxuICAgICAgICAgIGFtZW5kZW1lbnRUZExpc3QubGVuZ3RoLFxuICAgICAgICAgIDExLFxuICAgICAgICAgIGBVbmV4cGVjdGVkIG51bWJlciBvZiBjb2x1bW5zIGluIGFtZW5kbWVudCByb3c6ICR7YW1lbmRlbWVudFRyLm91dGVySFRNTH1gLFxuICAgICAgICApXG4gICAgICAgIGlmIChtaW5EYXRlRGVwb3QgIT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IGRhdGVEZXBvdFRkID0gYW1lbmRlbWVudFRkTGlzdFsxMF1cbiAgICAgICAgICBjb25zdCBkYXRlRGVwb3QgPSBmb3JtYXRJU08oXG4gICAgICAgICAgICBwYXJzZURhdGUoZGF0ZURlcG90VGQudGV4dCwgXCJkIE1NTU0geVwiLCBuZXcgRGF0ZSgpLCB7IGxvY2FsZTogZnIgfSksXG4gICAgICAgICAgICB7IHJlcHJlc2VudGF0aW9uOiBcImRhdGVcIiB9LFxuICAgICAgICAgIClcbiAgICAgICAgICBpZiAoZGF0ZURlcG90IDwgbWluRGF0ZURlcG90KSB7XG4gICAgICAgICAgICAvLyBTaW5jZSB0aGUgYW1lbmRtZW50cyBhcmUgc29ydGVkIGJ5IGRlcG9zaXQgZGF0ZSwgb25jZSBhbiBhbWVuZG1lbnRcbiAgICAgICAgICAgIC8vIHdpdGggYW4gb2xkIGRlcG9zaXQgZGF0ZSBpcyBlbmNvdW50ZXJlZCwgdGhlIGZ1bGwgc2VhcmNoIGNhbiBiZSBzdG9wcGVkLlxuICAgICAgICAgICAgYnJlYWsgaXRlclNlYXJjaFBhZ2VzXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtaW5EYXRlRXhhbWVuICE9IG51bGwpIHtcbiAgICAgICAgICBjb25zdCBkYXRlRXhhbWVuVGQgPSBhbWVuZGVtZW50VGRMaXN0WzddXG4gICAgICAgICAgaWYgKGRhdGVFeGFtZW5UZC50ZXh0KSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlRXhhbWVuID0gZm9ybWF0SVNPKFxuICAgICAgICAgICAgICBwYXJzZURhdGUoZGF0ZUV4YW1lblRkLnRleHQsIFwiZCBNTU1NIHlcIiwgbmV3IERhdGUoKSwge1xuICAgICAgICAgICAgICAgIGxvY2FsZTogZnIsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB7IHJlcHJlc2VudGF0aW9uOiBcImRhdGVcIiB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKGRhdGVFeGFtZW4gPCBtaW5EYXRlRXhhbWVuKSB7XG4gICAgICAgICAgICAgIC8vIFRoaXMgYW1lbmRtZW50IGhhcyBiZWVuIGRpc2N1c3NlZCBzaW5jZSBhIGZldyBkYXlzLlxuICAgICAgICAgICAgICAvLyA9PiBJZ25vcmUgaXQsIGJlY2F1c2UgaXQgc2hvdWxkIGJlIGluIEFzc2VtYmzDqWUgb3BlbiBkYXRhLlxuICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBhbWVuZGVtZW50VXJsUGF0aCA9IGFtZW5kZW1lbnRUci5nZXRBdHRyaWJ1dGUoXCJkYXRhLWhyZWZcIilcbiAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChhbWVuZGVtZW50VXJsUGF0aCwgdW5kZWZpbmVkKVxuICAgICAgY29uc3QgYW1lbmRlbWVudFVybFBhdGhTcGxpdHRlZCA9IGFtZW5kZW1lbnRVcmxQYXRoIS5zcGxpdChcIi9cIilcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAgICAgYW1lbmRlbWVudFVybFBhdGhTcGxpdHRlZFswXSxcbiAgICAgICAgXCJcIixcbiAgICAgICAgYFVuZXhwZWN0ZWQgVVJMIHBhdGggZm9yIGFtZW5kZW1lbnQ6ICR7YW1lbmRlbWVudFVybFBhdGh9YCxcbiAgICAgIClcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChcbiAgICAgICAgYW1lbmRlbWVudFVybFBhdGhTcGxpdHRlZFsxXSxcbiAgICAgICAgXCJkeW5cIixcbiAgICAgICAgYFVuZXhwZWN0ZWQgVVJMIHBhdGggZm9yIGFtZW5kZW1lbnQ6ICR7YW1lbmRlbWVudFVybFBhdGh9YCxcbiAgICAgIClcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRTZWFyY2hDYWNoZUZpbGVQYXRoID1cbiAgICAgICAgcGF0aC5qb2luKFxuICAgICAgICAgIGFtZW5kZW1lbnRzU2VhcmNoQ2FjaGVEaXIsXG4gICAgICAgICAgLi4uYW1lbmRlbWVudFVybFBhdGhTcGxpdHRlZC5zbGljZSgyKSxcbiAgICAgICAgKSArIFwiLmh0bWxcIlxuICAgICAgYXdhaXQgZnMuZW5zdXJlRGlyKHBhdGguZGlybmFtZShhbWVuZGVtZW50U2VhcmNoQ2FjaGVGaWxlUGF0aCkpXG4gICAgICBjb25zdCBleGlzdGluZ0FtZW5kZW1lbnRTZWFyY2hDYWNoZSA9IChhd2FpdCBmcy5wYXRoRXhpc3RzKFxuICAgICAgICBhbWVuZGVtZW50U2VhcmNoQ2FjaGVGaWxlUGF0aCxcbiAgICAgICkpXG4gICAgICAgID8gYXdhaXQgZnMucmVhZEZpbGUoYW1lbmRlbWVudFNlYXJjaENhY2hlRmlsZVBhdGgsIFwidXRmOFwiKVxuICAgICAgICA6IG51bGxcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRUck91dGVySHRtbCA9IGFtZW5kZW1lbnRUci5vdXRlckhUTUxcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRTZWFyY2hDYWNoZSA9IGAtLS1cXG4ke2pzWWFtbC5kdW1wKFxuICAgICAgICB7XG4gICAgICAgICAgcG9zaXRpb246IGFtZW5kZW1lbnRzQ291bnQgLSBhbWVuZGVtZW50TnVtYmVyLFxuICAgICAgICAgIHNlYXJjaDogdXJsLnJlcGxhY2UoLyZwYWdlPVtcXGRdKy8sIFwiXCIpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgc29ydEtleXM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICApfS0tLVxcblxcbiR7YW1lbmRlbWVudFRyT3V0ZXJIdG1sfWBcbiAgICAgIGlmIChhbWVuZGVtZW50U2VhcmNoQ2FjaGUgPT09IGV4aXN0aW5nQW1lbmRlbWVudFNlYXJjaENhY2hlKSB7XG4gICAgICAgIGlmIChpbmNyZW1lbnRhbCkge1xuICAgICAgICAgIC8vIFRoZSBzYW1lIDx0cj4gaXMgYWxyZWFkeSBpbiBjYWNoZSBhbmQgaW4gdGhlIHNhbWUgcG9zaXRpb24uXG4gICAgICAgICAgLy8gQXNzdW1lIHRoYXQgZm9sbG93aW5nIGFtZW5kbWVudHMgYXJlIG5vdCBjaGFuZ2VkIGFuZCBzdG9wIGxvb2tpbmdcbiAgICAgICAgICAvLyBmb3IgYW1lbmRtZW50cyB0byB1cHNlcnQuXG4gICAgICAgICAgYnJlYWsgaXRlclNlYXJjaFBhZ2VzXG4gICAgICAgIH1cbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgZXhpc3RpbmdBbWVuZGVtZW50U2VhcmNoQ2FjaGUgIT09IG51bGwgJiZcbiAgICAgICAgZnJvbnRNYXR0ZXIoZXhpc3RpbmdBbWVuZGVtZW50U2VhcmNoQ2FjaGUpLmJvZHkgPT09XG4gICAgICAgICAgYW1lbmRlbWVudFRyT3V0ZXJIdG1sXG4gICAgICApIHtcbiAgICAgICAgLy8gVGhlIHNhbWUgPHRyPiBpcyBhbHJlYWR5IGluIGNhY2hlLCBidXQgaW4gYSBkaWZmZXJlbnQgcG9zaXRpb24uXG4gICAgICAgIC8vIEFzc3VtZSB0aGUgYW1lbmRtZW50IGlzIHVuY2hhbmdlZC5cbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgaWYgKGV4aXN0aW5nQW1lbmRlbWVudFNlYXJjaENhY2hlID09PSBudWxsKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICBgQWRkaW5nIGFtZW5kZW1lbnQgc2VhcmNoIGNhY2hlOiAke2FtZW5kZW1lbnRTZWFyY2hDYWNoZUZpbGVQYXRofeKApmAsXG4gICAgICAgICAgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgYFVwZGF0aW5nIGFtZW5kZW1lbnQgc2VhcmNoIGNhY2hlOiAke2FtZW5kZW1lbnRTZWFyY2hDYWNoZUZpbGVQYXRofeKApmAsXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCBhbWVuZGVtZW50SHRtbFVybCA9IG5ldyBVUkwoXG4gICAgICAgIGFtZW5kZW1lbnRVcmxQYXRoISxcbiAgICAgICAgXCJodHRwczovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL1wiLFxuICAgICAgKS50b1N0cmluZygpXG4gICAgICBjb25zdCBhbWVuZGVtZW50SHRtbFJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYW1lbmRlbWVudEh0bWxVcmwpXG4gICAgICBhc3NlcnQoXG4gICAgICAgIGFtZW5kZW1lbnRIdG1sUmVzcG9uc2Uub2ssXG4gICAgICAgIGBSZXRyaWV2YWwgb2YgYW1lbmRlbWVudCBIVE1MIHBhZ2UgYXQgJHthbWVuZGVtZW50SHRtbFVybH0gZmFpbGVkIHdpdGggZXJyb3I6ICR7YW1lbmRlbWVudEh0bWxSZXNwb25zZS5zdGF0dXN9ICR7YW1lbmRlbWVudEh0bWxSZXNwb25zZS5zdGF0dXNUZXh0fWAsXG4gICAgICApXG4gICAgICBjb25zdCBhbWVuZGVtZW50SHRtbFBhZ2UgPSBhd2FpdCBhbWVuZGVtZW50SHRtbFJlc3BvbnNlLnRleHQoKVxuICAgICAgY29uc3QgYW1lbmRlbWVudEh0bWwgPSBwYXJzZUh0bWwoYW1lbmRlbWVudEh0bWxQYWdlKVxuICAgICAgY29uc3QgZm9ybWF0c0xpID0gYW1lbmRlbWVudEh0bWwucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgXCJsaS5taXJyb3ItY2FyZC1oZWFkZXItLW9wdGlvbnMtLWNvbnRlbnQtLWl0ZW1cIixcbiAgICAgIClcbiAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChmb3JtYXRzTGkubGVuZ3RoLCAwKVxuICAgICAgY29uc3QganNvbkxpID0gZm9ybWF0c0xpLmZpbmQoKGZvcm1hdExpKSA9PiB7XG4gICAgICAgIGNvbnN0IGZvcm1hdFNwYW4gPSBmb3JtYXRMaS5xdWVyeVNlbGVjdG9yKFwiYSA+IHNwYW5cIilcbiAgICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgICAgICAgIGZvcm1hdFNwYW4sXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBgTm8gPHNwYW4+IGluIDxhPiBmb3VuZCBpbiAke2Zvcm1hdExpLnRvU3RyaW5nKCl9YCxcbiAgICAgICAgKVxuICAgICAgICByZXR1cm4gZm9ybWF0U3BhbiEudGV4dCA9PT0gXCJWZXJzaW9uIEpTT05cIlxuICAgICAgfSlcbiAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICAgICAganNvbkxpLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIGBObyBKU09OIHZlcnNpb24gZm91bmQgZm9yIGFtZW5kZW1lbnQgYXQgJHthbWVuZGVtZW50SHRtbFVybH1gLFxuICAgICAgKVxuICAgICAgY29uc3QganNvbkEgPSBqc29uTGkhLnF1ZXJ5U2VsZWN0b3IoXCJhXCIpXG4gICAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgICAgIGpzb25BLFxuICAgICAgICBudWxsLFxuICAgICAgICBgTm8gPGE+IGZvdW5kIGluICR7anNvbkxpIS50b1N0cmluZygpfWAsXG4gICAgICApXG4gICAgICBjb25zdCBhbWVuZGVtZW50SnNvblVybFBhdGggPSBqc29uQSEuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKVxuICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgICAgICBhbWVuZGVtZW50SnNvblVybFBhdGgsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgYE5vIFVSTCBmb3VuZCBmb3IgSlNPTiB2ZXJzaW9uIG9mIGFtZW5kZW1lbnQ6ICR7anNvbkxpIS50b1N0cmluZygpfWAsXG4gICAgICApXG4gICAgICBjb25zdCBhbWVuZGVtZW50SnNvblVybCA9IG5ldyBVUkwoXG4gICAgICAgIGFtZW5kZW1lbnRKc29uVXJsUGF0aCEsXG4gICAgICAgIFwiaHR0cHM6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9cIixcbiAgICAgICkudG9TdHJpbmcoKVxuICAgICAgY29uc3QgYW1lbmRlbWVudEpzb25SZXNwb25zZSA9IGF3YWl0IGZldGNoKGFtZW5kZW1lbnRKc29uVXJsKVxuICAgICAgYXNzZXJ0KFxuICAgICAgICBhbWVuZGVtZW50SnNvblJlc3BvbnNlLm9rLFxuICAgICAgICBgUmV0cmlldmFsIG9mIGFtZW5kZW1lbnQgSlNPTiBwYWdlIGF0ICR7YW1lbmRlbWVudEpzb25Vcmx9IGZhaWxlZCB3aXRoIGVycm9yOiAke2FtZW5kZW1lbnRKc29uUmVzcG9uc2Uuc3RhdHVzfSAke2FtZW5kZW1lbnRKc29uUmVzcG9uc2Uuc3RhdHVzVGV4dH1gLFxuICAgICAgKVxuICAgICAgY29uc3QgYW1lbmRlbWVudCA9IGF3YWl0IGFtZW5kZW1lbnRKc29uUmVzcG9uc2UuanNvbigpXG4gICAgICB5aWVsZCBbYW1lbmRlbWVudFVybFBhdGghLCBhbWVuZGVtZW50XVxuXG4gICAgICAvLyBTZWFyY2hDYWNoZSBtdXN0IGJlIHdyaXR0ZW4gYXQgdGhlIGVuZCB0byBlbnN1cmUgdGhhdCBldmVyeXRoaW5nIGlzIGluIGEgY29uc2lzdGVudCBzdGF0ZSxcbiAgICAgIC8vIGV2ZW4gaWYgc2NyaXB0IGZhaWxzIGFicnVwdGx5LlxuICAgICAgYXdhaXQgZnMud3JpdGVGaWxlKFxuICAgICAgICBhbWVuZGVtZW50U2VhcmNoQ2FjaGVGaWxlUGF0aCxcbiAgICAgICAgYW1lbmRlbWVudFNlYXJjaENhY2hlLFxuICAgICAgICBcInV0ZjhcIixcbiAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBwYWdpbmF0aW9uQSA9IGh0bWwucXVlcnlTZWxlY3RvcihcbiAgICAgIFwiZGl2LmFuLXBhZ2luYXRpb24tLWl0ZW0gPiBpLmFuLWljb25zLWNoZXZyb24tcmlnaHQgfiBhXCIsXG4gICAgKVxuICAgIGlmIChwYWdpbmF0aW9uQSA9PT0gbnVsbCkge1xuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY29uc3QgdXJsUGF0aCA9IHBhZ2luYXRpb25BLmdldEF0dHJpYnV0ZShcImhyZWZcIilcbiAgICBhc3NlcnQubm90U3RyaWN0RXF1YWwodXJsUGF0aCwgdW5kZWZpbmVkKVxuICAgIHVybCA9IG5ldyBVUkwodXJsUGF0aCEsIFwiaHR0cHM6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9cIikudG9TdHJpbmcoKVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQVAsTUFB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
@@ -511,7 +511,8 @@ export declare enum OrganeParent {
511
511
  Po715793 = "PO715793",
512
512
  Po717173 = "PO717173",
513
513
  Po725688 = "PO725688",
514
- Po773371 = "PO773371"
514
+ Po773371 = "PO773371",
515
+ Po791579 = "PO791579"
515
516
  }
516
517
  export declare enum PositionPolitique {
517
518
  Majoritaire = "Majoritaire",