@tricoteuses/assemblee 1.0.7 → 1.1.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/lib/api.js +3 -9
- package/lib/api.mjs +4 -5
- package/lib/bugs/acteur-00010/plugin.test.js +3 -50
- package/lib/bugs/acteur-00010/plugin.test.mjs +1 -1
- package/lib/bugs/acteur-00010.js +2 -57
- package/lib/bugs/acteur-00010.mjs +1 -6
- package/lib/bugs/agenda-00002/plugin.test.js +3 -53
- package/lib/bugs/agenda-00002/plugin.test.mjs +1 -3
- package/lib/bugs/agenda-00002.js +3 -148
- package/lib/bugs/agenda-00002.mjs +1 -28
- package/lib/bugs/agenda-00008/plugin.test.js +3 -52
- package/lib/bugs/agenda-00008/plugin.test.mjs +1 -1
- package/lib/bugs/agenda-00008.js +2 -61
- package/lib/bugs/agenda-00008.mjs +1 -5
- package/lib/bugs/agenda-00011/plugin.test.js +5 -99
- package/lib/bugs/agenda-00011/plugin.test.mjs +3 -3
- package/lib/bugs/agenda-00011.js +4 -105
- package/lib/bugs/agenda-00011.mjs +3 -29
- package/lib/bugs.js +3 -164
- package/lib/bugs.mjs +1 -26
- package/lib/cleaners/actes_legislatifs.js +11 -115
- package/lib/cleaners/actes_legislatifs.mjs +7 -82
- package/lib/cleaners/acteurs.js +12 -92
- package/lib/cleaners/acteurs.mjs +7 -38
- package/lib/cleaners/amendements.js +10 -103
- package/lib/cleaners/amendements.mjs +4 -58
- package/lib/cleaners/documents.js +5 -67
- package/lib/cleaners/documents.mjs +1 -37
- package/lib/cleaners/dossiers_legislatifs.js +5 -61
- package/lib/cleaners/dossiers_legislatifs.mjs +1 -29
- package/lib/cleaners/index.js +1 -9
- package/lib/cleaners/index.mjs +1 -1
- package/lib/cleaners/organes.js +1 -33
- package/lib/cleaners/organes.mjs +1 -17
- package/lib/cleaners/reunions.js +4 -119
- package/lib/cleaners/reunions.mjs +1 -64
- package/lib/cleaners/scrutins.js +10 -102
- package/lib/cleaners/scrutins.mjs +1 -48
- package/lib/cleaners/xml.js +8 -42
- package/lib/cleaners/xml.mjs +6 -8
- package/lib/datasets.js +14 -113
- package/lib/datasets.mjs +6 -46
- package/lib/dates.js +7 -37
- package/lib/dates.mjs +9 -14
- package/lib/dossiers_legislatifs.js +6 -68
- package/lib/dossiers_legislatifs.mjs +5 -36
- package/lib/file_systems.js +56 -139
- package/lib/file_systems.mjs +1 -9
- package/lib/git.js +4 -53
- package/lib/git.mjs +1 -12
- package/lib/index.js +1 -15
- package/lib/index.mjs +1 -1
- package/lib/inserters.js +23 -146
- package/lib/inserters.mjs +6 -87
- package/lib/loaders.js +44 -316
- package/lib/loaders.mjs +12 -135
- package/lib/organes.js +1 -7
- package/lib/organes.mjs +1 -4
- package/lib/parsers/documents.js +22 -151
- package/lib/parsers/documents.mjs +19 -81
- package/lib/parsers/index.js +1 -4
- package/lib/parsers/index.mjs +1 -1
- package/lib/parsers/recherche_amendements.js +302 -527
- package/lib/parsers/recherche_amendements.mjs +8 -31
- package/lib/raw_types/acteurs_et_organes.d.ts +1 -30
- package/lib/raw_types/acteurs_et_organes.js +5 -124
- package/lib/raw_types/acteurs_et_organes.mjs +5 -105
- package/lib/raw_types/agendas.js +6 -89
- package/lib/raw_types/agendas.mjs +9 -65
- package/lib/raw_types/amendements.d.ts +2 -0
- package/lib/raw_types/amendements.js +10 -90
- package/lib/raw_types/amendements.mjs +11 -69
- package/lib/raw_types/dossiers_legislatifs.js +6 -96
- package/lib/raw_types/dossiers_legislatifs.mjs +6 -73
- package/lib/raw_types/scrutins.js +6 -81
- package/lib/raw_types/scrutins.mjs +9 -57
- package/lib/scripts/bugs_helper.js +2 -181
- package/lib/scripts/bugs_helper.mjs +2 -39
- package/lib/scripts/clean_data.js +27 -143
- package/lib/scripts/clean_data.mjs +15 -34
- package/lib/scripts/clean_reorganized_data.js +76 -240
- package/lib/scripts/clean_reorganized_data.mjs +36 -99
- package/lib/scripts/diff_amendements.js +19 -79
- package/lib/scripts/diff_amendements.mjs +17 -35
- package/lib/scripts/document_dossiers_legislatifs.js +17 -142
- package/lib/scripts/document_dossiers_legislatifs.mjs +6 -90
- package/lib/scripts/get_today_reunions.js +4 -22
- package/lib/scripts/get_today_reunions.mjs +1 -7
- package/lib/scripts/merge_scrutins.js +3 -47
- package/lib/scripts/merge_scrutins.mjs +1 -9
- package/lib/scripts/parse_textes_lois.js +15 -44
- package/lib/scripts/parse_textes_lois.mjs +18 -19
- package/lib/scripts/raw_types_from_amendements.js +3 -95
- package/lib/scripts/raw_types_from_amendements.mjs +1 -16
- package/lib/scripts/reorganize_data.js +74 -294
- package/lib/scripts/reorganize_data.mjs +22 -133
- package/lib/scripts/retrieve_deputes_photos.js +6 -119
- package/lib/scripts/retrieve_deputes_photos.mjs +7 -33
- package/lib/scripts/retrieve_documents.js +4 -192
- package/lib/scripts/retrieve_documents.mjs +2 -50
- package/lib/scripts/retrieve_open_data.js +44 -116
- package/lib/scripts/retrieve_open_data.mjs +14 -19
- package/lib/scripts/retrieve_pending_amendments.js +4 -98
- package/lib/scripts/retrieve_pending_amendments.mjs +1 -14
- package/lib/scripts/retrieve_senateurs_photos.js +18 -114
- package/lib/scripts/retrieve_senateurs_photos.mjs +20 -48
- package/lib/scripts/retrieve_textes_lois.js +3 -122
- package/lib/scripts/retrieve_textes_lois.mjs +3 -21
- package/lib/scripts/test_load.js +2 -10
- package/lib/scripts/test_load.mjs +2 -1
- package/lib/scripts/test_load_big_files.js +2 -10
- package/lib/scripts/test_load_big_files.mjs +2 -1
- package/lib/scripts/validate_json.js +4 -119
- package/lib/scripts/validate_json.mjs +2 -36
- package/lib/shared_types/codes_actes.js +1 -24
- package/lib/shared_types/codes_actes.mjs +3 -10
- package/lib/strings.js +1 -5
- package/lib/strings.mjs +1 -1
- package/lib/types/acteurs_et_organes.js +9 -84
- package/lib/types/acteurs_et_organes.mjs +10 -63
- package/lib/types/agendas.js +8 -90
- package/lib/types/agendas.mjs +11 -66
- package/lib/types/amendements.d.ts +2 -0
- package/lib/types/amendements.js +12 -92
- package/lib/types/amendements.mjs +15 -70
- package/lib/types/dossiers_legislatifs.js +8 -96
- package/lib/types/dossiers_legislatifs.mjs +10 -72
- package/lib/types/legislatures.js +1 -3
- package/lib/types/legislatures.mjs +1 -2
- package/lib/types/scrutins.js +8 -82
- package/lib/types/scrutins.mjs +11 -58
- package/lib/urls.js +3 -27
- package/lib/urls.mjs +3 -21
- package/package.json +1 -1
package/lib/dates.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("core-js/modules/es.object.define-property.js");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
@@ -16,50 +15,35 @@ exports.frenchTimeFormat = void 0;
|
|
|
16
15
|
exports.frenchTimeFromDateOrString = frenchTimeFromDateOrString;
|
|
17
16
|
exports.localIso8601StringFromDate = localIso8601StringFromDate;
|
|
18
17
|
exports.patchedDateToJson = void 0;
|
|
19
|
-
|
|
20
18
|
require("core-js/modules/es.date.to-json.js");
|
|
21
|
-
|
|
22
19
|
require("core-js/modules/es.date.to-string.js");
|
|
23
|
-
|
|
24
20
|
require("core-js/modules/es.regexp.exec.js");
|
|
25
|
-
|
|
26
21
|
require("core-js/modules/es.string.replace.js");
|
|
27
|
-
|
|
28
22
|
require("core-js/modules/es.date.to-iso-string.js");
|
|
29
|
-
|
|
30
23
|
require("core-js/modules/es.object.to-string.js");
|
|
31
|
-
|
|
32
24
|
require("core-js/modules/es.regexp.to-string.js");
|
|
33
|
-
|
|
34
25
|
require("core-js/modules/web.url.to-json.js");
|
|
35
|
-
|
|
36
26
|
require("core-js/modules/es.string.ends-with.js");
|
|
37
|
-
|
|
38
27
|
var _index = _interopRequireDefault(require("date-fns/format/index.js"));
|
|
39
|
-
|
|
40
28
|
var _index2 = _interopRequireDefault(require("date-fns/locale/fr/index.js"));
|
|
41
|
-
|
|
42
29
|
var _index3 = _interopRequireDefault(require("date-fns/parse/index.js"));
|
|
43
|
-
|
|
44
30
|
var _index4 = _interopRequireDefault(require("date-fns/parseISO/index.js"));
|
|
45
|
-
|
|
46
31
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
47
|
-
|
|
48
32
|
// Note: "/index.js" added to imports, because of issue
|
|
49
33
|
// https://github.com/date-fns/date-fns/issues/2964
|
|
34
|
+
|
|
50
35
|
// Patch Date.prototype.toJSON to ensure that dates keep their timezone when converted to strings.
|
|
51
36
|
// https://stackoverflow.com/questions/31096130/how-to-json-stringify-a-javascript-date-and-preserve-timezone
|
|
52
37
|
var existingDateToJson = Date.prototype.toJSON;
|
|
53
38
|
exports.existingDateToJson = existingDateToJson;
|
|
54
|
-
|
|
55
39
|
var patchedDateToJson = function patchedDateToJson() {
|
|
56
40
|
try {
|
|
57
41
|
var timezoneOffsetInHours = -(this.getTimezoneOffset() / 60); //UTC minus local time
|
|
58
|
-
|
|
59
42
|
var sign = timezoneOffsetInHours >= 0 ? "+" : "-";
|
|
60
|
-
var leadingZero = Math.abs(timezoneOffsetInHours) < 10 ? "0" : "";
|
|
61
|
-
// (we don't want _this_ Date instance to be modified).
|
|
43
|
+
var leadingZero = Math.abs(timezoneOffsetInHours) < 10 ? "0" : "";
|
|
62
44
|
|
|
45
|
+
// It's a bit unfortunate that we need to construct a new Date instance
|
|
46
|
+
// (we don't want _this_ Date instance to be modified).
|
|
63
47
|
var correctedDate = new Date(this.getFullYear(), this.getMonth(), this.getDate(), this.getHours(), this.getMinutes(), this.getSeconds(), this.getMilliseconds());
|
|
64
48
|
correctedDate.setHours(this.getHours() + timezoneOffsetInHours);
|
|
65
49
|
var iso = correctedDate.toISOString().replace("Z", "");
|
|
@@ -71,7 +55,6 @@ var patchedDateToJson = function patchedDateToJson() {
|
|
|
71
55
|
return jsonDate;
|
|
72
56
|
}
|
|
73
57
|
};
|
|
74
|
-
|
|
75
58
|
exports.patchedDateToJson = patchedDateToJson;
|
|
76
59
|
var frenchDateFormat = new Intl.DateTimeFormat("fr-FR", {
|
|
77
60
|
day: "numeric",
|
|
@@ -90,66 +73,53 @@ var frenchTimeFormat = new Intl.DateTimeFormat("fr-FR", {
|
|
|
90
73
|
minute: "2-digit"
|
|
91
74
|
});
|
|
92
75
|
exports.frenchTimeFormat = frenchTimeFormat;
|
|
93
|
-
|
|
94
76
|
function dateFromNullableDateOrIsoString(date, defaultValue) {
|
|
95
77
|
if (date instanceof Date) {
|
|
96
78
|
return date;
|
|
97
79
|
}
|
|
98
|
-
|
|
99
80
|
if (typeof date === "string") {
|
|
100
81
|
return (0, _index4["default"])(date);
|
|
101
82
|
}
|
|
102
|
-
|
|
103
83
|
return defaultValue;
|
|
104
|
-
}
|
|
105
|
-
|
|
84
|
+
}
|
|
106
85
|
|
|
86
|
+
/// Convert strings like "2017-11-24+01:00" to dates.
|
|
107
87
|
function dateFromYearMonthDayTimezoneString(dateString) {
|
|
108
88
|
return (0, _index3["default"])(dateString, "yyyy-MM-ddXXX", new Date());
|
|
109
89
|
}
|
|
110
|
-
|
|
111
90
|
function displayDateFromLocalIsoString(dateString) {
|
|
112
91
|
var date = (0, _index4["default"])(dateString);
|
|
113
92
|
dateString = (0, _index["default"])(date, "EEEE d LLLL yyyy H'h'mm", {
|
|
114
93
|
locale: _index2["default"]
|
|
115
94
|
});
|
|
116
|
-
|
|
117
95
|
if (dateString.endsWith(" 0h00")) {
|
|
118
96
|
dateString = dateString.substring(0, dateString.length - 5);
|
|
119
97
|
}
|
|
120
|
-
|
|
121
98
|
return dateString;
|
|
122
99
|
}
|
|
123
|
-
|
|
124
100
|
function formatRelativeFrenchTime(date, now) {
|
|
125
101
|
if (date.getFullYear() === now.getFullYear() && date.getMonth() === now.getMonth() && date.getDate() === now.getDate()) {
|
|
126
102
|
return frenchTimeFormat.format(date);
|
|
127
103
|
}
|
|
128
|
-
|
|
129
104
|
return frenchDateSameYearShortFormat.format(date);
|
|
130
105
|
}
|
|
131
|
-
|
|
132
106
|
function frenchDateWithoutDayOfWeekFromDateOrString(dateOrString) {
|
|
133
107
|
var date = dateOrString instanceof Date ? dateOrString : (0, _index4["default"])(dateOrString);
|
|
134
108
|
var dateString = (0, _index["default"])(date, "d LLLL yyyy H'h'mm", {
|
|
135
109
|
locale: _index2["default"]
|
|
136
110
|
});
|
|
137
|
-
|
|
138
111
|
if (dateString.endsWith(" 0h00")) {
|
|
139
112
|
dateString = dateString.substring(0, dateString.length - 5);
|
|
140
113
|
}
|
|
141
|
-
|
|
142
114
|
return dateString;
|
|
143
115
|
}
|
|
144
|
-
|
|
145
116
|
function frenchTimeFromDateOrString(dateOrString) {
|
|
146
117
|
var date = dateOrString instanceof Date ? dateOrString : (0, _index4["default"])(dateOrString);
|
|
147
118
|
return (0, _index["default"])(date, "H'h'mm", {
|
|
148
119
|
locale: _index2["default"]
|
|
149
120
|
});
|
|
150
121
|
}
|
|
151
|
-
|
|
152
122
|
function localIso8601StringFromDate(date) {
|
|
153
123
|
return new Date(date.getTime() - date.getTimezoneOffset() * 60000).toISOString().split("T")[0];
|
|
154
124
|
}
|
|
155
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleGlzdGluZ0RhdGVUb0pzb24iLCJEYXRlIiwicHJvdG90eXBlIiwidG9KU09OIiwicGF0Y2hlZERhdGVUb0pzb24iLCJ0aW1lem9uZU9mZnNldEluSG91cnMiLCJnZXRUaW1lem9uZU9mZnNldCIsInNpZ24iLCJsZWFkaW5nWmVybyIsIk1hdGgiLCJhYnMiLCJjb3JyZWN0ZWREYXRlIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJnZXRIb3VycyIsImdldE1pbnV0ZXMiLCJnZXRTZWNvbmRzIiwiZ2V0TWlsbGlzZWNvbmRzIiwic2V0SG91cnMiLCJpc28iLCJ0b0lTT1N0cmluZyIsInJlcGxhY2UiLCJ0b1N0cmluZyIsInNwbGl0IiwiZSIsImpzb25EYXRlIiwiZnJlbmNoRGF0ZUZvcm1hdCIsIkludGwiLCJEYXRlVGltZUZvcm1hdCIsImRheSIsIm1vbnRoIiwid2Vla2RheSIsInllYXIiLCJmcmVuY2hEYXRlU2FtZVllYXJTaG9ydEZvcm1hdCIsImZyZW5jaFRpbWVGb3JtYXQiLCJob3VyIiwibWludXRlIiwiZGF0ZUZyb21OdWxsYWJsZURhdGVPcklzb1N0cmluZyIsImRhdGUiLCJkZWZhdWx0VmFsdWUiLCJwYXJzZUlTTyIsImRhdGVGcm9tWWVhck1vbnRoRGF5VGltZXpvbmVTdHJpbmciLCJkYXRlU3RyaW5nIiwicGFyc2UiLCJkaXNwbGF5RGF0ZUZyb21Mb2NhbElzb1N0cmluZyIsImZvcm1hdCIsImxvY2FsZSIsImZyTG9jYWxlIiwiZW5kc1dpdGgiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJmb3JtYXRSZWxhdGl2ZUZyZW5jaFRpbWUiLCJub3ciLCJmcmVuY2hEYXRlV2l0aG91dERheU9mV2Vla0Zyb21EYXRlT3JTdHJpbmciLCJkYXRlT3JTdHJpbmciLCJmcmVuY2hUaW1lRnJvbURhdGVPclN0cmluZyIsImxvY2FsSXNvODYwMVN0cmluZ0Zyb21EYXRlIiwiZ2V0VGltZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBOb3RlOiBcIi9pbmRleC5qc1wiIGFkZGVkIHRvIGltcG9ydHMsIGJlY2F1c2Ugb2YgaXNzdWVcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9pc3N1ZXMvMjk2NFxuaW1wb3J0IGZvcm1hdCBmcm9tIFwiZGF0ZS1mbnMvZm9ybWF0L2luZGV4LmpzXCJcbmltcG9ydCBmckxvY2FsZSBmcm9tIFwiZGF0ZS1mbnMvbG9jYWxlL2ZyL2luZGV4LmpzXCJcbmltcG9ydCBwYXJzZSBmcm9tIFwiZGF0ZS1mbnMvcGFyc2UvaW5kZXguanNcIlxuaW1wb3J0IHBhcnNlSVNPIGZyb20gXCJkYXRlLWZucy9wYXJzZUlTTy9pbmRleC5qc1wiXG5cbi8vIFBhdGNoIERhdGUucHJvdG90eXBlLnRvSlNPTiB0byBlbnN1cmUgdGhhdCBkYXRlcyBrZWVwIHRoZWlyIHRpbWV6b25lIHdoZW4gY29udmVydGVkIHRvIHN0cmluZ3MuXG4vLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zMTA5NjEzMC9ob3ctdG8tanNvbi1zdHJpbmdpZnktYS1qYXZhc2NyaXB0LWRhdGUtYW5kLXByZXNlcnZlLXRpbWV6b25lXG5leHBvcnQgY29uc3QgZXhpc3RpbmdEYXRlVG9Kc29uID0gRGF0ZS5wcm90b3R5cGUudG9KU09OXG5leHBvcnQgY29uc3QgcGF0Y2hlZERhdGVUb0pzb24gPSBmdW5jdGlvbiAodGhpczogRGF0ZSk6IHN0cmluZyB7XG4gIHRyeSB7XG4gICAgY29uc3QgdGltZXpvbmVPZmZzZXRJbkhvdXJzID0gLSh0aGlzLmdldFRpbWV6b25lT2Zmc2V0KCkgLyA2MCkgLy9VVEMgbWludXMgbG9jYWwgdGltZVxuICAgIGNvbnN0IHNpZ24gPSB0aW1lem9uZU9mZnNldEluSG91cnMgPj0gMCA/IFwiK1wiIDogXCItXCJcbiAgICBjb25zdCBsZWFkaW5nWmVybyA9IE1hdGguYWJzKHRpbWV6b25lT2Zmc2V0SW5Ib3VycykgPCAxMCA/IFwiMFwiIDogXCJcIlxuXG4gICAgLy8gSXQncyBhIGJpdCB1bmZvcnR1bmF0ZSB0aGF0IHdlIG5lZWQgdG8gY29uc3RydWN0IGEgbmV3IERhdGUgaW5zdGFuY2VcbiAgICAvLyAod2UgZG9uJ3Qgd2FudCBfdGhpc18gRGF0ZSBpbnN0YW5jZSB0byBiZSBtb2RpZmllZCkuXG4gICAgY29uc3QgY29ycmVjdGVkRGF0ZSA9IG5ldyBEYXRlKFxuICAgICAgdGhpcy5nZXRGdWxsWWVhcigpLFxuICAgICAgdGhpcy5nZXRNb250aCgpLFxuICAgICAgdGhpcy5nZXREYXRlKCksXG4gICAgICB0aGlzLmdldEhvdXJzKCksXG4gICAgICB0aGlzLmdldE1pbnV0ZXMoKSxcbiAgICAgIHRoaXMuZ2V0U2Vjb25kcygpLFxuICAgICAgdGhpcy5nZXRNaWxsaXNlY29uZHMoKSxcbiAgICApXG4gICAgY29ycmVjdGVkRGF0ZS5zZXRIb3Vycyh0aGlzLmdldEhvdXJzKCkgKyB0aW1lem9uZU9mZnNldEluSG91cnMpXG4gICAgY29uc3QgaXNvID0gY29ycmVjdGVkRGF0ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoXCJaXCIsIFwiXCIpXG4gICAgcmV0dXJuIChcbiAgICAgIGlzbyArXG4gICAgICBzaWduICtcbiAgICAgIGxlYWRpbmdaZXJvICtcbiAgICAgIE1hdGguYWJzKHRpbWV6b25lT2Zmc2V0SW5Ib3VycykudG9TdHJpbmcoKS5zcGxpdChcIi5cIilbMF0gK1xuICAgICAgXCI6MDBcIlxuICAgIClcbiAgfSBjYXRjaCAoZSkge1xuICAgIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IGV4aXN0aW5nRGF0ZVRvSnNvblxuICAgIGNvbnN0IGpzb25EYXRlID0gdGhpcy50b0pTT04oKVxuICAgIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IHBhdGNoZWREYXRlVG9Kc29uXG4gICAgcmV0dXJuIGpzb25EYXRlXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGZyZW5jaERhdGVGb3JtYXQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImZyLUZSXCIsIHtcbiAgZGF5OiBcIm51bWVyaWNcIixcbiAgbW9udGg6IFwibG9uZ1wiLFxuICB3ZWVrZGF5OiBcImxvbmdcIixcbiAgeWVhcjogXCJudW1lcmljXCIsXG59KVxuZXhwb3J0IGNvbnN0IGZyZW5jaERhdGVTYW1lWWVhclNob3J0Rm9ybWF0ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXCJmci1GUlwiLCB7XG4gIGRheTogXCJudW1lcmljXCIsXG4gIG1vbnRoOiBcInNob3J0XCIsXG59KVxuZXhwb3J0IGNvbnN0IGZyZW5jaFRpbWVGb3JtYXQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImZyLUZSXCIsIHtcbiAgaG91cjogXCJudW1lcmljXCIsXG4gIG1pbnV0ZTogXCIyLWRpZ2l0XCIsXG59KVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZUZyb21OdWxsYWJsZURhdGVPcklzb1N0cmluZyhcbiAgZGF0ZTogRGF0ZSB8IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwsXG4gIGRlZmF1bHRWYWx1ZTogRGF0ZSB8IHVuZGVmaW5lZCB8IG51bGwsXG4pOiBEYXRlIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiBkYXRlXG4gIH1cbiAgaWYgKHR5cGVvZiBkYXRlID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIHBhcnNlSVNPKGRhdGUpXG4gIH1cbiAgcmV0dXJuIGRlZmF1bHRWYWx1ZVxufVxuXG4vLy8gQ29udmVydCBzdHJpbmdzIGxpa2UgXCIyMDE3LTExLTI0KzAxOjAwXCIgdG8gZGF0ZXMuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZUZyb21ZZWFyTW9udGhEYXlUaW1lem9uZVN0cmluZyhkYXRlU3RyaW5nOiBzdHJpbmcpOiBEYXRlIHtcbiAgcmV0dXJuIHBhcnNlKGRhdGVTdHJpbmcsIFwieXl5eS1NTS1kZFhYWFwiLCBuZXcgRGF0ZSgpKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheURhdGVGcm9tTG9jYWxJc29TdHJpbmcoZGF0ZVN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0ZSA9IHBhcnNlSVNPKGRhdGVTdHJpbmcpXG4gIGRhdGVTdHJpbmcgPSBmb3JtYXQoZGF0ZSwgXCJFRUVFIGQgTExMTCB5eXl5IEgnaCdtbVwiLCB7IGxvY2FsZTogZnJMb2NhbGUgfSlcbiAgaWYgKGRhdGVTdHJpbmcuZW5kc1dpdGgoXCIgMGgwMFwiKSkge1xuICAgIGRhdGVTdHJpbmcgPSBkYXRlU3RyaW5nLnN1YnN0cmluZygwLCBkYXRlU3RyaW5nLmxlbmd0aCAtIDUpXG4gIH1cbiAgcmV0dXJuIGRhdGVTdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFJlbGF0aXZlRnJlbmNoVGltZShkYXRlOiBEYXRlLCBub3c6IERhdGUpIHtcbiAgaWYgKFxuICAgIGRhdGUuZ2V0RnVsbFllYXIoKSA9PT0gbm93LmdldEZ1bGxZZWFyKCkgJiZcbiAgICBkYXRlLmdldE1vbnRoKCkgPT09IG5vdy5nZXRNb250aCgpICYmXG4gICAgZGF0ZS5nZXREYXRlKCkgPT09IG5vdy5nZXREYXRlKClcbiAgKSB7XG4gICAgcmV0dXJuIGZyZW5jaFRpbWVGb3JtYXQuZm9ybWF0KGRhdGUpXG4gIH1cbiAgcmV0dXJuIGZyZW5jaERhdGVTYW1lWWVhclNob3J0Rm9ybWF0LmZvcm1hdChkYXRlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJlbmNoRGF0ZVdpdGhvdXREYXlPZldlZWtGcm9tRGF0ZU9yU3RyaW5nKFxuICBkYXRlT3JTdHJpbmc6IERhdGUgfCBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBkYXRlOiBEYXRlID1cbiAgICBkYXRlT3JTdHJpbmcgaW5zdGFuY2VvZiBEYXRlID8gZGF0ZU9yU3RyaW5nIDogcGFyc2VJU08oZGF0ZU9yU3RyaW5nKVxuICBsZXQgZGF0ZVN0cmluZyA9IGZvcm1hdChkYXRlLCBcImQgTExMTCB5eXl5IEgnaCdtbVwiLCB7IGxvY2FsZTogZnJMb2NhbGUgfSlcbiAgaWYgKGRhdGVTdHJpbmcuZW5kc1dpdGgoXCIgMGgwMFwiKSkge1xuICAgIGRhdGVTdHJpbmcgPSBkYXRlU3RyaW5nLnN1YnN0cmluZygwLCBkYXRlU3RyaW5nLmxlbmd0aCAtIDUpXG4gIH1cbiAgcmV0dXJuIGRhdGVTdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyZW5jaFRpbWVGcm9tRGF0ZU9yU3RyaW5nKFxuICBkYXRlT3JTdHJpbmc6IERhdGUgfCBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBkYXRlOiBEYXRlID1cbiAgICBkYXRlT3JTdHJpbmcgaW5zdGFuY2VvZiBEYXRlID8gZGF0ZU9yU3RyaW5nIDogcGFyc2VJU08oZGF0ZU9yU3RyaW5nKVxuICByZXR1cm4gZm9ybWF0KGRhdGUsIFwiSCdoJ21tXCIsIHsgbG9jYWxlOiBmckxvY2FsZSB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxJc284NjAxU3RyaW5nRnJvbURhdGUoZGF0ZTogRGF0ZSkge1xuICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgLSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMClcbiAgICAudG9JU09TdHJpbmcoKVxuICAgIC5zcGxpdChcIlRcIilbMF1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBTEE7QUFDQTtBQU1BO0FBQ0E7QUFDTyxJQUFNQSxrQkFBa0IsR0FBR0MsSUFBSSxDQUFDQyxTQUFMLENBQWVDLE1BQTFDOzs7QUFDQSxJQUFNQyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQW9CLEdBQThCO0VBQzdELElBQUk7SUFDRixJQUFNQyxxQkFBcUIsR0FBRyxFQUFFLEtBQUtDLGlCQUFMLEtBQTJCLEVBQTdCLENBQTlCLENBREUsQ0FDNkQ7O0lBQy9ELElBQU1DLElBQUksR0FBR0YscUJBQXFCLElBQUksQ0FBekIsR0FBNkIsR0FBN0IsR0FBbUMsR0FBaEQ7SUFDQSxJ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
|
|
125
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleGlzdGluZ0RhdGVUb0pzb24iLCJEYXRlIiwicHJvdG90eXBlIiwidG9KU09OIiwicGF0Y2hlZERhdGVUb0pzb24iLCJ0aW1lem9uZU9mZnNldEluSG91cnMiLCJnZXRUaW1lem9uZU9mZnNldCIsInNpZ24iLCJsZWFkaW5nWmVybyIsIk1hdGgiLCJhYnMiLCJjb3JyZWN0ZWREYXRlIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJnZXRIb3VycyIsImdldE1pbnV0ZXMiLCJnZXRTZWNvbmRzIiwiZ2V0TWlsbGlzZWNvbmRzIiwic2V0SG91cnMiLCJpc28iLCJ0b0lTT1N0cmluZyIsInJlcGxhY2UiLCJ0b1N0cmluZyIsInNwbGl0IiwiZSIsImpzb25EYXRlIiwiZnJlbmNoRGF0ZUZvcm1hdCIsIkludGwiLCJEYXRlVGltZUZvcm1hdCIsImRheSIsIm1vbnRoIiwid2Vla2RheSIsInllYXIiLCJmcmVuY2hEYXRlU2FtZVllYXJTaG9ydEZvcm1hdCIsImZyZW5jaFRpbWVGb3JtYXQiLCJob3VyIiwibWludXRlIiwiZGF0ZUZyb21OdWxsYWJsZURhdGVPcklzb1N0cmluZyIsImRhdGUiLCJkZWZhdWx0VmFsdWUiLCJwYXJzZUlTTyIsImRhdGVGcm9tWWVhck1vbnRoRGF5VGltZXpvbmVTdHJpbmciLCJkYXRlU3RyaW5nIiwicGFyc2UiLCJkaXNwbGF5RGF0ZUZyb21Mb2NhbElzb1N0cmluZyIsImZvcm1hdCIsImxvY2FsZSIsImZyTG9jYWxlIiwiZW5kc1dpdGgiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJmb3JtYXRSZWxhdGl2ZUZyZW5jaFRpbWUiLCJub3ciLCJmcmVuY2hEYXRlV2l0aG91dERheU9mV2Vla0Zyb21EYXRlT3JTdHJpbmciLCJkYXRlT3JTdHJpbmciLCJmcmVuY2hUaW1lRnJvbURhdGVPclN0cmluZyIsImxvY2FsSXNvODYwMVN0cmluZ0Zyb21EYXRlIiwiZ2V0VGltZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBOb3RlOiBcIi9pbmRleC5qc1wiIGFkZGVkIHRvIGltcG9ydHMsIGJlY2F1c2Ugb2YgaXNzdWVcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9pc3N1ZXMvMjk2NFxuaW1wb3J0IGZvcm1hdCBmcm9tIFwiZGF0ZS1mbnMvZm9ybWF0L2luZGV4LmpzXCJcbmltcG9ydCBmckxvY2FsZSBmcm9tIFwiZGF0ZS1mbnMvbG9jYWxlL2ZyL2luZGV4LmpzXCJcbmltcG9ydCBwYXJzZSBmcm9tIFwiZGF0ZS1mbnMvcGFyc2UvaW5kZXguanNcIlxuaW1wb3J0IHBhcnNlSVNPIGZyb20gXCJkYXRlLWZucy9wYXJzZUlTTy9pbmRleC5qc1wiXG5cbi8vIFBhdGNoIERhdGUucHJvdG90eXBlLnRvSlNPTiB0byBlbnN1cmUgdGhhdCBkYXRlcyBrZWVwIHRoZWlyIHRpbWV6b25lIHdoZW4gY29udmVydGVkIHRvIHN0cmluZ3MuXG4vLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zMTA5NjEzMC9ob3ctdG8tanNvbi1zdHJpbmdpZnktYS1qYXZhc2NyaXB0LWRhdGUtYW5kLXByZXNlcnZlLXRpbWV6b25lXG5leHBvcnQgY29uc3QgZXhpc3RpbmdEYXRlVG9Kc29uID0gRGF0ZS5wcm90b3R5cGUudG9KU09OXG5leHBvcnQgY29uc3QgcGF0Y2hlZERhdGVUb0pzb24gPSBmdW5jdGlvbiAodGhpczogRGF0ZSk6IHN0cmluZyB7XG4gIHRyeSB7XG4gICAgY29uc3QgdGltZXpvbmVPZmZzZXRJbkhvdXJzID0gLSh0aGlzLmdldFRpbWV6b25lT2Zmc2V0KCkgLyA2MCkgLy9VVEMgbWludXMgbG9jYWwgdGltZVxuICAgIGNvbnN0IHNpZ24gPSB0aW1lem9uZU9mZnNldEluSG91cnMgPj0gMCA/IFwiK1wiIDogXCItXCJcbiAgICBjb25zdCBsZWFkaW5nWmVybyA9IE1hdGguYWJzKHRpbWV6b25lT2Zmc2V0SW5Ib3VycykgPCAxMCA/IFwiMFwiIDogXCJcIlxuXG4gICAgLy8gSXQncyBhIGJpdCB1bmZvcnR1bmF0ZSB0aGF0IHdlIG5lZWQgdG8gY29uc3RydWN0IGEgbmV3IERhdGUgaW5zdGFuY2VcbiAgICAvLyAod2UgZG9uJ3Qgd2FudCBfdGhpc18gRGF0ZSBpbnN0YW5jZSB0byBiZSBtb2RpZmllZCkuXG4gICAgY29uc3QgY29ycmVjdGVkRGF0ZSA9IG5ldyBEYXRlKFxuICAgICAgdGhpcy5nZXRGdWxsWWVhcigpLFxuICAgICAgdGhpcy5nZXRNb250aCgpLFxuICAgICAgdGhpcy5nZXREYXRlKCksXG4gICAgICB0aGlzLmdldEhvdXJzKCksXG4gICAgICB0aGlzLmdldE1pbnV0ZXMoKSxcbiAgICAgIHRoaXMuZ2V0U2Vjb25kcygpLFxuICAgICAgdGhpcy5nZXRNaWxsaXNlY29uZHMoKSxcbiAgICApXG4gICAgY29ycmVjdGVkRGF0ZS5zZXRIb3Vycyh0aGlzLmdldEhvdXJzKCkgKyB0aW1lem9uZU9mZnNldEluSG91cnMpXG4gICAgY29uc3QgaXNvID0gY29ycmVjdGVkRGF0ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoXCJaXCIsIFwiXCIpXG4gICAgcmV0dXJuIChcbiAgICAgIGlzbyArXG4gICAgICBzaWduICtcbiAgICAgIGxlYWRpbmdaZXJvICtcbiAgICAgIE1hdGguYWJzKHRpbWV6b25lT2Zmc2V0SW5Ib3VycykudG9TdHJpbmcoKS5zcGxpdChcIi5cIilbMF0gK1xuICAgICAgXCI6MDBcIlxuICAgIClcbiAgfSBjYXRjaCAoZSkge1xuICAgIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IGV4aXN0aW5nRGF0ZVRvSnNvblxuICAgIGNvbnN0IGpzb25EYXRlID0gdGhpcy50b0pTT04oKVxuICAgIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IHBhdGNoZWREYXRlVG9Kc29uXG4gICAgcmV0dXJuIGpzb25EYXRlXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGZyZW5jaERhdGVGb3JtYXQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImZyLUZSXCIsIHtcbiAgZGF5OiBcIm51bWVyaWNcIixcbiAgbW9udGg6IFwibG9uZ1wiLFxuICB3ZWVrZGF5OiBcImxvbmdcIixcbiAgeWVhcjogXCJudW1lcmljXCIsXG59KVxuZXhwb3J0IGNvbnN0IGZyZW5jaERhdGVTYW1lWWVhclNob3J0Rm9ybWF0ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXCJmci1GUlwiLCB7XG4gIGRheTogXCJudW1lcmljXCIsXG4gIG1vbnRoOiBcInNob3J0XCIsXG59KVxuZXhwb3J0IGNvbnN0IGZyZW5jaFRpbWVGb3JtYXQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImZyLUZSXCIsIHtcbiAgaG91cjogXCJudW1lcmljXCIsXG4gIG1pbnV0ZTogXCIyLWRpZ2l0XCIsXG59KVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZUZyb21OdWxsYWJsZURhdGVPcklzb1N0cmluZyhcbiAgZGF0ZTogRGF0ZSB8IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwsXG4gIGRlZmF1bHRWYWx1ZTogRGF0ZSB8IHVuZGVmaW5lZCB8IG51bGwsXG4pOiBEYXRlIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiBkYXRlXG4gIH1cbiAgaWYgKHR5cGVvZiBkYXRlID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIHBhcnNlSVNPKGRhdGUpXG4gIH1cbiAgcmV0dXJuIGRlZmF1bHRWYWx1ZVxufVxuXG4vLy8gQ29udmVydCBzdHJpbmdzIGxpa2UgXCIyMDE3LTExLTI0KzAxOjAwXCIgdG8gZGF0ZXMuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZUZyb21ZZWFyTW9udGhEYXlUaW1lem9uZVN0cmluZyhkYXRlU3RyaW5nOiBzdHJpbmcpOiBEYXRlIHtcbiAgcmV0dXJuIHBhcnNlKGRhdGVTdHJpbmcsIFwieXl5eS1NTS1kZFhYWFwiLCBuZXcgRGF0ZSgpKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheURhdGVGcm9tTG9jYWxJc29TdHJpbmcoZGF0ZVN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0ZSA9IHBhcnNlSVNPKGRhdGVTdHJpbmcpXG4gIGRhdGVTdHJpbmcgPSBmb3JtYXQoZGF0ZSwgXCJFRUVFIGQgTExMTCB5eXl5IEgnaCdtbVwiLCB7IGxvY2FsZTogZnJMb2NhbGUgfSlcbiAgaWYgKGRhdGVTdHJpbmcuZW5kc1dpdGgoXCIgMGgwMFwiKSkge1xuICAgIGRhdGVTdHJpbmcgPSBkYXRlU3RyaW5nLnN1YnN0cmluZygwLCBkYXRlU3RyaW5nLmxlbmd0aCAtIDUpXG4gIH1cbiAgcmV0dXJuIGRhdGVTdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFJlbGF0aXZlRnJlbmNoVGltZShkYXRlOiBEYXRlLCBub3c6IERhdGUpIHtcbiAgaWYgKFxuICAgIGRhdGUuZ2V0RnVsbFllYXIoKSA9PT0gbm93LmdldEZ1bGxZZWFyKCkgJiZcbiAgICBkYXRlLmdldE1vbnRoKCkgPT09IG5vdy5nZXRNb250aCgpICYmXG4gICAgZGF0ZS5nZXREYXRlKCkgPT09IG5vdy5nZXREYXRlKClcbiAgKSB7XG4gICAgcmV0dXJuIGZyZW5jaFRpbWVGb3JtYXQuZm9ybWF0KGRhdGUpXG4gIH1cbiAgcmV0dXJuIGZyZW5jaERhdGVTYW1lWWVhclNob3J0Rm9ybWF0LmZvcm1hdChkYXRlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJlbmNoRGF0ZVdpdGhvdXREYXlPZldlZWtGcm9tRGF0ZU9yU3RyaW5nKFxuICBkYXRlT3JTdHJpbmc6IERhdGUgfCBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBkYXRlOiBEYXRlID1cbiAgICBkYXRlT3JTdHJpbmcgaW5zdGFuY2VvZiBEYXRlID8gZGF0ZU9yU3RyaW5nIDogcGFyc2VJU08oZGF0ZU9yU3RyaW5nKVxuICBsZXQgZGF0ZVN0cmluZyA9IGZvcm1hdChkYXRlLCBcImQgTExMTCB5eXl5IEgnaCdtbVwiLCB7IGxvY2FsZTogZnJMb2NhbGUgfSlcbiAgaWYgKGRhdGVTdHJpbmcuZW5kc1dpdGgoXCIgMGgwMFwiKSkge1xuICAgIGRhdGVTdHJpbmcgPSBkYXRlU3RyaW5nLnN1YnN0cmluZygwLCBkYXRlU3RyaW5nLmxlbmd0aCAtIDUpXG4gIH1cbiAgcmV0dXJuIGRhdGVTdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyZW5jaFRpbWVGcm9tRGF0ZU9yU3RyaW5nKFxuICBkYXRlT3JTdHJpbmc6IERhdGUgfCBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBkYXRlOiBEYXRlID1cbiAgICBkYXRlT3JTdHJpbmcgaW5zdGFuY2VvZiBEYXRlID8gZGF0ZU9yU3RyaW5nIDogcGFyc2VJU08oZGF0ZU9yU3RyaW5nKVxuICByZXR1cm4gZm9ybWF0KGRhdGUsIFwiSCdoJ21tXCIsIHsgbG9jYWxlOiBmckxvY2FsZSB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxJc284NjAxU3RyaW5nRnJvbURhdGUoZGF0ZTogRGF0ZSkge1xuICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgLSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMClcbiAgICAudG9JU09TdHJpbmcoKVxuICAgIC5zcGxpdChcIlRcIilbMF1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUFpRDtBQUxqRDtBQUNBOztBQU1BO0FBQ0E7QUFDTyxJQUFNQSxrQkFBa0IsR0FBR0MsSUFBSSxDQUFDQyxTQUFTLENBQUNDLE1BQU07QUFBQTtBQUNoRCxJQUFNQyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCLEdBQWlDO0VBQzdELElBQUk7SUFDRixJQUFNQyxxQkFBcUIsR0FBRyxFQUFFLElBQUksQ0FBQ0MsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBQztJQUMvRCxJQUFNQyxJQUFJLEdBQUdGLHFCQUFxQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRztJQUNuRCxJQUFNRyxXQUFX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
|
package/lib/dates.mjs
CHANGED
|
@@ -3,18 +3,19 @@
|
|
|
3
3
|
import format from "date-fns/format/index.js";
|
|
4
4
|
import frLocale from "date-fns/locale/fr/index.js";
|
|
5
5
|
import parse from "date-fns/parse/index.js";
|
|
6
|
-
import parseISO from "date-fns/parseISO/index.js";
|
|
7
|
-
// https://stackoverflow.com/questions/31096130/how-to-json-stringify-a-javascript-date-and-preserve-timezone
|
|
6
|
+
import parseISO from "date-fns/parseISO/index.js";
|
|
8
7
|
|
|
8
|
+
// Patch Date.prototype.toJSON to ensure that dates keep their timezone when converted to strings.
|
|
9
|
+
// https://stackoverflow.com/questions/31096130/how-to-json-stringify-a-javascript-date-and-preserve-timezone
|
|
9
10
|
export const existingDateToJson = Date.prototype.toJSON;
|
|
10
11
|
export const patchedDateToJson = function () {
|
|
11
12
|
try {
|
|
12
13
|
const timezoneOffsetInHours = -(this.getTimezoneOffset() / 60); //UTC minus local time
|
|
13
|
-
|
|
14
14
|
const sign = timezoneOffsetInHours >= 0 ? "+" : "-";
|
|
15
|
-
const leadingZero = Math.abs(timezoneOffsetInHours) < 10 ? "0" : "";
|
|
16
|
-
// (we don't want _this_ Date instance to be modified).
|
|
15
|
+
const leadingZero = Math.abs(timezoneOffsetInHours) < 10 ? "0" : "";
|
|
17
16
|
|
|
17
|
+
// It's a bit unfortunate that we need to construct a new Date instance
|
|
18
|
+
// (we don't want _this_ Date instance to be modified).
|
|
18
19
|
const correctedDate = new Date(this.getFullYear(), this.getMonth(), this.getDate(), this.getHours(), this.getMinutes(), this.getSeconds(), this.getMilliseconds());
|
|
19
20
|
correctedDate.setHours(this.getHours() + timezoneOffsetInHours);
|
|
20
21
|
const iso = correctedDate.toISOString().replace("Z", "");
|
|
@@ -44,14 +45,13 @@ export function dateFromNullableDateOrIsoString(date, defaultValue) {
|
|
|
44
45
|
if (date instanceof Date) {
|
|
45
46
|
return date;
|
|
46
47
|
}
|
|
47
|
-
|
|
48
48
|
if (typeof date === "string") {
|
|
49
49
|
return parseISO(date);
|
|
50
50
|
}
|
|
51
|
-
|
|
52
51
|
return defaultValue;
|
|
53
|
-
}
|
|
52
|
+
}
|
|
54
53
|
|
|
54
|
+
/// Convert strings like "2017-11-24+01:00" to dates.
|
|
55
55
|
export function dateFromYearMonthDayTimezoneString(dateString) {
|
|
56
56
|
return parse(dateString, "yyyy-MM-ddXXX", new Date());
|
|
57
57
|
}
|
|
@@ -60,18 +60,15 @@ export function displayDateFromLocalIsoString(dateString) {
|
|
|
60
60
|
dateString = format(date, "EEEE d LLLL yyyy H'h'mm", {
|
|
61
61
|
locale: frLocale
|
|
62
62
|
});
|
|
63
|
-
|
|
64
63
|
if (dateString.endsWith(" 0h00")) {
|
|
65
64
|
dateString = dateString.substring(0, dateString.length - 5);
|
|
66
65
|
}
|
|
67
|
-
|
|
68
66
|
return dateString;
|
|
69
67
|
}
|
|
70
68
|
export function formatRelativeFrenchTime(date, now) {
|
|
71
69
|
if (date.getFullYear() === now.getFullYear() && date.getMonth() === now.getMonth() && date.getDate() === now.getDate()) {
|
|
72
70
|
return frenchTimeFormat.format(date);
|
|
73
71
|
}
|
|
74
|
-
|
|
75
72
|
return frenchDateSameYearShortFormat.format(date);
|
|
76
73
|
}
|
|
77
74
|
export function frenchDateWithoutDayOfWeekFromDateOrString(dateOrString) {
|
|
@@ -79,11 +76,9 @@ export function frenchDateWithoutDayOfWeekFromDateOrString(dateOrString) {
|
|
|
79
76
|
let dateString = format(date, "d LLLL yyyy H'h'mm", {
|
|
80
77
|
locale: frLocale
|
|
81
78
|
});
|
|
82
|
-
|
|
83
79
|
if (dateString.endsWith(" 0h00")) {
|
|
84
80
|
dateString = dateString.substring(0, dateString.length - 5);
|
|
85
81
|
}
|
|
86
|
-
|
|
87
82
|
return dateString;
|
|
88
83
|
}
|
|
89
84
|
export function frenchTimeFromDateOrString(dateOrString) {
|
|
@@ -95,4 +90,4 @@ export function frenchTimeFromDateOrString(dateOrString) {
|
|
|
95
90
|
export function localIso8601StringFromDate(date) {
|
|
96
91
|
return new Date(date.getTime() - date.getTimezoneOffset() * 60000).toISOString().split("T")[0];
|
|
97
92
|
}
|
|
98
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3JtYXQiLCJmckxvY2FsZSIsInBhcnNlIiwicGFyc2VJU08iLCJleGlzdGluZ0RhdGVUb0pzb24iLCJEYXRlIiwicHJvdG90eXBlIiwidG9KU09OIiwicGF0Y2hlZERhdGVUb0pzb24iLCJ0aW1lem9uZU9mZnNldEluSG91cnMiLCJnZXRUaW1lem9uZU9mZnNldCIsInNpZ24iLCJsZWFkaW5nWmVybyIsIk1hdGgiLCJhYnMiLCJjb3JyZWN0ZWREYXRlIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJnZXRIb3VycyIsImdldE1pbnV0ZXMiLCJnZXRTZWNvbmRzIiwiZ2V0TWlsbGlzZWNvbmRzIiwic2V0SG91cnMiLCJpc28iLCJ0b0lTT1N0cmluZyIsInJlcGxhY2UiLCJ0b1N0cmluZyIsInNwbGl0IiwiZSIsImpzb25EYXRlIiwiZnJlbmNoRGF0ZUZvcm1hdCIsIkludGwiLCJEYXRlVGltZUZvcm1hdCIsImRheSIsIm1vbnRoIiwid2Vla2RheSIsInllYXIiLCJmcmVuY2hEYXRlU2FtZVllYXJTaG9ydEZvcm1hdCIsImZyZW5jaFRpbWVGb3JtYXQiLCJob3VyIiwibWludXRlIiwiZGF0ZUZyb21OdWxsYWJsZURhdGVPcklzb1N0cmluZyIsImRhdGUiLCJkZWZhdWx0VmFsdWUiLCJkYXRlRnJvbVllYXJNb250aERheVRpbWV6b25lU3RyaW5nIiwiZGF0ZVN0cmluZyIsImRpc3BsYXlEYXRlRnJvbUxvY2FsSXNvU3RyaW5nIiwibG9jYWxlIiwiZW5kc1dpdGgiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJmb3JtYXRSZWxhdGl2ZUZyZW5jaFRpbWUiLCJub3ciLCJmcmVuY2hEYXRlV2l0aG91dERheU9mV2Vla0Zyb21EYXRlT3JTdHJpbmciLCJkYXRlT3JTdHJpbmciLCJmcmVuY2hUaW1lRnJvbURhdGVPclN0cmluZyIsImxvY2FsSXNvODYwMVN0cmluZ0Zyb21EYXRlIiwiZ2V0VGltZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBOb3RlOiBcIi9pbmRleC5qc1wiIGFkZGVkIHRvIGltcG9ydHMsIGJlY2F1c2Ugb2YgaXNzdWVcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9pc3N1ZXMvMjk2NFxuaW1wb3J0IGZvcm1hdCBmcm9tIFwiZGF0ZS1mbnMvZm9ybWF0L2luZGV4LmpzXCJcbmltcG9ydCBmckxvY2FsZSBmcm9tIFwiZGF0ZS1mbnMvbG9jYWxlL2ZyL2luZGV4LmpzXCJcbmltcG9ydCBwYXJzZSBmcm9tIFwiZGF0ZS1mbnMvcGFyc2UvaW5kZXguanNcIlxuaW1wb3J0IHBhcnNlSVNPIGZyb20gXCJkYXRlLWZucy9wYXJzZUlTTy9pbmRleC5qc1wiXG5cbi8vIFBhdGNoIERhdGUucHJvdG90eXBlLnRvSlNPTiB0byBlbnN1cmUgdGhhdCBkYXRlcyBrZWVwIHRoZWlyIHRpbWV6b25lIHdoZW4gY29udmVydGVkIHRvIHN0cmluZ3MuXG4vLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zMTA5NjEzMC9ob3ctdG8tanNvbi1zdHJpbmdpZnktYS1qYXZhc2NyaXB0LWRhdGUtYW5kLXByZXNlcnZlLXRpbWV6b25lXG5leHBvcnQgY29uc3QgZXhpc3RpbmdEYXRlVG9Kc29uID0gRGF0ZS5wcm90b3R5cGUudG9KU09OXG5leHBvcnQgY29uc3QgcGF0Y2hlZERhdGVUb0pzb24gPSBmdW5jdGlvbiAodGhpczogRGF0ZSk6IHN0cmluZyB7XG4gIHRyeSB7XG4gICAgY29uc3QgdGltZXpvbmVPZmZzZXRJbkhvdXJzID0gLSh0aGlzLmdldFRpbWV6b25lT2Zmc2V0KCkgLyA2MCkgLy9VVEMgbWludXMgbG9jYWwgdGltZVxuICAgIGNvbnN0IHNpZ24gPSB0aW1lem9uZU9mZnNldEluSG91cnMgPj0gMCA/IFwiK1wiIDogXCItXCJcbiAgICBjb25zdCBsZWFkaW5nWmVybyA9IE1hdGguYWJzKHRpbWV6b25lT2Zmc2V0SW5Ib3VycykgPCAxMCA/IFwiMFwiIDogXCJcIlxuXG4gICAgLy8gSXQncyBhIGJpdCB1bmZvcnR1bmF0ZSB0aGF0IHdlIG5lZWQgdG8gY29uc3RydWN0IGEgbmV3IERhdGUgaW5zdGFuY2VcbiAgICAvLyAod2UgZG9uJ3Qgd2FudCBfdGhpc18gRGF0ZSBpbnN0YW5jZSB0byBiZSBtb2RpZmllZCkuXG4gICAgY29uc3QgY29ycmVjdGVkRGF0ZSA9IG5ldyBEYXRlKFxuICAgICAgdGhpcy5nZXRGdWxsWWVhcigpLFxuICAgICAgdGhpcy5nZXRNb250aCgpLFxuICAgICAgdGhpcy5nZXREYXRlKCksXG4gICAgICB0aGlzLmdldEhvdXJzKCksXG4gICAgICB0aGlzLmdldE1pbnV0ZXMoKSxcbiAgICAgIHRoaXMuZ2V0U2Vjb25kcygpLFxuICAgICAgdGhpcy5nZXRNaWxsaXNlY29uZHMoKSxcbiAgICApXG4gICAgY29ycmVjdGVkRGF0ZS5zZXRIb3Vycyh0aGlzLmdldEhvdXJzKCkgKyB0aW1lem9uZU9mZnNldEluSG91cnMpXG4gICAgY29uc3QgaXNvID0gY29ycmVjdGVkRGF0ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoXCJaXCIsIFwiXCIpXG4gICAgcmV0dXJuIChcbiAgICAgIGlzbyArXG4gICAgICBzaWduICtcbiAgICAgIGxlYWRpbmdaZXJvICtcbiAgICAgIE1hdGguYWJzKHRpbWV6b25lT2Zmc2V0SW5Ib3VycykudG9TdHJpbmcoKS5zcGxpdChcIi5cIilbMF0gK1xuICAgICAgXCI6MDBcIlxuICAgIClcbiAgfSBjYXRjaCAoZSkge1xuICAgIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IGV4aXN0aW5nRGF0ZVRvSnNvblxuICAgIGNvbnN0IGpzb25EYXRlID0gdGhpcy50b0pTT04oKVxuICAgIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IHBhdGNoZWREYXRlVG9Kc29uXG4gICAgcmV0dXJuIGpzb25EYXRlXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGZyZW5jaERhdGVGb3JtYXQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImZyLUZSXCIsIHtcbiAgZGF5OiBcIm51bWVyaWNcIixcbiAgbW9udGg6IFwibG9uZ1wiLFxuICB3ZWVrZGF5OiBcImxvbmdcIixcbiAgeWVhcjogXCJudW1lcmljXCIsXG59KVxuZXhwb3J0IGNvbnN0IGZyZW5jaERhdGVTYW1lWWVhclNob3J0Rm9ybWF0ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXCJmci1GUlwiLCB7XG4gIGRheTogXCJudW1lcmljXCIsXG4gIG1vbnRoOiBcInNob3J0XCIsXG59KVxuZXhwb3J0IGNvbnN0IGZyZW5jaFRpbWVGb3JtYXQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImZyLUZSXCIsIHtcbiAgaG91cjogXCJudW1lcmljXCIsXG4gIG1pbnV0ZTogXCIyLWRpZ2l0XCIsXG59KVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZUZyb21OdWxsYWJsZURhdGVPcklzb1N0cmluZyhcbiAgZGF0ZTogRGF0ZSB8IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwsXG4gIGRlZmF1bHRWYWx1ZTogRGF0ZSB8IHVuZGVmaW5lZCB8IG51bGwsXG4pOiBEYXRlIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiBkYXRlXG4gIH1cbiAgaWYgKHR5cGVvZiBkYXRlID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIHBhcnNlSVNPKGRhdGUpXG4gIH1cbiAgcmV0dXJuIGRlZmF1bHRWYWx1ZVxufVxuXG4vLy8gQ29udmVydCBzdHJpbmdzIGxpa2UgXCIyMDE3LTExLTI0KzAxOjAwXCIgdG8gZGF0ZXMuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZUZyb21ZZWFyTW9udGhEYXlUaW1lem9uZVN0cmluZyhkYXRlU3RyaW5nOiBzdHJpbmcpOiBEYXRlIHtcbiAgcmV0dXJuIHBhcnNlKGRhdGVTdHJpbmcsIFwieXl5eS1NTS1kZFhYWFwiLCBuZXcgRGF0ZSgpKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheURhdGVGcm9tTG9jYWxJc29TdHJpbmcoZGF0ZVN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0ZSA9IHBhcnNlSVNPKGRhdGVTdHJpbmcpXG4gIGRhdGVTdHJpbmcgPSBmb3JtYXQoZGF0ZSwgXCJFRUVFIGQgTExMTCB5eXl5IEgnaCdtbVwiLCB7IGxvY2FsZTogZnJMb2NhbGUgfSlcbiAgaWYgKGRhdGVTdHJpbmcuZW5kc1dpdGgoXCIgMGgwMFwiKSkge1xuICAgIGRhdGVTdHJpbmcgPSBkYXRlU3RyaW5nLnN1YnN0cmluZygwLCBkYXRlU3RyaW5nLmxlbmd0aCAtIDUpXG4gIH1cbiAgcmV0dXJuIGRhdGVTdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFJlbGF0aXZlRnJlbmNoVGltZShkYXRlOiBEYXRlLCBub3c6IERhdGUpIHtcbiAgaWYgKFxuICAgIGRhdGUuZ2V0RnVsbFllYXIoKSA9PT0gbm93LmdldEZ1bGxZZWFyKCkgJiZcbiAgICBkYXRlLmdldE1vbnRoKCkgPT09IG5vdy5nZXRNb250aCgpICYmXG4gICAgZGF0ZS5nZXREYXRlKCkgPT09IG5vdy5nZXREYXRlKClcbiAgKSB7XG4gICAgcmV0dXJuIGZyZW5jaFRpbWVGb3JtYXQuZm9ybWF0KGRhdGUpXG4gIH1cbiAgcmV0dXJuIGZyZW5jaERhdGVTYW1lWWVhclNob3J0Rm9ybWF0LmZvcm1hdChkYXRlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJlbmNoRGF0ZVdpdGhvdXREYXlPZldlZWtGcm9tRGF0ZU9yU3RyaW5nKFxuICBkYXRlT3JTdHJpbmc6IERhdGUgfCBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBkYXRlOiBEYXRlID1cbiAgICBkYXRlT3JTdHJpbmcgaW5zdGFuY2VvZiBEYXRlID8gZGF0ZU9yU3RyaW5nIDogcGFyc2VJU08oZGF0ZU9yU3RyaW5nKVxuICBsZXQgZGF0ZVN0cmluZyA9IGZvcm1hdChkYXRlLCBcImQgTExMTCB5eXl5IEgnaCdtbVwiLCB7IGxvY2FsZTogZnJMb2NhbGUgfSlcbiAgaWYgKGRhdGVTdHJpbmcuZW5kc1dpdGgoXCIgMGgwMFwiKSkge1xuICAgIGRhdGVTdHJpbmcgPSBkYXRlU3RyaW5nLnN1YnN0cmluZygwLCBkYXRlU3RyaW5nLmxlbmd0aCAtIDUpXG4gIH1cbiAgcmV0dXJuIGRhdGVTdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyZW5jaFRpbWVGcm9tRGF0ZU9yU3RyaW5nKFxuICBkYXRlT3JTdHJpbmc6IERhdGUgfCBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBkYXRlOiBEYXRlID1cbiAgICBkYXRlT3JTdHJpbmcgaW5zdGFuY2VvZiBEYXRlID8gZGF0ZU9yU3RyaW5nIDogcGFyc2VJU08oZGF0ZU9yU3RyaW5nKVxuICByZXR1cm4gZm9ybWF0KGRhdGUsIFwiSCdoJ21tXCIsIHsgbG9jYWxlOiBmckxvY2FsZSB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxJc284NjAxU3RyaW5nRnJvbURhdGUoZGF0ZTogRGF0ZSkge1xuICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgLSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMClcbiAgICAudG9JU09TdHJpbmcoKVxuICAgIC5zcGxpdChcIlRcIilbMF1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBLE9BQU9BLE1BQVAsTUFBbUIsMEJBQW5CO0FBQ0EsT0FBT0MsUUFBUCxNQUFxQiw2QkFBckI7QUFDQSxPQUFPQyxLQUFQLE1BQWtCLHlCQUFsQjtBQUNBLE9BQU9DLFFBQVAsTUFBcUIsNEJBQXJCLEMsQ0FFQTtBQUNBOztBQUNBLE9BQU8sTUFBTUMsa0JBQWtCLEdBQUdDLElBQUksQ0FBQ0MsU0FBTCxDQUFlQyxNQUExQztBQUNQLE9BQU8sTUFBTUMsaUJBQWlCLEdBQUcsWUFBOEI7RUFDN0QsSUFBSTtJQUNGLE1BQU1DLHFCQUFxQixHQUFHLEVBQUUsS0FBS0MsaUJBQUwsS0FBMkIsRUFBN0IsQ0FBOUIsQ0FERSxDQUM2RDs7SUFDL0QsTUFBTUMsSUFBSSxHQUFH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
|
|
93
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3JtYXQiLCJmckxvY2FsZSIsInBhcnNlIiwicGFyc2VJU08iLCJleGlzdGluZ0RhdGVUb0pzb24iLCJEYXRlIiwicHJvdG90eXBlIiwidG9KU09OIiwicGF0Y2hlZERhdGVUb0pzb24iLCJ0aW1lem9uZU9mZnNldEluSG91cnMiLCJnZXRUaW1lem9uZU9mZnNldCIsInNpZ24iLCJsZWFkaW5nWmVybyIsIk1hdGgiLCJhYnMiLCJjb3JyZWN0ZWREYXRlIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJnZXRIb3VycyIsImdldE1pbnV0ZXMiLCJnZXRTZWNvbmRzIiwiZ2V0TWlsbGlzZWNvbmRzIiwic2V0SG91cnMiLCJpc28iLCJ0b0lTT1N0cmluZyIsInJlcGxhY2UiLCJ0b1N0cmluZyIsInNwbGl0IiwiZSIsImpzb25EYXRlIiwiZnJlbmNoRGF0ZUZvcm1hdCIsIkludGwiLCJEYXRlVGltZUZvcm1hdCIsImRheSIsIm1vbnRoIiwid2Vla2RheSIsInllYXIiLCJmcmVuY2hEYXRlU2FtZVllYXJTaG9ydEZvcm1hdCIsImZyZW5jaFRpbWVGb3JtYXQiLCJob3VyIiwibWludXRlIiwiZGF0ZUZyb21OdWxsYWJsZURhdGVPcklzb1N0cmluZyIsImRhdGUiLCJkZWZhdWx0VmFsdWUiLCJkYXRlRnJvbVllYXJNb250aERheVRpbWV6b25lU3RyaW5nIiwiZGF0ZVN0cmluZyIsImRpc3BsYXlEYXRlRnJvbUxvY2FsSXNvU3RyaW5nIiwibG9jYWxlIiwiZW5kc1dpdGgiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJmb3JtYXRSZWxhdGl2ZUZyZW5jaFRpbWUiLCJub3ciLCJmcmVuY2hEYXRlV2l0aG91dERheU9mV2Vla0Zyb21EYXRlT3JTdHJpbmciLCJkYXRlT3JTdHJpbmciLCJmcmVuY2hUaW1lRnJvbURhdGVPclN0cmluZyIsImxvY2FsSXNvODYwMVN0cmluZ0Zyb21EYXRlIiwiZ2V0VGltZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBOb3RlOiBcIi9pbmRleC5qc1wiIGFkZGVkIHRvIGltcG9ydHMsIGJlY2F1c2Ugb2YgaXNzdWVcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy9kYXRlLWZucy9pc3N1ZXMvMjk2NFxuaW1wb3J0IGZvcm1hdCBmcm9tIFwiZGF0ZS1mbnMvZm9ybWF0L2luZGV4LmpzXCJcbmltcG9ydCBmckxvY2FsZSBmcm9tIFwiZGF0ZS1mbnMvbG9jYWxlL2ZyL2luZGV4LmpzXCJcbmltcG9ydCBwYXJzZSBmcm9tIFwiZGF0ZS1mbnMvcGFyc2UvaW5kZXguanNcIlxuaW1wb3J0IHBhcnNlSVNPIGZyb20gXCJkYXRlLWZucy9wYXJzZUlTTy9pbmRleC5qc1wiXG5cbi8vIFBhdGNoIERhdGUucHJvdG90eXBlLnRvSlNPTiB0byBlbnN1cmUgdGhhdCBkYXRlcyBrZWVwIHRoZWlyIHRpbWV6b25lIHdoZW4gY29udmVydGVkIHRvIHN0cmluZ3MuXG4vLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zMTA5NjEzMC9ob3ctdG8tanNvbi1zdHJpbmdpZnktYS1qYXZhc2NyaXB0LWRhdGUtYW5kLXByZXNlcnZlLXRpbWV6b25lXG5leHBvcnQgY29uc3QgZXhpc3RpbmdEYXRlVG9Kc29uID0gRGF0ZS5wcm90b3R5cGUudG9KU09OXG5leHBvcnQgY29uc3QgcGF0Y2hlZERhdGVUb0pzb24gPSBmdW5jdGlvbiAodGhpczogRGF0ZSk6IHN0cmluZyB7XG4gIHRyeSB7XG4gICAgY29uc3QgdGltZXpvbmVPZmZzZXRJbkhvdXJzID0gLSh0aGlzLmdldFRpbWV6b25lT2Zmc2V0KCkgLyA2MCkgLy9VVEMgbWludXMgbG9jYWwgdGltZVxuICAgIGNvbnN0IHNpZ24gPSB0aW1lem9uZU9mZnNldEluSG91cnMgPj0gMCA/IFwiK1wiIDogXCItXCJcbiAgICBjb25zdCBsZWFkaW5nWmVybyA9IE1hdGguYWJzKHRpbWV6b25lT2Zmc2V0SW5Ib3VycykgPCAxMCA/IFwiMFwiIDogXCJcIlxuXG4gICAgLy8gSXQncyBhIGJpdCB1bmZvcnR1bmF0ZSB0aGF0IHdlIG5lZWQgdG8gY29uc3RydWN0IGEgbmV3IERhdGUgaW5zdGFuY2VcbiAgICAvLyAod2UgZG9uJ3Qgd2FudCBfdGhpc18gRGF0ZSBpbnN0YW5jZSB0byBiZSBtb2RpZmllZCkuXG4gICAgY29uc3QgY29ycmVjdGVkRGF0ZSA9IG5ldyBEYXRlKFxuICAgICAgdGhpcy5nZXRGdWxsWWVhcigpLFxuICAgICAgdGhpcy5nZXRNb250aCgpLFxuICAgICAgdGhpcy5nZXREYXRlKCksXG4gICAgICB0aGlzLmdldEhvdXJzKCksXG4gICAgICB0aGlzLmdldE1pbnV0ZXMoKSxcbiAgICAgIHRoaXMuZ2V0U2Vjb25kcygpLFxuICAgICAgdGhpcy5nZXRNaWxsaXNlY29uZHMoKSxcbiAgICApXG4gICAgY29ycmVjdGVkRGF0ZS5zZXRIb3Vycyh0aGlzLmdldEhvdXJzKCkgKyB0aW1lem9uZU9mZnNldEluSG91cnMpXG4gICAgY29uc3QgaXNvID0gY29ycmVjdGVkRGF0ZS50b0lTT1N0cmluZygpLnJlcGxhY2UoXCJaXCIsIFwiXCIpXG4gICAgcmV0dXJuIChcbiAgICAgIGlzbyArXG4gICAgICBzaWduICtcbiAgICAgIGxlYWRpbmdaZXJvICtcbiAgICAgIE1hdGguYWJzKHRpbWV6b25lT2Zmc2V0SW5Ib3VycykudG9TdHJpbmcoKS5zcGxpdChcIi5cIilbMF0gK1xuICAgICAgXCI6MDBcIlxuICAgIClcbiAgfSBjYXRjaCAoZSkge1xuICAgIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IGV4aXN0aW5nRGF0ZVRvSnNvblxuICAgIGNvbnN0IGpzb25EYXRlID0gdGhpcy50b0pTT04oKVxuICAgIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IHBhdGNoZWREYXRlVG9Kc29uXG4gICAgcmV0dXJuIGpzb25EYXRlXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGZyZW5jaERhdGVGb3JtYXQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImZyLUZSXCIsIHtcbiAgZGF5OiBcIm51bWVyaWNcIixcbiAgbW9udGg6IFwibG9uZ1wiLFxuICB3ZWVrZGF5OiBcImxvbmdcIixcbiAgeWVhcjogXCJudW1lcmljXCIsXG59KVxuZXhwb3J0IGNvbnN0IGZyZW5jaERhdGVTYW1lWWVhclNob3J0Rm9ybWF0ID0gbmV3IEludGwuRGF0ZVRpbWVGb3JtYXQoXCJmci1GUlwiLCB7XG4gIGRheTogXCJudW1lcmljXCIsXG4gIG1vbnRoOiBcInNob3J0XCIsXG59KVxuZXhwb3J0IGNvbnN0IGZyZW5jaFRpbWVGb3JtYXQgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImZyLUZSXCIsIHtcbiAgaG91cjogXCJudW1lcmljXCIsXG4gIG1pbnV0ZTogXCIyLWRpZ2l0XCIsXG59KVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZUZyb21OdWxsYWJsZURhdGVPcklzb1N0cmluZyhcbiAgZGF0ZTogRGF0ZSB8IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwsXG4gIGRlZmF1bHRWYWx1ZTogRGF0ZSB8IHVuZGVmaW5lZCB8IG51bGwsXG4pOiBEYXRlIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG4gIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiBkYXRlXG4gIH1cbiAgaWYgKHR5cGVvZiBkYXRlID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIHBhcnNlSVNPKGRhdGUpXG4gIH1cbiAgcmV0dXJuIGRlZmF1bHRWYWx1ZVxufVxuXG4vLy8gQ29udmVydCBzdHJpbmdzIGxpa2UgXCIyMDE3LTExLTI0KzAxOjAwXCIgdG8gZGF0ZXMuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZUZyb21ZZWFyTW9udGhEYXlUaW1lem9uZVN0cmluZyhkYXRlU3RyaW5nOiBzdHJpbmcpOiBEYXRlIHtcbiAgcmV0dXJuIHBhcnNlKGRhdGVTdHJpbmcsIFwieXl5eS1NTS1kZFhYWFwiLCBuZXcgRGF0ZSgpKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheURhdGVGcm9tTG9jYWxJc29TdHJpbmcoZGF0ZVN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0ZSA9IHBhcnNlSVNPKGRhdGVTdHJpbmcpXG4gIGRhdGVTdHJpbmcgPSBmb3JtYXQoZGF0ZSwgXCJFRUVFIGQgTExMTCB5eXl5IEgnaCdtbVwiLCB7IGxvY2FsZTogZnJMb2NhbGUgfSlcbiAgaWYgKGRhdGVTdHJpbmcuZW5kc1dpdGgoXCIgMGgwMFwiKSkge1xuICAgIGRhdGVTdHJpbmcgPSBkYXRlU3RyaW5nLnN1YnN0cmluZygwLCBkYXRlU3RyaW5nLmxlbmd0aCAtIDUpXG4gIH1cbiAgcmV0dXJuIGRhdGVTdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFJlbGF0aXZlRnJlbmNoVGltZShkYXRlOiBEYXRlLCBub3c6IERhdGUpIHtcbiAgaWYgKFxuICAgIGRhdGUuZ2V0RnVsbFllYXIoKSA9PT0gbm93LmdldEZ1bGxZZWFyKCkgJiZcbiAgICBkYXRlLmdldE1vbnRoKCkgPT09IG5vdy5nZXRNb250aCgpICYmXG4gICAgZGF0ZS5nZXREYXRlKCkgPT09IG5vdy5nZXREYXRlKClcbiAgKSB7XG4gICAgcmV0dXJuIGZyZW5jaFRpbWVGb3JtYXQuZm9ybWF0KGRhdGUpXG4gIH1cbiAgcmV0dXJuIGZyZW5jaERhdGVTYW1lWWVhclNob3J0Rm9ybWF0LmZvcm1hdChkYXRlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZnJlbmNoRGF0ZVdpdGhvdXREYXlPZldlZWtGcm9tRGF0ZU9yU3RyaW5nKFxuICBkYXRlT3JTdHJpbmc6IERhdGUgfCBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBkYXRlOiBEYXRlID1cbiAgICBkYXRlT3JTdHJpbmcgaW5zdGFuY2VvZiBEYXRlID8gZGF0ZU9yU3RyaW5nIDogcGFyc2VJU08oZGF0ZU9yU3RyaW5nKVxuICBsZXQgZGF0ZVN0cmluZyA9IGZvcm1hdChkYXRlLCBcImQgTExMTCB5eXl5IEgnaCdtbVwiLCB7IGxvY2FsZTogZnJMb2NhbGUgfSlcbiAgaWYgKGRhdGVTdHJpbmcuZW5kc1dpdGgoXCIgMGgwMFwiKSkge1xuICAgIGRhdGVTdHJpbmcgPSBkYXRlU3RyaW5nLnN1YnN0cmluZygwLCBkYXRlU3RyaW5nLmxlbmd0aCAtIDUpXG4gIH1cbiAgcmV0dXJuIGRhdGVTdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZyZW5jaFRpbWVGcm9tRGF0ZU9yU3RyaW5nKFxuICBkYXRlT3JTdHJpbmc6IERhdGUgfCBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBkYXRlOiBEYXRlID1cbiAgICBkYXRlT3JTdHJpbmcgaW5zdGFuY2VvZiBEYXRlID8gZGF0ZU9yU3RyaW5nIDogcGFyc2VJU08oZGF0ZU9yU3RyaW5nKVxuICByZXR1cm4gZm9ybWF0KGRhdGUsIFwiSCdoJ21tXCIsIHsgbG9jYWxlOiBmckxvY2FsZSB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxJc284NjAxU3RyaW5nRnJvbURhdGUoZGF0ZTogRGF0ZSkge1xuICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgLSBkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMClcbiAgICAudG9JU09TdHJpbmcoKVxuICAgIC5zcGxpdChcIlRcIilbMF1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBLE9BQU9BLE1BQU0sTUFBTSwwQkFBMEI7QUFDN0MsT0FBT0MsUUFBUSxNQUFNLDZCQUE2QjtBQUNsRCxPQUFPQyxLQUFLLE1BQU0seUJBQXlCO0FBQzNDLE9BQU9DLFFBQVEsTUFBTSw0QkFBNEI7O0FBRWpEO0FBQ0E7QUFDQSxPQUFPLE1BQU1DLGtCQUFrQixHQUFHQyxJQUFJLENBQUNDLFNBQVMsQ0FBQ0MsTUFBTTtBQUN2RCxPQUFPLE1BQU1DLGlCQUFpQixHQUFHLFlBQThCO0VBQzdELElBQUk7SUFDRixNQUFNQyxxQkFBcUIsR0FBRyxFQUFFLElBQUksQ0FBQ0MsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBQztJQUMvRCxNQUFNQyxJQUFJLEdBQUdG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
|