@tricoteuses/assemblee 1.9.13 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -5
- package/lib/api.js +1 -1
- package/lib/api.mjs +1 -1
- package/lib/bugs/acteur-00010/plugin.test.js +5 -5
- package/lib/bugs/acteur-00010/plugin.test.mjs +1 -1
- package/lib/bugs/acteur-00010.js +17 -18
- package/lib/bugs/acteur-00010.mjs +1 -1
- package/lib/bugs/agenda-00002/plugin.test.js +6 -6
- package/lib/bugs/agenda-00002/plugin.test.mjs +1 -1
- package/lib/bugs/agenda-00002.js +31 -32
- package/lib/bugs/agenda-00002.mjs +3 -3
- package/lib/bugs/agenda-00008/plugin.test.js +5 -5
- package/lib/bugs/agenda-00008/plugin.test.mjs +1 -1
- package/lib/bugs/agenda-00008.js +17 -18
- package/lib/bugs/agenda-00008.mjs +1 -1
- package/lib/bugs/agenda-00011/plugin.test.js +10 -10
- package/lib/bugs/agenda-00011/plugin.test.mjs +1 -1
- package/lib/bugs/agenda-00011.js +28 -29
- package/lib/bugs/agenda-00011.mjs +3 -3
- package/lib/bugs.js +27 -29
- package/lib/bugs.mjs +3 -3
- package/lib/cleaners/actes_legislatifs.js +5 -5
- package/lib/cleaners/actes_legislatifs.mjs +1 -1
- package/lib/cleaners/acteurs.js +5 -5
- package/lib/cleaners/acteurs.mjs +1 -1
- package/lib/cleaners/amendements.js +5 -5
- package/lib/cleaners/amendements.mjs +1 -1
- package/lib/cleaners/debats.js +1 -1
- package/lib/cleaners/debats.mjs +1 -1
- package/lib/cleaners/documents.js +5 -5
- package/lib/cleaners/documents.mjs +1 -1
- package/lib/cleaners/dossiers_legislatifs.js +5 -5
- package/lib/cleaners/dossiers_legislatifs.mjs +1 -1
- package/lib/cleaners/index.d.ts +0 -1
- package/lib/cleaners/index.js +1 -8
- package/lib/cleaners/index.mjs +1 -2
- package/lib/cleaners/organes.js +2 -2
- package/lib/cleaners/organes.mjs +1 -1
- package/lib/cleaners/questions.js +1 -1
- package/lib/cleaners/questions.mjs +1 -1
- package/lib/cleaners/reunions.js +5 -5
- package/lib/cleaners/reunions.mjs +1 -1
- package/lib/cleaners/scrutins.js +8 -8
- package/lib/cleaners/scrutins.mjs +1 -1
- package/lib/cleaners/xml.js +8 -8
- package/lib/cleaners/xml.mjs +1 -1
- package/lib/datasets.d.ts +1 -13
- package/lib/datasets.js +10 -29
- package/lib/datasets.mjs +2 -21
- package/lib/dates.js +3 -4
- package/lib/dates.mjs +1 -1
- package/lib/dossiers_legislatifs.js +8 -8
- package/lib/dossiers_legislatifs.mjs +1 -1
- package/lib/file_systems.js +15 -14
- package/lib/file_systems.mjs +3 -3
- package/lib/git.js +5 -5
- package/lib/git.mjs +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +8 -1
- package/lib/index.mjs +2 -1
- package/lib/inserters.js +4 -4
- package/lib/inserters.mjs +1 -1
- package/lib/loaders.d.ts +0 -5
- package/lib/loaders.js +255 -299
- package/lib/loaders.mjs +1 -13
- package/lib/logger.js +1 -1
- package/lib/logger.mjs +1 -1
- package/lib/organes.js +1 -1
- package/lib/organes.mjs +1 -1
- package/lib/parsers/documents.js +11 -11
- package/lib/parsers/documents.mjs +1 -1
- package/lib/parsers/index.d.ts +1 -0
- package/lib/parsers/index.js +8 -1
- package/lib/parsers/index.mjs +2 -1
- package/lib/parsers/recherche_amendements.js +17 -15
- package/lib/parsers/recherche_amendements.mjs +1 -1
- package/lib/parsers/textes_lois.d.ts +22 -15
- package/lib/parsers/textes_lois.js +264 -752
- package/lib/parsers/textes_lois.mjs +249 -597
- package/lib/raw_types/acteurs_et_organes.js +9 -9
- package/lib/raw_types/acteurs_et_organes.mjs +1 -1
- package/lib/raw_types/agendas.d.ts +1 -0
- package/lib/raw_types/agendas.js +11 -10
- package/lib/raw_types/agendas.mjs +3 -2
- package/lib/raw_types/amendements.js +9 -9
- package/lib/raw_types/amendements.mjs +1 -1
- package/lib/raw_types/debats.js +9 -9
- package/lib/raw_types/debats.mjs +1 -1
- package/lib/raw_types/dossiers_legislatifs.js +9 -9
- package/lib/raw_types/dossiers_legislatifs.mjs +1 -1
- package/lib/raw_types/questions.js +9 -9
- package/lib/raw_types/questions.mjs +1 -1
- package/lib/raw_types/scrutins.js +9 -9
- package/lib/raw_types/scrutins.mjs +1 -1
- package/lib/scripts/bugs_helper.js +25 -26
- package/lib/scripts/bugs_helper.mjs +3 -3
- package/lib/scripts/clean_reorganized_data.js +256 -245
- package/lib/scripts/clean_reorganized_data.mjs +18 -29
- package/lib/scripts/diff_amendements.js +9 -8
- package/lib/scripts/diff_amendements.mjs +1 -1
- package/lib/scripts/document_dossiers_legislatifs.js +24 -27
- package/lib/scripts/document_dossiers_legislatifs.mjs +3 -3
- package/lib/scripts/get_today_reunions.js +3 -2
- package/lib/scripts/get_today_reunions.mjs +1 -1
- package/lib/scripts/merge_scrutins.js +9 -8
- package/lib/scripts/merge_scrutins.mjs +1 -1
- package/lib/scripts/parse_textes_lois.js +6 -5
- package/lib/scripts/parse_textes_lois.mjs +1 -1
- package/lib/scripts/process_open_dataset.d.ts +0 -2
- package/lib/scripts/process_open_dataset.js +19 -19
- package/lib/scripts/process_open_dataset.mjs +3 -5
- package/lib/scripts/raw_types_from_amendements.d.ts +0 -1
- package/lib/scripts/raw_types_from_amendements.js +122 -198
- package/lib/scripts/raw_types_from_amendements.mjs +105 -60
- package/lib/scripts/reorganize_data.js +14 -15
- package/lib/scripts/reorganize_data.mjs +3 -3
- package/lib/scripts/retrieve_deputes_photos.js +40 -31
- package/lib/scripts/retrieve_deputes_photos.mjs +10 -2
- package/lib/scripts/retrieve_documents.d.ts +1 -1
- package/lib/scripts/retrieve_documents.js +230 -138
- package/lib/scripts/retrieve_documents.mjs +87 -38
- package/lib/scripts/retrieve_open_data.js +27 -30
- package/lib/scripts/retrieve_open_data.mjs +5 -8
- package/lib/scripts/retrieve_pending_amendments.js +14 -14
- package/lib/scripts/retrieve_pending_amendments.mjs +1 -1
- package/lib/scripts/retrieve_senateurs_photos.js +10 -10
- package/lib/scripts/retrieve_senateurs_photos.mjs +1 -1
- package/lib/scripts/retrieve_textes_lois.js +17 -15
- package/lib/scripts/retrieve_textes_lois.mjs +1 -1
- package/lib/scripts/shared/cli_helpers.d.ts +11 -0
- package/lib/scripts/shared/cli_helpers.js +13 -2
- package/lib/scripts/shared/cli_helpers.mjs +12 -1
- package/lib/scripts/test_iter_load.js +5 -19
- package/lib/scripts/test_iter_load.mjs +2 -9
- package/lib/scripts/test_load.js +2 -2
- package/lib/scripts/test_load.mjs +1 -1
- package/lib/scripts/test_load_big_files.js +2 -2
- package/lib/scripts/test_load_big_files.mjs +1 -1
- package/lib/scripts/validate_json.js +17 -18
- package/lib/scripts/validate_json.mjs +3 -3
- package/lib/shared_types/codes_actes.js +1 -1
- package/lib/shared_types/codes_actes.mjs +1 -1
- package/lib/strings.js +1 -1
- package/lib/strings.mjs +1 -1
- package/lib/types/acteurs_et_organes.js +9 -9
- package/lib/types/acteurs_et_organes.mjs +1 -1
- package/lib/types/agendas.d.ts +1 -0
- package/lib/types/agendas.js +11 -10
- package/lib/types/agendas.mjs +3 -2
- package/lib/types/amendements.js +9 -9
- package/lib/types/amendements.mjs +1 -1
- package/lib/types/debats.js +9 -9
- package/lib/types/debats.mjs +1 -1
- package/lib/types/dossiers_legislatifs.d.ts +13 -0
- package/lib/types/dossiers_legislatifs.js +47 -9
- package/lib/types/dossiers_legislatifs.mjs +39 -1
- package/lib/types/legislatures.js +1 -1
- package/lib/types/legislatures.mjs +1 -1
- package/lib/types/questions.js +9 -9
- package/lib/types/questions.mjs +1 -1
- package/lib/types/scrutins.js +9 -9
- package/lib/types/scrutins.mjs +1 -1
- package/lib/urls.js +2 -2
- package/lib/urls.mjs +1 -1
- package/package.json +14 -20
- package/lib/cleaners/textes_loi.d.ts +0 -1
- package/lib/cleaners/textes_loi.js +0 -12
- package/lib/cleaners/textes_loi.mjs +0 -5
- package/lib/examples/PIONANR5L15B0020/input.d.ts +0 -2
- package/lib/examples/PIONANR5L15B0020/input.js +0 -10
- package/lib/examples/PIONANR5L15B0020/input.mjs +0 -193
- package/lib/examples/PIONANR5L15B0020/input.ts +0 -193
- package/lib/examples/PIONANR5L15B0020/loi.json +0 -26
- package/lib/examples/PIONANR5L15B0020/loi_populated.json +0 -29
- package/lib/examples/PIONANR5L15B0020/meta.json +0 -28
- package/lib/examples/PIONANR5L15B0020/motifs.json +0 -5
- package/lib/examples/PIONANR5L15B0020/motifs_populated.json +0 -6
- package/lib/examples/PIONANR5L15B0020/sommaire.json +0 -3
- package/lib/examples/PRJLANR5L16B0914/input.d.ts +0 -2
- package/lib/examples/PRJLANR5L16B0914/input.js +0 -10
- package/lib/examples/PRJLANR5L16B0914/input.mjs +0 -322
- package/lib/examples/PRJLANR5L16B0914/input.ts +0 -322
- package/lib/examples/PRJLANR5L16B0914/loi.json +0 -14
- package/lib/examples/PRJLANR5L16B0914/loi_populated.json +0 -20
- package/lib/examples/PRJLANR5L16B0914/meta.json +0 -35
- package/lib/examples/PRJLANR5L16B0914/motifs.json +0 -4
- package/lib/examples/PRJLANR5L16B0914/motifs_populated.json +0 -5
- package/lib/examples/PRJLANR5L16B0914/sommaire.json +0 -3
- package/lib/examples/PRJLANR5L16B2014/README.md +0 -2
- package/lib/examples/PRJLANR5L16B2014/input.d.ts +0 -2
- package/lib/examples/PRJLANR5L16B2014/input.js +0 -10
- package/lib/examples/PRJLANR5L16B2014/input.mjs +0 -577
- package/lib/examples/PRJLANR5L16B2014/input.ts +0 -577
- package/lib/examples/PRJLANR5L16B2014/loi.json +0 -369
- package/lib/examples/PRJLANR5L16B2014/meta.json +0 -31
- package/lib/examples/PRJLANR5L16B2014/motifs.json +0 -5
- package/lib/examples/PRJLANR5L16B2014/sommaire.json +0 -51
- package/lib/examples/PRJLANR5L16B2424/alineas.json +0 -44
- package/lib/examples/PRJLANR5L16B2424/input.d.ts +0 -2
- package/lib/examples/PRJLANR5L16B2424/input.js +0 -10
- package/lib/examples/PRJLANR5L16B2424/input.mjs +0 -322
- package/lib/examples/PRJLANR5L16B2424/input.ts +0 -322
- package/lib/examples/PRJLANR5L16B2424/loi.json +0 -74
- package/lib/examples/PRJLANR5L16B2424/loi_populated.json +0 -87
- package/lib/examples/PRJLANR5L16B2424/meta.json +0 -31
- package/lib/examples/PRJLANR5L16B2424/motifs.json +0 -4
- package/lib/examples/PRJLANR5L16B2424/motifs_populated.json +0 -5
- package/lib/examples/PRJLANR5L16B2424/sommaire.json +0 -3
- package/lib/examples/PRJLANR5L16B2462/input.d.ts +0 -2
- package/lib/examples/PRJLANR5L16B2462/input.js +0 -10
- package/lib/examples/PRJLANR5L16B2462/input.mjs +0 -1308
- package/lib/examples/PRJLANR5L16B2462/input.ts +0 -1308
- package/lib/examples/PRJLANR5L16B2462/loi.json +0 -74
- package/lib/examples/PRJLANR5L16B2462/loi_populated.json +0 -310
- package/lib/examples/PRJLANR5L16B2462/meta.json +0 -29
- package/lib/examples/PRJLANR5L16B2462/motifs.json +0 -6
- package/lib/examples/PRJLANR5L16B2462/motifs_populated.json +0 -6
- package/lib/examples/PRJLANR5L16B2462/sommaire.json +0 -50
- package/lib/examples/README.md +0 -3
- package/lib/raw_types/textes_loi.d.ts +0 -93
- package/lib/raw_types/textes_loi.js +0 -429
- package/lib/raw_types/textes_loi.mjs +0 -378
- package/lib/schemas/texte_loi/Alinea.json +0 -36
- package/lib/schemas/texte_loi/ExposeMotifs.json +0 -24
- package/lib/schemas/texte_loi/MetaDonnees.json +0 -126
- package/lib/schemas/texte_loi/ProjetLoi.json +0 -64
- package/lib/schemas/texte_loi/Sommaire.json +0 -48
- package/lib/schemas/texte_loi/TexteLoi.json +0 -225
- package/lib/schemas/texte_loi/TexteLoiPartiel.json +0 -237
- package/lib/scripts/process_textes_loi_dataset.d.ts +0 -7
- package/lib/scripts/process_textes_loi_dataset.js +0 -373
- package/lib/scripts/process_textes_loi_dataset.mjs +0 -239
- package/lib/types/textes_loi.d.ts +0 -94
- package/lib/types/textes_loi.js +0 -429
- package/lib/types/textes_loi.mjs +0 -378
package/lib/types/textes_loi.js
DELETED
|
@@ -1,429 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/es.symbol.iterator.js");
|
|
4
|
-
require("core-js/modules/es.array.iterator.js");
|
|
5
|
-
require("core-js/modules/es.object.define-property.js");
|
|
6
|
-
require("core-js/modules/es.string.iterator.js");
|
|
7
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
8
|
-
Object.defineProperty(exports, "__esModule", {
|
|
9
|
-
value: true
|
|
10
|
-
});
|
|
11
|
-
exports.TypeTexte = exports.TypeDivision = exports.Organe = exports.Fonction = exports.Convert = exports.Cardinal = void 0;
|
|
12
|
-
require("core-js/modules/es.symbol.js");
|
|
13
|
-
require("core-js/modules/es.symbol.description.js");
|
|
14
|
-
require("core-js/modules/es.symbol.to-primitive.js");
|
|
15
|
-
require("core-js/modules/es.array.concat.js");
|
|
16
|
-
require("core-js/modules/es.array.for-each.js");
|
|
17
|
-
require("core-js/modules/es.array.index-of.js");
|
|
18
|
-
require("core-js/modules/es.array.is-array.js");
|
|
19
|
-
require("core-js/modules/es.array.join.js");
|
|
20
|
-
require("core-js/modules/es.array.map.js");
|
|
21
|
-
require("core-js/modules/es.date.to-primitive.js");
|
|
22
|
-
require("core-js/modules/es.date.to-string.js");
|
|
23
|
-
require("core-js/modules/es.number.constructor.js");
|
|
24
|
-
require("core-js/modules/es.object.get-own-property-names.js");
|
|
25
|
-
require("core-js/modules/es.object.keys.js");
|
|
26
|
-
require("core-js/modules/es.object.to-string.js");
|
|
27
|
-
require("core-js/modules/web.dom-collections.for-each.js");
|
|
28
|
-
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); }
|
|
29
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
30
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
31
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
32
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
33
|
-
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
34
|
-
// To parse this data:
|
|
35
|
-
//
|
|
36
|
-
// import { Convert, TextesLoi } from "./file";
|
|
37
|
-
//
|
|
38
|
-
// const textesLoi = Convert.toTextesLoi(json);
|
|
39
|
-
//
|
|
40
|
-
// These functions will throw an error if the JSON doesn't
|
|
41
|
-
// match the expected interface, even if the JSON is valid.
|
|
42
|
-
var Cardinal = exports.Cardinal = /*#__PURE__*/function (Cardinal) {
|
|
43
|
-
Cardinal["A"] = "A";
|
|
44
|
-
Cardinal["B"] = "B";
|
|
45
|
-
Cardinal["Bis"] = "bis";
|
|
46
|
-
Cardinal["BisA"] = "bis A";
|
|
47
|
-
Cardinal["C"] = "C";
|
|
48
|
-
Cardinal["CardinalNouveau"] = "(nouveau)";
|
|
49
|
-
Cardinal["Empty"] = "";
|
|
50
|
-
Cardinal["Er"] = "er";
|
|
51
|
-
Cardinal["Nouveau"] = "nouveau";
|
|
52
|
-
return Cardinal;
|
|
53
|
-
}({});
|
|
54
|
-
var Organe = exports.Organe = /*#__PURE__*/function (Organe) {
|
|
55
|
-
Organe["Assembl\xE9eNationale"] = "Assembl\xE9e Nationale";
|
|
56
|
-
Organe["OrganeAssembl\xE9eNationale"] = "ASSEMBL\xC9E NATIONALE";
|
|
57
|
-
return Organe;
|
|
58
|
-
}({});
|
|
59
|
-
var Fonction = exports.Fonction = /*#__PURE__*/function (Fonction) {
|
|
60
|
-
Fonction["D\xE9put\xE9"] = "D\xE9put\xE9";
|
|
61
|
-
Fonction["D\xE9put\xE9e"] = "D\xE9put\xE9e";
|
|
62
|
-
Fonction["Empty"] = "";
|
|
63
|
-
return Fonction;
|
|
64
|
-
}({});
|
|
65
|
-
var TypeDivision = exports.TypeDivision = /*#__PURE__*/function (TypeDivision) {
|
|
66
|
-
TypeDivision["Chapitre"] = "Chapitre";
|
|
67
|
-
TypeDivision["Titre"] = "Titre";
|
|
68
|
-
return TypeDivision;
|
|
69
|
-
}({});
|
|
70
|
-
var TypeTexte = exports.TypeTexte = /*#__PURE__*/function (TypeTexte) {
|
|
71
|
-
TypeTexte["MotionDeCensure"] = "Motion de censure";
|
|
72
|
-
TypeTexte["PropositionDeLoi"] = "Proposition de loi";
|
|
73
|
-
TypeTexte["PropositionDeLoiConstitutionnelle"] = "PROPOSITION DE LOI CONSTITUTIONNELLE";
|
|
74
|
-
TypeTexte["PropositionDeLoiOrganique"] = "PROPOSITION DE LOI ORGANIQUE";
|
|
75
|
-
TypeTexte["TypeTexteMotionDeCensure"] = "MOTION DE CENSURE";
|
|
76
|
-
TypeTexte["TypeTextePropositionDeLoi"] = "PROPOSITION DE LOI";
|
|
77
|
-
return TypeTexte;
|
|
78
|
-
}({}); // Converts JSON strings to/from your types
|
|
79
|
-
// and asserts the results of JSON.parse at runtime
|
|
80
|
-
var Convert = exports.Convert = /*#__PURE__*/function () {
|
|
81
|
-
function Convert() {
|
|
82
|
-
_classCallCheck(this, Convert);
|
|
83
|
-
}
|
|
84
|
-
_createClass(Convert, null, [{
|
|
85
|
-
key: "toTextesLoi",
|
|
86
|
-
value: function toTextesLoi(json) {
|
|
87
|
-
return cast(JSON.parse(json), r("TextesLoi"));
|
|
88
|
-
}
|
|
89
|
-
}, {
|
|
90
|
-
key: "textesLoiToJson",
|
|
91
|
-
value: function textesLoiToJson(value) {
|
|
92
|
-
return JSON.stringify(uncast(value, r("TextesLoi")), null, 2);
|
|
93
|
-
}
|
|
94
|
-
}]);
|
|
95
|
-
return Convert;
|
|
96
|
-
}();
|
|
97
|
-
function invalidValue(typ, val, key) {
|
|
98
|
-
var parent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "";
|
|
99
|
-
var prettyTyp = prettyTypeName(typ);
|
|
100
|
-
var parentText = parent ? " on ".concat(parent) : "";
|
|
101
|
-
var keyText = key ? " for key \"".concat(key, "\"") : "";
|
|
102
|
-
throw Error("Invalid value".concat(keyText).concat(parentText, ". Expected ").concat(prettyTyp, " but got ").concat(JSON.stringify(val)));
|
|
103
|
-
}
|
|
104
|
-
function prettyTypeName(typ) {
|
|
105
|
-
if (Array.isArray(typ)) {
|
|
106
|
-
if (typ.length === 2 && typ[0] === undefined) {
|
|
107
|
-
return "an optional ".concat(prettyTypeName(typ[1]));
|
|
108
|
-
} else {
|
|
109
|
-
return "one of [".concat(typ.map(function (a) {
|
|
110
|
-
return prettyTypeName(a);
|
|
111
|
-
}).join(", "), "]");
|
|
112
|
-
}
|
|
113
|
-
} else if (_typeof(typ) === "object" && typ.literal !== undefined) {
|
|
114
|
-
return typ.literal;
|
|
115
|
-
} else {
|
|
116
|
-
return _typeof(typ);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
function jsonToJSProps(typ) {
|
|
120
|
-
if (typ.jsonToJS === undefined) {
|
|
121
|
-
var map = {};
|
|
122
|
-
typ.props.forEach(function (p) {
|
|
123
|
-
return map[p.json] = {
|
|
124
|
-
key: p.js,
|
|
125
|
-
typ: p.typ
|
|
126
|
-
};
|
|
127
|
-
});
|
|
128
|
-
typ.jsonToJS = map;
|
|
129
|
-
}
|
|
130
|
-
return typ.jsonToJS;
|
|
131
|
-
}
|
|
132
|
-
function jsToJSONProps(typ) {
|
|
133
|
-
if (typ.jsToJSON === undefined) {
|
|
134
|
-
var map = {};
|
|
135
|
-
typ.props.forEach(function (p) {
|
|
136
|
-
return map[p.js] = {
|
|
137
|
-
key: p.json,
|
|
138
|
-
typ: p.typ
|
|
139
|
-
};
|
|
140
|
-
});
|
|
141
|
-
typ.jsToJSON = map;
|
|
142
|
-
}
|
|
143
|
-
return typ.jsToJSON;
|
|
144
|
-
}
|
|
145
|
-
function transform(val, typ, getProps) {
|
|
146
|
-
var key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "";
|
|
147
|
-
var parent = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : "";
|
|
148
|
-
function transformPrimitive(typ, val) {
|
|
149
|
-
if (_typeof(typ) === _typeof(val)) return val;
|
|
150
|
-
return invalidValue(typ, val, key, parent);
|
|
151
|
-
}
|
|
152
|
-
function transformUnion(typs, val) {
|
|
153
|
-
// val must validate against one typ in typs
|
|
154
|
-
var l = typs.length;
|
|
155
|
-
for (var i = 0; i < l; i++) {
|
|
156
|
-
var _typ = typs[i];
|
|
157
|
-
try {
|
|
158
|
-
return transform(val, _typ, getProps);
|
|
159
|
-
} catch (_) {}
|
|
160
|
-
}
|
|
161
|
-
return invalidValue(typs, val, key, parent);
|
|
162
|
-
}
|
|
163
|
-
function transformEnum(cases, val) {
|
|
164
|
-
if (cases.indexOf(val) !== -1) return val;
|
|
165
|
-
return invalidValue(cases.map(function (a) {
|
|
166
|
-
return l(a);
|
|
167
|
-
}), val, key, parent);
|
|
168
|
-
}
|
|
169
|
-
function transformArray(typ, val) {
|
|
170
|
-
// val must be an array with no invalid elements
|
|
171
|
-
if (!Array.isArray(val)) return invalidValue(l("array"), val, key, parent);
|
|
172
|
-
return val.map(function (el) {
|
|
173
|
-
return transform(el, typ, getProps);
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
function transformDate(val) {
|
|
177
|
-
if (val === null) {
|
|
178
|
-
return null;
|
|
179
|
-
}
|
|
180
|
-
var d = new Date(val);
|
|
181
|
-
if (isNaN(d.valueOf())) {
|
|
182
|
-
return invalidValue(l("Date"), val, key, parent);
|
|
183
|
-
}
|
|
184
|
-
return d;
|
|
185
|
-
}
|
|
186
|
-
function transformObject(props, additional, val) {
|
|
187
|
-
if (val === null || _typeof(val) !== "object" || Array.isArray(val)) {
|
|
188
|
-
return invalidValue(l(ref || "object"), val, key, parent);
|
|
189
|
-
}
|
|
190
|
-
var result = {};
|
|
191
|
-
Object.getOwnPropertyNames(props).forEach(function (key) {
|
|
192
|
-
var prop = props[key];
|
|
193
|
-
var v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
|
|
194
|
-
result[prop.key] = transform(v, prop.typ, getProps, key, ref);
|
|
195
|
-
});
|
|
196
|
-
Object.getOwnPropertyNames(val).forEach(function (key) {
|
|
197
|
-
if (!Object.prototype.hasOwnProperty.call(props, key)) {
|
|
198
|
-
result[key] = transform(val[key], additional, getProps, key, ref);
|
|
199
|
-
}
|
|
200
|
-
});
|
|
201
|
-
return result;
|
|
202
|
-
}
|
|
203
|
-
if (typ === "any") return val;
|
|
204
|
-
if (typ === null) {
|
|
205
|
-
if (val === null) return val;
|
|
206
|
-
return invalidValue(typ, val, key, parent);
|
|
207
|
-
}
|
|
208
|
-
if (typ === false) return invalidValue(typ, val, key, parent);
|
|
209
|
-
var ref = undefined;
|
|
210
|
-
while (_typeof(typ) === "object" && typ.ref !== undefined) {
|
|
211
|
-
ref = typ.ref;
|
|
212
|
-
typ = typeMap[typ.ref];
|
|
213
|
-
}
|
|
214
|
-
if (Array.isArray(typ)) return transformEnum(typ, val);
|
|
215
|
-
if (_typeof(typ) === "object") {
|
|
216
|
-
return typ.hasOwnProperty("unionMembers") ? transformUnion(typ.unionMembers, val) : typ.hasOwnProperty("arrayItems") ? transformArray(typ.arrayItems, val) : typ.hasOwnProperty("props") ? transformObject(getProps(typ), typ.additional, val) : invalidValue(typ, val, key, parent);
|
|
217
|
-
}
|
|
218
|
-
// Numbers can be parsed by Date but shouldn't be.
|
|
219
|
-
if (typ === Date && typeof val !== "number") return transformDate(val);
|
|
220
|
-
return transformPrimitive(typ, val);
|
|
221
|
-
}
|
|
222
|
-
function cast(val, typ) {
|
|
223
|
-
return transform(val, typ, jsonToJSProps);
|
|
224
|
-
}
|
|
225
|
-
function uncast(val, typ) {
|
|
226
|
-
return transform(val, typ, jsToJSONProps);
|
|
227
|
-
}
|
|
228
|
-
function l(typ) {
|
|
229
|
-
return {
|
|
230
|
-
literal: typ
|
|
231
|
-
};
|
|
232
|
-
}
|
|
233
|
-
function a(typ) {
|
|
234
|
-
return {
|
|
235
|
-
arrayItems: typ
|
|
236
|
-
};
|
|
237
|
-
}
|
|
238
|
-
function u() {
|
|
239
|
-
for (var _len = arguments.length, typs = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
240
|
-
typs[_key] = arguments[_key];
|
|
241
|
-
}
|
|
242
|
-
return {
|
|
243
|
-
unionMembers: typs
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
function o(props, additional) {
|
|
247
|
-
return {
|
|
248
|
-
props: props,
|
|
249
|
-
additional: additional
|
|
250
|
-
};
|
|
251
|
-
}
|
|
252
|
-
function r(name) {
|
|
253
|
-
return {
|
|
254
|
-
ref: name
|
|
255
|
-
};
|
|
256
|
-
}
|
|
257
|
-
var typeMap = {
|
|
258
|
-
TextesLoi: o([{
|
|
259
|
-
json: "documentRef",
|
|
260
|
-
js: "documentRef",
|
|
261
|
-
typ: ""
|
|
262
|
-
}, {
|
|
263
|
-
json: "titre",
|
|
264
|
-
js: "titre",
|
|
265
|
-
typ: ""
|
|
266
|
-
}, {
|
|
267
|
-
json: "organe",
|
|
268
|
-
js: "organe",
|
|
269
|
-
typ: r("Organe")
|
|
270
|
-
}, {
|
|
271
|
-
json: "typeTexte",
|
|
272
|
-
js: "typeTexte",
|
|
273
|
-
typ: r("TypeTexte")
|
|
274
|
-
}, {
|
|
275
|
-
json: "commission",
|
|
276
|
-
js: "commission",
|
|
277
|
-
typ: ""
|
|
278
|
-
}, {
|
|
279
|
-
json: "procedureAcceleree",
|
|
280
|
-
js: "procedureAcceleree",
|
|
281
|
-
typ: true
|
|
282
|
-
}, {
|
|
283
|
-
json: "representants",
|
|
284
|
-
js: "representants",
|
|
285
|
-
typ: r("Representants")
|
|
286
|
-
}, {
|
|
287
|
-
json: "dateConstitution",
|
|
288
|
-
js: "dateConstitution",
|
|
289
|
-
typ: Date
|
|
290
|
-
}, {
|
|
291
|
-
json: "dateDepotAssemblee",
|
|
292
|
-
js: "dateDepotAssemblee",
|
|
293
|
-
typ: Date
|
|
294
|
-
}, {
|
|
295
|
-
json: "numeroLegislature",
|
|
296
|
-
js: "numeroLegislature",
|
|
297
|
-
typ: 0
|
|
298
|
-
}, {
|
|
299
|
-
json: "numeroTexte",
|
|
300
|
-
js: "numeroTexte",
|
|
301
|
-
typ: ""
|
|
302
|
-
}, {
|
|
303
|
-
json: "sommaire",
|
|
304
|
-
js: "sommaire",
|
|
305
|
-
typ: u(a(r("SommaireElement")), r("PurpleSommaire"))
|
|
306
|
-
}, {
|
|
307
|
-
json: "contenu",
|
|
308
|
-
js: "contenu",
|
|
309
|
-
typ: r("Contenu")
|
|
310
|
-
}, {
|
|
311
|
-
json: "signataires",
|
|
312
|
-
js: "signataires",
|
|
313
|
-
typ: u(undefined, a(r("Signataire")))
|
|
314
|
-
}], false),
|
|
315
|
-
Contenu: o([{
|
|
316
|
-
json: "articles",
|
|
317
|
-
js: "articles",
|
|
318
|
-
typ: a(r("Article"))
|
|
319
|
-
}, {
|
|
320
|
-
json: "exposeMotifs",
|
|
321
|
-
js: "exposeMotifs",
|
|
322
|
-
typ: r("ExposeMotifs")
|
|
323
|
-
}], false),
|
|
324
|
-
Article: o([{
|
|
325
|
-
json: "numeroArticle",
|
|
326
|
-
js: "numeroArticle",
|
|
327
|
-
typ: 0
|
|
328
|
-
}, {
|
|
329
|
-
json: "numeroArticles",
|
|
330
|
-
js: "numeroArticles",
|
|
331
|
-
typ: a("any")
|
|
332
|
-
}, {
|
|
333
|
-
json: "cardinal",
|
|
334
|
-
js: "cardinal",
|
|
335
|
-
typ: r("Cardinal")
|
|
336
|
-
}, {
|
|
337
|
-
json: "parent",
|
|
338
|
-
js: "parent",
|
|
339
|
-
typ: ""
|
|
340
|
-
}, {
|
|
341
|
-
json: "nouveau",
|
|
342
|
-
js: "nouveau",
|
|
343
|
-
typ: true
|
|
344
|
-
}, {
|
|
345
|
-
json: "titre",
|
|
346
|
-
js: "titre",
|
|
347
|
-
typ: ""
|
|
348
|
-
}, {
|
|
349
|
-
json: "alineas",
|
|
350
|
-
js: "alineas",
|
|
351
|
-
typ: a(r("Alinea"))
|
|
352
|
-
}, {
|
|
353
|
-
json: "texte",
|
|
354
|
-
js: "texte",
|
|
355
|
-
typ: ""
|
|
356
|
-
}], false),
|
|
357
|
-
Alinea: o([{
|
|
358
|
-
json: "numeroAlinea",
|
|
359
|
-
js: "numeroAlinea",
|
|
360
|
-
typ: 0
|
|
361
|
-
}, {
|
|
362
|
-
json: "texte",
|
|
363
|
-
js: "texte",
|
|
364
|
-
typ: ""
|
|
365
|
-
}, {
|
|
366
|
-
json: "debut",
|
|
367
|
-
js: "debut",
|
|
368
|
-
typ: u(undefined, "")
|
|
369
|
-
}, {
|
|
370
|
-
json: "fin",
|
|
371
|
-
js: "fin",
|
|
372
|
-
typ: u(undefined, "")
|
|
373
|
-
}], false),
|
|
374
|
-
ExposeMotifs: o([{
|
|
375
|
-
json: "texte",
|
|
376
|
-
js: "texte",
|
|
377
|
-
typ: ""
|
|
378
|
-
}, {
|
|
379
|
-
json: "citation",
|
|
380
|
-
js: "citation",
|
|
381
|
-
typ: u(undefined, "")
|
|
382
|
-
}], false),
|
|
383
|
-
Representants: o([{
|
|
384
|
-
json: "par",
|
|
385
|
-
js: "par",
|
|
386
|
-
typ: a(r("Signataire"))
|
|
387
|
-
}], false),
|
|
388
|
-
Signataire: o([{
|
|
389
|
-
json: "nom",
|
|
390
|
-
js: "nom",
|
|
391
|
-
typ: ""
|
|
392
|
-
}, {
|
|
393
|
-
json: "fonction",
|
|
394
|
-
js: "fonction",
|
|
395
|
-
typ: r("Fonction")
|
|
396
|
-
}], false),
|
|
397
|
-
SommaireElement: o([{
|
|
398
|
-
json: "typeDivision",
|
|
399
|
-
js: "typeDivision",
|
|
400
|
-
typ: r("TypeDivision")
|
|
401
|
-
}, {
|
|
402
|
-
json: "numeroDivision",
|
|
403
|
-
js: "numeroDivision",
|
|
404
|
-
typ: ""
|
|
405
|
-
}, {
|
|
406
|
-
json: "sequence",
|
|
407
|
-
js: "sequence",
|
|
408
|
-
typ: 0
|
|
409
|
-
}, {
|
|
410
|
-
json: "titre",
|
|
411
|
-
js: "titre",
|
|
412
|
-
typ: ""
|
|
413
|
-
}, {
|
|
414
|
-
json: "parent",
|
|
415
|
-
js: "parent",
|
|
416
|
-
typ: u(undefined, "")
|
|
417
|
-
}], false),
|
|
418
|
-
PurpleSommaire: o([{
|
|
419
|
-
json: "sommaire",
|
|
420
|
-
js: "sommaire",
|
|
421
|
-
typ: a("any")
|
|
422
|
-
}], false),
|
|
423
|
-
Cardinal: ["A", "B", "bis", "bis A", "C", "(nouveau)", "", "er", "nouveau"],
|
|
424
|
-
Organe: ["Assemblée Nationale", "ASSEMBLÉE NATIONALE"],
|
|
425
|
-
Fonction: ["Député", "Députée", ""],
|
|
426
|
-
TypeDivision: ["Chapitre", "Titre"],
|
|
427
|
-
TypeTexte: ["Motion de censure", "Proposition de loi", "PROPOSITION DE LOI CONSTITUTIONNELLE", "PROPOSITION DE LOI ORGANIQUE", "MOTION DE CENSURE", "PROPOSITION DE LOI"]
|
|
428
|
-
};
|
|
429
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDYXJkaW5hbCIsImV4cG9ydHMiLCJPcmdhbmUiLCJGb25jdGlvbiIsIlR5cGVEaXZpc2lvbiIsIlR5cGVUZXh0ZSIsIkNvbnZlcnQiLCJfY2xhc3NDYWxsQ2hlY2siLCJfY3JlYXRlQ2xhc3MiLCJrZXkiLCJ2YWx1ZSIsInRvVGV4dGVzTG9pIiwianNvbiIsImNhc3QiLCJKU09OIiwicGFyc2UiLCJyIiwidGV4dGVzTG9pVG9Kc29uIiwic3RyaW5naWZ5IiwidW5jYXN0IiwiaW52YWxpZFZhbHVlIiwidHlwIiwidmFsIiwicGFyZW50IiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwicHJldHR5VHlwIiwicHJldHR5VHlwZU5hbWUiLCJwYXJlbnRUZXh0IiwiY29uY2F0Iiwia2V5VGV4dCIsIkVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwiYSIsImpvaW4iLCJfdHlwZW9mIiwibGl0ZXJhbCIsImpzb25Ub0pTUHJvcHMiLCJqc29uVG9KUyIsInByb3BzIiwiZm9yRWFjaCIsInAiLCJqcyIsImpzVG9KU09OUHJvcHMiLCJqc1RvSlNPTiIsInRyYW5zZm9ybSIsImdldFByb3BzIiwidHJhbnNmb3JtUHJpbWl0aXZlIiwidHJhbnNmb3JtVW5pb24iLCJ0eXBzIiwibCIsImkiLCJfIiwidHJhbnNmb3JtRW51bSIsImNhc2VzIiwiaW5kZXhPZiIsInRyYW5zZm9ybUFycmF5IiwiZWwiLCJ0cmFuc2Zvcm1EYXRlIiwiZCIsIkRhdGUiLCJpc05hTiIsInZhbHVlT2YiLCJ0cmFuc2Zvcm1PYmplY3QiLCJhZGRpdGlvbmFsIiwicmVmIiwicmVzdWx0IiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsInByb3AiLCJ2IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwidHlwZU1hcCIsInVuaW9uTWVtYmVycyIsImFycmF5SXRlbXMiLCJ1IiwiX2xlbiIsIl9rZXkiLCJvIiwibmFtZSIsIlRleHRlc0xvaSIsIkNvbnRlbnUiLCJBcnRpY2xlIiwiQWxpbmVhIiwiRXhwb3NlTW90aWZzIiwiUmVwcmVzZW50YW50cyIsIlNpZ25hdGFpcmUiLCJTb21tYWlyZUVsZW1lbnQiLCJQdXJwbGVTb21tYWlyZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy90ZXh0ZXNfbG9pLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRvIHBhcnNlIHRoaXMgZGF0YTpcbi8vXG4vLyAgIGltcG9ydCB7IENvbnZlcnQsIFRleHRlc0xvaSB9IGZyb20gXCIuL2ZpbGVcIjtcbi8vXG4vLyAgIGNvbnN0IHRleHRlc0xvaSA9IENvbnZlcnQudG9UZXh0ZXNMb2koanNvbik7XG4vL1xuLy8gVGhlc2UgZnVuY3Rpb25zIHdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIEpTT04gZG9lc24ndFxuLy8gbWF0Y2ggdGhlIGV4cGVjdGVkIGludGVyZmFjZSwgZXZlbiBpZiB0aGUgSlNPTiBpcyB2YWxpZC5cblxuZXhwb3J0IGludGVyZmFjZSBUZXh0ZXNMb2kge1xuICB1aWQ6IHN0cmluZ1xuICBkb2N1bWVudFJlZjogc3RyaW5nXG4gIHRpdHJlOiBzdHJpbmdcbiAgb3JnYW5lOiBPcmdhbmVcbiAgdHlwZVRleHRlOiBUeXBlVGV4dGVcbiAgY29tbWlzc2lvbjogc3RyaW5nXG4gIHByb2NlZHVyZUFjY2VsZXJlZTogYm9vbGVhblxuICByZXByZXNlbnRhbnRzOiBSZXByZXNlbnRhbnRzXG4gIGRhdGVDb25zdGl0dXRpb246IERhdGVcbiAgZGF0ZURlcG90QXNzZW1ibGVlOiBEYXRlXG4gIG51bWVyb0xlZ2lzbGF0dXJlOiBudW1iZXJcbiAgbnVtZXJvVGV4dGU6IHN0cmluZ1xuICBzb21tYWlyZTogU29tbWFpcmVFbGVtZW50W10gfCBQdXJwbGVTb21tYWlyZVxuICBjb250ZW51OiBDb250ZW51XG4gIHNpZ25hdGFpcmVzPzogU2lnbmF0YWlyZVtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGVudSB7XG4gIGFydGljbGVzOiBBcnRpY2xlW11cbiAgZXhwb3NlTW90aWZzOiBFeHBvc2VNb3RpZnNcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcnRpY2xlIHtcbiAgbnVtZXJvQXJ0aWNsZTogbnVtYmVyXG4gIG51bWVyb0FydGljbGVzOiBhbnlbXVxuICBjYXJkaW5hbDogQ2FyZGluYWxcbiAgcGFyZW50OiBzdHJpbmdcbiAgbm91dmVhdTogYm9vbGVhblxuICB0aXRyZTogc3RyaW5nXG4gIGFsaW5lYXM6IEFsaW5lYVtdXG4gIHRleHRlOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbGluZWEge1xuICBudW1lcm9BbGluZWE6IG51bWJlclxuICB0ZXh0ZTogc3RyaW5nXG4gIGRlYnV0Pzogc3RyaW5nXG4gIGZpbj86IHN0cmluZ1xufVxuXG5leHBvcnQgZW51bSBDYXJkaW5hbCB7XG4gIEEgPSBcIkFcIixcbiAgQiA9IFwiQlwiLFxuICBCaXMgPSBcImJpc1wiLFxuICBCaXNBID0gXCJiaXMgQVwiLFxuICBDID0gXCJDXCIsXG4gIENhcmRpbmFsTm91dmVhdSA9IFwiKG5vdXZlYXUpXCIsXG4gIEVtcHR5ID0gXCJcIixcbiAgRXIgPSBcImVyXCIsXG4gIE5vdXZlYXUgPSBcIm5vdXZlYXVcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHBvc2VNb3RpZnMge1xuICB0ZXh0ZTogc3RyaW5nXG4gIGNpdGF0aW9uPzogc3RyaW5nXG59XG5cbmV4cG9ydCBlbnVtIE9yZ2FuZSB7XG4gIEFzc2VtYmzDqWVOYXRpb25hbGUgPSBcIkFzc2VtYmzDqWUgTmF0aW9uYWxlXCIsXG4gIE9yZ2FuZUFzc2VtYmzDqWVOYXRpb25hbGUgPSBcIkFTU0VNQkzDiUUgTkFUSU9OQUxFXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwcmVzZW50YW50cyB7XG4gIHBhcjogU2lnbmF0YWlyZVtdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0YWlyZSB7XG4gIG5vbTogc3RyaW5nXG4gIGZvbmN0aW9uOiBGb25jdGlvblxufVxuXG5leHBvcnQgZW51bSBGb25jdGlvbiB7XG4gIETDqXB1dMOpID0gXCJEw6lwdXTDqVwiLFxuICBEw6lwdXTDqWUgPSBcIkTDqXB1dMOpZVwiLFxuICBFbXB0eSA9IFwiXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29tbWFpcmVFbGVtZW50IHtcbiAgdHlwZURpdmlzaW9uOiBUeXBlRGl2aXNpb25cbiAgbnVtZXJvRGl2aXNpb246IHN0cmluZ1xuICBzZXF1ZW5jZTogbnVtYmVyXG4gIHRpdHJlOiBzdHJpbmdcbiAgcGFyZW50Pzogc3RyaW5nXG59XG5cbmV4cG9ydCBlbnVtIFR5cGVEaXZpc2lvbiB7XG4gIENoYXBpdHJlID0gXCJDaGFwaXRyZVwiLFxuICBUaXRyZSA9IFwiVGl0cmVcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdXJwbGVTb21tYWlyZSB7XG4gIHNvbW1haXJlOiBhbnlbXVxufVxuXG5leHBvcnQgZW51bSBUeXBlVGV4dGUge1xuICBNb3Rpb25EZUNlbnN1cmUgPSBcIk1vdGlvbiBkZSBjZW5zdXJlXCIsXG4gIFByb3Bvc2l0aW9uRGVMb2kgPSBcIlByb3Bvc2l0aW9uIGRlIGxvaVwiLFxuICBQcm9wb3NpdGlvbkRlTG9pQ29uc3RpdHV0aW9ubmVsbGUgPSBcIlBST1BPU0lUSU9OIERFIExPSSBDT05TVElUVVRJT05ORUxMRVwiLFxuICBQcm9wb3NpdGlvbkRlTG9pT3JnYW5pcXVlID0gXCJQUk9QT1NJVElPTiBERSBMT0kgT1JHQU5JUVVFXCIsXG4gIFR5cGVUZXh0ZU1vdGlvbkRlQ2Vuc3VyZSA9IFwiTU9USU9OIERFIENFTlNVUkVcIixcbiAgVHlwZVRleHRlUHJvcG9zaXRpb25EZUxvaSA9IFwiUFJPUE9TSVRJT04gREUgTE9JXCIsXG59XG5cbi8vIENvbnZlcnRzIEpTT04gc3RyaW5ncyB0by9mcm9tIHlvdXIgdHlwZXNcbi8vIGFuZCBhc3NlcnRzIHRoZSByZXN1bHRzIG9mIEpTT04ucGFyc2UgYXQgcnVudGltZVxuZXhwb3J0IGNsYXNzIENvbnZlcnQge1xuICBwdWJsaWMgc3RhdGljIHRvVGV4dGVzTG9pKGpzb246IHN0cmluZyk6IFRleHRlc0xvaSB7XG4gICAgcmV0dXJuIGNhc3QoSlNPTi5wYXJzZShqc29uKSwgcihcIlRleHRlc0xvaVwiKSlcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdGV4dGVzTG9pVG9Kc29uKHZhbHVlOiBUZXh0ZXNMb2kpOiBzdHJpbmcge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh1bmNhc3QodmFsdWUsIHIoXCJUZXh0ZXNMb2lcIikpLCBudWxsLCAyKVxuICB9XG59XG5cbmZ1bmN0aW9uIGludmFsaWRWYWx1ZSh0eXA6IGFueSwgdmFsOiBhbnksIGtleTogYW55LCBwYXJlbnQ6IGFueSA9IFwiXCIpOiBuZXZlciB7XG4gIGNvbnN0IHByZXR0eVR5cCA9IHByZXR0eVR5cGVOYW1lKHR5cClcbiAgY29uc3QgcGFyZW50VGV4dCA9IHBhcmVudCA/IGAgb24gJHtwYXJlbnR9YCA6IFwiXCJcbiAgY29uc3Qga2V5VGV4dCA9IGtleSA/IGAgZm9yIGtleSBcIiR7a2V5fVwiYCA6IFwiXCJcbiAgdGhyb3cgRXJyb3IoXG4gICAgYEludmFsaWQgdmFsdWUke2tleVRleHR9JHtwYXJlbnRUZXh0fS4gRXhwZWN0ZWQgJHtwcmV0dHlUeXB9IGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeSh2YWwpfWAsXG4gIClcbn1cblxuZnVuY3Rpb24gcHJldHR5VHlwZU5hbWUodHlwOiBhbnkpOiBzdHJpbmcge1xuICBpZiAoQXJyYXkuaXNBcnJheSh0eXApKSB7XG4gICAgaWYgKHR5cC5sZW5ndGggPT09IDIgJiYgdHlwWzBdID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBgYW4gb3B0aW9uYWwgJHtwcmV0dHlUeXBlTmFtZSh0eXBbMV0pfWBcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGBvbmUgb2YgWyR7dHlwXG4gICAgICAgIC5tYXAoKGEpID0+IHtcbiAgICAgICAgICByZXR1cm4gcHJldHR5VHlwZU5hbWUoYSlcbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oXCIsIFwiKX1dYFxuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgdHlwID09PSBcIm9iamVjdFwiICYmIHR5cC5saXRlcmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdHlwLmxpdGVyYWxcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gdHlwZW9mIHR5cFxuICB9XG59XG5cbmZ1bmN0aW9uIGpzb25Ub0pTUHJvcHModHlwOiBhbnkpOiBhbnkge1xuICBpZiAodHlwLmpzb25Ub0pTID09PSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBtYXA6IGFueSA9IHt9XG4gICAgdHlwLnByb3BzLmZvckVhY2goKHA6IGFueSkgPT4gKG1hcFtwLmpzb25dID0geyBrZXk6IHAuanMsIHR5cDogcC50eXAgfSkpXG4gICAgdHlwLmpzb25Ub0pTID0gbWFwXG4gIH1cbiAgcmV0dXJuIHR5cC5qc29uVG9KU1xufVxuXG5mdW5jdGlvbiBqc1RvSlNPTlByb3BzKHR5cDogYW55KTogYW55IHtcbiAgaWYgKHR5cC5qc1RvSlNPTiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbWFwOiBhbnkgPSB7fVxuICAgIHR5cC5wcm9wcy5mb3JFYWNoKChwOiBhbnkpID0+IChtYXBbcC5qc10gPSB7IGtleTogcC5qc29uLCB0eXA6IHAudHlwIH0pKVxuICAgIHR5cC5qc1RvSlNPTiA9IG1hcFxuICB9XG4gIHJldHVybiB0eXAuanNUb0pTT05cbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtKFxuICB2YWw6IGFueSxcbiAgdHlwOiBhbnksXG4gIGdldFByb3BzOiBhbnksXG4gIGtleTogYW55ID0gXCJcIixcbiAgcGFyZW50OiBhbnkgPSBcIlwiLFxuKTogYW55IHtcbiAgZnVuY3Rpb24gdHJhbnNmb3JtUHJpbWl0aXZlKHR5cDogc3RyaW5nLCB2YWw6IGFueSk6IGFueSB7XG4gICAgaWYgKHR5cGVvZiB0eXAgPT09IHR5cGVvZiB2YWwpIHJldHVybiB2YWxcbiAgICByZXR1cm4gaW52YWxpZFZhbHVlKHR5cCwgdmFsLCBrZXksIHBhcmVudClcbiAgfVxuXG4gIGZ1bmN0aW9uIHRyYW5zZm9ybVVuaW9uKHR5cHM6IGFueVtdLCB2YWw6IGFueSk6IGFueSB7XG4gICAgLy8gdmFsIG11c3QgdmFsaWRhdGUgYWdhaW5zdCBvbmUgdHlwIGluIHR5cHNcbiAgICBjb25zdCBsID0gdHlwcy5sZW5ndGhcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGw7IGkrKykge1xuICAgICAgY29uc3QgdHlwID0gdHlwc1tpXVxuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHRyYW5zZm9ybSh2YWwsIHR5cCwgZ2V0UHJvcHMpXG4gICAgICB9IGNhdGNoIChfKSB7fVxuICAgIH1cbiAgICByZXR1cm4gaW52YWxpZFZhbHVlKHR5cHMsIHZhbCwga2V5LCBwYXJlbnQpXG4gIH1cblxuICBmdW5jdGlvbiB0cmFuc2Zvcm1FbnVtKGNhc2VzOiBzdHJpbmdbXSwgdmFsOiBhbnkpOiBhbnkge1xuICAgIGlmIChjYXNlcy5pbmRleE9mKHZhbCkgIT09IC0xKSByZXR1cm4gdmFsXG4gICAgcmV0dXJuIGludmFsaWRWYWx1ZShcbiAgICAgIGNhc2VzLm1hcCgoYSkgPT4ge1xuICAgICAgICByZXR1cm4gbChhKVxuICAgICAgfSksXG4gICAgICB2YWwsXG4gICAgICBrZXksXG4gICAgICBwYXJlbnQsXG4gICAgKVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtQXJyYXkodHlwOiBhbnksIHZhbDogYW55KTogYW55IHtcbiAgICAvLyB2YWwgbXVzdCBiZSBhbiBhcnJheSB3aXRoIG5vIGludmFsaWQgZWxlbWVudHNcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIGludmFsaWRWYWx1ZShsKFwiYXJyYXlcIiksIHZhbCwga2V5LCBwYXJlbnQpXG4gICAgcmV0dXJuIHZhbC5tYXAoKGVsKSA9PiB0cmFuc2Zvcm0oZWwsIHR5cCwgZ2V0UHJvcHMpKVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtRGF0ZSh2YWw6IGFueSk6IGFueSB7XG4gICAgaWYgKHZhbCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKHZhbClcbiAgICBpZiAoaXNOYU4oZC52YWx1ZU9mKCkpKSB7XG4gICAgICByZXR1cm4gaW52YWxpZFZhbHVlKGwoXCJEYXRlXCIpLCB2YWwsIGtleSwgcGFyZW50KVxuICAgIH1cbiAgICByZXR1cm4gZFxuICB9XG5cbiAgZnVuY3Rpb24gdHJhbnNmb3JtT2JqZWN0KFxuICAgIHByb3BzOiB7IFtrOiBzdHJpbmddOiBhbnkgfSxcbiAgICBhZGRpdGlvbmFsOiBhbnksXG4gICAgdmFsOiBhbnksXG4gICk6IGFueSB7XG4gICAgaWYgKHZhbCA9PT0gbnVsbCB8fCB0eXBlb2YgdmFsICE9PSBcIm9iamVjdFwiIHx8IEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgcmV0dXJuIGludmFsaWRWYWx1ZShsKHJlZiB8fCBcIm9iamVjdFwiKSwgdmFsLCBrZXksIHBhcmVudClcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fVxuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHByb3BzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IHByb3AgPSBwcm9wc1trZXldXG4gICAgICBjb25zdCB2ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbCwga2V5KVxuICAgICAgICA/IHZhbFtrZXldXG4gICAgICAgIDogdW5kZWZpbmVkXG4gICAgICByZXN1bHRbcHJvcC5rZXldID0gdHJhbnNmb3JtKHYsIHByb3AudHlwLCBnZXRQcm9wcywga2V5LCByZWYpXG4gICAgfSlcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2YWwpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIGtleSkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm0odmFsW2tleV0sIGFkZGl0aW9uYWwsIGdldFByb3BzLCBrZXksIHJlZilcbiAgICAgIH1cbiAgICB9KVxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIGlmICh0eXAgPT09IFwiYW55XCIpIHJldHVybiB2YWxcbiAgaWYgKHR5cCA9PT0gbnVsbCkge1xuICAgIGlmICh2YWwgPT09IG51bGwpIHJldHVybiB2YWxcbiAgICByZXR1cm4gaW52YWxpZFZhbHVlKHR5cCwgdmFsLCBrZXksIHBhcmVudClcbiAgfVxuICBpZiAodHlwID09PSBmYWxzZSkgcmV0dXJuIGludmFsaWRWYWx1ZSh0eXAsIHZhbCwga2V5LCBwYXJlbnQpXG4gIGxldCByZWY6IGFueSA9IHVuZGVmaW5lZFxuICB3aGlsZSAodHlwZW9mIHR5cCA9PT0gXCJvYmplY3RcIiAmJiB0eXAucmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICByZWYgPSB0eXAucmVmXG4gICAgdHlwID0gdHlwZU1hcFt0eXAucmVmXVxuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHR5cCkpIHJldHVybiB0cmFuc2Zvcm1FbnVtKHR5cCwgdmFsKVxuICBpZiAodHlwZW9mIHR5cCA9PT0gXCJvYmplY3RcIikge1xuICAgIHJldHVybiB0eXAuaGFzT3duUHJvcGVydHkoXCJ1bmlvbk1lbWJlcnNcIilcbiAgICAgID8gdHJhbnNmb3JtVW5pb24odHlwLnVuaW9uTWVtYmVycywgdmFsKVxuICAgICAgOiB0eXAuaGFzT3duUHJvcGVydHkoXCJhcnJheUl0ZW1zXCIpXG4gICAgICAgID8gdHJhbnNmb3JtQXJyYXkodHlwLmFycmF5SXRlbXMsIHZhbClcbiAgICAgICAgOiB0eXAuaGFzT3duUHJvcGVydHkoXCJwcm9wc1wiKVxuICAgICAgICAgID8gdHJhbnNmb3JtT2JqZWN0KGdldFByb3BzKHR5cCksIHR5cC5hZGRpdGlvbmFsLCB2YWwpXG4gICAgICAgICAgOiBpbnZhbGlkVmFsdWUodHlwLCB2YWwsIGtleSwgcGFyZW50KVxuICB9XG4gIC8vIE51bWJlcnMgY2FuIGJlIHBhcnNlZCBieSBEYXRlIGJ1dCBzaG91bGRuJ3QgYmUuXG4gIGlmICh0eXAgPT09IERhdGUgJiYgdHlwZW9mIHZhbCAhPT0gXCJudW1iZXJcIikgcmV0dXJuIHRyYW5zZm9ybURhdGUodmFsKVxuICByZXR1cm4gdHJhbnNmb3JtUHJpbWl0aXZlKHR5cCwgdmFsKVxufVxuXG5mdW5jdGlvbiBjYXN0PFQ+KHZhbDogYW55LCB0eXA6IGFueSk6IFQge1xuICByZXR1cm4gdHJhbnNmb3JtKHZhbCwgdHlwLCBqc29uVG9KU1Byb3BzKVxufVxuXG5mdW5jdGlvbiB1bmNhc3Q8VD4odmFsOiBULCB0eXA6IGFueSk6IGFueSB7XG4gIHJldHVybiB0cmFuc2Zvcm0odmFsLCB0eXAsIGpzVG9KU09OUHJvcHMpXG59XG5cbmZ1bmN0aW9uIGwodHlwOiBhbnkpIHtcbiAgcmV0dXJuIHsgbGl0ZXJhbDogdHlwIH1cbn1cblxuZnVuY3Rpb24gYSh0eXA6IGFueSkge1xuICByZXR1cm4geyBhcnJheUl0ZW1zOiB0eXAgfVxufVxuXG5mdW5jdGlvbiB1KC4uLnR5cHM6IGFueVtdKSB7XG4gIHJldHVybiB7IHVuaW9uTWVtYmVyczogdHlwcyB9XG59XG5cbmZ1bmN0aW9uIG8ocHJvcHM6IGFueVtdLCBhZGRpdGlvbmFsOiBhbnkpIHtcbiAgcmV0dXJuIHsgcHJvcHMsIGFkZGl0aW9uYWwgfVxufVxuXG5mdW5jdGlvbiByKG5hbWU6IHN0cmluZykge1xuICByZXR1cm4geyByZWY6IG5hbWUgfVxufVxuXG5jb25zdCB0eXBlTWFwOiBhbnkgPSB7XG4gIFRleHRlc0xvaTogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwiZG9jdW1lbnRSZWZcIiwganM6IFwiZG9jdW1lbnRSZWZcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwidGl0cmVcIiwganM6IFwidGl0cmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwib3JnYW5lXCIsIGpzOiBcIm9yZ2FuZVwiLCB0eXA6IHIoXCJPcmdhbmVcIikgfSxcbiAgICAgIHsganNvbjogXCJ0eXBlVGV4dGVcIiwganM6IFwidHlwZVRleHRlXCIsIHR5cDogcihcIlR5cGVUZXh0ZVwiKSB9LFxuICAgICAgeyBqc29uOiBcImNvbW1pc3Npb25cIiwganM6IFwiY29tbWlzc2lvblwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJwcm9jZWR1cmVBY2NlbGVyZWVcIiwganM6IFwicHJvY2VkdXJlQWNjZWxlcmVlXCIsIHR5cDogdHJ1ZSB9LFxuICAgICAgeyBqc29uOiBcInJlcHJlc2VudGFudHNcIiwganM6IFwicmVwcmVzZW50YW50c1wiLCB0eXA6IHIoXCJSZXByZXNlbnRhbnRzXCIpIH0sXG4gICAgICB7IGpzb246IFwiZGF0ZUNvbnN0aXR1dGlvblwiLCBqczogXCJkYXRlQ29uc3RpdHV0aW9uXCIsIHR5cDogRGF0ZSB9LFxuICAgICAgeyBqc29uOiBcImRhdGVEZXBvdEFzc2VtYmxlZVwiLCBqczogXCJkYXRlRGVwb3RBc3NlbWJsZWVcIiwgdHlwOiBEYXRlIH0sXG4gICAgICB7IGpzb246IFwibnVtZXJvTGVnaXNsYXR1cmVcIiwganM6IFwibnVtZXJvTGVnaXNsYXR1cmVcIiwgdHlwOiAwIH0sXG4gICAgICB7IGpzb246IFwibnVtZXJvVGV4dGVcIiwganM6IFwibnVtZXJvVGV4dGVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwic29tbWFpcmVcIixcbiAgICAgICAganM6IFwic29tbWFpcmVcIixcbiAgICAgICAgdHlwOiB1KGEocihcIlNvbW1haXJlRWxlbWVudFwiKSksIHIoXCJQdXJwbGVTb21tYWlyZVwiKSksXG4gICAgICB9LFxuICAgICAgeyBqc29uOiBcImNvbnRlbnVcIiwganM6IFwiY29udGVudVwiLCB0eXA6IHIoXCJDb250ZW51XCIpIH0sXG4gICAgICB7XG4gICAgICAgIGpzb246IFwic2lnbmF0YWlyZXNcIixcbiAgICAgICAganM6IFwic2lnbmF0YWlyZXNcIixcbiAgICAgICAgdHlwOiB1KHVuZGVmaW5lZCwgYShyKFwiU2lnbmF0YWlyZVwiKSkpLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBDb250ZW51OiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJhcnRpY2xlc1wiLCBqczogXCJhcnRpY2xlc1wiLCB0eXA6IGEocihcIkFydGljbGVcIikpIH0sXG4gICAgICB7IGpzb246IFwiZXhwb3NlTW90aWZzXCIsIGpzOiBcImV4cG9zZU1vdGlmc1wiLCB0eXA6IHIoXCJFeHBvc2VNb3RpZnNcIikgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBBcnRpY2xlOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJudW1lcm9BcnRpY2xlXCIsIGpzOiBcIm51bWVyb0FydGljbGVcIiwgdHlwOiAwIH0sXG4gICAgICB7IGpzb246IFwibnVtZXJvQXJ0aWNsZXNcIiwganM6IFwibnVtZXJvQXJ0aWNsZXNcIiwgdHlwOiBhKFwiYW55XCIpIH0sXG4gICAgICB7IGpzb246IFwiY2FyZGluYWxcIiwganM6IFwiY2FyZGluYWxcIiwgdHlwOiByKFwiQ2FyZGluYWxcIikgfSxcbiAgICAgIHsganNvbjogXCJwYXJlbnRcIiwganM6IFwicGFyZW50XCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcIm5vdXZlYXVcIiwganM6IFwibm91dmVhdVwiLCB0eXA6IHRydWUgfSxcbiAgICAgIHsganNvbjogXCJ0aXRyZVwiLCBqczogXCJ0aXRyZVwiLCB0eXA6IFwiXCIgfSxcbiAgICAgIHsganNvbjogXCJhbGluZWFzXCIsIGpzOiBcImFsaW5lYXNcIiwgdHlwOiBhKHIoXCJBbGluZWFcIikpIH0sXG4gICAgICB7IGpzb246IFwidGV4dGVcIiwganM6IFwidGV4dGVcIiwgdHlwOiBcIlwiIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgQWxpbmVhOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJudW1lcm9BbGluZWFcIiwganM6IFwibnVtZXJvQWxpbmVhXCIsIHR5cDogMCB9LFxuICAgICAgeyBqc29uOiBcInRleHRlXCIsIGpzOiBcInRleHRlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcImRlYnV0XCIsIGpzOiBcImRlYnV0XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgICB7IGpzb246IFwiZmluXCIsIGpzOiBcImZpblwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgIF0sXG4gICAgZmFsc2UsXG4gICksXG4gIEV4cG9zZU1vdGlmczogbyhcbiAgICBbXG4gICAgICB7IGpzb246IFwidGV4dGVcIiwganM6IFwidGV4dGVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICB7IGpzb246IFwiY2l0YXRpb25cIiwganM6IFwiY2l0YXRpb25cIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBSZXByZXNlbnRhbnRzOiBvKFxuICAgIFt7IGpzb246IFwicGFyXCIsIGpzOiBcInBhclwiLCB0eXA6IGEocihcIlNpZ25hdGFpcmVcIikpIH1dLFxuICAgIGZhbHNlLFxuICApLFxuICBTaWduYXRhaXJlOiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJub21cIiwganM6IFwibm9tXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcImZvbmN0aW9uXCIsIGpzOiBcImZvbmN0aW9uXCIsIHR5cDogcihcIkZvbmN0aW9uXCIpIH0sXG4gICAgXSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgU29tbWFpcmVFbGVtZW50OiBvKFxuICAgIFtcbiAgICAgIHsganNvbjogXCJ0eXBlRGl2aXNpb25cIiwganM6IFwidHlwZURpdmlzaW9uXCIsIHR5cDogcihcIlR5cGVEaXZpc2lvblwiKSB9LFxuICAgICAgeyBqc29uOiBcIm51bWVyb0RpdmlzaW9uXCIsIGpzOiBcIm51bWVyb0RpdmlzaW9uXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcInNlcXVlbmNlXCIsIGpzOiBcInNlcXVlbmNlXCIsIHR5cDogMCB9LFxuICAgICAgeyBqc29uOiBcInRpdHJlXCIsIGpzOiBcInRpdHJlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgeyBqc29uOiBcInBhcmVudFwiLCBqczogXCJwYXJlbnRcIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICBdLFxuICAgIGZhbHNlLFxuICApLFxuICBQdXJwbGVTb21tYWlyZTogbyhcbiAgICBbeyBqc29uOiBcInNvbW1haXJlXCIsIGpzOiBcInNvbW1haXJlXCIsIHR5cDogYShcImFueVwiKSB9XSxcbiAgICBmYWxzZSxcbiAgKSxcbiAgQ2FyZGluYWw6IFtcIkFcIiwgXCJCXCIsIFwiYmlzXCIsIFwiYmlzIEFcIiwgXCJDXCIsIFwiKG5vdXZlYXUpXCIsIFwiXCIsIFwiZXJcIiwgXCJub3V2ZWF1XCJdLFxuICBPcmdhbmU6IFtcIkFzc2VtYmzDqWUgTmF0aW9uYWxlXCIsIFwiQVNTRU1CTMOJRSBOQVRJT05BTEVcIl0sXG4gIEZvbmN0aW9uOiBbXCJEw6lwdXTDqVwiLCBcIkTDqXB1dMOpZVwiLCBcIlwiXSxcbiAgVHlwZURpdmlzaW9uOiBbXCJDaGFwaXRyZVwiLCBcIlRpdHJlXCJdLFxuICBUeXBlVGV4dGU6IFtcbiAgICBcIk1vdGlvbiBkZSBjZW5zdXJlXCIsXG4gICAgXCJQcm9wb3NpdGlvbiBkZSBsb2lcIixcbiAgICBcIlBST1BPU0lUSU9OIERFIExPSSBDT05TVElUVVRJT05ORUxMRVwiLFxuICAgIFwiUFJPUE9TSVRJT04gREUgTE9JIE9SR0FOSVFVRVwiLFxuICAgIFwiTU9USU9OIERFIENFTlNVUkVcIixcbiAgICBcIlBST1BPU0lUSU9OIERFIExPSVwiLFxuICBdLFxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUEsSUEyQ1lBLFFBQVEsR0FBQUMsT0FBQSxDQUFBRCxRQUFB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
|