@tricoteuses/assemblee 1.10.5 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/README.md +8 -1
  2. package/lib/amendements-79bwpkvR.js +154 -0
  3. package/lib/amendements-CV3s5a0M.js +667 -0
  4. package/lib/cleaners/index.d.ts +9 -9
  5. package/lib/cleaners.js +564 -0
  6. package/lib/datasets.d.ts +3 -3
  7. package/lib/dossiers_legislatifs.d.ts +2 -2
  8. package/lib/index.d.ts +17 -22
  9. package/lib/index.js +1542 -314
  10. package/lib/inserters.d.ts +5 -5
  11. package/lib/loaders-9mHdTl9L.js +4158 -0
  12. package/lib/loaders.d.ts +12 -12
  13. package/lib/loaders.js +29 -1689
  14. package/lib/organes.d.ts +1 -1
  15. package/lib/parse-Ccs6wcUg.js +2512 -0
  16. package/lib/parsers/index.d.ts +2 -3
  17. package/lib/parsers/plf.d.ts +1 -0
  18. package/lib/parsers/recherche_amendements.d.ts +2 -2
  19. package/lib/parsers/textes_lois.d.ts +1 -23
  20. package/lib/parsers.js +398 -0
  21. package/lib/raw_types/debats.d.ts +2 -2
  22. package/lib/raw_types/dossiers_legislatifs.d.ts +1 -1
  23. package/lib/schemas/acteurs_et_organes.json +1166 -0
  24. package/lib/schemas/agendas.json +1745 -0
  25. package/lib/schemas/amendements.json +2085 -0
  26. package/lib/schemas/debats.json +842 -0
  27. package/lib/schemas/dossiers_legislatifs.json +3874 -0
  28. package/lib/schemas/legislatures.json +17 -0
  29. package/lib/schemas/questions.json +704 -0
  30. package/lib/schemas/scrutins.json +701 -0
  31. package/lib/scripts/retrieve_deputes_photos.d.ts +1 -1
  32. package/lib/types/acteurs_et_organes.d.ts +340 -0
  33. package/lib/types/agendas.d.ts +236 -10
  34. package/lib/types/amendements.d.ts +276 -1
  35. package/lib/types/debats.d.ts +52 -2
  36. package/lib/types/dossiers_legislatifs.d.ts +403 -9
  37. package/lib/types/questions.d.ts +99 -2
  38. package/lib/types/scrutins.d.ts +101 -0
  39. package/lib/urls.d.ts +2 -2
  40. package/package.json +32 -94
  41. package/lib/api.js +0 -52
  42. package/lib/api.mjs +0 -45
  43. package/lib/bugs/acteur-00010/plugin.test.js +0 -90
  44. package/lib/bugs/acteur-00010/plugin.test.mjs +0 -33
  45. package/lib/bugs/acteur-00010.d.ts +0 -7
  46. package/lib/bugs/acteur-00010.js +0 -116
  47. package/lib/bugs/acteur-00010.mjs +0 -26
  48. package/lib/bugs/agenda-00002/plugin.test.js +0 -124
  49. package/lib/bugs/agenda-00002/plugin.test.mjs +0 -50
  50. package/lib/bugs/agenda-00002.d.ts +0 -15
  51. package/lib/bugs/agenda-00002.js +0 -406
  52. package/lib/bugs/agenda-00002.mjs +0 -172
  53. package/lib/bugs/agenda-00008/plugin.test.js +0 -92
  54. package/lib/bugs/agenda-00008/plugin.test.mjs +0 -31
  55. package/lib/bugs/agenda-00008.d.ts +0 -7
  56. package/lib/bugs/agenda-00008.js +0 -123
  57. package/lib/bugs/agenda-00008.mjs +0 -26
  58. package/lib/bugs/agenda-00011/plugin.test.d.ts +0 -1
  59. package/lib/bugs/agenda-00011/plugin.test.js +0 -263
  60. package/lib/bugs/agenda-00011/plugin.test.mjs +0 -152
  61. package/lib/bugs/agenda-00011.d.ts +0 -16
  62. package/lib/bugs/agenda-00011.js +0 -333
  63. package/lib/bugs/agenda-00011.mjs +0 -125
  64. package/lib/bugs.d.ts +0 -21
  65. package/lib/bugs.js +0 -452
  66. package/lib/bugs.mjs +0 -70
  67. package/lib/cleaners/actes_legislatifs.js +0 -315
  68. package/lib/cleaners/actes_legislatifs.mjs +0 -253
  69. package/lib/cleaners/acteurs.js +0 -265
  70. package/lib/cleaners/acteurs.mjs +0 -180
  71. package/lib/cleaners/amendements.js +0 -294
  72. package/lib/cleaners/amendements.mjs +0 -227
  73. package/lib/cleaners/debats.js +0 -12
  74. package/lib/cleaners/debats.mjs +0 -5
  75. package/lib/cleaners/documents.js +0 -205
  76. package/lib/cleaners/documents.mjs +0 -133
  77. package/lib/cleaners/dossiers_legislatifs.js +0 -131
  78. package/lib/cleaners/dossiers_legislatifs.mjs +0 -70
  79. package/lib/cleaners/index.js +0 -70
  80. package/lib/cleaners/index.mjs +0 -10
  81. package/lib/cleaners/organes.js +0 -65
  82. package/lib/cleaners/organes.mjs +0 -48
  83. package/lib/cleaners/questions.js +0 -12
  84. package/lib/cleaners/questions.mjs +0 -5
  85. package/lib/cleaners/reunions.js +0 -312
  86. package/lib/cleaners/reunions.mjs +0 -255
  87. package/lib/cleaners/scrutins.js +0 -340
  88. package/lib/cleaners/scrutins.mjs +0 -221
  89. package/lib/cleaners/xml.js +0 -74
  90. package/lib/cleaners/xml.mjs +0 -59
  91. package/lib/datasets.js +0 -837
  92. package/lib/datasets.mjs +0 -755
  93. package/lib/dates.js +0 -124
  94. package/lib/dates.mjs +0 -100
  95. package/lib/dossiers_legislatifs.js +0 -346
  96. package/lib/dossiers_legislatifs.mjs +0 -208
  97. package/lib/file_systems.js +0 -162
  98. package/lib/file_systems.mjs +0 -62
  99. package/lib/git.js +0 -223
  100. package/lib/git.mjs +0 -151
  101. package/lib/index.mjs +0 -17
  102. package/lib/inserters.js +0 -521
  103. package/lib/inserters.mjs +0 -337
  104. package/lib/loaders.mjs +0 -886
  105. package/lib/logger.js +0 -35
  106. package/lib/logger.mjs +0 -26
  107. package/lib/organes.js +0 -22
  108. package/lib/organes.mjs +0 -15
  109. package/lib/parsers/documents.d.ts +0 -62
  110. package/lib/parsers/documents.js +0 -453
  111. package/lib/parsers/documents.mjs +0 -370
  112. package/lib/parsers/index.js +0 -40
  113. package/lib/parsers/index.mjs +0 -4
  114. package/lib/parsers/recherche_amendements.js +0 -403
  115. package/lib/parsers/recherche_amendements.mjs +0 -167
  116. package/lib/parsers/textes_lois.js +0 -307
  117. package/lib/parsers/textes_lois.mjs +0 -264
  118. package/lib/raw_types/acteurs_et_organes.js +0 -1215
  119. package/lib/raw_types/acteurs_et_organes.mjs +0 -1148
  120. package/lib/raw_types/agendas.js +0 -777
  121. package/lib/raw_types/agendas.mjs +0 -724
  122. package/lib/raw_types/amendements.js +0 -1052
  123. package/lib/raw_types/amendements.mjs +0 -993
  124. package/lib/raw_types/debats.js +0 -630
  125. package/lib/raw_types/debats.mjs +0 -573
  126. package/lib/raw_types/dossiers_legislatifs.js +0 -1529
  127. package/lib/raw_types/dossiers_legislatifs.mjs +0 -1471
  128. package/lib/raw_types/questions.js +0 -469
  129. package/lib/raw_types/questions.mjs +0 -416
  130. package/lib/raw_types/scrutins.js +0 -651
  131. package/lib/raw_types/scrutins.mjs +0 -598
  132. package/lib/schemas/acteur/Acteur.json +0 -56
  133. package/lib/schemas/acteur/AdresseElectronique.json +0 -52
  134. package/lib/schemas/acteur/AdressePostale.json +0 -75
  135. package/lib/schemas/acteur/Civ.json +0 -14
  136. package/lib/schemas/acteur/Collaborateur.json +0 -29
  137. package/lib/schemas/acteur/EtatCivil.json +0 -51
  138. package/lib/schemas/acteur/Ident.json +0 -40
  139. package/lib/schemas/acteur/Lieu.json +0 -66
  140. package/lib/schemas/acteur/Mandat.json +0 -192
  141. package/lib/schemas/acteur/Profession.json +0 -46
  142. package/lib/schemas/agenda/Agenda.json +0 -318
  143. package/lib/schemas/agenda/CycleDeVie.json +0 -45
  144. package/lib/schemas/agenda/PointOdj.json +0 -82
  145. package/lib/schemas/amendement/Amendement.json +0 -246
  146. package/lib/schemas/amendement/Diff.json +0 -25
  147. package/lib/schemas/amendement/DispositifAmdtCredit.json +0 -85
  148. package/lib/schemas/amendement/Identifiant.json +0 -62
  149. package/lib/schemas/amendement/PointeurFragmentTexte.json +0 -127
  150. package/lib/schemas/amendement/Representation.json +0 -67
  151. package/lib/schemas/amendement/Total.json +0 -26
  152. package/lib/schemas/converted_from_type/acteurs_et_organes.json +0 -666
  153. package/lib/schemas/converted_from_type/agendas.json +0 -1100
  154. package/lib/schemas/converted_from_type/amendements.json +0 -3191
  155. package/lib/schemas/converted_from_type/debats.json +0 -682
  156. package/lib/schemas/converted_from_type/deputes.json +0 -26
  157. package/lib/schemas/converted_from_type/dossiers_legislatifs.json +0 -2918
  158. package/lib/schemas/converted_from_type/legislatures.json +0 -16
  159. package/lib/schemas/converted_from_type/questions.json +0 -328
  160. package/lib/schemas/converted_from_type/scrutins.json +0 -393
  161. package/lib/schemas/debat/Contenu.json +0 -75
  162. package/lib/schemas/debat/Debat.json +0 -40
  163. package/lib/schemas/debat/Metadonnees.json +0 -75
  164. package/lib/schemas/debat/Orateur.json +0 -60
  165. package/lib/schemas/debat/Point.json +0 -169
  166. package/lib/schemas/debat/Sommaire.json +0 -71
  167. package/lib/schemas/debat/SommaireElement.json +0 -108
  168. package/lib/schemas/debat/Texte.json +0 -34
  169. package/lib/schemas/document/CodeLibelle.json +0 -25
  170. package/lib/schemas/document/Document.json +0 -385
  171. package/lib/schemas/document/Indexation.json +0 -38
  172. package/lib/schemas/dossier/ActeLegislatif.json +0 -211
  173. package/lib/schemas/dossier/ActeLegislatifBase.json +0 -62
  174. package/lib/schemas/dossier/Agenda.json +0 -23
  175. package/lib/schemas/dossier/ConseilConstitutionnel.json +0 -35
  176. package/lib/schemas/dossier/Decision.json +0 -25
  177. package/lib/schemas/dossier/Dossier.json +0 -124
  178. package/lib/schemas/dossier/EtudeImpact.json +0 -29
  179. package/lib/schemas/dossier/EtudePlf.json +0 -105
  180. package/lib/schemas/dossier/Europe.json +0 -42
  181. package/lib/schemas/dossier/FamCodeLibelle.json +0 -25
  182. package/lib/schemas/dossier/InfoJO.json +0 -23
  183. package/lib/schemas/dossier/Initiateur.json +0 -36
  184. package/lib/schemas/dossier/Motion.json +0 -27
  185. package/lib/schemas/dossier/Promulgation.json +0 -62
  186. package/lib/schemas/dossier/Rapporteur.json +0 -36
  187. package/lib/schemas/dossier/Texte.json +0 -47
  188. package/lib/schemas/organe/CodeTypeOrgane.json +0 -43
  189. package/lib/schemas/organe/Organe.json +0 -136
  190. package/lib/schemas/organe/ViMoDe.json +0 -28
  191. package/lib/schemas/question/Auteur.json +0 -58
  192. package/lib/schemas/question/Cloture.json +0 -28
  193. package/lib/schemas/question/InfoJO.json +0 -40
  194. package/lib/schemas/question/MinAttribElement.json +0 -30
  195. package/lib/schemas/question/Question.json +0 -172
  196. package/lib/schemas/question/Renouvellement.json +0 -17
  197. package/lib/schemas/question/Signalement.json +0 -21
  198. package/lib/schemas/question/Texte.json +0 -24
  199. package/lib/schemas/scrutin/DecompteVoix.json +0 -35
  200. package/lib/schemas/scrutin/Dysfonctionnement.json +0 -50
  201. package/lib/schemas/scrutin/MiseAuPoint.json +0 -53
  202. package/lib/schemas/scrutin/OrganeVotant.json +0 -88
  203. package/lib/schemas/scrutin/Scrutin.json +0 -187
  204. package/lib/schemas/scrutin/Votant.json +0 -37
  205. package/lib/scripts/bugs_helper.d.ts +0 -13
  206. package/lib/scripts/bugs_helper.js +0 -595
  207. package/lib/scripts/bugs_helper.mjs +0 -251
  208. package/lib/scripts/clean_reorganized_data.js +0 -613
  209. package/lib/scripts/clean_reorganized_data.mjs +0 -276
  210. package/lib/scripts/diff_amendements.js +0 -249
  211. package/lib/scripts/diff_amendements.mjs +0 -202
  212. package/lib/scripts/document_dossiers_legislatifs.js +0 -655
  213. package/lib/scripts/document_dossiers_legislatifs.mjs +0 -414
  214. package/lib/scripts/get_today_reunions.js +0 -37
  215. package/lib/scripts/get_today_reunions.mjs +0 -31
  216. package/lib/scripts/merge_scrutins.js +0 -97
  217. package/lib/scripts/merge_scrutins.mjs +0 -47
  218. package/lib/scripts/parse_textes_lois.d.ts +0 -1
  219. package/lib/scripts/parse_textes_lois.js +0 -171
  220. package/lib/scripts/parse_textes_lois.mjs +0 -140
  221. package/lib/scripts/process_open_dataset.js +0 -301
  222. package/lib/scripts/process_open_dataset.mjs +0 -134
  223. package/lib/scripts/raw_types_from_amendements.js +0 -135
  224. package/lib/scripts/raw_types_from_amendements.mjs +0 -134
  225. package/lib/scripts/reorganize_data.js +0 -805
  226. package/lib/scripts/reorganize_data.mjs +0 -517
  227. package/lib/scripts/retrieve_deputes_photos.js +0 -310
  228. package/lib/scripts/retrieve_deputes_photos.mjs +0 -158
  229. package/lib/scripts/retrieve_documents.js +0 -547
  230. package/lib/scripts/retrieve_documents.mjs +0 -242
  231. package/lib/scripts/retrieve_open_data.js +0 -107
  232. package/lib/scripts/retrieve_open_data.mjs +0 -26
  233. package/lib/scripts/retrieve_pending_amendments.js +0 -206
  234. package/lib/scripts/retrieve_pending_amendments.mjs +0 -57
  235. package/lib/scripts/retrieve_senateurs_photos.js +0 -234
  236. package/lib/scripts/retrieve_senateurs_photos.mjs +0 -116
  237. package/lib/scripts/retrieve_textes_lois.d.ts +0 -1
  238. package/lib/scripts/retrieve_textes_lois.js +0 -240
  239. package/lib/scripts/retrieve_textes_lois.mjs +0 -85
  240. package/lib/scripts/shared/cli_helpers.js +0 -89
  241. package/lib/scripts/shared/cli_helpers.mjs +0 -81
  242. package/lib/scripts/test_iter_load.js +0 -155
  243. package/lib/scripts/test_iter_load.mjs +0 -72
  244. package/lib/scripts/test_load.js +0 -26
  245. package/lib/scripts/test_load.mjs +0 -16
  246. package/lib/scripts/test_load_big_files.js +0 -26
  247. package/lib/scripts/test_load_big_files.mjs +0 -16
  248. package/lib/scripts/validate_json.js +0 -353
  249. package/lib/scripts/validate_json.mjs +0 -184
  250. package/lib/shared_types/codes_actes.js +0 -231
  251. package/lib/shared_types/codes_actes.mjs +0 -224
  252. package/lib/strings.js +0 -16
  253. package/lib/strings.mjs +0 -7
  254. package/lib/types/acteurs_et_organes.js +0 -965
  255. package/lib/types/acteurs_et_organes.mjs +0 -906
  256. package/lib/types/agendas.js +0 -628
  257. package/lib/types/agendas.mjs +0 -575
  258. package/lib/types/amendements.js +0 -899
  259. package/lib/types/amendements.mjs +0 -842
  260. package/lib/types/debats.js +0 -619
  261. package/lib/types/debats.mjs +0 -562
  262. package/lib/types/dossiers_legislatifs.js +0 -1188
  263. package/lib/types/dossiers_legislatifs.mjs +0 -1130
  264. package/lib/types/legislatures.js +0 -17
  265. package/lib/types/legislatures.mjs +0 -10
  266. package/lib/types/questions.js +0 -454
  267. package/lib/types/questions.mjs +0 -401
  268. package/lib/types/scrutins.js +0 -556
  269. package/lib/types/scrutins.mjs +0 -503
  270. package/lib/urls.js +0 -325
  271. package/lib/urls.mjs +0 -258
  272. /package/lib/{bugs/acteur-00010/plugin.test.d.ts → scripts/add_links_to_documents.d.ts} +0 -0
  273. /package/lib/{bugs/agenda-00002/plugin.test.d.ts → scripts/copy-schemas.d.ts} +0 -0
  274. /package/lib/{bugs/agenda-00008/plugin.test.d.ts → scripts/generate-json-schemas.d.ts} +0 -0
