@tricoteuses/senat 1.1.2 → 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.
- package/README.md +53 -15
- package/lib/aggregates.d.ts +4 -6
- package/lib/aggregates.mjs +908 -780
- package/lib/aggregates.ts +8 -122
- package/lib/data/legislatures.json +38 -0
- package/lib/databases.d.ts +9 -0
- package/lib/databases.js +41 -11
- package/lib/databases.mjs +32 -1
- package/lib/databases.ts +40 -1
- package/lib/fields.mjs +64 -18
- package/lib/index.d.ts +5 -7
- package/lib/index.js +8 -112
- package/lib/index.mjs +4 -7
- package/lib/index.ts +9 -30
- package/lib/inserters.d.ts +0 -4
- package/lib/inserters.mjs +461 -337
- package/lib/inserters.ts +0 -24
- package/lib/legislatures.json +38 -0
- package/lib/loaders.d.ts +64 -0
- package/lib/loaders.js +682 -0
- package/lib/loaders.mjs +158 -0
- package/lib/loaders.ts +271 -0
- package/lib/model/ameli.d.ts +105 -4
- package/lib/model/ameli.js +20 -160
- package/lib/model/ameli.mjs +84 -57
- package/lib/model/ameli.ts +94 -80
- package/lib/model/debats.d.ts +0 -4
- package/lib/model/debats.js +1 -122
- package/lib/model/debats.mjs +1 -43
- package/lib/model/debats.ts +0 -68
- package/lib/model/dosleg.d.ts +227 -29
- package/lib/model/dosleg.js +92 -832
- package/lib/model/dosleg.mjs +196 -337
- package/lib/model/dosleg.ts +213 -531
- package/lib/model/index.d.ts +4 -5
- package/lib/model/index.js +14 -15
- package/lib/model/index.mjs +4 -5
- package/lib/model/index.ts +8 -5
- package/lib/model/questions.d.ts +88 -2
- package/lib/model/questions.js +40 -45
- package/lib/model/questions.mjs +71 -8
- package/lib/model/questions.ts +90 -11
- package/lib/model/sens.d.ts +524 -2
- package/lib/model/sens.js +172 -49
- package/lib/model/sens.mjs +415 -9
- package/lib/model/sens.ts +514 -16
- package/lib/model/texte.d.ts +7 -0
- package/lib/model/texte.js +321 -0
- package/lib/model/texte.mjs +208 -0
- package/lib/model/texte.ts +229 -0
- package/lib/model/util.d.ts +7 -1
- package/lib/model/util.js +37 -53
- package/lib/model/util.mjs +19 -10
- package/lib/model/util.ts +30 -14
- package/lib/raw_types/ameli.d.ts +912 -538
- package/lib/raw_types/ameli.js +1 -39
- package/lib/raw_types/ameli.mjs +4 -1
- package/lib/raw_types/ameli.ts +947 -597
- package/lib/raw_types/debats.d.ts +204 -124
- package/lib/raw_types/debats.js +1 -18
- package/lib/raw_types/debats.mjs +4 -1
- package/lib/raw_types/debats.ts +218 -141
- package/lib/raw_types/dosleg.d.ts +3533 -2024
- package/lib/raw_types/dosleg.js +1 -92
- package/lib/raw_types/dosleg.mjs +4 -1
- package/lib/raw_types/dosleg.ts +3621 -2189
- package/lib/raw_types/questions.d.ts +404 -220
- package/lib/raw_types/questions.js +1 -18
- package/lib/raw_types/questions.mjs +4 -1
- package/lib/raw_types/questions.ts +404 -226
- package/lib/raw_types/sens.d.ts +4391 -2706
- package/lib/raw_types/sens.js +1 -108
- package/lib/raw_types/sens.mjs +4 -1
- package/lib/raw_types/sens.ts +4495 -2903
- package/lib/raw_types_kysely/ameli.d.ts +6 -0
- package/lib/raw_types_kysely/ameli.mjs +7 -0
- package/lib/raw_types_kysely/ameli.ts +6 -0
- package/lib/raw_types_kysely/debats.d.ts +6 -0
- package/lib/raw_types_kysely/debats.mjs +7 -0
- package/lib/raw_types_kysely/debats.ts +6 -0
- package/lib/raw_types_kysely/dosleg.d.ts +6 -0
- package/lib/raw_types_kysely/dosleg.mjs +7 -0
- package/lib/raw_types_kysely/dosleg.ts +6 -0
- package/lib/raw_types_kysely/questions.d.ts +6 -0
- package/lib/raw_types_kysely/questions.mjs +7 -0
- package/lib/raw_types_kysely/questions.ts +6 -0
- package/lib/raw_types_kysely/sens.d.ts +6 -0
- package/lib/raw_types_kysely/sens.mjs +7 -0
- package/lib/raw_types_kysely/sens.ts +6 -0
- package/lib/raw_types_kysely/texte.d.ts +45 -0
- package/lib/raw_types_kysely/texte.mjs +7 -0
- package/lib/raw_types_kysely/texte.ts +53 -0
- package/lib/raw_types_schemats/ameli.d.ts +541 -0
- package/lib/raw_types_schemats/ameli.js +45 -0
- package/lib/raw_types_schemats/ameli.mjs +2 -0
- package/lib/raw_types_schemats/ameli.ts +601 -0
- package/lib/raw_types_schemats/debats.d.ts +127 -0
- package/lib/raw_types_schemats/debats.js +24 -0
- package/lib/raw_types_schemats/debats.mjs +2 -0
- package/lib/raw_types_schemats/debats.ts +145 -0
- package/lib/raw_types_schemats/dosleg.d.ts +2029 -0
- package/lib/raw_types_schemats/dosleg.js +98 -0
- package/lib/raw_types_schemats/dosleg.mjs +2 -0
- package/lib/raw_types_schemats/dosleg.ts +2195 -0
- package/lib/raw_types_schemats/questions.d.ts +233 -0
- package/lib/raw_types_schemats/questions.js +24 -0
- package/lib/raw_types_schemats/questions.mjs +2 -0
- package/lib/raw_types_schemats/questions.ts +251 -0
- package/lib/raw_types_schemats/sens.d.ts +2709 -0
- package/lib/raw_types_schemats/sens.js +114 -0
- package/lib/raw_types_schemats/sens.mjs +2 -0
- package/lib/raw_types_schemats/sens.ts +2907 -0
- package/lib/scripts/convert_data.js +574 -215
- package/lib/scripts/convert_data.mjs +134 -99
- package/lib/scripts/convert_data.ts +173 -112
- package/lib/scripts/datautil.d.ts +5 -0
- package/lib/scripts/datautil.js +64 -0
- package/lib/scripts/datautil.mjs +16 -0
- package/lib/scripts/datautil.ts +19 -0
- package/lib/scripts/parse_textes.js +132 -0
- package/lib/scripts/parse_textes.mjs +46 -0
- package/lib/scripts/parse_textes.ts +65 -0
- package/lib/scripts/retrieve_documents.d.ts +1 -0
- package/lib/scripts/retrieve_documents.js +521 -0
- package/lib/scripts/retrieve_documents.mjs +249 -0
- package/lib/scripts/retrieve_documents.ts +298 -0
- package/lib/scripts/retrieve_open_data.js +77 -69
- package/lib/scripts/retrieve_open_data.mjs +48 -49
- package/lib/scripts/retrieve_open_data.ts +74 -58
- package/lib/scripts/retrieve_senateurs_photos.js +45 -63
- package/lib/scripts/retrieve_senateurs_photos.mjs +4 -21
- package/lib/scripts/retrieve_senateurs_photos.ts +6 -29
- package/lib/scripts/retrieve_textes.mjs +325 -74
- package/lib/scripts/retrieve_textes.ts +111 -63
- package/lib/scripts/shared/cli_helpers.d.ts +44 -0
- package/lib/scripts/shared/cli_helpers.js +35 -0
- package/lib/scripts/shared/cli_helpers.ts +36 -0
- package/lib/scripts/shared/util.d.ts +3 -0
- package/lib/scripts/shared/util.js +102 -0
- package/lib/scripts/shared/util.ts +33 -0
- package/lib/src/aggregates.d.ts +52 -0
- package/lib/src/aggregates.mjs +726 -0
- package/lib/src/config.d.ts +2 -0
- package/lib/src/config.mjs +16 -0
- package/lib/src/databases.d.ts +18 -0
- package/lib/src/databases.mjs +55 -0
- package/lib/src/datasets.d.ts +28 -0
- package/lib/src/datasets.mjs +78 -0
- package/lib/src/fields.d.ts +10 -0
- package/lib/src/fields.mjs +22 -0
- package/lib/src/index.d.ts +8 -0
- package/lib/src/index.mjs +7 -0
- package/lib/src/inserters.d.ts +98 -0
- package/lib/src/inserters.mjs +360 -0
- package/lib/src/loaders.d.ts +36 -0
- package/lib/src/loaders.mjs +107 -0
- package/lib/src/model/ameli.d.ts +4 -0
- package/lib/src/model/ameli.js +57 -0
- package/lib/src/model/debats.d.ts +4 -0
- package/lib/src/model/debats.js +43 -0
- package/lib/src/model/dosleg.d.ts +197 -0
- package/lib/src/model/dosleg.js +169 -0
- package/lib/src/model/index.d.ts +4 -0
- package/lib/src/model/index.js +4 -0
- package/lib/src/model/questions.d.ts +89 -0
- package/lib/src/model/questions.js +76 -0
- package/lib/src/model/sens.d.ts +390 -0
- package/lib/src/model/sens.js +339 -0
- package/lib/src/model/texte.d.ts +7 -0
- package/lib/src/model/texte.js +183 -0
- package/lib/src/raw_types_kysely/ameli.d.ts +915 -0
- package/lib/src/raw_types_kysely/ameli.js +5 -0
- package/lib/src/raw_types_kysely/debats.d.ts +207 -0
- package/lib/src/raw_types_kysely/debats.js +5 -0
- package/lib/src/raw_types_kysely/dosleg.d.ts +3532 -0
- package/lib/src/raw_types_kysely/dosleg.js +5 -0
- package/lib/src/raw_types_kysely/questions.d.ts +414 -0
- package/lib/src/raw_types_kysely/questions.js +5 -0
- package/lib/src/raw_types_kysely/sens.d.ts +4394 -0
- package/lib/src/raw_types_kysely/sens.js +5 -0
- package/lib/src/raw_types_schemats/ameli.d.ts +541 -0
- package/lib/src/raw_types_schemats/ameli.js +2 -0
- package/lib/src/raw_types_schemats/debats.d.ts +127 -0
- package/lib/src/raw_types_schemats/debats.js +2 -0
- package/lib/src/raw_types_schemats/dosleg.d.ts +2027 -0
- package/lib/src/raw_types_schemats/dosleg.js +2 -0
- package/lib/src/raw_types_schemats/questions.d.ts +231 -0
- package/lib/src/raw_types_schemats/questions.js +2 -0
- package/lib/src/raw_types_schemats/sens.d.ts +2709 -0
- package/lib/src/raw_types_schemats/sens.js +2 -0
- package/lib/src/scripts/convert_data.d.ts +1 -0
- package/lib/src/scripts/convert_data.js +95 -0
- package/lib/src/scripts/datautil.d.ts +5 -0
- package/lib/src/scripts/datautil.js +16 -0
- package/lib/src/scripts/parse_textes.d.ts +1 -0
- package/lib/src/scripts/parse_textes.js +47 -0
- package/lib/src/scripts/retrieve_documents.d.ts +1 -0
- package/lib/src/scripts/retrieve_documents.js +258 -0
- package/lib/src/scripts/retrieve_open_data.d.ts +1 -0
- package/lib/src/scripts/retrieve_open_data.js +214 -0
- package/lib/src/scripts/retrieve_senateurs_photos.d.ts +1 -0
- package/lib/src/scripts/retrieve_senateurs_photos.js +147 -0
- package/lib/src/scripts/shared/cli_helpers.d.ts +44 -0
- package/lib/src/scripts/shared/cli_helpers.js +32 -0
- package/lib/src/scripts/shared/util.d.ts +3 -0
- package/lib/src/scripts/shared/util.js +28 -0
- package/lib/src/strings.d.ts +1 -0
- package/lib/src/strings.mjs +18 -0
- package/lib/src/types/ameli.d.ts +10 -0
- package/lib/src/types/ameli.js +13 -0
- package/lib/src/types/debats.d.ts +4 -0
- package/lib/src/types/debats.js +2 -0
- package/lib/src/types/dosleg.d.ts +98 -0
- package/lib/src/types/dosleg.js +151 -0
- package/lib/src/types/questions.d.ts +2 -0
- package/lib/src/types/questions.js +1 -0
- package/lib/src/types/sens.d.ts +10 -0
- package/lib/src/types/sens.js +1 -0
- package/lib/src/types/sessions.d.ts +42 -0
- package/lib/src/types/sessions.js +43 -0
- package/lib/src/types/texte.d.ts +61 -0
- package/lib/src/types/texte.js +16 -0
- package/lib/src/validators/config.d.ts +1 -0
- package/lib/src/validators/config.js +54 -0
- package/lib/src/validators/senat.d.ts +0 -0
- package/lib/src/validators/senat.js +24 -0
- package/lib/types/ameli.d.ts +1 -1
- package/lib/types/ameli.js +2 -2
- package/lib/types/ameli.ts +1 -1
- package/lib/types/debats.d.ts +1 -1
- package/lib/types/debats.js +2 -2
- package/lib/types/debats.ts +1 -1
- package/lib/types/dosleg.d.ts +2 -2
- package/lib/types/dosleg.js +2 -2
- package/lib/types/dosleg.ts +2 -2
- package/lib/types/questions.d.ts +1 -1
- package/lib/types/questions.js +2 -2
- package/lib/types/questions.ts +1 -1
- package/lib/types/sens.d.ts +1 -3
- package/lib/types/sens.js +2 -5
- package/lib/types/sens.mjs +1 -23
- package/lib/types/sens.ts +1 -25
- package/lib/types/sessions.d.ts +42 -0
- package/lib/types/sessions.js +51 -0
- package/lib/types/sessions.mjs +43 -0
- package/lib/types/sessions.ts +42 -0
- package/lib/types/texte.d.ts +65 -0
- package/lib/types/texte.js +24 -0
- package/lib/types/texte.mjs +16 -0
- package/lib/types/texte.ts +76 -0
- package/package.json +35 -10
- package/lib/aggregates.js +0 -1122
- package/lib/fields.js +0 -68
- package/lib/inserters.js +0 -518
- package/lib/scripts/fix_db.js +0 -144
- package/lib/scripts/fix_db.mjs +0 -64
- package/lib/scripts/fix_db.ts +0 -75
- package/lib/scripts/retrieve_textes.js +0 -179
- /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
|
-
|
|
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.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
var
|
|
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
|
|
33
|
-
function
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
54
|
-
|
|
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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
|