@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
package/lib/model/sens.js CHANGED
@@ -1,57 +1,180 @@
1
1
  "use strict";
2
2
 
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.to-string-tag.js");
9
- require("core-js/modules/es.array.for-each.js");
10
- require("core-js/modules/es.array.iterator.js");
11
- require("core-js/modules/es.array.reverse.js");
12
- require("core-js/modules/es.array.slice.js");
13
- require("core-js/modules/es.function.name.js");
14
- require("core-js/modules/es.json.to-string-tag.js");
15
- require("core-js/modules/es.math.to-string-tag.js");
16
- require("core-js/modules/es.object.create.js");
3
+ require("core-js/modules/es.array.concat.js");
17
4
  require("core-js/modules/es.object.define-property.js");
18
- require("core-js/modules/es.object.get-prototype-of.js");
19
- require("core-js/modules/es.object.set-prototype-of.js");
20
- require("core-js/modules/es.string.iterator.js");
21
- require("core-js/modules/web.dom-collections.for-each.js");
22
- require("core-js/modules/web.dom-collections.iterator.js");
23
5
  Object.defineProperty(exports, "__esModule", {
24
6
  value: true
25
7
  });
26
- exports.getAllSens = void 0;
27
- require("core-js/modules/es.array.map.js");
28
- require("core-js/modules/es.object.to-string.js");
29
- require("core-js/modules/es.promise.js");
30
- var _sens = require("../types/sens");
8
+ exports.findActif = findActif;
9
+ exports.findAll = findAll;
10
+ exports.findAllCirconscriptions = findAllCirconscriptions;
11
+ exports.findAllOrganismes = findAllOrganismes;
12
+ var _postgres = require("kysely/helpers/postgres");
31
13
  var _databases = require("../databases");