@@ -1,340 +0,0 @@
1
- "use strict";
2
-
3
- require("core-js/modules/es.symbol.js");
4
- require("core-js/modules/es.symbol.description.js");
5
- require("core-js/modules/es.symbol.iterator.js");
6
- require("core-js/modules/es.array.from.js");
7
- require("core-js/modules/es.array.iterator.js");
8
- require("core-js/modules/es.array.slice.js");
9
- require("core-js/modules/es.date.to-string.js");
10
- require("core-js/modules/es.function.name.js");
11
- require("core-js/modules/es.object.define-property.js");
12
- require("core-js/modules/es.regexp.exec.js");
13
- require("core-js/modules/es.regexp.to-string.js");
14
- require("core-js/modules/es.string.iterator.js");
15
- require("core-js/modules/web.dom-collections.iterator.js");
16
- Object.defineProperty(exports, "__esModule", {
17
- value: true
18
- });
19
- exports.cleanScrutin = cleanScrutin;
20
- require("core-js/modules/es.array.filter.js");
21
- require("core-js/modules/es.array.is-array.js");
22
- require("core-js/modules/es.object.to-string.js");
23
- require("core-js/modules/es.object.values.js");
24
- var _assert = _interopRequireDefault(require("assert"));
25
- var _xml = require("./xml");
26
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
27
- function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
28
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
29
- function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
30
- function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
31
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
32
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
33
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
34
- function cleanDecompteNominatif(decompteNominatif) {
35
- (0, _xml.cleanXmlArtefacts)(decompteNominatif);
36
- var nonVotants = decompteNominatif.nonVotants;
37
- if (nonVotants === undefined) {
38
- nonVotants = decompteNominatif.nonVotant;
39
- delete decompteNominatif.nonVotant;
40
- } else {
41
- _assert["default"].strictEqual(decompteNominatif.nonVotant, undefined);
42
- }
43
- if (nonVotants !== undefined) {
44
- if (typeof nonVotants === "string") {
45
- _assert["default"].strictEqual(nonVotants, "0");
46
- nonVotants = [];
47
- } else if (!Array.isArray(nonVotants)) {
48
- (0, _assert["default"])(nonVotants);
49
- nonVotants = [nonVotants];
50
- }
51
- var nonVotantsArray = nonVotants;
52
- nonVotants = [];
53
- var _iterator = _createForOfIteratorHelper(nonVotantsArray),
54
- _step;
55
- try {
56
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
57
- var nonVotant = _step.value;
58
- if (nonVotant === null) {
59
- continue;
60
- }
61
- nonVotant = nonVotant.votant;
62
- if (Array.isArray(nonVotant)) {
63
- var _nonVotants;
64
- (_nonVotants = nonVotants).push.apply(_nonVotants, _toConsumableArray(nonVotant));
65
- } else {
66
- (0, _assert["default"])(nonVotant);
67
- nonVotants.push(nonVotant);
68
- }
69
- }
70
- } catch (err) {
71
- _iterator.e(err);
72
- } finally {
73
- _iterator.f();
74
- }
75
- if (nonVotants.length === 0) {
76
- delete decompteNominatif.nonVotants;
77
- } else {
78
- decompteNominatif.nonVotants = nonVotants;
79
- var _iterator2 = _createForOfIteratorHelper(nonVotants),
80
- _step2;
81
- try {
82
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
83
- var votant = _step2.value;
84
- cleanVotant(votant);
85
- }
86
- } catch (err) {
87
- _iterator2.e(err);
88
- } finally {
89
- _iterator2.f();
90
- }
91
- }
92
- }
93
- var pour = decompteNominatif.pour;
94
- if (pour === undefined) {
95
- pour = decompteNominatif.pours;
96
- delete decompteNominatif.pours;
97
- } else {
98
- _assert["default"].strictEqual(decompteNominatif.pours, undefined);
99
- }
100
- if (pour !== undefined) {
101
- pour = pour.votant;
102
- if (!Array.isArray(pour)) {
103
- (0, _assert["default"])(pour);
104
- pour = [pour];
105
- }
106
- if (pour.length === 0) {
107
- delete decompteNominatif.pour;
108
- } else {
109
- decompteNominatif.pour = pour;
110
- var _iterator3 = _createForOfIteratorHelper(pour),
111
- _step3;
112
- try {
113
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
114
- var _votant = _step3.value;
115
- cleanVotant(_votant);
116
- }
117
- } catch (err) {
118
- _iterator3.e(err);
119
- } finally {
120
- _iterator3.f();
121
- }
122
- }
123
- }
124
- var contre = decompteNominatif.contre;
125
- if (contre === undefined) {
126
- contre = decompteNominatif.contres;
127
- delete decompteNominatif.contres;
128
- } else {
129
- _assert["default"].strictEqual(decompteNominatif.contres, undefined);
130
- }
131
- if (contre !== undefined) {
132
- contre = contre.votant;
133
- if (!Array.isArray(contre)) {
134
- (0, _assert["default"])(contre);
135
- contre = [contre];
136
- }
137
- if (contre.length === 0) {
138
- delete decompteNominatif.contre;
139
- } else {
140
- decompteNominatif.contre = contre;
141
- var _iterator4 = _createForOfIteratorHelper(contre),
142
- _step4;
143
- try {
144
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
145
- var _votant2 = _step4.value;
146
- cleanVotant(_votant2);
147
- }
148
- } catch (err) {
149
- _iterator4.e(err);
150
- } finally {
151
- _iterator4.f();
152
- }
153
- }
154
- }
155
- var abstentions = decompteNominatif.abstentions;
156
- if (abstentions === undefined) {
157
- abstentions = decompteNominatif.abstention;
158
- delete decompteNominatif.abstention;
159
- } else {
160
- _assert["default"].strictEqual(decompteNominatif.abstention, undefined);
161
- }
162
- if (abstentions !== undefined) {
163
- if (!Array.isArray(abstentions)) {
164
- (0, _assert["default"])(abstentions);
165
- abstentions = [abstentions];
166
- }
167
- var abstentionsArray = abstentions;
168
- abstentions = [];
169
- var _iterator5 = _createForOfIteratorHelper(abstentionsArray),
170
- _step5;
171
- try {
172
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
173
- var absentionsItem = _step5.value;
174
- if (absentionsItem === null) {
175
- continue;
176
- }
177
- absentionsItem = absentionsItem.votant;
178
- if (Array.isArray(absentionsItem)) {
179
- var _abstentions;
180
- (_abstentions = abstentions).push.apply(_abstentions, _toConsumableArray(absentionsItem));
181
- } else {
182
- (0, _assert["default"])(absentionsItem);
183
- abstentions.push(absentionsItem);
184
- }
185
- }
186
- } catch (err) {
187
- _iterator5.e(err);
188
- } finally {
189
- _iterator5.f();
190
- }
191
- if (abstentions.length === 0) {
192
- delete decompteNominatif.abstentions;
193
- } else {
194
- decompteNominatif.abstentions = abstentions;
195
- var _iterator6 = _createForOfIteratorHelper(abstentions),
196
- _step6;
197
- try {
198
- for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
199
- var _votant3 = _step6.value;
200
- cleanVotant(_votant3);
201
- }
202
- } catch (err) {
203
- _iterator6.e(err);
204
- } finally {
205
- _iterator6.f();
206
- }
207
- }
208
- }
209
- var nonVotantsVolontaires = decompteNominatif.nonVotantsVolontaires;
210
- if (nonVotantsVolontaires !== undefined) {
211
- if (!Array.isArray(nonVotantsVolontaires)) {
212
- nonVotantsVolontaires = [nonVotantsVolontaires];
213
- }
214
- var nonVotantsVolontairesArray = nonVotantsVolontaires;
215
- nonVotantsVolontaires = [];
216
- var _iterator7 = _createForOfIteratorHelper(nonVotantsVolontairesArray),
217
- _step7;
218
- try {
219
- for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
220
- var _absentionsItem = _step7.value;
221
- if (_absentionsItem === null) {
222
- continue;
223
- }
224
- _absentionsItem = _absentionsItem.votant;
225
- if (Array.isArray(_absentionsItem)) {
226
- var _nonVotantsVolontaire;
227
- (_nonVotantsVolontaire = nonVotantsVolontaires).push.apply(_nonVotantsVolontaire, _toConsumableArray(_absentionsItem));
228
- } else {
229
- (0, _assert["default"])(_absentionsItem);
230
- nonVotantsVolontaires.push(_absentionsItem);
231
- }
232
- }
233
- } catch (err) {
234
- _iterator7.e(err);
235
- } finally {
236
- _iterator7.f();
237
- }
238
- if (nonVotantsVolontaires.length === 0) {
239
- delete decompteNominatif.nonVotantsVolontaires;
240
- } else {
241
- decompteNominatif.nonVotantsVolontaires = nonVotantsVolontaires;
242
- var _iterator8 = _createForOfIteratorHelper(nonVotantsVolontaires),
243
- _step8;
244
- try {
245
- for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
246
- var _votant4 = _step8.value;
247
- cleanVotant(_votant4);
248
- }
249
- } catch (err) {
250
- _iterator8.e(err);
251
- } finally {
252
- _iterator8.f();
253
- }
254
- }
255
- }
256
- }
257
- function cleanScrutin(scrutin) {
258
- (0, _xml.cleanXmlArtefacts)(scrutin);
259
- var demandeur = scrutin.demandeur;
260
- (0, _assert["default"])(demandeur);
261
- {
262
- (0, _xml.cleanXmlArtefacts)(demandeur);
263
- _assert["default"].strictEqual(demandeur.referenceLegislative, undefined);
264
- }
265
- var objet = scrutin.objet;
266
- (0, _assert["default"])(objet);
267
- {
268
- (0, _xml.cleanXmlArtefacts)(objet);
269
- _assert["default"].strictEqual(objet.referenceLegislative, undefined);
270
- }
271
- var ventilationVotes = scrutin.ventilationVotes;
272
- (0, _assert["default"])(ventilationVotes);
273
- {
274
- ventilationVotes = ventilationVotes.organe;
275
- (0, _assert["default"])(ventilationVotes);
276
- var groupes = ventilationVotes.groupes;
277
- (0, _assert["default"])(groupes);
278
- {
279
- groupes = groupes.groupe;
280
- (0, _assert["default"])(Array.isArray(groupes));
281
- var _iterator9 = _createForOfIteratorHelper(groupes),
282
- _step9;
283
- try {
284
- for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
285
- var groupe = _step9.value;
286
- var vote = groupe.vote;
287
- (0, _assert["default"])(vote);
288
- {
289
- var decompteVoix = vote.decompteVoix;
290
- (0, _assert["default"])(decompteVoix);
291
- {
292
- if (decompteVoix.abstention !== undefined) {
293
- _assert["default"].strictEqual(decompteVoix.abstentions, undefined);
294
- decompteVoix.abstentions = decompteVoix.abstention;
295
- delete decompteVoix.abstention;
296
- }
297
- if (decompteVoix.nonVotant !== undefined) {
298
- _assert["default"].strictEqual(decompteVoix.nonVotants, undefined);
299
- decompteVoix.nonVotants = decompteVoix.nonVotant;
300
- delete decompteVoix.nonVotant;
301
- }
302
- }
303
- var decompteNominatif = vote.decompteNominatif;
304
- (0, _assert["default"])(decompteNominatif);
305
- cleanDecompteNominatif(decompteNominatif);
306
- }
307
- }
308
- } catch (err) {
309
- _iterator9.e(err);
310
- } finally {
311
- _iterator9.f();
312
- }
313
- ventilationVotes.groupes = groupes;
314
- }
315
- scrutin.ventilationVotes = ventilationVotes;
316
- }
317
- var miseAuPoint = scrutin.miseAuPoint;
318
- if (miseAuPoint !== undefined) {
319
- cleanDecompteNominatif(miseAuPoint);
320
- var dysfonctionnement = miseAuPoint.dysfonctionnement;
321
- if (dysfonctionnement !== undefined) {
322
- cleanDecompteNominatif(dysfonctionnement);
323
- if (Object.values(dysfonctionnement).filter(function (value) {
324
- return value !== undefined;
325
- }).length === 0) {
326
- delete miseAuPoint.dysfonctionnement;
327
- }
328
- }
329
- if (Object.values(miseAuPoint).filter(function (value) {
330
- return value !== undefined;
331
- }).length === 0) {
332
- delete scrutin.miseAuPoint;
333
- }
334
- }
335
- }
336
- function cleanVotant(votant) {
337
- (0, _xml.cleanBooleanAttribute)(votant, "parDelegation");
338
- (0, _xml.cleanIntegerAttribute)(votant, "numPlace");
339
- }
340
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfeG1sIiwiZSIsIl9fZXNNb2R1bGUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIlR5cGVFcnJvciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJmcm9tIiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5IiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJ0IiwibGVuZ3RoIiwiX24iLCJGIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJmIiwibyIsImEiLCJ1IiwiY2FsbCIsIm5leHQiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsImNsZWFuRGVjb21wdGVOb21pbmF0aWYiLCJkZWNvbXB0ZU5vbWluYXRpZiIsImNsZWFuWG1sQXJ0ZWZhY3RzIiwibm9uVm90YW50cyIsInVuZGVmaW5lZCIsIm5vblZvdGFudCIsImFzc2VydCIsInN0cmljdEVxdWFsIiwibm9uVm90YW50c0FycmF5IiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJ2b3RhbnQiLCJfbm9uVm90YW50cyIsInB1c2giLCJhcHBseSIsImVyciIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJjbGVhblZvdGFudCIsInBvdXIiLCJwb3VycyIsIl9pdGVyYXRvcjMiLCJfc3RlcDMiLCJjb250cmUiLCJjb250cmVzIiwiX2l0ZXJhdG9yNCIsIl9zdGVwNCIsImFic3RlbnRpb25zIiwiYWJzdGVudGlvbiIsImFic3RlbnRpb25zQXJyYXkiLCJfaXRlcmF0b3I1IiwiX3N0ZXA1IiwiYWJzZW50aW9uc0l0ZW0iLCJfYWJzdGVudGlvbnMiLCJfaXRlcmF0b3I2IiwiX3N0ZXA2Iiwibm9uVm90YW50c1ZvbG9udGFpcmVzIiwibm9uVm90YW50c1ZvbG9udGFpcmVzQXJyYXkiLCJfaXRlcmF0b3I3IiwiX3N0ZXA3IiwiX25vblZvdGFudHNWb2xvbnRhaXJlIiwiX2l0ZXJhdG9yOCIsIl9zdGVwOCIsImNsZWFuU2NydXRpbiIsInNjcnV0aW4iLCJkZW1hbmRldXIiLCJyZWZlcmVuY2VMZWdpc2xhdGl2ZSIsIm9iamV0IiwidmVudGlsYXRpb25Wb3RlcyIsIm9yZ2FuZSIsImdyb3VwZXMiLCJncm91cGUiLCJfaXRlcmF0b3I5IiwiX3N0ZXA5Iiwidm90ZSIsImRlY29tcHRlVm9peCIsIm1pc2VBdVBvaW50IiwiZHlzZm9uY3Rpb25uZW1lbnQiLCJPYmplY3QiLCJ2YWx1ZXMiLCJmaWx0ZXIiLCJjbGVhbkJvb2xlYW5BdHRyaWJ1dGUiLCJjbGVhbkludGVnZXJBdHRyaWJ1dGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xlYW5lcnMvc2NydXRpbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcblxuaW1wb3J0IHtcbiAgY2xlYW5Cb29sZWFuQXR0cmlidXRlLFxuICBjbGVhbkludGVnZXJBdHRyaWJ1dGUsXG4gIGNsZWFuWG1sQXJ0ZWZhY3RzLFxufSBmcm9tIFwiLi94bWxcIlxuXG5mdW5jdGlvbiBjbGVhbkRlY29tcHRlTm9taW5hdGlmKGRlY29tcHRlTm9taW5hdGlmOiBhbnkpIHtcbiAgY2xlYW5YbWxBcnRlZmFjdHMoZGVjb21wdGVOb21pbmF0aWYpXG5cbiAgbGV0IG5vblZvdGFudHMgPSBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzXG4gIGlmIChub25Wb3RhbnRzID09PSB1bmRlZmluZWQpIHtcbiAgICBub25Wb3RhbnRzID0gZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50XG4gICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudFxuICB9IGVsc2Uge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnQsIHVuZGVmaW5lZClcbiAgfVxuICBpZiAobm9uVm90YW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHR5cGVvZiBub25Wb3RhbnRzID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwobm9uVm90YW50cywgXCIwXCIpXG4gICAgICBub25Wb3RhbnRzID0gW11cbiAgICB9IGVsc2UgaWYgKCFBcnJheS5pc0FycmF5KG5vblZvdGFudHMpKSB7XG4gICAgICBhc3NlcnQobm9uVm90YW50cylcbiAgICAgIG5vblZvdGFudHMgPSBbbm9uVm90YW50c11cbiAgICB9XG4gICAgY29uc3Qgbm9uVm90YW50c0FycmF5ID0gbm9uVm90YW50c1xuICAgIG5vblZvdGFudHMgPSBbXVxuICAgIGZvciAobGV0IG5vblZvdGFudCBvZiBub25Wb3RhbnRzQXJyYXkpIHtcbiAgICAgIGlmIChub25Wb3RhbnQgPT09IG51bGwpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIG5vblZvdGFudCA9IG5vblZvdGFudC52b3RhbnRcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG5vblZvdGFudCkpIHtcbiAgICAgICAgbm9uVm90YW50cy5wdXNoKC4uLm5vblZvdGFudClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFzc2VydChub25Wb3RhbnQpXG4gICAgICAgIG5vblZvdGFudHMucHVzaChub25Wb3RhbnQpXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChub25Wb3RhbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudHNcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50cyA9IG5vblZvdGFudHNcbiAgICAgIGZvciAoY29uc3Qgdm90YW50IG9mIG5vblZvdGFudHMpIHtcbiAgICAgICAgY2xlYW5Wb3RhbnQodm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCBwb3VyID0gZGVjb21wdGVOb21pbmF0aWYucG91clxuICBpZiAocG91ciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcG91ciA9IGRlY29tcHRlTm9taW5hdGlmLnBvdXJzXG4gICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLnBvdXJzXG4gIH0gZWxzZSB7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRlY29tcHRlTm9taW5hdGlmLnBvdXJzLCB1bmRlZmluZWQpXG4gIH1cbiAgaWYgKHBvdXIgIT09IHVuZGVmaW5lZCkge1xuICAgIHBvdXIgPSBwb3VyLnZvdGFudFxuICAgIGlmICghQXJyYXkuaXNBcnJheShwb3VyKSkge1xuICAgICAgYXNzZXJ0KHBvdXIpXG4gICAgICBwb3VyID0gW3BvdXJdXG4gICAgfVxuICAgIGlmIChwb3VyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLnBvdXJcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb21wdGVOb21pbmF0aWYucG91ciA9IHBvdXJcbiAgICAgIGZvciAoY29uc3Qgdm90YW50IG9mIHBvdXIpIHtcbiAgICAgICAgY2xlYW5Wb3RhbnQodm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCBjb250cmUgPSBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVcbiAgaWYgKGNvbnRyZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY29udHJlID0gZGVjb21wdGVOb21pbmF0aWYuY29udHJlc1xuICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVzXG4gIH0gZWxzZSB7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRlY29tcHRlTm9taW5hdGlmLmNvbnRyZXMsIHVuZGVmaW5lZClcbiAgfVxuICBpZiAoY29udHJlICE9PSB1bmRlZmluZWQpIHtcbiAgICBjb250cmUgPSBjb250cmUudm90YW50XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGNvbnRyZSkpIHtcbiAgICAgIGFzc2VydChjb250cmUpXG4gICAgICBjb250cmUgPSBbY29udHJlXVxuICAgIH1cbiAgICBpZiAoY29udHJlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLmNvbnRyZVxuICAgIH0gZWxzZSB7XG4gICAgICBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmUgPSBjb250cmVcbiAgICAgIGZvciAoY29uc3Qgdm90YW50IG9mIGNvbnRyZSkge1xuICAgICAgICBjbGVhblZvdGFudCh2b3RhbnQpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGV0IGFic3RlbnRpb25zID0gZGVjb21wdGVOb21pbmF0aWYuYWJzdGVudGlvbnNcbiAgaWYgKGFic3RlbnRpb25zID09PSB1bmRlZmluZWQpIHtcbiAgICBhYnN0ZW50aW9ucyA9IGRlY29tcHRlTm9taW5hdGlmLmFic3RlbnRpb25cbiAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYuYWJzdGVudGlvblxuICB9IGVsc2Uge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWNvbXB0ZU5vbWluYXRpZi5hYnN0ZW50aW9uLCB1bmRlZmluZWQpXG4gIH1cbiAgaWYgKGFic3RlbnRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYWJzdGVudGlvbnMpKSB7XG4gICAgICBhc3NlcnQoYWJzdGVudGlvbnMpXG4gICAgICBhYnN0ZW50aW9ucyA9IFthYnN0ZW50aW9uc11cbiAgICB9XG4gICAgY29uc3QgYWJzdGVudGlvbnNBcnJheSA9IGFic3RlbnRpb25zXG4gICAgYWJzdGVudGlvbnMgPSBbXVxuICAgIGZvciAobGV0IGFic2VudGlvbnNJdGVtIG9mIGFic3RlbnRpb25zQXJyYXkpIHtcbiAgICAgIGlmIChhYnNlbnRpb25zSXRlbSA9PT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgYWJzZW50aW9uc0l0ZW0gPSBhYnNlbnRpb25zSXRlbS52b3RhbnRcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGFic2VudGlvbnNJdGVtKSkge1xuICAgICAgICBhYnN0ZW50aW9ucy5wdXNoKC4uLmFic2VudGlvbnNJdGVtKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXNzZXJ0KGFic2VudGlvbnNJdGVtKVxuICAgICAgICBhYnN0ZW50aW9ucy5wdXNoKGFic2VudGlvbnNJdGVtKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoYWJzdGVudGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYuYWJzdGVudGlvbnNcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb21wdGVOb21pbmF0aWYuYWJzdGVudGlvbnMgPSBhYnN0ZW50aW9uc1xuICAgICAgZm9yIChjb25zdCB2b3RhbnQgb2YgYWJzdGVudGlvbnMpIHtcbiAgICAgICAgY2xlYW5Wb3RhbnQodm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCBub25Wb3RhbnRzVm9sb250YWlyZXMgPSBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzVm9sb250YWlyZXNcbiAgaWYgKG5vblZvdGFudHNWb2xvbnRhaXJlcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG5vblZvdGFudHNWb2xvbnRhaXJlcykpIHtcbiAgICAgIG5vblZvdGFudHNWb2xvbnRhaXJlcyA9IFtub25Wb3RhbnRzVm9sb250YWlyZXNdXG4gICAgfVxuICAgIGNvbnN0IG5vblZvdGFudHNWb2xvbnRhaXJlc0FycmF5ID0gbm9uVm90YW50c1ZvbG9udGFpcmVzXG4gICAgbm9uVm90YW50c1ZvbG9udGFpcmVzID0gW11cbiAgICBmb3IgKGxldCBhYnNlbnRpb25zSXRlbSBvZiBub25Wb3RhbnRzVm9sb250YWlyZXNBcnJheSkge1xuICAgICAgaWYgKGFic2VudGlvbnNJdGVtID09PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBhYnNlbnRpb25zSXRlbSA9IGFic2VudGlvbnNJdGVtLnZvdGFudFxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYWJzZW50aW9uc0l0ZW0pKSB7XG4gICAgICAgIG5vblZvdGFudHNWb2xvbnRhaXJlcy5wdXNoKC4uLmFic2VudGlvbnNJdGVtKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXNzZXJ0KGFic2VudGlvbnNJdGVtKVxuICAgICAgICBub25Wb3RhbnRzVm9sb250YWlyZXMucHVzaChhYnNlbnRpb25zSXRlbSlcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5vblZvdGFudHNWb2xvbnRhaXJlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzVm9sb250YWlyZXNcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50c1ZvbG9udGFpcmVzID0gbm9uVm90YW50c1ZvbG9udGFpcmVzXG4gICAgICBmb3IgKGNvbnN0IHZvdGFudCBvZiBub25Wb3RhbnRzVm9sb250YWlyZXMpIHtcbiAgICAgICAgY2xlYW5Wb3RhbnQodm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYW5TY3J1dGluKHNjcnV0aW46IGFueSk6IHZvaWQge1xuICBjbGVhblhtbEFydGVmYWN0cyhzY3J1dGluKVxuXG4gIGNvbnN0IGRlbWFuZGV1ciA9IHNjcnV0aW4uZGVtYW5kZXVyXG4gIGFzc2VydChkZW1hbmRldXIpXG4gIHtcbiAgICBjbGVhblhtbEFydGVmYWN0cyhkZW1hbmRldXIpXG5cbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVtYW5kZXVyLnJlZmVyZW5jZUxlZ2lzbGF0aXZlLCB1bmRlZmluZWQpXG4gIH1cblxuICBjb25zdCBvYmpldCA9IHNjcnV0aW4ub2JqZXRcbiAgYXNzZXJ0KG9iamV0KVxuICB7XG4gICAgY2xlYW5YbWxBcnRlZmFjdHMob2JqZXQpXG5cbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwob2JqZXQucmVmZXJlbmNlTGVnaXNsYXRpdmUsIHVuZGVmaW5lZClcbiAgfVxuXG4gIGxldCB2ZW50aWxhdGlvblZvdGVzID0gc2NydXRpbi52ZW50aWxhdGlvblZvdGVzXG4gIGFzc2VydCh2ZW50aWxhdGlvblZvdGVzKVxuICB7XG4gICAgdmVudGlsYXRpb25Wb3RlcyA9IHZlbnRpbGF0aW9uVm90ZXMub3JnYW5lXG4gICAgYXNzZXJ0KHZlbnRpbGF0aW9uVm90ZXMpXG5cbiAgICBsZXQgZ3JvdXBlcyA9IHZlbnRpbGF0aW9uVm90ZXMuZ3JvdXBlc1xuICAgIGFzc2VydChncm91cGVzKVxuICAgIHtcbiAgICAgIGdyb3VwZXMgPSBncm91cGVzLmdyb3VwZVxuICAgICAgYXNzZXJ0KEFycmF5LmlzQXJyYXkoZ3JvdXBlcykpXG4gICAgICBmb3IgKGNvbnN0IGdyb3VwZSBvZiBncm91cGVzKSB7XG4gICAgICAgIGNvbnN0IHZvdGUgPSBncm91cGUudm90ZVxuICAgICAgICBhc3NlcnQodm90ZSlcbiAgICAgICAge1xuICAgICAgICAgIGNvbnN0IGRlY29tcHRlVm9peCA9IHZvdGUuZGVjb21wdGVWb2l4XG4gICAgICAgICAgYXNzZXJ0KGRlY29tcHRlVm9peClcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZiAoZGVjb21wdGVWb2l4LmFic3RlbnRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVjb21wdGVWb2l4LmFic3RlbnRpb25zLCB1bmRlZmluZWQpXG4gICAgICAgICAgICAgIGRlY29tcHRlVm9peC5hYnN0ZW50aW9ucyA9IGRlY29tcHRlVm9peC5hYnN0ZW50aW9uXG4gICAgICAgICAgICAgIGRlbGV0ZSBkZWNvbXB0ZVZvaXguYWJzdGVudGlvblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZGVjb21wdGVWb2l4Lm5vblZvdGFudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWNvbXB0ZVZvaXgubm9uVm90YW50cywgdW5kZWZpbmVkKVxuICAgICAgICAgICAgICBkZWNvbXB0ZVZvaXgubm9uVm90YW50cyA9IGRlY29tcHRlVm9peC5ub25Wb3RhbnRcbiAgICAgICAgICAgICAgZGVsZXRlIGRlY29tcHRlVm9peC5ub25Wb3RhbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBkZWNvbXB0ZU5vbWluYXRpZiA9IHZvdGUuZGVjb21wdGVOb21pbmF0aWZcbiAgICAgICAgICBhc3NlcnQoZGVjb21wdGVOb21pbmF0aWYpXG4gICAgICAgICAgY2xlYW5EZWNvbXB0ZU5vbWluYXRpZihkZWNvbXB0ZU5vbWluYXRpZilcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdmVudGlsYXRpb25Wb3Rlcy5ncm91cGVzID0gZ3JvdXBlc1xuICAgIH1cblxuICAgIHNjcnV0aW4udmVudGlsYXRpb25Wb3RlcyA9IHZlbnRpbGF0aW9uVm90ZXNcbiAgfVxuXG4gIGNvbnN0IG1pc2VBdVBvaW50ID0gc2NydXRpbi5taXNlQXVQb2ludFxuICBpZiAobWlzZUF1UG9pbnQgIT09IHVuZGVmaW5lZCkge1xuICAgIGNsZWFuRGVjb21wdGVOb21pbmF0aWYobWlzZUF1UG9pbnQpXG5cbiAgICBsZXQgZHlzZm9uY3Rpb25uZW1lbnQgPSBtaXNlQXVQb2ludC5keXNmb25jdGlvbm5lbWVudFxuICAgIGlmIChkeXNmb25jdGlvbm5lbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjbGVhbkRlY29tcHRlTm9taW5hdGlmKGR5c2ZvbmN0aW9ubmVtZW50KVxuICAgICAgaWYgKFxuICAgICAgICBPYmplY3QudmFsdWVzKGR5c2ZvbmN0aW9ubmVtZW50KS5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIC5sZW5ndGggPT09IDBcbiAgICAgICkge1xuICAgICAgICBkZWxldGUgbWlzZUF1UG9pbnQuZHlzZm9uY3Rpb25uZW1lbnRcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBPYmplY3QudmFsdWVzKG1pc2VBdVBvaW50KS5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAubGVuZ3RoID09PSAwXG4gICAgKSB7XG4gICAgICBkZWxldGUgc2NydXRpbi5taXNlQXVQb2ludFxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjbGVhblZvdGFudCh2b3RhbnQ6IGFueSkge1xuICBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUodm90YW50LCBcInBhckRlbGVnYXRpb25cIilcbiAgY2xlYW5JbnRlZ2VyQXR0cmlidXRlKHZvdGFudCwgXCJudW1QbGFjZVwiKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLElBQUEsR0FBQUQsT0FBQTtBQUljLFNBQUFELHVCQUFBRyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsZ0JBQUFBLENBQUE7QUFBQSxTQUFBRSxtQkFBQUMsQ0FBQSxXQUFBQyxrQkFBQSxDQUFBRCxDQUFBLEtBQUFFLGdCQUFBLENBQUFGLENBQUEsS0FBQUcsMkJBQUEsQ0FBQUgsQ0FBQSxLQUFBSSxrQkFBQTtBQUFBLFNBQUFBLG1CQUFBLGNBQUFDLFNBQUE7QUFBQSxTQUFBSCxpQkFBQUYsQ0FBQSw4QkFBQU0sTUFBQSxZQUFBTixDQUFBLENBQUFNLE1BQUEsQ0FBQUMsUUFBQSxhQUFBUCxDQUFBLHVCQUFBUSxLQUFBLENBQUFDLElBQUEsQ0FBQVQsQ0FBQTtBQUFBLFNBQUFDLG1CQUFBRCxDQUFBLFFBQUFRLEtBQUEsQ0FBQUUsT0FBQSxDQUFBVixDQUFBLFVBQUFXLGlCQUFBLENBQUFYLENBQUE7QUFBQSxTQUFBWSwyQkFBQVosQ0FBQSxFQUFBSCxDQUFBLFFBQUFnQixDQUFBLHlCQUFBUCxNQUFBLElBQUFOLENBQUEsQ0FBQU0sTUFBQSxDQUFBQyxR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LFNBQVMsQ0FBQztnQkFDdERtRCxZQUFZLENBQUNwRCxVQUFVLEdBQUdvRCxZQUFZLENBQUNsRCxTQUFTO2dCQUNoRCxPQUFPa0QsWUFBWSxDQUFDbEQsU0FBUztjQUMvQjtZQUNGO1lBRUEsSUFBTUosaUJBQWlCLEdBQUdxRCxJQUFJLENBQUNyRCxpQkFBaUI7WUFDaEQsSUFBQUssa0JBQU0sRUFBQ0wsaUJBQWlCLENBQUM7WUFDekJELHNCQUFzQixDQUFDQyxpQkFBaUIsQ0FBQztVQUMzQztRQUNGO01BQUMsU0FBQWMsR0FBQTtRQUFBcUMsVUFBQSxDQUFBdkYsQ0FBQSxDQUFBa0QsR0FBQTtNQUFBO1FBQUFxQyxVQUFBLENBQUEvRCxDQUFBO01BQUE7TUFDRDJELGdCQUFnQixDQUFDRSxPQUFPLEdBQUdBLE9BQU87SUFDcEM7SUFFQU4sT0FBTyxDQUFDSSxnQkFBZ0IsR0FBR0EsZ0JBQWdCO0VBQzdDO0VBRUEsSUFBTVEsV0FBVyxHQUFHWixPQUFPLENBQUNZLFdBQVc7RUFDdkMsSUFBSUEsV0FBVyxLQUFLcEQsU0FBUyxFQUFFO0lBQzdCSixzQkFBc0IsQ0FBQ3dELFdBQVcsQ0FBQztJQUVuQyxJQUFJQyxpQkFBaUIsR0FBR0QsV0FBVyxDQUFDQyxpQkFBaUI7SUFDckQsSUFBSUEsaUJBQWlCLEtBQUtyRCxTQUFTLEVBQUU7TUFDbkNKLHNCQUFzQixDQUFDeUQsaUJBQWlCLENBQUM7TUFDekMsSUFDRUMsTUFBTSxDQUFDQyxNQUFNLENBQUNGLGlCQUFpQixDQUFDLENBQUNHLE1BQU0sQ0FBQyxVQUFDeEUsS0FBSztRQUFBLE9BQUtBLEtBQUssS0FBS2dCLFNBQVM7TUFBQSxFQUFDLENBQ3BFdEIsTUFBTSxLQUFLLENBQUMsRUFDZjtRQUNBLE9BQU8wRSxXQUFXLENBQUNDLGlCQUFpQjtNQUN0QztJQUNGO0lBRUEsSUFDRUMsTUFBTSxDQUFDQyxNQUFNLENBQUNILFdBQVcsQ0FBQyxDQUFDSSxNQUFNLENBQUMsVUFBQ3hFLEtBQUs7TUFBQSxPQUFLQSxLQUFLLEtBQUtnQixTQUFTO0lBQUEsRUFBQyxDQUM5RHRCLE1BQU0sS0FBSyxDQUFDLEVBQ2Y7TUFDQSxPQUFPOEQsT0FBTyxDQUFDWSxXQUFXO0lBQzVCO0VBQ0Y7QUFDRjtBQUVBLFNBQVN0QyxXQUFXQSxDQUFDUCxNQUFXLEVBQUU7RUFDaEMsSUFBQWtELDBCQUFxQixFQUFDbEQsTUFBTSxFQUFFLGVBQWUsQ0FBQztFQUM5QyxJQUFBbUQsMEJBQXFCLEVBQUNuRCxNQUFNLEVBQUUsVUFBVSxDQUFDO0FBQzNDIiwiaWdub3JlTGlzdCI6W119
@@ -1,221 +0,0 @@
1
- import assert from "assert";
2
- import { cleanBooleanAttribute, cleanIntegerAttribute, cleanXmlArtefacts } from "./xml.mjs";
3
- function cleanDecompteNominatif(decompteNominatif) {
4
- cleanXmlArtefacts(decompteNominatif);
5
- let nonVotants = decompteNominatif.nonVotants;
6
- if (nonVotants === undefined) {
7
- nonVotants = decompteNominatif.nonVotant;
8
- delete decompteNominatif.nonVotant;
9
- } else {
10
- assert.strictEqual(decompteNominatif.nonVotant, undefined);
11
- }
12
- if (nonVotants !== undefined) {
13
- if (typeof nonVotants === "string") {
14
- assert.strictEqual(nonVotants, "0");
15
- nonVotants = [];
16
- } else if (!Array.isArray(nonVotants)) {
17
- assert(nonVotants);
18
- nonVotants = [nonVotants];
19
- }
20
- const nonVotantsArray = nonVotants;
21
- nonVotants = [];
22
- for (let nonVotant of nonVotantsArray) {
23
- if (nonVotant === null) {
24
- continue;
25
- }
26
- nonVotant = nonVotant.votant;
27
- if (Array.isArray(nonVotant)) {
28
- nonVotants.push(...nonVotant);
29
- } else {
30
- assert(nonVotant);
31
- nonVotants.push(nonVotant);
32
- }
33
- }
34
- if (nonVotants.length === 0) {
35
- delete decompteNominatif.nonVotants;
36
- } else {
37
- decompteNominatif.nonVotants = nonVotants;
38
- for (const votant of nonVotants) {
39
- cleanVotant(votant);
40
- }
41
- }
42
- }
43
- let pour = decompteNominatif.pour;
44
- if (pour === undefined) {
45
- pour = decompteNominatif.pours;
46
- delete decompteNominatif.pours;
47
- } else {
48
- assert.strictEqual(decompteNominatif.pours, undefined);
49
- }
50
- if (pour !== undefined) {
51
- pour = pour.votant;
52
- if (!Array.isArray(pour)) {
53
- assert(pour);
54
- pour = [pour];
55
- }
56
- if (pour.length === 0) {
57
- delete decompteNominatif.pour;
58
- } else {
59
- decompteNominatif.pour = pour;
60
- for (const votant of pour) {
61
- cleanVotant(votant);
62
- }
63
- }
64
- }
65
- let contre = decompteNominatif.contre;
66
- if (contre === undefined) {
67
- contre = decompteNominatif.contres;
68
- delete decompteNominatif.contres;
69
- } else {
70
- assert.strictEqual(decompteNominatif.contres, undefined);
71
- }
72
- if (contre !== undefined) {
73
- contre = contre.votant;
74
- if (!Array.isArray(contre)) {
75
- assert(contre);
76
- contre = [contre];
77
- }
78
- if (contre.length === 0) {
79
- delete decompteNominatif.contre;
80
- } else {
81
- decompteNominatif.contre = contre;
82
- for (const votant of contre) {
83
- cleanVotant(votant);
84
- }
85
- }
86
- }
87
- let abstentions = decompteNominatif.abstentions;
88
- if (abstentions === undefined) {
89
- abstentions = decompteNominatif.abstention;
90
- delete decompteNominatif.abstention;
91
- } else {
92
- assert.strictEqual(decompteNominatif.abstention, undefined);
93
- }
94
- if (abstentions !== undefined) {
95
- if (!Array.isArray(abstentions)) {
96
- assert(abstentions);
97
- abstentions = [abstentions];
98
- }
99
- const abstentionsArray = abstentions;
100
- abstentions = [];
101
- for (let absentionsItem of abstentionsArray) {
102
- if (absentionsItem === null) {
103
- continue;
104
- }
105
- absentionsItem = absentionsItem.votant;
106
- if (Array.isArray(absentionsItem)) {
107
- abstentions.push(...absentionsItem);
108
- } else {
109
- assert(absentionsItem);
110
- abstentions.push(absentionsItem);
111
- }
112
- }
113
- if (abstentions.length === 0) {
114
- delete decompteNominatif.abstentions;
115
- } else {
116
- decompteNominatif.abstentions = abstentions;
117
- for (const votant of abstentions) {
118
- cleanVotant(votant);
119
- }
120
- }
121
- }
122
- let nonVotantsVolontaires = decompteNominatif.nonVotantsVolontaires;
123
- if (nonVotantsVolontaires !== undefined) {
124
- if (!Array.isArray(nonVotantsVolontaires)) {
125
- nonVotantsVolontaires = [nonVotantsVolontaires];
126
- }
127
- const nonVotantsVolontairesArray = nonVotantsVolontaires;
128
- nonVotantsVolontaires = [];
129
- for (let absentionsItem of nonVotantsVolontairesArray) {
130
- if (absentionsItem === null) {
131
- continue;
132
- }
133
- absentionsItem = absentionsItem.votant;
134
- if (Array.isArray(absentionsItem)) {
135
- nonVotantsVolontaires.push(...absentionsItem);
136
- } else {
137
- assert(absentionsItem);
138
- nonVotantsVolontaires.push(absentionsItem);
139
- }
140
- }
141
- if (nonVotantsVolontaires.length === 0) {
142
- delete decompteNominatif.nonVotantsVolontaires;
143
- } else {
144
- decompteNominatif.nonVotantsVolontaires = nonVotantsVolontaires;
145
- for (const votant of nonVotantsVolontaires) {
146
- cleanVotant(votant);
147
- }
148
- }
149
- }
150
- }
151
- export function cleanScrutin(scrutin) {
152
- cleanXmlArtefacts(scrutin);
153
- const demandeur = scrutin.demandeur;
154
- assert(demandeur);
155
- {
156
- cleanXmlArtefacts(demandeur);
157
- assert.strictEqual(demandeur.referenceLegislative, undefined);
158
- }
159
- const objet = scrutin.objet;
160
- assert(objet);
161
- {
162
- cleanXmlArtefacts(objet);
163
- assert.strictEqual(objet.referenceLegislative, undefined);
164
- }
165
- let ventilationVotes = scrutin.ventilationVotes;
166
- assert(ventilationVotes);
167
- {
168
- ventilationVotes = ventilationVotes.organe;
169
- assert(ventilationVotes);
170
- let groupes = ventilationVotes.groupes;
171
- assert(groupes);
172
- {
173
- groupes = groupes.groupe;
174
- assert(Array.isArray(groupes));
175
- for (const groupe of groupes) {
176
- const vote = groupe.vote;
177
- assert(vote);
178
- {
179
- const decompteVoix = vote.decompteVoix;
180
- assert(decompteVoix);
181
- {
182
- if (decompteVoix.abstention !== undefined) {
183
- assert.strictEqual(decompteVoix.abstentions, undefined);
184
- decompteVoix.abstentions = decompteVoix.abstention;
185
- delete decompteVoix.abstention;
186
- }
187
- if (decompteVoix.nonVotant !== undefined) {
188
- assert.strictEqual(decompteVoix.nonVotants, undefined);
189
- decompteVoix.nonVotants = decompteVoix.nonVotant;
190
- delete decompteVoix.nonVotant;
191
- }
192
- }
193
- const decompteNominatif = vote.decompteNominatif;
194
- assert(decompteNominatif);
195
- cleanDecompteNominatif(decompteNominatif);
196
- }
197
- }
198
- ventilationVotes.groupes = groupes;
199
- }
200
- scrutin.ventilationVotes = ventilationVotes;
201
- }
202
- const miseAuPoint = scrutin.miseAuPoint;
203
- if (miseAuPoint !== undefined) {
204
- cleanDecompteNominatif(miseAuPoint);
205
- let dysfonctionnement = miseAuPoint.dysfonctionnement;
206
- if (dysfonctionnement !== undefined) {
207
- cleanDecompteNominatif(dysfonctionnement);
208
- if (Object.values(dysfonctionnement).filter(value => value !== undefined).length === 0) {
209
- delete miseAuPoint.dysfonctionnement;
210
- }
211
- }
212
- if (Object.values(miseAuPoint).filter(value => value !== undefined).length === 0) {
213
- delete scrutin.miseAuPoint;
214
- }
215
- }
216
- }
217
- function cleanVotant(votant) {
218
- cleanBooleanAttribute(votant, "parDelegation");
219
- cleanIntegerAttribute(votant, "numPlace");
220
- }
221
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjbGVhbkJvb2xlYW5BdHRyaWJ1dGUiLCJjbGVhbkludGVnZXJBdHRyaWJ1dGUiLCJjbGVhblhtbEFydGVmYWN0cyIsImNsZWFuRGVjb21wdGVOb21pbmF0aWYiLCJkZWNvbXB0ZU5vbWluYXRpZiIsIm5vblZvdGFudHMiLCJ1bmRlZmluZWQiLCJub25Wb3RhbnQiLCJzdHJpY3RFcXVhbCIsIkFycmF5IiwiaXNBcnJheSIsIm5vblZvdGFudHNBcnJheSIsInZvdGFudCIsInB1c2giLCJsZW5ndGgiLCJjbGVhblZvdGFudCIsInBvdXIiLCJwb3VycyIsImNvbnRyZSIsImNvbnRyZXMiLCJhYnN0ZW50aW9ucyIsImFic3RlbnRpb24iLCJhYnN0ZW50aW9uc0FycmF5IiwiYWJzZW50aW9uc0l0ZW0iLCJub25Wb3RhbnRzVm9sb250YWlyZXMiLCJub25Wb3RhbnRzVm9sb250YWlyZXNBcnJheSIsImNsZWFuU2NydXRpbiIsInNjcnV0aW4iLCJkZW1hbmRldXIiLCJyZWZlcmVuY2VMZWdpc2xhdGl2ZSIsIm9iamV0IiwidmVudGlsYXRpb25Wb3RlcyIsIm9yZ2FuZSIsImdyb3VwZXMiLCJncm91cGUiLCJ2b3RlIiwiZGVjb21wdGVWb2l4IiwibWlzZUF1UG9pbnQiLCJkeXNmb25jdGlvbm5lbWVudCIsIk9iamVjdCIsInZhbHVlcyIsImZpbHRlciIsInZhbHVlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsZWFuZXJzL3NjcnV0aW5zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5cbmltcG9ydCB7XG4gIGNsZWFuQm9vbGVhbkF0dHJpYnV0ZSxcbiAgY2xlYW5JbnRlZ2VyQXR0cmlidXRlLFxuICBjbGVhblhtbEFydGVmYWN0cyxcbn0gZnJvbSBcIi4veG1sXCJcblxuZnVuY3Rpb24gY2xlYW5EZWNvbXB0ZU5vbWluYXRpZihkZWNvbXB0ZU5vbWluYXRpZjogYW55KSB7XG4gIGNsZWFuWG1sQXJ0ZWZhY3RzKGRlY29tcHRlTm9taW5hdGlmKVxuXG4gIGxldCBub25Wb3RhbnRzID0gZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50c1xuICBpZiAobm9uVm90YW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgbm9uVm90YW50cyA9IGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudFxuICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRcbiAgfSBlbHNlIHtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50LCB1bmRlZmluZWQpXG4gIH1cbiAgaWYgKG5vblZvdGFudHMgIT09IHVuZGVmaW5lZCkge1xuICAgIGlmICh0eXBlb2Ygbm9uVm90YW50cyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKG5vblZvdGFudHMsIFwiMFwiKVxuICAgICAgbm9uVm90YW50cyA9IFtdXG4gICAgfSBlbHNlIGlmICghQXJyYXkuaXNBcnJheShub25Wb3RhbnRzKSkge1xuICAgICAgYXNzZXJ0KG5vblZvdGFudHMpXG4gICAgICBub25Wb3RhbnRzID0gW25vblZvdGFudHNdXG4gICAgfVxuICAgIGNvbnN0IG5vblZvdGFudHNBcnJheSA9IG5vblZvdGFudHNcbiAgICBub25Wb3RhbnRzID0gW11cbiAgICBmb3IgKGxldCBub25Wb3RhbnQgb2Ygbm9uVm90YW50c0FycmF5KSB7XG4gICAgICBpZiAobm9uVm90YW50ID09PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBub25Wb3RhbnQgPSBub25Wb3RhbnQudm90YW50XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShub25Wb3RhbnQpKSB7XG4gICAgICAgIG5vblZvdGFudHMucHVzaCguLi5ub25Wb3RhbnQpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhc3NlcnQobm9uVm90YW50KVxuICAgICAgICBub25Wb3RhbnRzLnB1c2gobm9uVm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAobm9uVm90YW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5ub25Wb3RhbnRzXG4gICAgfSBlbHNlIHtcbiAgICAgIGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudHMgPSBub25Wb3RhbnRzXG4gICAgICBmb3IgKGNvbnN0IHZvdGFudCBvZiBub25Wb3RhbnRzKSB7XG4gICAgICAgIGNsZWFuVm90YW50KHZvdGFudClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsZXQgcG91ciA9IGRlY29tcHRlTm9taW5hdGlmLnBvdXJcbiAgaWYgKHBvdXIgPT09IHVuZGVmaW5lZCkge1xuICAgIHBvdXIgPSBkZWNvbXB0ZU5vbWluYXRpZi5wb3Vyc1xuICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5wb3Vyc1xuICB9IGVsc2Uge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWNvbXB0ZU5vbWluYXRpZi5wb3VycywgdW5kZWZpbmVkKVxuICB9XG4gIGlmIChwb3VyICE9PSB1bmRlZmluZWQpIHtcbiAgICBwb3VyID0gcG91ci52b3RhbnRcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocG91cikpIHtcbiAgICAgIGFzc2VydChwb3VyKVxuICAgICAgcG91ciA9IFtwb3VyXVxuICAgIH1cbiAgICBpZiAocG91ci5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5wb3VyXG4gICAgfSBlbHNlIHtcbiAgICAgIGRlY29tcHRlTm9taW5hdGlmLnBvdXIgPSBwb3VyXG4gICAgICBmb3IgKGNvbnN0IHZvdGFudCBvZiBwb3VyKSB7XG4gICAgICAgIGNsZWFuVm90YW50KHZvdGFudClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsZXQgY29udHJlID0gZGVjb21wdGVOb21pbmF0aWYuY29udHJlXG4gIGlmIChjb250cmUgPT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnRyZSA9IGRlY29tcHRlTm9taW5hdGlmLmNvbnRyZXNcbiAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYuY29udHJlc1xuICB9IGVsc2Uge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVzLCB1bmRlZmluZWQpXG4gIH1cbiAgaWYgKGNvbnRyZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29udHJlID0gY29udHJlLnZvdGFudFxuICAgIGlmICghQXJyYXkuaXNBcnJheShjb250cmUpKSB7XG4gICAgICBhc3NlcnQoY29udHJlKVxuICAgICAgY29udHJlID0gW2NvbnRyZV1cbiAgICB9XG4gICAgaWYgKGNvbnRyZS5sZW5ndGggPT09IDApIHtcbiAgICAgIGRlbGV0ZSBkZWNvbXB0ZU5vbWluYXRpZi5jb250cmVcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjb21wdGVOb21pbmF0aWYuY29udHJlID0gY29udHJlXG4gICAgICBmb3IgKGNvbnN0IHZvdGFudCBvZiBjb250cmUpIHtcbiAgICAgICAgY2xlYW5Wb3RhbnQodm90YW50KVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGxldCBhYnN0ZW50aW9ucyA9IGRlY29tcHRlTm9taW5hdGlmLmFic3RlbnRpb25zXG4gIGlmIChhYnN0ZW50aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgYWJzdGVudGlvbnMgPSBkZWNvbXB0ZU5vbWluYXRpZi5hYnN0ZW50aW9uXG4gICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLmFic3RlbnRpb25cbiAgfSBlbHNlIHtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVjb21wdGVOb21pbmF0aWYuYWJzdGVudGlvbiwgdW5kZWZpbmVkKVxuICB9XG4gIGlmIChhYnN0ZW50aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGFic3RlbnRpb25zKSkge1xuICAgICAgYXNzZXJ0KGFic3RlbnRpb25zKVxuICAgICAgYWJzdGVudGlvbnMgPSBbYWJzdGVudGlvbnNdXG4gICAgfVxuICAgIGNvbnN0IGFic3RlbnRpb25zQXJyYXkgPSBhYnN0ZW50aW9uc1xuICAgIGFic3RlbnRpb25zID0gW11cbiAgICBmb3IgKGxldCBhYnNlbnRpb25zSXRlbSBvZiBhYnN0ZW50aW9uc0FycmF5KSB7XG4gICAgICBpZiAoYWJzZW50aW9uc0l0ZW0gPT09IG51bGwpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGFic2VudGlvbnNJdGVtID0gYWJzZW50aW9uc0l0ZW0udm90YW50XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShhYnNlbnRpb25zSXRlbSkpIHtcbiAgICAgICAgYWJzdGVudGlvbnMucHVzaCguLi5hYnNlbnRpb25zSXRlbSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFzc2VydChhYnNlbnRpb25zSXRlbSlcbiAgICAgICAgYWJzdGVudGlvbnMucHVzaChhYnNlbnRpb25zSXRlbSlcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGFic3RlbnRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgZGVsZXRlIGRlY29tcHRlTm9taW5hdGlmLmFic3RlbnRpb25zXG4gICAgfSBlbHNlIHtcbiAgICAgIGRlY29tcHRlTm9taW5hdGlmLmFic3RlbnRpb25zID0gYWJzdGVudGlvbnNcbiAgICAgIGZvciAoY29uc3Qgdm90YW50IG9mIGFic3RlbnRpb25zKSB7XG4gICAgICAgIGNsZWFuVm90YW50KHZvdGFudClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsZXQgbm9uVm90YW50c1ZvbG9udGFpcmVzID0gZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50c1ZvbG9udGFpcmVzXG4gIGlmIChub25Wb3RhbnRzVm9sb250YWlyZXMgIT09IHVuZGVmaW5lZCkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShub25Wb3RhbnRzVm9sb250YWlyZXMpKSB7XG4gICAgICBub25Wb3RhbnRzVm9sb250YWlyZXMgPSBbbm9uVm90YW50c1ZvbG9udGFpcmVzXVxuICAgIH1cbiAgICBjb25zdCBub25Wb3RhbnRzVm9sb250YWlyZXNBcnJheSA9IG5vblZvdGFudHNWb2xvbnRhaXJlc1xuICAgIG5vblZvdGFudHNWb2xvbnRhaXJlcyA9IFtdXG4gICAgZm9yIChsZXQgYWJzZW50aW9uc0l0ZW0gb2Ygbm9uVm90YW50c1ZvbG9udGFpcmVzQXJyYXkpIHtcbiAgICAgIGlmIChhYnNlbnRpb25zSXRlbSA9PT0gbnVsbCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgYWJzZW50aW9uc0l0ZW0gPSBhYnNlbnRpb25zSXRlbS52b3RhbnRcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGFic2VudGlvbnNJdGVtKSkge1xuICAgICAgICBub25Wb3RhbnRzVm9sb250YWlyZXMucHVzaCguLi5hYnNlbnRpb25zSXRlbSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFzc2VydChhYnNlbnRpb25zSXRlbSlcbiAgICAgICAgbm9uVm90YW50c1ZvbG9udGFpcmVzLnB1c2goYWJzZW50aW9uc0l0ZW0pXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChub25Wb3RhbnRzVm9sb250YWlyZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBkZWxldGUgZGVjb21wdGVOb21pbmF0aWYubm9uVm90YW50c1ZvbG9udGFpcmVzXG4gICAgfSBlbHNlIHtcbiAgICAgIGRlY29tcHRlTm9taW5hdGlmLm5vblZvdGFudHNWb2xvbnRhaXJlcyA9IG5vblZvdGFudHNWb2xvbnRhaXJlc1xuICAgICAgZm9yIChjb25zdCB2b3RhbnQgb2Ygbm9uVm90YW50c1ZvbG9udGFpcmVzKSB7XG4gICAgICAgIGNsZWFuVm90YW50KHZvdGFudClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFuU2NydXRpbihzY3J1dGluOiBhbnkpOiB2b2lkIHtcbiAgY2xlYW5YbWxBcnRlZmFjdHMoc2NydXRpbilcblxuICBjb25zdCBkZW1hbmRldXIgPSBzY3J1dGluLmRlbWFuZGV1clxuICBhc3NlcnQoZGVtYW5kZXVyKVxuICB7XG4gICAgY2xlYW5YbWxBcnRlZmFjdHMoZGVtYW5kZXVyKVxuXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRlbWFuZGV1ci5yZWZlcmVuY2VMZWdpc2xhdGl2ZSwgdW5kZWZpbmVkKVxuICB9XG5cbiAgY29uc3Qgb2JqZXQgPSBzY3J1dGluLm9iamV0XG4gIGFzc2VydChvYmpldClcbiAge1xuICAgIGNsZWFuWG1sQXJ0ZWZhY3RzKG9iamV0KVxuXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKG9iamV0LnJlZmVyZW5jZUxlZ2lzbGF0aXZlLCB1bmRlZmluZWQpXG4gIH1cblxuICBsZXQgdmVudGlsYXRpb25Wb3RlcyA9IHNjcnV0aW4udmVudGlsYXRpb25Wb3Rlc1xuICBhc3NlcnQodmVudGlsYXRpb25Wb3RlcylcbiAge1xuICAgIHZlbnRpbGF0aW9uVm90ZXMgPSB2ZW50aWxhdGlvblZvdGVzLm9yZ2FuZVxuICAgIGFzc2VydCh2ZW50aWxhdGlvblZvdGVzKVxuXG4gICAgbGV0IGdyb3VwZXMgPSB2ZW50aWxhdGlvblZvdGVzLmdyb3VwZXNcbiAgICBhc3NlcnQoZ3JvdXBlcylcbiAgICB7XG4gICAgICBncm91cGVzID0gZ3JvdXBlcy5ncm91cGVcbiAgICAgIGFzc2VydChBcnJheS5pc0FycmF5KGdyb3VwZXMpKVxuICAgICAgZm9yIChjb25zdCBncm91cGUgb2YgZ3JvdXBlcykge1xuICAgICAgICBjb25zdCB2b3RlID0gZ3JvdXBlLnZvdGVcbiAgICAgICAgYXNzZXJ0KHZvdGUpXG4gICAgICAgIHtcbiAgICAgICAgICBjb25zdCBkZWNvbXB0ZVZvaXggPSB2b3RlLmRlY29tcHRlVm9peFxuICAgICAgICAgIGFzc2VydChkZWNvbXB0ZVZvaXgpXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWYgKGRlY29tcHRlVm9peC5hYnN0ZW50aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGRlY29tcHRlVm9peC5hYnN0ZW50aW9ucywgdW5kZWZpbmVkKVxuICAgICAgICAgICAgICBkZWNvbXB0ZVZvaXguYWJzdGVudGlvbnMgPSBkZWNvbXB0ZVZvaXguYWJzdGVudGlvblxuICAgICAgICAgICAgICBkZWxldGUgZGVjb21wdGVWb2l4LmFic3RlbnRpb25cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGRlY29tcHRlVm9peC5ub25Wb3RhbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZGVjb21wdGVWb2l4Lm5vblZvdGFudHMsIHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgZGVjb21wdGVWb2l4Lm5vblZvdGFudHMgPSBkZWNvbXB0ZVZvaXgubm9uVm90YW50XG4gICAgICAgICAgICAgIGRlbGV0ZSBkZWNvbXB0ZVZvaXgubm9uVm90YW50XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZGVjb21wdGVOb21pbmF0aWYgPSB2b3RlLmRlY29tcHRlTm9taW5hdGlmXG4gICAgICAgICAgYXNzZXJ0KGRlY29tcHRlTm9taW5hdGlmKVxuICAgICAgICAgIGNsZWFuRGVjb21wdGVOb21pbmF0aWYoZGVjb21wdGVOb21pbmF0aWYpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZlbnRpbGF0aW9uVm90ZXMuZ3JvdXBlcyA9IGdyb3VwZXNcbiAgICB9XG5cbiAgICBzY3J1dGluLnZlbnRpbGF0aW9uVm90ZXMgPSB2ZW50aWxhdGlvblZvdGVzXG4gIH1cblxuICBjb25zdCBtaXNlQXVQb2ludCA9IHNjcnV0aW4ubWlzZUF1UG9pbnRcbiAgaWYgKG1pc2VBdVBvaW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICBjbGVhbkRlY29tcHRlTm9taW5hdGlmKG1pc2VBdVBvaW50KVxuXG4gICAgbGV0IGR5c2ZvbmN0aW9ubmVtZW50ID0gbWlzZUF1UG9pbnQuZHlzZm9uY3Rpb25uZW1lbnRcbiAgICBpZiAoZHlzZm9uY3Rpb25uZW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY2xlYW5EZWNvbXB0ZU5vbWluYXRpZihkeXNmb25jdGlvbm5lbWVudClcbiAgICAgIGlmIChcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhkeXNmb25jdGlvbm5lbWVudCkuZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAubGVuZ3RoID09PSAwXG4gICAgICApIHtcbiAgICAgICAgZGVsZXRlIG1pc2VBdVBvaW50LmR5c2ZvbmN0aW9ubmVtZW50XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgT2JqZWN0LnZhbHVlcyhtaXNlQXVQb2ludCkuZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgLmxlbmd0aCA9PT0gMFxuICAgICkge1xuICAgICAgZGVsZXRlIHNjcnV0aW4ubWlzZUF1UG9pbnRcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY2xlYW5Wb3RhbnQodm90YW50OiBhbnkpIHtcbiAgY2xlYW5Cb29sZWFuQXR0cmlidXRlKHZvdGFudCwgXCJwYXJEZWxlZ2F0aW9uXCIpXG4gIGNsZWFuSW50ZWdlckF0dHJpYnV0ZSh2b3RhbnQsIFwibnVtUGxhY2VcIilcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLFFBQVE7QUFBQSxTQUd6QkMscUJBQXFCLEVBQ3JCQyxxQkFBcUIsRUFDckJDLGlCQUFpQjtBQUduQixTQUFTQyxzQkFBc0JBLENBQUNDLGlCQUFzQixFQUFFO0VBQ3RERixpQkFBaUIsQ0FBQ0UsaUJBQWlCLENBQUM7RUFFcEMsSUFBSUMsVUFBVSxHQUFHRCxpQkFBaUIsQ0FBQ0MsVUFBVTtFQUM3QyxJQUFJQSxVQUFVLEtBQUtDLFNBQVMsRUFBRTtJQUM1QkQsVUFBVSxHQUFHRCxpQkFBaUIsQ0FBQ0csU0FBUztJQUN4QyxPQUFPSCxpQkFBaUIsQ0FBQ0csU0FBUztFQUNwQyxDQUFDLE1BQU07SUFDTFIsTUFBTSxDQUFDUyxXQUFX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