UNPKG

@tricoteuses/assemblee

Version:

Retrieve, clean up & handle French Assemblée nationale's open data

205 lines (204 loc) 24.5 kB
"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.from.js"); require("core-js/modules/es.array.iterator.js"); require("core-js/modules/es.array.slice.js"); require("core-js/modules/es.date.to-string.js"); require("core-js/modules/es.function.name.js"); require("core-js/modules/es.object.define-property.js"); require("core-js/modules/es.object.to-string.js"); require("core-js/modules/es.regexp.exec.js"); require("core-js/modules/es.regexp.to-string.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.cleanDocumentOrDivision = cleanDocumentOrDivision; require("core-js/modules/es.array.is-array.js"); require("core-js/modules/es.object.get-own-property-names.js"); var _assert = _interopRequireDefault(require("assert")); var _xml = require("./xml"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function cleanDocumentOrDivision(d) { var _d$metadatas; (0, _xml.cleanXmlArtefacts)(d); if (((_d$metadatas = d.metadatas) === null || _d$metadatas === void 0 ? void 0 : _d$metadatas.dateSuppression) !== undefined) { // Delete document var _iterator = _createForOfIteratorHelper(Object.getOwnPropertyNames(d)), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var key = _step.value; delete d[key]; } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } return; } var xsiType = d["@xsi:type"]; if (xsiType !== undefined) { d.xsiType = xsiType; delete d["@xsi:type"]; } var cycleDeVie = d.cycleDeVie; (0, _assert["default"])(cycleDeVie); { var chrono = cycleDeVie.chrono; (0, _assert["default"])(chrono); (0, _xml.cleanXmlArtefacts)(chrono); } var divisions = d.divisions; if (divisions !== undefined) { divisions = divisions.division; if (!Array.isArray(divisions)) { (0, _assert["default"])(divisions); divisions = [divisions]; } d.divisions = divisions; var _iterator2 = _createForOfIteratorHelper(divisions), _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { var division = _step2.value; cleanDocumentOrDivision(division); } } catch (err) { _iterator2.e(err); } finally { _iterator2.f(); } } _assert["default"].strictEqual(d.redacteur, undefined); var classification = d.classification; (0, _assert["default"])(classification); (0, _xml.cleanXmlArtefacts)(classification); var auteurs = d.auteurs; if (auteurs !== undefined) { auteurs = auteurs.auteur; if (!Array.isArray(auteurs)) { (0, _assert["default"])(auteurs); auteurs = [auteurs]; } d.auteurs = auteurs; var _iterator3 = _createForOfIteratorHelper(auteurs), _step3; try { for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { var auteur = _step3.value; var organeRef = auteur.organe; if (organeRef !== undefined) { auteur.organeRef = organeRef.organeRef; delete auteur.organe; } } } catch (err) { _iterator3.e(err); } finally { _iterator3.f(); } } var notice = d.notice; { (0, _xml.cleanBooleanAttribute)(notice, "adoptionConforme"); } var coSignataires = d.coSignataires; if (coSignataires !== undefined) { coSignataires = coSignataires.coSignataire; if (!Array.isArray(coSignataires)) { (0, _assert["default"])(coSignataires); coSignataires = [coSignataires]; } d.coSignataires = coSignataires; var _iterator4 = _createForOfIteratorHelper(coSignataires), _step4; try { for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { var coSignataire = _step4.value; (0, _xml.cleanXmlArtefacts)(coSignataire); (0, _xml.cleanBooleanAttribute)(coSignataire, "edite"); var acteurRef = coSignataire.acteur; if (acteurRef !== undefined) { acteurRef = acteurRef.acteurRef; (0, _assert["default"])(acteurRef); delete coSignataire.acteur; coSignataire.acteurRef = acteurRef; } var organe = coSignataire.organe; if (organe !== undefined) { (0, _xml.cleanBooleanAttribute)(organe, "etApparentes"); } } } catch (err) { _iterator4.e(err); } finally { _iterator4.f(); } } var depotAmendements = d.depotAmendements; if (depotAmendements !== undefined) { (0, _xml.cleanXmlArtefacts)(depotAmendements); var amendementsSeance = depotAmendements.amendementsSeance; { (0, _xml.cleanXmlArtefacts)(amendementsSeance); (0, _xml.cleanBooleanAttribute)(amendementsSeance, "amendable"); } var amendementsCommission = depotAmendements.amendementsCommission; if (amendementsCommission !== undefined) { amendementsCommission = amendementsCommission.commission; if (!Array.isArray(amendementsCommission)) { (0, _assert["default"])(amendementsCommission); amendementsCommission = [amendementsCommission]; } depotAmendements.amendementsCommission = amendementsCommission; var _iterator5 = _createForOfIteratorHelper(amendementsCommission), _step5; try { for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { var commision = _step5.value; (0, _xml.cleanXmlArtefacts)(commision); (0, _xml.cleanBooleanAttribute)(commision, "amendable"); _assert["default"].strictEqual(commision.dateLimiteDepot, undefined); } } catch (err) { _iterator5.e(err); } finally { _iterator5.f(); } } } var imprimerie = d.imprimerie; if (imprimerie !== undefined) { (0, _xml.cleanXmlArtefacts)(imprimerie); var dian = imprimerie.DIAN; if (dian !== undefined) { delete imprimerie.DIAN; imprimerie.dian = dian; } var isbn = imprimerie.ISBN; if (isbn !== undefined) { delete imprimerie.ISBN; imprimerie.isbn = isbn; } _assert["default"].strictEqual(imprimerie.ISSN, undefined); } (0, _xml.cleanBooleanAttribute)(d, "rapportPublie"); var organesReferents = d.organesReferents; if (organesReferents !== undefined) { organesReferents = organesReferents.organeRef; if (!Array.isArray(organesReferents)) { (0, _assert["default"])(organesReferents); organesReferents = [organesReferents]; } d.organesReferents = organesReferents; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfeG1sIiwiZSIsIl9fZXNNb2R1bGUiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsInIiLCJ0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJsZW5ndGgiLCJfbiIsIkYiLCJzIiwibiIsImRvbmUiLCJ2YWx1ZSIsImYiLCJUeXBlRXJyb3IiLCJvIiwiYSIsInUiLCJjYWxsIiwibmV4dCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiY2xlYW5Eb2N1bWVudE9yRGl2aXNpb24iLCJkIiwiX2QkbWV0YWRhdGFzIiwiY2xlYW5YbWxBcnRlZmFjdHMiLCJtZXRhZGF0YXMiLCJkYXRlU3VwcHJlc3Npb24iLCJ1bmRlZmluZWQiLCJfaXRlcmF0b3IiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwiX3N0ZXAiLCJrZXkiLCJlcnIiLCJ4c2lUeXBlIiwiY3ljbGVEZVZpZSIsImFzc2VydCIsImNocm9ubyIsImRpdmlzaW9ucyIsImRpdmlzaW9uIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsInN0cmljdEVxdWFsIiwicmVkYWN0ZXVyIiwiY2xhc3NpZmljYXRpb24iLCJhdXRldXJzIiwiYXV0ZXVyIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsIm9yZ2FuZVJlZiIsIm9yZ2FuZSIsIm5vdGljZSIsImNsZWFuQm9vbGVhbkF0dHJpYnV0ZSIsImNvU2lnbmF0YWlyZXMiLCJjb1NpZ25hdGFpcmUiLCJfaXRlcmF0b3I0IiwiX3N0ZXA0IiwiYWN0ZXVyUmVmIiwiYWN0ZXVyIiwiZGVwb3RBbWVuZGVtZW50cyIsImFtZW5kZW1lbnRzU2VhbmNlIiwiYW1lbmRlbWVudHNDb21taXNzaW9uIiwiY29tbWlzc2lvbiIsIl9pdGVyYXRvcjUiLCJfc3RlcDUiLCJjb21taXNpb24iLCJkYXRlTGltaXRlRGVwb3QiLCJpbXByaW1lcmllIiwiZGlhbiIsIkRJQU4iLCJpc2JuIiwiSVNCTiIsIklTU04iLCJvcmdhbmVzUmVmZXJlbnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsZWFuZXJzL2RvY3VtZW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIlxuXG5pbXBvcnQgeyBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUsIGNsZWFuWG1sQXJ0ZWZhY3RzIH0gZnJvbSBcIi4veG1sXCJcblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFuRG9jdW1lbnRPckRpdmlzaW9uKGQ6IGFueSk6IHZvaWQge1xuICBjbGVhblhtbEFydGVmYWN0cyhkKVxuXG4gIGlmIChkLm1ldGFkYXRhcz8uZGF0ZVN1cHByZXNzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAvLyBEZWxldGUgZG9jdW1lbnRcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhkKSkge1xuICAgICAgZGVsZXRlIGRba2V5XVxuICAgIH1cbiAgICByZXR1cm5cbiAgfVxuXG4gIGNvbnN0IHhzaVR5cGUgPSBkW1wiQHhzaTp0eXBlXCJdXG4gIGlmICh4c2lUeXBlICE9PSB1bmRlZmluZWQpIHtcbiAgICBkLnhzaVR5cGUgPSB4c2lUeXBlXG4gICAgZGVsZXRlIGRbXCJAeHNpOnR5cGVcIl1cbiAgfVxuXG4gIGNvbnN0IGN5Y2xlRGVWaWUgPSBkLmN5Y2xlRGVWaWVcbiAgYXNzZXJ0KGN5Y2xlRGVWaWUpXG4gIHtcbiAgICBjb25zdCBjaHJvbm8gPSBjeWNsZURlVmllLmNocm9ub1xuICAgIGFzc2VydChjaHJvbm8pXG4gICAgY2xlYW5YbWxBcnRlZmFjdHMoY2hyb25vKVxuICB9XG5cbiAgbGV0IGRpdmlzaW9ucyA9IGQuZGl2aXNpb25zXG4gIGlmIChkaXZpc2lvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgIGRpdmlzaW9ucyA9IGRpdmlzaW9ucy5kaXZpc2lvblxuICAgIGlmICghQXJyYXkuaXNBcnJheShkaXZpc2lvbnMpKSB7XG4gICAgICBhc3NlcnQoZGl2aXNpb25zKVxuICAgICAgZGl2aXNpb25zID0gW2RpdmlzaW9uc11cbiAgICB9XG4gICAgZC5kaXZpc2lvbnMgPSBkaXZpc2lvbnNcbiAgICBmb3IgKGNvbnN0IGRpdmlzaW9uIG9mIGRpdmlzaW9ucykge1xuICAgICAgY2xlYW5Eb2N1bWVudE9yRGl2aXNpb24oZGl2aXNpb24pXG4gICAgfVxuICB9XG5cbiAgYXNzZXJ0LnN0cmljdEVxdWFsKGQucmVkYWN0ZXVyLCB1bmRlZmluZWQpXG5cbiAgY29uc3QgY2xhc3NpZmljYXRpb24gPSBkLmNsYXNzaWZpY2F0aW9uXG4gIGFzc2VydChjbGFzc2lmaWNhdGlvbilcbiAgY2xlYW5YbWxBcnRlZmFjdHMoY2xhc3NpZmljYXRpb24pXG5cbiAgbGV0IGF1dGV1cnMgPSBkLmF1dGV1cnNcbiAgaWYgKGF1dGV1cnMgIT09IHVuZGVmaW5lZCkge1xuICAgIGF1dGV1cnMgPSBhdXRldXJzLmF1dGV1clxuICAgIGlmICghQXJyYXkuaXNBcnJheShhdXRldXJzKSkge1xuICAgICAgYXNzZXJ0KGF1dGV1cnMpXG4gICAgICBhdXRldXJzID0gW2F1dGV1cnNdXG4gICAgfVxuICAgIGQuYXV0ZXVycyA9IGF1dGV1cnNcbiAgICBmb3IgKGNvbnN0IGF1dGV1ciBvZiBhdXRldXJzKSB7XG4gICAgICBsZXQgb3JnYW5lUmVmID0gYXV0ZXVyLm9yZ2FuZVxuICAgICAgaWYgKG9yZ2FuZVJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGF1dGV1ci5vcmdhbmVSZWYgPSBvcmdhbmVSZWYub3JnYW5lUmVmXG4gICAgICAgIGRlbGV0ZSBhdXRldXIub3JnYW5lXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgbm90aWNlID0gZC5ub3RpY2VcbiAge1xuICAgIGNsZWFuQm9vbGVhbkF0dHJpYnV0ZShub3RpY2UsIFwiYWRvcHRpb25Db25mb3JtZVwiKVxuICB9XG5cbiAgbGV0IGNvU2lnbmF0YWlyZXMgPSBkLmNvU2lnbmF0YWlyZXNcbiAgaWYgKGNvU2lnbmF0YWlyZXMgIT09IHVuZGVmaW5lZCkge1xuICAgIGNvU2lnbmF0YWlyZXMgPSBjb1NpZ25hdGFpcmVzLmNvU2lnbmF0YWlyZVxuICAgIGlmICghQXJyYXkuaXNBcnJheShjb1NpZ25hdGFpcmVzKSkge1xuICAgICAgYXNzZXJ0KGNvU2lnbmF0YWlyZXMpXG4gICAgICBjb1NpZ25hdGFpcmVzID0gW2NvU2lnbmF0YWlyZXNdXG4gICAgfVxuICAgIGQuY29TaWduYXRhaXJlcyA9IGNvU2lnbmF0YWlyZXNcbiAgICBmb3IgKGNvbnN0IGNvU2lnbmF0YWlyZSBvZiBjb1NpZ25hdGFpcmVzKSB7XG4gICAgICBjbGVhblhtbEFydGVmYWN0cyhjb1NpZ25hdGFpcmUpXG5cbiAgICAgIGNsZWFuQm9vbGVhbkF0dHJpYnV0ZShjb1NpZ25hdGFpcmUsIFwiZWRpdGVcIilcblxuICAgICAgbGV0IGFjdGV1clJlZiA9IGNvU2lnbmF0YWlyZS5hY3RldXJcbiAgICAgIGlmIChhY3RldXJSZWYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBhY3RldXJSZWYgPSBhY3RldXJSZWYuYWN0ZXVyUmVmXG4gICAgICAgIGFzc2VydChhY3RldXJSZWYpXG4gICAgICAgIGRlbGV0ZSBjb1NpZ25hdGFpcmUuYWN0ZXVyXG4gICAgICAgIGNvU2lnbmF0YWlyZS5hY3RldXJSZWYgPSBhY3RldXJSZWZcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb3JnYW5lID0gY29TaWduYXRhaXJlLm9yZ2FuZVxuICAgICAgaWYgKG9yZ2FuZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNsZWFuQm9vbGVhbkF0dHJpYnV0ZShvcmdhbmUsIFwiZXRBcHBhcmVudGVzXCIpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZGVwb3RBbWVuZGVtZW50cyA9IGQuZGVwb3RBbWVuZGVtZW50c1xuICBpZiAoZGVwb3RBbWVuZGVtZW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY2xlYW5YbWxBcnRlZmFjdHMoZGVwb3RBbWVuZGVtZW50cylcblxuICAgIGNvbnN0IGFtZW5kZW1lbnRzU2VhbmNlID0gZGVwb3RBbWVuZGVtZW50cy5hbWVuZGVtZW50c1NlYW5jZVxuICAgIHtcbiAgICAgIGNsZWFuWG1sQXJ0ZWZhY3RzKGFtZW5kZW1lbnRzU2VhbmNlKVxuXG4gICAgICBjbGVhbkJvb2xlYW5BdHRyaWJ1dGUoYW1lbmRlbWVudHNTZWFuY2UsIFwiYW1lbmRhYmxlXCIpXG4gICAgfVxuXG4gICAgbGV0IGFtZW5kZW1lbnRzQ29tbWlzc2lvbiA9IGRlcG90QW1lbmRlbWVudHMuYW1lbmRlbWVudHNDb21taXNzaW9uXG4gICAgaWYgKGFtZW5kZW1lbnRzQ29tbWlzc2lvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhbWVuZGVtZW50c0NvbW1pc3Npb24gPSBhbWVuZGVtZW50c0NvbW1pc3Npb24uY29tbWlzc2lvblxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGFtZW5kZW1lbnRzQ29tbWlzc2lvbikpIHtcbiAgICAgICAgYXNzZXJ0KGFtZW5kZW1lbnRzQ29tbWlzc2lvbilcbiAgICAgICAgYW1lbmRlbWVudHNDb21taXNzaW9uID0gW2FtZW5kZW1lbnRzQ29tbWlzc2lvbl1cbiAgICAgIH1cbiAgICAgIGRlcG90QW1lbmRlbWVudHMuYW1lbmRlbWVudHNDb21taXNzaW9uID0gYW1lbmRlbWVudHNDb21taXNzaW9uXG4gICAgICBmb3IgKGNvbnN0IGNvbW1pc2lvbiBvZiBhbWVuZGVtZW50c0NvbW1pc3Npb24pIHtcbiAgICAgICAgY2xlYW5YbWxBcnRlZmFjdHMoY29tbWlzaW9uKVxuXG4gICAgICAgIGNsZWFuQm9vbGVhbkF0dHJpYnV0ZShjb21taXNpb24sIFwiYW1lbmRhYmxlXCIpXG5cbiAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvbW1pc2lvbi5kYXRlTGltaXRlRGVwb3QsIHVuZGVmaW5lZClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBpbXByaW1lcmllID0gZC5pbXByaW1lcmllXG4gIGlmIChpbXByaW1lcmllICE9PSB1bmRlZmluZWQpIHtcbiAgICBjbGVhblhtbEFydGVmYWN0cyhpbXByaW1lcmllKVxuXG4gICAgY29uc3QgZGlhbiA9IGltcHJpbWVyaWUuRElBTlxuICAgIGlmIChkaWFuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlbGV0ZSBpbXByaW1lcmllLkRJQU5cbiAgICAgIGltcHJpbWVyaWUuZGlhbiA9IGRpYW5cbiAgICB9XG5cbiAgICBjb25zdCBpc2JuID0gaW1wcmltZXJpZS5JU0JOXG4gICAgaWYgKGlzYm4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVsZXRlIGltcHJpbWVyaWUuSVNCTlxuICAgICAgaW1wcmltZXJpZS5pc2JuID0gaXNiblxuICAgIH1cblxuICAgIGFzc2VydC5zdHJpY3RFcXVhbChpbXByaW1lcmllLklTU04sIHVuZGVmaW5lZClcbiAgfVxuXG4gIGNsZWFuQm9vbGVhbkF0dHJpYnV0ZShkLCBcInJhcHBvcnRQdWJsaWVcIilcblxuICBsZXQgb3JnYW5lc1JlZmVyZW50cyA9IGQub3JnYW5lc1JlZmVyZW50c1xuICBpZiAob3JnYW5lc1JlZmVyZW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgb3JnYW5lc1JlZmVyZW50cyA9IG9yZ2FuZXNSZWZlcmVudHMub3JnYW5lUmVmXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG9yZ2FuZXNSZWZlcmVudHMpKSB7XG4gICAgICBhc3NlcnQob3JnYW5lc1JlZmVyZW50cylcbiAgICAgIG9yZ2FuZXNSZWZlcmVudHMgPSBbb3JnYW5lc1JlZmVyZW50c11cbiAgICB9XG4gICAgZC5vcmdhbmVzUmVmZXJlbnRzID0gb3JnYW5lc1JlZmVyZW50c1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxJQUFBLEdBQUFELE9BQUE7QUFBZ0UsU0FBQUQsdUJBQUFHLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxnQkFBQUEsQ0FBQTtBQUFBLFNBQUFFLDJCQUFBQyxDQUFBLEVBQUFILENBQUEsUUFBQUksQ0FBQSx5QkFBQUMsTUFBQSxJQUFBRixDQUFBLENBQUFFLE1BQUEsQ0FBQUMsUUFBQSxLQUFBSCxDQUFBLHFCQUFBQyxDQUFBLFFBQUFHLEtBQUEsQ0FBQUMsT0FBQSxDQUFBTCxDQUFBLE1BQUFDLENBQUEsR0FBQUssMkJBQUEsQ0FBQU4sQ0FBQSxNQUFBSCxDQUFBLElBQUFHLENBQUEsdUJBQUFBLENBQUEsQ0FBQU8sTUFBQSxJQUFBTixDQUFBLEtBQUFELENBQUEsR0FBQUMsQ0FBQSxPQUFBTyxFQUFBLE1BQUFDLENBQUEsWUFBQUEsRUFBQSxlQUFBQyxDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxXQUFBQSxFQUFBLFdBQUFILEVBQUEsSUFBQVIsQ0FBQSxDQUFBTyxNQUFBLEtBQUFLLElBQUEsV0FBQUEsSUFBQSxNQUFBQyxLQUFBLEVBQUFiLENBQUEsQ0FBQVEsRUFBQSxVQUFBWCxDQUFBLFdBQUFBLEVBQUFHLENBQUEsVUFBQUEsQ0FBQSxLQUFBYyxDQUFBLEVBQUFMLENBQUEsZ0JBQUFNLFNBQUEsaUpBQUFDLENBQUEsRUFBQUMsQ0FBQSxPQUFBQyxDQUFBLGdCQUFBUixDQUFBLFdBQUFBLEVBQUEsSUFBQVQsQ0FBQSxHQUFBQSxDQUFBLENBQUFrQixJQUFBLENBQUFuQixDQUFBLE1BQUFXLENBQUEsV0FBQUEsRUFBQSxRQUFBWCxDQUFBLEdBQUFDLENBQUEsQ0FBQW1CLElBQUEsV0FBQUgsQ0FBQSxHQUFBakIsQ0FBQSxDQUFBWSxJQUFBLEVBQUFaLENBQUEsS0FBQUgsQ0FBQSxXQUFBQSxFQUFBRyxDQUFBLElBQUFrQixDQUFBLE9BQUFGLENBQUEsR0FBQWhCLENBQUEsS0FBQWMsQ0FBQSxXQUFBQSxFQUFBLFVBQUFHLENBQUEsWUFBQWhCLENBQUEsY0FBQUEsQ0FBQSw4QkFBQWlCLENBQUEsUUFBQUYsQ0FBQTtBQUFBLFNBQUFWLDRCQUFBTixDQUFBLEVBQUFpQixDQUFBLFFBQUFqQixDQUFBLDJCQUFBQSxDQUFBLFNBQUFxQixpQkFBQSxDQUFBckIsQ0FBQSxFQUFBaUIsQ0FBQSxPQUFBaEIsQ0FBQSxNQUFBcUIsUUFBQSxDQUFBSCxJQUFBLENBQUFuQixDQUFBLEVBQUF1QixLQUFBLDZCQUFBdEIsQ0FBQSxJQUFBRCxDQUFBLENBQUF3QixXQUFBLEtBQUF2QixDQUFBLEdBQUFELENBQUEsQ0FBQXdCLFdBQUEsQ0FBQUMsSUFBQSxhQUFBeEIsQ0FBQSxjQUFBQSxDQUFBLEdBQUFHLEtBQUEsQ0FBQXNCLElBQUEsQ0FBQTFCLENBQUEsb0JBQUFDLENBQUEsK0NBQUEwQixJQUFBLENBQUExQixDQUFBLElBQUFvQixpQkFBQSxDQUFBckIsQ0FBQSxFQUFBaUIsQ0FBQTtBQUFBLFNBQUFJLGtCQUFBckIsQ0FBQSxFQUFBaUIsQ0FBQSxhQUFBQSxDQUFBLElBQUFBLENBQUEsR0FBQWpCLENBQUEsQ0FBQU8sTUFBQSxNQUFBVSxDQUFBLEdBQUFqQixDQUFBLENBQUFPLE1BQUEsWUFBQVYsQ0FBQSxNQUFBYyxDQUFBLEdBQUFQLEtBQUEsQ0FBQWEsQ0FBQSxHQUFBcEIsQ0FBQSxHQUFBb0IsQ0FBQSxFQUFBcEIsQ0FBQSxJQUFBYyxDQUFBLENBQUFkLENBQUEsSUFBQUcsQ0FBQSxDQUFBSCxDQUFBLFVBQUFjLENBQUE7QUFFekQsU0FBU2lCLHVCQUF1QkEsQ0FBQ0MsQ0FBTSxFQUFRO0VBQUEsSUFBQUMsWUFBQTtFQUNwRCxJQUFBQyxzQkFBaUIsRUFBQ0YsQ0FBQyxDQUFDO0VBRXBCLElBQUksRUFBQUMsWUFBQSxHQUFBRCxDQUFDLENBQUNHLFNBQVMsY0FBQUYsWUFBQSx1QkFBWEEsWUFBQSxDQUFhRyxlQUFlLE1BQUtDLFNBQVMsRUFBRTtJQUM5QztJQUFBLElBQUFDLFNBQUEsR0FBQXBDLDBCQUFBLENBQ2tCcUMsTUFBTSxDQUFDQyxtQkFBbUIsQ0FBQ1IsQ0FBQyxDQUFDO01BQUFTLEtBQUE7SUFBQTtNQUEvQyxLQUFBSCxTQUFBLENBQUF6QixDQUFBLE1BQUE0QixLQUFBLEdBQUFILFNBQUEsQ0FBQXhCLENBQUEsSUFBQUMsSUFBQSxHQUFpRDtRQUFBLElBQXRDMkIsR0FBRyxHQUFBRCxLQUFBLENBQUF6QixLQUFBO1FBQ1osT0FBT2dCLENBQUMsQ0FBQ1UsR0FBRyxDQUFDO01BQ2Y7SUFBQyxTQUFBQyxHQUFBO01BQUFMLFNBQUEsQ0FBQXRDLENBQUEsQ0FBQTJDLEdBQUE7SUFBQTtNQUFBTCxTQUFBLENBQUFyQixDQUFBO0lBQUE7SUFDRDtFQUNGO0VBRUEsSUFBTTJCLE9BQU8sR0FBR1osQ0FBQyxDQUFDLFdBQVcsQ0FBQztFQUM5QixJQUFJWSxPQUFPLEtBQUtQLFNBQVMsRUFBRTtJQUN6QkwsQ0FBQyxDQUFDWSxPQUFPLEdBQUdBLE9BQU87SUFDbkIsT0FBT1osQ0FBQyxDQUFDLFdBQVcsQ0FBQztFQUN2QjtFQUVBLElBQU1hLFVBQVUsR0FBR2IsQ0FBQyxDQUFDYSxVQUFVO0VBQy9CLElBQUFDLGtCQUFNLEVBQUNELFVBQVUsQ0FBQztFQUNsQjtJQUNFLElBQU1FLE1BQU0sR0FBR0YsVUFBVSxDQUFDRSxNQUFNO0lBQ2hDLElBQUFELGtCQUFNLEVBQUNDLE1BQU0sQ0FBQztJQUNkLElBQUFiLHNCQUFpQixFQUFDYSxNQUFNLENBQUM7RUFDM0I7RUFFQSxJQUFJQyxTQUFTLEdBQUdoQixDQUFDLENBQUNnQixTQUFTO0VBQzNCLElBQUlBLFNBQVMsS0FBS1gsU0FBUyxFQUFFO0lBQzNCVyxTQUFTLEdBQUdBLFNBQVMsQ0FBQ0MsUUFBUTtJQUM5QixJQUFJLENBQUMxQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ3dDLFNBQVMsQ0FBQyxFQUFFO01BQzdCLElBQUFGLGtCQUFNLEVBQUNFLFNBQVMsQ0FBQztNQUNqQkEsU0FBUyxHQUFHLENBQUNBLFNBQVMsQ0FBQztJQUN6QjtJQUNBaEIsQ0FBQyxDQUFDZ0IsU0FBUyxHQUFHQSxTQUFTO0lBQUEsSUFBQUUsVUFBQSxHQUFBaEQsMEJBQUEsQ0FDQThDLFNBQVM7TUFBQUcsTUFBQTtJQUFBO01BQWhDLEtBQUFELFVBQUEsQ0FBQXJDLENBQUEsTUFBQXNDLE1BQUEsR0FBQUQsVUFBQSxDQUFBcEMsQ0FBQSxJQUFBQyxJQUFBLEdBQWtDO1FBQUEsSUFBdkJrQyxRQUFRLEdBQUFFLE1BQUEsQ0FBQW5DLEtBQUE7UUFDakJlLHVCQUF1QixDQUFDa0IsUUFBUSxDQUFDO01BQ25DO0lBQUMsU0FBQU4sR0FBQTtNQUFBTyxVQUFBLENBQUFsRCxDQUFBLENBQUEyQyxHQUFBO0lBQUE7TUFBQU8sVUFBQSxDQUFBakMsQ0FBQTtJQUFBO0VBQ0g7RUFFQTZCLGtCQUFNLENBQUNNLFdBQVcsQ0FBQ3BCLENBQUMsQ0FBQ3FCLFNBQVMsRUFBRWhCLFNBQVMsQ0FBQztFQUUxQyxJQUFNaUIsY0FBYyxHQUFHdEIsQ0FBQyxDQUFDc0IsY0FBYztFQUN2QyxJQUFBUixrQkFBTSxFQUFDUSxjQUFjLENBQUM7RUFDdEIsSUFBQXBCLHNCQUFpQixFQUFDb0IsY0FBYyxDQUFDO0VBRWpDLElBQUlDLE9BQU8sR0FBR3ZCLENBQUMsQ0FBQ3VCLE9BQU87RUFDdkIsSUFBSUEsT0FBTyxLQUFLbEIsU0FBUyxFQUFFO0lBQ3pCa0IsT0FBTyxHQUFHQSxPQUFPLENBQUNDLE1BQU07SUFDeEIsSUFBSSxDQUFDakQsS0FBSyxDQUFDQyxPQUFPLENBQUMrQyxPQUFPLENBQUMsRUFBRTtNQUMzQixJQUFBVCxrQkFBTSxFQUFDUyxPQUFPLENBQUM7TUFDZkEsT0FBTyxHQUFHLENBQUNBLE9BQU8sQ0FBQztJQUNyQjtJQUNBdkIsQ0FBQyxDQUFDdUIsT0FBTyxHQUFHQSxPQUFPO0lBQUEsSUFBQUUsVUFBQSxHQUFBdkQsMEJBQUEsQ0FDRXFELE9BQU87TUFBQUcsTUFBQTtJQUFBO01BQTVCLEtBQUFELFVBQUEsQ0FBQTVDLENBQUEsTUFBQTZDLE1BQUEsR0FBQUQsVUFBQSxDQUFBM0MsQ0FBQSxJQUFBQyxJQUFBLEdBQThCO1FBQUEsSUFBbkJ5QyxNQUFNLEdBQUFFLE1BQUEsQ0FBQTFDLEtBQUE7UUFDZixJQUFJMkMsU0FBUyxHQUFHSCxNQUFNLENBQUNJLE1BQU07UUFDN0IsSUFBSUQsU0FBUyxLQUFLdEIsU0FBUyxFQUFFO1VBQzNCbUIsTUFBTSxDQUFDRyxTQUFTLEdBQUdBLFNBQVMsQ0FBQ0EsU0FBUztVQUN0QyxPQUFPSCxNQUFNLENBQUNJLE1BQU07UUFDdEI7TUFDRjtJQUFDLFNBQUFqQixHQUFBO01BQUFjLFVBQUEsQ0FBQXpELENBQUEsQ0FBQTJDLEdBQUE7SUFBQTtNQUFBYyxVQUFBLENBQUF4QyxDQUFBO0lBQUE7RUFDSDtFQUVBLElBQU00QyxNQUFNLEdBQUc3QixDQUFDLENBQUM2QixNQUFNO0VBQ3ZCO0lBQ0UsSUFBQUMsMEJBQXFCLEVBQUNELE1BQU0sRUFBRSxrQkFBa0IsQ0FBQztFQUNuRDtFQUVBLElBQUlFLGFBQWEsR0FBRy9CLENBQUMsQ0FBQytCLGFBQWE7RUFDbkMsSUFBSUEsYUFBYSxLQUFLMUIsU0FBUyxFQUFFO0lBQy9CMEIsYUFBYSxHQUFHQSxhQUFhLENBQUNDLFlBQVk7SUFDMUMsSUFBSSxDQUFDekQsS0FBSyxDQUFDQyxPQUFPLENBQUN1RCxhQUFhLENBQUMsRUFBRTtNQUNqQyxJQUFBakIsa0JBQU0sRUFBQ2lCLGFBQWEsQ0FBQztNQUNyQkEsYUFBYSxHQUFHLENBQUNBLGFBQWEsQ0FBQztJQUNqQztJQUNBL0IsQ0FBQyxDQUFDK0IsYUFBYSxHQUFHQSxhQUFhO0lBQUEsSUFBQUUsVUFBQSxHQUFBL0QsMEJBQUEsQ0FDSjZELGFBQWE7TUFBQUcsTUFBQTtJQUFBO01BQXhDLEtBQUFELFVBQUEsQ0FBQXBELENBQUEsTUFBQXFELE1BQUEsR0FBQUQsVUFBQSxDQUFBbkQsQ0FBQSxJQUFBQyxJQUFBLEdBQTBDO1FBQUEsSUFBL0JpRCxZQUFZLEdBQUFFLE1BQUEsQ0FBQWxELEtBQUE7UUFDckIsSUFBQWtCLHNCQUFpQixFQUFDOEIsWUFBWSxDQUFDO1FBRS9CLElBQUFGLDBCQUFxQixFQUFDRSxZQUFZLEVBQUUsT0FBTyxDQUFDO1FBRTVDLElBQUlHLFNBQVMsR0FBR0gsWUFBWSxDQUFDSSxNQUFNO1FBQ25DLElBQUlELFNBQVMsS0FBSzlCLFNBQVMsRUFBRTtVQUMzQjhCLFNBQVMsR0FBR0EsU0FBUyxDQUFDQSxTQUFTO1VBQy9CLElBQUFyQixrQkFBTSxFQUFDcUIsU0FBUyxDQUFDO1VBQ2pCLE9BQU9ILFlBQVksQ0FBQ0ksTUFBTTtVQUMxQkosWUFBWSxDQUFDRyxTQUFTLEdBQUdBLFNBQVM7UUFDcEM7UUFFQSxJQUFNUCxNQUFNLEdBQUdJLFlBQVksQ0FBQ0osTUFBTTtRQUNsQyxJQUFJQSxNQUFNLEtBQUt2QixTQUFTLEVBQUU7VUFDeEIsSUFBQXlCLDBCQUFxQixFQUFDRixNQUFNLEVBQUUsY0FBYyxDQUFDO1FBQy9DO01BQ0Y7SUFBQyxTQUFBakIsR0FBQTtNQUFBc0IsVUFBQSxDQUFBakUsQ0FBQSxDQUFBMkMsR0FBQTtJQUFBO01BQUFzQixVQUFBLENBQUFoRCxDQUFBO0lBQUE7RUFDSDtFQUVBLElBQU1vRCxnQkFBZ0IsR0FBR3JDLENBQUMsQ0FBQ3FDLGdCQUFnQjtFQUMzQyxJQUFJQSxnQkFBZ0IsS0FBS2hDLFNBQVMsRUFBRTtJQUNsQyxJQUFBSCxzQkFBaUIsRUFBQ21DLGdCQUFnQixDQUFDO0lBRW5DLElBQU1DLGlCQUFpQixHQUFHRCxnQkFBZ0IsQ0FBQ0MsaUJBQWlCO0lBQzVEO01BQ0UsSUFBQXBDLHNCQUFpQixFQUFDb0MsaUJBQWlCLENBQUM7TUFFcEMsSUFBQVIsMEJBQXFCLEVBQUNRLGlCQUFpQixFQUFFLFdBQVcsQ0FBQztJQUN2RDtJQUVBLElBQUlDLHFCQUFxQixHQUFHRixnQkFBZ0IsQ0FBQ0UscUJBQXFCO0lBQ2xFLElBQUlBLHFCQUFxQixLQUFLbEMsU0FBUyxFQUFFO01BQ3ZDa0MscUJBQXFCLEdBQUdBLHFCQUFxQixDQUFDQyxVQUFVO01BQ3hELElBQUksQ0FBQ2pFLEtBQUssQ0FBQ0MsT0FBTyxDQUFDK0QscUJBQXFCLENBQUMsRUFBRTtRQUN6QyxJQUFBekIsa0JBQU0sRUFBQ3lCLHFCQUFxQixDQUFDO1FBQzdCQSxxQkFBcUIsR0FBRyxDQUFDQSxxQkFBcUIsQ0FBQztNQUNqRDtNQUNBRixnQkFBZ0IsQ0FBQ0UscUJBQXFCLEdBQUdBLHFCQUFxQjtNQUFBLElBQUFFLFVBQUEsR0FBQXZFLDBCQUFBLENBQ3RDcUUscUJBQXFCO1FBQUFHLE1BQUE7TUFBQTtRQUE3QyxLQUFBRCxVQUFBLENBQUE1RCxDQUFBLE1BQUE2RCxNQUFBLEdBQUFELFVBQUEsQ0FBQTNELENBQUEsSUFBQUMsSUFBQSxHQUErQztVQUFBLElBQXBDNEQsU0FBUyxHQUFBRCxNQUFBLENBQUExRCxLQUFBO1VBQ2xCLElBQUFrQixzQkFBaUIsRUFBQ3lDLFNBQVMsQ0FBQztVQUU1QixJQUFBYiwwQkFBcUIsRUFBQ2EsU0FBUyxFQUFFLFdBQVcsQ0FBQztVQUU3QzdCLGtCQUFNLENBQUNNLFdBQVcsQ0FBQ3VCLFNBQVMsQ0FBQ0MsZUFBZSxFQUFFdkMsU0FBUyxDQUFDO1FBQzFEO01BQUMsU0FBQU0sR0FBQTtRQUFBOEIsVUFBQSxDQUFBekUsQ0FBQSxDQUFBMkMsR0FBQTtNQUFBO1FBQUE4QixVQUFBLENBQUF4RCxDQUFBO01BQUE7SUFDSDtFQUNGO0VBRUEsSUFBTTRELFVBQVUsR0FBRzdDLENBQUMsQ0FBQzZDLFVBQVU7RUFDL0IsSUFBSUEsVUFBVSxLQUFLeEMsU0FBUyxFQUFFO0lBQzVCLElBQUFILHNCQUFpQixFQUFDMkMsVUFBVSxDQUFDO0lBRTdCLElBQU1DLElBQUksR0FBR0QsVUFBVSxDQUFDRSxJQUFJO0lBQzVCLElBQUlELElBQUksS0FBS3pDLFNBQVMsRUFBRTtNQUN0QixPQUFPd0MsVUFBVSxDQUFDRSxJQUFJO01BQ3RCRixVQUFVLENBQUNDLElBQUksR0FBR0EsSUFBSTtJQUN4QjtJQUVBLElBQU1FLElBQUksR0FBR0gsVUFBVSxDQUFDSSxJQUFJO0lBQzVCLElBQUlELElBQUksS0FBSzNDLFNBQVMsRUFBRTtNQUN0QixPQUFPd0MsVUFBVSxDQUFDSSxJQUFJO01BQ3RCSixVQUFVLENBQUNHLElBQUksR0FBR0EsSUFBSTtJQUN4QjtJQUVBbEMsa0JBQU0sQ0FBQ00sV0FBVyxDQUFDeUIsVUFBVSxDQUFDSyxJQUFJLEVBQUU3QyxTQUFTLENBQUM7RUFDaEQ7RUFFQSxJQUFBeUIsMEJBQXFCLEVBQUM5QixDQUFDLEVBQUUsZUFBZSxDQUFDO0VBRXpDLElBQUltRCxnQkFBZ0IsR0FBR25ELENBQUMsQ0FBQ21ELGdCQUFnQjtFQUN6QyxJQUFJQSxnQkFBZ0IsS0FBSzlDLFNBQVMsRUFBRTtJQUNsQzhDLGdCQUFnQixHQUFHQSxnQkFBZ0IsQ0FBQ3hCLFNBQVM7SUFDN0MsSUFBSSxDQUFDcEQsS0FBSyxDQUFDQyxPQUFPLENBQUMyRSxnQkFBZ0IsQ0FBQyxFQUFFO01BQ3BDLElBQUFyQyxrQkFBTSxFQUFDcUMsZ0JBQWdCLENBQUM7TUFDeEJBLGdCQUFnQixHQUFHLENBQUNBLGdCQUFnQixDQUFDO0lBQ3ZDO0lBQ0FuRCxDQUFDLENBQUNtRCxnQkFBZ0IsR0FBR0EsZ0JBQWdCO0VBQ3ZDO0FBQ0YiLCJpZ25vcmVMaXN0IjpbXX0=