@tricoteuses/assemblee 1.1.12 → 1.2.1

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 (75) hide show
  1. package/README.md +5 -5
  2. package/lib/bugs/agenda-00011.js +4 -5
  3. package/lib/bugs/agenda-00011.mjs +1 -2
  4. package/lib/bugs.js +3 -1
  5. package/lib/cleaners/actes_legislatifs.js +3 -1
  6. package/lib/cleaners/acteurs.js +3 -1
  7. package/lib/cleaners/amendements.js +3 -1
  8. package/lib/cleaners/documents.js +3 -1
  9. package/lib/cleaners/dossiers_legislatifs.js +3 -1
  10. package/lib/cleaners/reunions.js +2 -1
  11. package/lib/cleaners/scrutins.js +3 -1
  12. package/lib/cleaners/xml.js +3 -1
  13. package/lib/dates.js +1 -1
  14. package/lib/dossiers_legislatifs.d.ts +2 -1
  15. package/lib/dossiers_legislatifs.js +45 -2
  16. package/lib/dossiers_legislatifs.mjs +7 -1
  17. package/lib/file_systems.js +4 -1
  18. package/lib/index.d.ts +2 -2
  19. package/lib/index.js +13 -1
  20. package/lib/index.mjs +3 -3
  21. package/lib/inserters.js +3 -1
  22. package/lib/loaders.js +4 -1
  23. package/lib/parsers/documents.js +3 -1
  24. package/lib/parsers/recherche_amendements.js +4 -5
  25. package/lib/parsers/recherche_amendements.mjs +1 -2
  26. package/lib/raw_types/acteurs_et_organes.js +2 -1
  27. package/lib/raw_types/agendas.js +2 -1
  28. package/lib/raw_types/amendements.d.ts +1 -1
  29. package/lib/raw_types/amendements.js +3 -2
  30. package/lib/raw_types/amendements.mjs +2 -2
  31. package/lib/raw_types/debats.js +2 -1
  32. package/lib/raw_types/dossiers_legislatifs.d.ts +1 -0
  33. package/lib/raw_types/dossiers_legislatifs.js +4 -2
  34. package/lib/raw_types/dossiers_legislatifs.mjs +3 -2
  35. package/lib/raw_types/questions.d.ts +2 -0
  36. package/lib/raw_types/questions.js +6 -3
  37. package/lib/raw_types/questions.mjs +5 -3
  38. package/lib/raw_types/scrutins.js +2 -1
  39. package/lib/scripts/bugs_helper.js +3 -1
  40. package/lib/scripts/clean_reorganized_data.js +4 -2
  41. package/lib/scripts/clean_reorganized_data.mjs +2 -2
  42. package/lib/scripts/diff_amendements.js +3 -1
  43. package/lib/scripts/document_dossiers_legislatifs.js +2 -1
  44. package/lib/scripts/merge_scrutins.js +4 -1
  45. package/lib/scripts/parse_textes_lois.js +3 -1
  46. package/lib/scripts/raw_types_from_amendements.js +3 -1
  47. package/lib/scripts/reorganize_data.js +4 -2
  48. package/lib/scripts/reorganize_data.mjs +2 -2
  49. package/lib/scripts/retrieve_deputes_photos.js +4 -3
  50. package/lib/scripts/retrieve_deputes_photos.mjs +1 -2
  51. package/lib/scripts/retrieve_documents.js +342 -521
  52. package/lib/scripts/retrieve_documents.mjs +180 -229
  53. package/lib/scripts/retrieve_open_data.js +4 -4
  54. package/lib/scripts/retrieve_open_data.mjs +2 -3
  55. package/lib/scripts/retrieve_pending_amendments.js +3 -1
  56. package/lib/scripts/retrieve_senateurs_photos.js +5 -4
  57. package/lib/scripts/retrieve_senateurs_photos.mjs +2 -3
  58. package/lib/scripts/retrieve_textes_lois.js +7 -4
  59. package/lib/scripts/retrieve_textes_lois.mjs +5 -2
  60. package/lib/scripts/validate_json.js +3 -1
  61. package/lib/types/acteurs_et_organes.js +2 -1
  62. package/lib/types/agendas.js +2 -1
  63. package/lib/types/amendements.d.ts +1 -1
  64. package/lib/types/amendements.js +3 -2
  65. package/lib/types/amendements.mjs +2 -2
  66. package/lib/types/debats.js +2 -1
  67. package/lib/types/dossiers_legislatifs.js +2 -1
  68. package/lib/types/questions.d.ts +2 -0
  69. package/lib/types/questions.js +6 -3
  70. package/lib/types/questions.mjs +5 -3
  71. package/lib/types/scrutins.js +2 -1
  72. package/lib/urls.d.ts +8 -2
  73. package/lib/urls.js +153 -23
  74. package/lib/urls.mjs +97 -22
  75. package/package.json +4 -6
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "__esModule", {
9
9
  value: true
10
10
  });
11
11
  exports.TypeMajorite = exports.PositionMajoritaire = exports.ModePublicationDesVotes = exports.LibelleTypeVote = exports.Libelle = exports.Convert = exports.CodeTypeVote = exports.Code = exports.CausePositionVote = void 0;
12
+ require("core-js/modules/es.object.keys.js");
12
13
  require("core-js/modules/es.array.concat.js");
13
14
  require("core-js/modules/es.array.for-each.js");
14
15
  require("core-js/modules/es.object.to-string.js");
@@ -539,4 +540,4 @@ var typeMap = {
539
540
  CausePositionVote: ["MG", "PAN", "PSE"],
540
541
  PositionMajoritaire: ["abstention", "contre", "pour"]
541
542
  };
