@tricoteuses/senat 1.1.1 → 1.3.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 (259) hide show
  1. package/README.md +53 -15
  2. package/lib/aggregates.d.ts +4 -6
  3. package/lib/aggregates.mjs +908 -780
  4. package/lib/aggregates.ts +8 -122
  5. package/lib/data/legislatures.json +38 -0
  6. package/lib/databases.d.ts +9 -0
  7. package/lib/databases.js +41 -11
  8. package/lib/databases.mjs +32 -1
  9. package/lib/databases.ts +40 -1
  10. package/lib/fields.mjs +64 -18
  11. package/lib/index.d.ts +5 -6
  12. package/lib/index.js +8 -99
  13. package/lib/index.mjs +4 -6
  14. package/lib/index.ts +9 -26
  15. package/lib/inserters.d.ts +0 -4
  16. package/lib/inserters.mjs +461 -337
  17. package/lib/inserters.ts +0 -24
  18. package/lib/legislatures.json +38 -0
  19. package/lib/loaders.d.ts +64 -0
  20. package/lib/loaders.js +682 -0
  21. package/lib/loaders.mjs +158 -0
  22. package/lib/loaders.ts +271 -0
  23. package/lib/model/ameli.d.ts +105 -4
  24. package/lib/model/ameli.js +20 -160
  25. package/lib/model/ameli.mjs +84 -57
  26. package/lib/model/ameli.ts +94 -80
  27. package/lib/model/debats.d.ts +0 -4
  28. package/lib/model/debats.js +1 -122
  29. package/lib/model/debats.mjs +1 -43
  30. package/lib/model/debats.ts +0 -68
  31. package/lib/model/dosleg.d.ts +227 -29
  32. package/lib/model/dosleg.js +92 -832
  33. package/lib/model/dosleg.mjs +196 -337
  34. package/lib/model/dosleg.ts +213 -531
  35. package/lib/model/index.d.ts +4 -5
  36. package/lib/model/index.js +14 -15
  37. package/lib/model/index.mjs +4 -5
  38. package/lib/model/index.ts +8 -5
  39. package/lib/model/questions.d.ts +88 -2
  40. package/lib/model/questions.js +40 -45
  41. package/lib/model/questions.mjs +71 -8
  42. package/lib/model/questions.ts +90 -11
  43. package/lib/model/sens.d.ts +524 -2
  44. package/lib/model/sens.js +172 -49
  45. package/lib/model/sens.mjs +415 -9
  46. package/lib/model/sens.ts +514 -16
  47. package/lib/model/texte.d.ts +7 -0
  48. package/lib/model/texte.js +321 -0
  49. package/lib/model/texte.mjs +208 -0
  50. package/lib/model/texte.ts +229 -0
  51. package/lib/model/util.d.ts +7 -1
  52. package/lib/model/util.js +37 -53
  53. package/lib/model/util.mjs +19 -10
  54. package/lib/model/util.ts +30 -14
  55. package/lib/raw_types/ameli.d.ts +912 -538
  56. package/lib/raw_types/ameli.js +1 -39
  57. package/lib/raw_types/ameli.mjs +4 -1
  58. package/lib/raw_types/ameli.ts +947 -597
  59. package/lib/raw_types/debats.d.ts +204 -124
  60. package/lib/raw_types/debats.js +1 -18
  61. package/lib/raw_types/debats.mjs +4 -1
  62. package/lib/raw_types/debats.ts +218 -141
  63. package/lib/raw_types/dosleg.d.ts +3533 -2024
  64. package/lib/raw_types/dosleg.js +1 -92
  65. package/lib/raw_types/dosleg.mjs +4 -1
  66. package/lib/raw_types/dosleg.ts +3621 -2189
  67. package/lib/raw_types/questions.d.ts +404 -220
  68. package/lib/raw_types/questions.js +1 -18
  69. package/lib/raw_types/questions.mjs +4 -1
  70. package/lib/raw_types/questions.ts +404 -226
  71. package/lib/raw_types/sens.d.ts +4391 -2706
  72. package/lib/raw_types/sens.js +1 -108
  73. package/lib/raw_types/sens.mjs +4 -1
  74. package/lib/raw_types/sens.ts +4495 -2903
  75. package/lib/raw_types_kysely/ameli.d.ts +6 -0
  76. package/lib/raw_types_kysely/ameli.mjs +7 -0
  77. package/lib/raw_types_kysely/ameli.ts +6 -0
  78. package/lib/raw_types_kysely/debats.d.ts +6 -0
  79. package/lib/raw_types_kysely/debats.mjs +7 -0
  80. package/lib/raw_types_kysely/debats.ts +6 -0
  81. package/lib/raw_types_kysely/dosleg.d.ts +6 -0
  82. package/lib/raw_types_kysely/dosleg.mjs +7 -0
  83. package/lib/raw_types_kysely/dosleg.ts +6 -0
  84. package/lib/raw_types_kysely/questions.d.ts +6 -0
  85. package/lib/raw_types_kysely/questions.mjs +7 -0
  86. package/lib/raw_types_kysely/questions.ts +6 -0
  87. package/lib/raw_types_kysely/sens.d.ts +6 -0
  88. package/lib/raw_types_kysely/sens.mjs +7 -0
  89. package/lib/raw_types_kysely/sens.ts +6 -0
  90. package/lib/raw_types_kysely/texte.d.ts +45 -0
  91. package/lib/raw_types_kysely/texte.mjs +7 -0
  92. package/lib/raw_types_kysely/texte.ts +53 -0
  93. package/lib/raw_types_schemats/ameli.d.ts +541 -0
  94. package/lib/raw_types_schemats/ameli.js +45 -0
  95. package/lib/raw_types_schemats/ameli.mjs +2 -0
  96. package/lib/raw_types_schemats/ameli.ts +601 -0
  97. package/lib/raw_types_schemats/debats.d.ts +127 -0
  98. package/lib/raw_types_schemats/debats.js +24 -0
  99. package/lib/raw_types_schemats/debats.mjs +2 -0
  100. package/lib/raw_types_schemats/debats.ts +145 -0
  101. package/lib/raw_types_schemats/dosleg.d.ts +2029 -0
  102. package/lib/raw_types_schemats/dosleg.js +98 -0
  103. package/lib/raw_types_schemats/dosleg.mjs +2 -0
  104. package/lib/raw_types_schemats/dosleg.ts +2195 -0
  105. package/lib/raw_types_schemats/questions.d.ts +233 -0
  106. package/lib/raw_types_schemats/questions.js +24 -0
  107. package/lib/raw_types_schemats/questions.mjs +2 -0
  108. package/lib/raw_types_schemats/questions.ts +251 -0
  109. package/lib/raw_types_schemats/sens.d.ts +2709 -0
  110. package/lib/raw_types_schemats/sens.js +114 -0
  111. package/lib/raw_types_schemats/sens.mjs +2 -0
  112. package/lib/raw_types_schemats/sens.ts +2907 -0
  113. package/lib/scripts/convert_data.js +574 -215
  114. package/lib/scripts/convert_data.mjs +134 -99
  115. package/lib/scripts/convert_data.ts +173 -112
  116. package/lib/scripts/datautil.d.ts +5 -0
  117. package/lib/scripts/datautil.js +64 -0
  118. package/lib/scripts/datautil.mjs +16 -0
  119. package/lib/scripts/datautil.ts +19 -0
  120. package/lib/scripts/parse_textes.js +132 -0
  121. package/lib/scripts/parse_textes.mjs +46 -0
  122. package/lib/scripts/parse_textes.ts +65 -0
  123. package/lib/scripts/retrieve_documents.d.ts +1 -0
  124. package/lib/scripts/retrieve_documents.js +521 -0
  125. package/lib/scripts/retrieve_documents.mjs +249 -0
  126. package/lib/scripts/retrieve_documents.ts +298 -0
  127. package/lib/scripts/retrieve_open_data.js +77 -69
  128. package/lib/scripts/retrieve_open_data.mjs +48 -49
  129. package/lib/scripts/retrieve_open_data.ts +74 -58
  130. package/lib/scripts/retrieve_senateurs_photos.js +45 -63
  131. package/lib/scripts/retrieve_senateurs_photos.mjs +4 -21
  132. package/lib/scripts/retrieve_senateurs_photos.ts +6 -29
  133. package/lib/scripts/retrieve_textes.mjs +325 -74
  134. package/lib/scripts/retrieve_textes.ts +111 -63
  135. package/lib/scripts/shared/cli_helpers.d.ts +44 -0
  136. package/lib/scripts/shared/cli_helpers.js +35 -0
  137. package/lib/scripts/shared/cli_helpers.ts +36 -0
  138. package/lib/scripts/shared/util.d.ts +3 -0
  139. package/lib/scripts/shared/util.js +102 -0
  140. package/lib/scripts/shared/util.ts +33 -0
  141. package/lib/src/aggregates.d.ts +52 -0
  142. package/lib/src/aggregates.mjs +726 -0
  143. package/lib/src/config.d.ts +2 -0
  144. package/lib/src/config.mjs +16 -0
  145. package/lib/src/databases.d.ts +18 -0
  146. package/lib/src/databases.mjs +55 -0
  147. package/lib/src/datasets.d.ts +28 -0
  148. package/lib/src/datasets.mjs +78 -0
  149. package/lib/src/fields.d.ts +10 -0
  150. package/lib/src/fields.mjs +22 -0
  151. package/lib/src/index.d.ts +8 -0
  152. package/lib/src/index.mjs +7 -0
  153. package/lib/src/inserters.d.ts +98 -0
  154. package/lib/src/inserters.mjs +360 -0
  155. package/lib/src/loaders.d.ts +36 -0
  156. package/lib/src/loaders.mjs +107 -0
  157. package/lib/src/model/ameli.d.ts +4 -0
  158. package/lib/src/model/ameli.js +57 -0
  159. package/lib/src/model/debats.d.ts +4 -0
  160. package/lib/src/model/debats.js +43 -0
  161. package/lib/src/model/dosleg.d.ts +197 -0
  162. package/lib/src/model/dosleg.js +169 -0
  163. package/lib/src/model/index.d.ts +4 -0
  164. package/lib/src/model/index.js +4 -0
  165. package/lib/src/model/questions.d.ts +89 -0
  166. package/lib/src/model/questions.js +76 -0
  167. package/lib/src/model/sens.d.ts +390 -0
  168. package/lib/src/model/sens.js +339 -0
  169. package/lib/src/model/texte.d.ts +7 -0
  170. package/lib/src/model/texte.js +183 -0
  171. package/lib/src/raw_types_kysely/ameli.d.ts +915 -0
  172. package/lib/src/raw_types_kysely/ameli.js +5 -0
  173. package/lib/src/raw_types_kysely/debats.d.ts +207 -0
  174. package/lib/src/raw_types_kysely/debats.js +5 -0
  175. package/lib/src/raw_types_kysely/dosleg.d.ts +3532 -0
  176. package/lib/src/raw_types_kysely/dosleg.js +5 -0
  177. package/lib/src/raw_types_kysely/questions.d.ts +414 -0
  178. package/lib/src/raw_types_kysely/questions.js +5 -0
  179. package/lib/src/raw_types_kysely/sens.d.ts +4394 -0
  180. package/lib/src/raw_types_kysely/sens.js +5 -0
  181. package/lib/src/raw_types_schemats/ameli.d.ts +541 -0
  182. package/lib/src/raw_types_schemats/ameli.js +2 -0
  183. package/lib/src/raw_types_schemats/debats.d.ts +127 -0
  184. package/lib/src/raw_types_schemats/debats.js +2 -0
  185. package/lib/src/raw_types_schemats/dosleg.d.ts +2027 -0
  186. package/lib/src/raw_types_schemats/dosleg.js +2 -0
  187. package/lib/src/raw_types_schemats/questions.d.ts +231 -0
  188. package/lib/src/raw_types_schemats/questions.js +2 -0
  189. package/lib/src/raw_types_schemats/sens.d.ts +2709 -0
  190. package/lib/src/raw_types_schemats/sens.js +2 -0
  191. package/lib/src/scripts/convert_data.d.ts +1 -0
  192. package/lib/src/scripts/convert_data.js +95 -0
  193. package/lib/src/scripts/datautil.d.ts +5 -0
  194. package/lib/src/scripts/datautil.js +16 -0
  195. package/lib/src/scripts/parse_textes.d.ts +1 -0
  196. package/lib/src/scripts/parse_textes.js +47 -0
  197. package/lib/src/scripts/retrieve_documents.d.ts +1 -0
  198. package/lib/src/scripts/retrieve_documents.js +258 -0
  199. package/lib/src/scripts/retrieve_open_data.d.ts +1 -0
  200. package/lib/src/scripts/retrieve_open_data.js +214 -0
  201. package/lib/src/scripts/retrieve_senateurs_photos.d.ts +1 -0
  202. package/lib/src/scripts/retrieve_senateurs_photos.js +147 -0
  203. package/lib/src/scripts/shared/cli_helpers.d.ts +44 -0
  204. package/lib/src/scripts/shared/cli_helpers.js +32 -0
  205. package/lib/src/scripts/shared/util.d.ts +3 -0
  206. package/lib/src/scripts/shared/util.js +28 -0
  207. package/lib/src/strings.d.ts +1 -0
  208. package/lib/src/strings.mjs +18 -0
  209. package/lib/src/types/ameli.d.ts +10 -0
  210. package/lib/src/types/ameli.js +13 -0
  211. package/lib/src/types/debats.d.ts +4 -0
  212. package/lib/src/types/debats.js +2 -0
  213. package/lib/src/types/dosleg.d.ts +98 -0
  214. package/lib/src/types/dosleg.js +151 -0
  215. package/lib/src/types/questions.d.ts +2 -0
  216. package/lib/src/types/questions.js +1 -0
  217. package/lib/src/types/sens.d.ts +10 -0
  218. package/lib/src/types/sens.js +1 -0
  219. package/lib/src/types/sessions.d.ts +42 -0
  220. package/lib/src/types/sessions.js +43 -0
  221. package/lib/src/types/texte.d.ts +61 -0
  222. package/lib/src/types/texte.js +16 -0
  223. package/lib/src/validators/config.d.ts +1 -0
  224. package/lib/src/validators/config.js +54 -0
  225. package/lib/src/validators/senat.d.ts +0 -0
  226. package/lib/src/validators/senat.js +24 -0
  227. package/lib/types/ameli.d.ts +1 -1
  228. package/lib/types/ameli.js +2 -2
  229. package/lib/types/ameli.ts +1 -1
  230. package/lib/types/debats.d.ts +1 -1
  231. package/lib/types/debats.js +2 -2
  232. package/lib/types/debats.ts +1 -1
  233. package/lib/types/dosleg.d.ts +2 -2
  234. package/lib/types/dosleg.js +2 -2
  235. package/lib/types/dosleg.ts +2 -2
  236. package/lib/types/questions.d.ts +1 -1
  237. package/lib/types/questions.js +2 -2
  238. package/lib/types/questions.ts +1 -1
  239. package/lib/types/sens.d.ts +1 -3
  240. package/lib/types/sens.js +2 -5
  241. package/lib/types/sens.mjs +1 -23
  242. package/lib/types/sens.ts +1 -25
  243. package/lib/types/sessions.d.ts +42 -0
  244. package/lib/types/sessions.js +51 -0
  245. package/lib/types/sessions.mjs +43 -0
  246. package/lib/types/sessions.ts +42 -0
  247. package/lib/types/texte.d.ts +65 -0
  248. package/lib/types/texte.js +24 -0
  249. package/lib/types/texte.mjs +16 -0
  250. package/lib/types/texte.ts +76 -0
  251. package/package.json +35 -10
  252. package/lib/aggregates.js +0 -1122
  253. package/lib/fields.js +0 -68
  254. package/lib/inserters.js +0 -518
  255. package/lib/scripts/fix_db.js +0 -144
  256. package/lib/scripts/fix_db.mjs +0 -64
  257. package/lib/scripts/fix_db.ts +0 -75
  258. package/lib/scripts/retrieve_textes.js +0 -179
  259. /package/lib/scripts/{fix_db.d.ts → parse_textes.d.ts} +0 -0
