@tricoteuses/assemblee
Version:
Retrieve, clean up & handle French Assemblée nationale's open data
1,052 lines (1,049 loc) • 118 kB
JavaScript
"use strict";
require("core-js/modules/es.symbol.js");
require("core-js/modules/es.symbol.description.js");
require("core-js/modules/es.symbol.iterator.js");
require("core-js/modules/es.array.iterator.js");
require("core-js/modules/es.object.define-property.js");
require("core-js/modules/es.string.iterator.js");
require("core-js/modules/web.dom-collections.iterator.js");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.TypePosition = exports.TypeMIMEType = exports.TypeAuteur = exports.SortEnum = exports.Nom = exports.Libelle = exports.DivisionType = exports.Convert = exports.CodeEtat = exports.Code = exports.AvantAApres = exports.Action = exports.AccordGouvernementDepotHorsDelai = void 0;
require("core-js/modules/es.symbol.to-primitive.js");
require("core-js/modules/es.array.concat.js");
require("core-js/modules/es.array.for-each.js");
require("core-js/modules/es.array.index-of.js");
require("core-js/modules/es.array.is-array.js");
require("core-js/modules/es.array.map.js");
require("core-js/modules/es.date.to-json.js");
require("core-js/modules/es.date.to-primitive.js");
require("core-js/modules/es.date.to-string.js");
require("core-js/modules/es.number.constructor.js");
require("core-js/modules/es.object.get-own-property-names.js");
require("core-js/modules/es.object.keys.js");
require("core-js/modules/es.object.to-string.js");
require("core-js/modules/web.dom-collections.for-each.js");
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); }
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
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); }
// To parse this data:
//
// import { Amendements, AmendementWrapper, Convert, TexteLegislatif } from "./file";
//
// const amendements = Convert.toAmendements(json);
// const amendementWrapper = Convert.toAmendementWrapper(json);
// const texteLegislatif = Convert.toTexteLegislatif(json);
//
// These functions will throw an error if the JSON doesn't
// match the expected interface, even if the JSON is valid.
var AccordGouvernementDepotHorsDelai = exports.AccordGouvernementDepotHorsDelai = /*#__PURE__*/function (AccordGouvernementDepotHorsDelai) {
AccordGouvernementDepotHorsDelai["Accord"] = "Accord";
AccordGouvernementDepotHorsDelai["SansObjet"] = "Sans objet";
return AccordGouvernementDepotHorsDelai;
}({});
var Action = exports.Action = /*#__PURE__*/function (Action) {
Action["Cr\xE9ation"] = "cr\xE9ation";
Action["Modification"] = "modification";
Action["Suppression"] = "suppression";
return Action;
}({});
var Code = exports.Code = /*#__PURE__*/function (Code) {
Code["AC"] = "AC";
Code["At"] = "AT";
Code["Di"] = "DI";
Code["Effac\xE9"] = "effac\xE9";
Code["Er"] = "ER";
Code["Et"] = "ET";
Code["IR"] = "IR";
Code["Irr127"] = "IRR127";
Code["Irr20"] = "IRR20";
Code["Irr37"] = "IRR37";
Code["Irr38"] = "IRR38";
Code["Irr41"] = "IRR41";
Code["Irr42"] = "IRR42";
Code["Irr45"] = "IRR45";
Code["Irr48"] = "IRR48";
Code["Irr53"] = "IRR53";
Code["Irrai"] = "IRRAI";
Code["Irraif"] = "IRRAIF";
Code["Irrd"] = "IRRD";
Code["Irrhc"] = "IRRHC";
Code["Irrhd"] = "IRRHD";
Code["Irrsa"] = "IRRSA";
Code["R"] = "R";
Code["Rt"] = "RT";
Code["T"] = "T";
return Code;
}({});
var Libelle = exports.Libelle = /*#__PURE__*/function (Libelle) {
Libelle["ADiscuter"] = "A discuter";
Libelle["AD\xE9poser"] = "A d\xE9poser";
Libelle["Discut\xE9"] = "Discut\xE9";
Libelle["Effac\xE9"] = "effac\xE9";
Libelle["EnRecevabilit\xE9"] = "En recevabilit\xE9";
Libelle["EnTraitement"] = "En traitement";
Libelle["Irrecevable"] = "Irrecevable";
Libelle["Irrecevable40"] = "Irrecevable 40";
Libelle["Retir\xE9"] = "Retir\xE9";
return Libelle;
}({});
var SortEnum = exports.SortEnum = /*#__PURE__*/function (SortEnum) {
SortEnum["Adopt\xE9"] = "Adopt\xE9";
SortEnum["AutreIrrecevabilit\xE9"] = "Autre irrecevabilit\xE9";
SortEnum["AutreIrrecevabilit\xE940"] = "Autre irrecevabilit\xE9 40";
SortEnum["AutresIrrLOLF"] = "Autres irr LOLF";
SortEnum["AutresIrrLOLFSS"] = "Autres irr LOLFSS";
SortEnum["Cavalier45"] = "Cavalier (45)";
SortEnum["CavalierBudg\xE9taire"] = "Cavalier budg\xE9taire";
SortEnum["CavalierSocial"] = "Cavalier social";
SortEnum["ChampDeLHabilitation38"] = "Champ de l'habilitation (38)";
SortEnum["Charge"] = "Charge";
SortEnum["Cmp45"] = "CMP (45)";
SortEnum["Cr\xE9dits"] = "Cr\xE9dits";
SortEnum["DispositionR\xE9glementaire37"] = "Disposition r\xE9glementaire (37)";
SortEnum["DomaineDeLaLoi41"] = "Domaine de la loi (41)";
SortEnum["DomaineLoiOrganique127"] = "Domaine loi organique (127)";
SortEnum["Doublon"] = "Doublon";
SortEnum["Entonnoir45"] = "Entonnoir (45)";
SortEnum["Gage"] = "Gage";
SortEnum["HorsChamp"] = "Hors champ";
SortEnum["HorsD\xE9lais"] = "Hors-d\xE9lais";
SortEnum["Injonction20"] = "Injonction (20)";
SortEnum["IrrEnPremi\xE8rePartie"] = "Irr en premi\xE8re partie";
SortEnum["IrrEnSecondePartie"] = "Irr en seconde partie";
SortEnum["Lolf"] = "LOLF";
SortEnum["Lolfss"] = "LOLFSS";
SortEnum["NonSoutenu"] = "Non soutenu";
SortEnum["OrdreDuJour48"] = "Ordre du jour (48)";
SortEnum["R"] = "R";
SortEnum["RatificationTrait\xE953"] = "Ratification trait\xE9 (53)";
SortEnum["Rejet\xE9"] = "Rejet\xE9";
SortEnum["Retir\xE9"] = "Retir\xE9";
SortEnum["Retir\xE9Apr\xE8sPublication"] = "Retir\xE9 apr\xE8s publication";
SortEnum["Retir\xE9AvantPublication"] = "Retir\xE9 avant publication";
SortEnum["SatisfaitOuInop\xE9rant42"] = "Satisfait ou inop\xE9rant (42)";
SortEnum["SousAmendement98"] = "Sous-amendement (98)";
SortEnum["Tomb\xE9"] = "Tomb\xE9";
return SortEnum;
}({});
var TypePosition = exports.TypePosition = /*#__PURE__*/function (TypePosition) {
TypePosition["Dernier"] = "Dernier";
TypePosition["Milieu"] = "Milieu";
TypePosition["Premier"] = "Premier";
return TypePosition;
}({});
var AvantAApres = exports.AvantAApres = /*#__PURE__*/function (AvantAApres) {
AvantAApres["A"] = "A";
AvantAApres["Apr\xE8s"] = "Apr\xE8s";
AvantAApres["Avant"] = "Avant";
return AvantAApres;
}({});
var DivisionType = exports.DivisionType = /*#__PURE__*/function (DivisionType) {
DivisionType["Annexe"] = "ANNEXE";
DivisionType["Article"] = "ARTICLE";
DivisionType["Chapitre"] = "CHAPITRE";
DivisionType["Titre"] = "TITRE";
return DivisionType;
}({});
var CodeEtat = exports.CodeEtat = /*#__PURE__*/function (CodeEtat) {
CodeEtat["B"] = "B";
CodeEtat["C"] = "C";
CodeEtat["D"] = "D";
return CodeEtat;
}({});
var Nom = exports.Nom = /*#__PURE__*/function (Nom) {
Nom["PDF"] = "PDF";
return Nom;
}({});
var TypeMIMEType = exports.TypeMIMEType = /*#__PURE__*/function (TypeMIMEType) {
TypeMIMEType["Application"] = "application";
return TypeMIMEType;
}({});
var TypeAuteur = exports.TypeAuteur = /*#__PURE__*/function (TypeAuteur) {
TypeAuteur["D\xE9put\xE9"] = "D\xE9put\xE9";
TypeAuteur["Gouvernement"] = "Gouvernement";
TypeAuteur["Rapporteur"] = "Rapporteur";
return TypeAuteur;
}({});
// Converts JSON strings to/from your types
// and asserts the results of JSON.parse at runtime
var Convert = exports.Convert = /*#__PURE__*/function () {
function Convert() {
_classCallCheck(this, Convert);
}
return _createClass(Convert, null, [{
key: "toAmendements",
value: function toAmendements(json) {
return cast(JSON.parse(json), r("Amendements"));
}
}, {
key: "amendementsToJson",
value: function amendementsToJson(value) {
return JSON.stringify(uncast(value, r("Amendements")), null, 2);
}
}, {
key: "toTexteLegislatif",
value: function toTexteLegislatif(json) {
return cast(JSON.parse(json), r("TexteLegislatif"));
}
}, {
key: "texteLegislatifToJson",
value: function texteLegislatifToJson(value) {
return JSON.stringify(uncast(value, r("TexteLegislatif")), null, 2);
}
}, {
key: "toAmendementWrapper",
value: function toAmendementWrapper(json) {
return cast(JSON.parse(json), r("AmendementWrapper"));
}
}, {
key: "amendementWrapperToJson",
value: function amendementWrapperToJson(value) {
return JSON.stringify(uncast(value, r("AmendementWrapper")), null, 2);
}
}]);
}();
function invalidValue(typ, val) {
var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
if (key) {
throw Error("Invalid value for key \"".concat(key, "\". Expected type ").concat(JSON.stringify(typ), " but got ").concat(JSON.stringify(val)));
}
throw Error("Invalid value ".concat(JSON.stringify(val), " for type ").concat(JSON.stringify(typ)));
}
function jsonToJSProps(typ) {
if (typ.jsonToJS === undefined) {
var map = {};
typ.props.forEach(function (p) {
return map[p.json] = {
key: p.js,
typ: p.typ
};
});
typ.jsonToJS = map;
}
return typ.jsonToJS;
}
function jsToJSONProps(typ) {
if (typ.jsToJSON === undefined) {
var map = {};
typ.props.forEach(function (p) {
return map[p.js] = {
key: p.json,
typ: p.typ
};
});
typ.jsToJSON = map;
}
return typ.jsToJSON;
}
function transform(val, typ, getProps) {
var key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
function transformPrimitive(typ, val) {
if (_typeof(typ) === _typeof(val)) return val;
return invalidValue(typ, val, key);
}
function transformUnion(typs, val) {
// val must validate against one typ in typs
var l = typs.length;
for (var i = 0; i < l; i++) {
var _typ = typs[i];
try {
return transform(val, _typ, getProps);
} catch (_) {}
}
return invalidValue(typs, val);
}
function transformEnum(cases, val) {
if (cases.indexOf(val) !== -1) return val;
return invalidValue(cases, val);
}
function transformArray(typ, val) {
// val must be an array with no invalid elements
if (!Array.isArray(val)) return invalidValue("array", val);
return val.map(function (el) {
return transform(el, typ, getProps);
});
}
function transformDate(val) {
if (val === null) {
return null;
}
var d = new Date(val);
if (isNaN(d.valueOf())) {
return invalidValue("Date", val);
}
return d;
}
function transformObject(props, additional, val) {
if (val === null || _typeof(val) !== "object" || Array.isArray(val)) {
return invalidValue("object", val);
}
var result = {};
Object.getOwnPropertyNames(props).forEach(function (key) {
var prop = props[key];
var v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
result[prop.key] = transform(v, prop.typ, getProps, prop.key);
});
Object.getOwnPropertyNames(val).forEach(function (key) {
if (!Object.prototype.hasOwnProperty.call(props, key)) {
result[key] = transform(val[key], additional, getProps, key);
}
});
return result;
}
if (typ === "any") return val;
if (typ === null) {
if (val === null) return val;
return invalidValue(typ, val);
}
if (typ === false) return invalidValue(typ, val);
while (_typeof(typ) === "object" && typ.ref !== undefined) {
typ = typeMap[typ.ref];
}
if (Array.isArray(typ)) return transformEnum(typ, val);
if (_typeof(typ) === "object") {
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);
}
// Numbers can be parsed by Date but shouldn't be.
if (typ === Date && typeof val !== "number") return transformDate(val);
return transformPrimitive(typ, val);
}
function cast(val, typ) {
return transform(val, typ, jsonToJSProps);
}
function uncast(val, typ) {
return transform(val, typ, jsToJSONProps);
}
function a(typ) {
return {
arrayItems: typ
};
}
function u() {
for (var _len = arguments.length, typs = new Array(_len), _key = 0; _key < _len; _key++) {
typs[_key] = arguments[_key];
}
return {
unionMembers: typs
};
}
function o(props, additional) {
return {
props: props,
additional: additional
};
}
// function m(additional: any) {
// return { props: [], additional };
// }
function r(name) {
return {
ref: name
};
}
var typeMap = {
"Amendements": o([{
json: "textesLegislatifs",
js: "textesLegislatifs",
typ: a(r("TexteLegislatif"))
}], false),
"TexteLegislatif": o([{
json: "@xmlns:xsi",
js: "@xmlns:xsi",
typ: ""
}, {
json: "refTexteLegislatif",
js: "refTexteLegislatif",
typ: ""
}, {
json: "amendements",
js: "amendements",
typ: r("AmendementsClass")
}], false),
"AmendementsClass": o([{
json: "amendement",
js: "amendement",
typ: a(r("Amendement"))
}], false),
"AmendementWrapper": o([{
json: "amendement",
js: "amendement",
typ: r("Amendement")
}], false),
"Amendement": o([{
json: "@xmlns",
js: "@xmlns",
typ: ""
}, {
json: "uid",
js: "uid",
typ: ""
}, {
json: "chronotag",
js: "chronotag",
typ: ""
}, {
json: "legislature",
js: "legislature",
typ: ""
}, {
json: "identification",
js: "identification",
typ: r("Identification")
}, {
json: "examenRef",
js: "examenRef",
typ: ""
}, {
json: "texteLegislatifRef",
js: "texteLegislatifRef",
typ: ""
}, {
json: "triAmendement",
js: "triAmendement",
typ: u(r("AmendementParentRefClass"), "")
}, {
json: "cardinaliteAmdtMultiples",
js: "cardinaliteAmdtMultiples",
typ: u(r("AmendementParentRefClass"), "")
}, {
json: "amendementParentRef",
js: "amendementParentRef",
typ: u(r("AmendementParentRefClass"), "")
}, {
json: "signataires",
js: "signataires",
typ: r("Signataires")
}, {
json: "pointeurFragmentTexte",
js: "pointeurFragmentTexte",
typ: r("PointeurFragmentTexte")
}, {
json: "corps",
js: "corps",
typ: r("Corps")
}, {
json: "cycleDeVie",
js: "cycleDeVie",
typ: r("CycleDeVie")
}, {
json: "representations",
js: "representations",
typ: u(r("Representations"), null)
}, {
json: "seanceDiscussionRef",
js: "seanceDiscussionRef",
typ: u(r("AmendementParentRefClass"), "")
}, {
json: "article99",
js: "article99",
typ: ""
}, {
json: "loiReference",
js: "loiReference",
typ: r("LoiReference")
}, {
json: "discussionCommune",
js: "discussionCommune",
typ: r("Discussion")
}, {
json: "discussionIdentique",
js: "discussionIdentique",
typ: r("Discussion")
}, {
json: "accordGouvernementDepotHorsDelai",
js: "accordGouvernementDepotHorsDelai",
typ: r("AccordGouvernementDepotHorsDelai")
}], false),
"AmendementParentRefClass": o([{
json: "@xmlns:xsi",
js: "@xmlns:xsi",
typ: ""
}, {
json: "@xsi:nil",
js: "@xsi:nil",
typ: ""
}], false),
"Corps": o([{
json: "cartoucheInformatif",
js: "cartoucheInformatif",
typ: u(undefined, u(r("AmendementParentRefClass"), ""))
}, {
json: "contenuAuteur",
js: "contenuAuteur",
typ: u(undefined, r("ContenuAuteur"))
}, {
json: "@xmlns:xsi",
js: "@xmlns:xsi",
typ: u(undefined, "")
}, {
json: "@xsi:nil",
js: "@xsi:nil",
typ: u(undefined, "")
}], false),
"ContenuAuteur": o([{
json: "dispositif",
js: "dispositif",
typ: u(undefined, "")
}, {
json: "avantAppel",
js: "avantAppel",
typ: u(undefined, r("AvantAppel"))
}, {
json: "exposeSommaire",
js: "exposeSommaire",
typ: u(undefined, "")
}, {
json: "annexeExposeSommaire",
js: "annexeExposeSommaire",
typ: u(undefined, r("AmendementParentRefClass"))
}, {
json: "@xmlns:xsi",
js: "@xmlns:xsi",
typ: u(undefined, "")
}, {
json: "@xsi:nil",
js: "@xsi:nil",
typ: u(undefined, "")
}, {
json: "dispositifAmdtCreditPLF",
js: "dispositifAmdtCreditPLF",
typ: u(undefined, r("DispositifAmdtCreditPLF"))
}, {
json: "dispositifAmdtCreditPLFR",
js: "dispositifAmdtCreditPLFR",
typ: u(undefined, r("DispositifAmdtCreditPLFR"))
}], false),
"AvantAppel": o([{
json: "@xmlns:xsi",
js: "@xmlns:xsi",
typ: u(undefined, "")
}, {
json: "@xsi:nil",
js: "@xsi:nil",
typ: u(undefined, "")
}, {
json: "dispositif",
js: "dispositif",
typ: u(undefined, "")
}, {
json: "dispositifAmdtCreditPLF",
js: "dispositifAmdtCreditPLF",
typ: u(undefined, r("DispositifAmdtCreditPLF"))
}, {
json: "dispositifAmdtCreditPLFR",
js: "dispositifAmdtCreditPLFR",
typ: u(undefined, r("DispositifAmdtCreditPLFR"))
}], false),
"DispositifAmdtCreditPLF": o([{
json: "listeProgrammes",
js: "listeProgrammes",
typ: u(undefined, r("DispositifAmdtCreditPLFListeProgrammes"))
}, {
json: "soldeAE",
js: "soldeAE",
typ: u(undefined, "")
}, {
json: "soldeCP",
js: "soldeCP",
typ: u(undefined, "")
}, {
json: "cpEgalAe",
js: "cpEgalAe",
typ: ""
}], false),
"DispositifAmdtCreditPLFListeProgrammes": o([{
json: "programme",
js: "programme",
typ: a(r("PurpleProgramme"))
}], false),
"PurpleProgramme": o([{
json: "libelle",
js: "libelle",
typ: ""
}, {
json: "programmeRef",
js: "programmeRef",
typ: ""
}, {
json: "autorisationEngagement",
js: "autorisationEngagement",
typ: ""
}, {
json: "creditPaiement",
js: "creditPaiement",
typ: ""
}, {
json: "action",
js: "action",
typ: r("Action")
}, {
json: "lignesCredits",
js: "lignesCredits",
typ: r("PurpleLignesCredits")
}], false),
"PurpleLignesCredits": o([{
json: "@xmlns:xsi",
js: "@xmlns:xsi",
typ: u(undefined, "")
}, {
json: "@xsi:nil",
js: "@xsi:nil",
typ: u(undefined, "")
}, {
json: "ligneCredit",
js: "ligneCredit",
typ: u(undefined, u(a(r("LigneCreditClass")), r("LigneCreditClass")))
}], false),
"LigneCreditClass": o([{
json: "id",
js: "id",
typ: ""
}, {
json: "libelle",
js: "libelle",
typ: ""
}, {
json: "autorisationEngagement",
js: "autorisationEngagement",
typ: ""
}, {
json: "creditPaiement",
js: "creditPaiement",
typ: ""
}, {
json: "action",
js: "action",
typ: r("Action")
}], false),
"DispositifAmdtCreditPLFR": o([{
json: "listeProgrammes",
js: "listeProgrammes",
typ: u(undefined, r("DispositifAmdtCreditPLFRListeProgrammes"))
}, {
json: "totalAE",
js: "totalAE",
typ: u(undefined, r("Total"))
}, {
json: "totalCP",
js: "totalCP",
typ: u(undefined, r("Total"))
}, {
json: "cpEgalAe",
js: "cpEgalAe",
typ: ""
}], false),
"DispositifAmdtCreditPLFRListeProgrammes": o([{
json: "programme",
js: "programme",
typ: a(r("LigneCreditElement"))
}], false),
"LigneCreditLignesCredits": o([{
json: "@xmlns:xsi",
js: "@xmlns:xsi",
typ: u(undefined, "")
}, {
json: "@xsi:nil",
js: "@xsi:nil",
typ: u(undefined, "")
}, {
json: "ligneCredit",
js: "ligneCredit",
typ: u(undefined, u(a(r("LigneCreditElement")), r("LigneCreditElement")))
}], false),
"LigneCreditElement": o([{
json: "libelle",
js: "libelle",
typ: ""
}, {
json: "programmeRef",
js: "programmeRef",
typ: u(undefined, "")
}, {
json: "autorisationEngagementSupplementaire",
js: "autorisationEngagementSupplementaire",
typ: ""
}, {
json: "creditPaiementSupplementaire",
js: "creditPaiementSupplementaire",
typ: ""
}, {
json: "autorisationEngagementAnnule",
js: "autorisationEngagementAnnule",
typ: ""
}, {
json: "creditPaiementAnnule",
js: "creditPaiementAnnule",
typ: ""
}, {
json: "action",
js: "action",
typ: r("Action")
}, {
json: "lignesCredits",
js: "lignesCredits",
typ: u(undefined, r("LigneCreditLignesCredits"))
}, {
json: "id",
js: "id",
typ: u(undefined, "")
}], false),
"Total": o([{
json: "supplementaire",
js: "supplementaire",
typ: ""
}, {
json: "annule",
js: "annule",
typ: ""
}, {
json: "solde",
js: "solde",
typ: ""
}], false),
"CycleDeVie": o([{
json: "dateDepot",
js: "dateDepot",
typ: u(r("AmendementParentRefClass"), Date)
}, {
json: "datePublication",
js: "datePublication",
typ: u(r("AmendementParentRefClass"), Date)
}, {
json: "soumisArticle40",
js: "soumisArticle40",
typ: ""
}, {
json: "etatDesTraitements",
js: "etatDesTraitements",
typ: r("EtatDESTraitements")
}, {
json: "dateSort",
js: "dateSort",
typ: u(r("AmendementParentRefClass"), Date)
}, {
json: "sort",
js: "sort",
typ: u(r("AmendementParentRefClass"), r("SortEnum"))
}], false),
"EtatDESTraitements": o([{
json: "etat",
js: "etat",
typ: r("Etat")
}, {
json: "sousEtat",
js: "sousEtat",
typ: r("SousEtat")
}], false),
"Etat": o([{
json: "code",
js: "code",
typ: r("Code")
}, {
json: "libelle",
js: "libelle",
typ: r("Libelle")
}], false),
"SousEtat": o([{
json: "code",
js: "code",
typ: u(undefined, r("Code"))
}, {
json: "libelle",
js: "libelle",
typ: u(undefined, r("SortEnum"))
}, {
json: "@xmlns:xsi",
js: "@xmlns:xsi",
typ: u(undefined, "")
}, {
json: "@xsi:nil",
js: "@xsi:nil",
typ: u(undefined, "")
}], false),
"Discussion": o([{
json: "@xmlns:xsi",
js: "@xmlns:xsi",
typ: u(undefined, "")
}, {
json: "@xsi:nil",
js: "@xsi:nil",
typ: u(undefined, "")
}, {
json: "idDiscussion",
js: "idDiscussion",
typ: u(undefined, "")
}, {
json: "typePosition",
js: "typePosition",
typ: u(undefined, r("TypePosition"))
}], false),
"Identification": o([{
json: "numeroLong",
js: "numeroLong",
typ: ""
}, {
json: "numeroOrdreDepot",
js: "numeroOrdreDepot",
typ: ""
}, {
json: "prefixeOrganeExamen",
js: "prefixeOrganeExamen",
typ: ""
}, {
json: "numeroRect",
js: "numeroRect",
typ: ""
}], false),
"LoiReference": o([{
json: "@xmlns:xsi",
js: "@xmlns:xsi",
typ: u(undefined, "")
}, {
json: "@xsi:nil",
js: "@xsi:nil",
typ: u(undefined, "")
}, {
json: "codeLoi",
js: "codeLoi",
typ: u(undefined, u(r("AmendementParentRefClass"), null, ""))
}, {
json: "divisionCodeLoi",
js: "divisionCodeLoi",
typ: u(undefined, u(r("AmendementParentRefClass"), null, ""))
}], false),
"PointeurFragmentTexte": o([{
json: "partieAmendableRef",
js: "partieAmendableRef",
typ: r("AmendementParentRefClass")
}, {
json: "division",
js: "division",
typ: u(undefined, r("Division"))
}, {
json: "amendementStandard",
js: "amendementStandard",
typ: u(undefined, r("AmendementStandard"))
}, {
json: "missionVisee",
js: "missionVisee",
typ: u(undefined, r("MissionVisee"))
}], false),
"AmendementStandard": o([{
json: "alinea",
js: "alinea",
typ: r("Alinea")
}], false),
"Alinea": o([{
json: "@xmlns:xsi",
js: "@xmlns:xsi",
typ: u(undefined, "")
}, {
json: "@xsi:nil",
js: "@xsi:nil",
typ: u(undefined, "")
}, {
json: "avant_A_Apres",
js: "avant_A_Apres",
typ: u(undefined, u(r("AmendementParentRefClass"), null, ""))
}, {
json: "numero",
js: "numero",
typ: u(undefined, u(r("AmendementParentRefClass"), ""))
}, {
json: "alineaDesignation",
js: "alineaDesignation",
typ: u(undefined, "")
}], false),
"Division": o([{
json: "titre",
js: "titre",
typ: u(null, "")
}, {
json: "articleDesignationCourte",
js: "articleDesignationCourte",
typ: u(null, "")
}, {
json: "articleDesignation",
js: "articleDesignation",
typ: u(null, "")
}, {
json: "type",
js: "type",
typ: r("DivisionType")
}, {
json: "avant_A_Apres",
js: "avant_A_Apres",
typ: r("AvantAApres")
}, {
json: "divisionRattachee",
js: "divisionRattachee",
typ: u(r("AmendementParentRefClass"), "")
}, {
json: "articleAdditionnel",
js: "articleAdditionnel",
typ: ""
}, {
json: "chapitreAdditionnel",
js: "chapitreAdditionnel",
typ: ""
}, {
json: "urlDivisionTexteVise",
js: "urlDivisionTexteVise",
typ: u(r("AmendementParentRefClass"), "")
}], false),
"MissionVisee": o([{
json: "codeEtat",
js: "codeEtat",
typ: r("CodeEtat")
}, {
json: "codeMissionMinefi",
js: "codeMissionMinefi",
typ: ""
}, {
json: "libelleMission",
js: "libelleMission",
typ: ""
}, {
json: "missionRef",
js: "missionRef",
typ: ""
}], false),
"Representations": o([{
json: "representation",
js: "representation",
typ: r("Representation")
}], false),
"Representation": o([{
json: "nom",
js: "nom",
typ: r("Nom")
}, {
json: "typeMime",
js: "typeMime",
typ: r("TypeMIME")
}, {
json: "statutRepresentation",
js: "statutRepresentation",
typ: r("StatutRepresentation")
}, {
json: "repSource",
js: "repSource",
typ: r("AmendementParentRefClass")
}, {
json: "offset",
js: "offset",
typ: r("AmendementParentRefClass")
}, {
json: "contenu",
js: "contenu",
typ: r("Contenu")
}, {
json: "dateDispoRepresentation",
js: "dateDispoRepresentation",
typ: r("AmendementParentRefClass")
}], false),
"Contenu": o([{
json: "documentURI",
js: "documentURI",
typ: ""
}], false),
"StatutRepresentation": o([{
json: "verbatim",
js: "verbatim",
typ: ""
}, {
json: "canonique",
js: "canonique",
typ: ""
}, {
json: "officielle",
js: "officielle",
typ: ""
}, {
json: "transcription",
js: "transcription",
typ: ""
}, {
json: "enregistrement",
js: "enregistrement",
typ: ""
}], false),
"TypeMIME": o([{
json: "type",
js: "type",
typ: r("TypeMIMEType")
}, {
json: "subType",
js: "subType",
typ: r("Nom")
}], false),
"Signataires": o([{
json: "auteur",
js: "auteur",
typ: r("Auteur")
}, {
json: "cosignataires",
js: "cosignataires",
typ: r("Cosignataires")
}, {
json: "suffixe",
js: "suffixe",
typ: u(r("AmendementParentRefClass"), "")
}, {
json: "libelle",
js: "libelle",
typ: u(null, "")
}], false),
"Auteur": o([{
json: "typeAuteur",
js: "typeAuteur",
typ: r("TypeAuteur")
}, {
json: "gouvernementRef",
js: "gouvernementRef",
typ: u(r("AmendementParentRefClass"), "")
}, {
json: "acteurRef",
js: "acteurRef",
typ: u(r("AmendementParentRefClass"), "")
}, {
json: "groupePolitiqueRef",
js: "groupePolitiqueRef",
typ: u(r("AmendementParentRefClass"), "")
}, {
json: "auteurRapporteurOrganeRef",
js: "auteurRapporteurOrganeRef",
typ: u(r("AmendementParentRefClass"), "")
}], false),
"Cosignataires": o([{
json: "@xmlns:xsi",
js: "@xmlns:xsi",
typ: u(undefined, "")
}, {
json: "@xsi:nil",
js: "@xsi:nil",
typ: u(undefined, "")
}, {
json: "acteurRef",
js: "acteurRef",
typ: u(undefined, u(a(""), ""))
}], false),
"AccordGouvernementDepotHorsDelai": ["Accord", "Sans objet"],
"Action": ["création", "modification", "suppression"],
"Code": ["AC", "AT", "DI", "effacé", "ER", "ET", "IR", "IRR127", "IRR20", "IRR37", "IRR38", "IRR41", "IRR42", "IRR45", "IRR48", "IRR53", "IRRAI", "IRRAIF", "IRRD", "IRRHC", "IRRHD", "IRRSA", "R", "RT", "T"],
"Libelle": ["A discuter", "A déposer", "Discuté", "effacé", "En recevabilité", "En traitement", "Irrecevable", "Irrecevable 40", "Retiré"],
"SortEnum": ["Adopté", "Autre irrecevabilité", "Autre irrecevabilité 40", "Autres irr LOLF", "Autres irr LOLFSS", "Cavalier (45)", "Cavalier budgétaire", "Cavalier social", "Champ de l'habilitation (38)", "Charge", "CMP (45)", "Crédits", "Disposition réglementaire (37)", "Domaine de la loi (41)", "Domaine loi organique (127)", "Doublon", "Entonnoir (45)", "Gage", "Hors champ", "Hors-délais", "Injonction (20)", "Irr en première partie", "Irr en seconde partie", "LOLF", "LOLFSS", "Non soutenu", "Ordre du jour (48)", "R", "Ratification traité (53)", "Rejeté", "Retiré", "Retiré après publication", "Retiré avant publication", "Satisfait ou inopérant (42)", "Sous-amendement (98)", "Tombé"],
"TypePosition": ["Dernier", "Milieu", "Premier"],
"AvantAApres": ["A", "Après", "Avant"],
"DivisionType": ["ANNEXE", "ARTICLE", "CHAPITRE", "TITRE"],
"CodeEtat": ["B", "C", "D"],
"Nom": ["PDF"],
"TypeMIMEType": ["application"],
"TypeAuteur": ["Député", "Gouvernement", "Rapporteur"]
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBY2NvcmRHb3V2ZXJuZW1lbnREZXBvdEhvcnNEZWxhaSIsImV4cG9ydHMiLCJBY3Rpb24iLCJDb2RlIiwiTGliZWxsZSIsIlNvcnRFbnVtIiwiVHlwZVBvc2l0aW9uIiwiQXZhbnRBQXByZXMiLCJEaXZpc2lvblR5cGUiLCJDb2RlRXRhdCIsIk5vbSIsIlR5cGVNSU1FVHlwZSIsIlR5cGVBdXRldXIiLCJDb252ZXJ0IiwiX2NsYXNzQ2FsbENoZWNrIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJ0b0FtZW5kZW1lbnRzIiwianNvbiIsImNhc3QiLCJKU09OIiwicGFyc2UiLCJyIiwiYW1lbmRlbWVudHNUb0pzb24iLCJzdHJpbmdpZnkiLCJ1bmNhc3QiLCJ0b1RleHRlTGVnaXNsYXRpZiIsInRleHRlTGVnaXNsYXRpZlRvSnNvbiIsInRvQW1lbmRlbWVudFdyYXBwZXIiLCJhbWVuZGVtZW50V3JhcHBlclRvSnNvbiIsImludmFsaWRWYWx1ZSIsInR5cCIsInZhbCIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIkVycm9yIiwiY29uY2F0IiwianNvblRvSlNQcm9wcyIsImpzb25Ub0pTIiwibWFwIiwicHJvcHMiLCJmb3JFYWNoIiwicCIsImpzIiwianNUb0pTT05Qcm9wcyIsImpzVG9KU09OIiwidHJhbnNmb3JtIiwiZ2V0UHJvcHMiLCJ0cmFuc2Zvcm1QcmltaXRpdmUiLCJfdHlwZW9mIiwidHJhbnNmb3JtVW5pb24iLCJ0eXBzIiwibCIsImkiLCJfIiwidHJhbnNmb3JtRW51bSIsImNhc2VzIiwiaW5kZXhPZiIsInRyYW5zZm9ybUFycmF5IiwiQXJyYXkiLCJpc0FycmF5IiwiZWwiLCJ0cmFuc2Zvcm1EYXRlIiwiZCIsIkRhdGUiLCJpc05hTiIsInZhbHVlT2YiLCJ0cmFuc2Zvcm1PYmplY3QiLCJhZGRpdGlvbmFsIiwicmVzdWx0IiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsInByb3AiLCJ2IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwicmVmIiwidHlwZU1hcCIsInVuaW9uTWVtYmVycyIsImFycmF5SXRlbXMiLCJhIiwidSIsIl9sZW4iLCJfa2V5IiwibyIsIm5hbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcmF3X3R5cGVzL2FtZW5kZW1lbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRvIHBhcnNlIHRoaXMgZGF0YTpcbi8vXG4vLyAgIGltcG9ydCB7IEFtZW5kZW1lbnRzLCBBbWVuZGVtZW50V3JhcHBlciwgQ29udmVydCwgVGV4dGVMZWdpc2xhdGlmIH0gZnJvbSBcIi4vZmlsZVwiO1xuLy9cbi8vICAgY29uc3QgYW1lbmRlbWVudHMgPSBDb252ZXJ0LnRvQW1lbmRlbWVudHMoanNvbik7XG4vLyAgIGNvbnN0IGFtZW5kZW1lbnRXcmFwcGVyID0gQ29udmVydC50b0FtZW5kZW1lbnRXcmFwcGVyKGpzb24pO1xuLy8gICBjb25zdCB0ZXh0ZUxlZ2lzbGF0aWYgPSBDb252ZXJ0LnRvVGV4dGVMZWdpc2xhdGlmKGpzb24pO1xuLy9cbi8vIFRoZXNlIGZ1bmN0aW9ucyB3aWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBKU09OIGRvZXNuJ3Rcbi8vIG1hdGNoIHRoZSBleHBlY3RlZCBpbnRlcmZhY2UsIGV2ZW4gaWYgdGhlIEpTT04gaXMgdmFsaWQuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQW1lbmRlbWVudHMge1xuICB0ZXh0ZXNMZWdpc2xhdGlmczogVGV4dGVMZWdpc2xhdGlmW11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXh0ZUxlZ2lzbGF0aWYge1xuICAgIFwiQHhtbG5zOnhzaVwiOiAgICAgICBzdHJpbmc7XG4gICAgcmVmVGV4dGVMZWdpc2xhdGlmOiBzdHJpbmc7XG4gICAgYW1lbmRlbWVudHM6ICAgICAgICBBbWVuZGVtZW50c0NsYXNzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFtZW5kZW1lbnRzQ2xhc3Mge1xuICAgIGFtZW5kZW1lbnQ6IEFtZW5kZW1lbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbWVuZGVtZW50V3JhcHBlciB7XG4gIGFtZW5kZW1lbnQ6IEFtZW5kZW1lbnRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbWVuZGVtZW50IHtcbiAgICBcIkB4bWxuc1wiOiAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmc7XG4gICAgdWlkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZztcbiAgICBjaHJvbm90YWc6ICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nO1xuICAgIGxlZ2lzbGF0dXJlOiAgICAgICAgICAgICAgICAgICAgICBzdHJpbmc7XG4gICAgaWRlbnRpZmljYXRpb246ICAgICAgICAgICAgICAgICAgIElkZW50aWZpY2F0aW9uO1xuICAgIGV4YW1lblJlZjogICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmc7XG4gICAgdGV4dGVMZWdpc2xhdGlmUmVmOiAgICAgICAgICAgICAgIHN0cmluZztcbiAgICB0cmlBbWVuZGVtZW50OiAgICAgICAgICAgICAgICAgICAgQW1lbmRlbWVudFBhcmVudFJlZkNsYXNzIHwgc3RyaW5nO1xuICAgIGNhcmRpbmFsaXRlQW1kdE11bHRpcGxlczogICAgICAgICBBbWVuZGVtZW50UGFyZW50UmVmQ2xhc3MgfCBzdHJpbmc7XG4gICAgYW1lbmRlbWVudFBhcmVudFJlZjogICAgICAgICAgICAgIEFtZW5kZW1lbnRQYXJlbnRSZWZDbGFzcyB8IHN0cmluZztcbiAgICBzaWduYXRhaXJlczogICAgICAgICAgICAgICAgICAgICAgU2lnbmF0YWlyZXM7XG4gICAgcG9pbnRldXJGcmFnbWVudFRleHRlOiAgICAgICAgICAgIFBvaW50ZXVyRnJhZ21lbnRUZXh0ZTtcbiAgICBjb3JwczogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29ycHM7XG4gICAgY3ljbGVEZVZpZTogICAgICAgICAgICAgICAgICAgICAgIEN5Y2xlRGVWaWU7XG4gICAgcmVwcmVzZW50YXRpb25zOiAgICAgICAgICAgICAgICAgIFJlcHJlc2VudGF0aW9ucyB8IG51bGw7XG4gICAgc2VhbmNlRGlzY3Vzc2lvblJlZjogICAgICAgICAgICAgIEFtZW5kZW1lbnRQYXJlbnRSZWZDbGFzcyB8IHN0cmluZztcbiAgICBhcnRpY2xlOTk6ICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nO1xuICAgIGxvaVJlZmVyZW5jZTogICAgICAgICAgICAgICAgICAgICBMb2lSZWZlcmVuY2U7XG4gICAgZGlzY3Vzc2lvbkNvbW11bmU6ICAgICAgICAgICAgICAgIERpc2N1c3Npb247XG4gICAgZGlzY3Vzc2lvbklkZW50aXF1ZTogICAgICAgICAgICAgIERpc2N1c3Npb247XG4gICAgYWNjb3JkR291dmVybmVtZW50RGVwb3RIb3JzRGVsYWk6IEFjY29yZEdvdXZlcm5lbWVudERlcG90SG9yc0RlbGFpO1xufVxuXG5leHBvcnQgZW51bSBBY2NvcmRHb3V2ZXJuZW1lbnREZXBvdEhvcnNEZWxhaSB7XG4gICAgQWNjb3JkID0gXCJBY2NvcmRcIixcbiAgICBTYW5zT2JqZXQgPSBcIlNhbnMgb2JqZXRcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbWVuZGVtZW50UGFyZW50UmVmQ2xhc3Mge1xuICAgIFwiQHhtbG5zOnhzaVwiOiBzdHJpbmc7XG4gICAgXCJAeHNpOm5pbFwiOiAgIHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb3JwcyB7XG4gICAgY2FydG91Y2hlSW5mb3JtYXRpZj86IEFtZW5kZW1lbnRQYXJlbnRSZWZDbGFzcyB8IHN0cmluZztcbiAgICBjb250ZW51QXV0ZXVyPzogICAgICAgQ29udGVudUF1dGV1cjtcbiAgICBcIkB4bWxuczp4c2lcIj86ICAgICAgICBzdHJpbmc7XG4gICAgXCJAeHNpOm5pbFwiPzogICAgICAgICAgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnVBdXRldXIge1xuICAgIGRpc3Bvc2l0aWY/OiAgICAgICAgICAgICAgIHN0cmluZztcbiAgICBhdmFudEFwcGVsPzogICAgICAgICAgICAgICBBdmFudEFwcGVsO1xuICAgIGV4cG9zZVNvbW1haXJlPzogICAgICAgICAgIHN0cmluZztcbiAgICBhbm5leGVFeHBvc2VTb21tYWlyZT86ICAgICBBbWVuZGVtZW50UGFyZW50UmVmQ2xhc3M7XG4gICAgXCJAeG1sbnM6eHNpXCI/OiAgICAgICAgICAgICBzdHJpbmc7XG4gICAgXCJAeHNpOm5pbFwiPzogICAgICAgICAgICAgICBzdHJpbmc7XG4gICAgZGlzcG9zaXRpZkFtZHRDcmVkaXRQTEY/OiAgRGlzcG9zaXRpZkFtZHRDcmVkaXRQTEY7XG4gICAgZGlzcG9zaXRpZkFtZHRDcmVkaXRQTEZSPzogRGlzcG9zaXRpZkFtZHRDcmVkaXRQTEZSO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF2YW50QXBwZWwge1xuICAgIFwiQHhtbG5zOnhzaVwiPzogc3RyaW5nO1xuICAgIFwiQHhzaTpuaWxcIj86ICAgc3RyaW5nO1xuICAgIGRpc3Bvc2l0aWY/OiAgIHN0cmluZztcbiAgICBkaXNwb3NpdGlmQW1kdENyZWRpdFBMRj86ICBEaXNwb3NpdGlmQW1kdENyZWRpdFBMRjtcbiAgICBkaXNwb3NpdGlmQW1kdENyZWRpdFBMRlI/OiBEaXNwb3NpdGlmQW1kdENyZWRpdFBMRlI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzcG9zaXRpZkFtZHRDcmVkaXRQTEYge1xuICAgIGxpc3RlUHJvZ3JhbW1lcz86IERpc3Bvc2l0aWZBbWR0Q3JlZGl0UExGTGlzdGVQcm9ncmFtbWVzO1xuICAgIHNvbGRlQUU/OiAgICAgICAgIHN0cmluZztcbiAgICBzb2xkZUNQPzogICAgICAgICBzdHJpbmc7XG4gICAgY3BFZ2FsQWU6ICAgICAgICAgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpc3Bvc2l0aWZBbWR0Q3JlZGl0UExGTGlzdGVQcm9ncmFtbWVzIHtcbiAgICBwcm9ncmFtbWU6IFB1cnBsZVByb2dyYW1tZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFB1cnBsZVByb2dyYW1tZSB7XG4gICAgbGliZWxsZTogICAgICAgICAgICAgICAgc3RyaW5nO1xuICAgIHByb2dyYW1tZVJlZjogICAgICAgICAgIHN0cmluZztcbiAgICBhdXRvcmlzYXRpb25FbmdhZ2VtZW50OiBzdHJpbmc7XG4gICAgY3JlZGl0UGFpZW1lbnQ6ICAgICAgICAgc3RyaW5nO1xuICAgIGFjdGlvbjogICAgICAgICAgICAgICAgIEFjdGlvbjtcbiAgICBsaWduZXNDcmVkaXRzOiAgICAgICAgICBQdXJwbGVMaWduZXNDcmVkaXRzO1xufVxuXG5leHBvcnQgZW51bSBBY3Rpb24ge1xuICAgIENyw6lhdGlvbiA9IFwiY3LDqWF0aW9uXCIsXG4gICAgTW9kaWZpY2F0aW9uID0gXCJtb2RpZmljYXRpb25cIixcbiAgICBTdXBwcmVzc2lvbiA9IFwic3VwcHJlc3Npb25cIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdXJwbGVMaWduZXNDcmVkaXRzIHtcbiAgICBcIkB4bWxuczp4c2lcIj86IHN0cmluZztcbiAgICBcIkB4c2k6bmlsXCI/OiAgIHN0cmluZztcbiAgICBsaWduZUNyZWRpdD86ICBMaWduZUNyZWRpdENsYXNzW10gfCBMaWduZUNyZWRpdENsYXNzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpZ25lQ3JlZGl0Q2xhc3Mge1xuICAgIGlkOiAgICAgICAgICAgICAgICAgICAgIHN0cmluZztcbiAgICBsaWJlbGxlOiAgICAgICAgICAgICAgICBzdHJpbmc7XG4gICAgYXV0b3Jpc2F0aW9uRW5nYWdlbWVudDogc3RyaW5nO1xuICAgIGNyZWRpdFBhaWVtZW50OiAgICAgICAgIHN0cmluZztcbiAgICBhY3Rpb246ICAgICAgICAgICAgICAgICBBY3Rpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzcG9zaXRpZkFtZHRDcmVkaXRQTEZSIHtcbiAgICBsaXN0ZVByb2dyYW1tZXM/OiBEaXNwb3NpdGlmQW1kdENyZWRpdFBMRlJMaXN0ZVByb2dyYW1tZXM7XG4gICAgdG90YWxBRT86ICAgICAgICAgVG90YWw7XG4gICAgdG90YWxDUD86ICAgICAgICAgVG90YWw7XG4gICAgY3BFZ2FsQWU6ICAgICAgICAgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpc3Bvc2l0aWZBbWR0Q3JlZGl0UExGUkxpc3RlUHJvZ3JhbW1lcyB7XG4gICAgcHJvZ3JhbW1lOiBMaWduZUNyZWRpdEVsZW1lbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaWduZUNyZWRpdExpZ25lc0NyZWRpdHMge1xuICAgIFwiQHhtbG5zOnhzaVwiPzogc3RyaW5nO1xuICAgIFwiQHhzaTpuaWxcIj86ICAgc3RyaW5nO1xuICAgIGxpZ25lQ3JlZGl0PzogIExpZ25lQ3JlZGl0RWxlbWVudFtdIHwgTGlnbmVDcmVkaXRFbGVtZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpZ25lQ3JlZGl0RWxlbWVudCB7XG4gICAgbGliZWxsZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmc7XG4gICAgcHJvZ3JhbW1lUmVmPzogICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmc7XG4gICAgYXV0b3Jpc2F0aW9uRW5nYWdlbWVudFN1cHBsZW1lbnRhaXJlOiBzdHJpbmc7XG4gICAgY3JlZGl0UGFpZW1lbnRTdXBwbGVtZW50YWlyZTogICAgICAgICBzdHJpbmc7XG4gICAgYXV0b3Jpc2F0aW9uRW5nYWdlbWVudEFubnVsZTogICAgICAgICBzdHJpbmc7XG4gICAgY3JlZGl0UGFpZW1lbnRBbm51bGU6ICAgICAgICAgICAgICAgICBzdHJpbmc7XG4gICAgYWN0aW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb247XG4gICAgbGlnbmVzQ3JlZGl0cz86ICAgICAgICAgICAgICAgICAgICAgICBMaWduZUNyZWRpdExpZ25lc0NyZWRpdHM7XG4gICAgaWQ/OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG90YWwge1xuICAgIHN1cHBsZW1lbnRhaXJlOiBzdHJpbmc7XG4gICAgYW5udWxlOiAgICAgICAgIHN0cmluZztcbiAgICBzb2xkZTogICAgICAgICAgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN5Y2xlRGVWaWUge1xuICAgIGRhdGVEZXBvdDogICAgICAgICAgQW1lbmRlbWVudFBhcmVudFJlZkNsYXNzIHwgRGF0ZTtcbiAgICBkYXRlUHVibGljYXRpb246ICAgIEFtZW5kZW1lbnRQYXJlbnRSZWZDbGFzcyB8IERhdGU7XG4gICAgc291bWlzQXJ0aWNsZTQwOiAgICBzdHJpbmc7XG4gICAgZXRhdERlc1RyYWl0ZW1lbnRzOiBFdGF0REVTVHJhaXRlbWVudHM7XG4gICAgZGF0ZVNvcnQ6ICAgICAgICAgICBBbWVuZGVtZW50UGFyZW50UmVmQ2xhc3MgfCBEYXRlO1xuICAgIHNvcnQ6ICAgICAgICAgICAgICAgQW1lbmRlbWVudFBhcmVudFJlZkNsYXNzIHwgU29ydEVudW07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXRhdERFU1RyYWl0ZW1lbnRzIHtcbiAgICBldGF0OiAgICAgRXRhdDtcbiAgICBzb3VzRXRhdDogU291c0V0YXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXRhdCB7XG4gICAgY29kZTogICAgQ29kZTtcbiAgICBsaWJlbGxlOiBMaWJlbGxlO1xufVxuXG5leHBvcnQgZW51bSBDb2RlIHtcbiAgICBBQyA9IFwiQUNcIixcbiAgICBBdCA9IFwiQVRcIixcbiAgICBEaSA9IFwiRElcIixcbiAgICBFZmZhY8OpID0gXCJlZmZhY8OpXCIsXG4gICAgRXIgPSBcIkVSXCIsXG4gICAgRXQgPSBcIkVUXCIsXG4gICAgSVIgPSBcIklSXCIsXG4gICAgSXJyMTI3ID0gXCJJUlIxMjdcIixcbiAgICBJcnIyMCA9IFwiSVJSMjBcIixcbiAgICBJcnIzNyA9IFwiSVJSMzdcIixcbiAgICBJcnIzOCA9IFwiSVJSMzhcIixcbiAgICBJcnI0MSA9IFwiSVJSNDFcIixcbiAgICBJcnI0MiA9IFwiSVJSNDJcIixcbiAgICBJcnI0NSA9IFwiSVJSNDVcIixcbiAgICBJcnI0OCA9IFwiSVJSNDhcIixcbiAgICBJcnI1MyA9IFwiSVJSNTNcIixcbiAgICBJcnJhaSA9IFwiSVJSQUlcIixcbiAgICBJcnJhaWYgPSBcIklSUkFJRlwiLFxuICAgIElycmQgPSBcIklSUkRcIixcbiAgICBJcnJoYyA9IFwiSVJSSENcIixcbiAgICBJcnJoZCA9IFwiSVJSSERcIixcbiAgICBJcnJzYSA9IFwiSVJSU0FcIixcbiAgICBSID0gXCJSXCIsXG4gICAgUnQgPSBcIlJUXCIsXG4gICAgVCA9IFwiVFwiLFxufVxuXG5leHBvcnQgZW51bSBMaWJlbGxlIHtcbiAgICBBRGlzY3V0ZXIgPSBcIkEgZGlzY3V0ZXJcIixcbiAgICBBRMOpcG9zZXIgPSBcIkEgZMOpcG9zZXJcIixcbiAgICBEaXNjdXTDqSA9IFwiRGlzY3V0w6lcIixcbiAgICBFZmZhY8OpID0gXCJlZmZhY8OpXCIsXG4gICAgRW5SZWNldmFiaWxpdMOpID0gXCJFbiByZWNldmFiaWxpdMOpXCIsXG4gICAgRW5UcmFpdGVtZW50ID0gXCJFbiB0cmFpdGVtZW50XCIsXG4gICAgSXJyZWNldmFibGUgPSBcIklycmVjZXZhYmxlXCIsXG4gICAgSXJyZWNldmFibGU0MCA9IFwiSXJyZWNldmFibGUgNDBcIixcbiAgICBSZXRpcsOpID0gXCJSZXRpcsOpXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291c0V0YXQge1xuICAgIGNvZGU/OiAgICAgICAgIENvZGU7XG4gICAgbGliZWxsZT86ICAgICAgU29ydEVudW07XG4gICAgXCJAeG1sbnM6eHNpXCI/OiBzdHJpbmc7XG4gICAgXCJAeHNpOm5pbFwiPzogICBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIFNvcnRFbnVtIHtcbiAgICBBZG9wdMOpID0gXCJBZG9wdMOpXCIsXG4gICAgQXV0cmVJcnJlY2V2YWJpbGl0w6kgPSBcIkF1dHJlIGlycmVjZXZhYmlsaXTDqVwiLFxuICAgIEF1dHJlSXJyZWNldmFiaWxpdMOpNDAgPSBcIkF1dHJlIGlycmVjZXZhYmlsaXTDqSA0MFwiLFxuICAgIEF1dHJlc0lyckxPTEYgPSBcIkF1dHJlcyBpcnIgTE9MRlwiLFxuICAgIEF1dHJlc0lyckxPTEZTUyA9IFwiQXV0cmVzIGlyciBMT0xGU1NcIixcbiAgICBDYXZhbGllcjQ1ID0gXCJDYXZhbGllciAoNDUpXCIsXG4gICAgQ2F2YWxpZXJCdWRnw6l0YWlyZSA9IFwiQ2F2YWxpZXIgYnVkZ8OpdGFpcmVcIixcbiAgICBDYXZhbGllclNvY2lhbCA9IFwiQ2F2YWxpZXIgc29jaWFsXCIsXG4gICAgQ2hhbXBEZUxIYWJpbGl0YXRpb24zOCA9IFwiQ2hhbXAgZGUgbCdoYWJpbGl0YXRpb24gKDM4KVwiLFxuICAgIENoYXJnZSA9IFwiQ2hhcmdlXCIsXG4gICAgQ21wNDUgPSBcIkNNUCAoNDUpXCIsXG4gICAgQ3LDqWRpdHMgPSBcIkNyw6lkaXRzXCIsXG4gICAgRGlzcG9zaXRpb25Sw6lnbGVtZW50YWlyZTM3ID0gXCJEaXNwb3NpdGlvbiByw6lnbGVtZW50YWlyZSAoMzcpXCIsXG4gICAgRG9tYWluZURlTGFMb2k0MSA9IFwiRG9tYWluZSBkZSBsYSBsb2kgKDQxKVwiLFxuICAgIERvbWFpbmVMb2lPcmdhbmlxdWUxMjcgPSBcIkRvbWFpbmUgbG9pIG9yZ2FuaXF1ZSAoMTI3KVwiLFxuICAgIERvdWJsb24gPSBcIkRvdWJsb25cIixcbiAgICBFbnRvbm5vaXI0NSA9IFwiRW50b25ub2lyICg0NSlcIixcbiAgICBHYWdlID0gXCJHYWdlXCIsXG4gICAgSG9yc0NoYW1wID0gXCJIb3JzIGNoYW1wXCIsXG4gICAgSG9yc0TDqWxhaXMgPSBcIkhvcnMtZMOpbGFpc1wiLFxuICAgIEluam9uY3Rpb24yMCA9IFwiSW5qb25jdGlvbiAoMjApXCIsXG4gICAgSXJyRW5QcmVtacOocmVQYXJ0aWUgPSBcIklyciBlbiBwcmVtacOocmUgcGFydGllXCIsXG4gICAgSXJyRW5TZWNvbmRlUGFydGllID0gXCJJcnIgZW4gc2Vjb25kZSBwYXJ0aWVcIixcbiAgICBMb2xmID0gXCJMT0xGXCIsXG4gICAgTG9sZnNzID0gXCJMT0xGU1NcIixcbiAgICBOb25Tb3V0ZW51ID0gXCJOb24gc291dGVudVwiLFxuICAgIE9yZHJlRHVKb3VyNDggPSBcIk9yZHJlIGR1IGpvdXIgKDQ4KVwiLFxuICAgIFIgPSBcIlJcIixcbiAgICBSYXRpZmljYXRpb25UcmFpdMOpNTMgPSBcIlJhdGlmaWNhdGlvbiB0cmFpdMOpICg1MylcIixcbiAgICBSZWpldMOpID0gXCJSZWpldMOpXCIsXG4gICAgUmV0aXLDqSA9IFwiUmV0aXLDqVwiLFxuICAgIFJldGlyw6lBcHLDqHNQdWJsaWNhdGlvbiA9IFwiUmV0aXLDqSBhcHLDqHMgcHVibGljYXRpb25cIixcbiAgICBSZXRpcsOpQXZhbnRQdWJsaWNhdGlvbiA9IFwiUmV0aXLDqSBhdmFudCBwdWJsaWNhdGlvblwiLFxuICAgIFNhdGlzZmFpdE91SW5vcMOpcmFudDQyID0gXCJTYXRpc2ZhaXQgb3UgaW5vcMOpcmFudCAoNDIpXCIsXG4gICAgU291c0FtZW5kZW1lbnQ5OCA9IFwiU291cy1hbWVuZGVtZW50ICg5OClcIixcbiAgICBUb21iw6kgPSBcIlRvbWLDqVwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpc2N1c3Npb24ge1xuICAgIFwiQHhtbG5zOnhzaVwiPzogc3RyaW5nO1xuICAgIFwiQHhzaTpuaWxcIj86ICAgc3RyaW5nO1xuICAgIGlkRGlzY3Vzc2lvbj86IHN0cmluZztcbiAgICB0eXBlUG9zaXRpb24/OiBUeXBlUG9zaXRpb247XG59XG5cbmV4cG9ydCBlbnVtIFR5cGVQb3NpdGlvbiB7XG4gICAgRGVybmllciA9IFwiRGVybmllclwiLFxuICAgIE1pbGlldSA9IFwiTWlsaWV1XCIsXG4gICAgUHJlbWllciA9IFwiUHJlbWllclwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aWZpY2F0aW9uIHtcbiAgICBudW1lcm9Mb25nOiAgICAgICAgICBzdHJpbmc7XG4gICAgbnVtZXJvT3JkcmVEZXBvdDogICAgc3RyaW5nO1xuICAgIHByZWZpeGVPcmdhbmVFeGFtZW46IHN0cmluZztcbiAgICBudW1lcm9SZWN0OiAgICAgICAgICBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9pUmVmZXJlbmNlIHtcbiAgICBcIkB4bWxuczp4c2lcIj86ICAgIHN0cmluZztcbiAgICBcIkB4c2k6bmlsXCI/OiAgICAgIHN0cmluZztcbiAgICBjb2RlTG9pPzogICAgICAgICBBbWVuZGVtZW50UGFyZW50UmVmQ2xhc3MgfCBudWxsIHwgc3RyaW5nO1xuICAgIGRpdmlzaW9uQ29kZUxvaT86IEFtZW5kZW1lbnRQYXJlbnRSZWZDbGFzcyB8IG51bGwgfCBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9pbnRldXJGcmFnbWVudFRleHRlIHtcbiAgICBwYXJ0aWVBbWVuZGFibGVSZWY6ICBBbWVuZGVtZW50UGFyZW50UmVmQ2xhc3M7XG4gICAgZGl2aXNpb24/OiAgICAgICAgICAgRGl2aXNpb247XG4gICAgYW1lbmRlbWVudFN0YW5kYXJkPzogQW1lbmRlbWVudFN0YW5kYXJkO1xuICAgIG1pc3Npb25WaXNlZT86ICAgICAgIE1pc3Npb25WaXNlZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBbWVuZGVtZW50U3RhbmRhcmQge1xuICAgIGFsaW5lYTogQWxpbmVhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFsaW5lYSB7XG4gICAgXCJAeG1sbnM6eHNpXCI/OiAgICAgIHN0cmluZztcbiAgICBcIkB4c2k6bmlsXCI/OiAgICAgICAgc3RyaW5nO1xuICAgIGF2YW50X0FfQXByZXM/OiAgICAgQW1lbmRlbWVudFBhcmVudFJlZkNsYXNzIHwgbnVsbCB8IHN0cmluZztcbiAgICBudW1lcm8/OiAgICAgICAgICAgIEFtZW5kZW1lbnRQYXJlbnRSZWZDbGFzcyB8IHN0cmluZztcbiAgICBhbGluZWFEZXNpZ25hdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXZpc2lvbiB7XG4gICAgdGl0cmU6ICAgICAgICAgICAgICAgICAgICBudWxsIHwgc3RyaW5nO1xuICAgIGFydGljbGVEZXNpZ25hdGlvbkNvdXJ0ZTogbnVsbCB8IHN0cmluZztcbiAgICBhcnRpY2xlRGVzaWduYXRpb246ICAgICAgIG51bGwgfCBzdHJpbmc7XG4gICAgdHlwZTogICAgICAgICAgICAgICAgICAgICBEaXZpc2lvblR5cGU7XG4gICAgYXZhbnRfQV9BcHJlczogICAgICAgICAgICBBdmFudEFBcHJlcztcbiAgICBkaXZpc2lvblJhdHRhY2hlZTogICAgICAgIEFtZW5kZW1lbnRQYXJlbnRSZWZDbGFzcyB8IHN0cmluZztcbiAgICBhcnRpY2xlQWRkaXRpb25uZWw6ICAgICAgIHN0cmluZztcbiAgICBjaGFwaXRyZUFkZGl0aW9ubmVsOiAgICAgIHN0cmluZztcbiAgICB1cmxEaXZpc2lvblRleHRlVmlzZTogICAgIEFtZW5kZW1lbnRQYXJlbnRSZWZDbGFzcyB8IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gQXZhbnRBQXByZXMge1xuICAgIEEgPSBcIkFcIixcbiAgICBBcHLDqHMgPSBcIkFwcsOoc1wiLFxuICAgIEF2YW50ID0gXCJBdmFudFwiLFxufVxuXG5leHBvcnQgZW51bSBEaXZpc2lvblR5cGUge1xuICAgIEFubmV4ZSA9IFwiQU5ORVhFXCIsXG4gICAgQXJ0aWNsZSA9IFwiQVJUSUNMRVwiLFxuICAgIENoYXBpdHJlID0gXCJDSEFQSVRSRVwiLFxuICAgIFRpdHJlID0gXCJUSVRSRVwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1pc3Npb25WaXNlZSB7XG4gICAgY29kZUV0YXQ6ICAgICAgICAgIENvZGVFdGF0O1xuICAgIGNvZGVNaXNzaW9uTWluZWZpOiBzdHJpbmc7XG4gICAgbGliZWxsZU1pc3Npb246ICAgIHN0cmluZztcbiAgICBtaXNzaW9uUmVmOiAgICAgICAgc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBDb2RlRXRhdCB7XG4gICAgQiA9IFwiQlwiLFxuICAgIEMgPSBcIkNcIixcbiAgICBEID0gXCJEXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwcmVzZW50YXRpb25zIHtcbiAgICByZXByZXNlbnRhdGlvbjogUmVwcmVzZW50YXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwcmVzZW50YXRpb24ge1xuICAgIG5vbTogICAgICAgICAgICAgICAgICAgICBOb207XG4gICAgdHlwZU1pbWU6ICAgICAgICAgICAgICAgIFR5cGVNSU1FO1xuICAgIHN0YXR1dFJlcHJlc2VudGF0aW9uOiAgICBTdGF0dXRSZXByZXNlbnRhdGlvbjtcbiAgICByZXBTb3VyY2U6ICAgICAgICAgICAgICAgQW1lbmRlbWVudFBhcmVudFJlZkNsYXNzO1xuICAgIG9mZnNldDogICAgICAgICAgICAgICAgICBBbWVuZGVtZW50UGFyZW50UmVmQ2xhc3M7XG4gICAgY29udGVudTogICAgICAgICAgICAgICAgIENvbnRlbnU7XG4gICAgZGF0ZURpc3BvUmVwcmVzZW50YXRpb246IEFtZW5kZW1lbnRQYXJlbnRSZWZDbGFzcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZW51IHtcbiAgICBkb2N1bWVudFVSSTogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBOb20ge1xuICAgIFBERiA9IFwiUERGXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdHV0UmVwcmVzZW50YXRpb24ge1xuICAgIHZlcmJhdGltOiAgICAgICBzdHJpbmc7XG4gICAgY2Fub25pcXVlOiAgICAgIHN0cmluZztcbiAgICBvZmZpY2llbGxlOiAgICAgc3RyaW5nO1xuICAgIHRyYW5zY3JpcHRpb246ICBzdHJpbmc7XG4gICAgZW5yZWdpc3RyZW1lbnQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlTUlNRSB7XG4gICAgdHlwZTogICAgVHlwZU1JTUVUeXBlO1xuICAgIHN1YlR5cGU6IE5vbTtcbn1cblxuZXhwb3J0IGVudW0gVHlwZU1JTUVUeXBlIHtcbiAgICBBcHBsaWNhdGlvbiA9IFwiYXBwbGljYXRpb25cIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduYXRhaXJlcyB7XG4gICAgYXV0ZXVyOiAgICAgICAgQXV0ZXVyO1xuICAgIGNvc2lnbmF0YWlyZXM6IENvc2lnbmF0YWlyZXM7XG4gICAgc3VmZml4ZTogICAgICAgQW1lbmRlbWVudFBhcmVudFJlZkNsYXNzIHwgc3RyaW5nO1xuICAgIGxpYmVsbGU6ICAgICAgIG51bGwgfCBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0ZXVyIHtcbiAgICB0eXBlQXV0ZXVyOiAgICAgICAgICAgICAgICBUeXBlQXV0ZXVyO1xuICAgIGdvdXZlcm5lbWVudFJlZjogICAgICAgICAgIEFtZW5kZW1lbnRQYXJlbnRSZWZDbGFzcyB8IHN0cmluZztcbiAgICBhY3RldXJSZWY6ICAgICAgICAgICAgICAgICBBbWVuZGVtZW50UGFyZW50UmVmQ2xhc3MgfCBzdHJpbmc7XG4gICAgZ3JvdXBlUG9saXRpcXVlUmVmOiAgICAgICAgQW1lbmRlbWVudFBhcmVudFJlZkNsYXNzIHwgc3RyaW5nO1xuICAgIGF1dGV1clJhcHBvcnRldXJPcmdhbmVSZWY6IEFtZW5kZW1lbnRQYXJlbnRSZWZDbGFzcyB8IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gVHlwZUF1dGV1ciB7XG4gICAgRMOpcHV0w6kgPSBcIkTDqXB1dMOpXCIsXG4gICAgR291dmVybmVtZW50ID0gXCJHb3V2ZXJuZW1lbnRcIixcbiAgICBSYXBwb3J0ZXVyID0gXCJSYXBwb3J0ZXVyXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29zaWduYXRhaXJlcyB7XG4gICAgXCJAeG1sbnM6eHNpXCI/OiBzdHJpbmc7XG4gICAgXCJAeHNpOm5pbFwiPzogICBzdHJpbmc7XG4gICAgYWN0ZXVyUmVmPzogICAgc3RyaW5nW10gfCBzdHJpbmc7XG59XG5cbi8vIENvbnZlcnRzIEpTT04gc3RyaW5ncyB0by9mcm9tIHlvdXIgdHlwZXNcbi8vIGFuZCBhc3NlcnRzIHRoZSByZXN1bHRzIG9mIEpTT04ucGFyc2UgYXQgcnVudGltZVxuZXhwb3J0IGNsYXNzIENvbnZlcnQge1xuICAgIHB1YmxpYyBzdGF0aWMgdG9BbWVuZGVtZW50cyhqc29uOiBzdHJpbmcpOiBBbWVuZGVtZW50cyB7XG4gICAgICAgIHJldHVybiBjYXN0KEpTT04ucGFyc2UoanNvbiksIHIoXCJBbWVuZGVtZW50c1wiKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBhbWVuZGVtZW50c1RvSnNvbih2YWx1ZTogQW1lbmRlbWVudHMpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodW5jYXN0KHZhbHVlLCByKFwiQW1lbmRlbWVudHNcIikpLCBudWxsLCAyKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHRvVGV4dGVMZWdpc2xhdGlmKGpzb246IHN0cmluZyk6IFRleHRlTGVnaXNsYXRpZiB7XG4gICAgICAgIHJldHVybiBjYXN0KEpTT04ucGFyc2UoanNvbiksIHIoXCJUZXh0ZUxlZ2lzbGF0aWZcIikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgdGV4dGVMZWdpc2xhdGlmVG9Kc29uKHZhbHVlOiBUZXh0ZUxlZ2lzbGF0aWYpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodW5jYXN0KHZhbHVlLCByKFwiVGV4dGVMZWdpc2xhdGlmXCIpKSwgbnVsbCwgMik7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyB0b0FtZW5kZW1lbnRXcmFwcGVyKGpzb246IHN0cmluZyk6IEFtZW5kZW1lbnRXcmFwcGVyIHtcbiAgICAgICAgcmV0dXJuIGNhc3QoSlNPTi5wYXJzZShqc29uKSwgcihcIkFtZW5kZW1lbnRXcmFwcGVyXCIpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGFtZW5kZW1lbnRXcmFwcGVyVG9Kc29uKHZhbHVlOiBBbWVuZGVtZW50V3JhcHBlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh1bmNhc3QodmFsdWUsIHIoXCJBbWVuZGVtZW50V3JhcHBlclwiKSksIG51bGwsIDIpO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gaW52YWxpZFZhbHVlKHR5cDogYW55LCB2YWw6IGFueSwga2V5OiBhbnkgPSAnJyk6IG5ldmVyIHtcbiAgICBpZiAoa2V5KSB7XG4gICAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIHZhbHVlIGZvciBrZXkgXCIke2tleX1cIi4gRXhwZWN0ZWQgdHlwZSAke0pTT04uc3RyaW5naWZ5KHR5cCl9IGJ1dCBnb3QgJHtKU09OLnN0cmluZ2lmeSh2YWwpfWApO1xuICAgIH1cbiAgICB0aHJvdyBFcnJvcihgSW52YWxpZCB2YWx1ZSAke0pTT04uc3RyaW5naWZ5KHZhbCl9IGZvciB0eXBlICR7SlNPTi5zdHJpbmdpZnkodHlwKX1gLCApO1xufVxuXG5mdW5jdGlvbiBqc29uVG9KU1Byb3BzKHR5cDogYW55KTogYW55IHtcbiAgICBpZiAodHlwLmpzb25Ub0pTID09PSB1bmRl