542
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNb2RlUHVibGljYXRpb25EZXNWb3RlcyIsImV4cG9ydHMiLCJDb2RlIiwiTGliZWxsZSIsIkNvZGVUeXBlVm90ZSIsIkxpYmVsbGVUeXBlVm90ZSIsIlR5cGVNYWpvcml0ZSIsIkNhdXNlUG9zaXRpb25Wb3RlIiwiUG9zaXRpb25NYWpvcml0YWlyZSIsIkNvbnZlcnQiLCJfY2xhc3NDYWxsQ2hlY2siLCJfY3JlYXRlQ2xhc3MiLCJrZXkiLCJ2YWx1ZSIsInRvU2NydXRpbnMiLCJqc29uIiwiY2FzdCIsIkpTT04iLCJwYXJzZSIsInIiLCJzY3J1dGluc1RvSnNvbiIsInN0cmluZ2lmeSIsInVuY2FzdCIsInRvU2NydXRpbiIsInNjcnV0aW5Ub0pzb24iLCJpbnZhbGlkVmFsdWUiLCJ0eXAiLCJ2YWwiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJFcnJvciIsImNvbmNhdCIsImpzb25Ub0pTUHJvcHMiLCJqc29uVG9KUyIsIm1hcCIsInByb3BzIiwiZm9yRWFjaCIsInAiLCJqcyIsImpzVG9KU09OUHJvcHMiLCJqc1RvSlNPTiIsInRyYW5zZm9ybSIsImdldFByb3BzIiwidHJhbnNmb3JtUHJpbWl0aXZlIiwiX3R5cGVvZiIsInRyYW5zZm9ybVVuaW9uIiwidHlwcyIsImwiLCJpIiwiXyIsInRyYW5zZm9ybUVudW0iLCJjYXNlcyIsImluZGV4T2YiLCJ0cmFuc2Zvcm1BcnJheSIsIkFycmF5IiwiaXNBcnJheSIsImVsIiwidHJhbnNmb3JtRGF0ZSIsImQiLCJEYXRlIiwiaXNOYU4iLCJ2YWx1ZU9mIiwidHJhbnNmb3JtT2JqZWN0IiwiYWRkaXRpb25hbCIsInJlc3VsdCIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJwcm9wIiwidiIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInJlZiIsInR5cGVNYXAiLCJ1bmlvbk1lbWJlcnMiLCJhcnJheUl0ZW1zIiwiYSIsInUiLCJfbGVuIiwiX2tleSIsIm8iLCJuYW1lIiwiU2NydXRpbnMiLCJTY3J1dGluIiwiRGVtYW5kZXVyIiwiTWlzZUF1UG9pbnQiLCJEeXNmb25jdGlvbm5lbWVudCIsIk9iamV0IiwiU29ydFNjcnV0aW4iLCJTeW50aGVzZVZvdGUiLCJUeXBlVm90ZSIsIk9yZ2FuZSIsIkdyb3VwZSIsIlZvdGUiLCJEZWNvbXB0ZU5vbWluYXRpZiIsIlZvdGFudCIsIkRlY29tcHRlVm9peCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9zY3J1dGlucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUbyBwYXJzZSB0aGlzIGRhdGE6XG4vL1xuLy8gICBpbXBvcnQgeyBDb252ZXJ0LCBTY3J1dGlucyB9IGZyb20gXCIuL2ZpbGVcIjtcbi8vXG4vLyAgIGNvbnN0IHNjcnV0aW5zID0gQ29udmVydC50b1NjcnV0aW5zKGpzb24pO1xuLy9cbi8vIFRoZXNlIGZ1bmN0aW9ucyB3aWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBKU09OIGRvZXNuJ3Rcbi8vIG1hdGNoIHRoZSBleHBlY3RlZCBpbnRlcmZhY2UsIGV2ZW4gaWYgdGhlIEpTT04gaXMgdmFsaWQuXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NydXRpbnMge1xuICBzY3J1dGluczogU2NydXRpbltdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NydXRpbiB7XG4gIHNjaGVtYVZlcnNpb24/OiBzdHJpbmdcbiAgdWlkOiBzdHJpbmdcbiAgbnVtZXJvOiBzdHJpbmdcbiAgb3JnYW5lUmVmOiBzdHJpbmdcbiAgbGVnaXNsYXR1cmU6IHN0cmluZ1xuICBzZXNzaW9uUmVmOiBzdHJpbmdcbiAgc2VhbmNlUmVmOiBzdHJpbmdcbiAgZGF0ZVNjcnV0aW46IERhdGVcbiAgcXVhbnRpZW1lSm91clNlYW5jZTogc3RyaW5nXG4gIHR5cGVWb3RlOiBUeXBlVm90ZVxuICBzb3J0OiBTb3J0U2NydXRpblxuICB0aXRyZTogc3RyaW5nXG4gIGRlbWFuZGV1cjogRGVtYW5kZXVyXG4gIG9iamV0OiBPYmpldFxuICBtb2RlUHVibGljYXRpb25EZXNWb3RlczogTW9kZVB1YmxpY2F0aW9uRGVzVm90ZXNcbiAgc3ludGhlc2VWb3RlOiBTeW50aGVzZVZvdGVcbiAgdmVudGlsYXRpb25Wb3RlczogT3JnYW5lXG4gIG1pc2VBdVBvaW50PzogTWlzZUF1UG9pbnRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZW1hbmRldXIge1xuICB0ZXh0ZT86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1pc2VBdVBvaW50IHtcbiAgbm9uVm90YW50cz86IFZvdGFudFtdXG4gIHBvdXI/OiBWb3RhbnRbXVxuICBjb250cmU/OiBWb3RhbnRbXVxuICBhYnN0ZW50aW9ucz86IFZvdGFudFtdXG4gIG5vblZvdGFudHNWb2xvbnRhaXJlcz86IFZvdGFudFtdXG4gIGR5c2ZvbmN0aW9ubmVtZW50PzogRHlzZm9uY3Rpb25uZW1lbnRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEeXNmb25jdGlvbm5lbWVudCB7XG4gIG5vblZvdGFudHM/OiBWb3RhbnRbXVxuICBwb3VyPzogVm90YW50W11cbiAgY29udHJlPzogVm90YW50W11cbiAgYWJzdGVudGlvbnM/OiBWb3RhbnRbXVxuICBub25Wb3RhbnRzVm9sb250YWlyZXM/OiBWb3RhbnRbXVxufVxuXG5leHBvcnQgZW51bSBNb2RlUHVibGljYXRpb25EZXNWb3RlcyB7XG4gIERlY29tcHRlRGlzc2lkZW50c1Bvc2l0aW9uR3JvdXBlID0gXCJEZWNvbXB0ZURpc3NpZGVudHNQb3NpdGlvbkdyb3VwZVwiLFxuICBEZWNvbXB0ZU5vbWluYXRpZiA9IFwiRGVjb21wdGVOb21pbmF0aWZcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPYmpldCB7XG4gIGxpYmVsbGU6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvcnRTY3J1dGluIHtcbiAgY29kZTogQ29kZVxuICBsaWJlbGxlOiBMaWJlbGxlXG59XG5cbmV4cG9ydCBlbnVtIENvZGUge1xuICBBZG9wdMOpID0gXCJhZG9wdMOpXCIsXG4gIFJlamV0w6kgPSBcInJlamV0w6lcIixcbn1cblxuZXhwb3J0IGVudW0gTGliZWxsZSB7XG4gIExBc3NlbWJsw6llTmF0aW9uYWxlQUFkb3B0w6kgPSBcImwnQXNzZW1ibMOpZSBuYXRpb25hbGUgYSBhZG9wdMOpXCIsXG4gIExBc3NlbWJsw6llTmF0aW9uYWxlTkFQYXNBZG9wdMOpID0gXCJMJ0Fzc2VtYmzDqWUgbmF0aW9uYWxlIG4nYSBwYXMgYWRvcHTDqVwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN5bnRoZXNlVm90ZSB7XG4gIG5vbWJyZVZvdGFudHM6IHN0cmluZ1xuICBzdWZmcmFnZXNFeHByaW1lczogc3RyaW5nXG4gIG5iclN1ZmZyYWdlc1JlcXVpczogc3RyaW5nXG4gIGFubm9uY2U6IExpYmVsbGVcbiAgZGVjb21wdGU6IERlY29tcHRlVm9peFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVWb3RlIHtcbiAgY29kZVR5cGVWb3RlOiBDb2RlVHlwZVZvdGVcbiAgbGliZWxsZVR5cGVWb3RlOiBMaWJlbGxlVHlwZVZvdGVcbiAgdHlwZU1ham9yaXRlOiBUeXBlTWFqb3JpdGVcbn1cblxuZXhwb3J0IGVudW0gQ29kZVR5cGVWb3RlIHtcbiAgTW9jID0gXCJNT0NcIixcbiAgU2F0ID0gXCJTQVRcIixcbiAgU3BvID0gXCJTUE9cIixcbiAgU3BzID0gXCJTUFNcIixcbn1cblxuZXhwb3J0IGVudW0gTGliZWxsZVR5cGVWb3RlIHtcbiAgTW90aW9uRGVDZW5zdXJlID0gXCJtb3Rpb24gZGUgY2Vuc3VyZVwiLFxuICBTY3J1dGluUHVibGljT3JkaW5haXJlID0gXCJzY3J1dGluIHB1YmxpYyBvcmRpbmFpcmVcIixcbiAgU2NydXRpblB1YmxpY1NvbGVubmVsID0gXCJzY3J1dGluIHB1YmxpYyBzb2xlbm5lbFwiLFxuICBTY3J1dGluw4BMYVRyaWJ1bmUgPSBcInNjcnV0aW4gw6AgbGEgdHJpYnVuZVwiLFxufVxuXG5leHBvcnQgZW51bSBUeXBlTWFqb3JpdGUge1xuICBNYWpvcml0w6lBYnNvbHVlRGVzU3VmZnJhZ2VzRXhwcmltw6lzID0gXCJtYWpvcml0w6kgYWJzb2x1ZSBkZXMgc3VmZnJhZ2VzIGV4cHJpbcOpc1wiLFxuICBNYWpvcml0w6lEZXNNZW1icmVzQ29tcG9zYW50TEFzc2VtYmzDqWVOYXRpb25hbGUgPSBcIm1ham9yaXTDqSBkZXMgbWVtYnJlcyBjb21wb3NhbnQgbCdBc3NlbWJsw6llIG5hdGlvbmFsZVwiLFxuICBNYWpvcml0w6lEZXNNZW1icmVzQ29tcG9zYW50c0NvbXBvc2FudExBc3NlbWJsw6llID0gXCJtYWpvcml0w6kgZGVzIG1lbWJyZXMgY29tcG9zYW50cyBjb21wb3NhbnQgbCdBc3NlbWJsw6llXCIsXG4gIE1ham9yaXTDqURlc01lbWJyZXNDb21wb3NhbnRzQ29tcG9zYW50TEFzc2VtYmzDqWVOYXRpb25hbGUgPSBcIm1ham9yaXTDqSBkZXMgbWVtYnJlcyBjb21wb3NhbnRzIGNvbXBvc2FudCBsJ0Fzc2VtYmzDqWUgbmF0aW9uYWxlXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JnYW5lIHtcbiAgb3JnYW5lUmVmOiBzdHJpbmdcbiAgZ3JvdXBlczogR3JvdXBlW11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcm91cGUge1xuICBvcmdhbmVSZWY6IHN0cmluZ1xuICBub21icmVNZW1icmVzR3JvdXBlOiBzdHJpbmdcbiAgdm90ZTogVm90ZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZvdGUge1xuICBwb3NpdGlvbk1ham9yaXRhaXJlOiBQb3NpdGlvbk1ham9yaXRhaXJlXG4gIGRlY29tcHRlVm9peDogRGVjb21wdGVWb2l4XG4gIGRlY29tcHRlTm9taW5hdGlmOiBEZWNvbXB0ZU5vbWluYXRpZlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlY29tcHRlTm9taW5hdGlmIHtcbiAgbm9uVm90YW50cz86IFZvdGFudFtdXG4gIHBvdXI/OiBWb3RhbnRbXVxuICBjb250cmU/OiBWb3RhbnRbXVxuICBhYnN0ZW50aW9ucz86IFZvdGFudFtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVm90YW50IHtcbiAgYWN0ZXVyUmVmOiBzdHJpbmdcbiAgbWFuZGF0UmVmOiBzdHJpbmdcbiAgY2F1c2VQb3NpdGlvblZvdGU/OiBDYXVzZVBvc2l0aW9uVm90ZVxuICBwYXJEZWxlZ2F0aW9uPzogYm9vbGVhblxufVxuXG5leHBvcnQgZW51bSBDYXVzZVBvc2l0aW9uVm90ZSB7XG4gIE1nID0gXCJNR1wiLFxuICBQYW4gPSBcIlBBTlwiLFxuICBQc2UgPSBcIlBTRVwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlY29tcHRlVm9peCB7XG4gIHBvdXI6IHN0cmluZ1xuICBjb250cmU6IHN0cmluZ1xuICBub25Wb3RhbnRzPzogc3RyaW5nXG4gIGFic3RlbnRpb25zPzogc3RyaW5nXG4gIG5vblZvdGFudHNWb2xvbnRhaXJlcz86IHN0cmluZ1xufVxuXG5leHBvcnQgZW51bSBQb3NpdGlvbk1ham9yaXRhaXJlIHtcbiAgQWJzdGVudGlvbiA9IFwiYWJzdGVudGlvblwiLFxuICBDb250cmUgPSBcImNvbnRyZVwiLFxuICBQb3VyID0gXCJwb3VyXCIsXG59XG5cbi8vIENvbnZlcnRzIEpTT04gc3RyaW5ncyB0by9mcm9tIHlvdXIgdHlwZXNcbi8vIGFuZCBhc3NlcnRzIHRoZSByZXN1bHRzIG9mIEpTT04ucGFyc2UgYXQgcnVudGltZVxuZXhwb3J0IGNsYXNzIENvbnZlcnQge1xuICBwdWJsaWMgc3RhdGljIHRvU2NydXRpbnMoanNvbjogc3RyaW5nKTogU2NydXRpbnMge1xuICAgIHJldHVybiBjYXN0KEpTT04ucGFyc2UoanNvbiksIHIoXCJTY3J1dGluc1wiKSlcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc2NydXRpbnNUb0pzb24odmFsdWU6IFNjcnV0aW5zKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodW5jYXN0KHZhbHVlLCByKFwiU2NydXRpbnNcIikpLCBudWxsLCAyKVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyB0b1NjcnV0aW4oanNvbjogc3RyaW5nKTogU2NydXRpbiB7XG4gICAgcmV0dXJuIGNhc3QoSlNPTi5wYXJzZShqc29uKSwgcihcIlNjcnV0aW5cIikpXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHNjcnV0aW5Ub0pzb24odmFsdWU6IFNjcnV0aW4pOiBzdHJpbmcge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh1bmNhc3QodmFsdWUsIHIoXCJTY3J1dGluXCIpKSwgbnVsbCwgMilcbiAgfVxufVxuXG5mdW5jdGlvbiBpbnZhbGlkVmFsdWUodHlwOiBhbnksIHZhbDogYW55LCBrZXk6IGFueSA9IFwiXCIpOiBuZXZlciB7XG4gIGlmIChrZXkpIHtcbiAgICB0aHJvdyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIHZhbHVlIGZvciBrZXkgXCIke2tleX1cIi4gRXhwZWN0ZWQgdHlwZSAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICB0eXAsXG4gICAgICApfSBidXQgZ290ICR7SlNPTi5zdHJpbmdpZnkodmFsKX1gLFxuICAgIClcbiAgfVxuICB0aHJvdyBFcnJvcihcbiAgICBgSW52YWxpZCB2YWx1ZSAke0pTT04uc3RyaW5naWZ5KHZhbCl9IGZvciB0eXBlICR7SlNPTi5zdHJpbmdpZnkodHlwKX1gLFxuICApXG59XG5cbmZ1bmN0aW9uIGpzb25Ub0pTUHJvcHModHlwOiBhbnkpOiBhbnkge1xuICBpZiAodHlwLmpzb25Ub0pTID09PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBtYXA6IGFueSA9IHt9XG4gICAgdHlwLnByb3BzLmZvckVhY2goKHA6IGFueSkgPT4gKG1hcFtwLmpzb25dID0geyBrZXk6IHAuanMsIHR5cDogcC50eXAgfSkpXG4gICAgdHlwLmpzb25Ub0pTID0gbWFwXG4gIH1cbiAgcmV0dXJuIHR5cC5qc29uVG9KU1xufVxuXG5mdW5jdGlvbiBqc1RvSlNPTlByb3BzKHR5cDogYW55KTogYW55IHtcbiAgaWYgKHR5cC5qc1RvSlNPTiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbWFwOiBhbnkgPSB7fVxuICAgIHR5cC5wcm9wcy5mb3JFYWNoKChwOiBhbnkpID0+IChtYXBbcC5qc10gPSB7IGtleTogcC5qc29uLCB0eXA6IHAudHlwIH0pKVxuICAgIHR5cC5qc1RvSlNPTiA9IG1hcFxuICB9XG4gIHJldHVybiB0eXAuanNUb0pTT05cbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtKHZhbDogYW55LCB0eXA6IGFueSwgZ2V0UHJvcHM6IGFueSwga2V5OiBhbnkgPSBcIlwiKTogYW55IHtcbiAgZnVuY3Rpb24gdHJhbnNmb3JtUHJpbWl0aXZlKHR5cDogc3RyaW5nLCB2YWw6IGFueSk6IGFueSB7XG4gICAgaWYgKHR5cGVvZiB0eXAgPT09IHR5cGVvZiB2YWwpIHJldHVybiB2YWxcbiAgICByZXR1cm4gaW52YWxpZFZhbHVlKHR5cCwgdmFsLCBrZXkpXG4gIH1cblxuICBmdW5jdGlvbiB0cmFuc2Zvcm1Vbmlvbih0eXBzOiBhbnlbXSwgdmFsOiBhbnkpOiBhbnkge1xuICAgIC8vIHZhbCBtdXN0IHZhbGlkYXRlIGFnYWluc3Qgb25lIHR5cCBpbiB0eXBzXG4gICAgY29uc3QgbCA9IHR5cHMubGVuZ3RoXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsOyBpKyspIHtcbiAgICAgIGNvbnN0IHR5cCA9IHR5cHNbaV1cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB0cmFuc2Zvcm0odmFsLCB0eXAsIGdldFByb3BzKVxuICAgICAgfSBjYXRjaCAoXykge31cbiAgICB9XG4gICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXBzLCB2YWwpXG4gIH1cblxuICBmdW5jdGlvbiB0cmFuc2Zvcm1FbnVtKGNhc2VzOiBzdHJpbmdbXSwgdmFsOiBhbnkpOiBhbnkge1xuICAgIGlmIChjYXNlcy5pbmRleE9mKHZhbCkgIT09IC0xKSByZXR1cm4gdmFsXG4gICAgcmV0dXJuIGludmFsaWRWYWx1ZShjYXNlcywgdmFsKVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtQXJyYXkodHlwOiBhbnksIHZhbDogYW55KTogYW55IHtcbiAgICAvLyB2YWwgbXVzdCBiZSBhbiBhcnJheSB3aXRoIG5vIGludmFsaWQgZWxlbWVudHNcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIGludmFsaWRWYWx1ZShcImFycmF5XCIsIHZhbClcbiAgICByZXR1cm4gdmFsLm1hcCgoZWwpID0+IHRyYW5zZm9ybShlbCwgdHlwLCBnZXRQcm9wcykpXG4gIH1cblxuICBmdW5jdGlvbiB0cmFuc2Zvcm1EYXRlKHZhbDogYW55KTogYW55IHtcbiAgICBpZiAodmFsID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICBjb25zdCBkID0gbmV3IERhdGUodmFsKVxuICAgIGlmIChpc05hTihkLnZhbHVlT2YoKSkpIHtcbiAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUoXCJEYXRlXCIsIHZhbClcbiAgICB9XG4gICAgcmV0dXJuIGRcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYW5zZm9ybU9iamVjdChcbiAgICBwcm9wczogeyBbazogc3RyaW5nXTogYW55IH0sXG4gICAgYWRkaXRpb25hbDogYW55LFxuICAgIHZhbDogYW55LFxuICApOiBhbnkge1xuICAgIGlmICh2YWwgPT09IG51bGwgfHwgdHlwZW9mIHZhbCAhPT0gXCJvYmplY3RcIiB8fCBBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUoXCJvYmplY3RcIiwgdmFsKVxuICAgIH1cbiAgICBjb25zdCByZXN1bHQ6IGFueSA9IHt9XG4gICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMocHJvcHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgY29uc3QgcHJvcCA9IHByb3BzW2tleV1cbiAgICAgIGNvbnN0IHYgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsLCBrZXkpXG4gICAgICAgID8gdmFsW2tleV1cbiAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgIHJlc3VsdFtwcm9wLmtleV0gPSB0cmFuc2Zvcm0odiwgcHJvcC50eXAsIGdldFByb3BzLCBwcm9wLmtleSlcbiAgICB9KVxuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHZhbCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcywga2V5KSkge1xuICAgICAgICByZXN1bHRba2V5XSA9IHRyYW5zZm9ybSh2YWxba2V5XSwgYWRkaXRpb25hbCwgZ2V0UHJvcHMsIGtleSlcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIGlmICh0eXAgPT09IFwiYW55XCIpIHJldHVybiB2YWxcbiAgaWYgKHR5cCA9PT0gbnVsbCkge1xuICAgIGlmICh2YWwgPT09IG51bGwpIHJldHVybiB2YWxcbiAgICByZXR1cm4gaW52YWxpZFZhbHVlKHR5cCwgdmFsKVxuICB9XG4gIC8vIGlmICh0eXAgPT09IGZhbHNlKSByZXR1cm4gaW52YWxpZFZhbHVlKHR5cCwgdmFsKVxuICB3aGlsZSAodHlwZW9mIHR5cCA9PT0gXCJvYmplY3RcIiAmJiB0eXAucmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICB0eXAgPSB0eXBlTWFwW3R5cC5yZWZdXG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkodHlwKSkgcmV0dXJuIHRyYW5zZm9ybUVudW0odHlwLCB2YWwpXG4gIGlmICh0eXBlb2YgdHlwID09PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIHR5cC5oYXNPd25Qcm9wZXJ0eShcInVuaW9uTWVtYmVyc1wiKVxuICAgICAgPyB0cmFuc2Zvcm1Vbmlvbih0eXAudW5pb25NZW1iZXJzLCB2YWwpXG4gICAgICA6IHR5cC5oYXNPd25Qcm9wZXJ0eShcImFycmF5SXRlbXNcIilcbiAgICAgID8gdHJhbnNmb3JtQXJyYXkodHlwLmFycmF5SXRlbXMsIHZhbClcbiAgICAgIDogdHlwLmhhc093blByb3BlcnR5KFwicHJvcHNcIilcbiAgICAgID8gdHJhbnNmb3JtT2JqZWN0KGdldFByb3BzKHR5cCksIHR5cC5hZGRpdGlvbmFsLCB2YWwpXG4gICAgICA6IGludmFsaWRWYWx1ZSh0eXAsIHZhbClcbiAgfVxuICAvLyBOdW1iZXJzIGNhbiBiZSBwYXJzZWQgYnkgRGF0ZSBidXQgc2hvdWxkbid0IGJlLlxuICBpZiAodHlwID09PSBEYXRlICYmIHR5cGVvZiB2YWwgIT09IFwibnVtYmVyXCIpIHJldHVybiB0cmFuc2Zvcm1EYXRlKHZhbClcbiAgcmV0dXJuIHRyYW5zZm9ybVByaW1pdGl2ZSh0eXAsIHZhbClcbn1cblxuZnVuY3Rpb24gY2FzdDxUPih2YWw6IGFueSwgdHlwOiBhbnkpOiBUIHtcbiAgcmV0dXJuIHRyYW5zZm9ybSh2YWwsIHR5cCwganNvblRvSlNQcm9wcylcbn1cblxuZnVuY3Rpb24gdW5jYXN0PFQ+KHZhbDogVCwgdHlwOiBhbnkpOiBhbnkge1xuICByZXR1cm4gdHJhbnNmb3JtKHZhbCwgdHlwLCBqc1RvSlNPTlByb3BzKVxufVxuXG5mdW5jdGlvbiBhKHR5cDogYW55KSB7XG4gIHJldHVybiB7IGFycmF5SXRlbXM6IHR5cCB9XG59XG5cbmZ1bmN0aW9uIHUoLi4udHlwczogYW55W10pIHtcbiAgcmV0dXJuIHsgdW5pb25NZW1iZXJzOiB0eXBzIH1cbn1cblxuZnVuY3Rpb24gbyhwcm9wczogYW55W10sIGFkZGl0aW9uYWw6IGFueSkge1xuICByZXR1cm4geyBwcm9wcywgYWRkaXRpb25hbCB9XG59XG5cbi8vIGZ1bmN0aW9uIG0oYWRkaXRpb25hbDogYW55KSB7XG4vLyAgIHJldHVybiB7IHByb3BzOiBbXSwgYWRkaXRpb25hbCB9XG4vLyB9XG5cbmZ1bmN0aW9uIHIobmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiB7IHJlZjogbmFtZSB9XG59XG5cbmNvbnN0IHR5cGVNYXA6IGFueSA9IHtcbiAgU2NydXRpbnM6IG8oXG4gICAgW3sganNvbjogXCJzY3J1dGluc1wiLCBqczogXCJzY3J1dGluc1wiLCB0eXA6IGEocihcIlNjcnV0aW5cIikpIH1dLFxuICAgIGZhbHNlLFxuICApLFxuICBTY3J1dGluOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJzY2hlbWFWZXJzaW9uXCIsIGpzOiBcInNjaGVtYVZlcnNpb25cIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHsganNvbjogXCJ1aWRcIiwganM6IFwidWlkXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcIm51bWVyb1wiLCBqczogXCJudW1lcm9cIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwib3JnYW5lUmVmXCIsIGpzOiBcIm9yZ2FuZVJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJsZWdpc2xhdHVyZVwiLCBqczogXCJsZWdpc2xhdHVyZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJzZXNzaW9uUmVmXCIsIGpzOiBcInNlc3Npb25SZWZcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwic2VhbmNlUmVmXCIsIGpzOiBcInNlYW5jZVJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJkYXRlU2NydXRpblwiLCBqczogXCJkYXRlU2NydXRpblwiLCB0eXA6IERhdGUgfSxcbiAgICAgIHsganNvbjogXCJxdWFudGllbWVKb3VyU2VhbmNlXCIsIGpzOiBcInF1YW50aWVtZUpvdXJTZWFuY2VcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwidHlwZVZvdGVcIiwganM6IFwidHlwZVZvdGVcIiwgdHlwOiByKFwiVHlwZVZvdGVcIikgfSxcbiAgICAgIHsganNvbjogXCJzb3J0XCIsIGpzOiBcInNvcnRcIiwgdHlwOiByKFwiU29ydFNjcnV0aW5cIikgfSxcbiAgICAgIHsganNvbjogXCJ0aXRyZVwiLCBqczogXCJ0aXRyZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJkZW1hbmRldXJcIiwganM6IFwiZGVtYW5kZXVyXCIsIHR5cDogcihcIkRlbWFuZGV1clwiKSB9LFxuICAgICAgeyBqc29uOiBcIm9iamV0XCIsIGpzOiBcIm9iamV0XCIsIHR5cDogcihcIk9iamV0XCIpIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwibW9kZVB1YmxpY2F0aW9uRGVzVm90ZXNcIixcbiAgICAgICAganM6IFwibW9kZVB1YmxpY2F0aW9uRGVzVm90ZXNcIixcbiAgICAgICAgdHlwOiByKFwiTW9kZVB1YmxpY2F0aW9uRGVzVm90ZXNcIiksXG4gICAgICB9LFxuICAgICAgeyBqc29uOiBcInN5bnRoZXNlVm90ZVwiLCBqczogXCJzeW50aGVzZVZvdGVcIiwgdHlwOiByKFwiU3ludGhlc2VWb3RlXCIpIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwidmVudGlsYXRpb25Wb3Rlc1wiLFxuICAgICAgICBqczogXCJ2ZW50aWxhdGlvblZvdGVzXCIsXG4gICAgICAgIHR5cDogcihcIk9yZ2FuZVwiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwibWlzZUF1UG9pbnRcIixcbiAgICAgICAganM6IFwibWlzZUF1UG9pbnRcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgcihcIk1pc2VBdVBvaW50XCIpKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgRGVtYW5kZXVyOiBvKFt7IGpzb246IFwidGV4dGVcIiwganM6IFwidGV4dGVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfV0sIGZhbHNlKSxcbiAgTWlzZUF1UG9pbnQ6IG8oXG4gICAgW1xuICAgICAge1xuICAgICAgICBqc29uOiBcIm5vblZvdGFudHNcIixcbiAgICAgICAganM6IFwibm9uVm90YW50c1wiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwicG91clwiLFxuICAgICAgICBqczogXCJwb3VyXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGEocihcIlZvdGFudFwiKSkpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJjb250cmVcIixcbiAgICAgICAganM6IFwiY29udHJlXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGEocihcIlZvdGFudFwiKSkpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJhYnN0ZW50aW9uc1wiLFxuICAgICAgICBqczogXCJhYnN0ZW50aW9uc1wiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwibm9uVm90YW50c1ZvbG9udGFpcmVzXCIsXG4gICAgICAgIGpzOiBcIm5vblZvdGFudHNWb2xvbnRhaXJlc1wiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiZHlzZm9uY3Rpb25uZW1lbnRcIixcbiAgICAgICAganM6IFwiZHlzZm9uY3Rpb25uZW1lbnRcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgcihcIkR5c2ZvbmN0aW9ubmVtZW50XCIpKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgRHlzZm9uY3Rpb25uZW1lbnQ6IG8oXG4gICAgW1xuICAgICAge1xuICAgICAgICBqc29uOiBcIm5vblZvdGFudHNcIixcbiAgICAgICAganM6IFwibm9uVm90YW50c1wiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwicG91clwiLFxuICAgICAgICBqczogXCJwb3VyXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGEocihcIlZvdGFudFwiKSkpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJjb250cmVcIixcbiAgICAgICAganM6IFwiY29udHJlXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGEocihcIlZvdGFudFwiKSkpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJhYnN0ZW50aW9uc1wiLFxuICAgICAgICBqczogXCJhYnN0ZW50aW9uc1wiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwibm9uVm90YW50c1ZvbG9udGFpcmVzXCIsXG4gICAgICAgIGpzOiBcIm5vblZvdGFudHNWb2xvbnRhaXJlc1wiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgT2JqZXQ6IG8oW3sganNvbjogXCJsaWJlbGxlXCIsIGpzOiBcImxpYmVsbGVcIiwgdHlwOiBcIlwiIH1dLCBmYWxzZSksXG4gIFNvcnRTY3J1dGluOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJjb2RlXCIsIGpzOiBcImNvZGVcIiwgdHlwOiByKFwiQ29kZVwiKSB9LFxuICAgICAgeyBqc29uOiBcImxpYmVsbGVcIiwganM6IFwibGliZWxsZVwiLCB0eXA6IHIoXCJMaWJlbGxlXCIpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgU3ludGhlc2VWb3RlOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJub21icmVWb3RhbnRzXCIsIGpzOiBcIm5vbWJyZVZvdGFudHNcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwic3VmZnJhZ2VzRXhwcmltZXNcIiwganM6IFwic3VmZnJhZ2VzRXhwcmltZXNcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwibmJyU3VmZnJhZ2VzUmVxdWlzXCIsIGpzOiBcIm5iclN1ZmZyYWdlc1JlcXVpc1wiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJhbm5vbmNlXCIsIGpzOiBcImFubm9uY2VcIiwgdHlwOiByKFwiTGliZWxsZVwiKSB9LFxuICAgICAgeyBqc29uOiBcImRlY29tcHRlXCIsIGpzOiBcImRlY29tcHRlXCIsIHR5cDogcihcIkRlY29tcHRlVm9peFwiKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIFR5cGVWb3RlOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJjb2RlVHlwZVZvdGVcIiwganM6IFwiY29kZVR5cGVWb3RlXCIsIHR5cDogcihcIkNvZGVUeXBlVm90ZVwiKSB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcImxpYmVsbGVUeXBlVm90ZVwiLFxuICAgICAgICBqczogXCJsaWJlbGxlVHlwZVZvdGVcIixcbiAgICAgICAgdHlwOiByKFwiTGliZWxsZVR5cGVWb3RlXCIpLFxuICAgICAgfSxcbiAgICAgIHsganNvbjogXCJ0eXBlTWFqb3JpdGVcIiwganM6IFwidHlwZU1ham9yaXRlXCIsIHR5cDogcihcIlR5cGVNYWpvcml0ZVwiKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIE9yZ2FuZTogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwib3JnYW5lUmVmXCIsIGpzOiBcIm9yZ2FuZVJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJncm91cGVzXCIsIGpzOiBcImdyb3VwZXNcIiwgdHlwOiBhKHIoXCJHcm91cGVcIikpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgR3JvdXBlOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJvcmdhbmVSZWZcIiwganM6IFwib3JnYW5lUmVmXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcIm5vbWJyZU1lbWJyZXNHcm91cGVcIiwganM6IFwibm9tYnJlTWVtYnJlc0dyb3VwZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJ2b3RlXCIsIGpzOiBcInZvdGVcIiwgdHlwOiByKFwiVm90ZVwiKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIFZvdGU6IG8oXG4gICAgW1xuICAgICAge1xuICAgICAgICBqc29uOiBcInBvc2l0aW9uTWFqb3JpdGFpcmVcIixcbiAgICAgICAganM6IFwicG9zaXRpb25NYWpvcml0YWlyZVwiLFxuICAgICAgICB0eXA6IHIoXCJQb3NpdGlvbk1ham9yaXRhaXJlXCIpLFxuICAgICAgfSxcbiAgICAgIHsganNvbjogXCJkZWNvbXB0ZVZvaXhcIiwganM6IFwiZGVjb21wdGVWb2l4XCIsIHR5cDogcihcIkRlY29tcHRlVm9peFwiKSB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcImRlY29tcHRlTm9taW5hdGlmXCIsXG4gICAgICAgIGpzOiBcImRlY29tcHRlTm9taW5hdGlmXCIsXG4gICAgICAgIHR5cDogcihcIkRlY29tcHRlTm9taW5hdGlmXCIpLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBEZWNvbXB0ZU5vbWluYXRpZjogbyhcbiAgICBbXG4gICAgICB7XG4gICAgICAgIGpzb246IFwibm9uVm90YW50c1wiLFxuICAgICAgICBqczogXCJub25Wb3RhbnRzXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGEocihcIlZvdGFudFwiKSkpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJwb3VyXCIsXG4gICAgICAgIGpzOiBcInBvdXJcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgYShyKFwiVm90YW50XCIpKSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcImNvbnRyZVwiLFxuICAgICAgICBqczogXCJjb250cmVcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgYShyKFwiVm90YW50XCIpKSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcImFic3RlbnRpb25zXCIsXG4gICAgICAgIGpzOiBcImFic3RlbnRpb25zXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGEocihcIlZvdGFudFwiKSkpLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBWb3RhbnQ6IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcImFjdGV1clJlZlwiLCBqczogXCJhY3RldXJSZWZcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwibWFuZGF0UmVmXCIsIGpzOiBcIm1hbmRhdFJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJjYXVzZVBvc2l0aW9uVm90ZVwiLFxuICAgICAgICBqczogXCJjYXVzZVBvc2l0aW9uVm90ZVwiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCByKFwiQ2F1c2VQb3NpdGlvblZvdGVcIikpLFxuICAgICAgfSxcbiAgICAgIHsganNvbjogXCJwYXJEZWxlZ2F0aW9uXCIsIGpzOiBcInBhckRlbGVnYXRpb25cIiwgdHlwOiB1KHVuZGVmaW5lZCwgZmFsc2UpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgRGVjb21wdGVWb2l4OiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJwb3VyXCIsIGpzOiBcInBvdXJcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwiY29udHJlXCIsIGpzOiBcImNvbnRyZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJub25Wb3RhbnRzXCIsIGpzOiBcIm5vblZvdGFudHNcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHsganNvbjogXCJhYnN0ZW50aW9uc1wiLCBqczogXCJhYnN0ZW50aW9uc1wiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcIm5vblZvdGFudHNWb2xvbnRhaXJlc1wiLFxuICAgICAgICBqczogXCJub25Wb3RhbnRzVm9sb250YWlyZXNcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIiksXG4gICAgICB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIE1vZGVQdWJsaWNhdGlvbkRlc1ZvdGVzOiBbXG4gICAgXCJEZWNvbXB0ZURpc3NpZGVudHNQb3NpdGlvbkdyb3VwZVwiLFxuICAgIFwiRGVjb21wdGVOb21pbmF0aWZcIixcbiAgXSxcbiAgQ29kZTogW1wiYWRvcHTDqVwiLCBcInJlamV0w6lcIl0sXG4gIExpYmVsbGU6IFtcbiAgICBcImwnQXNzZW1ibMOpZSBuYXRpb25hbGUgYSBhZG9wdMOpXCIsXG4gICAgXCJMJ0Fzc2VtYmzDqWUgbmF0aW9uYWxlIG4nYSBwYXMgYWRvcHTDqVwiLFxuICBdLFxuICBDb2RlVHlwZVZvdGU6IFtcIk1PQ1wiLCBcIlNBVFwiLCBcIlNQT1wiLCBcIlNQU1wiXSxcbiAgTGliZWxsZVR5cGVWb3RlOiBbXG4gICAgXCJtb3Rpb24gZGUgY2Vuc3VyZVwiLFxuICAgIFwic2NydXRpbiBwdWJsaWMgb3JkaW5haXJlXCIsXG4gICAgXCJzY3J1dGluIHB1YmxpYyBzb2xlbm5lbFwiLFxuICAgIFwic2NydXRpbiDDoCBsYSB0cmlidW5lXCIsXG4gIF0sXG4gIFR5cGVNYWpvcml0ZTogW1xuICAgIFwibWFqb3JpdMOpIGFic29sdWUgZGVzIHN1ZmZyYWdlcyBleHByaW3DqXNcIixcbiAgICBcIm1ham9yaXTDqSBkZXMgbWVtYnJlcyBjb21wb3NhbnQgbCdBc3NlbWJsw6llIG5hdGlvbmFsZVwiLFxuICAgIFwibWFqb3JpdMOpIGRlcyBtZW1icmVzIGNvbXBvc2FudHMgY29tcG9zYW50IGwnQXNzZW1ibMOpZVwiLFxuICAgIFwibWFqb3JpdMOpIGRlcyBtZW1icmVzIGNvbXBvc2FudHMgY29tcG9zYW50IGwnQXNzZW1ibMOpZSBuYXRpb25hbGVcIixcbiAgXSxcbiAgQ2F1c2VQb3NpdGlvblZvdGU6IFtcIk1HXCIsIFwiUEFOXCIsIFwiUFNFXCJdLFxuICBQb3NpdGlvbk1ham9yaXRhaXJlOiBbXCJhYnN0ZW50aW9uXCIsIFwiY29udHJlXCIsIFwicG91clwiXSxcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7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
543
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNb2RlUHVibGljYXRpb25EZXNWb3RlcyIsImV4cG9ydHMiLCJDb2RlIiwiTGliZWxsZSIsIkNvZGVUeXBlVm90ZSIsIkxpYmVsbGVUeXBlVm90ZSIsIlR5cGVNYWpvcml0ZSIsIkNhdXNlUG9zaXRpb25Wb3RlIiwiUG9zaXRpb25NYWpvcml0YWlyZSIsIkNvbnZlcnQiLCJfY2xhc3NDYWxsQ2hlY2siLCJfY3JlYXRlQ2xhc3MiLCJrZXkiLCJ2YWx1ZSIsInRvU2NydXRpbnMiLCJqc29uIiwiY2FzdCIsIkpTT04iLCJwYXJzZSIsInIiLCJzY3J1dGluc1RvSnNvbiIsInN0cmluZ2lmeSIsInVuY2FzdCIsInRvU2NydXRpbiIsInNjcnV0aW5Ub0pzb24iLCJpbnZhbGlkVmFsdWUiLCJ0eXAiLCJ2YWwiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJFcnJvciIsImNvbmNhdCIsImpzb25Ub0pTUHJvcHMiLCJqc29uVG9KUyIsIm1hcCIsInByb3BzIiwiZm9yRWFjaCIsInAiLCJqcyIsImpzVG9KU09OUHJvcHMiLCJqc1RvSlNPTiIsInRyYW5zZm9ybSIsImdldFByb3BzIiwidHJhbnNmb3JtUHJpbWl0aXZlIiwiX3R5cGVvZiIsInRyYW5zZm9ybVVuaW9uIiwidHlwcyIsImwiLCJpIiwiXyIsInRyYW5zZm9ybUVudW0iLCJjYXNlcyIsImluZGV4T2YiLCJ0cmFuc2Zvcm1BcnJheSIsIkFycmF5IiwiaXNBcnJheSIsImVsIiwidHJhbnNmb3JtRGF0ZSIsImQiLCJEYXRlIiwiaXNOYU4iLCJ2YWx1ZU9mIiwidHJhbnNmb3JtT2JqZWN0IiwiYWRkaXRpb25hbCIsInJlc3VsdCIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJwcm9wIiwidiIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInJlZiIsInR5cGVNYXAiLCJ1bmlvbk1lbWJlcnMiLCJhcnJheUl0ZW1zIiwiYSIsInUiLCJfbGVuIiwiX2tleSIsIm8iLCJuYW1lIiwiU2NydXRpbnMiLCJTY3J1dGluIiwiRGVtYW5kZXVyIiwiTWlzZUF1UG9pbnQiLCJEeXNmb25jdGlvbm5lbWVudCIsIk9iamV0IiwiU29ydFNjcnV0aW4iLCJTeW50aGVzZVZvdGUiLCJUeXBlVm90ZSIsIk9yZ2FuZSIsIkdyb3VwZSIsIlZvdGUiLCJEZWNvbXB0ZU5vbWluYXRpZiIsIlZvdGFudCIsIkRlY29tcHRlVm9peCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9zY3J1dGlucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUbyBwYXJzZSB0aGlzIGRhdGE6XG4vL1xuLy8gICBpbXBvcnQgeyBDb252ZXJ0LCBTY3J1dGlucyB9IGZyb20gXCIuL2ZpbGVcIjtcbi8vXG4vLyAgIGNvbnN0IHNjcnV0aW5zID0gQ29udmVydC50b1NjcnV0aW5zKGpzb24pO1xuLy9cbi8vIFRoZXNlIGZ1bmN0aW9ucyB3aWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBKU09OIGRvZXNuJ3Rcbi8vIG1hdGNoIHRoZSBleHBlY3RlZCBpbnRlcmZhY2UsIGV2ZW4gaWYgdGhlIEpTT04gaXMgdmFsaWQuXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NydXRpbnMge1xuICBzY3J1dGluczogU2NydXRpbltdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NydXRpbiB7XG4gIHNjaGVtYVZlcnNpb24/OiBzdHJpbmdcbiAgdWlkOiBzdHJpbmdcbiAgbnVtZXJvOiBzdHJpbmdcbiAgb3JnYW5lUmVmOiBzdHJpbmdcbiAgbGVnaXNsYXR1cmU6IHN0cmluZ1xuICBzZXNzaW9uUmVmOiBzdHJpbmdcbiAgc2VhbmNlUmVmOiBzdHJpbmdcbiAgZGF0ZVNjcnV0aW46IERhdGVcbiAgcXVhbnRpZW1lSm91clNlYW5jZTogc3RyaW5nXG4gIHR5cGVWb3RlOiBUeXBlVm90ZVxuICBzb3J0OiBTb3J0U2NydXRpblxuICB0aXRyZTogc3RyaW5nXG4gIGRlbWFuZGV1cjogRGVtYW5kZXVyXG4gIG9iamV0OiBPYmpldFxuICBtb2RlUHVibGljYXRpb25EZXNWb3RlczogTW9kZVB1YmxpY2F0aW9uRGVzVm90ZXNcbiAgc3ludGhlc2VWb3RlOiBTeW50aGVzZVZvdGVcbiAgdmVudGlsYXRpb25Wb3RlczogT3JnYW5lXG4gIG1pc2VBdVBvaW50PzogTWlzZUF1UG9pbnRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZW1hbmRldXIge1xuICB0ZXh0ZT86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1pc2VBdVBvaW50IHtcbiAgbm9uVm90YW50cz86IFZvdGFudFtdXG4gIHBvdXI/OiBWb3RhbnRbXVxuICBjb250cmU/OiBWb3RhbnRbXVxuICBhYnN0ZW50aW9ucz86IFZvdGFudFtdXG4gIG5vblZvdGFudHNWb2xvbnRhaXJlcz86IFZvdGFudFtdXG4gIGR5c2ZvbmN0aW9ubmVtZW50PzogRHlzZm9uY3Rpb25uZW1lbnRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEeXNmb25jdGlvbm5lbWVudCB7XG4gIG5vblZvdGFudHM/OiBWb3RhbnRbXVxuICBwb3VyPzogVm90YW50W11cbiAgY29udHJlPzogVm90YW50W11cbiAgYWJzdGVudGlvbnM/OiBWb3RhbnRbXVxuICBub25Wb3RhbnRzVm9sb250YWlyZXM/OiBWb3RhbnRbXVxufVxuXG5leHBvcnQgZW51bSBNb2RlUHVibGljYXRpb25EZXNWb3RlcyB7XG4gIERlY29tcHRlRGlzc2lkZW50c1Bvc2l0aW9uR3JvdXBlID0gXCJEZWNvbXB0ZURpc3NpZGVudHNQb3NpdGlvbkdyb3VwZVwiLFxuICBEZWNvbXB0ZU5vbWluYXRpZiA9IFwiRGVjb21wdGVOb21pbmF0aWZcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPYmpldCB7XG4gIGxpYmVsbGU6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvcnRTY3J1dGluIHtcbiAgY29kZTogQ29kZVxuICBsaWJlbGxlOiBMaWJlbGxlXG59XG5cbmV4cG9ydCBlbnVtIENvZGUge1xuICBBZG9wdMOpID0gXCJhZG9wdMOpXCIsXG4gIFJlamV0w6kgPSBcInJlamV0w6lcIixcbn1cblxuZXhwb3J0IGVudW0gTGliZWxsZSB7XG4gIExBc3NlbWJsw6llTmF0aW9uYWxlQUFkb3B0w6kgPSBcImwnQXNzZW1ibMOpZSBuYXRpb25hbGUgYSBhZG9wdMOpXCIsXG4gIExBc3NlbWJsw6llTmF0aW9uYWxlTkFQYXNBZG9wdMOpID0gXCJMJ0Fzc2VtYmzDqWUgbmF0aW9uYWxlIG4nYSBwYXMgYWRvcHTDqVwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN5bnRoZXNlVm90ZSB7XG4gIG5vbWJyZVZvdGFudHM6IHN0cmluZ1xuICBzdWZmcmFnZXNFeHByaW1lczogc3RyaW5nXG4gIG5iclN1ZmZyYWdlc1JlcXVpczogc3RyaW5nXG4gIGFubm9uY2U6IExpYmVsbGVcbiAgZGVjb21wdGU6IERlY29tcHRlVm9peFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVWb3RlIHtcbiAgY29kZVR5cGVWb3RlOiBDb2RlVHlwZVZvdGVcbiAgbGliZWxsZVR5cGVWb3RlOiBMaWJlbGxlVHlwZVZvdGVcbiAgdHlwZU1ham9yaXRlOiBUeXBlTWFqb3JpdGVcbn1cblxuZXhwb3J0IGVudW0gQ29kZVR5cGVWb3RlIHtcbiAgTW9jID0gXCJNT0NcIixcbiAgU2F0ID0gXCJTQVRcIixcbiAgU3BvID0gXCJTUE9cIixcbiAgU3BzID0gXCJTUFNcIixcbn1cblxuZXhwb3J0IGVudW0gTGliZWxsZVR5cGVWb3RlIHtcbiAgTW90aW9uRGVDZW5zdXJlID0gXCJtb3Rpb24gZGUgY2Vuc3VyZVwiLFxuICBTY3J1dGluUHVibGljT3JkaW5haXJlID0gXCJzY3J1dGluIHB1YmxpYyBvcmRpbmFpcmVcIixcbiAgU2NydXRpblB1YmxpY1NvbGVubmVsID0gXCJzY3J1dGluIHB1YmxpYyBzb2xlbm5lbFwiLFxuICBTY3J1dGluw4BMYVRyaWJ1bmUgPSBcInNjcnV0aW4gw6AgbGEgdHJpYnVuZVwiLFxufVxuXG5leHBvcnQgZW51bSBUeXBlTWFqb3JpdGUge1xuICBNYWpvcml0w6lBYnNvbHVlRGVzU3VmZnJhZ2VzRXhwcmltw6lzID0gXCJtYWpvcml0w6kgYWJzb2x1ZSBkZXMgc3VmZnJhZ2VzIGV4cHJpbcOpc1wiLFxuICBNYWpvcml0w6lEZXNNZW1icmVzQ29tcG9zYW50TEFzc2VtYmzDqWVOYXRpb25hbGUgPSBcIm1ham9yaXTDqSBkZXMgbWVtYnJlcyBjb21wb3NhbnQgbCdBc3NlbWJsw6llIG5hdGlvbmFsZVwiLFxuICBNYWpvcml0w6lEZXNNZW1icmVzQ29tcG9zYW50c0NvbXBvc2FudExBc3NlbWJsw6llID0gXCJtYWpvcml0w6kgZGVzIG1lbWJyZXMgY29tcG9zYW50cyBjb21wb3NhbnQgbCdBc3NlbWJsw6llXCIsXG4gIE1ham9yaXTDqURlc01lbWJyZXNDb21wb3NhbnRzQ29tcG9zYW50TEFzc2VtYmzDqWVOYXRpb25hbGUgPSBcIm1ham9yaXTDqSBkZXMgbWVtYnJlcyBjb21wb3NhbnRzIGNvbXBvc2FudCBsJ0Fzc2VtYmzDqWUgbmF0aW9uYWxlXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JnYW5lIHtcbiAgb3JnYW5lUmVmOiBzdHJpbmdcbiAgZ3JvdXBlczogR3JvdXBlW11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcm91cGUge1xuICBvcmdhbmVSZWY6IHN0cmluZ1xuICBub21icmVNZW1icmVzR3JvdXBlOiBzdHJpbmdcbiAgdm90ZTogVm90ZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZvdGUge1xuICBwb3NpdGlvbk1ham9yaXRhaXJlOiBQb3NpdGlvbk1ham9yaXRhaXJlXG4gIGRlY29tcHRlVm9peDogRGVjb21wdGVWb2l4XG4gIGRlY29tcHRlTm9taW5hdGlmOiBEZWNvbXB0ZU5vbWluYXRpZlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlY29tcHRlTm9taW5hdGlmIHtcbiAgbm9uVm90YW50cz86IFZvdGFudFtdXG4gIHBvdXI/OiBWb3RhbnRbXVxuICBjb250cmU/OiBWb3RhbnRbXVxuICBhYnN0ZW50aW9ucz86IFZvdGFudFtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVm90YW50IHtcbiAgYWN0ZXVyUmVmOiBzdHJpbmdcbiAgbWFuZGF0UmVmOiBzdHJpbmdcbiAgY2F1c2VQb3NpdGlvblZvdGU/OiBDYXVzZVBvc2l0aW9uVm90ZVxuICBwYXJEZWxlZ2F0aW9uPzogYm9vbGVhblxufVxuXG5leHBvcnQgZW51bSBDYXVzZVBvc2l0aW9uVm90ZSB7XG4gIE1nID0gXCJNR1wiLFxuICBQYW4gPSBcIlBBTlwiLFxuICBQc2UgPSBcIlBTRVwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlY29tcHRlVm9peCB7XG4gIHBvdXI6IHN0cmluZ1xuICBjb250cmU6IHN0cmluZ1xuICBub25Wb3RhbnRzPzogc3RyaW5nXG4gIGFic3RlbnRpb25zPzogc3RyaW5nXG4gIG5vblZvdGFudHNWb2xvbnRhaXJlcz86IHN0cmluZ1xufVxuXG5leHBvcnQgZW51bSBQb3NpdGlvbk1ham9yaXRhaXJlIHtcbiAgQWJzdGVudGlvbiA9IFwiYWJzdGVudGlvblwiLFxuICBDb250cmUgPSBcImNvbnRyZVwiLFxuICBQb3VyID0gXCJwb3VyXCIsXG59XG5cbi8vIENvbnZlcnRzIEpTT04gc3RyaW5ncyB0by9mcm9tIHlvdXIgdHlwZXNcbi8vIGFuZCBhc3NlcnRzIHRoZSByZXN1bHRzIG9mIEpTT04ucGFyc2UgYXQgcnVudGltZVxuZXhwb3J0IGNsYXNzIENvbnZlcnQge1xuICBwdWJsaWMgc3RhdGljIHRvU2NydXRpbnMoanNvbjogc3RyaW5nKTogU2NydXRpbnMge1xuICAgIHJldHVybiBjYXN0KEpTT04ucGFyc2UoanNvbiksIHIoXCJTY3J1dGluc1wiKSlcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgc2NydXRpbnNUb0pzb24odmFsdWU6IFNjcnV0aW5zKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodW5jYXN0KHZhbHVlLCByKFwiU2NydXRpbnNcIikpLCBudWxsLCAyKVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyB0b1NjcnV0aW4oanNvbjogc3RyaW5nKTogU2NydXRpbiB7XG4gICAgcmV0dXJuIGNhc3QoSlNPTi5wYXJzZShqc29uKSwgcihcIlNjcnV0aW5cIikpXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHNjcnV0aW5Ub0pzb24odmFsdWU6IFNjcnV0aW4pOiBzdHJpbmcge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh1bmNhc3QodmFsdWUsIHIoXCJTY3J1dGluXCIpKSwgbnVsbCwgMilcbiAgfVxufVxuXG5mdW5jdGlvbiBpbnZhbGlkVmFsdWUodHlwOiBhbnksIHZhbDogYW55LCBrZXk6IGFueSA9IFwiXCIpOiBuZXZlciB7XG4gIGlmIChrZXkpIHtcbiAgICB0aHJvdyBFcnJvcihcbiAgICAgIGBJbnZhbGlkIHZhbHVlIGZvciBrZXkgXCIke2tleX1cIi4gRXhwZWN0ZWQgdHlwZSAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICB0eXAsXG4gICAgICApfSBidXQgZ290ICR7SlNPTi5zdHJpbmdpZnkodmFsKX1gLFxuICAgIClcbiAgfVxuICB0aHJvdyBFcnJvcihcbiAgICBgSW52YWxpZCB2YWx1ZSAke0pTT04uc3RyaW5naWZ5KHZhbCl9IGZvciB0eXBlICR7SlNPTi5zdHJpbmdpZnkodHlwKX1gLFxuICApXG59XG5cbmZ1bmN0aW9uIGpzb25Ub0pTUHJvcHModHlwOiBhbnkpOiBhbnkge1xuICBpZiAodHlwLmpzb25Ub0pTID09PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBtYXA6IGFueSA9IHt9XG4gICAgdHlwLnByb3BzLmZvckVhY2goKHA6IGFueSkgPT4gKG1hcFtwLmpzb25dID0geyBrZXk6IHAuanMsIHR5cDogcC50eXAgfSkpXG4gICAgdHlwLmpzb25Ub0pTID0gbWFwXG4gIH1cbiAgcmV0dXJuIHR5cC5qc29uVG9KU1xufVxuXG5mdW5jdGlvbiBqc1RvSlNPTlByb3BzKHR5cDogYW55KTogYW55IHtcbiAgaWYgKHR5cC5qc1RvSlNPTiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbWFwOiBhbnkgPSB7fVxuICAgIHR5cC5wcm9wcy5mb3JFYWNoKChwOiBhbnkpID0+IChtYXBbcC5qc10gPSB7IGtleTogcC5qc29uLCB0eXA6IHAudHlwIH0pKVxuICAgIHR5cC5qc1RvSlNPTiA9IG1hcFxuICB9XG4gIHJldHVybiB0eXAuanNUb0pTT05cbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtKHZhbDogYW55LCB0eXA6IGFueSwgZ2V0UHJvcHM6IGFueSwga2V5OiBhbnkgPSBcIlwiKTogYW55IHtcbiAgZnVuY3Rpb24gdHJhbnNmb3JtUHJpbWl0aXZlKHR5cDogc3RyaW5nLCB2YWw6IGFueSk6IGFueSB7XG4gICAgaWYgKHR5cGVvZiB0eXAgPT09IHR5cGVvZiB2YWwpIHJldHVybiB2YWxcbiAgICByZXR1cm4gaW52YWxpZFZhbHVlKHR5cCwgdmFsLCBrZXkpXG4gIH1cblxuICBmdW5jdGlvbiB0cmFuc2Zvcm1Vbmlvbih0eXBzOiBhbnlbXSwgdmFsOiBhbnkpOiBhbnkge1xuICAgIC8vIHZhbCBtdXN0IHZhbGlkYXRlIGFnYWluc3Qgb25lIHR5cCBpbiB0eXBzXG4gICAgY29uc3QgbCA9IHR5cHMubGVuZ3RoXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsOyBpKyspIHtcbiAgICAgIGNvbnN0IHR5cCA9IHR5cHNbaV1cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB0cmFuc2Zvcm0odmFsLCB0eXAsIGdldFByb3BzKVxuICAgICAgfSBjYXRjaCAoXykge31cbiAgICB9XG4gICAgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXBzLCB2YWwpXG4gIH1cblxuICBmdW5jdGlvbiB0cmFuc2Zvcm1FbnVtKGNhc2VzOiBzdHJpbmdbXSwgdmFsOiBhbnkpOiBhbnkge1xuICAgIGlmIChjYXNlcy5pbmRleE9mKHZhbCkgIT09IC0xKSByZXR1cm4gdmFsXG4gICAgcmV0dXJuIGludmFsaWRWYWx1ZShjYXNlcywgdmFsKVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtQXJyYXkodHlwOiBhbnksIHZhbDogYW55KTogYW55IHtcbiAgICAvLyB2YWwgbXVzdCBiZSBhbiBhcnJheSB3aXRoIG5vIGludmFsaWQgZWxlbWVudHNcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIGludmFsaWRWYWx1ZShcImFycmF5XCIsIHZhbClcbiAgICByZXR1cm4gdmFsLm1hcCgoZWwpID0+IHRyYW5zZm9ybShlbCwgdHlwLCBnZXRQcm9wcykpXG4gIH1cblxuICBmdW5jdGlvbiB0cmFuc2Zvcm1EYXRlKHZhbDogYW55KTogYW55IHtcbiAgICBpZiAodmFsID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICBjb25zdCBkID0gbmV3IERhdGUodmFsKVxuICAgIGlmIChpc05hTihkLnZhbHVlT2YoKSkpIHtcbiAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUoXCJEYXRlXCIsIHZhbClcbiAgICB9XG4gICAgcmV0dXJuIGRcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYW5zZm9ybU9iamVjdChcbiAgICBwcm9wczogeyBbazogc3RyaW5nXTogYW55IH0sXG4gICAgYWRkaXRpb25hbDogYW55LFxuICAgIHZhbDogYW55LFxuICApOiBhbnkge1xuICAgIGlmICh2YWwgPT09IG51bGwgfHwgdHlwZW9mIHZhbCAhPT0gXCJvYmplY3RcIiB8fCBBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUoXCJvYmplY3RcIiwgdmFsKVxuICAgIH1cbiAgICBjb25zdCByZXN1bHQ6IGFueSA9IHt9XG4gICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMocHJvcHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgY29uc3QgcHJvcCA9IHByb3BzW2tleV1cbiAgICAgIGNvbnN0IHYgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsLCBrZXkpXG4gICAgICAgID8gdmFsW2tleV1cbiAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgIHJlc3VsdFtwcm9wLmtleV0gPSB0cmFuc2Zvcm0odiwgcHJvcC50eXAsIGdldFByb3BzLCBwcm9wLmtleSlcbiAgICB9KVxuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHZhbCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcywga2V5KSkge1xuICAgICAgICByZXN1bHRba2V5XSA9IHRyYW5zZm9ybSh2YWxba2V5XSwgYWRkaXRpb25hbCwgZ2V0UHJvcHMsIGtleSlcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIGlmICh0eXAgPT09IFwiYW55XCIpIHJldHVybiB2YWxcbiAgaWYgKHR5cCA9PT0gbnVsbCkge1xuICAgIGlmICh2YWwgPT09IG51bGwpIHJldHVybiB2YWxcbiAgICByZXR1cm4gaW52YWxpZFZhbHVlKHR5cCwgdmFsKVxuICB9XG4gIC8vIGlmICh0eXAgPT09IGZhbHNlKSByZXR1cm4gaW52YWxpZFZhbHVlKHR5cCwgdmFsKVxuICB3aGlsZSAodHlwZW9mIHR5cCA9PT0gXCJvYmplY3RcIiAmJiB0eXAucmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICB0eXAgPSB0eXBlTWFwW3R5cC5yZWZdXG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkodHlwKSkgcmV0dXJuIHRyYW5zZm9ybUVudW0odHlwLCB2YWwpXG4gIGlmICh0eXBlb2YgdHlwID09PSBcIm9iamVjdFwiKSB7XG4gICAgcmV0dXJuIHR5cC5oYXNPd25Qcm9wZXJ0eShcInVuaW9uTWVtYmVyc1wiKVxuICAgICAgPyB0cmFuc2Zvcm1Vbmlvbih0eXAudW5pb25NZW1iZXJzLCB2YWwpXG4gICAgICA6IHR5cC5oYXNPd25Qcm9wZXJ0eShcImFycmF5SXRlbXNcIilcbiAgICAgID8gdHJhbnNmb3JtQXJyYXkodHlwLmFycmF5SXRlbXMsIHZhbClcbiAgICAgIDogdHlwLmhhc093blByb3BlcnR5KFwicHJvcHNcIilcbiAgICAgID8gdHJhbnNmb3JtT2JqZWN0KGdldFByb3BzKHR5cCksIHR5cC5hZGRpdGlvbmFsLCB2YWwpXG4gICAgICA6IGludmFsaWRWYWx1ZSh0eXAsIHZhbClcbiAgfVxuICAvLyBOdW1iZXJzIGNhbiBiZSBwYXJzZWQgYnkgRGF0ZSBidXQgc2hvdWxkbid0IGJlLlxuICBpZiAodHlwID09PSBEYXRlICYmIHR5cGVvZiB2YWwgIT09IFwibnVtYmVyXCIpIHJldHVybiB0cmFuc2Zvcm1EYXRlKHZhbClcbiAgcmV0dXJuIHRyYW5zZm9ybVByaW1pdGl2ZSh0eXAsIHZhbClcbn1cblxuZnVuY3Rpb24gY2FzdDxUPih2YWw6IGFueSwgdHlwOiBhbnkpOiBUIHtcbiAgcmV0dXJuIHRyYW5zZm9ybSh2YWwsIHR5cCwganNvblRvSlNQcm9wcylcbn1cblxuZnVuY3Rpb24gdW5jYXN0PFQ+KHZhbDogVCwgdHlwOiBhbnkpOiBhbnkge1xuICByZXR1cm4gdHJhbnNmb3JtKHZhbCwgdHlwLCBqc1RvSlNPTlByb3BzKVxufVxuXG5mdW5jdGlvbiBhKHR5cDogYW55KSB7XG4gIHJldHVybiB7IGFycmF5SXRlbXM6IHR5cCB9XG59XG5cbmZ1bmN0aW9uIHUoLi4udHlwczogYW55W10pIHtcbiAgcmV0dXJuIHsgdW5pb25NZW1iZXJzOiB0eXBzIH1cbn1cblxuZnVuY3Rpb24gbyhwcm9wczogYW55W10sIGFkZGl0aW9uYWw6IGFueSkge1xuICByZXR1cm4geyBwcm9wcywgYWRkaXRpb25hbCB9XG59XG5cbi8vIGZ1bmN0aW9uIG0oYWRkaXRpb25hbDogYW55KSB7XG4vLyAgIHJldHVybiB7IHByb3BzOiBbXSwgYWRkaXRpb25hbCB9XG4vLyB9XG5cbmZ1bmN0aW9uIHIobmFtZTogc3RyaW5nKSB7XG4gIHJldHVybiB7IHJlZjogbmFtZSB9XG59XG5cbmNvbnN0IHR5cGVNYXA6IGFueSA9IHtcbiAgU2NydXRpbnM6IG8oXG4gICAgW3sganNvbjogXCJzY3J1dGluc1wiLCBqczogXCJzY3J1dGluc1wiLCB0eXA6IGEocihcIlNjcnV0aW5cIikpIH1dLFxuICAgIGZhbHNlLFxuICApLFxuICBTY3J1dGluOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJzY2hlbWFWZXJzaW9uXCIsIGpzOiBcInNjaGVtYVZlcnNpb25cIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHsganNvbjogXCJ1aWRcIiwganM6IFwidWlkXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcIm51bWVyb1wiLCBqczogXCJudW1lcm9cIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwib3JnYW5lUmVmXCIsIGpzOiBcIm9yZ2FuZVJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJsZWdpc2xhdHVyZVwiLCBqczogXCJsZWdpc2xhdHVyZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJzZXNzaW9uUmVmXCIsIGpzOiBcInNlc3Npb25SZWZcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwic2VhbmNlUmVmXCIsIGpzOiBcInNlYW5jZVJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJkYXRlU2NydXRpblwiLCBqczogXCJkYXRlU2NydXRpblwiLCB0eXA6IERhdGUgfSxcbiAgICAgIHsganNvbjogXCJxdWFudGllbWVKb3VyU2VhbmNlXCIsIGpzOiBcInF1YW50aWVtZUpvdXJTZWFuY2VcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwidHlwZVZvdGVcIiwganM6IFwidHlwZVZvdGVcIiwgdHlwOiByKFwiVHlwZVZvdGVcIikgfSxcbiAgICAgIHsganNvbjogXCJzb3J0XCIsIGpzOiBcInNvcnRcIiwgdHlwOiByKFwiU29ydFNjcnV0aW5cIikgfSxcbiAgICAgIHsganNvbjogXCJ0aXRyZVwiLCBqczogXCJ0aXRyZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJkZW1hbmRldXJcIiwganM6IFwiZGVtYW5kZXVyXCIsIHR5cDogcihcIkRlbWFuZGV1clwiKSB9LFxuICAgICAgeyBqc29uOiBcIm9iamV0XCIsIGpzOiBcIm9iamV0XCIsIHR5cDogcihcIk9iamV0XCIpIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwibW9kZVB1YmxpY2F0aW9uRGVzVm90ZXNcIixcbiAgICAgICAganM6IFwibW9kZVB1YmxpY2F0aW9uRGVzVm90ZXNcIixcbiAgICAgICAgdHlwOiByKFwiTW9kZVB1YmxpY2F0aW9uRGVzVm90ZXNcIiksXG4gICAgICB9LFxuICAgICAgeyBqc29uOiBcInN5bnRoZXNlVm90ZVwiLCBqczogXCJzeW50aGVzZVZvdGVcIiwgdHlwOiByKFwiU3ludGhlc2VWb3RlXCIpIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwidmVudGlsYXRpb25Wb3Rlc1wiLFxuICAgICAgICBqczogXCJ2ZW50aWxhdGlvblZvdGVzXCIsXG4gICAgICAgIHR5cDogcihcIk9yZ2FuZVwiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwibWlzZUF1UG9pbnRcIixcbiAgICAgICAganM6IFwibWlzZUF1UG9pbnRcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgcihcIk1pc2VBdVBvaW50XCIpKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgRGVtYW5kZXVyOiBvKFt7IGpzb246IFwidGV4dGVcIiwganM6IFwidGV4dGVcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfV0sIGZhbHNlKSxcbiAgTWlzZUF1UG9pbnQ6IG8oXG4gICAgW1xuICAgICAge1xuICAgICAgICBqc29uOiBcIm5vblZvdGFudHNcIixcbiAgICAgICAganM6IFwibm9uVm90YW50c1wiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwicG91clwiLFxuICAgICAgICBqczogXCJwb3VyXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGEocihcIlZvdGFudFwiKSkpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJjb250cmVcIixcbiAgICAgICAganM6IFwiY29udHJlXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGEocihcIlZvdGFudFwiKSkpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJhYnN0ZW50aW9uc1wiLFxuICAgICAgICBqczogXCJhYnN0ZW50aW9uc1wiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwibm9uVm90YW50c1ZvbG9udGFpcmVzXCIsXG4gICAgICAgIGpzOiBcIm5vblZvdGFudHNWb2xvbnRhaXJlc1wiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwiZHlzZm9uY3Rpb25uZW1lbnRcIixcbiAgICAgICAganM6IFwiZHlzZm9uY3Rpb25uZW1lbnRcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgcihcIkR5c2ZvbmN0aW9ubmVtZW50XCIpKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgRHlzZm9uY3Rpb25uZW1lbnQ6IG8oXG4gICAgW1xuICAgICAge1xuICAgICAgICBqc29uOiBcIm5vblZvdGFudHNcIixcbiAgICAgICAganM6IFwibm9uVm90YW50c1wiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwicG91clwiLFxuICAgICAgICBqczogXCJwb3VyXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGEocihcIlZvdGFudFwiKSkpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJjb250cmVcIixcbiAgICAgICAganM6IFwiY29udHJlXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGEocihcIlZvdGFudFwiKSkpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJhYnN0ZW50aW9uc1wiLFxuICAgICAgICBqczogXCJhYnN0ZW50aW9uc1wiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwibm9uVm90YW50c1ZvbG9udGFpcmVzXCIsXG4gICAgICAgIGpzOiBcIm5vblZvdGFudHNWb2xvbnRhaXJlc1wiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCBhKHIoXCJWb3RhbnRcIikpKSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgT2JqZXQ6IG8oW3sganNvbjogXCJsaWJlbGxlXCIsIGpzOiBcImxpYmVsbGVcIiwgdHlwOiBcIlwiIH1dLCBmYWxzZSksXG4gIFNvcnRTY3J1dGluOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJjb2RlXCIsIGpzOiBcImNvZGVcIiwgdHlwOiByKFwiQ29kZVwiKSB9LFxuICAgICAgeyBqc29uOiBcImxpYmVsbGVcIiwganM6IFwibGliZWxsZVwiLCB0eXA6IHIoXCJMaWJlbGxlXCIpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgU3ludGhlc2VWb3RlOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJub21icmVWb3RhbnRzXCIsIGpzOiBcIm5vbWJyZVZvdGFudHNcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwic3VmZnJhZ2VzRXhwcmltZXNcIiwganM6IFwic3VmZnJhZ2VzRXhwcmltZXNcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwibmJyU3VmZnJhZ2VzUmVxdWlzXCIsIGpzOiBcIm5iclN1ZmZyYWdlc1JlcXVpc1wiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJhbm5vbmNlXCIsIGpzOiBcImFubm9uY2VcIiwgdHlwOiByKFwiTGliZWxsZVwiKSB9LFxuICAgICAgeyBqc29uOiBcImRlY29tcHRlXCIsIGpzOiBcImRlY29tcHRlXCIsIHR5cDogcihcIkRlY29tcHRlVm9peFwiKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIFR5cGVWb3RlOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJjb2RlVHlwZVZvdGVcIiwganM6IFwiY29kZVR5cGVWb3RlXCIsIHR5cDogcihcIkNvZGVUeXBlVm90ZVwiKSB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcImxpYmVsbGVUeXBlVm90ZVwiLFxuICAgICAgICBqczogXCJsaWJlbGxlVHlwZVZvdGVcIixcbiAgICAgICAgdHlwOiByKFwiTGliZWxsZVR5cGVWb3RlXCIpLFxuICAgICAgfSxcbiAgICAgIHsganNvbjogXCJ0eXBlTWFqb3JpdGVcIiwganM6IFwidHlwZU1ham9yaXRlXCIsIHR5cDogcihcIlR5cGVNYWpvcml0ZVwiKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIE9yZ2FuZTogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwib3JnYW5lUmVmXCIsIGpzOiBcIm9yZ2FuZVJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJncm91cGVzXCIsIGpzOiBcImdyb3VwZXNcIiwgdHlwOiBhKHIoXCJHcm91cGVcIikpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgR3JvdXBlOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJvcmdhbmVSZWZcIiwganM6IFwib3JnYW5lUmVmXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcIm5vbWJyZU1lbWJyZXNHcm91cGVcIiwganM6IFwibm9tYnJlTWVtYnJlc0dyb3VwZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJ2b3RlXCIsIGpzOiBcInZvdGVcIiwgdHlwOiByKFwiVm90ZVwiKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIFZvdGU6IG8oXG4gICAgW1xuICAgICAge1xuICAgICAgICBqc29uOiBcInBvc2l0aW9uTWFqb3JpdGFpcmVcIixcbiAgICAgICAganM6IFwicG9zaXRpb25NYWpvcml0YWlyZVwiLFxuICAgICAgICB0eXA6IHIoXCJQb3NpdGlvbk1ham9yaXRhaXJlXCIpLFxuICAgICAgfSxcbiAgICAgIHsganNvbjogXCJkZWNvbXB0ZVZvaXhcIiwganM6IFwiZGVjb21wdGVWb2l4XCIsIHR5cDogcihcIkRlY29tcHRlVm9peFwiKSB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcImRlY29tcHRlTm9taW5hdGlmXCIsXG4gICAgICAgIGpzOiBcImRlY29tcHRlTm9taW5hdGlmXCIsXG4gICAgICAgIHR5cDogcihcIkRlY29tcHRlTm9taW5hdGlmXCIpLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBEZWNvbXB0ZU5vbWluYXRpZjogbyhcbiAgICBbXG4gICAgICB7XG4gICAgICAgIGpzb246IFwibm9uVm90YW50c1wiLFxuICAgICAgICBqczogXCJub25Wb3RhbnRzXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGEocihcIlZvdGFudFwiKSkpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJwb3VyXCIsXG4gICAgICAgIGpzOiBcInBvdXJcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgYShyKFwiVm90YW50XCIpKSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcImNvbnRyZVwiLFxuICAgICAgICBqczogXCJjb250cmVcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgYShyKFwiVm90YW50XCIpKSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcImFic3RlbnRpb25zXCIsXG4gICAgICAgIGpzOiBcImFic3RlbnRpb25zXCIsXG4gICAgICAgIHR5cDogdSh1bmRlZmluZWQsIGEocihcIlZvdGFudFwiKSkpLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBWb3RhbnQ6IG8oXG4gICAgW1xuICAgICAgeyBqc29uOiBcImFjdGV1clJlZlwiLCBqczogXCJhY3RldXJSZWZcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwibWFuZGF0UmVmXCIsIGpzOiBcIm1hbmRhdFJlZlwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHtcbiAgICAgICAganNvbjogXCJjYXVzZVBvc2l0aW9uVm90ZVwiLFxuICAgICAgICBqczogXCJjYXVzZVBvc2l0aW9uVm90ZVwiLFxuICAgICAgICB0eXA6IHUodW5kZWZpbmVkLCByKFwiQ2F1c2VQb3NpdGlvblZvdGVcIikpLFxuICAgICAgfSxcbiAgICAgIHsganNvbjogXCJwYXJEZWxlZ2F0aW9uXCIsIGpzOiBcInBhckRlbGVnYXRpb25cIiwgdHlwOiB1KHVuZGVmaW5lZCwgZmFsc2UpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgRGVjb21wdGVWb2l4OiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJwb3VyXCIsIGpzOiBcInBvdXJcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwiY29udHJlXCIsIGpzOiBcImNvbnRyZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJub25Wb3RhbnRzXCIsIGpzOiBcIm5vblZvdGFudHNcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICAgIHsganNvbjogXCJhYnN0ZW50aW9uc1wiLCBqczogXCJhYnN0ZW50aW9uc1wiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAge1xuICAgICAgICBqc29uOiBcIm5vblZvdGFudHNWb2xvbnRhaXJlc1wiLFxuICAgICAgICBqczogXCJub25Wb3RhbnRzVm9sb250YWlyZXNcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIiksXG4gICAgICB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIE1vZGVQdWJsaWNhdGlvbkRlc1ZvdGVzOiBbXG4gICAgXCJEZWNvbXB0ZURpc3NpZGVudHNQb3NpdGlvbkdyb3VwZVwiLFxuICAgIFwiRGVjb21wdGVOb21pbmF0aWZcIixcbiAgXSxcbiAgQ29kZTogW1wiYWRvcHTDqVwiLCBcInJlamV0w6lcIl0sXG4gIExpYmVsbGU6IFtcbiAgICBcImwnQXNzZW1ibMOpZSBuYXRpb25hbGUgYSBhZG9wdMOpXCIsXG4gICAgXCJMJ0Fzc2VtYmzDqWUgbmF0aW9uYWxlIG4nYSBwYXMgYWRvcHTDqVwiLFxuICBdLFxuICBDb2RlVHlwZVZvdGU6IFtcIk1PQ1wiLCBcIlNBVFwiLCBcIlNQT1wiLCBcIlNQU1wiXSxcbiAgTGliZWxsZVR5cGVWb3RlOiBbXG4gICAgXCJtb3Rpb24gZGUgY2Vuc3VyZVwiLFxuICAgIFwic2NydXRpbiBwdWJsaWMgb3JkaW5haXJlXCIsXG4gICAgXCJzY3J1dGluIHB1YmxpYyBzb2xlbm5lbFwiLFxuICAgIFwic2NydXRpbiDDoCBsYSB0cmlidW5lXCIsXG4gIF0sXG4gIFR5cGVNYWpvcml0ZTogW1xuICAgIFwibWFqb3JpdMOpIGFic29sdWUgZGVzIHN1ZmZyYWdlcyBleHByaW3DqXNcIixcbiAgICBcIm1ham9yaXTDqSBkZXMgbWVtYnJlcyBjb21wb3NhbnQgbCdBc3NlbWJsw6llIG5hdGlvbmFsZVwiLFxuICAgIFwibWFqb3JpdMOpIGRlcyBtZW1icmVzIGNvbXBvc2FudHMgY29tcG9zYW50IGwnQXNzZW1ibMOpZVwiLFxuICAgIFwibWFqb3JpdMOpIGRlcyBtZW1icmVzIGNvbXBvc2FudHMgY29tcG9zYW50IGwnQXNzZW1ibMOpZSBuYXRpb25hbGVcIixcbiAgXSxcbiAgQ2F1c2VQb3NpdGlvblZvdGU6IFtcIk1HXCIsIFwiUEFOXCIsIFwiUFNFXCJdLFxuICBQb3NpdGlvbk1ham9yaXRhaXJlOiBbXCJhYnN0ZW50aW9uXCIsIFwiY29udHJlXCIsIFwicG91clwiXSxcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7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
package/lib/urls.d.ts CHANGED
@@ -1,8 +1,14 @@
1
- import { Scrutin } from "./types/scrutins";
1
+ import type { Document, Division } from "./types/dossiers_legislatifs";
2
+ import type { Scrutin } from "./types/scrutins";
2
3
  export declare enum DocumentUrlFormat {
3
4
  Html = "html",
4
5
  Pdf = "pdf",
5
6
  RawHtml = "raw-html"
6
7
  }