@@ -1,284 +1,643 @@
1
1
  "use strict";
2
2
 
3
3
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
- require("core-js/modules/es.symbol.js");
5
- require("core-js/modules/es.symbol.description.js");
6
- require("core-js/modules/es.symbol.async-iterator.js");
7
- require("core-js/modules/es.symbol.iterator.js");
8
- require("core-js/modules/es.symbol.replace.js");
9
- require("core-js/modules/es.symbol.to-string-tag.js");
10
4
  require("core-js/modules/es.array.for-each.js");
11
5
  require("core-js/modules/es.array.from.js");
12
6
  require("core-js/modules/es.array.is-array.js");
13
- require("core-js/modules/es.array.reduce.js");
14
- require("core-js/modules/es.array.reverse.js");
15
7
  require("core-js/modules/es.array.slice.js");
16
8
  require("core-js/modules/es.date.to-string.js");
17
- require("core-js/modules/es.function.name.js");
18
- require("core-js/modules/es.json.to-string-tag.js");
19
- require("core-js/modules/es.math.to-string-tag.js");
20
9
  require("core-js/modules/es.object.create.js");
21
10
  require("core-js/modules/es.object.define-property.js");
22
11
  require("core-js/modules/es.object.get-prototype-of.js");
23
- require("core-js/modules/es.object.keys.js");
24
- require("core-js/modules/es.promise.js");
25
- require("core-js/modules/es.regexp.constructor.js");
12
+ require("core-js/modules/es.object.set-prototype-of.js");
26
13
  require("core-js/modules/es.regexp.to-string.js");
27
- require("core-js/modules/es.string.replace.js");
28
- require("core-js/modules/es.weak-map.js");
29
14
  require("core-js/modules/web.dom-collections.for-each.js");
15
+ require("core-js/modules/es.symbol.js");
16
+ require("core-js/modules/es.symbol.description.js");
17
+ require("core-js/modules/es.symbol.async-iterator.js");
18
+ require("core-js/modules/es.symbol.iterator.js");
19
+ require("core-js/modules/es.array.concat.js");
30
20
  require("core-js/modules/es.array.iterator.js");
31
21
  require("core-js/modules/es.array.join.js");
32
- require("core-js/modules/es.function.bind.js");
33
- require("core-js/modules/es.object.set-prototype-of.js");
22
+ require("core-js/modules/es.function.name.js");
34
23
  require("core-js/modules/es.object.to-string.js");
24
+ require("core-js/modules/es.promise.js");
35
25
  require("core-js/modules/es.regexp.exec.js");
36
- require("core-js/modules/es.set.js");
37
26
  require("core-js/modules/es.string.iterator.js");
38
27
  require("core-js/modules/web.dom-collections.iterator.js");
28
+ require("core-js/modules/web.url.js");
29
+ require("core-js/modules/web.url.to-json.js");
30
+ require("core-js/modules/web.url-search-params.js");
31
+ var _assert = _interopRequireDefault(require("assert"));
32
+ var _commandLineArgs = _interopRequireDefault(require("command-line-args"));
39
33
  var _fsExtra = _interopRequireDefault(require("fs-extra"));
40
34
  var _path = _interopRequireDefault(require("path"));
41
- var _commandLineArgs = _interopRequireDefault(require("command-line-args"));
42
35
  var _datasets = require("../datasets");
36
+ var _loaders = require("../loaders");
43
37
  var _model = require("../model");
44
- var _inserters = require("../inserters");
38
+ var _dosleg = require("../model/dosleg");
39
+ var _datautil = require("./datautil");
40
+ var _cli_helpers = require("./shared/cli_helpers");
41
+ var _util = require("./shared/util");
45
42
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
46
- 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 e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
47
- 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; } } }; }
48
- 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; } }
49
- 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; }
43
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return r; }; var t, r = {}, e = Object.prototype, n = e.hasOwnProperty, o = "function" == typeof Symbol ? Symbol : {}, i = o.iterator || "@@iterator", a = o.asyncIterator || "@@asyncIterator", u = o.toStringTag || "@@toStringTag"; function c(t, r, e, n) { Object.defineProperty(t, r, { value: e, enumerable: !n, configurable: !n, writable: !n }); } try { c({}, ""); } catch (t) { c = function c(t, r, e) { return t[r] = e; }; } function h(r, e, n, o) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype); return c(a, "_invoke", function (r, e, n) { var o = 1; return function (i, a) { if (3 === o) throw Error("Generator is already running"); if (4 === o) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var u = n.delegate; if (u) { var c = d(u, n); if (c) { if (c === f) continue; return c; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (1 === o) throw o = 4, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = 3; var h = s(r, e, n); if ("normal" === h.type) { if (o = n.done ? 4 : 2, h.arg === f) continue; return { value: h.arg, done: n.done }; } "throw" === h.type && (o = 4, n.method = "throw", n.arg = h.arg); } }; }(r, n, new Context(o || [])), !0), a; } function s(t, r, e) { try { return { type: "normal", arg: t.call(r, e) }; } catch (t) { return { type: "throw", arg: t }; } } r.wrap = h; var f = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var l = {}; c(l, i, function () { return this; }); var p = Object.getPrototypeOf, y = p && p(p(x([]))); y && y !== e && n.call(y, i) && (l = y); var v = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(l); function g(t) { ["next", "throw", "return"].forEach(function (r) { c(t, r, function (t) { return this._invoke(r, t); }); }); } function AsyncIterator(t, r) { function e(o, i, a, u) { var c = s(t[o], t, i); if ("throw" !== c.type) { var h = c.arg, f = h.value; return f && "object" == _typeof(f) && n.call(f, "__await") ? r.resolve(f.__await).then(function (t) { e("next", t, a, u); }, function (t) { e("throw", t, a, u); }) : r.resolve(f).then(function (t) { h.value = t, a(h); }, function (t) { return e("throw", t, a, u); }); } u(c.arg); } var o; c(this, "_invoke", function (t, n) { function i() { return new r(function (r, o) { e(t, n, r, o); }); } return o = o ? o.then(i, i) : i(); }, !0); } function d(r, e) { var n = e.method, o = r.i[n]; if (o === t) return e.delegate = null, "throw" === n && r.i["return"] && (e.method = "return", e.arg = t, d(r, e), "throw" === e.method) || "return" !== n && (e.method = "throw", e.arg = new TypeError("The iterator does not provide a '" + n + "' method")), f; var i = s(o, r.i, e.arg); if ("throw" === i.type) return e.method = "throw", e.arg = i.arg, e.delegate = null, f; var a = i.arg; return a ? a.done ? (e[r.r] = a.value, e.next = r.n, "return" !== e.method && (e.method = "next", e.arg = t), e.delegate = null, f) : a : (e.method = "throw", e.arg = new TypeError("iterator result is not an object"), e.delegate = null, f); } function w(t) { this.tryEntries.push(t); } function m(r) { var e = r[4] || {}; e.type = "normal", e.arg = t, r[4] = e; } function Context(t) { this.tryEntries = [[-1]], t.forEach(w, this), this.reset(!0); } function x(r) { if (null != r) { var e = r[i]; if (e) return e.call(r); if ("function" == typeof r.next) return r; if (!isNaN(r.length)) { var o = -1, a = function e() { for (; ++o < r.length;) if (n.call(r, o)) return e.value = r[o], e.done = !1, e; return e.value = t, e.done = !0, e; }; return a.next = a; } } throw new TypeError(_typeof(r) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, c(v, "constructor", GeneratorFunctionPrototype), c(GeneratorFunctionPrototype, "constructor", GeneratorFunction), c(GeneratorFunctionPrototype, u, GeneratorFunction.displayName = "GeneratorFunction"), r.isGeneratorFunction = function (t) { var r = "function" == typeof t && t.constructor; return !!r && (r === GeneratorFunction || "GeneratorFunction" === (r.displayName || r.name)); }, r.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, c(t, u, "GeneratorFunction")), t.prototype = Object.create(v), t; }, r.awrap = function (t) { return { __await: t }; }, g(AsyncIterator.prototype), c(AsyncIterator.prototype, a, function () { return this; }), r.AsyncIterator = AsyncIterator, r.async = function (t, e, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(h(t, e, n, o), i); return r.isGeneratorFunction(e) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, g(v), c(v, u, "Generator"), c(v, i, function () { return this; }), c(v, "toString", function () { return "[object Generator]"; }), r.keys = function (t) { var r = Object(t), e = []; for (var n in r) e.unshift(n); return function t() { for (; e.length;) if ((n = e.pop()) in r) return t.value = n, t.done = !1, t; return t.done = !0, t; }; }, r.values = x, Context.prototype = { constructor: Context, reset: function reset(r) { if (this.prev = this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(m), !r) for (var e in this) "t" === e.charAt(0) && n.call(this, e) && !isNaN(+e.slice(1)) && (this[e] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0][4]; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(r) { if (this.done) throw r; var e = this; function n(t) { a.type = "throw", a.arg = r, e.next = t; } for (var o = e.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i[4], u = this.prev, c = i[1], h = i[2]; if (-1 === i[0]) return n("end"), !1; if (!c && !h) throw Error("try statement without catch or finally"); if (null != i[0] && i[0] <= u) { if (u < c) return this.method = "next", this.arg = t, n(c), !0; if (u < h) return n(h), !1; } } }, abrupt: function abrupt(t, r) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var n = this.tryEntries[e]; if (n[0] > -1 && n[0] <= this.prev && this.prev < n[2]) { var o = n; break; } } o && ("break" === t || "continue" === t) && o[0] <= r && r <= o[2] && (o = null); var i = o ? o[4] : {}; return i.type = t, i.arg = r, o ? (this.method = "next", this.next = o[2], f) : this.complete(i); }, complete: function complete(t, r) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && r && (this.next = r), f; }, finish: function finish(t) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var e = this.tryEntries[r]; if (e[2] === t) return this.complete(e[4], e[3]), m(e), f; } }, "catch": function _catch(t) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var e = this.tryEntries[r]; if (e[0] === t) { var n = e[4]; if ("throw" === n.type) { var o = n.arg; m(e); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(r, e, n) { return this.delegate = { i: x(r), r: e, n: n }, "next" === this.method && (this.arg = t), f; } }, r; }
50
44
  function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
51
45
  function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
