@speleotica/frcsdata 4.0.2 → 4.0.4
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/FrcsPlotFile.d.ts +1 -1
- package/FrcsPlotShot.d.ts +1 -1
- package/FrcsShot.d.ts +1 -1
- package/FrcsShot.js +2 -3
- package/FrcsSurveyFile.d.ts +1 -1
- package/FrcsTrip.d.ts +2 -2
- package/FrcsTripSummary.d.ts +1 -1
- package/FrcsTripSummaryFile.d.ts +1 -1
- package/formatFrcsShot.js +7 -6
- package/index.js +11 -11
- package/node/index.js +6 -9
- package/package.json +26 -124
- package/parseFrcsPlotFile.js +4 -3
- package/parseFrcsSurveyFile.js +126 -107
- package/parseFrcsTripSummaryFile.js +5 -4
- package/string/index.js +8 -11
- package/es/FrcsPlotFile.js +0 -6
- package/es/FrcsPlotShot.js +0 -6
- package/es/FrcsShot.js +0 -14
- package/es/FrcsSurveyFile.js +0 -6
- package/es/FrcsTrip.js +0 -6
- package/es/FrcsTripSummary.js +0 -6
- package/es/FrcsTripSummaryFile.js +0 -6
- package/es/formatFrcsShot.js +0 -75
- package/es/formatFrcsShot.spec.js +0 -141
- package/es/index.js +0 -96
- package/es/node/index.js +0 -20
- package/es/node/parseFrcsPlotFile.spec.js +0 -167
- package/es/node/parseFrcsSurveyFile.spec.js +0 -314
- package/es/node/parseFrcsTripSummaryFile.spec.js +0 -78
- package/es/parseFrcsPlotFile.js +0 -135
- package/es/parseFrcsSurveyFile.js +0 -485
- package/es/parseFrcsTripSummaryFile.js +0 -73
- package/es/string/index.js +0 -21
- package/es/string/parseFrcsPlotFile.spec.js +0 -179
- package/es/string/parseFrcsSurveyFile.spec.js +0 -644
- package/formatFrcsShot.spec.js +0 -139
- package/node/parseFrcsPlotFile.spec.js +0 -181
- package/node/parseFrcsSurveyFile.spec.js +0 -328
- package/node/parseFrcsTripSummaryFile.spec.js +0 -104
- package/string/parseFrcsPlotFile.spec.js +0 -182
- package/string/parseFrcsSurveyFile.spec.js +0 -673
- package/yarn.lock +0 -9542
package/es/string/index.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.parseFrcsTripSummaryFile = exports.parseFrcsSurveyFile = exports.parseFrcsPlotFile = void 0;
|
|
7
|
-
var _parseFrcsSurveyFile2 = _interopRequireDefault(require("../parseFrcsSurveyFile"));
|
|
8
|
-
var _parseFrcsPlotFile2 = _interopRequireDefault(require("../parseFrcsPlotFile"));
|
|
9
|
-
var _parseFrcsTripSummaryFile2 = _interopRequireDefault(require("../parseFrcsTripSummaryFile"));
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
async function* linesOf(s) {
|
|
12
|
-
yield* s.split(/\r\n?|\n/gm);
|
|
13
|
-
}
|
|
14
|
-
const convert = fn => (file, str) => fn(file, linesOf(str));
|
|
15
|
-
const parseFrcsSurveyFile = convert(_parseFrcsSurveyFile2.default);
|
|
16
|
-
exports.parseFrcsSurveyFile = parseFrcsSurveyFile;
|
|
17
|
-
const parseFrcsPlotFile = convert(_parseFrcsPlotFile2.default);
|
|
18
|
-
exports.parseFrcsPlotFile = parseFrcsPlotFile;
|
|
19
|
-
const parseFrcsTripSummaryFile = convert(_parseFrcsTripSummaryFile2.default);
|
|
20
|
-
exports.parseFrcsTripSummaryFile = parseFrcsTripSummaryFile;
|
|
21
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGFyc2VGcmNzU3VydmV5RmlsZTIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wYXJzZUZyY3NQbG90RmlsZTIiLCJfcGFyc2VGcmNzVHJpcFN1bW1hcnlGaWxlMiIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwibGluZXNPZiIsInMiLCJzcGxpdCIsImNvbnZlcnQiLCJmbiIsImZpbGUiLCJzdHIiLCJwYXJzZUZyY3NTdXJ2ZXlGaWxlIiwiX3BhcnNlRnJjc1N1cnZleUZpbGUiLCJleHBvcnRzIiwicGFyc2VGcmNzUGxvdEZpbGUiLCJfcGFyc2VGcmNzUGxvdEZpbGUiLCJwYXJzZUZyY3NUcmlwU3VtbWFyeUZpbGUiLCJfcGFyc2VGcmNzVHJpcFN1bW1hcnlGaWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0cmluZy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX3BhcnNlRnJjc1N1cnZleUZpbGUgZnJvbSAnLi4vcGFyc2VGcmNzU3VydmV5RmlsZSdcbmltcG9ydCBfcGFyc2VGcmNzUGxvdEZpbGUgZnJvbSAnLi4vcGFyc2VGcmNzUGxvdEZpbGUnXG5pbXBvcnQgX3BhcnNlRnJjc1RyaXBTdW1tYXJ5RmlsZSBmcm9tICcuLi9wYXJzZUZyY3NUcmlwU3VtbWFyeUZpbGUnXG5cbmFzeW5jIGZ1bmN0aW9uKiBsaW5lc09mKHM6IHN0cmluZyk6IEFzeW5jSXRlcmFibGU8c3RyaW5nPiB7XG4gIHlpZWxkKiBzLnNwbGl0KC9cXHJcXG4/fFxcbi9nbSlcbn1cbmNvbnN0IGNvbnZlcnQgPSA8VD4oXG4gIGZuOiAoZmlsZTogc3RyaW5nLCBsaW5lczogQXN5bmNJdGVyYWJsZTxzdHJpbmc+KSA9PiBQcm9taXNlPFQ+XG4pID0+IChmaWxlOiBzdHJpbmcsIHN0cjogc3RyaW5nKTogUHJvbWlzZTxUPiA9PiBmbihmaWxlLCBsaW5lc09mKHN0cikpXG5cbmV4cG9ydCBjb25zdCBwYXJzZUZyY3NTdXJ2ZXlGaWxlID0gY29udmVydChfcGFyc2VGcmNzU3VydmV5RmlsZSlcbmV4cG9ydCBjb25zdCBwYXJzZUZyY3NQbG90RmlsZSA9IGNvbnZlcnQoX3BhcnNlRnJjc1Bsb3RGaWxlKVxuZXhwb3J0IGNvbnN0IHBhcnNlRnJjc1RyaXBTdW1tYXJ5RmlsZSA9IGNvbnZlcnQoX3BhcnNlRnJjc1RyaXBTdW1tYXJ5RmlsZSlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEscUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLG1CQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSwwQkFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQW1FLFNBQUFELHVCQUFBSSxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBRW5FLGdCQUFnQkcsT0FBT0EsQ0FBQ0MsQ0FBUyxFQUF5QjtFQUN4RCxPQUFPQSxDQUFDLENBQUNDLEtBQUssQ0FBQyxZQUFZLENBQUM7QUFDOUI7QUFDQSxNQUFNQyxPQUFPLEdBQ1hDLEVBQThELElBQzNELENBQUNDLElBQVksRUFBRUMsR0FBVyxLQUFpQkYsRUFBRSxDQUFDQyxJQUFJLEVBQUVMLE9BQU8sQ0FBQ00sR0FBRyxDQUFDLENBQUM7QUFFL0QsTUFBTUMsbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQ0ssNkJBQW9CLENBQUM7QUFBQUMsT0FBQSxDQUFBRixtQkFBQSxHQUFBQSxtQkFBQTtBQUN6RCxNQUFNRyxpQkFBaUIsR0FBR1AsT0FBTyxDQUFDUSwyQkFBa0IsQ0FBQztBQUFBRixPQUFBLENBQUFDLGlCQUFBLEdBQUFBLGlCQUFBO0FBQ3JELE1BQU1FLHdCQUF3QixHQUFHVCxPQUFPLENBQUNVLGtDQUF5QixDQUFDO0FBQUFKLE9BQUEsQ0FBQUcsd0JBQUEsR0FBQUEsd0JBQUEifQ==
|
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _mocha = require("mocha");
|
|
4
|
-
var _index = require("./index");
|
|
5
|
-
var _unitized = require("@speleotica/unitized");
|
|
6
|
-
var _chai = require("chai");
|
|
7
|
-
const data = ` 123.182259
|
|
8
|
-
AE20 1 1 0 0 0 153 -257 -51 85 0 20 1
|
|
9
|
-
AE19 1 2 653 402 -548 1046 -587 -174 97 0 200 1
|
|
10
|
-
AE18 2 3 669 449 -3002 995 94 -597 -56 250 0 1
|
|
11
|
-
AE17 3 4 539 1217 -2770 497 47 -298 -28 0 0 1
|
|
12
|
-
AE16 4 5 544 1230 -3441 411 -284 -246 170 60 10 1
|
|
13
|
-
AE15 5 6 1679 1663 -3833 0 0 -282 283 20 10 1
|
|
14
|
-
AE14 6 7 2026 2617 -3730 446 225 -446 -225 0 30
|
|
15
|
-
AE13 7 8 391 3152 -5788 -111 691 0 0 200 50 1
|
|
16
|
-
AE12 8 9 -1019 2175 -4630 -369 336 221 -201 40 40 1
|
|
17
|
-
AE11 9 10 -1516 1289 -3919 -348 195 610 -342 50 10 1
|
|
18
|
-
`;
|
|
19
|
-
(0, _mocha.describe)('parseFrcsPlotFile', () => {
|
|
20
|
-
(0, _mocha.it)('basic test', async function () {
|
|
21
|
-
const parsed = await (0, _index.parseFrcsPlotFile)('cdata.fr', data);
|
|
22
|
-
(0, _chai.expect)(parsed).to.deep.equal({
|
|
23
|
-
totalLength: _unitized.Unitize.feet(123.182259),
|
|
24
|
-
errors: [],
|
|
25
|
-
shots: [{
|
|
26
|
-
toName: 'AE20',
|
|
27
|
-
isSurface: false,
|
|
28
|
-
fromNumber: 1,
|
|
29
|
-
toNumber: 1,
|
|
30
|
-
easting: _unitized.Unitize.feet(0),
|
|
31
|
-
northing: _unitized.Unitize.feet(0),
|
|
32
|
-
elevation: _unitized.Unitize.feet(0),
|
|
33
|
-
leftEasting: _unitized.Unitize.feet(1.53),
|
|
34
|
-
leftNorthing: _unitized.Unitize.feet(-2.57),
|
|
35
|
-
rightEasting: _unitized.Unitize.feet(-0.51),
|
|
36
|
-
rightNorthing: _unitized.Unitize.feet(0.85),
|
|
37
|
-
up: _unitized.Unitize.feet(0),
|
|
38
|
-
down: _unitized.Unitize.feet(2),
|
|
39
|
-
tripNumber: 1
|
|
40
|
-
}, {
|
|
41
|
-
toName: 'AE19',
|
|
42
|
-
isSurface: false,
|
|
43
|
-
fromNumber: 1,
|
|
44
|
-
toNumber: 2,
|
|
45
|
-
easting: _unitized.Unitize.feet(6.53),
|
|
46
|
-
northing: _unitized.Unitize.feet(4.02),
|
|
47
|
-
elevation: _unitized.Unitize.feet(-5.48),
|
|
48
|
-
leftEasting: _unitized.Unitize.feet(10.46),
|
|
49
|
-
leftNorthing: _unitized.Unitize.feet(-5.87),
|
|
50
|
-
rightEasting: _unitized.Unitize.feet(-1.74),
|
|
51
|
-
rightNorthing: _unitized.Unitize.feet(0.97),
|
|
52
|
-
up: _unitized.Unitize.feet(0),
|
|
53
|
-
down: _unitized.Unitize.feet(20),
|
|
54
|
-
tripNumber: 1
|
|
55
|
-
}, {
|
|
56
|
-
toName: 'AE18',
|
|
57
|
-
isSurface: false,
|
|
58
|
-
fromNumber: 2,
|
|
59
|
-
toNumber: 3,
|
|
60
|
-
easting: _unitized.Unitize.feet(6.69),
|
|
61
|
-
northing: _unitized.Unitize.feet(4.49),
|
|
62
|
-
elevation: _unitized.Unitize.feet(-30.02),
|
|
63
|
-
leftEasting: _unitized.Unitize.feet(9.95),
|
|
64
|
-
leftNorthing: _unitized.Unitize.feet(0.94),
|
|
65
|
-
rightEasting: _unitized.Unitize.feet(-5.97),
|
|
66
|
-
rightNorthing: _unitized.Unitize.feet(-0.56),
|
|
67
|
-
up: _unitized.Unitize.feet(25),
|
|
68
|
-
down: _unitized.Unitize.feet(0),
|
|
69
|
-
tripNumber: 1
|
|
70
|
-
}, {
|
|
71
|
-
toName: 'AE17',
|
|
72
|
-
isSurface: false,
|
|
73
|
-
fromNumber: 3,
|
|
74
|
-
toNumber: 4,
|
|
75
|
-
easting: _unitized.Unitize.feet(5.39),
|
|
76
|
-
northing: _unitized.Unitize.feet(12.17),
|
|
77
|
-
elevation: _unitized.Unitize.feet(-27.7),
|
|
78
|
-
leftEasting: _unitized.Unitize.feet(4.97),
|
|
79
|
-
leftNorthing: _unitized.Unitize.feet(0.47),
|
|
80
|
-
rightEasting: _unitized.Unitize.feet(-2.98),
|
|
81
|
-
rightNorthing: _unitized.Unitize.feet(-0.28),
|
|
82
|
-
up: _unitized.Unitize.feet(0),
|
|
83
|
-
down: _unitized.Unitize.feet(0),
|
|
84
|
-
tripNumber: 1
|
|
85
|
-
}, {
|
|
86
|
-
toName: 'AE16',
|
|
87
|
-
isSurface: false,
|
|
88
|
-
fromNumber: 4,
|
|
89
|
-
toNumber: 5,
|
|
90
|
-
easting: _unitized.Unitize.feet(5.44),
|
|
91
|
-
northing: _unitized.Unitize.feet(12.3),
|
|
92
|
-
elevation: _unitized.Unitize.feet(-34.41),
|
|
93
|
-
leftEasting: _unitized.Unitize.feet(4.11),
|
|
94
|
-
leftNorthing: _unitized.Unitize.feet(-2.84),
|
|
95
|
-
rightEasting: _unitized.Unitize.feet(-2.46),
|
|
96
|
-
rightNorthing: _unitized.Unitize.feet(1.7),
|
|
97
|
-
up: _unitized.Unitize.feet(6),
|
|
98
|
-
down: _unitized.Unitize.feet(1),
|
|
99
|
-
tripNumber: 1
|
|
100
|
-
}, {
|
|
101
|
-
toName: 'AE15',
|
|
102
|
-
isSurface: false,
|
|
103
|
-
fromNumber: 5,
|
|
104
|
-
toNumber: 6,
|
|
105
|
-
easting: _unitized.Unitize.feet(16.79),
|
|
106
|
-
northing: _unitized.Unitize.feet(16.63),
|
|
107
|
-
elevation: _unitized.Unitize.feet(-38.33),
|
|
108
|
-
leftEasting: _unitized.Unitize.feet(0),
|
|
109
|
-
leftNorthing: _unitized.Unitize.feet(0),
|
|
110
|
-
rightEasting: _unitized.Unitize.feet(-2.82),
|
|
111
|
-
rightNorthing: _unitized.Unitize.feet(2.83),
|
|
112
|
-
up: _unitized.Unitize.feet(2),
|
|
113
|
-
down: _unitized.Unitize.feet(1),
|
|
114
|
-
tripNumber: 1
|
|
115
|
-
}, {
|
|
116
|
-
toName: 'AE14',
|
|
117
|
-
isSurface: false,
|
|
118
|
-
fromNumber: 6,
|
|
119
|
-
toNumber: 7,
|
|
120
|
-
easting: _unitized.Unitize.feet(20.26),
|
|
121
|
-
northing: _unitized.Unitize.feet(26.17),
|
|
122
|
-
elevation: _unitized.Unitize.feet(-37.3),
|
|
123
|
-
leftEasting: _unitized.Unitize.feet(4.46),
|
|
124
|
-
leftNorthing: _unitized.Unitize.feet(2.25),
|
|
125
|
-
rightEasting: _unitized.Unitize.feet(-4.46),
|
|
126
|
-
rightNorthing: _unitized.Unitize.feet(-2.25),
|
|
127
|
-
up: _unitized.Unitize.feet(0),
|
|
128
|
-
down: _unitized.Unitize.feet(3),
|
|
129
|
-
tripNumber: null
|
|
130
|
-
}, {
|
|
131
|
-
toName: 'AE13',
|
|
132
|
-
isSurface: false,
|
|
133
|
-
fromNumber: 7,
|
|
134
|
-
toNumber: 8,
|
|
135
|
-
easting: _unitized.Unitize.feet(3.91),
|
|
136
|
-
northing: _unitized.Unitize.feet(31.52),
|
|
137
|
-
elevation: _unitized.Unitize.feet(-57.88),
|
|
138
|
-
leftEasting: _unitized.Unitize.feet(-1.11),
|
|
139
|
-
leftNorthing: _unitized.Unitize.feet(6.91),
|
|
140
|
-
rightEasting: _unitized.Unitize.feet(0),
|
|
141
|
-
rightNorthing: _unitized.Unitize.feet(0),
|
|
142
|
-
up: _unitized.Unitize.feet(20),
|
|
143
|
-
down: _unitized.Unitize.feet(5),
|
|
144
|
-
tripNumber: 1
|
|
145
|
-
}, {
|
|
146
|
-
toName: 'AE12',
|
|
147
|
-
isSurface: false,
|
|
148
|
-
fromNumber: 8,
|
|
149
|
-
toNumber: 9,
|
|
150
|
-
easting: _unitized.Unitize.feet(-10.19),
|
|
151
|
-
northing: _unitized.Unitize.feet(21.75),
|
|
152
|
-
elevation: _unitized.Unitize.feet(-46.3),
|
|
153
|
-
leftEasting: _unitized.Unitize.feet(-3.69),
|
|
154
|
-
leftNorthing: _unitized.Unitize.feet(3.36),
|
|
155
|
-
rightEasting: _unitized.Unitize.feet(2.21),
|
|
156
|
-
rightNorthing: _unitized.Unitize.feet(-2.01),
|
|
157
|
-
up: _unitized.Unitize.feet(4),
|
|
158
|
-
down: _unitized.Unitize.feet(4),
|
|
159
|
-
tripNumber: 1
|
|
160
|
-
}, {
|
|
161
|
-
toName: 'AE11',
|
|
162
|
-
isSurface: false,
|
|
163
|
-
fromNumber: 9,
|
|
164
|
-
toNumber: 10,
|
|
165
|
-
easting: _unitized.Unitize.feet(-15.16),
|
|
166
|
-
northing: _unitized.Unitize.feet(12.89),
|
|
167
|
-
elevation: _unitized.Unitize.feet(-39.19),
|
|
168
|
-
leftEasting: _unitized.Unitize.feet(-3.48),
|
|
169
|
-
leftNorthing: _unitized.Unitize.feet(1.95),
|
|
170
|
-
rightEasting: _unitized.Unitize.feet(6.1),
|
|
171
|
-
rightNorthing: _unitized.Unitize.feet(-3.42),
|
|
172
|
-
up: _unitized.Unitize.feet(5),
|
|
173
|
-
down: _unitized.Unitize.feet(1),
|
|
174
|
-
tripNumber: 1
|
|
175
|
-
}]
|
|
176
|
-
});
|
|
177
|
-
});
|
|
178
|
-
});
|
|
179
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9jaGEiLCJyZXF1aXJlIiwiX2luZGV4IiwiX3VuaXRpemVkIiwiX2NoYWkiLCJkYXRhIiwiZGVzY3JpYmUiLCJpdCIsInBhcnNlZCIsInBhcnNlRnJjc1Bsb3RGaWxlIiwiZXhwZWN0IiwidG8iLCJkZWVwIiwiZXF1YWwiLCJ0b3RhbExlbmd0aCIsIlVuaXRpemUiLCJmZWV0IiwiZXJyb3JzIiwic2hvdHMiLCJ0b05hbWUiLCJpc1N1cmZhY2UiLCJmcm9tTnVtYmVyIiwidG9OdW1iZXIiLCJlYXN0aW5nIiwibm9ydGhpbmciLCJlbGV2YXRpb24iLCJsZWZ0RWFzdGluZyIsImxlZnROb3J0aGluZyIsInJpZ2h0RWFzdGluZyIsInJpZ2h0Tm9ydGhpbmciLCJ1cCIsImRvd24iLCJ0cmlwTnVtYmVyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0cmluZy9wYXJzZUZyY3NQbG90RmlsZS5zcGVjLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlc2NyaWJlLCBpdCB9IGZyb20gJ21vY2hhJ1xuaW1wb3J0IHsgcGFyc2VGcmNzUGxvdEZpbGUgfSBmcm9tICcuL2luZGV4J1xuaW1wb3J0IHsgVW5pdGl6ZSB9IGZyb20gJ0BzcGVsZW90aWNhL3VuaXRpemVkJ1xuaW1wb3J0IHsgZXhwZWN0IH0gZnJvbSAnY2hhaSdcblxuY29uc3QgZGF0YSA9IGAgICAxMjMuMTgyMjU5XG4gQUUyMCAgICAgMSAgICAxICAgICAgIDAgICAgICAgMCAgICAgIDAgICAxNTMgIC0yNTcgICAtNTEgICAgODUgICAwICAyMCAgICAgMVxuIEFFMTkgICAgIDEgICAgMiAgICAgNjUzICAgICA0MDIgICAtNTQ4ICAxMDQ2ICAtNTg3ICAtMTc0ICAgIDk3ICAgMCAyMDAgICAgIDFcbiBBRTE4ICAgICAyICAgIDMgICAgIDY2OSAgICAgNDQ5ICAtMzAwMiAgIDk5NSAgICA5NCAgLTU5NyAgIC01NiAyNTAgICAwICAgICAxXG4gQUUxNyAgICAgMyAgICA0ICAgICA1MzkgICAgMTIxNyAgLTI3NzAgICA0OTcgICAgNDcgIC0yOTggICAtMjggICAwICAgMCAgICAgMVxuIEFFMTYgICAgIDQgICAgNSAgICAgNTQ0ICAgIDEyMzAgIC0zNDQxICAgNDExICAtMjg0ICAtMjQ2ICAgMTcwICA2MCAgMTAgICAgIDFcbiBBRTE1ICAgICA1ICAgIDYgICAgMTY3OSAgICAxNjYzICAtMzgzMyAgICAgMCAgICAgMCAgLTI4MiAgIDI4MyAgMjAgIDEwICAgICAxXG4gQUUxNCAgICAgNiAgICA3ICAgIDIwMjYgICAgMjYxNyAgLTM3MzAgICA0NDYgICAyMjUgIC00NDYgIC0yMjUgICAwICAzMCAgICAgXG4gQUUxMyAgICAgNyAgICA4ICAgICAzOTEgICAgMzE1MiAgLTU3ODggIC0xMTEgICA2OTEgICAgIDAgICAgIDAgMjAwICA1MCAgICAgMVxuIEFFMTIgICAgIDggICAgOSAgIC0xMDE5ICAgIDIxNzUgIC00NjMwICAtMzY5ICAgMzM2ICAgMjIxICAtMjAxICA0MCAgNDAgICAgIDFcbiBBRTExICAgICA5ICAgMTAgICAtMTUxNiAgICAxMjg5ICAtMzkxOSAgLTM0OCAgIDE5NSAgIDYxMCAgLTM0MiAgNTAgIDEwICAgICAxXG5gXG5cbmRlc2NyaWJlKCdwYXJzZUZyY3NQbG90RmlsZScsICgpID0+IHtcbiAgaXQoJ2Jhc2ljIHRlc3QnLCBhc3luYyBmdW5jdGlvbigpIHtcbiAgICBjb25zdCBwYXJzZWQgPSBhd2FpdCBwYXJzZUZyY3NQbG90RmlsZSgnY2RhdGEuZnInLCBkYXRhKVxuICAgIGV4cGVjdChwYXJzZWQpLnRvLmRlZXAuZXF1YWwoe1xuICAgICAgdG90YWxMZW5ndGg6IFVuaXRpemUuZmVldCgxMjMuMTgyMjU5KSxcbiAgICAgIGVycm9yczogW10sXG4gICAgICBzaG90czogW1xuICAgICAgICB7XG4gICAgICAgICAgdG9OYW1lOiAnQUUyMCcsXG4gICAgICAgICAgaXNTdXJmYWNlOiBmYWxzZSxcbiAgICAgICAgICBmcm9tTnVtYmVyOiAxLFxuICAgICAgICAgIHRvTnVtYmVyOiAxLFxuICAgICAgICAgIGVhc3Rpbmc6IFVuaXRpemUuZmVldCgwKSxcbiAgICAgICAgICBub3J0aGluZzogVW5pdGl6ZS5mZWV0KDApLFxuICAgICAgICAgIGVsZXZhdGlvbjogVW5pdGl6ZS5mZWV0KDApLFxuICAgICAgICAgIGxlZnRFYXN0aW5nOiBVbml0aXplLmZlZXQoMS41MyksXG4gICAgICAgICAgbGVmdE5vcnRoaW5nOiBVbml0aXplLmZlZXQoLTIuNTcpLFxuICAgICAgICAgIHJpZ2h0RWFzdGluZzogVW5pdGl6ZS5mZWV0KC0wLjUxKSxcbiAgICAgICAgICByaWdodE5vcnRoaW5nOiBVbml0aXplLmZlZXQoMC44NSksXG4gICAgICAgICAgdXA6IFVuaXRpemUuZmVldCgwKSxcbiAgICAgICAgICBkb3duOiBVbml0aXplLmZlZXQoMiksXG4gICAgICAgICAgdHJpcE51bWJlcjogMSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRvTmFtZTogJ0FFMTknLFxuICAgICAgICAgIGlzU3VyZmFjZTogZmFsc2UsXG4gICAgICAgICAgZnJvbU51bWJlcjogMSxcbiAgICAgICAgICB0b051bWJlcjogMixcbiAgICAgICAgICBlYXN0aW5nOiBVbml0aXplLmZlZXQoNi41MyksXG4gICAgICAgICAgbm9ydGhpbmc6IFVuaXRpemUuZmVldCg0LjAyKSxcbiAgICAgICAgICBlbGV2YXRpb246IFVuaXRpemUuZmVldCgtNS40OCksXG4gICAgICAgICAgbGVmdEVhc3Rpbmc6IFVuaXRpemUuZmVldCgxMC40NiksXG4gICAgICAgICAgbGVmdE5vcnRoaW5nOiBVbml0aXplLmZlZXQoLTUuODcpLFxuICAgICAgICAgIHJpZ2h0RWFzdGluZzogVW5pdGl6ZS5mZWV0KC0xLjc0KSxcbiAgICAgICAgICByaWdodE5vcnRoaW5nOiBVbml0aXplLmZlZXQoMC45NyksXG4gICAgICAgICAgdXA6IFVuaXRpemUuZmVldCgwKSxcbiAgICAgICAgICBkb3duOiBVbml0aXplLmZlZXQoMjApLFxuICAgICAgICAgIHRyaXBOdW1iZXI6IDEsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0b05hbWU6ICdBRTE4JyxcbiAgICAgICAgICBpc1N1cmZhY2U6IGZhbHNlLFxuICAgICAgICAgIGZyb21OdW1iZXI6IDIsXG4gICAgICAgICAgdG9OdW1iZXI6IDMsXG4gICAgICAgICAgZWFzdGluZzogVW5pdGl6ZS5mZWV0KDYuNjkpLFxuICAgICAgICAgIG5vcnRoaW5nOiBVbml0aXplLmZlZXQoNC40OSksXG4gICAgICAgICAgZWxldmF0aW9uOiBVbml0aXplLmZlZXQoLTMwLjAyKSxcbiAgICAgICAgICBsZWZ0RWFzdGluZzogVW5pdGl6ZS5mZWV0KDkuOTUpLFxuICAgICAgICAgIGxlZnROb3J0aGluZzogVW5pdGl6ZS5mZWV0KDAuOTQpLFxuICAgICAgICAgIHJpZ2h0RWFzdGluZzogVW5pdGl6ZS5mZWV0KC01Ljk3KSxcbiAgICAgICAgICByaWdodE5vcnRoaW5nOiBVbml0aXplLmZlZXQoLTAuNTYpLFxuICAgICAgICAgIHVwOiBVbml0aXplLmZlZXQoMjUpLFxuICAgICAgICAgIGRvd246IFVuaXRpemUuZmVldCgwKSxcbiAgICAgICAgICB0cmlwTnVtYmVyOiAxLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdG9OYW1lOiAnQUUxNycsXG4gICAgICAgICAgaXNTdXJmYWNlOiBmYWxzZSxcbiAgICAgICAgICBmcm9tTnVtYmVyOiAzLFxuICAgICAgICAgIHRvTnVtYmVyOiA0LFxuICAgICAgICAgIGVhc3Rpbmc6IFVuaXRpemUuZmVldCg1LjM5KSxcbiAgICAgICAgICBub3J0aGluZzogVW5pdGl6ZS5mZWV0KDEyLjE3KSxcbiAgICAgICAgICBlbGV2YXRpb246IFVuaXRpemUuZmVldCgtMjcuNyksXG4gICAgICAgICAgbGVmdEVhc3Rpbmc6IFVuaXRpemUuZmVldCg0Ljk3KSxcbiAgICAgICAgICBsZWZ0Tm9ydGhpbmc6IFVuaXRpemUuZmVldCgwLjQ3KSxcbiAgICAgICAgICByaWdodEVhc3Rpbmc6IFVuaXRpemUuZmVldCgtMi45OCksXG4gICAgICAgICAgcmlnaHROb3J0aGluZzogVW5pdGl6ZS5mZWV0KC0wLjI4KSxcbiAgICAgICAgICB1cDogVW5pdGl6ZS5mZWV0KDApLFxuICAgICAgICAgIGRvd246IFVuaXRpemUuZmVldCgwKSxcbiAgICAgICAgICB0cmlwTnVtYmVyOiAxLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdG9OYW1lOiAnQUUxNicsXG4gICAgICAgICAgaXNTdXJmYWNlOiBmYWxzZSxcbiAgICAgICAgICBmcm9tTnVtYmVyOiA0LFxuICAgICAgICAgIHRvTnVtYmVyOiA1LFxuICAgICAgICAgIGVhc3Rpbmc6IFVuaXRpemUuZmVldCg1LjQ0KSxcbiAgICAgICAgICBub3J0aGluZzogVW5pdGl6ZS5mZWV0KDEyLjMpLFxuICAgICAgICAgIGVsZXZhdGlvbjogVW5pdGl6ZS5mZWV0KC0zNC40MSksXG4gICAgICAgICAgbGVmdEVhc3Rpbmc6IFVuaXRpemUuZmVldCg0LjExKSxcbiAgICAgICAgICBsZWZ0Tm9ydGhpbmc6IFVuaXRpemUuZmVldCgtMi44NCksXG4gICAgICAgICAgcmlnaHRFYXN0aW5nOiBVbml0aXplLmZlZXQoLTIuNDYpLFxuICAgICAgICAgIHJpZ2h0Tm9ydGhpbmc6IFVuaXRpemUuZmVldCgxLjcpLFxuICAgICAgICAgIHVwOiBVbml0aXplLmZlZXQoNiksXG4gICAgICAgICAgZG93bjogVW5pdGl6ZS5mZWV0KDEpLFxuICAgICAgICAgIHRyaXBOdW1iZXI6IDEsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0b05hbWU6ICdBRTE1JyxcbiAgICAgICAgICBpc1N1cmZhY2U6IGZhbHNlLFxuICAgICAgICAgIGZyb21OdW1iZXI6IDUsXG4gICAgICAgICAgdG9OdW1iZXI6IDYsXG4gICAgICAgICAgZWFzdGluZzogVW5pdGl6ZS5mZWV0KDE2Ljc5KSxcbiAgICAgICAgICBub3J0aGluZzogVW5pdGl6ZS5mZWV0KDE2LjYzKSxcbiAgICAgICAgICBlbGV2YXRpb246IFVuaXRpemUuZmVldCgtMzguMzMpLFxuICAgICAgICAgIGxlZnRFYXN0aW5nOiBVbml0aXplLmZlZXQoMCksXG4gICAgICAgICAgbGVmdE5vcnRoaW5nOiBVbml0aXplLmZlZXQoMCksXG4gICAgICAgICAgcmlnaHRFYXN0aW5nOiBVbml0aXplLmZlZXQoLTIuODIpLFxuICAgICAgICAgIHJpZ2h0Tm9ydGhpbmc6IFVuaXRpemUuZmVldCgyLjgzKSxcbiAgICAgICAgICB1cDogVW5pdGl6ZS5mZWV0KDIpLFxuICAgICAgICAgIGRvd246IFVuaXRpemUuZmVldCgxKSxcbiAgICAgICAgICB0cmlwTnVtYmVyOiAxLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdG9OYW1lOiAnQUUxNCcsXG4gICAgICAgICAgaXNTdXJmYWNlOiBmYWxzZSxcbiAgICAgICAgICBmcm9tTnVtYmVyOiA2LFxuICAgICAgICAgIHRvTnVtYmVyOiA3LFxuICAgICAgICAgIGVhc3Rpbmc6IFVuaXRpemUuZmVldCgyMC4yNiksXG4gICAgICAgICAgbm9ydGhpbmc6IFVuaXRpemUuZmVldCgyNi4xNyksXG4gICAgICAgICAgZWxldmF0aW9uOiBVbml0aXplLmZlZXQoLTM3LjMpLFxuICAgICAgICAgIGxlZnRFYXN0aW5nOiBVbml0aXplLmZlZXQoNC40NiksXG4gICAgICAgICAgbGVmdE5vcnRoaW5nOiBVbml0aXplLmZlZXQoMi4yNSksXG4gICAgICAgICAgcmlnaHRFYXN0aW5nOiBVbml0aXplLmZlZXQoLTQuNDYpLFxuICAgICAgICAgIHJpZ2h0Tm9ydGhpbmc6IFVuaXRpemUuZmVldCgtMi4yNSksXG4gICAgICAgICAgdXA6IFVuaXRpemUuZmVldCgwKSxcbiAgICAgICAgICBkb3duOiBVbml0aXplLmZlZXQoMyksXG4gICAgICAgICAgdHJpcE51bWJlcjogbnVsbCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRvTmFtZTogJ0FFMTMnLFxuICAgICAgICAgIGlzU3VyZmFjZTogZmFsc2UsXG4gICAgICAgICAgZnJvbU51bWJlcjogNyxcbiAgICAgICAgICB0b051bWJlcjogOCxcbiAgICAgICAgICBlYXN0aW5nOiBVbml0aXplLmZlZXQoMy45MSksXG4gICAgICAgICAgbm9ydGhpbmc6IFVuaXRpemUuZmVldCgzMS41MiksXG4gICAgICAgICAgZWxldmF0aW9uOiBVbml0aXplLmZlZXQoLTU3Ljg4KSxcbiAgICAgICAgICBsZWZ0RWFzdGluZzogVW5pdGl6ZS5mZWV0KC0xLjExKSxcbiAgICAgICAgICBsZWZ0Tm9ydGhpbmc6IFVuaXRpemUuZmVldCg2LjkxKSxcbiAgICAgICAgICByaWdodEVhc3Rpbmc6IFVuaXRpemUuZmVldCgwKSxcbiAgICAgICAgICByaWdodE5vcnRoaW5nOiBVbml0aXplLmZlZXQoMCksXG4gICAgICAgICAgdXA6IFVuaXRpemUuZmVldCgyMCksXG4gICAgICAgICAgZG93bjogVW5pdGl6ZS5mZWV0KDUpLFxuICAgICAgICAgIHRyaXBOdW1iZXI6IDEsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0b05hbWU6ICdBRTEyJyxcbiAgICAgICAgICBpc1N1cmZhY2U6IGZhbHNlLFxuICAgICAgICAgIGZyb21OdW1iZXI6IDgsXG4gICAgICAgICAgdG9OdW1iZXI6IDksXG4gICAgICAgICAgZWFzdGluZzogVW5pdGl6ZS5mZWV0KC0xMC4xOSksXG4gICAgICAgICAgbm9ydGhpbmc6IFVuaXRpemUuZmVldCgyMS43NSksXG4gICAgICAgICAgZWxldmF0aW9uOiBVbml0aXplLmZlZXQoLTQ2LjMpLFxuICAgICAgICAgIGxlZnRFYXN0aW5nOiBVbml0aXplLmZlZXQoLTMuNjkpLFxuICAgICAgICAgIGxlZnROb3J0aGluZzogVW5pdGl6ZS5mZWV0KDMuMzYpLFxuICAgICAgICAgIHJpZ2h0RWFzdGluZzogVW5pdGl6ZS5mZWV0KDIuMjEpLFxuICAgICAgICAgIHJpZ2h0Tm9ydGhpbmc6IFVuaXRpemUuZmVldCgtMi4wMSksXG4gICAgICAgICAgdXA6IFVuaXRpemUuZmVldCg0KSxcbiAgICAgICAgICBkb3duOiBVbml0aXplLmZlZXQoNCksXG4gICAgICAgICAgdHJpcE51bWJlcjogMSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRvTmFtZTogJ0FFMTEnLFxuICAgICAgICAgIGlzU3VyZmFjZTogZmFsc2UsXG4gICAgICAgICAgZnJvbU51bWJlcjogOSxcbiAgICAgICAgICB0b051bWJlcjogMTAsXG4gICAgICAgICAgZWFzdGluZzogVW5pdGl6ZS5mZWV0KC0xNS4xNiksXG4gICAgICAgICAgbm9ydGhpbmc6IFVuaXRpemUuZmVldCgxMi44OSksXG4gICAgICAgICAgZWxldmF0aW9uOiBVbml0aXplLmZlZXQoLTM5LjE5KSxcbiAgICAgICAgICBsZWZ0RWFzdGluZzogVW5pdGl6ZS5mZWV0KC0zLjQ4KSxcbiAgICAgICAgICBsZWZ0Tm9ydGhpbmc6IFVuaXRpemUuZmVldCgxLjk1KSxcbiAgICAgICAgICByaWdodEVhc3Rpbmc6IFVuaXRpemUuZmVldCg2LjEpLFxuICAgICAgICAgIHJpZ2h0Tm9ydGhpbmc6IFVuaXRpemUuZmVldCgtMy40MiksXG4gICAgICAgICAgdXA6IFVuaXRpemUuZmVldCg1KSxcbiAgICAgICAgICBkb3duOiBVbml0aXplLmZlZXQoMSksXG4gICAgICAgICAgdHJpcE51bWJlcjogMSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSlcbiAgfSlcbn0pXG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsU0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBSCxPQUFBO0FBRUEsTUFBTUksSUFBSSxHQUFJO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBRUQsSUFBQUMsZUFB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
|