7
- export declare function urlFromDocument(document: any, format: DocumentUrlFormat): string | null;
8
+ export declare function iterDocumentOrDivisionUrls(documentOrDivision: Document | Division, format?: DocumentUrlFormat | undefined): Generator<{
9
+ format: DocumentUrlFormat;
10
+ type: string;
11
+ url: string;
12
+ }, void, unknown>;
13
+ export declare function urlFromDocument(documentOrDivision: Document | Division, format: DocumentUrlFormat): string | null;
8
14
  export declare function urlFromScrutin(scrutin: Scrutin): string | null;
package/lib/urls.js CHANGED
@@ -1,15 +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); }
3
4
  require("core-js/modules/es.object.define-property.js");
5
+ require("core-js/modules/es.symbol.js");
6
+ require("core-js/modules/es.symbol.description.js");
7
+ require("core-js/modules/es.object.to-string.js");
8
+ require("core-js/modules/es.symbol.iterator.js");
9
+ require("core-js/modules/es.array.iterator.js");
10
+ require("core-js/modules/es.string.iterator.js");
11
+ require("core-js/modules/web.dom-collections.iterator.js");
12
+ require("core-js/modules/es.symbol.async-iterator.js");
13
+ require("core-js/modules/es.symbol.to-string-tag.js");
14
+ require("core-js/modules/es.json.to-string-tag.js");
15
+ require("core-js/modules/es.math.to-string-tag.js");
16
+ require("core-js/modules/es.object.create.js");
17
+ require("core-js/modules/es.object.get-prototype-of.js");
18
+ require("core-js/modules/es.array.for-each.js");
19
+ require("core-js/modules/web.dom-collections.for-each.js");
20
+ require("core-js/modules/es.function.name.js");
21
+ require("core-js/modules/es.object.set-prototype-of.js");
22
+ require("core-js/modules/es.promise.js");
23
+ require("core-js/modules/es.array.reverse.js");
24
+ require("core-js/modules/es.array.slice.js");
4
25
  Object.defineProperty(exports, "__esModule", {
5
26
  value: true
6
27
  });