52
- function _wrapRegExp() { _wrapRegExp = function _wrapRegExp(e, r) { return new BabelRegExp(e, void 0, r); }; var e = RegExp.prototype, r = new WeakMap(); function BabelRegExp(e, t, p) { var o = RegExp(e, t); return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype); } function buildGroups(e, t) { var p = r.get(t); return Object.keys(p).reduce(function (r, t) { var o = p[t]; if ("number" == typeof o) r[t] = e[o];else { for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++; r[t] = e[o[i]]; } return r; }, Object.create(null)); } return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) { var t = e.exec.call(this, r); if (t) { t.groups = buildGroups(t, this); var p = t.indices; p && (p.groups = buildGroups(p, this)); } return t; }, BabelRegExp.prototype[Symbol.replace] = function (t, p) { if ("string" == typeof p) { var o = r.get(this); return e[Symbol.replace].call(this, t, p.replace(/\$<([^>]+)>/g, function (e, r) { var t = o[r]; return "$" + (Array.isArray(t) ? t.join("$") : t); })); } if ("function" == typeof p) { var i = this; return e[Symbol.replace].call(this, t, function () { var e = arguments; return "object" != _typeof(e[e.length - 1]) && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e); }); } return e[Symbol.replace].call(this, t, p); }, _wrapRegExp.apply(this, arguments); }
53
- function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
54
- function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
55
- var optionsDefinitions = [{
56
- alias: 'k',
57
- defaultValue: ['All'],
58
- help: 'categories of datasets to reorganize',
59
- multiple: true,
60
- name: 'categories',
61
- type: String
62
- }, {
63
- alias: 's',
64
- help: 'don\'t log anything',
65
- name: 'silent',
66
- type: Boolean
67
- }, {
68
- alias: "v",
69
- help: "verbose logs",
70
- name: "verbose",
71
- type: Boolean
72
- }, {
73
- defaultOption: true,
74
- help: 'directory containing Sénat open data files',
75
- name: 'dataDir',
76
- type: String
77
- }];
46
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
47
+ 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."); }
48
+ 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; } }
49
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
50
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
51
+ 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; }
52
+ function _asyncIterator(r) { var n, t, o, e = 2; for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) { if (t && null != (n = r[t])) return n.call(r); if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r)); t = "@@asyncIterator", o = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
53
+ function AsyncFromSyncIterator(r) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var n = r.done; return Promise.resolve(r.value).then(function (r) { return { value: r, done: n }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(r) { this.s = r, this.n = r.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, "return": function _return(r) { var n = this.s["return"]; return void 0 === n ? Promise.resolve({ value: r, done: !0 }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); }, "throw": function _throw(r) { var n = this.s["return"]; return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(r); }
54
+ var optionsDefinitions = _toConsumableArray(_cli_helpers.commonOptions);
78
55
  var options = (0, _commandLineArgs["default"])(optionsDefinitions);
79
- var SIGNET_STRUCTURE_REGEXP = /*#__PURE__*/_wrapRegExp(/^([a-z]+)(\d{2,4})-?(\d+)?/, {
80
- type: 1,
81
- session: 2,
82
- numTexte: 3
83
- });
84
- function ensureAndClearDir(path) {
85
- if (!_fsExtra["default"].existsSync(path)) {
86
- _fsExtra["default"].mkdirSync(path);
87
- } else {
88
- _fsExtra["default"].emptyDirSync(path);
89
- }
90
- }
56
+ var SENAT_TEXTE_XML_BASE_URL = "https://www.senat.fr/akomantoso/";
57
+ var SENAT_TEXTE_BASE_URL = "https://www.senat.fr/leg/";
58
+ var SENAT_EXPOSE_DES_MOTIFS_BASE_URL = "https://www.senat.fr/leg/exposes-des-motifs/";
59
+ var SENAT_RAPPORT_BASE_URL = "https://www.senat.fr/rap/";
91
60
  function convertData() {
92
61
  return _convertData.apply(this, arguments);
93
62
  }
94
63
  function _convertData() {
95
64
  _convertData = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
96
- var enabledDatasets, dataDir, dataset, lois, aggregator, _iterator, _step, loi, allData, loiReorganizedRootDir, _iterator2, _step2, _loi, loiFileName, loiReorganizedDir, _SIGNET_STRUCTURE_REG, signetParts, session, _dataset, questions, _aggregator, _iterator3, _step3, question, _allData, questionReorganizedRootDir, _iterator4, _step4, _question, legislature, questionReorganizedDir, questionFileName, _dataset2, sens, _aggregator2, _iterator5, _step5, sen, _allData2, senReorganizedRootDir, _iterator6, _step6, _sen, senFileName;
65
+ var enabledDatasets, dataDir, dataset, ameliReorganizedRootDir, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, amendement, session, signetDossierLegislatif, ameliReorganizedDir, amendementFileName, _dataset, doslegReorganizedRootDir, dossiersReorganizedDir, _iteratorAbruptCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, loi, _SIGNET_STRUCTURE_REG, loiReorganizedDir, signetParts, _session, formattedSession, loiFileName, _dataset2, questionsReorganizedRootDir, _iteratorAbruptCompletion3, _didIteratorError3, _iteratorError3, _iterator3, _step3, question, legislature, questionReorganizedDir, questionFileName, _dataset3, sensReorganizedRootDir, senateursReorganizedDir, circonscriptionsReorganizedDir, organismesReorganizedDir, _iteratorAbruptCompletion4, _didIteratorError4, _iteratorError4, _iterator4, _step4, sen, senFileName, _iteratorAbruptCompletion5, _didIteratorError5, _iteratorError5, _iterator5, _step5, circonscription, circonscriptionFileName, _iteratorAbruptCompletion6, _didIteratorError6, _iteratorError6, _iterator6, _step6, organisme, organismeFileName;
97
66
  return _regeneratorRuntime().wrap(function _callee$(_context) {
98
67
  while (1) switch (_context.prev = _context.next) {
99
68
  case 0:
100
69
  enabledDatasets = (0, _datasets.getEnabledDatasets)(options.categories);
101
70
  dataDir = options.dataDir;
102
- if (!(enabledDatasets & _datasets.EnabledDatasets.DosLeg)) {
103
- _context.next = 20;
71
+ (0, _assert["default"])(dataDir, "Missing argument: data directory");
72
+ console.time("data transformation time");
73
+ if (!(enabledDatasets & _datasets.EnabledDatasets.Ameli)) {
74
+ _context.next = 43;
104
75
  break;
105
76
  }
106
- dataset = _datasets.datasets.dosleg;
77
+ dataset = _datasets.datasets.ameli;
107
78
  if (!options.silent) {
108
79
  console.log("Converting database ".concat(dataset.database, " data into files\u2026"));
109
80
  }
110
- _context.next = 7;
111
- return (0, _model.getAllLois)();
112
- case 7:
113
- lois = _context.sent;
114
- aggregator = new _model.Aggregator(new Set(_model.allFollows));
115
- _iterator = _createForOfIteratorHelper(lois);
116
- try {
117
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
118
- loi = _step.value;
119
- aggregator.addLoi(loi);
120
- }
121
- } catch (err) {
122
- _iterator.e(err);
123
- } finally {
124
- _iterator.f();
81
+ ameliReorganizedRootDir = _path["default"].join(dataDir, dataset.database);
82
+ (0, _util.ensureAndClearDir)(ameliReorganizedRootDir);
83
+ _iteratorAbruptCompletion = false;
84
+ _didIteratorError = false;
85
+ _context.prev = 11;
86
+ _iterator = _asyncIterator((0, _model.findAllAmendements)());
87
+ case 13:
88
+ _context.next = 15;
89
+ return _iterator.next();
90
+ case 15:
91
+ if (!(_iteratorAbruptCompletion = !(_step = _context.sent).done)) {
92
+ _context.next = 27;
93
+ break;
125
94
  }
95
+ amendement = _step.value;
126
96
  if (options.verbose) {
127
- console.log("Starting getting all the data…");
128
- console.time("get all data");
97
+ console.log("Converting ".concat(amendement.numero, " file\u2026"));
98
+ }
99
+ session = String(amendement.session) || _datautil.UNDEFINED_SESSION;
100
+ signetDossierLegislatif = amendement.signet_dossier_legislatif || "".concat(amendement.nature_texte, "-").concat(amendement.numero_texte).toLowerCase();
101
+ ameliReorganizedDir = _path["default"].join(ameliReorganizedRootDir, session, signetDossierLegislatif);
102
+ _fsExtra["default"].ensureDirSync(ameliReorganizedDir);
103
+ amendementFileName = "".concat(amendement.numero, ".json");
104
+ _fsExtra["default"].writeJSONSync(_path["default"].join(ameliReorganizedDir, amendementFileName), amendement, {
105
+ spaces: 2
106
+ });
107
+ case 24:
108
+ _iteratorAbruptCompletion = false;
109
+ _context.next = 13;
110
+ break;
111
+ case 27:
112
+ _context.next = 33;
113
+ break;
114
+ case 29:
115
+ _context.prev = 29;
116
+ _context.t0 = _context["catch"](11);
117
+ _didIteratorError = true;
118
+ _iteratorError = _context.t0;
119
+ case 33:
120
+ _context.prev = 33;
121
+ _context.prev = 34;
122
+ if (!(_iteratorAbruptCompletion && _iterator["return"] != null)) {
123
+ _context.next = 38;
124
+ break;
125
+ }
126
+ _context.next = 38;
127
+ return _iterator["return"]();
128
+ case 38:
129
+ _context.prev = 38;
130
+ if (!_didIteratorError) {
131
+ _context.next = 41;
132
+ break;
133
+ }
134
+ throw _iteratorError;
135
+ case 41:
136
+ return _context.finish(38);
137
+ case 42:
138
+ return _context.finish(33);
139
+ case 43:
140
+ if (!(enabledDatasets & _datasets.EnabledDatasets.DosLeg)) {
141
+ _context.next = 88;
142
+ break;
143
+ }
144
+ _dataset = _datasets.datasets.dosleg;
145
+ if (!options.silent) {
146
+ console.log("Converting database ".concat(_dataset.database, " data into files\u2026"));
147
+ }
148
+ doslegReorganizedRootDir = _path["default"].join(dataDir, _dataset.database);
149
+ dossiersReorganizedDir = _path["default"].join(doslegReorganizedRootDir, _loaders.DOSLEG_DOSSIERS_FOLDER);
150
+ (0, _util.ensureAndClearDir)(doslegReorganizedRootDir);
151
+ (0, _util.ensureAndClearDir)(dossiersReorganizedDir);
152
+ _iteratorAbruptCompletion2 = false;
153
+ _didIteratorError2 = false;
154
+ _context.prev = 52;
155
+ _iterator2 = _asyncIterator((0, _model.findAllLois)());
156
+ case 54:
157
+ _context.next = 56;
158
+ return _iterator2.next();
159
+ case 56:
160
+ if (!(_iteratorAbruptCompletion2 = !(_step2 = _context.sent).done)) {
161
+ _context.next = 68;
162
+ break;
129
163
  }
130
- _context.next = 14;
131
- return aggregator.getAll();
132
- case 14:
164
+ loi = _step2.value;
133
165
  if (options.verbose) {
134
- console.timeEnd("get all data");
135
- }
136
- allData = aggregator.toJson();
137
- loiReorganizedRootDir = _path["default"].join(dataDir, dataset.database);
138
- ensureAndClearDir(loiReorganizedRootDir);
139
- _iterator2 = _createForOfIteratorHelper(lois);
140
- try {
141
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
142
- _loi = _step2.value;
143
- if (options.verbose) {
144
- console.log("Converting ".concat(_loi.signet, " file\u2026"));
145
- }
146
- (0, _inserters.insertLoiReferences)(_loi, allData, {});
147
- loiFileName = "".concat(_loi.loicod, ".json");
148
- loiReorganizedDir = _path["default"].join(loiReorganizedRootDir, _loi.typloicod);
149
- if (_loi.signet) {
150
- loiFileName = "".concat(_loi.signet, ".json");
151
- signetParts = (_SIGNET_STRUCTURE_REG = SIGNET_STRUCTURE_REGEXP.exec(_loi.signet)) === null || _SIGNET_STRUCTURE_REG === void 0 ? void 0 : _SIGNET_STRUCTURE_REG.groups;
152
- if (signetParts) {
153
- session = signetParts.session;
154
- loiReorganizedDir = _path["default"].join(loiReorganizedDir, session);
155
- } else {
156
- loiReorganizedDir = _path["default"].join(loiReorganizedDir, "non defini");
157
- }
158
- _fsExtra["default"].ensureDirSync(loiReorganizedDir);
159
- }
160
- _fsExtra["default"].writeJSONSync(_path["default"].join(loiReorganizedDir, loiFileName), _loi, {
161
- spaces: 2
162
- });
163
- }
164
- } catch (err) {
165
- _iterator2.e(err);
166
- } finally {
167
- _iterator2.f();
166
+ console.log("Converting ".concat(loi.signet, " file\u2026"));
168
167
  }
169
- case 20:
168
+ loiReorganizedDir = _path["default"].join(dossiersReorganizedDir, _datautil.UNDEFINED_SESSION);
169
+ signetParts = (_SIGNET_STRUCTURE_REG = _datautil.SIGNET_STRUCTURE_REGEXP.exec(loi.signet)) === null || _SIGNET_STRUCTURE_REG === void 0 ? void 0 : _SIGNET_STRUCTURE_REG.groups;
170
+ if (signetParts) {
171
+ _session = signetParts.session;
172
+ formattedSession = (0, _datautil.formatToFourDigitSession)(_session);
173
+ loiReorganizedDir = _path["default"].join(dossiersReorganizedDir, formattedSession);
174
+ }
175
+ _fsExtra["default"].ensureDirSync(loiReorganizedDir);
176
+ loiFileName = "".concat(loi.signet, ".json");
177
+ _fsExtra["default"].writeJSONSync(_path["default"].join(loiReorganizedDir, loiFileName), loi, {
178
+ spaces: 2
179
+ });
180
+ case 65:
181
+ _iteratorAbruptCompletion2 = false;
182
+ _context.next = 54;
183
+ break;
184
+ case 68:
185
+ _context.next = 74;
186
+ break;
187
+ case 70:
188
+ _context.prev = 70;
189
+ _context.t1 = _context["catch"](52);
190
+ _didIteratorError2 = true;
191
+ _iteratorError2 = _context.t1;
192
+ case 74:
193
+ _context.prev = 74;
194
+ _context.prev = 75;
195
+ if (!(_iteratorAbruptCompletion2 && _iterator2["return"] != null)) {
196
+ _context.next = 79;
197
+ break;
198
+ }
199
+ _context.next = 79;
200
+ return _iterator2["return"]();
201
+ case 79:
202
+ _context.prev = 79;
203
+ if (!_didIteratorError2) {
204
+ _context.next = 82;
205
+ break;
206
+ }
207
+ throw _iteratorError2;
208
+ case 82:
209
+ return _context.finish(79);
210
+ case 83:
211
+ return _context.finish(74);
212
+ case 84:
213
+ _context.next = 86;
214
+ return convertTexteUrls(dataDir);
215
+ case 86:
216
+ _context.next = 88;
217
+ return convertRapportUrls(dataDir);
218
+ case 88:
170
219
  if (!(enabledDatasets & _datasets.EnabledDatasets.Questions)) {
171
- _context.next = 36;
220
+ _context.next = 126;
172
221
  break;
173
222
  }
174
- _dataset = _datasets.datasets.questions;
223
+ _dataset2 = _datasets.datasets.questions;
175
224
  if (!options.silent) {
176
- console.log("Converting database ".concat(_dataset.database, " data into files\u2026"));
225
+ console.log("Converting database ".concat(_dataset2.database, " data into files\u2026"));
177
226
  }
178
- _context.next = 25;
179
- return (0, _model.getAllQuestions)();
180
- case 25:
181
- questions = _context.sent;
182
- _aggregator = new _model.Aggregator(new Set(_model.allFollows));
183
- _iterator3 = _createForOfIteratorHelper(questions);
184
- try {
185
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
186
- question = _step3.value;
187
- _aggregator.addQuestion(question);
188
- }
189
- } catch (err) {
190
- _iterator3.e(err);
191
- } finally {
192
- _iterator3.f();
193
- }
194
- _context.next = 31;
195
- return _aggregator.getAll();
196
- case 31:
197
- _allData = _aggregator.toJson();
198
- questionReorganizedRootDir = _path["default"].join(dataDir, _dataset.database);
199
- ensureAndClearDir(questionReorganizedRootDir);
200
- _iterator4 = _createForOfIteratorHelper(questions);
201
- try {
202
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
203
- _question = _step4.value;
204
- if (options.verbose) {
205
- console.log("Converting ".concat(_question.id, " file\u2026"));
206
- }
207
- (0, _inserters.insertQuestionReferences)(_question, _allData, {});
208
- legislature = _question.legislature ? _question.legislature : 0;
209
- questionReorganizedDir = _path["default"].join(questionReorganizedRootDir, String(legislature));
210
- _fsExtra["default"].ensureDirSync(questionReorganizedDir);
211
- questionFileName = "".concat(_question.reference, ".json");
212
- _fsExtra["default"].writeJSONSync(_path["default"].join(questionReorganizedDir, questionFileName), _question, {
213
- spaces: 2
214
- });
215
- }
216
- } catch (err) {
217
- _iterator4.e(err);
218
- } finally {
219
- _iterator4.f();
220
- }
221
- case 36:
227
+ questionsReorganizedRootDir = _path["default"].join(dataDir, _dataset2.database);
228
+ (0, _util.ensureAndClearDir)(questionsReorganizedRootDir);
229
+ _iteratorAbruptCompletion3 = false;
230
+ _didIteratorError3 = false;
231
+ _context.prev = 95;
232
+ _iterator3 = _asyncIterator((0, _model.findAllQuestions)());
233
+ case 97:
234
+ _context.next = 99;
235
+ return _iterator3.next();
236
+ case 99:
237
+ if (!(_iteratorAbruptCompletion3 = !(_step3 = _context.sent).done)) {
238
+ _context.next = 110;
239
+ break;
240
+ }
241
+ question = _step3.value;
242
+ if (options.verbose) {
243
+ console.log("Converting ".concat(question.reference, " file\u2026"));
244
+ }
245
+ legislature = question.legislature ? question.legislature : 0;
246
+ questionReorganizedDir = _path["default"].join(questionsReorganizedRootDir, String(legislature));
247
+ _fsExtra["default"].ensureDirSync(questionReorganizedDir);
248
+ questionFileName = "".concat(question.reference, ".json");
249
+ _fsExtra["default"].writeJSONSync(_path["default"].join(questionReorganizedDir, questionFileName), question, {
250
+ spaces: 2
251
+ });
252
+ case 107:
253
+ _iteratorAbruptCompletion3 = false;
254
+ _context.next = 97;
255
+ break;
256
+ case 110:
257
+ _context.next = 116;
258
+ break;
259
+ case 112:
260
+ _context.prev = 112;
261
+ _context.t2 = _context["catch"](95);
262
+ _didIteratorError3 = true;
263
+ _iteratorError3 = _context.t2;
264
+ case 116:
265
+ _context.prev = 116;
266
+ _context.prev = 117;
267
+ if (!(_iteratorAbruptCompletion3 && _iterator3["return"] != null)) {
268
+ _context.next = 121;
269
+ break;
270
+ }
271
+ _context.next = 121;
272
+ return _iterator3["return"]();
273
+ case 121:
274
+ _context.prev = 121;
275
+ if (!_didIteratorError3) {
276
+ _context.next = 124;
277
+ break;
278
+ }
279
+ throw _iteratorError3;
280
+ case 124:
281
+ return _context.finish(121);
282
+ case 125:
283
+ return _context.finish(116);
284
+ case 126:
222
285
  if (!(enabledDatasets & _datasets.EnabledDatasets.Sens)) {
223
- _context.next = 52;
286
+ _context.next = 227;
224
287
  break;
225
288
  }
226
- _dataset2 = _datasets.datasets.sens;
289
+ _dataset3 = _datasets.datasets.sens;
227
290
  if (!options.silent) {
228
- console.log("Converting database ".concat(_dataset2.database, " data into files\u2026"));
291
+ console.log("Converting database ".concat(_dataset3.database, " data into files\u2026"));
229
292
  }
230
- _context.next = 41;
231
- return (0, _model.getAllSens)();
232
- case 41:
233
- sens = _context.sent;
234
- _aggregator2 = new _model.Aggregator(new Set(_model.allFollows));
235
- _iterator5 = _createForOfIteratorHelper(sens);
236
- try {
237
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
238
- sen = _step5.value;
239
- _aggregator2.addSen(sen);
240
- }
241
- } catch (err) {
242
- _iterator5.e(err);
243
- } finally {
244
- _iterator5.f();
245
- }
246
- _context.next = 47;
247
- return _aggregator2.getAll();
248
- case 47:
249
- _allData2 = _aggregator2.toJson();
250
- senReorganizedRootDir = _path["default"].join(dataDir, _dataset2.database);
251
- ensureAndClearDir(senReorganizedRootDir);
252
- _iterator6 = _createForOfIteratorHelper(sens);
253
- try {
254
- for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
255
- _sen = _step6.value;
256
- if (options.verbose) {
257
- console.log("Converting ".concat(_sen.senmat, " file\u2026"));
258
- }
259
- (0, _inserters.insertSenReferences)(_sen, _allData2, {});
260
- senFileName = "".concat(_sen.senmat, ".json");
261
- _fsExtra["default"].writeJSONSync(_path["default"].join(senReorganizedRootDir, senFileName), _sen, {
262
- spaces: 2
263
- });
264
- }
265
- } catch (err) {
266
- _iterator6.e(err);
267
- } finally {
268
- _iterator6.f();
269
- }
270
- case 52:
293
+ sensReorganizedRootDir = _path["default"].join(dataDir, _dataset3.database);
294
+ senateursReorganizedDir = _path["default"].join(sensReorganizedRootDir, _loaders.SENS_SENATEURS_FOLDER);
295
+ circonscriptionsReorganizedDir = _path["default"].join(sensReorganizedRootDir, _loaders.SENS_CIRCONSCRIPTIONS_FOLDER);
296
+ organismesReorganizedDir = _path["default"].join(sensReorganizedRootDir, _loaders.SENS_ORGANISMES_FOLDER);
297
+ (0, _util.ensureAndClearDir)(sensReorganizedRootDir);
298
+ (0, _util.ensureAndClearDir)(senateursReorganizedDir);
299
+ (0, _util.ensureAndClearDir)(circonscriptionsReorganizedDir);
300
+ (0, _util.ensureAndClearDir)(organismesReorganizedDir);
301
+ _iteratorAbruptCompletion4 = false;
302
+ _didIteratorError4 = false;
303
+ _context.prev = 139;
304
+ _iterator4 = _asyncIterator((0, _model.findAllSens)());
305
+ case 141:
306
+ _context.next = 143;
307
+ return _iterator4.next();
308
+ case 143:
309
+ if (!(_iteratorAbruptCompletion4 = !(_step4 = _context.sent).done)) {
310
+ _context.next = 151;
311
+ break;
312
+ }
313
+ sen = _step4.value;
314
+ if (options.verbose) {
315
+ console.log("Converting ".concat(sen.matricule, " file\u2026"));
316
+ }
317
+ senFileName = "".concat(sen.matricule, ".json");
318
+ _fsExtra["default"].writeJSONSync(_path["default"].join(senateursReorganizedDir, senFileName), sen, {
319
+ spaces: 2
320
+ });
321
+ case 148:
322
+ _iteratorAbruptCompletion4 = false;
323
+ _context.next = 141;
324
+ break;
325
+ case 151:
326
+ _context.next = 157;
327
+ break;
328
+ case 153:
329
+ _context.prev = 153;
330
+ _context.t3 = _context["catch"](139);
331
+ _didIteratorError4 = true;
332
+ _iteratorError4 = _context.t3;
333
+ case 157:
334
+ _context.prev = 157;
335
+ _context.prev = 158;
336
+ if (!(_iteratorAbruptCompletion4 && _iterator4["return"] != null)) {
337
+ _context.next = 162;
338
+ break;
339
+ }
340
+ _context.next = 162;
341
+ return _iterator4["return"]();
342
+ case 162:
343
+ _context.prev = 162;
344
+ if (!_didIteratorError4) {
345
+ _context.next = 165;
346
+ break;
347
+ }
348
+ throw _iteratorError4;
349
+ case 165:
350
+ return _context.finish(162);
351
+ case 166:
352
+ return _context.finish(157);
353
+ case 167:
354
+ _iteratorAbruptCompletion5 = false;
355
+ _didIteratorError5 = false;
356
+ _context.prev = 169;
357
+ _iterator5 = _asyncIterator((0, _model.findAllCirconscriptions)());
358
+ case 171:
359
+ _context.next = 173;
360
+ return _iterator5.next();
361
+ case 173:
362
+ if (!(_iteratorAbruptCompletion5 = !(_step5 = _context.sent).done)) {
363
+ _context.next = 181;
364
+ break;
365
+ }
366
+ circonscription = _step5.value;
367
+ if (options.verbose) {
368
+ console.log("Converting ".concat(circonscription.identifiant, " file\u2026"));
369
+ }
370
+ circonscriptionFileName = "".concat(circonscription.identifiant, ".json");
371
+ _fsExtra["default"].writeJSONSync(_path["default"].join(circonscriptionsReorganizedDir, circonscriptionFileName), circonscription, {
372
+ spaces: 2
373
+ });
374
+ case 178:
375
+ _iteratorAbruptCompletion5 = false;
376
+ _context.next = 171;
377
+ break;
378
+ case 181:
379
+ _context.next = 187;
380
+ break;
381
+ case 183:
382
+ _context.prev = 183;
383
+ _context.t4 = _context["catch"](169);
384
+ _didIteratorError5 = true;
385
+ _iteratorError5 = _context.t4;
386
+ case 187:
387
+ _context.prev = 187;
388
+ _context.prev = 188;
389
+ if (!(_iteratorAbruptCompletion5 && _iterator5["return"] != null)) {
390
+ _context.next = 192;
391
+ break;
392
+ }
393
+ _context.next = 192;
394
+ return _iterator5["return"]();
395
+ case 192:
396
+ _context.prev = 192;
397
+ if (!_didIteratorError5) {
398
+ _context.next = 195;
399
+ break;
400
+ }
401
+ throw _iteratorError5;
402
+ case 195:
403
+ return _context.finish(192);
404
+ case 196:
405
+ return _context.finish(187);
406
+ case 197:
407
+ _iteratorAbruptCompletion6 = false;
408
+ _didIteratorError6 = false;
409
+ _context.prev = 199;
410
+ _iterator6 = _asyncIterator((0, _model.findAllOrganismes)());
411
+ case 201:
412
+ _context.next = 203;
413
+ return _iterator6.next();
414
+ case 203:
415
+ if (!(_iteratorAbruptCompletion6 = !(_step6 = _context.sent).done)) {
416
+ _context.next = 211;
417
+ break;
418
+ }
419
+ organisme = _step6.value;
420
+ if (options.verbose) {
421
+ console.log("Converting ".concat(organisme.code, " file\u2026"));
422
+ }
423
+ organismeFileName = "".concat(organisme.code, ".json");
424
+ _fsExtra["default"].writeJSONSync(_path["default"].join(organismesReorganizedDir, organismeFileName), organisme, {
425
+ spaces: 2
426
+ });
427
+ case 208:
428
+ _iteratorAbruptCompletion6 = false;
429
+ _context.next = 201;
430
+ break;
431
+ case 211:
432
+ _context.next = 217;
433
+ break;
434
+ case 213:
435
+ _context.prev = 213;
436
+ _context.t5 = _context["catch"](199);
437
+ _didIteratorError6 = true;
438
+ _iteratorError6 = _context.t5;
439
+ case 217:
440
+ _context.prev = 217;
441
+ _context.prev = 218;
442
+ if (!(_iteratorAbruptCompletion6 && _iterator6["return"] != null)) {
443
+ _context.next = 222;
444
+ break;
445
+ }
446
+ _context.next = 222;
447
+ return _iterator6["return"]();
448
+ case 222:
449
+ _context.prev = 222;
450
+ if (!_didIteratorError6) {
451
+ _context.next = 225;
452
+ break;
453
+ }
454
+ throw _iteratorError6;
455
+ case 225:
456
+ return _context.finish(222);
457
+ case 226:
458
+ return _context.finish(217);
459
+ case 227:
460
+ if (!options.silent) {
461
+ console.timeEnd("data transformation time");
462
+ }
463
+ case 228:
271
464
  case "end":
272
465
  return _context.stop();
273
466
  }
274
- }, _callee);
467
+ }, _callee, null, [[11, 29, 33, 43], [34,, 38, 42], [52, 70, 74, 84], [75,, 79, 83], [95, 112, 116, 126], [117,, 121, 125], [139, 153, 157, 167], [158,, 162, 166], [169, 183, 187, 197], [188,, 192, 196], [199, 213, 217, 227], [218,, 222, 226]]);
275
468
  }));