32
- var _fields = require("../fields");
33
- 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; }
34
- 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); }
35
- 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); }); }; }
36
- var getAllSens = exports.getAllSens = /*#__PURE__*/function () {
37
- var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
38
- return _regeneratorRuntime().wrap(function _callee$(_context) {
39
- while (1) switch (_context.prev = _context.next) {
40
- case 0:
41
- _context.next = 2;
42
- return _databases.dbByName.sens.any("\n SELECT *\n FROM sen\n ");
43
- case 2:
44
- return _context.abrupt("return", _context.sent.map(function (sen) {
45
- return (0, _fields.parseIntFields)(_sens.senFieldsToParseInt, (0, _fields.trimFieldsRight)(_sens.senFieldsToTrim, sen));
46
- }));
47
- case 3:
48
- case "end":
49
- return _context.stop();
50
- }
51
- }, _callee);
14
+ var _util = require("./util");
15
+ function circonscription(dptNum) {
16
+ return (0, _postgres.jsonObjectFrom)(_databases.dbSens.selectFrom("dpt").leftJoin("reg", "dpt.regcod", "reg.regcod").where("dpt.dptnum", "=", dptNum).select(["dpt.dptcod as code", "dpt.dptlib as libelle_departement", "reg.reglib as libelle_region"]));
17
+ }
18
+ function textes(actId) {
19
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("activite_loi").where("actid", "=", actId).select(function (_ref) {
20
+ var ref = _ref.ref;
21
+ return [(0, _util.rtrim)(ref("loicod")).as("loicod")];
52
22
  }));
53
- return function getAllSens() {
54
- return _ref.apply(this, arguments);
55
- };
56
- }();
57
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2VucyIsInJlcXVpcmUiLCJfZGF0YWJhc2VzIiwiX2ZpZWxkcyIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJlIiwidCIsInIiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJuIiwiaGFzT3duUHJvcGVydHkiLCJvIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsImkiLCJTeW1ib2wiLCJhIiwiaXRlcmF0b3IiLCJjIiwiYXN5bmNJdGVyYXRvciIsInUiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImNhbGwiLCJoIiwibCIsImYiLCJzIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJfdHlwZW9mIiwicmVzb2x2ZSIsIl9fYXdhaXQiLCJ0aGVuIiwiY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmciLCJFcnJvciIsImRvbmUiLCJtZXRob2QiLCJkZWxlZ2F0ZSIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsIlR5cGVFcnJvciIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJsZW5ndGgiLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJnZXRBbGxTZW5zIiwiZXhwb3J0cyIsIl9yZWYiLCJfY2FsbGVlIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsImRiQnlOYW1lIiwic2VucyIsImFueSIsIm1hcCIsInNlbiIsInBhcnNlSW50RmllbGRzIiwic2VuRmllbGRzVG9QYXJzZUludCIsInRyaW1GaWVsZHNSaWdodCIsInNlbkZpZWxkc1RvVHJpbSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RlbC9zZW5zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFNlbiwgc2VuRmllbGRzVG9QYXJzZUludCwgc2VuRmllbGRzVG9UcmltLFxufSBmcm9tICcuLi90eXBlcy9zZW5zJ1xuaW1wb3J0IHsgZGJCeU5hbWUgfSBmcm9tIFwiLi4vZGF0YWJhc2VzXCJcbmltcG9ydCB7IHBhcnNlSW50RmllbGRzLCB0cmltRmllbGRzUmlnaHQgfSBmcm9tICcuLi9maWVsZHMnXG5cbmV4cG9ydCBjb25zdCBnZXRBbGxTZW5zID0gYXN5bmMgKCk6IFByb21pc2U8U2VuW10+ID0+IHtcbiAgcmV0dXJuIChcbiAgICBhd2FpdCBkYkJ5TmFtZS5zZW5zLmFueShcbiAgICAgIGBcbiAgICAgIFNFTEVDVCAqXG4gICAgICBGUk9NIHNlblxuICAgIGBcbiAgICApXG4gICkubWFwKChzZW46IFNlbikgPT5cbiAgICBwYXJzZUludEZpZWxkcyhzZW5GaWVsZHNUb1BhcnNlSW50LCB0cmltRmllbGRzUmlnaHQoc2VuRmllbGRzVG9UcmltLCBzZW4pKSxcbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsT0FBQTtBQUdBLElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUEyRCxTQUFBRyxvQkFBQSxrQkFIM0QscUpBQUFBLG1CQUFBLFlBQUFBLG9CQUFBLFdBQUFDLENBQUEsU0FBQUMsQ0FBQSxFQUFBRCxDQUFBLE9BQUFFLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxTQUFBLEVBQUFDLENBQUEsR0FBQUgsQ0FBQSxDQUFBSSxjQUFBLEVBQUFDLENBQUEsR0FBQUosTUFBQSxDQUFBSyxjQUFBLGNBQUFQLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLElBQUFELENBQUEsQ0FBQUQsQ0FBQSxJQUFBRSxDQUFBLENBQUFPLEtBQUEsS0FBQUMsQ0FBQSx3QkFBQUMsTUFBQSxHQUFBQSxNQUFBLE9BQUFDLENBQUEsR0FBQUYsQ0FBQSxDQUFBRyxRQUFBLGtCQUFBQyxDQUFBLEdBQUFKLENBQUEsQ0FBQUssYUFBQSx1QkFBQUMsQ0FBQSxHQUFBTixDQUFBLENBQUFPLFdBQUEsOEJBQUFDLE9BQUFqQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxXQUFBQyxNQUFBLENBQUFLLGNBQUEsQ0FBQVAsQ0FBQSxFQUFBRCxDQUFBLElBQUFTLEtBQUEsRUFBQVAsQ0FBQSxFQUFBaUIsVUFBQSxNQUFBQyxZQUFBLE1BQUFDLFFBQUEsU0FBQXBCLENBQUEsQ0FBQUQsQ0FBQSxXQUFBa0IsTUFBQSxtQkFBQWpCLENBQUEsSUFBQWlCLE1BQUEsWUFBQUEsT0FBQWpCLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLFdBQUFELENBQUEsQ0FBQUQsQ0FBQSxJQUFBRSxDQUFBLGdCQUFBb0IsS0FBQXJCLENBQUEs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
23
+ }
24
+ function delegations(actId) {
25
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("activite_delegation").where("actid", "=", actId).orderBy("delegidx asc"));
26
+ }
27
+ function activites(senMat) {
28
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("activite").leftJoin("activite_participant", "activite.actid", "activite_participant.actid").leftJoin("type_activite", "activite.typactcod", "type_activite.typactcod").leftJoin("categorie_activite", "activite.catactcod", "categorie_activite.catactcod").where("activite_participant.senmat", "=", senMat).select(function (_ref2) {
29
+ var ref = _ref2.ref;
30
+ return [delegations(ref("activite.actid")).as("delegations"), textes(ref("activite.actid")).as("textes")];
31
+ }).orderBy("activite.datdeb desc"));
32
+ }
33
+ function activitesPerso(senMat) {
34
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("activite_senateur").leftJoin("type_activite_senateur", "activite_senateur.typactsencod", "type_activite_senateur.typactsencod").where("activite_senateur.senmat", "=", senMat).orderBy("activite_senateur.datdeb desc"));
35
+ }
36
+ function fonctionsBureau(senMat) {
37
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("senbur").leftJoin("bur", "senbur.burcod", "bur.burcod").where("senbur.senmat", "=", senMat).select(function (_ref3) {
38
+ var ref = _ref3.ref;
39
+ return [(0, _util.toDateString)(ref("senbur.senburdatdeb")).as("date_debut"), (0, _util.toDateString)(ref("senbur.senburdatfin")).as("date_fin"), "bur.burlib as libelle"];
40
+ }).orderBy("senbur.senburdatdeb desc"));
41
+ }
42
+ function mandatsEluConseillerGeneral(senMat) {
43
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("elucan").leftJoin("typman", "elucan.typmancod", "typman.typmancod").where("elucan.senmat", "=", senMat).select(function (_ref4) {
44
+ var ref = _ref4.ref;
45
+ return [circonscription(ref("elucan.dptnum").$notNull()).as("circonscription")];
46
+ }).orderBy("elucan.eludatdeb desc"));
47
+ }
48
+ function mandatsEluDepute(senMat) {
49
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("eludep").leftJoin("typman", "eludep.typmancod", "typman.typmancod").where("eludep.senmat", "=", senMat).select(function (_ref5) {
50
+ var ref = _ref5.ref;
51
+ return [circonscription(ref("eludep.circo").$notNull()).as("circonscription")];
52
+ }).orderBy("eludep.eludatdeb desc"));
53
+ }
54
+ function mandatsEluDivers(senMat) {
55
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("eludiv").leftJoin("typman", "eludiv.typmancod", "typman.typmancod").where("eludiv.senmat", "=", senMat).orderBy("eludiv.eludatdeb desc"));
56
+ }
57
+ function mandatsEluEuropeen(senMat) {
58
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("elueur").leftJoin("nation", "elueur.nationcod", "nation.nationcod").leftJoin("typman", "elueur.typmancod", "typman.typmancod").where("elueur.senmat", "=", senMat).orderBy("elueur.eludatdeb desc"));
59
+ }
60
+ function mandatsEluConseillerRegional(senMat) {
61
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("elureg").leftJoin("reg", "elureg.regcod", "reg.regcod").leftJoin("typman", "elureg.typmancod", "typman.typmancod").where("elureg.senmat", "=", senMat).orderBy("elureg.eludatdeb desc"));
62
+ }
63
+ function mandatsEluSenateur(senMat) {
64
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("elusen").leftJoin("etadebman", "elusen.etadebmancod", "etadebman.etadebmancod").leftJoin("etafinman", "elusen.etafinmancod", "etafinman.etafinmancod").leftJoin("typman", "elusen.typmancod", "typman.typmancod").where("elusen.senmat", "=", senMat).select(function (_ref6) {
65
+ var ref = _ref6.ref;
66
+ return ["elusen.dptnum as code_circonscription", (0, _util.toDateString)(ref("elusen.eludatdeb")).as("date_debut"), (0, _util.toDateString)(ref("elusen.eludatfin")).as("date_fin"), "etadebman.etadebmanlib as etat_debut", "etafinman.etafinman as etat_fin"];
67
+ }).orderBy("elusen.eludatdeb desc"));
68
+ }
69
+ function mandatsEluTerritorial(senMat) {
70
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("eluter").leftJoin("asster", "eluter.asstercod", "asster.asstercod").leftJoin("typman", "eluter.typmancod", "typman.typmancod").where("eluter.senmat", "=", senMat).orderBy("eluter.eludatdeb desc"));
71
+ }
72
+ function mandatsEluConseillerMunicipal(senMat) {
73
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("eluvil").leftJoin("typman", "eluvil.typmancod", "typman.typmancod").where("eluvil.senmat", "=", senMat).orderBy("eluvil.eludatdeb desc"));
74
+ }
75
+ function fonctionsMembreCommission(memComId) {
76
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("fonmemcom").leftJoin("foncom", "fonmemcom.foncomcod", "foncom.foncomcod").where("fonmemcom.memcomid", "=", memComId).select(function (_ref7) {
77
+ var ref = _ref7.ref;
78
+ return [(0, _util.toDateString)(ref("fonmemcom.fonmemcomdatdeb")).as("date_debut"), (0, _util.toDateString)(ref("fonmemcom.fonmemcomdatfin")).as("date_fin"), "foncom.foncomlib as libelle"];
79
+ }).orderBy("fonmemcom.fonmemcomdatdeb desc"));
80
+ }
81
+ function mandatsMembreCommission(senMat) {
82
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("memcom").leftJoin("com", "memcom.orgcod", "com.orgcod").leftJoin("typorg", "com.typorgcod", "typorg.typorgcod").where("memcom.senmat", "=", senMat).select(function (_ref8) {
83
+ var ref = _ref8.ref;
84
+ return ["com.typorgcod as type_code_organisme", "memcom.orgcod as code_organisme", "typorg.typorglib as type_organisme", "com.comlilmin as libelle", (0, _util.toDateString)(ref("memcom.memcomdatdeb")).as("date_debut"), (0, _util.toDateString)(ref("memcom.memcomdatfin")).as("date_fin")];
85
+ }).select(function (_ref9) {
86
+ var ref = _ref9.ref;
87
+ return [fonctionsMembreCommission(ref("memcom.memcomid")).as("fonctions")];
88
+ }).orderBy("memcom.memcomdatdeb desc"));
89
+ }
90
+ function fonctionsMembreDelegation(memDelegaId) {
91
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("fonmemdelega").leftJoin("fondelega", "fonmemdelega.fondelcod", "fondelega.fondelcod").where("fonmemdelega.memdelegaid", "=", memDelegaId).select(function (_ref0) {
92
+ var ref = _ref0.ref;
93
+ return [(0, _util.toDateString)(ref("fonmemdelega.fonmemdeldatdeb")).as("date_debut"), (0, _util.toDateString)(ref("fonmemdelega.fonmemdeldatfin")).as("date_fin"), "fondelega.fondellib as libelle"];
94
+ }).orderBy("fonmemdelega.fonmemdeldatdeb desc"));
95
+ }
96
+ function mandatsMembreDelegation(senMat) {
97
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("memdelega").leftJoin("delega", "memdelega.orgcod", "delega.orgcod").leftJoin("designorg", "memdelega.designcod", "designorg.designcod").leftJoin("typorg", "delega.typorgcod", "typorg.typorgcod").where("memdelega.senmat", "=", senMat).select(function (_ref1) {
98
+ var ref = _ref1.ref;
99
+ return ["delega.typorgcod as type_code_organisme", "memdelega.orgcod as code_organisme", "typorg.typorglib as type_organisme", "delega.evelib as libelle", (0, _util.toDateString)(ref("memdelega.memdelegadatdeb")).as("date_debut"), (0, _util.toDateString)(ref("memdelega.memdelegadatfin")).as("date_fin")];
100
+ }).select(function (_ref10) {
101
+ var ref = _ref10.ref;
102
+ return [fonctionsMembreDelegation(ref("memdelega.memdelegaid")).as("fonctions")];
103
+ }).orderBy("memdelega.memdelegadatdeb desc"));
104
+ }
105
+ function mandatsMembreExtraParlementaire(senMat) {
106
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("memextpar").leftJoin("orgext", "memextpar.orgcod", "orgext.orgcod").leftJoin("design", "memextpar.designcod", "design.designcod").where("memextpar.senmat", "=", senMat).orderBy("memextpar.memextpardatdeb desc"));
107
+ }
108
+ function fonctionsMembreGroupePolitique(memGrpPolId) {
109
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("fonmemgrppol").leftJoin("fongrppol", "fonmemgrppol.fongrppolcod", "fongrppol.fongrppolcod").where("fonmemgrppol.memgrppolid", "=", memGrpPolId).select(function (_ref11) {
110
+ var ref = _ref11.ref;
111
+ return [(0, _util.toDateString)(ref("fonmemgrppol.fonmemgrppoldatdeb")).as("date_debut"), (0, _util.toDateString)(ref("fonmemgrppol.fonmemgrppoldatfin")).as("date_fin"), "fongrppol.fongrppollib as libelle"];
112
+ }).orderBy("fonmemgrppol.fonmemgrppoldatdeb desc"));
113
+ }
114
+ function mandatsMembreGroupePolitique(senMat) {
115
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("memgrppol").leftJoin("grppol", "memgrppol.grppolcod", "grppol.grppolcod").leftJoin("typapppol", "memgrppol.typapppolcod", "typapppol.typapppolcod").where("memgrppol.senmat", "=", senMat).select(function (_ref12) {
116
+ var ref = _ref12.ref;
117
+ return ["memgrppol.grppolcod as code", "grppol.grppollibcou as libelle", (0, _util.toDateString)(ref("memgrppol.memgrppoldatdeb")).as("date_debut"), (0, _util.toDateString)(ref("memgrppol.memgrppoldatfin")).as("date_fin"), "typapppol.typapppollib as fonction"];
118
+ }).select(function (_ref13) {
119
+ var ref = _ref13.ref;
120
+ return [fonctionsMembreGroupePolitique(ref("memgrppol.memgrppolid")).as("fonctions")];
121
+ }).orderBy("memgrppol.memgrppoldatdeb desc"));
122
+ }
123
+ function fonctionsMembreGroupeSenatorial(memGrpSenId) {
124
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("fonmemgrpsen").leftJoin("fongrpsen", "fonmemgrpsen.fongrpsencod", "fongrpsen.fongrpsencod").where("fonmemgrpsen.memgrpsenid", "=", memGrpSenId).orderBy("fonmemgrpsen.fonmemgrpsendatdeb desc"));
125
+ }
126
+ function mandatsMembreGroupeSenatorial(senMat) {
127
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("memgrpsen").leftJoin("grpsenami", "memgrpsen.orgcod", "grpsenami.orgcod").leftJoin("typgrpsen", "grpsenami.typgrpsencod", "typgrpsen.typgrpsencod").where("memgrpsen.senmat", "=", senMat).select(function (_ref14) {
128
+ var ref = _ref14.ref;
129
+ return [fonctionsMembreGroupeSenatorial(ref("memgrpsen.memgrpsenid")).as("fonctions")];
130
+ }).orderBy("memgrpsen.memgrpsendatent desc"));
131
+ }
132
+ function fonctionsMembreOrganisme(memOrgId) {
133
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("fonmemorg").leftJoin("fonorg", "fonmemorg.fonorgcod", "fonorg.fonorgcod").where("fonmemorg.memorgid", "=", memOrgId).orderBy("fonmemorg.fonmemorgdatdeb desc"));
134
+ }
135
+ function mandatsMembreOrganisme(senMat) {
136
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("memorg").leftJoin("org", "memorg.orgcod", "org.orgcod").leftJoin("typorg", "org.typorgcod", "typorg.typorgcod").leftJoin("designorg", "memorg.designcod", "designorg.designcod").where("memorg.senmat", "=", senMat).select(function (_ref15) {
137
+ var ref = _ref15.ref;
138
+ return [fonctionsMembreOrganisme(ref("memorg.memorgid")).as("fonctions")];
139
+ }).orderBy("memorg.memorgdatdeb desc"));
140
+ }
141
+ function mandatsMinistre(senMat) {
142
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("minind").where("minind.senmat", "=", senMat).orderBy("minind.mindatdeb desc"));
143
+ }
144
+ function contacts(senMat) {
145
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("poicon").leftJoin("adresse", "poicon.poiconid", "adresse.poiconid").leftJoin("mel", "poicon.poiconid", "mel.poiconid").leftJoin("telephone", "poicon.poiconid", "telephone.poiconid").where("poicon.senmat", "=", senMat).orderBy("poicon.poiconnumtri asc"));
146
+ }
147
+ function urls(senMat) {
148
+ return (0, _postgres.jsonArrayFrom)(_databases.dbSens.selectFrom("senurl").where("senurl.senmat", "=", senMat).select(["senurl.typurlcod as code_url", "senurl.senurlurl as url"]).orderBy("senurl.senurlnumtri asc"));
149
+ }
150
+ var findAllQuery = _databases.dbSens.selectFrom("sen").leftJoin("etasen", "sen.etasencod", "etasen.etasencod").leftJoin("pcs", "sen.pcscod", "pcs.pcscod").leftJoin("pcs42", "pcs.pcs42cod", "pcs42.pcs42cod").leftJoin("pcs24", "pcs42.pcs24cod", "pcs24.pcs24cod").leftJoin("pcs8", "pcs24.pcs8cod", "pcs8.pcs8cod").leftJoin("grppol", "sen.sengrppolcodcou", "grppol.grppolcod").leftJoin("com", "sen.sencomcodcou", "com.orgcod").select(function (_ref16) {
151
+ var ref = _ref16.ref;
152
+ return ["sen.senmat as matricule", "sen.quacod as qualite", "sen.sennomuse as nom_usuel", "sen.senprenomuse as prenom_usuel", "sen.etasencod as etat", (0, _util.toDateString)(ref("sen.sendatnai")).as("date_naissance"), (0, _util.toDateString)(ref("sen.sendatdec")).as("date_deces"), "sen.sengrppolcodcou as code_groupe_politique", "sen.sengrppolliccou as groupe_politique", "sen.sencomcodcou as code_commission_permanente", "com.comlilmin as commission_permanente", "sen.sencirnumcou as code_circonscription", "sen.sencircou as circonscription", "sen.senburliccou as fonction_bureau_senat", "sen.senema as courrier_electronique", "pcs.pcslil as PCS_INSEE", "pcs42.pcs42lib as PCS_INSEE_42", "pcs24.pcs24lib as PCS_INSEE_24", "pcs8.pcs8lil as PCS_INSEE_8", "sen.sendespro as description_profession", "sen.sennumsie as siege", "sen.sendaiurl as url_hatvp"];
153
+ }).select(function (_ref17) {
154
+ var ref = _ref17.ref;
155
+ return [urls(ref("sen.senmat")).as("urls"), mandatsEluSenateur(ref("sen.senmat")).as("mandats_senateur"), mandatsMembreCommission(ref("sen.senmat")).as("commissions"), mandatsMembreDelegation(ref("sen.senmat")).as("delegations"), mandatsMembreGroupePolitique(ref("sen.senmat")).as("groupes"), fonctionsBureau(ref("sen.senmat")).as("fonctions_bureau")];
156
+ });
157
+ var findAllCirconscriptionsQuery = _databases.dbSens.selectFrom("dpt").leftJoin("reg", "dpt.regcod", "reg.regcod").select(function (_ref18) {
158
+ var ref = _ref18.ref;
159
+ return ["dpt.dptnum as identifiant", "dpt.dptcod as code", "dpt.dptlib as libelle_departement", "dpt.dptart as article", "reg.reglib as libelle_region", "dpt.temvalcod as etat", (0, _util.toDateString)(ref("dpt.dptdatdeb")).as("date_debut"), (0, _util.toDateString)(ref("dpt.dptdatfin")).as("date_fin"), "dpt.dptnbrsen as nombre_senateurs", "dpt.dpturlcmp as url"];
160
+ });
161
+ var findAllOrganismesQuery = _databases.dbSens.selectFrom(function (eb) {
162
+ return eb.selectFrom("com").select(["orgcod", "evelic", "evelib", "evelil", "typorgcod", "orgurlsim", "orgdatcre", "orgdatfin", "temvalcod"]).union(eb.selectFrom("delega").select(["orgcod", "evelic", "evelib", "evelil", "typorgcod", "orgurlsim", "orgdatcre", "orgdatfin", "temvalcod"])).union(eb.selectFrom("grppol").select(["grppolcod as orgcod", "grppolliccou as evelic", "grppollibcou as evelib", "grppollilcou as evelil", "typorgcod", "grppolurlsim as orgurlsim", "grppoldatcre as orgdatcre", "grppoldatfin as orgdatfin", "temvalcod"])).union(eb.selectFrom("grpsenami").select(["orgcod", "evelic", "evelib", "evelil", "typorgcod", "orgurlsim", "orgdatcre", "orgdatfin", "temvalcod"])).union(eb.selectFrom("org").select(["orgcod", "evelic", "evelib", "evelil", "typorgcod", "orgurlsim", "orgdatcre", "orgdatfin", "temvalcod"])).as("all_organismes");
163
+ }).leftJoin("typorg", "all_organismes.typorgcod", "typorg.typorgcod").select(function (_ref19) {
164
+ var ref = _ref19.ref,
165
+ val = _ref19.val;
166
+ return ["all_organismes.orgcod as code", "all_organismes.evelic as libelle_court", "all_organismes.evelib as libelle", (0, _util.rtrim)(ref("all_organismes.evelil")).as("libelle_long"), "all_organismes.typorgcod as type_code", (0, _util.rtrim)(ref("typorg.typorglib")).as("type_libelle"), (0, _util.concat)(val("https://www.senat.fr"), ref("all_organismes.orgurlsim")).as("url"), (0, _util.toDateString)(ref("all_organismes.orgdatcre")).as("date_debut"), (0, _util.toDateString)(ref("all_organismes.orgdatfin")).as("date_fin"), "all_organismes.temvalcod as etat"];
167
+ });
168
+ function findAll() {
169
+ return findAllQuery.stream();
170
+ }
171
+ function findAllCirconscriptions() {
172
+ return findAllCirconscriptionsQuery.stream();
173
+ }
174
+ function findAllOrganismes() {
175
+ return findAllOrganismesQuery.stream();
176
+ }
177
+ function findActif() {
178
+ return _databases.dbSens.selectFrom("sen").where("etasencod", "=", "ACTIF").select(["senmat", "sennomuse", "senprenomuse"]).stream();
179
+ }
180
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcG9zdGdyZXMiLCJyZXF1aXJlIiwiX2RhdGFiYXNlcyIsIl91dGlsIiwiY2lyY29uc2NyaXB0aW9uIiwiZHB0TnVtIiwianNvbk9iamVjdEZyb20iLCJkYlNlbnMiLCJzZWxlY3RGcm9tIiwibGVmdEpvaW4iLCJ3aGVyZSIsInNlbGVjdCIsInRleHRlcyIsImFjdElkIiwianNvbkFycmF5RnJvbSIsIl9yZWYiLCJyZWYiLCJydHJpbSIsImFzIiwiZGVsZWdhdGlvbnMiLCJvcmRlckJ5IiwiYWN0aXZpdGVzIiwic2VuTWF0IiwiX3JlZjIiLCJhY3Rpdml0ZXNQZXJzbyIsImZvbmN0aW9uc0J1cmVhdSIsIl9yZWYzIiwidG9EYXRlU3RyaW5nIiwibWFuZGF0c0VsdUNvbnNlaWxsZXJHZW5lcmFsIiwiX3JlZjQiLCIkbm90TnVsbCIsIm1hbmRhdHNFbHVEZXB1dGUiLCJfcmVmNSIsIm1hbmRhdHNFbHVEaXZlcnMiLCJtYW5kYXRzRWx1RXVyb3BlZW4iLCJtYW5kYXRzRWx1Q29uc2VpbGxlclJlZ2lvbmFsIiwibWFuZGF0c0VsdVNlbmF0ZXVyIiwiX3JlZjYiLCJtYW5kYXRzRWx1VGVycml0b3JpYWwiLCJtYW5kYXRzRWx1Q29uc2VpbGxlck11bmljaXBhbCIsImZvbmN0aW9uc01lbWJyZUNvbW1pc3Npb24iLCJtZW1Db21JZCIsIl9yZWY3IiwibWFuZGF0c01lbWJyZUNvbW1pc3Npb24iLCJfcmVmOCIsIl9yZWY5IiwiZm9uY3Rpb25zTWVtYnJlRGVsZWdhdGlvbiIsIm1lbURlbGVnYUlkIiwiX3JlZjAiLCJtYW5kYXRzTWVtYnJlRGVsZWdhdGlvbiIsIl9yZWYxIiwiX3JlZjEwIiwibWFuZGF0c01lbWJyZUV4dHJhUGFybGVtZW50YWlyZSIsImZvbmN0aW9uc01lbWJyZUdyb3VwZVBvbGl0aXF1ZSIsIm1lbUdycFBvbElkIiwiX3JlZjExIiwibWFuZGF0c01lbWJyZUdyb3VwZVBvbGl0aXF1ZSIsIl9yZWYxMiIsIl9yZWYxMyIsImZvbmN0aW9uc01lbWJyZUdyb3VwZVNlbmF0b3JpYWwiLCJtZW1HcnBTZW5JZCIsIm1hbmRhdHNNZW1icmVHcm91cGVTZW5hdG9yaWFsIiwiX3JlZjE0IiwiZm9uY3Rpb25zTWVtYnJlT3JnYW5pc21lIiwibWVtT3JnSWQiLCJtYW5kYXRzTWVtYnJlT3JnYW5pc21lIiwiX3JlZjE1IiwibWFuZGF0c01pbmlzdHJlIiwiY29udGFjdHMiLCJ1cmxzIiwiZmluZEFsbFF1ZXJ5IiwiX3JlZjE2IiwiX3JlZjE3IiwiZmluZEFsbENpcmNvbnNjcmlwdGlvbnNRdWVyeSIsIl9yZWYxOCIsImZpbmRBbGxPcmdhbmlzbWVzUXVlcnkiLCJlYiIsInVuaW9uIiwiX3JlZjE5IiwidmFsIiwiY29uY2F0IiwiZmluZEFsbCIsInN0cmVhbSIsImZpbmRBbGxDaXJjb25zY3JpcHRpb25zIiwiZmluZEFsbE9yZ2FuaXNtZXMiLCJmaW5kQWN0aWYiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kZWwvc2Vucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFeHByZXNzaW9uLCBJbmZlclJlc3VsdCB9IGZyb20gXCJreXNlbHlcIlxuaW1wb3J0IHsganNvbkFycmF5RnJvbSwganNvbk9iamVjdEZyb20gfSBmcm9tIFwia3lzZWx5L2hlbHBlcnMvcG9zdGdyZXNcIlxuaW1wb3J0IHsgZGJTZW5zIH0gZnJvbSBcIi4uL2RhdGFiYXNlc1wiXG5pbXBvcnQgeyBjb25jYXQsIHJ0cmltLCB0b0RhdGVTdHJpbmcgfSBmcm9tIFwiLi91dGlsXCJcblxuZnVuY3Rpb24gY2lyY29uc2NyaXB0aW9uIChkcHROdW06IEV4cHJlc3Npb248c3RyaW5nPikge1xuICByZXR1cm4ganNvbk9iamVjdEZyb20oXG4gICAgZGJTZW5zLnNlbGVjdEZyb20oXCJkcHRcIilcbiAgICAgIC5sZWZ0Sm9pbihcInJlZ1wiLCBcImRwdC5yZWdjb2RcIiwgXCJyZWcucmVnY29kXCIpXG4gICAgICAud2hlcmUoXCJkcHQuZHB0bnVtXCIsIFwiPVwiLCBkcHROdW0pXG4gICAgICAuc2VsZWN0KFtcbiAgICAgICAgXCJkcHQuZHB0Y29kIGFzIGNvZGVcIixcbiAgICAgICAgXCJkcHQuZHB0bGliIGFzIGxpYmVsbGVfZGVwYXJ0ZW1lbnRcIixcbiAgICAgICAgXCJyZWcucmVnbGliIGFzIGxpYmVsbGVfcmVnaW9uXCIsXG4gICAgICBdKSxcbiAgKVxufVxuXG5mdW5jdGlvbiB0ZXh0ZXMgKGFjdElkOiBFeHByZXNzaW9uPHN0cmluZz4pIHtcbiAgcmV0dXJuIGpzb25BcnJheUZyb20oXG4gICAgZGJTZW5zLnNlbGVjdEZyb20oXCJhY3Rpdml0ZV9sb2lcIilcbiAgICAgIC53aGVyZShcImFjdGlkXCIsIFwiPVwiLCBhY3RJZClcbiAgICAgIC5zZWxlY3QoKHsgcmVmIH0pID0+IFtcbiAgICAgICAgcnRyaW0ocmVmKFwibG9pY29kXCIpKS5hcyhcImxvaWNvZFwiKSxcbiAgICAgIF0pLFxuICApXG59XG5cbmZ1bmN0aW9uIGRlbGVnYXRpb25zIChhY3RJZDogRXhwcmVzc2lvbjxzdHJpbmc+KSB7XG4gIHJldHVybiBqc29uQXJyYXlGcm9tKFxuICAgIGRiU2Vucy5zZWxlY3RGcm9tKFwiYWN0aXZpdGVfZGVsZWdhdGlvblwiKVxuICAgICAgLndoZXJlKFwiYWN0aWRcIiwgXCI9XCIsIGFjdElkKVxuICAgICAgLm9yZGVyQnkoXCJkZWxlZ2lkeCBhc2NcIiksXG4gIClcbn1cblxuZnVuY3Rpb24gYWN0aXZpdGVzIChzZW5NYXQ6IEV4cHJlc3Npb248c3RyaW5nPikge1xuICByZXR1cm4ganNvbkFycmF5RnJvbShcbiAgICBkYlNlbnMuc2VsZWN0RnJvbShcImFjdGl2aXRlXCIpXG4gICAgICAubGVmdEpvaW4oXCJhY3Rpdml0ZV9wYXJ0aWNpcGFudFwiLCBcImFjdGl2aXRlLmFjdGlkXCIsIFwiYWN0aXZpdGVfcGFydGljaXBhbnQuYWN0aWRcIilcbiAgICAgIC5sZWZ0Sm9pbihcInR5cGVfYWN0aXZpdGVcIiwgXCJhY3Rpdml0ZS50eXBhY3Rjb2RcIiwgXCJ0eXBlX2FjdGl2aXRlLnR5cGFjdGNvZFwiKVxuICAgICAgLmxlZnRKb2luKFwiY2F0ZWdvcmllX2FjdGl2aXRlXCIsIFwiYWN0aXZpdGUuY2F0YWN0Y29kXCIsIFwiY2F0ZWdvcmllX2FjdGl2aXRlLmNhdGFjdGNvZFwiKVxuICAgICAgLndoZXJlKFwiYWN0aXZpdGVfcGFydGljaXBhbnQuc2VubWF0XCIsIFwiPVwiLCBzZW5NYXQpXG4gICAgICAuc2VsZWN0KCh7IHJlZiB9KSA9PiBbXG4gICAgICAgIGRlbGVnYXRpb25zKHJlZihcImFjdGl2aXRlLmFjdGlkXCIpKS5hcyhcImRlbGVnYXRpb25zXCIpLFxuICAgICAgICB0ZXh0ZXMocmVmKFwiYWN0aXZpdGUuYWN0aWRcIikpLmFzKFwidGV4dGVzXCIpLFxuICAgICAgXSlcbiAgICAgIC5vcmRlckJ5KFwiYWN0aXZpdGUuZGF0ZGViIGRlc2NcIiksXG4gIClcbn1cblxuZnVuY3Rpb24gYWN0aXZpdGVzUGVyc28gKHNlbk1hdDogRXhwcmVzc2lvbjxzdHJpbmc+KSB7XG4gIHJldHVybiBqc29uQXJyYXlGcm9tKFxuICAgIGRiU2Vucy5zZWxlY3RGcm9tKFwiYWN0aXZpdGVfc2VuYXRldXJcIilcbiAgICAgIC5sZWZ0Sm9pbihcInR5cGVfYWN0aXZpdGVfc2VuYXRldXJcIiwgXCJhY3Rpdml0ZV9zZW5hdGV1ci50eXBhY3RzZW5jb2RcIiwgXCJ0eXBlX2FjdGl2aXRlX3NlbmF0ZXVyLnR5cGFjdHNlbmNvZFwiKVxuICAgICAgLndoZXJlKFwiYWN0aXZpdGVfc2VuYXRldXIuc2VubWF0XCIsIFwiPVwiLCBzZW5NYXQpXG4gICAgICAub3JkZXJCeShcImFjdGl2aXRlX3NlbmF0ZXVyLmRhdGRlYiBkZXNjXCIpLFxuICApXG59XG5cbmZ1bmN0aW9uIGZvbmN0aW9uc0J1cmVhdSAoc2VuTWF0OiBFeHByZXNzaW9uPHN0cmluZz4pIHtcbiAgcmV0dXJuIGpzb25BcnJheUZyb20oXG4gICAgZGJTZW5zLnNlbGVjdEZyb20oXCJzZW5idXJcIilcbiAgICAgIC5sZWZ0Sm9pbihcImJ1clwiLCBcInNlbmJ1ci5idXJjb2RcIiwgXCJidXIuYnVyY29kXCIpXG4gICAgICAud2hlcmUoXCJzZW5idXIuc2VubWF0XCIsIFwiPVwiLCBzZW5NYXQpXG4gICAgICAuc2VsZWN0KCh7IHJlZiB9KSA9PiBbXG4gICAgICAgIHRvRGF0ZVN0cmluZyhyZWYoXCJzZW5idXIuc2VuYnVyZGF0ZGViXCIpKS5hcyhcImRhdGVfZGVidXRcIiksXG4gICAgICAgIHRvRGF0ZVN0cmluZyhyZWYoXCJzZW5idXIuc2VuYnVyZGF0ZmluXCIpKS5hcyhcImRhdGVfZmluXCIpLFxuICAgICAgICBcImJ1ci5idXJsaWIgYXMgbGliZWxsZVwiLFxuICAgICAgXSlcbiAgICAgIC5vcmRlckJ5KFwic2VuYnVyLnNlbmJ1cmRhdGRlYiBkZXNjXCIpLFxuICApXG59XG5cbmZ1bmN0aW9uIG1hbmRhdHNFbHVDb25zZWlsbGVyR2VuZXJhbCAoc2VuTWF0OiBFeHByZXNzaW9uPHN0cmluZz4pIHtcbiAgcmV0dXJuIGpzb25BcnJheUZyb20oXG4gICAgZGJTZW5zLnNlbGVjdEZyb20oXCJlbHVjYW5cIilcbiAgICAgIC5sZWZ0Sm9pbihcInR5cG1hblwiLCBcImVsdWNhbi50eXBtYW5jb2RcIiwgXCJ0eXBtYW4udHlwbWFuY29kXCIpXG4gICAgICAud2hlcmUoXCJlbHVjYW4uc2VubWF0XCIsIFwiPVwiLCBzZW5NYXQpXG4gICAgICAuc2VsZWN0KCh7IHJlZiB9KSA9PiBbXG4gICAgICAgIGNpcmNvbnNjcmlwdGlvbihyZWYoXCJlbHVjYW4uZHB0bnVtXCIpLiRub3ROdWxsKCkpLmFzKFwiY2lyY29uc2NyaXB0aW9uXCIpLFxuICAgICAgXSlcbiAgICAgIC5vcmRlckJ5KFwiZWx1Y2FuLmVsdWRhdGRlYiBkZXNjXCIpLFxuICApXG59XG5cbmZ1bmN0aW9uIG1hbmRhdHNFbHVEZXB1dGUgKHNlbk1hdDogRXhwcmVzc2lvbjxzdHJpbmc+KSB7XG4gIHJldHVybiBqc29uQXJyYXlGcm9tKFxuICAgIGRiU2Vucy5zZWxlY3RGcm9tKFwiZWx1ZGVwXCIpXG4gICAgICAubGVmdEpvaW4oXCJ0eXBtYW5cIiwgXCJlbHVkZXAudHlwbWFuY29kXCIsIFwidHlwbWFuLnR5cG1hbmNvZFwiKVxuICAgICAgLndoZXJlKFwiZWx1ZGVwLnNlbm1hdFwiLCBcIj1cIiwgc2VuTWF0KVxuICAgICAgLnNlbGVjdCgoeyByZWYgfSkgPT4gW1xuICAgICAgICBjaXJjb25zY3JpcHRpb24ocmVmKFwiZWx1ZGVwLmNpcmNvXCIpLiRub3ROdWxsKCkpLmFzKFwiY2lyY29uc2NyaXB0aW9uXCIpLFxuICAgICAgXSlcbiAgICAgIC5vcmRlckJ5KFwiZWx1ZGVwLmVsdWRhdGRlYiBkZXNjXCIpLFxuICApXG59XG5cbmZ1bmN0aW9uIG1hbmRhdHNFbHVEaXZlcnMgKHNlbk1hdDogRXhwcmVzc2lvbjxzdHJpbmc+KSB7XG4gIHJldHVybiBqc29uQXJyYXlGcm9tKFxuICAgIGRiU2Vucy5zZWxlY3RGcm9tKFwiZWx1ZGl2XCIpXG4gICAgICAubGVmdEpvaW4oXCJ0eXBtYW5cIiwgXCJlbHVkaXYudHlwbWFuY29kXCIsIFwidHlwbWFuLnR5cG1hbmNvZFwiKVxuICAgICAgLndoZXJlKFwiZWx1ZGl2LnNlbm1hdFwiLCBcIj1cIiwgc2VuTWF0KVxuICAgICAgLm9yZGVyQnkoXCJlbHVkaXYuZWx1ZGF0ZGViIGRlc2NcIiksXG4gIClcbn1cblxuZnVuY3Rpb24gbWFuZGF0c0VsdUV1cm9wZWVuIChzZW5NYXQ6IEV4cHJlc3Npb248c3RyaW5nPikge1xuICByZXR1cm4ganNvbkFycmF5RnJvbShcbiAgICBkYlNlbnMuc2VsZWN0RnJvbShcImVsdWV1clwiKVxuICAgICAgLmxlZnRKb2luKFwibmF0aW9uXCIsIFwiZWx1ZXVyLm5hdGlvbmNvZFwiLCBcIm5hdGlvbi5uYXRpb25jb2RcIilcbiAgICAgIC5sZWZ0Sm9pbihcInR5cG1hblwiLCBcImVsdWV1ci50eXBtYW5jb2RcIiwgXCJ0eXBtYW4udHlwbWFuY29kXCIpXG4gICAgICAud2hlcmUoXCJlbHVldXIuc2VubWF0XCIsIFwiPVwiLCBzZW5NYXQpXG4gICAgICAub3JkZXJCeShcImVsdWV1ci5lbHVkYXRkZWIgZGVzY1wiKSxcbiAgKVxufVxuXG5mdW5jdGlvbiBtYW5kYXRzRWx1Q29uc2VpbGxlclJlZ2lvbmFsIChzZW5NYXQ6IEV4cHJlc3Npb248c3RyaW5nPikge1xuICByZXR1cm4ganNvbkFycmF5RnJvbShcbiAgICBkYlNlbnMuc2VsZWN0RnJvbShcImVsdXJlZ1wiKVxuICAgICAgLmxlZnRKb2luKFwicmVnXCIsIFwiZWx1cmVnLnJlZ2NvZFwiLCBcInJlZy5yZWdjb2RcIilcbiAgICAgIC5sZWZ0Sm9pbihcInR5cG1hblwiLCBcImVsdXJlZy50eXBtYW5jb2RcIiwgXCJ0eXBtYW4udHlwbWFuY29kXCIpXG4gICAgICAud2hlcmUoXCJlbHVyZWcuc2VubWF0XCIsIFwiPVwiLCBzZW5NYXQpXG4gICAgICAub3JkZXJCeShcImVsdXJlZy5lbHVkYXRkZWIgZGVzY1wiKSxcbiAgKVxufVxuXG5mdW5jdGlvbiBtYW5kYXRzRWx1U2VuYXRldXIgKHNlbk1hdDogRXhwcmVzc2lvbjxzdHJpbmc+KSB7XG4gIHJldHVybiBqc29uQXJyYXlGcm9tKFxuICAgIGRiU2Vucy5zZWxlY3RGcm9tKFwiZWx1c2VuXCIpXG4gICAgICAubGVmdEpvaW4oXCJldGFkZWJtYW5cIiwgXCJlbHVzZW4uZXRhZGVibWFuY29kXCIsIFwiZXRhZGVibWFuLmV0YWRlYm1hbmNvZFwiKVxuICAgICAgLmxlZnRKb2luKFwiZXRhZmlubWFuXCIsIFwiZWx1c2VuLmV0YWZpbm1hbmNvZFwiLCBcImV0YWZpbm1hbi5ldGFmaW5tYW5jb2RcIilcbiAgICAgIC5sZWZ0Sm9pbihcInR5cG1hblwiLCBcImVsdXNlbi50eXBtYW5jb2RcIiwgXCJ0eXBtYW4udHlwbWFuY29kXCIpXG4gICAgICAud2hlcmUoXCJlbHVzZW4uc2VubWF0XCIsIFwiPVwiLCBzZW5NYXQpXG4gICAgICAuc2VsZWN0KCh7IHJlZiB9KSA9PiBbXG4gICAgICAgIFwiZWx1c2VuLmRwdG51bSBhcyBjb2RlX2NpcmNvbnNjcmlwdGlvblwiLFxuICAgICAgICB0b0RhdGVTdHJpbmcocmVmKFwiZWx1c2VuLmVsdWRhdGRlYlwiKSkuYXMoXCJkYXRlX2RlYnV0XCIpLFxuICAgICAgICB0b0RhdGVTdHJpbmcocmVmKFwiZWx1c2VuLmVsdWRhdGZpblwiKSkuYXMoXCJkYXRlX2ZpblwiKSxcbiAgICAgICAgXCJldGFkZWJtYW4uZXRhZGVibWFubGliIGFzIGV0YXRfZGVidXRcIixcbiAgICAgICAgXCJldGFmaW5tYW4uZXRhZmlubWFuIGFzIGV0YXRfZmluXCIsXG4gICAgICBdKVxuICAgICAgLm9yZGVyQnkoXCJlbHVzZW4uZWx1ZGF0ZGViIGRlc2NcIiksXG4gIClcbn1cblxuZnVuY3Rpb24gbWFuZGF0c0VsdVRlcnJpdG9yaWFsIChzZW5NYXQ6IEV4cHJlc3Npb248c3RyaW5nPikge1xuICByZXR1cm4ganNvbkFycmF5RnJvbShcbiAgICBkYlNlbnMuc2VsZWN0RnJvbShcImVsdXRlclwiKVxuICAgICAgLmxlZnRKb2luKFwiYXNzdGVyXCIsIFwiZWx1dGVyLmFzc3RlcmNvZFwiLCBcImFzc3Rlci5hc3N0ZXJjb2RcIilcbiAgICAgIC5sZWZ0Sm9pbihcInR5cG1hblwiLCBcImVsdXRlci50eXBtYW5jb2RcIiwgXCJ0eXBtYW4udHlwbWFuY29kXCIpXG4gICAgICAud2hlcmUoXCJlbHV0ZXIuc2VubWF0XCIsIFwiPVwiLCBzZW5NYXQpXG4gICAgICAub3JkZXJCeShcImVsdXRlci5lbHVkYXRkZWIgZGVzY1wiKSxcbiAgKVxufVxuXG5mdW5jdGlvbiBtYW5kYXRzRWx1Q29uc2VpbGxlck11bmljaXBhbCAoc2VuTWF0OiBFeHByZXNzaW9uPHN0cmluZz4pIHtcbiAgcmV0dXJuIGpzb25BcnJheUZyb20oXG4gICAgZGJTZW5zLnNlbGVjdEZyb20oXCJlbHV2aWxcIilcbiAgICAgIC5sZWZ0Sm9pbihcInR5cG1hblwiLCBcImVsdXZpbC50eXBtYW5jb2RcIiwgXCJ0eXBtYW4udHlwbWFuY29kXCIpXG4gICAgICAud2hlcmUoXCJlbHV2aWwuc2VubWF0XCIsIFwiPVwiLCBzZW5NYXQpXG4gICAgICAub3JkZXJCeShcImVsdXZpbC5lbHVkYXRkZWIgZGVzY1wiKSxcbiAgKVxufVxuXG5mdW5jdGlvbiBmb25jdGlvbnNNZW1icmVDb21taXNzaW9uIChtZW1Db21JZDogRXhwcmVzc2lvbjxzdHJpbmc+KSB7XG4gIHJldHVybiBqc29uQXJyYXlGcm9tKFxuICAgIGRiU2Vucy5zZWxlY3RGcm9tKFwiZm9ubWVtY29tXCIpXG4gICAgICAubGVmdEpvaW4oXCJmb25jb21cIiwgXCJmb25tZW1jb20uZm9uY29tY29kXCIsIFwiZm9uY29tLmZvbmNvbWNvZFwiKVxuICAgICAgLndoZXJlKFwiZm9ubWVtY29tLm1lbWNvbWlkXCIsIFwiPVwiLCBtZW1Db21JZClcbiAgICAgIC5zZWxlY3QoKHsgcmVmIH0pID0+IFtcbiAgICAgICAgdG9EYXRlU3RyaW5nKHJlZihcImZvbm1lbWNvbS5mb25tZW1jb21kYXRkZWJcIikpLmFzKFwiZGF0ZV9kZWJ1dFwiKSxcbiAgICAgICAgdG9EYXRlU3RyaW5nKHJlZihcImZvbm1lbWNvbS5mb25tZW1jb21kYXRmaW5cIikpLmFzKFwiZGF0ZV9maW5cIiksXG4gICAgICAgIFwiZm9uY29tLmZvbmNvbWxpYiBhcyBsaWJlbGxlXCIsXG4gICAgICBdKVxuICAgICAgLm9yZGVyQnkoXCJmb25tZW1jb20uZm9ubWVtY29tZGF0ZGViIGRlc2NcIiksXG4gIClcbn1cblxuZnVuY3Rpb24gbWFuZGF0c01lbWJyZUNvbW1pc3Npb24gKHNlbk1hdDogRXhwcmVzc2lvbjxzdHJpbmc+KSB7XG4gIHJldHVybiBqc29uQXJyYXlGcm9tKFxuICAgIGRiU2Vucy5zZWxlY3RGcm9tKFwibWVtY29tXCIpXG4gICAgICAubGVmdEpvaW4oXCJjb21cIiwgXCJtZW1jb20ub3JnY29kXCIsIFwiY29tLm9yZ2NvZFwiKVxuICAgICAgLmxlZnRKb2luKFwidHlwb3JnXCIsIFwiY29tLnR5cG9yZ2NvZFwiLCBcInR5cG9yZy50eXBvcmdjb2RcIilcbiAgICAgIC53aGVyZShcIm1lbWNvbS5zZW5tYXRcIiwgXCI9XCIsIHNlbk1hdClcbiAgICAgIC5zZWxlY3QoKHsgcmVmIH0pID0+IFtcbiAgICAgICAgXCJjb20udHlwb3JnY29kIGFzIHR5cGVfY29kZV9vcmdhbmlzbWVcIixcbiAgICAgICAgXCJtZW1jb20ub3JnY29kIGFzIGNvZGVfb3JnYW5pc21lXCIsXG4gICAgICAgIFwidHlwb3JnLnR5cG9yZ2xpYiBhcyB0eXBlX29yZ2FuaXNtZVwiLFxuICAgICAgICBcImNvbS5jb21saWxtaW4gYXMgbGliZWxsZVwiLFxuICAgICAgICB0b0RhdGVTdHJpbmcocmVmKFwibWVtY29tLm1lbWNvbWRhdGRlYlwiKSkuYXMoXCJkYXRlX2RlYnV0XCIpLFxuICAgICAgICB0b0RhdGVTdHJpbmcocmVmKFwibWVtY29tLm1lbWNvbWRhdGZpblwiKSkuYXMoXCJkYXRlX2ZpblwiKSxcbiAgICAgIF0pXG4gICAgICAuc2VsZWN0KCh7IHJlZiB9KSA9PiBbXG4gICAgICAgIGZvbmN0aW9uc01lbWJyZUNvbW1pc3Npb24ocmVmKFwibWVtY29tLm1lbWNvbWlkXCIpKS5hcyhcImZvbmN0aW9uc1wiKSxcbiAgICAgIF0pXG4gICAgICAub3JkZXJCeShcIm1lbWNvbS5tZW1jb21kYXRkZWIgZGVzY1wiKSxcbiAgKVxufVxuXG5mdW5jdGlvbiBmb25jdGlvbnNNZW1icmVEZWxlZ2F0aW9uIChtZW1EZWxlZ2FJZDogRXhwcmVzc2lvbjxzdHJpbmc+KSB7XG4gIHJldHVybiBqc29uQXJyYXlGcm9tKFxuICAgIGRiU2Vucy5zZWxlY3RGcm9tKFwiZm9ubWVtZGVsZWdhXCIpXG4gICAgICAubGVmdEpvaW4oXCJmb25kZWxlZ2FcIiwgXCJmb25tZW1kZWxlZ2EuZm9uZGVsY29kXCIsIFwiZm9uZGVsZWdhLmZvbmRlbGNvZFwiKVxuICAgICAgLndoZXJlKFwiZm9ubWVtZGVsZWdhLm1lbWRlbGVnYWlkXCIsIFwiPVwiLCBtZW1EZWxlZ2FJZClcbiAgICAgIC5zZWxlY3QoKHsgcmVmIH0pID0+IFtcbiAgICAgICAgdG9EYXRlU3RyaW5nKHJlZihcImZvbm1lbWRlbGVnYS5mb25tZW1kZWxkYXRkZWJcIikpLmFzKFwiZGF0ZV9kZWJ1dFwiKSxcbiAgICAgICAgdG9EYXRlU3RyaW5nKHJlZihcImZvbm1lbWRlbGVnYS5mb25tZW1kZWxkYXRmaW5cIikpLmFzKFwiZGF0ZV9maW5cIiksXG4gICAgICAgIFwiZm9uZGVsZWdhLmZvbmRlbGxpYiBhcyBsaWJlbGxlXCIsXG4gICAgICBdKVxuICAgICAgLm9yZGVyQnkoXCJmb25tZW1kZWxlZ2EuZm9ubWVtZGVsZGF0ZGViIGRlc2NcIiksXG4gIClcbn1cblxuZnVuY3Rpb24gbWFuZGF0c01lbWJyZURlbGVnYXRpb24gKHNlbk1hdDogRXhwcmVzc2lvbjxzdHJpbmc+KSB7XG4gIHJldHVybiBqc29uQXJyYXlGcm9tKFxuICAgIGRiU2Vucy5zZWxlY3RGcm9tKFwibWVtZGVsZWdhXCIpXG4gICAgICAubGVmdEpvaW4oXCJkZWxlZ2FcIiwgXCJtZW1kZWxlZ2Eub3JnY29kXCIsIFwiZGVsZWdhLm9yZ2NvZFwiKVxuICAgICAgLmxlZnRKb2luKFwiZGVzaWdub3JnXCIsIFwibWVtZGVsZWdhLmRlc2lnbmNvZFwiLCBcImRlc2lnbm9yZy5kZXNpZ25jb2RcIilcbiAgICAgIC5sZWZ0Sm9pbihcInR5cG9yZ1wiLCBcImRlbGVnYS50eXBvcmdjb2RcIiwgXCJ0eXBvcmcudHlwb3JnY29kXCIpXG4gICAgICAud2hlcmUoXCJtZW1kZWxlZ2Euc2VubWF0XCIsIFwiPVwiLCBzZW5NYXQpXG4gICAgICAuc2VsZWN0KCh7IHJlZiB9KSA9PiBbXG4gICAgICAgIFwiZGVsZWdhLnR5cG9yZ2NvZCBhcyB0eXBlX2NvZGVfb3JnYW5pc21lXCIsXG4gICAgICAgIFwibWVtZGVsZWdhLm9yZ2NvZCBhcyBjb2RlX29yZ2FuaXNtZVwiLFxuICAgICAgICBcInR5cG9yZy50eXBvcmdsaWIgYXMgdHlwZV9vcmdhbmlzbWVcIixcbiAgICAgICAgXCJkZWxlZ2EuZXZlbGliIGFzIGxpYmVsbGVcIixcbiAgICAgICAgdG9EYXRlU3RyaW5nKHJlZihcIm1lbWRlbGVnYS5tZW1kZWxlZ2FkYXRkZWJcIikpLmFzKFwiZGF0ZV9kZWJ1dFwiKSxcbiAgICAgICAgdG9EYXRlU3RyaW5nKHJlZihcIm1lbWRlbGVnYS5tZW1kZWxlZ2FkYXRmaW5cIikpLmFzKFwiZGF0ZV9maW5cIiksXG4gICAgICBdKVxuICAgICAgLnNlbGVjdCgoeyByZWYgfSkgPT4gW1xuICAgICAgICBmb25jdGlvbnNNZW1icmVEZWxlZ2F0aW9uKHJlZihcIm1lbWRlbGVnYS5tZW1kZWxlZ2FpZFwiKSkuYXMoXCJmb25jdGlvbnNcIiksXG4gICAgICBdKVxuICAgICAgLm9yZGVyQnkoXCJtZW1kZWxlZ2EubWVtZGVsZWdhZGF0ZGViIGRlc2NcIiksXG4gIClcbn1cblxuZnVuY3Rpb24gbWFuZGF0c01lbWJyZUV4dHJhUGFybGVtZW50YWlyZSAoc2VuTWF0OiBFeHByZXNzaW9uPHN0cmluZz4pIHtcbiAgcmV0dXJuIGpzb25BcnJheUZyb20oXG4gICAgZGJTZW5zLnNlbGVjdEZyb20oXCJtZW1leHRwYXJcIilcbiAgICAgIC5sZWZ0Sm9pbihcIm9yZ2V4dFwiLCBcIm1lbWV4dHBhci5vcmdjb2RcIiwgXCJvcmdleHQub3JnY29kXCIpXG4gICAgICAubGVmdEpvaW4oXCJkZXNpZ25cIiwgXCJtZW1leHRwYXIuZGVzaWduY29kXCIsIFwiZGVzaWduLmRlc2lnbmNvZFwiKVxuICAgICAgLndoZXJlKFwibWVtZXh0cGFyLnNlbm1hdFwiLCBcIj1cIiwgc2VuTWF0KVxuICAgICAgLm9yZGVyQnkoXCJtZW1leHRwYXIubWVtZXh0cGFyZGF0ZGViIGRlc2NcIiksXG4gIClcbn1cblxuZnVuY3Rpb24gZm9uY3Rpb25zTWVtYnJlR3JvdXBlUG9saXRpcXVlIChtZW1HcnBQb2xJZDogRXhwcmVzc2lvbjxzdHJpbmc+KSB7XG4gIHJldHVybiBqc29uQXJyYXlGcm9tKFxuICAgIGRiU2Vucy5zZWxlY3RGcm9tKFwiZm9ubWVtZ3JwcG9sXCIpXG4gICAgICAubGVmdEpvaW4oXCJmb25ncnBwb2xcIiwgXCJmb25tZW1ncnBwb2wuZm9uZ3JwcG9sY29kXCIsIFwiZm9uZ3JwcG9sLmZvbmdycHBvbGNvZFwiKVxuICAgICAgLndoZXJlKFwiZm9ubWVtZ3JwcG9sLm1lbWdycHBvbGlkXCIsIFwiPVwiLCBtZW1HcnBQb2xJZClcbiAgICAgIC5zZWxlY3QoKHsgcmVmIH0pID0+IFtcbiAgICAgICAgdG9EYXRlU3RyaW5nKHJlZihcImZvbm1lbWdycHBvbC5mb25tZW1ncnBwb2xkYXRkZWJcIikpLmFzKFwiZGF0ZV9kZWJ1dFwiKSxcbiAgICAgICAgdG9EYXRlU3RyaW5nKHJlZihcImZvbm1lbWdycHBvbC5mb25tZW1ncnBwb2xkYXRmaW5cIikpLmFzKFwiZGF0ZV9maW5cIiksXG4gICAgICAgIFwiZm9uZ3JwcG9sLmZvbmdycHBvbGxpYiBhcyBsaWJlbGxlXCIsXG4gICAgICBdKVxuICAgICAgLm9yZGVyQnkoXCJmb25tZW1ncnBwb2wuZm9ubWVtZ3JwcG9sZGF0ZGViIGRlc2NcIiksXG4gIClcbn1cblxuZnVuY3Rpb24gbWFuZGF0c01lbWJyZUdyb3VwZVBvbGl0aXF1ZSAoc2VuTWF0OiBFeHByZXNzaW9uPHN0cmluZz4pIHtcbiAgcmV0dXJuIGpzb25BcnJheUZyb20oXG4gICAgZGJTZW5zLnNlbGVjdEZyb20oXCJtZW1ncnBwb2xcIilcbiAgICAgIC5sZWZ0Sm9pbihcImdycHBvbFwiLCBcIm1lbWdycHBvbC5ncnBwb2xjb2RcIiwgXCJncnBwb2wuZ3JwcG9sY29kXCIpXG4gICAgICAubGVmdEpvaW4oXCJ0eXBhcHBwb2xcIiwgXCJtZW1ncnBwb2wudHlwYXBwcG9sY29kXCIsIFwidHlwYXBwcG9sLnR5cGFwcHBvbGNvZFwiKVxuICAgICAgLndoZXJlKFwibWVtZ3JwcG9sLnNlbm1hdFwiLCBcIj1cIiwgc2VuTWF0KVxuICAgICAgLnNlbGVjdCgoeyByZWYgfSkgPT4gW1xuICAgICAgICBcIm1lbWdycHBvbC5ncnBwb2xjb2QgYXMgY29kZVwiLFxuICAgICAgICBcImdycHBvbC5ncnBwb2xsaWJjb3UgYXMgbGliZWxsZVwiLFxuICAgICAgICB0b0RhdGVTdHJpbmcocmVmKFwibWVtZ3JwcG9sLm1lbWdycHBvbGRhdGRlYlwiKSkuYXMoXCJkYXRlX2RlYnV0XCIpLFxuICAgICAgICB0b0RhdGVTdHJpbmcocmVmKFwibWVtZ3JwcG9sLm1lbWdycHBvbGRhdGZpblwiKSkuYXMoXCJkYXRlX2ZpblwiKSxcbiAgICAgICAgXCJ0eXBhcHBwb2wudHlwYXBwcG9sbGliIGFzIGZvbmN0aW9uXCIsXG4gICAgICBdKVxuICAgICAgLnNlbGVjdCgoeyByZWYgfSkgPT4gW1xuICAgICAgICBmb25jdGlvbnNNZW1icmVHcm91cGVQb2xpdGlxdWUocmVmKFwibWVtZ3JwcG9sLm1lbWdycHBvbGlkXCIpKS5hcyhcImZvbmN0aW9uc1wiKSxcbiAgICAgIF0pXG4gICAgICAub3JkZXJCeShcIm1lbWdycHBvbC5tZW1ncnBwb2xkYXRkZWIgZGVzY1wiKSxcbiAgKVxufVxuXG5mdW5jdGlvbiBmb25jdGlvbnNNZW1icmVHcm91cGVTZW5hdG9yaWFsIChtZW1HcnBTZW5JZDogRXhwcmVzc2lvbjxzdHJpbmc+KSB7XG4gIHJldHVybiBqc29uQXJyYXlGcm9tKFxuICAgIGRiU2Vucy5zZWxlY3RGcm9tKFwiZm9ubWVtZ3Jwc2VuXCIpXG4gICAgICAubGVmdEpvaW4oXCJmb25ncnBzZW5cIiwgXCJmb25tZW1ncnBzZW4uZm9uZ3Jwc2VuY29kXCIsIFwiZm9uZ3Jwc2VuLmZvbmdycHNlbmNvZFwiKVxuICAgICAgLndoZXJlKFwiZm9ubWVtZ3Jwc2VuLm1lbWdycHNlbmlkXCIsIFwiPVwiLCBtZW1HcnBTZW5JZClcbiAgICAgIC5vcmRlckJ5KFwiZm9ubWVtZ3Jwc2VuLmZvbm1lbWdycHNlbmRhdGRlYiBkZXNjXCIpLFxuICApXG59XG5cbmZ1bmN0aW9uIG1hbmRhdHNNZW1icmVHcm91cGVTZW5hdG9yaWFsIChzZW5NYXQ6IEV4cHJlc3Npb248c3RyaW5nPikge1xuICByZXR1cm4ganNvbkFycmF5RnJvbShcbiAgICBkYlNlbnMuc2VsZWN0RnJvbShcIm1lbWdycHNlblwiKVxuICAgICAgLmxlZnRKb2luKFwiZ3Jwc2VuYW1pXCIsIFwibWVtZ3Jwc2VuLm9yZ2NvZFwiLCBcImdycHNlbmFtaS5vcmdjb2RcIilcbiAgICAgIC5sZWZ0Sm9pbihcInR5cGdycHNlblwiLCBcImdycHNlbmFtaS50eXBncnBzZW5jb2RcIiwgXCJ0eXBncnBzZW4udHlwZ3Jwc2VuY29kXCIpXG4gICAgICAud2hlcmUoXCJtZW1ncnBzZW4uc2VubWF0XCIsIFwiPVwiLCBzZW5NYXQpXG4gICAgICAuc2VsZWN0KCh7IHJlZiB9KSA9PiBbXG4gICAgICAgIGZvbmN0aW9uc01lbWJyZUdyb3VwZVNlbmF0b3JpYWwocmVmKFwibWVtZ3Jwc2VuLm1lbWdycHNlbmlkXCIpKS5hcyhcImZvbmN0aW9uc1wiKSxcbiAgICAgIF0pXG4gICAgICAub3JkZXJCeShcIm1lbWdycHNlbi5tZW1ncnBzZW5kYXRlbnQgZGVzY1wiKSxcbiAgKVxufVxuXG5mdW5jdGlvbiBmb25jdGlvbnNNZW1icmVPcmdhbmlzbWUgKG1lbU9yZ0lkOiBFeHByZXNzaW9uPHN0cmluZz4pIHtcbiAgcmV0dXJuIGpzb25BcnJheUZyb20oXG4gICAgZGJTZW5zLnNlbGVjdEZyb20oXCJmb25tZW1vcmdcIilcbiAgICAgIC5sZWZ0Sm9pbihcImZvbm9yZ1wiLCBcImZvbm1lbW9yZy5mb25vcmdjb2RcIiwgXCJmb25vcmcuZm9ub3JnY29kXCIpXG4gICAgICAud2hlcmUoXCJmb25tZW1vcmcubWVtb3JnaWRcIiwgXCI9XCIsIG1lbU9yZ0lkKVxuICAgICAgLm9yZGVyQnkoXCJmb25tZW1vcmcuZm9ubWVtb3JnZGF0ZGViIGRlc2NcIiksXG4gIClcbn1cblxuZnVuY3Rpb24gbWFuZGF0c01lbWJyZU9yZ2FuaXNtZSAoc2VuTWF0OiBFeHByZXNzaW9uPHN0cmluZz4pIHtcbiAgcmV0dXJuIGpzb25BcnJheUZyb20oXG4gICAgZGJTZW5zLnNlbGVjdEZyb20oXCJtZW1vcmdcIilcbiAgICAgIC5sZWZ0Sm9pbihcIm9yZ1wiLCBcIm1lbW9yZy5vcmdjb2RcIiwgXCJvcmcub3JnY29kXCIpXG4gICAgICAubGVmdEpvaW4oXCJ0eXBvcmdcIiwgXCJvcmcudHlwb3JnY29kXCIsIFwidHlwb3JnLnR5cG9yZ2NvZFwiKVxuICAgICAgLmxlZnRKb2luKFwiZGVzaWdub3JnXCIsIFwibWVtb3JnLmRlc2lnbmNvZFwiLCBcImRlc2lnbm9yZy5kZXNpZ25jb2RcIilcbiAgICAgIC53aGVyZShcIm1lbW9yZy5zZW5tYXRcIiwgXCI9XCIsIHNlbk1hdClcbiAgICAgIC5zZWxlY3QoKHsgcmVmIH0pID0+IFtcbiAgICAgICAgZm9uY3Rpb25zTWVtYnJlT3JnYW5pc21lKHJlZihcIm1lbW9yZy5tZW1vcmdpZFwiKSkuYXMoXCJmb25jdGlvbnNcIiksXG4gICAgICBdKVxuICAgICAgLm9yZGVyQnkoXCJtZW1vcmcubWVtb3JnZGF0ZGViIGRlc2NcIiksXG4gIClcbn1cblxuZnVuY3Rpb24gbWFuZGF0c01pbmlzdHJlIChzZW5NYXQ6IEV4cHJlc3Npb248c3RyaW5nPikge1xuICByZXR1cm4ganNvbkFycmF5RnJvbShcbiAgICBkYlNlbnMuc2VsZWN0RnJvbShcIm1pbmluZFwiKVxuICAgICAgLndoZXJlKFwibWluaW5kLnNlbm1hdFwiLCBcIj1cIiwgc2VuTWF0KVxuICAgICAgLm9yZGVyQnkoXCJtaW5pbmQubWluZGF0ZGViIGRlc2NcIiksXG4gIClcbn1cblxuZnVuY3Rpb24gY29udGFjdHMgKHNlbk1hdDogRXhwcmVzc2lvbjxzdHJpbmc+KSB7XG4gIHJldHVybiBqc29uQXJyYXlGcm9tKFxuICAgIGRiU2Vucy5zZWxlY3RGcm9tKFwicG9pY29uXCIpXG4gICAgICAubGVmdEpvaW4oXCJhZHJlc3NlXCIsIFwicG9pY29uLnBvaWNvbmlkXCIsIFwiYWRyZXNzZS5wb2ljb25pZFwiKVxuICAgICAgLmxlZnRKb2luKFwibWVsXCIsIFwicG9pY29uLnBvaWNvbmlkXCIsIFwibWVsLnBvaWNvbmlkXCIpXG4gICAgICAubGVmdEpvaW4oXCJ0ZWxlcGhvbmVcIiwgXCJwb2ljb24ucG9pY29uaWRcIiwgXCJ0ZWxlcGhvbmUucG9pY29uaWRcIilcbiAgICAgIC53aGVyZShcInBvaWNvbi5zZW5tYXRcIiwgXCI9XCIsIHNlbk1hdClcbiAgICAgIC5vcmRlckJ5KFwicG9pY29uLnBvaWNvbm51bXRyaSBhc2NcIiksXG4gIClcbn1cblxuZnVuY3Rpb24gdXJscyAoc2VuTWF0OiBFeHByZXNzaW9uPHN0cmluZz4pIHtcbiAgcmV0dXJuIGpzb25BcnJheUZyb20oXG4gICAgZGJTZW5zLnNlbGVjdEZyb20oXCJzZW51cmxcIilcbiAgICAgIC53aGVyZShcInNlbnVybC5zZW5tYXRcIiwgXCI9XCIsIHNlbk1hdClcbiAgICAgIC5zZWxlY3QoW1xuICAgICAgICBcInNlbnVybC50eXB1cmxjb2QgYXMgY29kZV91cmxcIixcbiAgICAgICAgXCJzZW51cmwuc2VudXJsdXJsIGFzIHVybFwiLFxuICAgICAgXSlcbiAgICAgIC5vcmRlckJ5KFwic2VudXJsLnNlbnVybG51bXRyaSBhc2NcIiksXG4gIClcbn1cblxuY29uc3QgZmluZEFsbFF1ZXJ5ID0gZGJTZW5zXG4gIC5zZWxlY3RGcm9tKFwic2VuXCIpXG4gIC5sZWZ0Sm9pbihcImV0YXNlblwiLCBcInNlbi5ldGFzZW5jb2RcIiwgXCJldGFzZW4uZXRhc2VuY29kXCIpXG4gIC5sZWZ0Sm9pbihcInBjc1wiLCBcInNlbi5wY3Njb2RcIiwgXCJwY3MucGNzY29kXCIpXG4gIC5sZWZ0Sm9pbihcInBjczQyXCIsIFwicGNzLnBjczQyY29kXCIsIFwicGNzNDIucGNzNDJjb2RcIilcbiAgLmxlZnRKb2luKFwicGNzMjRcIiwgXCJwY3M0Mi5wY3MyNGNvZFwiLCBcInBjczI0LnBjczI0Y29kXCIpXG4gIC5sZWZ0Sm9pbihcInBjczhcIiwgXCJwY3MyNC5wY3M4Y29kXCIsIFwicGNzOC5wY3M4Y29kXCIpXG4gIC5sZWZ0Sm9pbihcImdycHBvbFwiLCBcInNlbi5zZW5ncnBwb2xjb2Rjb3VcIiwgXCJncnBwb2wuZ3JwcG9sY29kXCIpXG4gIC5sZWZ0Sm9pbihcImNvbVwiLCBcInNlbi5zZW5jb21jb2Rjb3VcIiwgXCJjb20ub3JnY29kXCIpXG4gIC5zZWxlY3QoKHsgcmVmIH0pID0+IFtcbiAgICBcInNlbi5zZW5tYXQgYXMgbWF0cmljdWxlXCIsXG4gICAgXCJzZW4ucXVhY29kIGFzIHF1YWxpdGVcIixcbiAgICBcInNlbi5zZW5ub211c2UgYXMgbm9tX3VzdWVsXCIsXG4gICAgXCJzZW4uc2VucHJlbm9tdXNlIGFzIHByZW5vbV91c3VlbFwiLFxuICAgIFwic2VuLmV0YXNlbmNvZCBhcyBldGF0XCIsXG4gICAgdG9EYXRlU3RyaW5nKHJlZihcInNlbi5zZW5kYXRuYWlcIikpLmFzKFwiZGF0ZV9uYWlzc2FuY2VcIiksXG4gICAgdG9EYXRlU3RyaW5nKHJlZihcInNlbi5zZW5kYXRkZWNcIikpLmFzKFwiZGF0ZV9kZWNlc1wiKSxcbiAgICBcInNlbi5zZW5ncnBwb2xjb2Rjb3UgYXMgY29kZV9ncm91cGVfcG9saXRpcXVlXCIsXG4gICAgXCJzZW4uc2VuZ3JwcG9sbGljY291IGFzIGdyb3VwZV9wb2xpdGlxdWVcIixcbiAgICBcInNlbi5zZW5jb21jb2Rjb3UgYXMgY29kZV9jb21taXNzaW9uX3Blcm1hbmVudGVcIixcbiAgICBcImNvbS5jb21saWxtaW4gYXMgY29tbWlzc2lvbl9wZXJtYW5lbnRlXCIsXG4gICAgXCJzZW4uc2VuY2lybnVtY291IGFzIGNvZGVfY2lyY29uc2NyaXB0aW9uXCIsXG4gICAgXCJzZW4uc2VuY2lyY291IGFzIGNpcmNvbnNjcmlwdGlvblwiLFxuICAgIFwic2VuLnNlbmJ1cmxpY2NvdSBhcyBmb25jdGlvbl9idXJlYXVfc2VuYXRcIixcbiAgICBcInNlbi5zZW5lbWEgYXMgY291cnJpZXJfZWxlY3Ryb25pcXVlXCIsXG4gICAgXCJwY3MucGNzbGlsIGFzIFBDU19JTlNFRVwiLFxuICAgIFwicGNzNDIucGNzNDJsaWIgYXMgUENTX0lOU0VFXzQyXCIsXG4gICAgXCJwY3MyNC5wY3MyNGxpYiBhcyBQQ1NfSU5TRUVfMjRcIixcbiAgICBcInBjczgucGNzOGxpbCBhcyBQQ1NfSU5TRUVfOFwiLFxuICAgIFwic2VuLnNlbmRlc3BybyBhcyBkZXNjcmlwdGlvbl9wcm9mZXNzaW9uXCIsXG4gICAgXCJzZW4uc2VubnVtc2llIGFzIHNpZWdlXCIsXG4gICAgXCJzZW4uc2VuZGFpdXJsIGFzIHVybF9oYXR2cFwiLFxuICBdKVxuICAuc2VsZWN0KCh7IHJlZiB9KSA9PiBbXG4gICAgdXJscyhyZWYoXCJzZW4uc2VubWF0XCIpKS5hcyhcInVybHNcIiksXG4gICAgbWFuZGF0c0VsdVNlbmF0ZXVyKHJlZihcInNlbi5zZW5tYXRcIikpLmFzKFwibWFuZGF0c19zZW5hdGV1clwiKSxcbiAgICBtYW5kYXRzTWVtYnJlQ29tbWlzc2lvbihyZWYoXCJzZW4uc2VubWF0XCIpKS5hcyhcImNvbW1pc3Npb25zXCIpLFxuICAgIG1hbmRhdHNNZW1icmVEZWxlZ2F0aW9uKHJlZihcInNlbi5zZW5tYXRcIikpLmFzKFwiZGVsZWdhdGlvbnNcIiksXG4gICAgbWFuZGF0c01lbWJyZUdyb3VwZVBvbGl0aXF1ZShyZWYoXCJzZW4uc2VubWF0XCIpKS5hcyhcImdyb3VwZXNcIiksXG4gICAgZm9uY3Rpb25zQnVyZWF1KHJlZihcInNlbi5zZW5tYXRcIikpLmFzKFwiZm9uY3Rpb25zX2J1cmVhdVwiKSxcbiAgXSlcblxuY29uc3QgZmluZEFsbENpcmNvbnNjcmlwdGlvbnNRdWVyeSA9IGRiU2Vuc1xuICAuc2VsZWN0RnJvbShcImRwdFwiKVxuICAubGVmdEpvaW4oXCJyZWdcIiwgXCJkcHQucmVnY29kXCIsIFwicmVnLnJlZ2NvZFwiKVxuICAuc2VsZWN0KCh7IHJlZiB9KSA9PiBbXG4gICAgXCJkcHQuZHB0bnVtIGFzIGlkZW50aWZpYW50XCIsXG4gICAgXCJkcHQuZHB0Y29kIGFzIGNvZGVcIixcbiAgICBcImRwdC5kcHRsaWIgYXMgbGliZWxsZV9kZXBhcnRlbWVudFwiLFxuICAgIFwiZHB0LmRwdGFydCBhcyBhcnRpY2xlXCIsXG4gICAgXCJyZWcucmVnbGliIGFzIGxpYmVsbGVfcmVnaW9uXCIsXG4gICAgXCJkcHQudGVtdmFsY29kIGFzIGV0YXRcIixcbiAgICB0b0RhdGVTdHJpbmcocmVmKFwiZHB0LmRwdGRhdGRlYlwiKSkuYXMoXCJkYXRlX2RlYnV0XCIpLFxuICAgIHRvRGF0ZVN0cmluZyhyZWYoXCJkcHQuZHB0ZGF0ZmluXCIpKS5hcyhcImRhdGVfZmluXCIpLFxuICAgIFwiZHB0LmRwdG5icnNlbiBhcyBub21icmVfc2VuYXRldXJzXCIsXG4gICAgXCJkcHQuZHB0dXJsY21wIGFzIHVybFwiLFxuICBdKVxuXG5jb25zdCBmaW5kQWxsT3JnYW5pc21lc1F1ZXJ5ID0gZGJTZW5zXG4gIC5zZWxlY3RGcm9tKChlYikgPT4gZWJcbiAgICAuc2VsZWN0RnJvbShcImNvbVwiKVxuICAgIC5zZWxlY3QoW1xuICAgICAgXCJvcmdjb2RcIixcbiAgICAgIFwiZXZlbGljXCIsXG4gICAgICBcImV2ZWxpYlwiLFxuICAgICAgXCJldmVsaWxcIixcbiAgICAgIFwidHlwb3JnY29kXCIsXG4gICAgICBcIm9yZ3VybHNpbVwiLFxuICAgICAgXCJvcmdkYXRjcmVcIixcbiAgICAgIFwib3JnZGF0ZmluXCIsXG4gICAgICBcInRlbXZhbGNvZFwiLFxuICAgIF0pLnVuaW9uKGViXG4gICAgICAuc2VsZWN0RnJvbShcImRlbGVnYVwiKVxuICAgICAgLnNlbGVjdChbXG4gICAgICAgIFwib3JnY29kXCIsXG4gICAgICAgIFwiZXZlbGljXCIsXG4gICAgICAgIFwiZXZlbGliXCIsXG4gICAgICAgIFwiZXZlbGlsXCIsXG4gICAgICAgIFwidHlwb3JnY29kXCIsXG4gICAgICAgIFwib3JndXJsc2ltXCIsXG4gICAgICAgIFwib3JnZGF0Y3JlXCIsXG4gICAgICAgIFwib3JnZGF0ZmluXCIsXG4gICAgICAgIFwidGVtdmFsY29kXCIsXG4gICAgICBdKSxcbiAgICApLnVuaW9uKGViXG4gICAgICAuc2VsZWN0RnJvbShcImdycHBvbFwiKVxuICAgICAgLnNlbGVjdChbXG4gICAgICAgIFwiZ3JwcG9sY29kIGFzIG9yZ2NvZFwiLFxuICAgICAgICBcImdycHBvbGxpY2NvdSBhcyBldmVsaWNcIixcbiAgICAgICAgXCJncnBwb2xsaWJjb3UgYXMgZXZlbGliXCIsXG4gICAgICAgIFwiZ3JwcG9sbGlsY291IGFzIGV2ZWxpbFwiLFxuICAgICAgICBcInR5cG9yZ2NvZFwiLFxuICAgICAgICBcImdycHBvbHVybHNpbSBhcyBvcmd1cmxzaW1cIixcbiAgICAgICAgXCJncnBwb2xkYXRjcmUgYXMgb3JnZGF0Y3JlXCIsXG4gICAgICAgIFwiZ3JwcG9sZGF0ZmluIGFzIG9yZ2RhdGZpblwiLFxuICAgICAgICBcInRlbXZhbGNvZFwiLFxuICAgICAgXSksXG4gICAgKS51bmlvbihlYlxuICAgICAgLnNlbGVjdEZyb20oXCJncnBzZW5hbWlcIilcbiAgICAgIC5zZWxlY3QoW1xuICAgICAgICBcIm9yZ2NvZFwiLFxuICAgICAgICBcImV2ZWxpY1wiLFxuICAgICAgICBcImV2ZWxpYlwiLFxuICAgICAgICBcImV2ZWxpbFwiLFxuICAgICAgICBcInR5cG9yZ2NvZFwiLFxuICAgICAgICBcIm9yZ3VybHNpbVwiLFxuICAgICAgICBcIm9yZ2RhdGNyZVwiLFxuICAgICAgICBcIm9yZ2RhdGZpblwiLFxuICAgICAgICBcInRlbXZhbGNvZFwiLFxuICAgICAgXSksXG4gICAgKS51bmlvbihlYlxuICAgICAgLnNlbGVjdEZyb20oXCJvcmdcIilcbiAgICAgIC5zZWxlY3QoW1xuICAgICAgICBcIm9yZ2NvZFwiLFxuICAgICAgICBcImV2ZWxpY1wiLFxuICAgICAgICBcImV2ZWxpYlwiLFxuICAgICAgICBcImV2ZWxpbFwiLFxuICAgICAgICBcInR5cG9yZ2NvZFwiLFxuICAgICAgICBcIm9yZ3VybHNpbVwiLFxuICAgICAgICBcIm9yZ2RhdGNyZVwiLFxuICAgICAgICBcIm9yZ2RhdGZpblwiLFxuICAgICAgICBcInRlbXZhbGNvZFwiLFxuICAgICAgXSksXG4gICAgKS5hcyhcImFsbF9vcmdhbmlzbWVzXCIpLFxuICApLmxlZnRKb2luKFwidHlwb3JnXCIsIFwiYWxsX29yZ2FuaXNtZXMudHlwb3JnY29kXCIsIFwidHlwb3JnLnR5cG9yZ2NvZFwiKVxuICAuc2VsZWN0KCh7IHJlZiwgdmFsIH0pID0+IFtcbiAgICBcImFsbF9vcmdhbmlzbWVzLm9yZ2NvZCBhcyBjb2RlXCIsXG4gICAgXCJhbGxfb3JnYW5pc21lcy5ldmVsaWMgYXMgbGliZWxsZV9jb3VydFwiLFxuICAgIFwiYWxsX29yZ2FuaXNtZXMuZXZlbGliIGFzIGxpYmVsbGVcIixcbiAgICBydHJpbShyZWYoXCJhbGxfb3JnYW5pc21lcy5ldmVsaWxcIikpLmFzKFwibGliZWxsZV9sb25nXCIpLFxuICAgIFwiYWxsX29yZ2FuaXNtZXMudHlwb3JnY29kIGFzIHR5cGVfY29kZVwiLFxuICAgIHJ0cmltKHJlZihcInR5cG9yZy50eXBvcmdsaWJcIikpLmFzKFwidHlwZV9saWJlbGxlXCIpLFxuICAgIGNvbmNhdCh2YWwoXCJodHRwczovL3d3dy5zZW5hdC5mclwiKSwgcmVmKFwiYWxsX29yZ2FuaXNtZXMub3JndXJsc2ltXCIpKS5hcyhcInVybFwiKSxcbiAgICB0b0RhdGVTdHJpbmcocmVmKFwiYWxsX29yZ2FuaXNtZXMub3JnZGF0Y3JlXCIpKS5hcyhcImRhdGVfZGVidXRcIiksXG4gICAgdG9EYXRlU3RyaW5nKHJlZihcImFsbF9vcmdhbmlzbWVzLm9yZ2RhdGZpblwiKSkuYXMoXCJkYXRlX2ZpblwiKSxcbiAgICBcImFsbF9vcmdhbmlzbWVzLnRlbXZhbGNvZCBhcyBldGF0XCIsXG4gIF0pXG5cbmV4cG9ydCB0eXBlIFNlbmF0ZXVyUmVzdWx0ID0gSW5mZXJSZXN1bHQ8dHlwZW9mIGZpbmRBbGxRdWVyeT5bMF1cbmV4cG9ydCB0eXBlIENpcmNvbnNjcmlwdGlvblJlc3VsdCA9IEluZmVyUmVzdWx0PHR5cGVvZiBmaW5kQWxsQ2lyY29uc2NyaXB0aW9uc1F1ZXJ5PlswXVxuZXhwb3J0IHR5cGUgT3JnYW5pc21lUmVzdWx0ID0gSW5mZXJSZXN1bHQ8dHlwZW9mIGZpbmRBbGxPcmdhbmlzbWVzUXVlcnk+WzBdXG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQWxsICgpIHtcbiAgcmV0dXJuIGZpbmRBbGxRdWVyeS5zdHJlYW0oKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZEFsbENpcmNvbnNjcmlwdGlvbnMgKCkge1xuICByZXR1cm4gZmluZEFsbENpcmNvbnNjcmlwdGlvbnNRdWVyeS5zdHJlYW0oKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZEFsbE9yZ2FuaXNtZXMgKCkge1xuICByZXR1cm4gZmluZEFsbE9yZ2FuaXNtZXNRdWVyeS5zdHJlYW0oKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZEFjdGlmICgpOiBBc3luY0l0ZXJhYmxlSXRlcmF0b3I8eyBzZW5tYXQ6IHN0cmluZywgc2Vubm9tdXNlOiBzdHJpbmcsIHNlbnByZW5vbXVzZTogc3RyaW5nIH0+IHtcbiAgcmV0dXJuIGRiU2Vuc1xuICAgIC5zZWxlY3RGcm9tKFwic2VuXCIpXG4gICAgLndoZXJlKFwiZXRhc2VuY29kXCIsIFwiPVwiLCBcIkFDVElGXCIpXG4gICAgLnNlbGVjdChbXCJzZW5tYXRcIiwgXCJzZW5ub211c2VcIiwgXCJzZW5wcmVub211c2VcIl0pXG4gICAgLnN0cmVhbSgpXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQ0EsSUFBQUEsU0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBRixPQUFBO0FBRUEsU0FBU0csZUFBZUEsQ0FBRUMsTUFBMEIsRUFBRTtFQUNwRCxPQUFPLElBQUFDLHdCQUFjLEVBQ25CQyxpQkFBTSxDQUFDQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQ3JCQyxRQUFRLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxZ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