7
28
  exports.DocumentUrlFormat = void 0;
29
+ exports.iterDocumentOrDivisionUrls = iterDocumentOrDivisionUrls;
8
30
  exports.urlFromDocument = urlFromDocument;
9
31
  exports.urlFromScrutin = urlFromScrutin;
10
32
  require("core-js/modules/es.regexp.exec.js");
11
- require("core-js/modules/es.array.concat.js");
12
33
  require("core-js/modules/es.string.replace.js");
34
+ require("core-js/modules/esnext.string.replace-all.js");
35
+ require("core-js/modules/es.array.concat.js");
36
+ 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, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $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 defineProperty(generator, "_invoke", { value: makeInvokeMethod(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; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(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); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), 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, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), 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 (val) { var object = Object(val), 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; }
13
37
  var DocumentUrlFormat = /*#__PURE__*/function (DocumentUrlFormat) {
14
38
  DocumentUrlFormat["Html"] = "html";
15
39
  DocumentUrlFormat["Pdf"] = "pdf";
@@ -139,58 +163,164 @@ function extensionFromDocumentUrlFormat(format) {
139
163
  return ".asp";
140
164
  }
141
165
  }
142
- function urlFromDocument(document, format) {
166
+ function iterDocumentOrDivisionUrls(documentOrDivision) {
167
+ var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
168
+ return /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
169
+ var urlInfos, _urlInfos, _urlInfos2;
170
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
171
+ while (1) switch (_context.prev = _context.next) {
172
+ case 0:
173
+ if (!(format === undefined || format === DocumentUrlFormat.RawHtml)) {
174
+ _context.next = 9;
175
+ break;
176
+ }
177
+ _context.next = 3;
178
+ return {
179
+ format: DocumentUrlFormat.RawHtml,
180
+ type: "dyn-opendata",
181
+ url: "https://www.assemblee-nationale.fr/dyn/opendata/".concat(documentOrDivision.uid, ".html")
182
+ };
183
+ case 3:
184
+ _context.next = 5;
185
+ return {
186
+ format: DocumentUrlFormat.RawHtml,
187
+ type: "dyn-docs",
188
+ url: "https://www.assemblee-nationale.fr/dyn/docs/".concat(documentOrDivision.uid, ".raw")
189
+ };
190
+ case 5:
191
+ urlInfos = urlInfosFromDocumentOrDivision(documentOrDivision, DocumentUrlFormat.RawHtml);
192
+ if (!(urlInfos !== null)) {
193
+ _context.next = 9;
194
+ break;
195
+ }
196
+ _context.next = 9;
197
+ return {
198
+ format: DocumentUrlFormat.RawHtml,
199
+ type: urlInfos.directory.replaceAll("/", "-"),
200
+ url: urlInfos.url
201
+ };
202
+ case 9:
203
+ if (!(format === undefined || format === DocumentUrlFormat.Html)) {
204
+ _context.next = 14;
205
+ break;
206
+ }
207
+ _urlInfos = urlInfosFromDocumentOrDivision(documentOrDivision, DocumentUrlFormat.Html);
208
+ if (!(_urlInfos !== null)) {
209
+ _context.next = 14;
210
+ break;
211
+ }
212
+ _context.next = 14;
213
+ return {
214
+ format: DocumentUrlFormat.Html,
215
+ type: _urlInfos.directory.replaceAll("/", "-"),
216
+ url: _urlInfos.url
217
+ };
218
+ case 14:
219
+ if (!(format === undefined || format === DocumentUrlFormat.Pdf)) {
220
+ _context.next = 23;
221
+ break;
222
+ }
223
+ _context.next = 17;
224
+ return {
225
+ format: DocumentUrlFormat.RawHtml,
226
+ type: "dyn-opendata",
227
+ url: "https://www.assemblee-nationale.fr/dyn/opendata/".concat(documentOrDivision.uid, ".html")
228
+ };
229
+ case 17:
230
+ _context.next = 19;
231
+ return {
232
+ format: DocumentUrlFormat.Pdf,
233
+ type: "dyn-docs",
234
+ url: "https://www.assemblee-nationale.fr/dyn/docs/".concat(documentOrDivision.uid, ".pdf")
235
+ };
236
+ case 19:
237
+ _urlInfos2 = urlInfosFromDocumentOrDivision(documentOrDivision, DocumentUrlFormat.Pdf);
238
+ if (!(_urlInfos2 !== null)) {
239
+ _context.next = 23;
240
+ break;
241
+ }
242
+ _context.next = 23;
243
+ return {
244
+ format: DocumentUrlFormat.Pdf,
245
+ type: _urlInfos2.directory.replaceAll("/", "-"),
246
+ url: _urlInfos2.url
247
+ };
248
+ case 23:
249
+ case "end":
250
+ return _context.stop();
251
+ }
252
+ }, _callee);
253
+ })();
254
+ }
255
+
256
+ /// Note: This function doesn't use the "modern" Assemblée URLs for documents.
257
+ /// Use generator `iterDocumentOrDivisionUrls` instead.
258
+ function urlFromDocument(documentOrDivision, format) {
259
+ var urlInfos = urlInfosFromDocumentOrDivision(documentOrDivision, format);
260
+ return urlInfos === null ? null : urlInfos.url;
261
+ }
262
+ function urlFromScrutin(scrutin) {
263
+ // Sample UIDs: VTANR5L15V389
264
+ var match = /^VTANR([0-9]+)L([0-9]+)V([0-9]+)$/.exec(scrutin.uid);
265
+ if (match === null) {
266
+ console.log("Unable to generate URL from scrutin with unexpected UID: \"".concat(scrutin.uid, "\""));
267
+ return null;
268
+ }
269
+ var legislature = match[2];
270
+ var numero = match[3];
271
+ return "http://www2.assemblee-nationale.fr/scrutins/detail/(legislature)/".concat(legislature, "/(num)/").concat(numero);
272
+ }
273
+
274
+ /// Note: This function doesn't use the modern Assemblée URLs for documents.
275
+ /// Use generator `iterDocumentOrDivisionUrls` instead.
276
+ function urlInfosFromDocumentOrDivision(documentOrDivision, format) {
143
277
  // Code taken from function `an_text_url` in project anpy:
144
278
  // https://github.com/regardscitoyens/anpy/blob/master/anpy/dossier_from_opendata.py
145
- // See http://www.assemblee-nationale.fr/opendata/Implementation_Referentiel/Identifiants_Referentiels.html
279
+ // See https://www.assemblee-nationale.fr/opendata/Implementation_Referentiel/Identifiants_Referentiels.html
146
280
  // for a description of the format of an UID.
147
281
 
148
282
  var extension = extensionFromDocumentUrlFormat(format);
149
- var match = /^(.{4})([ANS]*)(R[0-9])([LS]*)([0-9]*)([BTACP]*)(.*)$/.exec(document.uid);
283
+ var match = /^(.{4})([ANS]*)(R[0-9])([LS]*)([0-9]*)([BTACP]*)(.*)$/.exec(documentOrDivision.uid);
150
284
  if (match === null) {
151
- console.log("Unable to generate URL from document with unexpected UID: \"".concat(document.uid, "\""));
285
+ console.log("Unable to generate URL from document or division with unexpected UID: \"".concat(documentOrDivision.uid, "\""));
152
286
  return null;
153
287
  }
154
288
  var chambre = match[2];
155
289
  if (chambre === "SN") {
156
- console.log("Unable to generate URL for document in S\xE9nat. UID: \"".concat(document.uid, "\""));
290
+ console.log("Unable to generate URL for document or division in S\xE9nat. UID: \"".concat(documentOrDivision.uid, "\""));
157
291
  return null;
158
292
  }
159
293
  var legislature = match[5];
160
294
  var number = match[7];
161
295
  if (format === DocumentUrlFormat.RawHtml) {
162
- return "http://www.assemblee-nationale.fr/".concat(legislature, "/textes/").concat(number).concat(extension);
296
+ return {
297
+ directory: "textes",
298
+ url: "https://www.assemblee-nationale.fr/".concat(legislature, "/textes/").concat(number).concat(extension)
299
+ };
163
300
  }
164
301
  var documentType = {
165
302
  BTC: "TCOM",
166
303
  BTA: "TADO",
167
304
  TAP: "TADO"
168
305
  }[match[6]] || match[1];
169
- if (document.classification !== undefined && document.classification.sousType !== undefined && document.classification.sousType.code === "COMPA") {
306
+ if (documentOrDivision.classification !== undefined && documentOrDivision.classification.sousType !== undefined && documentOrDivision.classification.sousType.code === "COMPA") {
170
307
  // Annexe au rapport : Texte comparatif COMPA
171
308
  number = number.replace(/-COMPA/, "-aCOMPA");
172
309
  }
173
310
  if (documentType == "AVCE") {
174
- documentType = "AVCE".concat(document.classification.famille.classe.code);
311
+ var _documentOrDivision$c;
312
+ documentType = "AVCE".concat((_documentOrDivision$c = documentOrDivision.classification.famille) === null || _documentOrDivision$c === void 0 ? void 0 : _documentOrDivision$c.classe.code);
175
313
  }
176
314
  var fragments = documentUrlFragmentsByType[documentType];
177
315
  if (fragments === undefined) {
178
316
  // For example: ALCNANR5L15B0002 (allocution du président)
179
- console.log("Unable to generate URL from document of UID \"".concat(document.uid, "\" and type \"").concat(documentType, "\""));
317
+ console.log("Unable to generate URL from document or division of UID \"".concat(documentOrDivision.uid, "\" and type \"").concat(documentType, "\""));
180
318
  return null;
181
319
  }
182
320
  var directory = format === DocumentUrlFormat.Pdf ? "pdf/".concat(fragments.directory) : fragments.directory;
183
- return "http://www.assemblee-nationale.fr/".concat(legislature, "/").concat(directory, "/").concat(fragments.prefix).concat(number).concat(fragments.suffix).concat(extension);
184
- }
185
- function urlFromScrutin(scrutin) {
186
- // Sample UIDs: VTANR5L15V389
187
- var match = /^VTANR([0-9]+)L([0-9]+)V([0-9]+)$/.exec(scrutin.uid);
188
- if (match === null) {
189
- console.log("Unable to generate URL from scrutin with unexpected UID: \"".concat(scrutin.uid, "\""));
190
- return null;
191
- }
192
- var legislature = match[2];
193
- var numero = match[3];
194
- return "http://www2.assemblee-nationale.fr/scrutins/detail/(legislature)/".concat(legislature, "/(num)/").concat(numero);
321
+ return {
322
+ directory: directory,
323
+ url: "https://www.assemblee-nationale.fr/".concat(legislature, "/").concat(directory, "/").concat(fragments.prefix).concat(number).concat(fragments.suffix).concat(extension)
324
+ };
195
325
  }
196
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEb2N1bWVudFVybEZvcm1hdCIsImV4cG9ydHMiLCJkb2N1bWVudFVybEZyYWdtZW50c0J5VHlwZSIsIkFDSU4iLCJkaXJlY3RvcnkiLCJwcmVmaXgiLCJzdWZmaXgiLCJBVkNFUFJKTE9JIiwiQVZDRUxFVFRSRSIsIkFWQ0VQSU9OTE9JIiwiQVZJUyIsIkVUREkiLCJMRVRUIiwiUElPTiIsIlBOUkUiLCJQTlJFQVBQQVJUMzQxIiwiUE5SRUNPTUVOUSIsIlBOUkVNT0RSRUdMVEFOIiwiUE5SRVRWWElOU1RJVEVVUk9QIiwiUFJKTCIsIlJBUFAiLCJSSU5GIiwiUklPTiIsIlRBRE8iLCJUQ09NIiwiVENPTUNPTUVOUSIsIlRDT01NT0RSRUdMVEFOIiwiVENPTVRWWElOU1RJVEVVUk9QIiwiZXh0ZW5zaW9uRnJvbURvY3VtZW50VXJsRm9ybWF0IiwiZm9ybWF0IiwiSHRtbCIsIlBkZiIsIlJhd0h0bWwiLCJ1cmxGcm9tRG9jdW1lbnQiLCJkb2N1bWVudCIsImV4dGVuc2lvbiIsIm1hdGNoIiwiZXhlYyIsInVpZCIsImNvbnNvbGUiLCJsb2ciLCJjb25jYXQiLCJjaGFtYnJlIiwibGVnaXNsYXR1cmUiLCJudW1iZXIiLCJkb2N1bWVudFR5cGUiLCJCVEMiLCJCVEEiLCJUQVAiLCJjbGFzc2lmaWNhdGlvbiIsInVuZGVmaW5lZCIsInNvdXNUeXBlIiwiY29kZSIsInJlcGxhY2UiLCJmYW1pbGxlIiwiY2xhc3NlIiwiZnJhZ21lbnRzIiwidXJsRnJvbVNjcnV0aW4iLCJzY3J1dGluIiwibnVtZXJvIl0sInNvdXJjZXMiOlsiLi4vc3JjL3VybHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2NydXRpbiB9IGZyb20gXCIuL3R5cGVzL3NjcnV0aW5zXCJcblxuZXhwb3J0IGVudW0gRG9jdW1lbnRVcmxGb3JtYXQge1xuICBIdG1sID0gXCJodG1sXCIsXG4gIFBkZiA9IFwicGRmXCIsXG4gIFJhd0h0bWwgPSBcInJhdy1odG1sXCIsIC8vIFRoZSB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCB0aGF0IGNhbiBiZSBwYXJzZWQgdG8gZXh0cmFjdCBkaXZpc2lvbnMgJiBhcnRpY2xlc1xufVxuXG5jb25zdCBkb2N1bWVudFVybEZyYWdtZW50c0J5VHlwZToge1xuICBbdHlwZTogc3RyaW5nXToge1xuICAgIGRpcmVjdG9yeTogc3RyaW5nXG4gICAgcHJlZml4OiBzdHJpbmdcbiAgICBzdWZmaXg6IHN0cmluZ1xuICB9XG59ID0ge1xuICBBQ0lOOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb2pldHNcIixcbiAgICBwcmVmaXg6IFwicGxcIixcbiAgICBzdWZmaXg6IFwiLWFpXCIsXG4gIH0sXG4gIEFWQ0VQUkpMT0k6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItYWNlXCIsXG4gIH0sXG4gIEFWQ0VMRVRUUkU6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItYWNlXCIsXG4gIH0sXG4gIEFWQ0VQSU9OTE9JOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIi1hY2VcIixcbiAgfSxcbiAgQVZJUzoge1xuICAgIGRpcmVjdG9yeTogXCJyYXBwb3J0c1wiLFxuICAgIHByZWZpeDogXCJyXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBFVERJOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb2pldHNcIixcbiAgICBwcmVmaXg6IFwicGxcIixcbiAgICBzdWZmaXg6IFwiLWVpXCIsXG4gIH0sXG4gIExFVFQ6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItbFwiLFxuICB9LFxuICBQSU9OOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBQTlJFOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBQTlJFQVBQQVJUMzQxOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBQTlJFQ09NRU5ROiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBQTlJFTU9EUkVHTFRBTjoge1xuICAgIGRpcmVjdG9yeTogXCJwcm9wb3NpdGlvbnNcIixcbiAgICBwcmVmaXg6IFwicGlvblwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUE5SRVRWWElOU1RJVEVVUk9QOiB7XG4gICAgZGlyZWN0b3J5OiBcImV1cm9wZS9yZXNvbHV0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwcGVcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBSSkw6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUkFQUDoge1xuICAgIGRpcmVjdG9yeTogXCJyYXBwb3J0c1wiLFxuICAgIHByZWZpeDogXCJyXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBSSU5GOiB7XG4gICAgZGlyZWN0b3J5OiBcInJhcC1pbmZvXCIsXG4gICAgcHJlZml4OiBcImlcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFJJT046IHtcbiAgICBkaXJlY3Rvcnk6IFwiXCIsXG4gICAgcHJlZml4OiBcIlwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgVEFETzoge1xuICAgIGRpcmVjdG9yeTogXCJ0YVwiLFxuICAgIHByZWZpeDogXCJ0YVwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgVENPTToge1xuICAgIGRpcmVjdG9yeTogXCJ0YS1jb21taXNzaW9uXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiLWEwXCIsXG4gIH0sXG4gIFRDT01DT01FTlE6IHtcbiAgICBkaXJlY3Rvcnk6IFwidGEtY29tbWlzc2lvblwiLFxuICAgIHByZWZpeDogXCJyXCIsXG4gICAgc3VmZml4OiBcIi1hMFwiLFxuICB9LFxuICBUQ09NTU9EUkVHTFRBTjoge1xuICAgIGRpcmVjdG9yeTogXCJ0YS1jb21taXNzaW9uXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiLWEwXCIsXG4gIH0sXG4gIFRDT01UVlhJTlNUSVRFVVJPUDoge1xuICAgIGRpcmVjdG9yeTogXCJ0YS1jb21taXNzaW9uXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiLWEwXCIsXG4gIH0sXG59XG5cbmZ1bmN0aW9uIGV4dGVuc2lvbkZyb21Eb2N1bWVudFVybEZvcm1hdChmb3JtYXQ6IERvY3VtZW50VXJsRm9ybWF0KTogc3RyaW5nIHtcbiAgc3dpdGNoIChmb3JtYXQpIHtcbiAgICBjYXNlIERvY3VtZW50VXJsRm9ybWF0Lkh0bWw6XG4gICAgICByZXR1cm4gXCIuYXNwXCJcbiAgICBjYXNlIERvY3VtZW50VXJsRm9ybWF0LlBkZjpcbiAgICAgIHJldHVybiBcIi5wZGZcIlxuICAgIGNhc2UgRG9jdW1lbnRVcmxGb3JtYXQuUmF3SHRtbDpcbiAgICAgIHJldHVybiBcIi5hc3BcIlxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cmxGcm9tRG9jdW1lbnQoXG4gIGRvY3VtZW50OiBhbnksXG4gIGZvcm1hdDogRG9jdW1lbnRVcmxGb3JtYXQsXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgLy8gQ29kZSB0YWtlbiBmcm9tIGZ1bmN0aW9uIGBhbl90ZXh0X3VybGAgaW4gcHJvamVjdCBhbnB5OlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vcmVnYXJkc2NpdG95ZW5zL2FucHkvYmxvYi9tYXN0ZXIvYW5weS9kb3NzaWVyX2Zyb21fb3BlbmRhdGEucHlcbiAgLy8gU2VlIGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9vcGVuZGF0YS9JbXBsZW1lbnRhdGlvbl9SZWZlcmVudGllbC9JZGVudGlmaWFudHNfUmVmZXJlbnRpZWxzLmh0bWxcbiAgLy8gZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlIGZvcm1hdCBvZiBhbiBVSUQuXG5cbiAgY29uc3QgZXh0ZW5zaW9uID0gZXh0ZW5zaW9uRnJvbURvY3VtZW50VXJsRm9ybWF0KGZvcm1hdClcbiAgY29uc3QgbWF0Y2ggPSAvXiguezR9KShbQU5TXSopKFJbMC05XSkoW0xTXSopKFswLTldKikoW0JUQUNQXSopKC4qKSQvLmV4ZWMoXG4gICAgZG9jdW1lbnQudWlkLFxuICApXG4gIGlmIChtYXRjaCA9PT0gbnVsbCkge1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgYFVuYWJsZSB0byBnZW5lcmF0ZSBVUkwgZnJvbSBkb2N1bWVudCB3aXRoIHVuZXhwZWN0ZWQgVUlEOiBcIiR7ZG9jdW1lbnQudWlkfVwiYCxcbiAgICApXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBjaGFtYnJlID0gbWF0Y2hbMl1cbiAgaWYgKGNoYW1icmUgPT09IFwiU05cIikge1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgYFVuYWJsZSB0byBnZW5lcmF0ZSBVUkwgZm9yIGRvY3VtZW50IGluIFPDqW5hdC4gVUlEOiBcIiR7ZG9jdW1lbnQudWlkfVwiYCxcbiAgICApXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBsZWdpc2xhdHVyZSA9IG1hdGNoWzVdXG4gIGxldCBudW1iZXIgPSBtYXRjaFs3XVxuICBpZiAoZm9ybWF0ID09PSBEb2N1bWVudFVybEZvcm1hdC5SYXdIdG1sKSB7XG4gICAgcmV0dXJuIGBodHRwOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvJHtsZWdpc2xhdHVyZX0vdGV4dGVzLyR7bnVtYmVyfSR7ZXh0ZW5zaW9ufWBcbiAgfVxuICBsZXQgZG9jdW1lbnRUeXBlID1cbiAgICAoXG4gICAgICB7XG4gICAgICAgIEJUQzogXCJUQ09NXCIsXG4gICAgICAgIEJUQTogXCJUQURPXCIsXG4gICAgICAgIFRBUDogXCJUQURPXCIsXG4gICAgICB9IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1cbiAgICApW21hdGNoWzZdXSB8fCBtYXRjaFsxXVxuICBpZiAoXG4gICAgZG9jdW1lbnQuY2xhc3NpZmljYXRpb24gIT09IHVuZGVmaW5lZCAmJlxuICAgIGRvY3VtZW50LmNsYXNzaWZpY2F0aW9uLnNvdXNUeXBlICE9PSB1bmRlZmluZWQgJiZcbiAgICBkb2N1bWVudC5jbGFzc2lmaWNhdGlvbi5zb3VzVHlwZS5jb2RlID09PSBcIkNPTVBBXCJcbiAgKSB7XG4gICAgLy8gQW5uZXhlIGF1IHJhcHBvcnQgOiBUZXh0ZSBjb21wYXJhdGlmIENPTVBBXG4gICAgbnVtYmVyID0gbnVtYmVyLnJlcGxhY2UoLy1DT01QQS8sIFwiLWFDT01QQVwiKVxuICB9XG4gIGlmIChkb2N1bWVudFR5cGUgPT0gXCJBVkNFXCIpIHtcbiAgICBkb2N1bWVudFR5cGUgPSBgQVZDRSR7ZG9jdW1lbnQuY2xhc3NpZmljYXRpb24uZmFtaWxsZS5jbGFzc2UuY29kZX1gXG4gIH1cbiAgY29uc3QgZnJhZ21lbnRzID0gZG9jdW1lbnRVcmxGcmFnbWVudHNCeVR5cGVbZG9jdW1lbnRUeXBlXVxuICBpZiAoZnJhZ21lbnRzID09PSB1bmRlZmluZWQpIHtcbiAgICAvLyBGb3IgZXhhbXBsZTogQUxDTkFOUjVMMTVCMDAwMiAoYWxsb2N1dGlvbiBkdSBwcsOpc2lkZW50KVxuICAgIGNvbnNvbGUubG9nKFxuICAgICAgYFVuYWJsZSB0byBnZW5lcmF0ZSBVUkwgZnJvbSBkb2N1bWVudCBvZiBVSUQgXCIke2RvY3VtZW50LnVpZH1cIiBhbmQgdHlwZSBcIiR7ZG9jdW1lbnRUeXBlfVwiYCxcbiAgICApXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBkaXJlY3RvcnkgPVxuICAgIGZvcm1hdCA9PT0gRG9jdW1lbnRVcmxGb3JtYXQuUGRmXG4gICAgICA/IGBwZGYvJHtmcmFnbWVudHMuZGlyZWN0b3J5fWBcbiAgICAgIDogZnJhZ21lbnRzLmRpcmVjdG9yeVxuICByZXR1cm4gYGh0dHA6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci8ke2xlZ2lzbGF0dXJlfS8ke2RpcmVjdG9yeX0vJHtmcmFnbWVudHMucHJlZml4fSR7bnVtYmVyfSR7ZnJhZ21lbnRzLnN1ZmZpeH0ke2V4dGVuc2lvbn1gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cmxGcm9tU2NydXRpbihzY3J1dGluOiBTY3J1dGluKSB7XG4gIC8vIFNhbXBsZSBVSURzOiBWVEFOUjVMMTVWMzg5XG4gIGNvbnN0IG1hdGNoID0gL15WVEFOUihbMC05XSspTChbMC05XSspVihbMC05XSspJC8uZXhlYyhzY3J1dGluLnVpZClcbiAgaWYgKG1hdGNoID09PSBudWxsKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmcm9tIHNjcnV0aW4gd2l0aCB1bmV4cGVjdGVkIFVJRDogXCIke3NjcnV0aW4udWlkfVwiYCxcbiAgICApXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBsZWdpc2xhdHVyZSA9IG1hdGNoWzJdXG4gIGNvbnN0IG51bWVybyA9IG1hdGNoWzNdXG4gIHJldHVybiBgaHR0cDovL3d3dzIuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zY3J1dGlucy9kZXRhaWwvKGxlZ2lzbGF0dXJlKS8ke2xlZ2lzbGF0dXJlfS8obnVtKS8ke251bWVyb31gXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUVZQSxpQkFBaUIsMEJBQWpCQSxpQkFBaUI7RUFBakJBLGlCQUFpQjtFQUFqQkEs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
326
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZXhwb3J0cyIsIk9wIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duIiwiaGFzT3duUHJvcGVydHkiLCJkZWZpbmVQcm9wZXJ0eSIsIm9iaiIsImtleSIsImRlc2MiLCJ2YWx1ZSIsIiRTeW1ib2wiLCJTeW1ib2wiLCJpdGVyYXRvclN5bWJvbCIsIml0ZXJhdG9yIiwiYXN5bmNJdGVyYXRvclN5bWJvbCIsImFzeW5jSXRlcmF0b3IiLCJ0b1N0cmluZ1RhZ1N5bWJvbCIsInRvU3RyaW5nVGFnIiwiZGVmaW5lIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiZXJyIiwid3JhcCIsImlubmVyRm4iLCJvdXRlckZuIiwic2VsZiIsInRyeUxvY3NMaXN0IiwicHJvdG9HZW5lcmF0b3IiLCJHZW5lcmF0b3IiLCJnZW5lcmF0b3IiLCJjcmVhdGUiLCJjb250ZXh0IiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsImZuIiwiYXJnIiwidHlwZSIsImNhbGwiLCJDb250aW51ZVNlbnRpbmVsIiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsIkl0ZXJhdG9yUHJvdG90eXBlIiwiZ2V0UHJvdG8iLCJnZXRQcm90b3R5cGVPZiIsIk5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlIiwidmFsdWVzIiwiR3AiLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwibWV0aG9kIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJQcm9taXNlSW1wbCIsImludm9rZSIsInJlc29sdmUiLCJyZWplY3QiLCJyZWNvcmQiLCJyZXN1bHQiLCJfdHlwZW9mIiwiX19hd2FpdCIsInRoZW4iLCJ1bndyYXBwZWQiLCJlcnJvciIsInByZXZpb3VzUHJvbWlzZSIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwic3RhdGUiLCJFcnJvciIsImRvbmVSZXN1bHQiLCJkZWxlZ2F0ZSIsImRlbGVnYXRlUmVzdWx0IiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwiZG9uZSIsIm1ldGhvZE5hbWUiLCJ1bmRlZmluZWQiLCJUeXBlRXJyb3IiLCJpbmZvIiwicmVzdWx0TmFtZSIsIm5leHQiLCJuZXh0TG9jIiwicHVzaFRyeUVudHJ5IiwibG9jcyIsImVudHJ5IiwidHJ5TG9jIiwiY2F0Y2hMb2MiLCJmaW5hbGx5TG9jIiwiYWZ0ZXJMb2MiLCJ0cnlFbnRyaWVzIiwicHVzaCIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpdGVyYWJsZSIsIml0ZXJhdG9yTWV0aG9kIiwiaXNOYU4iLCJsZW5ndGgiLCJpIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiZ2VuRnVuIiwiY3RvciIsImNvbnN0cnVjdG9yIiwibmFtZSIsIm1hcmsiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImF3cmFwIiwiYXN5bmMiLCJQcm9taXNlIiwiaXRlciIsImtleXMiLCJ2YWwiLCJvYmplY3QiLCJyZXZlcnNlIiwicG9wIiwic2tpcFRlbXBSZXNldCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJyb290UmVjb3JkIiwicnZhbCIsImV4Y2VwdGlvbiIsImhhbmRsZSIsImxvYyIsImNhdWdodCIsImhhc0NhdGNoIiwiaGFzRmluYWxseSIsImZpbmFsbHlFbnRyeSIsImNvbXBsZXRlIiwiZmluaXNoIiwiX2NhdGNoIiwidGhyb3duIiwiZGVsZWdhdGVZaWVsZCIsIkRvY3VtZW50VXJsRm9ybWF0IiwiZG9jdW1lbnRVcmxGcmFnbWVudHNCeVR5cGUiLCJBQ0lOIiwiZGlyZWN0b3J5IiwicHJlZml4Iiwic3VmZml4IiwiQVZDRVBSSkxPSSIsIkFWQ0VMRVRUUkUiLCJBVkNFUElPTkxPSSIsIkFWSVMiLCJFVERJIiwiTEVUVCIsIlBJT04iLCJQTlJFIiwiUE5SRUFQUEFSVDM0MSIsIlBOUkVDT01FTlEiLCJQTlJFTU9EUkVHTFRBTiIsIlBOUkVUVlhJTlNUSVRFVVJPUCIsIlBSSkwiLCJSQVBQIiwiUklORiIsIlJJT04iLCJUQURPIiwiVENPTSIsIlRDT01DT01FTlEiLCJUQ09NTU9EUkVHTFRBTiIsIlRDT01UVlhJTlNUSVRFVVJPUCIsImV4dGVuc2lvbkZyb21Eb2N1bWVudFVybEZvcm1hdCIsImZvcm1hdCIsIkh0bWwiLCJQZGYiLCJSYXdIdG1sIiwiaXRlckRvY3VtZW50T3JEaXZpc2lvblVybHMiLCJkb2N1bWVudE9yRGl2aXNpb24iLCJhcmd1bWVudHMiLCJfY2FsbGVlIiwidXJsSW5mb3MiLCJfdXJsSW5mb3MiLCJfdXJsSW5mb3MyIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInVybCIsImNvbmNhdCIsInVpZCIsInVybEluZm9zRnJvbURvY3VtZW50T3JEaXZpc2lvbiIsInJlcGxhY2VBbGwiLCJ1cmxGcm9tRG9jdW1lbnQiLCJ1cmxGcm9tU2NydXRpbiIsInNjcnV0aW4iLCJtYXRjaCIsImV4ZWMiLCJjb25zb2xlIiwibG9nIiwibGVnaXNsYXR1cmUiLCJudW1lcm8iLCJleHRlbnNpb24iLCJjaGFtYnJlIiwibnVtYmVyIiwiZG9jdW1lbnRUeXBlIiwiQlRDIiwiQlRBIiwiVEFQIiwiY2xhc3NpZmljYXRpb24iLCJzb3VzVHlwZSIsImNvZGUiLCJyZXBsYWNlIiwiX2RvY3VtZW50T3JEaXZpc2lvbiRjIiwiZmFtaWxsZSIsImNsYXNzZSIsImZyYWdtZW50cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy91cmxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRG9jdW1lbnQsIERpdmlzaW9uIH0gZnJvbSBcIi4vdHlwZXMvZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuaW1wb3J0IHR5cGUgeyBTY3J1dGluIH0gZnJvbSBcIi4vdHlwZXMvc2NydXRpbnNcIlxuXG5leHBvcnQgZW51bSBEb2N1bWVudFVybEZvcm1hdCB7XG4gIEh0bWwgPSBcImh0bWxcIixcbiAgUGRmID0gXCJwZGZcIixcbiAgUmF3SHRtbCA9IFwicmF3LWh0bWxcIiwgLy8gVGhlIHZlcnNpb24gb2YgdGhlIGRvY3VtZW50IHRoYXQgY2FuIGJlIHBhcnNlZCB0byBleHRyYWN0IGRpdmlzaW9ucyAmIGFydGljbGVzXG59XG5cbmNvbnN0IGRvY3VtZW50VXJsRnJhZ21lbnRzQnlUeXBlOiB7XG4gIFt0eXBlOiBzdHJpbmddOiB7XG4gICAgZGlyZWN0b3J5OiBzdHJpbmdcbiAgICBwcmVmaXg6IHN0cmluZ1xuICAgIHN1ZmZpeDogc3RyaW5nXG4gIH1cbn0gPSB7XG4gIEFDSU46IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItYWlcIixcbiAgfSxcbiAgQVZDRVBSSkxPSToge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIi1hY2VcIixcbiAgfSxcbiAgQVZDRUxFVFRSRToge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIi1hY2VcIixcbiAgfSxcbiAgQVZDRVBJT05MT0k6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiLWFjZVwiLFxuICB9LFxuICBBVklTOiB7XG4gICAgZGlyZWN0b3J5OiBcInJhcHBvcnRzXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIEVUREk6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvamV0c1wiLFxuICAgIHByZWZpeDogXCJwbFwiLFxuICAgIHN1ZmZpeDogXCItZWlcIixcbiAgfSxcbiAgTEVUVDoge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIi1sXCIsXG4gIH0sXG4gIFBJT046IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkU6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkVBUFBBUlQzNDE6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkVDT01FTlE6IHtcbiAgICBkaXJlY3Rvcnk6IFwicHJvcG9zaXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBpb25cIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFBOUkVNT0RSRUdMVEFOOiB7XG4gICAgZGlyZWN0b3J5OiBcInByb3Bvc2l0aW9uc1wiLFxuICAgIHByZWZpeDogXCJwaW9uXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBQTlJFVFZYSU5TVElURVVST1A6IHtcbiAgICBkaXJlY3Rvcnk6IFwiZXVyb3BlL3Jlc29sdXRpb25zXCIsXG4gICAgcHJlZml4OiBcInBwZVwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUFJKTDoge1xuICAgIGRpcmVjdG9yeTogXCJwcm9qZXRzXCIsXG4gICAgcHJlZml4OiBcInBsXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBSQVBQOiB7XG4gICAgZGlyZWN0b3J5OiBcInJhcHBvcnRzXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiXCIsXG4gIH0sXG4gIFJJTkY6IHtcbiAgICBkaXJlY3Rvcnk6IFwicmFwLWluZm9cIixcbiAgICBwcmVmaXg6IFwiaVwiLFxuICAgIHN1ZmZpeDogXCJcIixcbiAgfSxcbiAgUklPTjoge1xuICAgIGRpcmVjdG9yeTogXCJcIixcbiAgICBwcmVmaXg6IFwiXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBUQURPOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhXCIsXG4gICAgcHJlZml4OiBcInRhXCIsXG4gICAgc3VmZml4OiBcIlwiLFxuICB9LFxuICBUQ09NOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhLWNvbW1pc3Npb25cIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCItYTBcIixcbiAgfSxcbiAgVENPTUNPTUVOUToge1xuICAgIGRpcmVjdG9yeTogXCJ0YS1jb21taXNzaW9uXCIsXG4gICAgcHJlZml4OiBcInJcIixcbiAgICBzdWZmaXg6IFwiLWEwXCIsXG4gIH0sXG4gIFRDT01NT0RSRUdMVEFOOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhLWNvbW1pc3Npb25cIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCItYTBcIixcbiAgfSxcbiAgVENPTVRWWElOU1RJVEVVUk9QOiB7XG4gICAgZGlyZWN0b3J5OiBcInRhLWNvbW1pc3Npb25cIixcbiAgICBwcmVmaXg6IFwiclwiLFxuICAgIHN1ZmZpeDogXCItYTBcIixcbiAgfSxcbn1cblxuZnVuY3Rpb24gZXh0ZW5zaW9uRnJvbURvY3VtZW50VXJsRm9ybWF0KGZvcm1hdDogRG9jdW1lbnRVcmxGb3JtYXQpOiBzdHJpbmcge1xuICBzd2l0Y2ggKGZvcm1hdCkge1xuICAgIGNhc2UgRG9jdW1lbnRVcmxGb3JtYXQuSHRtbDpcbiAgICAgIHJldHVybiBcIi5hc3BcIlxuICAgIGNhc2UgRG9jdW1lbnRVcmxGb3JtYXQuUGRmOlxuICAgICAgcmV0dXJuIFwiLnBkZlwiXG4gICAgY2FzZSBEb2N1bWVudFVybEZvcm1hdC5SYXdIdG1sOlxuICAgICAgcmV0dXJuIFwiLmFzcFwiXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyRG9jdW1lbnRPckRpdmlzaW9uVXJscyhcbiAgZG9jdW1lbnRPckRpdmlzaW9uOiBEb2N1bWVudCB8IERpdmlzaW9uLFxuICBmb3JtYXQ6IERvY3VtZW50VXJsRm9ybWF0IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuKTogR2VuZXJhdG9yPFxuICB7IGZvcm1hdDogRG9jdW1lbnRVcmxGb3JtYXQ7IHR5cGU6IHN0cmluZzsgdXJsOiBzdHJpbmcgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIC8vIFJhdyBIVE1MXG4gIGlmIChmb3JtYXQgPT09IHVuZGVmaW5lZCB8fCBmb3JtYXQgPT09IERvY3VtZW50VXJsRm9ybWF0LlJhd0h0bWwpIHtcbiAgICAvLyBOb3RlOiBCb3RoIFVSTHMgc2hvdWxkIHdvcmsgYW5kIHJldHVybiB0aGUgc2FtZSByZXN1bHQuXG4gICAgeWllbGQge1xuICAgICAgZm9ybWF0OiBEb2N1bWVudFVybEZvcm1hdC5SYXdIdG1sLFxuICAgICAgdHlwZTogXCJkeW4tb3BlbmRhdGFcIixcbiAgICAgIHVybDogYGh0dHBzOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvZHluL29wZW5kYXRhLyR7ZG9jdW1lbnRPckRpdmlzaW9uLnVpZH0uaHRtbGAsXG4gICAgfVxuICAgIHlpZWxkIHtcbiAgICAgIGZvcm1hdDogRG9jdW1lbnRVcmxGb3JtYXQuUmF3SHRtbCxcbiAgICAgIHR5cGU6IFwiZHluLWRvY3NcIixcbiAgICAgIHVybDogYGh0dHBzOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvZHluL2RvY3MvJHtkb2N1bWVudE9yRGl2aXNpb24udWlkfS5yYXdgLFxuICAgIH1cbiAgICBjb25zdCB1cmxJbmZvcyA9IHVybEluZm9zRnJvbURvY3VtZW50T3JEaXZpc2lvbihcbiAgICAgIGRvY3VtZW50T3JEaXZpc2lvbixcbiAgICAgIERvY3VtZW50VXJsRm9ybWF0LlJhd0h0bWwsXG4gICAgKVxuICAgIGlmICh1cmxJbmZvcyAhPT0gbnVsbCkge1xuICAgICAgeWllbGQge1xuICAgICAgICBmb3JtYXQ6IERvY3VtZW50VXJsRm9ybWF0LlJhd0h0bWwsXG4gICAgICAgIHR5cGU6IHVybEluZm9zLmRpcmVjdG9yeS5yZXBsYWNlQWxsKFwiL1wiLCBcIi1cIiksXG4gICAgICAgIHVybDogdXJsSW5mb3MudXJsLFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEhUTUxcbiAgaWYgKGZvcm1hdCA9PT0gdW5kZWZpbmVkIHx8IGZvcm1hdCA9PT0gRG9jdW1lbnRVcmxGb3JtYXQuSHRtbCkge1xuICAgIGNvbnN0IHVybEluZm9zID0gdXJsSW5mb3NGcm9tRG9jdW1lbnRPckRpdmlzaW9uKFxuICAgICAgZG9jdW1lbnRPckRpdmlzaW9uLFxuICAgICAgRG9jdW1lbnRVcmxGb3JtYXQuSHRtbCxcbiAgICApXG4gICAgaWYgKHVybEluZm9zICE9PSBudWxsKSB7XG4gICAgICB5aWVsZCB7XG4gICAgICAgIGZvcm1hdDogRG9jdW1lbnRVcmxGb3JtYXQuSHRtbCxcbiAgICAgICAgdHlwZTogdXJsSW5mb3MuZGlyZWN0b3J5LnJlcGxhY2VBbGwoXCIvXCIsIFwiLVwiKSxcbiAgICAgICAgdXJsOiB1cmxJbmZvcy51cmwsXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUERGXG4gIGlmIChmb3JtYXQgPT09IHVuZGVmaW5lZCB8fCBmb3JtYXQgPT09IERvY3VtZW50VXJsRm9ybWF0LlBkZikge1xuICAgIC8vIE5vdGU6IEJvdGggVVJMcyBzaG91bGQgd29yayBhbmQgcmV0dXJuIHRoZSBzYW1lIHJlc3VsdC5cbiAgICB5aWVsZCB7XG4gICAgICBmb3JtYXQ6IERvY3VtZW50VXJsRm9ybWF0LlJhd0h0bWwsXG4gICAgICB0eXBlOiBcImR5bi1vcGVuZGF0YVwiLFxuICAgICAgdXJsOiBgaHR0cHM6Ly93d3cuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9keW4vb3BlbmRhdGEvJHtkb2N1bWVudE9yRGl2aXNpb24udWlkfS5odG1sYCxcbiAgICB9XG4gICAgeWllbGQge1xuICAgICAgZm9ybWF0OiBEb2N1bWVudFVybEZvcm1hdC5QZGYsXG4gICAgICB0eXBlOiBcImR5bi1kb2NzXCIsXG4gICAgICB1cmw6IGBodHRwczovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL2R5bi9kb2NzLyR7ZG9jdW1lbnRPckRpdmlzaW9uLnVpZH0ucGRmYCxcbiAgICB9XG4gICAgY29uc3QgdXJsSW5mb3MgPSB1cmxJbmZvc0Zyb21Eb2N1bWVudE9yRGl2aXNpb24oXG4gICAgICBkb2N1bWVudE9yRGl2aXNpb24sXG4gICAgICBEb2N1bWVudFVybEZvcm1hdC5QZGYsXG4gICAgKVxuICAgIGlmICh1cmxJbmZvcyAhPT0gbnVsbCkge1xuICAgICAgeWllbGQge1xuICAgICAgICBmb3JtYXQ6IERvY3VtZW50VXJsRm9ybWF0LlBkZixcbiAgICAgICAgdHlwZTogdXJsSW5mb3MuZGlyZWN0b3J5LnJlcGxhY2VBbGwoXCIvXCIsIFwiLVwiKSxcbiAgICAgICAgdXJsOiB1cmxJbmZvcy51cmwsXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vLyBOb3RlOiBUaGlzIGZ1bmN0aW9uIGRvZXNuJ3QgdXNlIHRoZSBcIm1vZGVyblwiIEFzc2VtYmzDqWUgVVJMcyBmb3IgZG9jdW1lbnRzLlxuLy8vIFVzZSBnZW5lcmF0b3IgYGl0ZXJEb2N1bWVudE9yRGl2aXNpb25VcmxzYCBpbnN0ZWFkLlxuZXhwb3J0IGZ1bmN0aW9uIHVybEZyb21Eb2N1bWVudChcbiAgZG9jdW1lbnRPckRpdmlzaW9uOiBEb2N1bWVudCB8IERpdmlzaW9uLFxuICBmb3JtYXQ6IERvY3VtZW50VXJsRm9ybWF0LFxuKTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IHVybEluZm9zID0gdXJsSW5mb3NGcm9tRG9jdW1lbnRPckRpdmlzaW9uKGRvY3VtZW50T3JEaXZpc2lvbiwgZm9ybWF0KVxuICByZXR1cm4gdXJsSW5mb3MgPT09IG51bGwgPyBudWxsIDogdXJsSW5mb3MudXJsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cmxGcm9tU2NydXRpbihzY3J1dGluOiBTY3J1dGluKSB7XG4gIC8vIFNhbXBsZSBVSURzOiBWVEFOUjVMMTVWMzg5XG4gIGNvbnN0IG1hdGNoID0gL15WVEFOUihbMC05XSspTChbMC05XSspVihbMC05XSspJC8uZXhlYyhzY3J1dGluLnVpZClcbiAgaWYgKG1hdGNoID09PSBudWxsKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmcm9tIHNjcnV0aW4gd2l0aCB1bmV4cGVjdGVkIFVJRDogXCIke3NjcnV0aW4udWlkfVwiYCxcbiAgICApXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBsZWdpc2xhdHVyZSA9IG1hdGNoWzJdXG4gIGNvbnN0IG51bWVybyA9IG1hdGNoWzNdXG4gIHJldHVybiBgaHR0cDovL3d3dzIuYXNzZW1ibGVlLW5hdGlvbmFsZS5mci9zY3J1dGlucy9kZXRhaWwvKGxlZ2lzbGF0dXJlKS8ke2xlZ2lzbGF0dXJlfS8obnVtKS8ke251bWVyb31gXG59XG5cbi8vLyBOb3RlOiBUaGlzIGZ1bmN0aW9uIGRvZXNuJ3QgdXNlIHRoZSBtb2Rlcm4gQXNzZW1ibMOpZSBVUkxzIGZvciBkb2N1bWVudHMuXG4vLy8gVXNlIGdlbmVyYXRvciBgaXRlckRvY3VtZW50T3JEaXZpc2lvblVybHNgIGluc3RlYWQuXG5mdW5jdGlvbiB1cmxJbmZvc0Zyb21Eb2N1bWVudE9yRGl2aXNpb24oXG4gIGRvY3VtZW50T3JEaXZpc2lvbjogRG9jdW1lbnQgfCBEaXZpc2lvbixcbiAgZm9ybWF0OiBEb2N1bWVudFVybEZvcm1hdCxcbik6IHsgZGlyZWN0b3J5OiBzdHJpbmc7IHVybDogc3RyaW5nIH0gfCBudWxsIHtcbiAgLy8gQ29kZSB0YWtlbiBmcm9tIGZ1bmN0aW9uIGBhbl90ZXh0X3VybGAgaW4gcHJvamVjdCBhbnB5OlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vcmVnYXJkc2NpdG95ZW5zL2FucHkvYmxvYi9tYXN0ZXIvYW5weS9kb3NzaWVyX2Zyb21fb3BlbmRhdGEucHlcbiAgLy8gU2VlIGh0dHBzOi8vd3d3LmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvb3BlbmRhdGEvSW1wbGVtZW50YXRpb25fUmVmZXJlbnRpZWwvSWRlbnRpZmlhbnRzX1JlZmVyZW50aWVscy5odG1sXG4gIC8vIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoZSBmb3JtYXQgb2YgYW4gVUlELlxuXG4gIGNvbnN0IGV4dGVuc2lvbiA9IGV4dGVuc2lvbkZyb21Eb2N1bWVudFVybEZvcm1hdChmb3JtYXQpXG4gIGNvbnN0IG1hdGNoID0gL14oLns0fSkoW0FOU10qKShSWzAtOV0pKFtMU10qKShbMC05XSopKFtCVEFDUF0qKSguKikkLy5leGVjKFxuICAgIGRvY3VtZW50T3JEaXZpc2lvbi51aWQsXG4gIClcbiAgaWYgKG1hdGNoID09PSBudWxsKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmcm9tIGRvY3VtZW50IG9yIGRpdmlzaW9uIHdpdGggdW5leHBlY3RlZCBVSUQ6IFwiJHtkb2N1bWVudE9yRGl2aXNpb24udWlkfVwiYCxcbiAgICApXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBjaGFtYnJlID0gbWF0Y2hbMl1cbiAgaWYgKGNoYW1icmUgPT09IFwiU05cIikge1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgYFVuYWJsZSB0byBnZW5lcmF0ZSBVUkwgZm9yIGRvY3VtZW50IG9yIGRpdmlzaW9uIGluIFPDqW5hdC4gVUlEOiBcIiR7ZG9jdW1lbnRPckRpdmlzaW9uLnVpZH1cImAsXG4gICAgKVxuICAgIHJldHVybiBudWxsXG4gIH1cbiAgY29uc3QgbGVnaXNsYXR1cmUgPSBtYXRjaFs1XVxuICBsZXQgbnVtYmVyID0gbWF0Y2hbN11cbiAgaWYgKGZvcm1hdCA9PT0gRG9jdW1lbnRVcmxGb3JtYXQuUmF3SHRtbCkge1xuICAgIHJldHVybiB7XG4gICAgICBkaXJlY3Rvcnk6IFwidGV4dGVzXCIsXG4gICAgICB1cmw6IGBodHRwczovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLyR7bGVnaXNsYXR1cmV9L3RleHRlcy8ke251bWJlcn0ke2V4dGVuc2lvbn1gLFxuICAgIH1cbiAgfVxuICBsZXQgZG9jdW1lbnRUeXBlID1cbiAgICAoXG4gICAgICB7XG4gICAgICAgIEJUQzogXCJUQ09NXCIsXG4gICAgICAgIEJUQTogXCJUQURPXCIsXG4gICAgICAgIFRBUDogXCJUQURPXCIsXG4gICAgICB9IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH1cbiAgICApW21hdGNoWzZdXSB8fCBtYXRjaFsxXVxuICBpZiAoXG4gICAgZG9jdW1lbnRPckRpdmlzaW9uLmNsYXNzaWZpY2F0aW9uICE9PSB1bmRlZmluZWQgJiZcbiAgICBkb2N1bWVudE9yRGl2aXNpb24uY2xhc3NpZmljYXRpb24uc291c1R5cGUgIT09IHVuZGVmaW5lZCAmJlxuICAgIGRvY3VtZW50T3JEaXZpc2lvbi5jbGFzc2lmaWNhdGlvbi5zb3VzVHlwZS5jb2RlID09PSBcIkNPTVBBXCJcbiAgKSB7XG4gICAgLy8gQW5uZXhlIGF1IHJhcHBvcnQgOiBUZXh0ZSBjb21wYXJhdGlmIENPTVBBXG4gICAgbnVtYmVyID0gbnVtYmVyLnJlcGxhY2UoLy1DT01QQS8sIFwiLWFDT01QQVwiKVxuICB9XG4gIGlmIChkb2N1bWVudFR5cGUgPT0gXCJBVkNFXCIpIHtcbiAgICBkb2N1bWVudFR5cGUgPSBgQVZDRSR7ZG9jdW1lbnRPckRpdmlzaW9uLmNsYXNzaWZpY2F0aW9uLmZhbWlsbGU/LmNsYXNzZS5jb2RlfWBcbiAgfVxuICBjb25zdCBmcmFnbWVudHMgPSBkb2N1bWVudFVybEZyYWdtZW50c0J5VHlwZVtkb2N1bWVudFR5cGVdXG4gIGlmIChmcmFnbWVudHMgPT09IHVuZGVmaW5lZCkge1xuICAgIC8vIEZvciBleGFtcGxlOiBBTENOQU5SNUwxNUIwMDAyIChhbGxvY3V0aW9uIGR1IHByw6lzaWRlbnQpXG4gICAgY29uc29sZS5sb2coXG4gICAgICBgVW5hYmxlIHRvIGdlbmVyYXRlIFVSTCBmcm9tIGRvY3VtZW50IG9yIGRpdmlzaW9uIG9mIFVJRCBcIiR7ZG9jdW1lbnRPckRpdmlzaW9uLnVpZH1cIiBhbmQgdHlwZSBcIiR7ZG9jdW1lbnRUeXBlfVwiYCxcbiAgICApXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBkaXJlY3RvcnkgPVxuICAgIGZvcm1hdCA9PT0gRG9jdW1lbnRVcmxGb3JtYXQuUGRmXG4gICAgICA/IGBwZGYvJHtmcmFnbWVudHMuZGlyZWN0b3J5fWBcbiAgICAgIDogZnJhZ21lbnRzLmRpcmVjdG9yeVxuICByZXR1cm4ge1xuICAgIGRpcmVjdG9yeSxcbiAgICB1cmw6IGBodHRwczovL3d3dy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyLyR7bGVnaXNsYXR1cmV9LyR7ZGlyZWN0b3J5fS8ke2ZyYWdtZW50cy5wcmVmaXh9JHtudW1iZXJ9JHtmcmFnbWVudHMuc3VmZml4fSR7ZXh0ZW5zaW9ufWAsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0NBQ0EscUpBQUFBLG1CQUFBLFlBQUFBLG9CQUFBLFdBQUFDLE9BQUEsU0FBQUEsT0FBQSxPQUFBQyxFQUFBLEdBQUFDLE1BQUEsQ0FBQUMsU0FBQSxFQUFBQyxNQUFBLEdBQUFILEVBQUEsQ0FBQUksY0FBQSxFQUFBQyxjQUFBLEdBQUFKLE1BQUEsQ0FBQUksY0FBQSxjQUFBQyxHQUFBLEVBQUFDLEdBQUEsRUFBQUMsSUFBQSxJQUFBRixHQUFBLENBQUFDLEdBQUEsSUFBQUMsSUFBQSxDQUFBQyxLQUFBLEtBQUFDLE9BQUEsd0JBQUFDLE1BQUEsR0FBQUEsTUFBQSxPQUFBQyxjQUFBLEdBQUFGLE9BQUEsQ0FBQUcsUUFBQSxrQkFBQUMsbUJBQUEsR0FBQUosT0FBQSxDQUFBSyxhQUFBLHVCQUFBQyxpQkFBQSxHQUFBTixPQUFBLENBQUFPLFdBQUEsOEJBQUFDLE9BQUFaLEdBQUEsRUFBQUMsR0FBQSxFQUFBRSxLQUFBLFdBQUFSLE1BQUEsQ0FBQUksY0FBQSxDQUFBQyxHQUFBLEVBQUFDLEdBQUEsSUFBQUUsS0FB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