276
469
  return _convertData.apply(this, arguments);
277
470
  }
471
+ function convertTexteUrls(_x) {
472
+ return _convertTexteUrls.apply(this, arguments);
473
+ }
474
+ function _convertTexteUrls() {
475
+ _convertTexteUrls = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(dataDir) {
476
+ var textesDir, originalTextesDir, _iteratorAbruptCompletion7, _didIteratorError7, _iteratorError7, _iterator7, _step7, texte, _texte$session, texteName, texteDir, metadata;
477
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
478
+ while (1) switch (_context2.prev = _context2.next) {
479
+ case 0:
480
+ textesDir = _path["default"].join(dataDir, _loaders.TEXTE_FOLDER);
481
+ _fsExtra["default"].ensureDirSync(textesDir);
482
+ originalTextesDir = _path["default"].join(textesDir, _loaders.TEXTE_ORIGINAL_FOLDER);
483
+ _iteratorAbruptCompletion7 = false;
484
+ _didIteratorError7 = false;
485
+ _context2.prev = 5;
486
+ _iterator7 = _asyncIterator((0, _dosleg.findSenatTexteUrls)(options.sessions));
487
+ case 7:
488
+ _context2.next = 9;
489
+ return _iterator7.next();
490
+ case 9:
491
+ if (!(_iteratorAbruptCompletion7 = !(_step7 = _context2.sent).done)) {
492
+ _context2.next = 19;
493
+ break;
494
+ }
495
+ texte = _step7.value;
496
+ texteName = _path["default"].parse(texte.url).name;
497
+ texteDir = _path["default"].join(originalTextesDir, "".concat((_texte$session = texte.session) !== null && _texte$session !== void 0 ? _texte$session : _datautil.UNDEFINED_SESSION), texteName);
498
+ _fsExtra["default"].ensureDirSync(texteDir);
499
+ metadata = {
500
+ name: texteName,
501
+ session: texte.session,
502
+ url_expose_des_motifs: texte.hasExposeDesMotifs ? new URL("".concat(texteName, "-expose.html"), SENAT_EXPOSE_DES_MOTIFS_BASE_URL) : undefined,
503
+ url_xml: new URL("".concat(texteName, ".akn.xml"), SENAT_TEXTE_XML_BASE_URL),
504
+ url_html: new URL("".concat(texteName, ".html"), SENAT_TEXTE_BASE_URL),
505
+ url_pdf: new URL("".concat(texteName, ".pdf"), SENAT_TEXTE_BASE_URL)
506
+ };
507
+ _fsExtra["default"].writeJSONSync(_path["default"].join(texteDir, _loaders.DOCUMENT_METADATA_FILE), metadata, {
508
+ spaces: 2
509
+ });
510
+ case 16:
511
+ _iteratorAbruptCompletion7 = false;
512
+ _context2.next = 7;
513
+ break;
514
+ case 19:
515
+ _context2.next = 25;
516
+ break;
517
+ case 21:
518
+ _context2.prev = 21;
519
+ _context2.t0 = _context2["catch"](5);
520
+ _didIteratorError7 = true;
521
+ _iteratorError7 = _context2.t0;
522
+ case 25:
523
+ _context2.prev = 25;
524
+ _context2.prev = 26;
525
+ if (!(_iteratorAbruptCompletion7 && _iterator7["return"] != null)) {
526
+ _context2.next = 30;
527
+ break;
528
+ }
529
+ _context2.next = 30;
530
+ return _iterator7["return"]();
531
+ case 30:
532
+ _context2.prev = 30;
533
+ if (!_didIteratorError7) {
534
+ _context2.next = 33;
535
+ break;
536
+ }
537
+ throw _iteratorError7;
538
+ case 33:
539
+ return _context2.finish(30);
540
+ case 34:
541
+ return _context2.finish(25);
542
+ case 35:
543
+ case "end":
544
+ return _context2.stop();
545
+ }
546
+ }, _callee2, null, [[5, 21, 25, 35], [26,, 30, 34]]);
547
+ }));
548
+ return _convertTexteUrls.apply(this, arguments);
549
+ }
550
+ function convertRapportUrls(_x2) {
551
+ return _convertRapportUrls.apply(this, arguments);
552
+ }
553
+ function _convertRapportUrls() {
554
+ _convertRapportUrls = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(dataDir) {
555
+ var rapportsDir, _iteratorAbruptCompletion8, _didIteratorError8, _iteratorError8, _iterator8, _step8, rapport, _rapport$session, parsedRapportUrl, rapportName, rapportDir, rapportHtmlUrlBase, rapportHtmlUrl, rapportPdfUrlBase, rapportPdfUrl, metadata;
556
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
557
+ while (1) switch (_context3.prev = _context3.next) {
558
+ case 0:
559
+ rapportsDir = _path["default"].join(dataDir, _loaders.RAPPORT_FOLDER);
560
+ _fsExtra["default"].ensureDirSync(rapportsDir);
561
+ _iteratorAbruptCompletion8 = false;
562
+ _didIteratorError8 = false;
563
+ _context3.prev = 4;
564
+ _iterator8 = _asyncIterator((0, _dosleg.findSenatRapportUrls)(options.sessions));
565
+ case 6:
566
+ _context3.next = 8;
567
+ return _iterator8.next();
568
+ case 8:
569
+ if (!(_iteratorAbruptCompletion8 = !(_step8 = _context3.sent).done)) {
570
+ _context3.next = 23;
571
+ break;
572
+ }
573
+ rapport = _step8.value;
574
+ parsedRapportUrl = _path["default"].parse(rapport.url);
575
+ rapportName = parsedRapportUrl.name;
576
+ rapportDir = _path["default"].join(rapportsDir, "".concat((_rapport$session = rapport.session) !== null && _rapport$session !== void 0 ? _rapport$session : _datautil.UNDEFINED_SESSION), rapportName);
577
+ _fsExtra["default"].ensureDirSync(rapportDir);
578
+ rapportHtmlUrlBase = "".concat(rapportName, "_mono.html");
579
+ rapportHtmlUrl = _path["default"].format({
580
+ dir: parsedRapportUrl.dir,
581
+ base: rapportHtmlUrlBase
582
+ });
583
+ rapportPdfUrlBase = "".concat(rapportName, "1.pdf");
584
+ rapportPdfUrl = _path["default"].format({
585
+ dir: parsedRapportUrl.dir,
586
+ base: rapportPdfUrlBase
587
+ });
588
+ metadata = {
589
+ name: rapportName,
590
+ session: rapport.session,
591
+ url_html: new URL(rapportHtmlUrl, SENAT_RAPPORT_BASE_URL),
592
+ url_pdf: new URL(rapportPdfUrl, SENAT_RAPPORT_BASE_URL)
593
+ };
594
+ _fsExtra["default"].writeJSONSync(_path["default"].join(rapportDir, _loaders.DOCUMENT_METADATA_FILE), metadata, {
595
+ spaces: 2
596
+ });
597
+ case 20:
598
+ _iteratorAbruptCompletion8 = false;
599
+ _context3.next = 6;
600
+ break;
601
+ case 23:
602
+ _context3.next = 29;
603
+ break;
604
+ case 25:
605
+ _context3.prev = 25;
606
+ _context3.t0 = _context3["catch"](4);
607
+ _didIteratorError8 = true;
608
+ _iteratorError8 = _context3.t0;
609
+ case 29:
610
+ _context3.prev = 29;
611
+ _context3.prev = 30;
612
+ if (!(_iteratorAbruptCompletion8 && _iterator8["return"] != null)) {
613
+ _context3.next = 34;
614
+ break;
615
+ }
616
+ _context3.next = 34;
617
+ return _iterator8["return"]();
618
+ case 34:
619
+ _context3.prev = 34;
620
+ if (!_didIteratorError8) {
621
+ _context3.next = 37;
622
+ break;
623
+ }
624
+ throw _iteratorError8;
625
+ case 37:
626
+ return _context3.finish(34);
627
+ case 38:
628
+ return _context3.finish(29);
629
+ case 39:
630
+ case "end":
631
+ return _context3.stop();
632
+ }
633
+ }, _callee3, null, [[4, 25, 29, 39], [30,, 34, 38]]);
634
+ }));
635
+ return _convertRapportUrls.apply(this, arguments);
636
+ }
278
637
  convertData().then(function () {
279
638
  return process.exit(0);
280
639
  })["catch"](function (error) {
281
640
  console.log(error);
282
641
  process.exit(1);
283
642
  });
284
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnNFeHRyYSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3BhdGgiLCJfY29tbWFuZExpbmVBcmdzIiwiX2RhdGFzZXRzIiwiX21vZGVsIiwiX2luc2VydGVycyIsImUiLCJfX2VzTW9kdWxlIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbiIsIkYiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwiZnJvbSIsInRlc3QiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJfd3JhcFJlZ0V4cCIsIkJhYmVsUmVnRXhwIiwiUmVnRXhwIiwiV2Vha01hcCIsInNldCIsImdldCIsIl9zZXRQcm90b3R5cGVPZiIsImJ1aWxkR3JvdXBzIiwicmVkdWNlIiwiX2luaGVyaXRzIiwiZXhlYyIsImdyb3VwcyIsImluZGljZXMiLCJyZXBsYWNlIiwiam9pbiIsImJpbmQiLCJvcHRpb25zRGVmaW5pdGlvbnMiLCJhbGlhcyIsImRlZmF1bHRWYWx1ZSIsImhlbHAiLCJtdWx0aXBsZSIsIlN0cmluZyIsIkJvb2xlYW4iLCJkZWZhdWx0T3B0aW9uIiwib3B0aW9ucyIsImNvbW1hbmRMaW5lQXJncyIsIlNJR05FVF9TVFJVQ1RVUkVfUkVHRVhQIiwic2Vzc2lvbiIsIm51bVRleHRlIiwiZW5zdXJlQW5kQ2xlYXJEaXIiLCJwYXRoIiwiZnMiLCJleGlzdHNTeW5jIiwibWtkaXJTeW5jIiwiZW1wdHlEaXJTeW5jIiwiY29udmVydERhdGEiLCJfY29udmVydERhdGEiLCJfY2FsbGVlIiwiZW5hYmxlZERhdGFzZXRzIiwiZGF0YURpciIsImRhdGFzZXQiLCJsb2lzIiwiYWdncmVnYXRvciIsIl9pdGVyYXRvciIsIl9zdGVwIiwibG9pIiwiYWxsRGF0YSIsImxvaVJlb3JnYW5pemVkUm9vdERpciIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJfbG9pIiwibG9pRmlsZU5hbWUiLCJsb2lSZW9yZ2FuaXplZERpciIsIl9TSUdORVRfU1RSVUNUVVJFX1JFRyIsInNpZ25ldFBhcnRzIiwiX2RhdGFzZXQiLCJxdWVzdGlvbnMiLCJfYWdncmVnYXRvciIsIl9pdGVyYXRvcjMiLCJfc3RlcDMiLCJxdWVzdGlvbiIsIl9hbGxEYXRhIiwicXVlc3Rpb25SZW9yZ2FuaXplZFJvb3REaXIiLCJfaXRlcmF0b3I0IiwiX3N0ZXA0IiwiX3F1ZXN0aW9uIiwibGVnaXNsYXR1cmUiLCJxdWVzdGlvblJlb3JnYW5pemVkRGlyIiwicXVlc3Rpb25GaWxlTmFtZSIsIl9kYXRhc2V0MiIsInNlbnMiLCJfYWdncmVnYXRvcjIiLCJfaXRlcmF0b3I1IiwiX3N0ZXA1Iiwic2VuIiwiX2FsbERhdGEyIiwic2VuUmVvcmdhbml6ZWRSb290RGlyIiwiX2l0ZXJhdG9yNiIsIl9zdGVwNiIsIl9zZW4iLCJzZW5GaWxlTmFtZSIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJnZXRFbmFibGVkRGF0YXNldHMiLCJjYXRlZ29yaWVzIiwiRW5hYmxlZERhdGFzZXRzIiwiRG9zTGVnIiwiZGF0YXNldHMiLCJkb3NsZWciLCJzaWxlbnQiLCJjb25zb2xlIiwibG9nIiwiY29uY2F0IiwiZGF0YWJhc2UiLCJnZXRBbGxMb2lzIiwiQWdncmVnYXRvciIsIlNldCIsImFsbEZvbGxvd3MiLCJhZGRMb2kiLCJlcnIiLCJ2ZXJib3NlIiwidGltZSIsImdldEFsbCIsInRpbWVFbmQiLCJ0b0pzb24iLCJzaWduZXQiLCJpbnNlcnRMb2lSZWZlcmVuY2VzIiwibG9pY29kIiwidHlwbG9pY29kIiwiZW5zdXJlRGlyU3luYyIsIndyaXRlSlNPTlN5bmMiLCJzcGFjZXMiLCJRdWVzdGlvbnMiLCJnZXRBbGxRdWVzdGlvbnMiLCJhZGRRdWVzdGlvbiIsImlkIiwiaW5zZXJ0UXVlc3Rpb25SZWZlcmVuY2VzIiwicmVmZXJlbmNlIiwiU2VucyIsImdldEFsbFNlbnMiLCJhZGRTZW4iLCJzZW5tYXQiLCJpbnNlcnRTZW5SZWZlcmVuY2VzIiwicHJvY2VzcyIsImV4aXQiLCJlcnJvciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL2NvbnZlcnRfZGF0YS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSAnZnMtZXh0cmEnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tICdjb21tYW5kLWxpbmUtYXJncydcblxuaW1wb3J0IHsgZGF0YXNldHMsIEVuYWJsZWREYXRhc2V0cywgZ2V0RW5hYmxlZERhdGFzZXRzLCB9IGZyb20gJy4uL2RhdGFzZXRzJ1xuaW1wb3J0IHtcbiAgQWdncmVnYXRvcixcbiAgYWxsRm9sbG93cyxcbiAgZ2V0QWxsTG9pcyxcbiAgZ2V0QWxsUXVlc3Rpb25zLFxuICBnZXRBbGxTZW5zXG59IGZyb20gJy4uL21vZGVsJ1xuaW1wb3J0IHtcbiAgaW5zZXJ0TG9pUmVmZXJlbmNlcyxcbiAgaW5zZXJ0UXVlc3Rpb25SZWZlcmVuY2VzLFxuICBpbnNlcnRTZW5SZWZlcmVuY2VzXG59IGZyb20gJy4uL2luc2VydGVycydcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICB7XG4gICAgYWxpYXM6ICdrJyxcbiAgICBkZWZhdWx0VmFsdWU6IFsnQWxsJ10sXG4gICAgaGVscDogJ2NhdGVnb3JpZXMgb2YgZGF0YXNldHMgdG8gcmVvcmdhbml6ZScsXG4gICAgbXVsdGlwbGU6IHRydWUsXG4gICAgbmFtZTogJ2NhdGVnb3JpZXMnLFxuICAgIHR5cGU6IFN0cmluZyxcbiAgfSxcbiAge1xuICAgIGFsaWFzOiAncycsXG4gICAgaGVscDogJ2RvblxcJ3QgbG9nIGFueXRoaW5nJyxcbiAgICBuYW1lOiAnc2lsZW50JyxcbiAgICB0eXBlOiBCb29sZWFuLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwidlwiLFxuICAgIGhlbHA6IFwidmVyYm9zZSBsb2dzXCIsXG4gICAgbmFtZTogXCJ2ZXJib3NlXCIsXG4gICAgdHlwZTogQm9vbGVhbixcbiAgfSxcbiAge1xuICAgIGRlZmF1bHRPcHRpb246IHRydWUsXG4gICAgaGVscDogJ2RpcmVjdG9yeSBjb250YWluaW5nIFPDqW5hdCBvcGVuIGRhdGEgZmlsZXMnLFxuICAgIG5hbWU6ICdkYXRhRGlyJyxcbiAgICB0eXBlOiBTdHJpbmcsXG4gIH0sXG5dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcblxuY29uc3QgU0lHTkVUX1NUUlVDVFVSRV9SRUdFWFAgPSAvXig/PHR5cGU+W2Etel0rKSg/PHNlc3Npb24+XFxkezIsNH0pLT8oPzxudW1UZXh0ZT5cXGQrKT8vXG5cbmZ1bmN0aW9uIGVuc3VyZUFuZENsZWFyRGlyKHBhdGg6IHN0cmluZykge1xuICBpZiAoIWZzLmV4aXN0c1N5bmMocGF0aCkpIHtcbiAgICBmcy5ta2RpclN5bmMocGF0aClcbiAgfSBlbHNlIHtcbiAgICBmcy5lbXB0eURpclN5bmMocGF0aClcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBjb252ZXJ0RGF0YSgpIHtcbiAgY29uc3QgZW5hYmxlZERhdGFzZXRzID0gZ2V0RW5hYmxlZERhdGFzZXRzKG9wdGlvbnMuY2F0ZWdvcmllcylcbiAgY29uc3QgZGF0YURpcjogc3RyaW5nID0gb3B0aW9ucy5kYXRhRGlyXG5cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Eb3NMZWcpIHtcbiAgICBjb25zdCBkYXRhc2V0ID0gZGF0YXNldHMuZG9zbGVnXG5cbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhgQ29udmVydGluZyBkYXRhYmFzZSAke2RhdGFzZXQuZGF0YWJhc2V9IGRhdGEgaW50byBmaWxlc+KApmApXG4gICAgfVxuXG4gICAgY29uc3QgbG9pcyA9IGF3YWl0IGdldEFsbExvaXMoKVxuICAgIGNvbnN0IGFnZ3JlZ2F0b3IgPSBuZXcgQWdncmVnYXRvcihuZXcgU2V0KGFsbEZvbGxvd3MpKVxuICAgIGZvciAoY29uc3QgbG9pIG9mIGxvaXMpIHtcbiAgICAgIGFnZ3JlZ2F0b3IuYWRkTG9pKGxvaSlcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgY29uc29sZS5sb2coXCJTdGFydGluZyBnZXR0aW5nIGFsbCB0aGUgZGF0YeKAplwiKVxuICAgICAgY29uc29sZS50aW1lKFwiZ2V0IGFsbCBkYXRhXCIpXG4gICAgfVxuICAgIGF3YWl0IGFnZ3JlZ2F0b3IuZ2V0QWxsKClcbiAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICBjb25zb2xlLnRpbWVFbmQoXCJnZXQgYWxsIGRhdGFcIilcbiAgICB9XG4gICAgY29uc3QgYWxsRGF0YSA9IGFnZ3JlZ2F0b3IudG9Kc29uKClcblxuICAgIGNvbnN0IGxvaVJlb3JnYW5pemVkUm9vdERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0LmRhdGFiYXNlKVxuICAgIGVuc3VyZUFuZENsZWFyRGlyKGxvaVJlb3JnYW5pemVkUm9vdERpcilcblxuICAgIGZvciAoY29uc3QgbG9pIG9mIGxvaXMpIHtcbiAgICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgY29uc29sZS5sb2coYENvbnZlcnRpbmcgJHtsb2kuc2lnbmV0fSBmaWxl4oCmYClcbiAgICAgIH1cblxuICAgICAgaW5zZXJ0TG9pUmVmZXJlbmNlcyhsb2ksIGFsbERhdGEsIHt9KVxuXG4gICAgICBsZXQgbG9pRmlsZU5hbWUgPSBgJHtsb2kubG9pY29kfS5qc29uYFxuICAgICAgbGV0IGxvaVJlb3JnYW5pemVkRGlyID0gcGF0aC5qb2luKGxvaVJlb3JnYW5pemVkUm9vdERpciwgbG9pLnR5cGxvaWNvZClcbiAgICAgIGlmIChsb2kuc2lnbmV0KSB7XG4gICAgICAgIGxvaUZpbGVOYW1lID0gYCR7bG9pLnNpZ25ldH0uanNvbmBcbiAgICAgICAgbGV0IHNpZ25ldFBhcnRzID0gU0lHTkVUX1NUUlVDVFVSRV9SRUdFWFAuZXhlYyhsb2kuc2lnbmV0KT8uZ3JvdXBzXG4gICAgICAgIGlmIChzaWduZXRQYXJ0cykge1xuICAgICAgICAgIGNvbnN0IHsgc2Vzc2lvbn0gPSBzaWduZXRQYXJ0c1xuICAgICAgICAgIGxvaVJlb3JnYW5pemVkRGlyID0gcGF0aC5qb2luKGxvaVJlb3JnYW5pemVkRGlyLCBzZXNzaW9uKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvaVJlb3JnYW5pemVkRGlyID0gcGF0aC5qb2luKGxvaVJlb3JnYW5pemVkRGlyLCBcIm5vbiBkZWZpbmlcIilcbiAgICAgICAgfVxuICAgICAgICBmcy5lbnN1cmVEaXJTeW5jKGxvaVJlb3JnYW5pemVkRGlyKVxuICAgICAgfVxuXG4gICAgICBmcy53cml0ZUpTT05TeW5jKHBhdGguam9pbihsb2lSZW9yZ2FuaXplZERpciwgbG9pRmlsZU5hbWUpLCBsb2ksIHtzcGFjZXM6IDJ9KVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUXVlc3Rpb25zKSB7XG4gICAgY29uc3QgZGF0YXNldCA9IGRhdGFzZXRzLnF1ZXN0aW9uc1xuXG4gICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgY29uc29sZS5sb2coYENvbnZlcnRpbmcgZGF0YWJhc2UgJHtkYXRhc2V0LmRhdGFiYXNlfSBkYXRhIGludG8gZmlsZXPigKZgKVxuICAgIH1cblxuICAgIGNvbnN0IHF1ZXN0aW9ucyA9IGF3YWl0IGdldEFsbFF1ZXN0aW9ucygpXG4gICAgY29uc3QgYWdncmVnYXRvciA9IG5ldyBBZ2dyZWdhdG9yKG5ldyBTZXQoYWxsRm9sbG93cykpXG4gICAgZm9yIChjb25zdCBxdWVzdGlvbiBvZiBxdWVzdGlvbnMpIHtcbiAgICAgIGFnZ3JlZ2F0b3IuYWRkUXVlc3Rpb24ocXVlc3Rpb24pXG4gICAgfVxuICAgIGF3YWl0IGFnZ3JlZ2F0b3IuZ2V0QWxsKClcbiAgICBjb25zdCBhbGxEYXRhID0gYWdncmVnYXRvci50b0pzb24oKVxuXG4gICAgY29uc3QgcXVlc3Rpb25SZW9yZ2FuaXplZFJvb3REaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5kYXRhYmFzZSlcbiAgICBlbnN1cmVBbmRDbGVhckRpcihxdWVzdGlvblJlb3JnYW5pemVkUm9vdERpcilcblxuICAgIGZvciAoY29uc3QgcXVlc3Rpb24gb2YgcXVlc3Rpb25zKSB7XG4gICAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBDb252ZXJ0aW5nICR7cXVlc3Rpb24uaWR9IGZpbGXigKZgKVxuICAgICAgfVxuXG4gICAgICBpbnNlcnRRdWVzdGlvblJlZmVyZW5jZXMocXVlc3Rpb24sIGFsbERhdGEsIHt9KVxuXG4gICAgICBjb25zdCBsZWdpc2xhdHVyZSA9IHF1ZXN0aW9uLmxlZ2lzbGF0dXJlID8gcXVlc3Rpb24ubGVnaXNsYXR1cmUgOiAwXG4gICAgICBjb25zdCBxdWVzdGlvblJlb3JnYW5pemVkRGlyID0gcGF0aC5qb2luKHF1ZXN0aW9uUmVvcmdhbml6ZWRSb290RGlyLCBTdHJpbmcobGVnaXNsYXR1cmUpKVxuICAgICAgZnMuZW5zdXJlRGlyU3luYyhxdWVzdGlvblJlb3JnYW5pemVkRGlyKVxuICAgICAgbGV0IHF1ZXN0aW9uRmlsZU5hbWUgPSBgJHtxdWVzdGlvbi5yZWZlcmVuY2V9Lmpzb25gXG4gICAgICBmcy53cml0ZUpTT05TeW5jKHBhdGguam9pbihxdWVzdGlvblJlb3JnYW5pemVkRGlyLCBxdWVzdGlvbkZpbGVOYW1lKSwgcXVlc3Rpb24sIHtzcGFjZXM6IDJ9KVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuU2Vucykge1xuICAgIGNvbnN0IGRhdGFzZXQgPSBkYXRhc2V0cy5zZW5zXG5cbiAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICBjb25zb2xlLmxvZyhgQ29udmVydGluZyBkYXRhYmFzZSAke2RhdGFzZXQuZGF0YWJhc2V9IGRhdGEgaW50byBmaWxlc+KApmApXG4gICAgfVxuXG4gICAgY29uc3Qgc2VucyA9IGF3YWl0IGdldEFsbFNlbnMoKVxuICAgIGNvbnN0IGFnZ3JlZ2F0b3IgPSBuZXcgQWdncmVnYXRvcihuZXcgU2V0KGFsbEZvbGxvd3MpKVxuICAgIGZvciAoY29uc3Qgc2VuIG9mIHNlbnMpIHtcbiAgICAgIGFnZ3JlZ2F0b3IuYWRkU2VuKHNlbilcbiAgICB9XG4gICAgYXdhaXQgYWdncmVnYXRvci5nZXRBbGwoKVxuICAgIGNvbnN0IGFsbERhdGEgPSBhZ2dyZWdhdG9yLnRvSnNvbigpXG5cbiAgICBjb25zdCBzZW5SZW9yZ2FuaXplZFJvb3REaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5kYXRhYmFzZSlcbiAgICBlbnN1cmVBbmRDbGVhckRpcihzZW5SZW9yZ2FuaXplZFJvb3REaXIpXG5cbiAgICBmb3IgKGNvbnN0IHNlbiBvZiBzZW5zKSB7XG4gICAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBDb252ZXJ0aW5nICR7c2VuLnNlbm1hdH0gZmlsZeKApmApXG4gICAgICB9XG5cbiAgICAgIGluc2VydFNlblJlZmVyZW5jZXMoc2VuLCBhbGxEYXRhLCB7fSlcblxuICAgICAgbGV0IHNlbkZpbGVOYW1lID0gYCR7c2VuLnNlbm1hdH0uanNvbmBcbiAgICAgIGZzLndyaXRlSlNPTlN5bmMocGF0aC5qb2luKHNlblJlb3JnYW5pemVkUm9vdERpciwgc2VuRmlsZU5hbWUpLCBzZW4sIHtzcGFjZXM6IDJ9KVxuICAgIH1cbiAgfVxufVxuXG5jb252ZXJ0RGF0YSgpXG4gIC50aGVuKCgpID0+IHByb2Nlc3MuZXhpdCgwKSlcbiAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLGdCQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRyxTQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFPQSxJQUFBSyxVQUFBLEdBQUFMLE9BQUE7QUFJcUIsU0FBQUQsdUJBQUFPLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxnQkFBQUEsQ0FBQTtBQUFBLFNBQUFFLG9CQUFBLGtCQWZyQixxSkFBQUEsbUJBQUEsWUFBQUEsb0JBQUEsV0FBQUYsQ0FBQSxTQUFBRyxDQUFBLEVBQUFILENBQUEsT0FBQUksQ0FBQSxHQUFBQyxNQUFBLENBQUFDLFNBQUEsRUFBQUMsQ0FBQSxHQUFBSCxDQUFBLENBQUFJLGNBQUEsRUFBQUMsQ0FBQSxHQUFBSixNQUFBLENBQUFLLGNBQUEsY0FBQVAsQ0FBQSxFQUFBSCxDQUFBLEVBQUFJLENBQUEsSUFBQUQsQ0FBQSxDQUFBSCxDQUFBLElBQUFJLENBQUEsQ0FBQU8sS0FBQSxLQUFBQyxDQUFBLHdCQUFBQyxNQUFBLEdBQUFBLE1BQUEsT0FBQUMsQ0FBQSxHQUFBRixDQUFBLENBQUFHLFFBQUEsa0JBQUFDLENBQUEsR0FBQUosQ0FBQSxDQUFBSyxhQUFBLHVCQUFBQyxDQUFBLEdBQUFOLENBQUEsQ0FBQU8sV0FBQSw4QkFBQUMsT0FBQWpCLENBQUEsRUFBQUgsQ0FBQSxFQUFBSSxDQUFBLFdBQUFD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
643
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29tbWFuZExpbmVBcmdzIiwiX2ZzRXh0cmEiLCJfcGF0aCIsIl9kYXRhc2V0cyIsIl9sb2FkZXJzIiwiX21vZGVsIiwiX2Rvc2xlZyIsIl9kYXRhdXRpbCIsIl9jbGlfaGVscGVycyIsIl91dGlsIiwiZSIsIl9fZXNNb2R1bGUiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwiciIsInQiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJuIiwiaGFzT3duUHJvcGVydHkiLCJvIiwiU3ltYm9sIiwiaSIsIml0ZXJhdG9yIiwiYSIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJjIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImgiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJhcmciLCJkZWxlZ2F0ZSIsImQiLCJmIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJzIiwidHlwZSIsIkNvbnRleHQiLCJjYWxsIiwid3JhcCIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJsIiwicCIsImdldFByb3RvdHlwZU9mIiwieSIsIngiLCJ2IiwiZyIsImZvckVhY2giLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsIl90eXBlb2YiLCJyZXNvbHZlIiwiX19hd2FpdCIsInRoZW4iLCJUeXBlRXJyb3IiLCJuZXh0IiwidyIsInRyeUVudHJpZXMiLCJwdXNoIiwibSIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJ1bnNoaWZ0IiwicG9wIiwidmFsdWVzIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJpc0FycmF5IiwiX2FzeW5jSXRlcmF0b3IiLCJBc3luY0Zyb21TeW5jSXRlcmF0b3IiLCJBc3luY0Zyb21TeW5jSXRlcmF0b3JDb250aW51YXRpb24iLCJyZWplY3QiLCJfcmV0dXJuIiwib3B0aW9uc0RlZmluaXRpb25zIiwiY29tbW9uT3B0aW9ucyIsIm9wdGlvbnMiLCJjb21tYW5kTGluZUFyZ3MiLCJTRU5BVF9URVhURV9YTUxfQkFTRV9VUkwiLCJTRU5BVF9URVhURV9CQVNFX1VSTCIsIlNFTkFUX0VYUE9TRV9ERVNfTU9USUZTX0JBU0VfVVJMIiwiU0VOQVRfUkFQUE9SVF9CQVNFX1VSTCIsImNvbnZlcnREYXRhIiwiX2NvbnZlcnREYXRhIiwiX2NhbGxlZSIsImVuYWJsZWREYXRhc2V0cyIsImRhdGFEaXIiLCJkYXRhc2V0IiwiYW1lbGlSZW9yZ2FuaXplZFJvb3REaXIiLCJfaXRlcmF0b3JBYnJ1cHRDb21wbGV0aW9uIiwiX2RpZEl0ZXJhdG9yRXJyb3IiLCJfaXRlcmF0b3JFcnJvciIsIl9pdGVyYXRvciIsIl9zdGVwIiwiYW1lbmRlbWVudCIsInNlc3Npb24iLCJzaWduZXREb3NzaWVyTGVnaXNsYXRpZiIsImFtZWxpUmVvcmdhbml6ZWREaXIiLCJhbWVuZGVtZW50RmlsZU5hbWUiLCJfZGF0YXNldCIsImRvc2xlZ1Jlb3JnYW5pemVkUm9vdERpciIsImRvc3NpZXJzUmVvcmdhbml6ZWREaXIiLCJfaXRlcmF0b3JBYnJ1cHRDb21wbGV0aW9uMiIsIl9kaWRJdGVyYXRvckVycm9yMiIsIl9pdGVyYXRvckVycm9yMiIsIl9pdGVyYXRvcjIiLCJfc3RlcDIiLCJsb2kiLCJfU0lHTkVUX1NUUlVDVFVSRV9SRUciLCJsb2lSZW9yZ2FuaXplZERpciIsInNpZ25ldFBhcnRzIiwiX3Nlc3Npb24iLCJmb3JtYXR0ZWRTZXNzaW9uIiwibG9pRmlsZU5hbWUiLCJfZGF0YXNldDIiLCJxdWVzdGlvbnNSZW9yZ2FuaXplZFJvb3REaXIiLCJfaXRlcmF0b3JBYnJ1cHRDb21wbGV0aW9uMyIsIl9kaWRJdGVyYXRvckVycm9yMyIsIl9pdGVyYXRvckVycm9yMyIsIl9pdGVyYXRvcjMiLCJfc3RlcDMiLCJxdWVzdGlvbiIsImxlZ2lzbGF0dXJlIiwicXVlc3Rpb25SZW9yZ2FuaXplZERpciIsInF1ZXN0aW9uRmlsZU5hbWUiLCJfZGF0YXNldDMiLCJzZW5zUmVvcmdhbml6ZWRSb290RGlyIiwic2VuYXRldXJzUmVvcmdhbml6ZWREaXIiLCJjaXJjb25zY3JpcHRpb25zUmVvcmdhbml6ZWREaXIiLCJvcmdhbmlzbWVzUmVvcmdhbml6ZWREaXIiLCJfaXRlcmF0b3JBYnJ1cHRDb21wbGV0aW9uNCIsIl9kaWRJdGVyYXRvckVycm9yNCIsIl9pdGVyYXRvckVycm9yNCIsIl9pdGVyYXRvcjQiLCJfc3RlcDQiLCJzZW4iLCJzZW5GaWxlTmFtZSIsIl9pdGVyYXRvckFicnVwdENvbXBsZXRpb241IiwiX2RpZEl0ZXJhdG9yRXJyb3I1IiwiX2l0ZXJhdG9yRXJyb3I1IiwiX2l0ZXJhdG9yNSIsIl9zdGVwNSIsImNpcmNvbnNjcmlwdGlvbiIsImNpcmNvbnNjcmlwdGlvbkZpbGVOYW1lIiwiX2l0ZXJhdG9yQWJydXB0Q29tcGxldGlvbjYiLCJfZGlkSXRlcmF0b3JFcnJvcjYiLCJfaXRlcmF0b3JFcnJvcjYiLCJfaXRlcmF0b3I2IiwiX3N0ZXA2Iiwib3JnYW5pc21lIiwib3JnYW5pc21lRmlsZU5hbWUiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwiZ2V0RW5hYmxlZERhdGFzZXRzIiwiY2F0ZWdvcmllcyIsImFzc2VydCIsImNvbnNvbGUiLCJ0aW1lIiwiRW5hYmxlZERhdGFzZXRzIiwiQW1lbGkiLCJkYXRhc2V0cyIsImFtZWxpIiwic2lsZW50IiwibG9nIiwiY29uY2F0IiwiZGF0YWJhc2UiLCJwYXRoIiwiam9pbiIsImVuc3VyZUFuZENsZWFyRGlyIiwiZmluZEFsbEFtZW5kZW1lbnRzIiwidmVyYm9zZSIsIm51bWVybyIsIlN0cmluZyIsIlVOREVGSU5FRF9TRVNTSU9OIiwic2lnbmV0X2Rvc3NpZXJfbGVnaXNsYXRpZiIsIm5hdHVyZV90ZXh0ZSIsIm51bWVyb190ZXh0ZSIsInRvTG93ZXJDYXNlIiwiZnMiLCJlbnN1cmVEaXJTeW5jIiwid3JpdGVKU09OU3luYyIsInNwYWNlcyIsInQwIiwiRG9zTGVnIiwiZG9zbGVnIiwiRE9TTEVHX0RPU1NJRVJTX0ZPTERFUiIsImZpbmRBbGxMb2lzIiwic2lnbmV0IiwiU0lHTkVUX1NUUlVDVFVSRV9SRUdFWFAiLCJleGVjIiwiZ3JvdXBzIiwiZm9ybWF0VG9Gb3VyRGlnaXRTZXNzaW9uIiwidDEiLCJjb252ZXJ0VGV4dGVVcmxzIiwiY29udmVydFJhcHBvcnRVcmxzIiwiUXVlc3Rpb25zIiwicXVlc3Rpb25zIiwiZmluZEFsbFF1ZXN0aW9ucyIsInJlZmVyZW5jZSIsInQyIiwiU2VucyIsInNlbnMiLCJTRU5TX1NFTkFURVVSU19GT0xERVIiLCJTRU5TX0NJUkNPTlNDUklQVElPTlNfRk9MREVSIiwiU0VOU19PUkdBTklTTUVTX0ZPTERFUiIsImZpbmRBbGxTZW5zIiwibWF0cmljdWxlIiwidDMiLCJmaW5kQWxsQ2lyY29uc2NyaXB0aW9ucyIsImlkZW50aWZpYW50IiwidDQiLCJmaW5kQWxsT3JnYW5pc21lcyIsImNvZGUiLCJ0NSIsInRpbWVFbmQiLCJfeCIsIl9jb252ZXJ0VGV4dGVVcmxzIiwiX2NhbGxlZTIiLCJ0ZXh0ZXNEaXIiLCJvcmlnaW5hbFRleHRlc0RpciIsIl9pdGVyYXRvckFicnVwdENvbXBsZXRpb243IiwiX2RpZEl0ZXJhdG9yRXJyb3I3IiwiX2l0ZXJhdG9yRXJyb3I3IiwiX2l0ZXJhdG9yNyIsIl9zdGVwNyIsInRleHRlIiwiX3RleHRlJHNlc3Npb24iLCJ0ZXh0ZU5hbWUiLCJ0ZXh0ZURpciIsIm1ldGFkYXRhIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwiVEVYVEVfRk9MREVSIiwiVEVYVEVfT1JJR0lOQUxfRk9MREVSIiwiZmluZFNlbmF0VGV4dGVVcmxzIiwic2Vzc2lvbnMiLCJwYXJzZSIsInVybCIsInVybF9leHBvc2VfZGVzX21vdGlmcyIsImhhc0V4cG9zZURlc01vdGlmcyIsIlVSTCIsInVuZGVmaW5lZCIsInVybF94bWwiLCJ1cmxfaHRtbCIsInVybF9wZGYiLCJET0NVTUVOVF9NRVRBREFUQV9GSUxFIiwiX3gyIiwiX2NvbnZlcnRSYXBwb3J0VXJscyIsIl9jYWxsZWUzIiwicmFwcG9ydHNEaXIiLCJfaXRlcmF0b3JBYnJ1cHRDb21wbGV0aW9uOCIsIl9kaWRJdGVyYXRvckVycm9yOCIsIl9pdGVyYXRvckVycm9yOCIsIl9pdGVyYXRvcjgiLCJfc3RlcDgiLCJyYXBwb3J0IiwiX3JhcHBvcnQkc2Vzc2lvbiIsInBhcnNlZFJhcHBvcnRVcmwiLCJyYXBwb3J0TmFtZSIsInJhcHBvcnREaXIiLCJyYXBwb3J0SHRtbFVybEJhc2UiLCJyYXBwb3J0SHRtbFVybCIsInJhcHBvcnRQZGZVcmxCYXNlIiwicmFwcG9ydFBkZlVybCIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsIlJBUFBPUlRfRk9MREVSIiwiZmluZFNlbmF0UmFwcG9ydFVybHMiLCJmb3JtYXQiLCJkaXIiLCJiYXNlIiwicHJvY2VzcyIsImV4aXQiLCJlcnJvciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL2NvbnZlcnRfZGF0YS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIlxuaW1wb3J0IGNvbW1hbmRMaW5lQXJncyBmcm9tIFwiY29tbWFuZC1saW5lLWFyZ3NcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmltcG9ydCB7IGRhdGFzZXRzLCBFbmFibGVkRGF0YXNldHMsIGdldEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuLi9kYXRhc2V0c1wiXG5pbXBvcnQge1xuICBET0NVTUVOVF9NRVRBREFUQV9GSUxFLFxuICBET1NMRUdfRE9TU0lFUlNfRk9MREVSLFxuICBSQVBQT1JUX0ZPTERFUixcbiAgUmFwcG9ydE1ldGFkYXRhLFxuICBTRU5TX0NJUkNPTlNDUklQVElPTlNfRk9MREVSLFxuICBTRU5TX09SR0FOSVNNRVNfRk9MREVSLFxuICBTRU5TX1NFTkFURVVSU19GT0xERVIsXG4gIFRFWFRFX0ZPTERFUixcbiAgVEVYVEVfT1JJR0lOQUxfRk9MREVSLFxuICBUZXh0ZU1ldGFkYXRhLFxufSBmcm9tIFwiLi4vbG9hZGVyc1wiXG5pbXBvcnQge1xuICBmaW5kQWxsQW1lbmRlbWVudHMsXG4gIGZpbmRBbGxDaXJjb25zY3JpcHRpb25zLFxuICBmaW5kQWxsTG9pcyxcbiAgZmluZEFsbE9yZ2FuaXNtZXMsXG4gIGZpbmRBbGxRdWVzdGlvbnMsXG4gIGZpbmRBbGxTZW5zLFxufSBmcm9tIFwiLi4vbW9kZWxcIlxuaW1wb3J0IHsgZmluZFNlbmF0UmFwcG9ydFVybHMsIGZpbmRTZW5hdFRleHRlVXJscyB9IGZyb20gXCIuLi9tb2RlbC9kb3NsZWdcIlxuaW1wb3J0IHsgZm9ybWF0VG9Gb3VyRGlnaXRTZXNzaW9uLCBTSUdORVRfU1RSVUNUVVJFX1JFR0VYUCwgVU5ERUZJTkVEX1NFU1NJT04gfSBmcm9tIFwiLi9kYXRhdXRpbFwiXG5pbXBvcnQgeyBjb21tb25PcHRpb25zIH0gZnJvbSBcIi4vc2hhcmVkL2NsaV9oZWxwZXJzXCJcbmltcG9ydCB7IGVuc3VyZUFuZENsZWFyRGlyIH0gZnJvbSBcIi4vc2hhcmVkL3V0aWxcIlxuXG5jb25zdCBvcHRpb25zRGVmaW5pdGlvbnMgPSBbXG4gIC4uLmNvbW1vbk9wdGlvbnMsXG5dXG5jb25zdCBvcHRpb25zID0gY29tbWFuZExpbmVBcmdzKG9wdGlvbnNEZWZpbml0aW9ucylcblxuY29uc3QgU0VOQVRfVEVYVEVfWE1MX0JBU0VfVVJMID0gXCJodHRwczovL3d3dy5zZW5hdC5mci9ha29tYW50b3NvL1wiXG5jb25zdCBTRU5BVF9URVhURV9CQVNFX1VSTCA9IFwiaHR0cHM6Ly93d3cuc2VuYXQuZnIvbGVnL1wiXG5jb25zdCBTRU5BVF9FWFBPU0VfREVTX01PVElGU19CQVNFX1VSTCA9IFwiaHR0cHM6Ly93d3cuc2VuYXQuZnIvbGVnL2V4cG9zZXMtZGVzLW1vdGlmcy9cIlxuY29uc3QgU0VOQVRfUkFQUE9SVF9CQVNFX1VSTCA9IFwiaHR0cHM6Ly93d3cuc2VuYXQuZnIvcmFwL1wiXG5cbmFzeW5jIGZ1bmN0aW9uIGNvbnZlcnREYXRhICgpIHtcbiAgY29uc3QgZW5hYmxlZERhdGFzZXRzID0gZ2V0RW5hYmxlZERhdGFzZXRzKG9wdGlvbnMuY2F0ZWdvcmllcylcbiAgY29uc3QgZGF0YURpcjogc3RyaW5nID0gb3B0aW9ucy5kYXRhRGlyXG4gIGFzc2VydChkYXRhRGlyLCBcIk1pc3NpbmcgYXJndW1lbnQ6IGRhdGEgZGlyZWN0b3J5XCIpXG5cbiAgY29uc29sZS50aW1lKFwiZGF0YSB0cmFuc2Zvcm1hdGlvbiB0aW1lXCIpXG5cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BbWVsaSkge1xuICAgIGNvbnN0IGRhdGFzZXQgPSBkYXRhc2V0cy5hbWVsaVxuXG4gICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgY29uc29sZS5sb2coYENvbnZlcnRpbmcgZGF0YWJhc2UgJHtkYXRhc2V0LmRhdGFiYXNlfSBkYXRhIGludG8gZmlsZXPigKZgKVxuICAgIH1cblxuICAgIGNvbnN0IGFtZWxpUmVvcmdhbml6ZWRSb290RGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXQuZGF0YWJhc2UpXG4gICAgZW5zdXJlQW5kQ2xlYXJEaXIoYW1lbGlSZW9yZ2FuaXplZFJvb3REaXIpXG5cbiAgICBmb3IgYXdhaXQgKGNvbnN0IGFtZW5kZW1lbnQgb2YgZmluZEFsbEFtZW5kZW1lbnRzKCkpIHtcbiAgICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgY29uc29sZS5sb2coYENvbnZlcnRpbmcgJHthbWVuZGVtZW50Lm51bWVyb30gZmlsZeKApmApXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNlc3Npb24gPSBTdHJpbmcoYW1lbmRlbWVudC5zZXNzaW9uKSB8fCBVTkRFRklORURfU0VTU0lPTlxuICAgICAgY29uc3Qgc2lnbmV0RG9zc2llckxlZ2lzbGF0aWYgPSBhbWVuZGVtZW50LnNpZ25ldF9kb3NzaWVyX2xlZ2lzbGF0aWZcbiAgICAgICAgfHwgYCR7YW1lbmRlbWVudC5uYXR1cmVfdGV4dGV9LSR7YW1lbmRlbWVudC5udW1lcm9fdGV4dGV9YC50b0xvd2VyQ2FzZSgpXG4gICAgICBjb25zdCBhbWVsaVJlb3JnYW5pemVkRGlyID0gcGF0aC5qb2luKGFtZWxpUmVvcmdhbml6ZWRSb290RGlyLCBzZXNzaW9uLCBzaWduZXREb3NzaWVyTGVnaXNsYXRpZilcbiAgICAgIGZzLmVuc3VyZURpclN5bmMoYW1lbGlSZW9yZ2FuaXplZERpcilcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRGaWxlTmFtZSA9IGAke2FtZW5kZW1lbnQubnVtZXJvfS5qc29uYFxuICAgICAgZnMud3JpdGVKU09OU3luYyhwYXRoLmpvaW4oYW1lbGlSZW9yZ2FuaXplZERpciwgYW1lbmRlbWVudEZpbGVOYW1lKSwgYW1lbmRlbWVudCwgeyBzcGFjZXM6IDIgfSlcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkRvc0xlZykge1xuICAgIGNvbnN0IGRhdGFzZXQgPSBkYXRhc2V0cy5kb3NsZWdcblxuICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBDb252ZXJ0aW5nIGRhdGFiYXNlICR7ZGF0YXNldC5kYXRhYmFzZX0gZGF0YSBpbnRvIGZpbGVz4oCmYClcbiAgICB9XG5cbiAgICBjb25zdCBkb3NsZWdSZW9yZ2FuaXplZFJvb3REaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5kYXRhYmFzZSlcbiAgICBjb25zdCBkb3NzaWVyc1Jlb3JnYW5pemVkRGlyID0gcGF0aC5qb2luKGRvc2xlZ1Jlb3JnYW5pemVkUm9vdERpciwgRE9TTEVHX0RPU1NJRVJTX0ZPTERFUilcbiAgICBlbnN1cmVBbmRDbGVhckRpcihkb3NsZWdSZW9yZ2FuaXplZFJvb3REaXIpXG4gICAgZW5zdXJlQW5kQ2xlYXJEaXIoZG9zc2llcnNSZW9yZ2FuaXplZERpcilcblxuICAgIGZvciBhd2FpdCAoY29uc3QgbG9pIG9mIGZpbmRBbGxMb2lzKCkpIHtcbiAgICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgY29uc29sZS5sb2coYENvbnZlcnRpbmcgJHtsb2kuc2lnbmV0fSBmaWxl4oCmYClcbiAgICAgIH1cblxuICAgICAgbGV0IGxvaVJlb3JnYW5pemVkRGlyID0gcGF0aC5qb2luKGRvc3NpZXJzUmVvcmdhbml6ZWREaXIsIFVOREVGSU5FRF9TRVNTSU9OKVxuICAgICAgY29uc3Qgc2lnbmV0UGFydHMgPSBTSUdORVRfU1RSVUNUVVJFX1JFR0VYUC5leGVjKGxvaS5zaWduZXQpPy5ncm91cHNcbiAgICAgIGlmIChzaWduZXRQYXJ0cykge1xuICAgICAgICBjb25zdCB7IHNlc3Npb24gfSA9IHNpZ25ldFBhcnRzXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZFNlc3Npb24gPSBmb3JtYXRUb0ZvdXJEaWdpdFNlc3Npb24oc2Vzc2lvbilcbiAgICAgICAgbG9pUmVvcmdhbml6ZWREaXIgPSBwYXRoLmpvaW4oZG9zc2llcnNSZW9yZ2FuaXplZERpciwgZm9ybWF0dGVkU2Vzc2lvbilcbiAgICAgIH1cbiAgICAgIGZzLmVuc3VyZURpclN5bmMobG9pUmVvcmdhbml6ZWREaXIpXG5cbiAgICAgIGNvbnN0IGxvaUZpbGVOYW1lID0gYCR7bG9pLnNpZ25ldH0uanNvbmBcbiAgICAgIGZzLndyaXRlSlNPTlN5bmMocGF0aC5qb2luKGxvaVJlb3JnYW5pemVkRGlyLCBsb2lGaWxlTmFtZSksIGxvaSwgeyBzcGFjZXM6IDIgfSlcbiAgICB9XG5cbiAgICBhd2FpdCBjb252ZXJ0VGV4dGVVcmxzKGRhdGFEaXIpXG4gICAgYXdhaXQgY29udmVydFJhcHBvcnRVcmxzKGRhdGFEaXIpXG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlF1ZXN0aW9ucykge1xuICAgIGNvbnN0IGRhdGFzZXQgPSBkYXRhc2V0cy5xdWVzdGlvbnNcblxuICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBDb252ZXJ0aW5nIGRhdGFiYXNlICR7ZGF0YXNldC5kYXRhYmFzZX0gZGF0YSBpbnRvIGZpbGVz4oCmYClcbiAgICB9XG5cbiAgICBjb25zdCBxdWVzdGlvbnNSZW9yZ2FuaXplZFJvb3REaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5kYXRhYmFzZSlcbiAgICBlbnN1cmVBbmRDbGVhckRpcihxdWVzdGlvbnNSZW9yZ2FuaXplZFJvb3REaXIpXG5cbiAgICBmb3IgYXdhaXQgKGNvbnN0IHF1ZXN0aW9uIG9mIGZpbmRBbGxRdWVzdGlvbnMoKSkge1xuICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhgQ29udmVydGluZyAke3F1ZXN0aW9uLnJlZmVyZW5jZX0gZmlsZeKApmApXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxlZ2lzbGF0dXJlID0gcXVlc3Rpb24ubGVnaXNsYXR1cmUgPyBxdWVzdGlvbi5sZWdpc2xhdHVyZSA6IDBcbiAgICAgIGNvbnN0IHF1ZXN0aW9uUmVvcmdhbml6ZWREaXIgPSBwYXRoLmpvaW4ocXVlc3Rpb25zUmVvcmdhbml6ZWRSb290RGlyLCBTdHJpbmcobGVnaXNsYXR1cmUpKVxuICAgICAgZnMuZW5zdXJlRGlyU3luYyhxdWVzdGlvblJlb3JnYW5pemVkRGlyKVxuICAgICAgY29uc3QgcXVlc3Rpb25GaWxlTmFtZSA9IGAke3F1ZXN0aW9uLnJlZmVyZW5jZX0uanNvbmBcbiAgICAgIGZzLndyaXRlSlNPTlN5bmMocGF0aC5qb2luKHF1ZXN0aW9uUmVvcmdhbml6ZWREaXIsIHF1ZXN0aW9uRmlsZU5hbWUpLCBxdWVzdGlvbiwgeyBzcGFjZXM6IDIgfSlcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlNlbnMpIHtcbiAgICBjb25zdCBkYXRhc2V0ID0gZGF0YXNldHMuc2Vuc1xuXG4gICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgY29uc29sZS5sb2coYENvbnZlcnRpbmcgZGF0YWJhc2UgJHtkYXRhc2V0LmRhdGFiYXNlfSBkYXRhIGludG8gZmlsZXPigKZgKVxuICAgIH1cblxuICAgIGNvbnN0IHNlbnNSZW9yZ2FuaXplZFJvb3REaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldC5kYXRhYmFzZSlcbiAgICBjb25zdCBzZW5hdGV1cnNSZW9yZ2FuaXplZERpciA9IHBhdGguam9pbihzZW5zUmVvcmdhbml6ZWRSb290RGlyLCBTRU5TX1NFTkFURVVSU19GT0xERVIpXG4gICAgY29uc3QgY2lyY29uc2NyaXB0aW9uc1Jlb3JnYW5pemVkRGlyID0gcGF0aC5qb2luKHNlbnNSZW9yZ2FuaXplZFJvb3REaXIsIFNFTlNfQ0lSQ09OU0NSSVBUSU9OU19GT0xERVIpXG4gICAgY29uc3Qgb3JnYW5pc21lc1Jlb3JnYW5pemVkRGlyID0gcGF0aC5qb2luKHNlbnNSZW9yZ2FuaXplZFJvb3REaXIsIFNFTlNfT1JHQU5JU01FU19GT0xERVIpXG4gICAgZW5zdXJlQW5kQ2xlYXJEaXIoc2Vuc1Jlb3JnYW5pemVkUm9vdERpcilcbiAgICBlbnN1cmVBbmRDbGVhckRpcihzZW5hdGV1cnNSZW9yZ2FuaXplZERpcilcbiAgICBlbnN1cmVBbmRDbGVhckRpcihjaXJjb25zY3JpcHRpb25zUmVvcmdhbml6ZWREaXIpXG4gICAgZW5zdXJlQW5kQ2xlYXJEaXIob3JnYW5pc21lc1Jlb3JnYW5pemVkRGlyKVxuXG4gICAgZm9yIGF3YWl0IChjb25zdCBzZW4gb2YgZmluZEFsbFNlbnMoKSkge1xuICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhgQ29udmVydGluZyAke3Nlbi5tYXRyaWN1bGV9IGZpbGXigKZgKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBzZW5GaWxlTmFtZSA9IGAke3Nlbi5tYXRyaWN1bGV9Lmpzb25gXG4gICAgICBmcy53cml0ZUpTT05TeW5jKHBhdGguam9pbihzZW5hdGV1cnNSZW9yZ2FuaXplZERpciwgc2VuRmlsZU5hbWUpLCBzZW4sIHsgc3BhY2VzOiAyIH0pXG4gICAgfVxuXG4gICAgZm9yIGF3YWl0IChjb25zdCBjaXJjb25zY3JpcHRpb24gb2YgZmluZEFsbENpcmNvbnNjcmlwdGlvbnMoKSkge1xuICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhgQ29udmVydGluZyAke2NpcmNvbnNjcmlwdGlvbi5pZGVudGlmaWFudH0gZmlsZeKApmApXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNpcmNvbnNjcmlwdGlvbkZpbGVOYW1lID0gYCR7Y2lyY29uc2NyaXB0aW9uLmlkZW50aWZpYW50fS5qc29uYFxuICAgICAgZnMud3JpdGVKU09OU3luYyhcbiAgICAgICAgcGF0aC5qb2luKGNpcmNvbnNjcmlwdGlvbnNSZW9yZ2FuaXplZERpciwgY2lyY29uc2NyaXB0aW9uRmlsZU5hbWUpLCBjaXJjb25zY3JpcHRpb24sIHsgc3BhY2VzOiAyIH1cbiAgICAgIClcbiAgICB9XG5cbiAgICBmb3IgYXdhaXQgKGNvbnN0IG9yZ2FuaXNtZSBvZiBmaW5kQWxsT3JnYW5pc21lcygpKSB7XG4gICAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBDb252ZXJ0aW5nICR7b3JnYW5pc21lLmNvZGV9IGZpbGXigKZgKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBvcmdhbmlzbWVGaWxlTmFtZSA9IGAke29yZ2FuaXNtZS5jb2RlfS5qc29uYFxuICAgICAgZnMud3JpdGVKU09OU3luYyhwYXRoLmpvaW4ob3JnYW5pc21lc1Jlb3JnYW5pemVkRGlyLCBvcmdhbmlzbWVGaWxlTmFtZSksIG9yZ2FuaXNtZSwgeyBzcGFjZXM6IDIgfSlcbiAgICB9XG4gIH1cblxuICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgY29uc29sZS50aW1lRW5kKFwiZGF0YSB0cmFuc2Zvcm1hdGlvbiB0aW1lXCIpXG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gY29udmVydFRleHRlVXJscyAoZGF0YURpcjogc3RyaW5nKSB7XG4gIGNvbnN0IHRleHRlc0RpciA9IHBhdGguam9pbihkYXRhRGlyLCBURVhURV9GT0xERVIpXG4gIGZzLmVuc3VyZURpclN5bmModGV4dGVzRGlyKVxuXG4gIGNvbnN0IG9yaWdpbmFsVGV4dGVzRGlyID0gcGF0aC5qb2luKHRleHRlc0RpciwgVEVYVEVfT1JJR0lOQUxfRk9MREVSKVxuXG4gIGZvciBhd2FpdCAoY29uc3QgdGV4dGUgb2YgZmluZFNlbmF0VGV4dGVVcmxzKG9wdGlvbnMuc2Vzc2lvbnMpKSB7XG4gICAgY29uc3QgdGV4dGVOYW1lID0gcGF0aC5wYXJzZSh0ZXh0ZS51cmwpLm5hbWVcbiAgICBjb25zdCB0ZXh0ZURpciA9IHBhdGguam9pbihvcmlnaW5hbFRleHRlc0RpciwgYCR7dGV4dGUuc2Vzc2lvbiA/PyBVTkRFRklORURfU0VTU0lPTn1gLCB0ZXh0ZU5hbWUpXG4gICAgZnMuZW5zdXJlRGlyU3luYyh0ZXh0ZURpcilcblxuICAgIGNvbnN0IG1ldGFkYXRhOiBUZXh0ZU1ldGFkYXRhID0ge1xuICAgICAgbmFtZTogdGV4dGVOYW1lLFxuICAgICAgc2Vzc2lvbjogdGV4dGUuc2Vzc2lvbixcbiAgICAgIHVybF9leHBvc2VfZGVzX21vdGlmczogdGV4dGUuaGFzRXhwb3NlRGVzTW90aWZzID9cbiAgICAgICAgbmV3IFVSTChgJHt0ZXh0ZU5hbWV9LWV4cG9zZS5odG1sYCwgU0VOQVRfRVhQT1NFX0RFU19NT1RJRlNfQkFTRV9VUkwpIDogdW5kZWZpbmVkLFxuICAgICAgdXJsX3htbDogbmV3IFVSTChgJHt0ZXh0ZU5hbWV9LmFrbi54bWxgLCBTRU5BVF9URVhURV9YTUxfQkFTRV9VUkwpLFxuICAgICAgdXJsX2h0bWw6IG5ldyBVUkwoYCR7dGV4dGVOYW1lfS5odG1sYCwgU0VOQVRfVEVYVEVfQkFTRV9VUkwpLFxuICAgICAgdXJsX3BkZjogbmV3IFVSTChgJHt0ZXh0ZU5hbWV9LnBkZmAsIFNFTkFUX1RFWFRFX0JBU0VfVVJMKSxcbiAgICB9XG4gICAgZnMud3JpdGVKU09OU3luYyhwYXRoLmpvaW4odGV4dGVEaXIsIERPQ1VNRU5UX01FVEFEQVRBX0ZJTEUpLCBtZXRhZGF0YSwgeyBzcGFjZXM6IDIgfSlcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBjb252ZXJ0UmFwcG9ydFVybHMgKGRhdGFEaXI6IHN0cmluZykge1xuICBjb25zdCByYXBwb3J0c0RpciA9IHBhdGguam9pbihkYXRhRGlyLCBSQVBQT1JUX0ZPTERFUilcbiAgZnMuZW5zdXJlRGlyU3luYyhyYXBwb3J0c0RpcilcblxuICBmb3IgYXdhaXQgKGNvbnN0IHJhcHBvcnQgb2YgZmluZFNlbmF0UmFwcG9ydFVybHMob3B0aW9ucy5zZXNzaW9ucykpIHtcbiAgICBjb25zdCBwYXJzZWRSYXBwb3J0VXJsID0gcGF0aC5wYXJzZShyYXBwb3J0LnVybClcbiAgICBjb25zdCByYXBwb3J0TmFtZSA9IHBhcnNlZFJhcHBvcnRVcmwubmFtZVxuICAgIGNvbnN0IHJhcHBvcnREaXIgPSBwYXRoLmpvaW4ocmFwcG9ydHNEaXIsIGAke3JhcHBvcnQuc2Vzc2lvbiA/PyBVTkRFRklORURfU0VTU0lPTn1gLCByYXBwb3J0TmFtZSlcbiAgICBmcy5lbnN1cmVEaXJTeW5jKHJhcHBvcnREaXIpXG5cbiAgICBjb25zdCByYXBwb3J0SHRtbFVybEJhc2UgPSBgJHtyYXBwb3J0TmFtZX1fbW9uby5odG1sYFxuICAgIGNvbnN0IHJhcHBvcnRIdG1sVXJsID0gcGF0aC5mb3JtYXQoe1xuICAgICAgZGlyOiBwYXJzZWRSYXBwb3J0VXJsLmRpcixcbiAgICAgIGJhc2U6IHJhcHBvcnRIdG1sVXJsQmFzZSxcbiAgICB9KVxuXG4gICAgY29uc3QgcmFwcG9ydFBkZlVybEJhc2UgPSBgJHtyYXBwb3J0TmFtZX0xLnBkZmBcbiAgICBjb25zdCByYXBwb3J0UGRmVXJsID0gcGF0aC5mb3JtYXQoe1xuICAgICAgZGlyOiBwYXJzZWRSYXBwb3J0VXJsLmRpcixcbiAgICAgIGJhc2U6IHJhcHBvcnRQZGZVcmxCYXNlLFxuICAgIH0pXG5cbiAgICBjb25zdCBtZXRhZGF0YTogUmFwcG9ydE1ldGFkYXRhID0ge1xuICAgICAgbmFtZTogcmFwcG9ydE5hbWUsXG4gICAgICBzZXNzaW9uOiByYXBwb3J0LnNlc3Npb24sXG4gICAgICB1cmxfaHRtbDogbmV3IFVSTChyYXBwb3J0SHRtbFVybCwgU0VOQVRfUkFQUE9SVF9CQVNFX1VSTCksXG4gICAgICB1cmxfcGRmOiBuZXcgVVJMKHJhcHBvcnRQZGZVcmwsIFNFTkFUX1JBUFBPUlRfQkFTRV9VUkwpLFxuICAgIH1cbiAgICBmcy53cml0ZUpTT05TeW5jKHBhdGguam9pbihyYXBwb3J0RGlyLCBET0NVTUVOVF9NRVRBREFUQV9GSUxFKSwgbWV0YWRhdGEsIHsgc3BhY2VzOiAyIH0pXG4gIH1cbn1cblxuY29udmVydERhdGEoKVxuICAudGhlbigoKSA9PiBwcm9jZXNzLmV4aXQoMCkpXG4gIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICBjb25zb2xlLmxvZyhlcnJvcilcbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfSlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZ0JBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLFFBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFJLFNBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFFBQUEsR0FBQUwsT0FBQTtBQVlBLElBQUFNLE1BQUEsR0FBQU4sT0FBQTtBQVFBLElBQUFPLE9BQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLFNBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFlBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLEtBQUEsR0FBQVYsT0FBQTtBQUFpRCxTQUFBRCx1QkFBQVksQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLGdCQUFBQSxDQUFBO0FBQUEsU0FBQUUsb0JBQUEsa0JBNUJqRCxtS0FBQUEsbUJBQUEsWUFBQUEsb0JBQUEsV0FBQUMsQ0FBQSxTQUFBQyxDQUFBLEVBQUFELENBQUEsT0FBQUgsQ0FBQSxHQUFBSyxNQUFBLENBQUFDLFNBQUEsRUFBQUMsQ0FBQSxHQUFBUCxDQUFBLENBQUFRLGNBQUEsRUFBQUMsQ0FBQSx3QkFBQUMsTUFBQSxHQUFBQSxNQUFBLE9BQUFDLENBQUEsR0FBQUYsQ0FBQSxDQUFBRyxRQUFBLGtCQUFBQyxDQUFBLEdBQUFKLENBQUEsQ0FBQUssYUFBQSx1QkFBQUMsQ0FBQSxHQUFBTixDQUFBLENBQUFPLFdBQUEsOEJBQUFDLEVBQUFiLENBQUEsRUFBQUQsQ0FBQSxFQUFBSCxDQUFBLEVBQUFPLENBQUEsSUFBQUYsTUFBQSxDQUFBYSxj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QVc7WUFDakJuSyxPQUFPLEVBQUVnSyxPQUFPLENBQUNoSyxPQUFPO1lBQ3hCb0osUUFBUSxFQUFFLElBQUlILEdBQUcsQ0FBQ3FCLGNBQWMsRUFBRXBMLHNCQUFzQixDQUFDO1lBQ3pEbUssT0FBTyxFQUFFLElBQUlKLEdBQUcsQ0FBQ3VCLGFBQWEsRUFBRXRMLHNCQUFzQjtVQUN4RCxDQUFDO1VBQ0RpRyxtQkFBRSxDQUFDRSxhQUFhLENBQUNkLGdCQUFJLENBQUNDLElBQUksQ0FBQzRGLFVBQVUsRUFBRWQsK0JBQXNCLENBQUMsRUFBRWhCLFFBQVEsRUFBRTtZQUFFaEQsTUFBTSxFQUFFO1VBQUUsQ0FBQyxDQUFDO1FBQUE7VUFBQXFFLDBCQUFBO1VBQUFlLFNBQUEsQ0FBQXBQLElBQUE7VUFBQTtRQUFBO1VBQUFvUCxTQUFBLENBQUFwUCxJQUFBO1VBQUE7UUFBQTtVQUFBb1AsU0FBQSxDQUFBOU4sSUFBQTtVQUFBOE4sU0FBQSxDQUFBbkYsRUFBQSxHQUFBbUYsU0FBQTtVQUFBZCxrQkFBQTtVQUFBQyxlQUFBLEdBQUFhLFNBQUEsQ0FBQW5GLEVBQUE7UUFBQTtVQUFBbUYsU0FBQSxDQUFBOU4sSUFBQTtVQUFBOE4sU0FBQSxDQUFBOU4sSUFBQTtVQUFBLE1BQUErTSwwQkFBQSxJQUFBRyxVQUFBO1lBQUFZLFNBQUEsQ0FBQXBQLElBQUE7WUFBQTtVQUFBO1VBQUFvUCxTQUFBLENBQUFwUCxJQUFBO1VBQUEsT0FBQXdPLFVBQUE7UUFBQTtVQUFBWSxTQUFBLENBQUE5TixJQUFBO1VBQUEsS0FBQWdOLGtCQUFBO1lBQUFjLFNBQUEsQ0FBQXBQLElBQUE7WUFBQTtVQUFBO1VBQUEsTUFBQXVPLGVBQUE7UUFBQTtVQUFBLE9BQUFhLFNBQUEsQ0FBQXhOLE1BQUE7UUFBQTtVQUFBLE9BQUF3TixTQUFBLENBQUF4TixNQUFBO1FBQUE7UUFBQTtVQUFBLE9BQUF3TixTQUFBLENBQUEzTixJQUFBO01BQUE7SUFBQSxHQUFBME0sUUFBQTtFQUFBLENBRTNGO0VBQUEsT0FBQUQsbUJBQUEsQ0FBQWhNLEtBQUEsT0FBQUQsU0FBQTtBQUFBO0FBRUQ0QixXQUFXLENBQUMsQ0FBQyxDQUNWL0QsSUFBSSxDQUFDO0VBQUEsT0FBTTRQLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUFBLEVBQUMsU0FDdEIsQ0FBQyxVQUFDQyxLQUFLLEVBQUs7RUFDaEJySCxPQUFPLENBQUNPLEdBQUcsQ0FBQzhHLEtBQUssQ0FBQztFQUNsQkYsT0FBTyxDQUFDQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==