@agilemotion/oui-react-js 2.0.13 → 2.0.15
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/dist/RestService.js +12 -4
- package/dist/RestUtils.js +33 -4
- package/dist/Utils.js +82 -1
- package/dist/components/AlertBar.js +22 -10
- package/dist/components/Button.js +19 -7
- package/dist/components/DataGrid.js +118 -31
- package/dist/components/ProgressTracker.js +195 -37
- package/dist/components/StepperTitleBar.js +28 -24
- package/dist/components/TabPanel.js +30 -19
- package/dist/components/TableCellContent.js +38 -1
- package/dist/components/Turnstile.js +14 -3
- package/dist/components/form/FieldSet.js +13 -1
- package/dist/components/form/MultiLookupField.js +407 -0
- package/dist/event/RouteActionHandler.js +28 -4
- package/dist/event/ServiceCallActionHandler.js +56 -17
- package/dist/view/Dashboard.js +4 -1
- package/dist/view/security/RegisterInteractionPortal.js +100 -14
- package/package.json +1 -1
|
@@ -93,61 +93,219 @@ const HtmlPanel = /*#__PURE__*/_react.default.memo(props => {
|
|
|
93
93
|
}
|
|
94
94
|
};
|
|
95
95
|
};
|
|
96
|
+
|
|
97
|
+
// ---- presentation helpers ----
|
|
98
|
+
const stepColors = stepStatus => {
|
|
99
|
+
const primary = _ApplicationManager.default.getApplicationPrimaryColor();
|
|
100
|
+
const secondary = _ApplicationManager.default.getApplicationSecondaryColor();
|
|
101
|
+
switch (stepStatus) {
|
|
102
|
+
case 'COMPLETE':
|
|
103
|
+
return {
|
|
104
|
+
bg: '#50cd89',
|
|
105
|
+
border: '#50cd89',
|
|
106
|
+
text: '#FFFFFF',
|
|
107
|
+
muted: 'rgba(255,255,255,0.85)'
|
|
108
|
+
};
|
|
109
|
+
case 'IN_PROGRESS':
|
|
110
|
+
return {
|
|
111
|
+
bg: primary,
|
|
112
|
+
border: primary,
|
|
113
|
+
text: '#FFFFFF',
|
|
114
|
+
muted: 'rgba(255,255,255,0.85)'
|
|
115
|
+
};
|
|
116
|
+
case 'OVERDUE':
|
|
117
|
+
return {
|
|
118
|
+
bg: '#f1416c',
|
|
119
|
+
border: '#f1416c',
|
|
120
|
+
text: '#FFFFFF',
|
|
121
|
+
muted: 'rgba(255,255,255,0.85)'
|
|
122
|
+
};
|
|
123
|
+
default:
|
|
124
|
+
// PENDING / unknown
|
|
125
|
+
return {
|
|
126
|
+
bg: '#FFFFFF',
|
|
127
|
+
border: secondary,
|
|
128
|
+
text: '#1a3c5e',
|
|
129
|
+
muted: '#7a8694'
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
const varianceText = v => {
|
|
134
|
+
if (v === null || v === undefined) return null;
|
|
135
|
+
if (v > 0) return '+' + v + 'd late';
|
|
136
|
+
if (v < 0) return Math.abs(v) + 'd early';
|
|
137
|
+
return 'on time';
|
|
138
|
+
};
|
|
139
|
+
const dayLabel = n => Math.abs(n) === 1 ? 'day' : 'days';
|
|
140
|
+
const projectionBanner = () => {
|
|
141
|
+
const v = data.varianceDays;
|
|
142
|
+
switch (data.projectionStatus) {
|
|
143
|
+
case 'LATE':
|
|
144
|
+
return {
|
|
145
|
+
label: 'LATE by ' + v + ' ' + dayLabel(v),
|
|
146
|
+
color: '#f1416c'
|
|
147
|
+
};
|
|
148
|
+
case 'QUICKER_THAN_PLANNED':
|
|
149
|
+
return {
|
|
150
|
+
label: 'QUICKER THAN PLANNED by ' + Math.abs(v) + ' ' + dayLabel(v),
|
|
151
|
+
color: '#50cd89'
|
|
152
|
+
};
|
|
153
|
+
default:
|
|
154
|
+
// EXACT
|
|
155
|
+
return {
|
|
156
|
+
label: 'ON TRACK',
|
|
157
|
+
color: _ApplicationManager.default.getApplicationPrimaryColor()
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
const noPlan = data && (data.active === false || !data.steps || data.steps.length === 0);
|
|
96
162
|
return visible && /*#__PURE__*/_react.default.createElement("div", {
|
|
97
163
|
style: _Utils.default.mergeStyles({}, props.config)
|
|
98
|
-
}, data && /*#__PURE__*/_react.default.createElement("div",
|
|
99
|
-
|
|
164
|
+
}, data && noPlan && /*#__PURE__*/_react.default.createElement("div", {
|
|
165
|
+
style: {
|
|
166
|
+
display: 'flex',
|
|
167
|
+
flexDirection: 'column',
|
|
168
|
+
alignItems: 'center',
|
|
169
|
+
justifyContent: 'center',
|
|
170
|
+
padding: '48px 16px',
|
|
171
|
+
textAlign: 'center'
|
|
172
|
+
}
|
|
173
|
+
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
174
|
+
className: "fa fa-stream",
|
|
175
|
+
style: {
|
|
176
|
+
fontSize: '40px',
|
|
177
|
+
color: '#d5dbe3',
|
|
178
|
+
marginBottom: '12px'
|
|
179
|
+
}
|
|
180
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
181
|
+
style: {
|
|
182
|
+
fontSize: '16px',
|
|
183
|
+
fontWeight: 600,
|
|
184
|
+
color: '#6b7785'
|
|
185
|
+
}
|
|
186
|
+
}, data.message || 'No plan in progress'), /*#__PURE__*/_react.default.createElement("div", {
|
|
187
|
+
style: {
|
|
188
|
+
fontSize: '12px',
|
|
189
|
+
color: '#9aa3b1',
|
|
190
|
+
marginTop: '4px'
|
|
191
|
+
}
|
|
192
|
+
}, "A procurement plan timeline will appear here once planning starts.")), data && !noPlan && /*#__PURE__*/_react.default.createElement("div", null, data.projectedEndDate && /*#__PURE__*/_react.default.createElement("div", {
|
|
193
|
+
style: {
|
|
194
|
+
display: 'flex',
|
|
195
|
+
alignItems: 'center',
|
|
196
|
+
gap: '10px',
|
|
197
|
+
padding: '12px 16px',
|
|
198
|
+
margin: '4px 4px 12px',
|
|
199
|
+
borderRadius: '12px',
|
|
200
|
+
background: '#f8fafc',
|
|
201
|
+
border: '1px solid #eef1f5',
|
|
202
|
+
borderLeft: '4px solid ' + projectionBanner().color
|
|
203
|
+
}
|
|
204
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
205
|
+
style: {
|
|
206
|
+
width: '10px',
|
|
207
|
+
height: '10px',
|
|
208
|
+
borderRadius: '50%',
|
|
209
|
+
flexShrink: 0,
|
|
210
|
+
background: projectionBanner().color
|
|
211
|
+
}
|
|
212
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
213
|
+
style: {
|
|
214
|
+
minWidth: 0
|
|
215
|
+
}
|
|
216
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
217
|
+
style: {
|
|
218
|
+
fontSize: '13px',
|
|
219
|
+
fontWeight: 700,
|
|
220
|
+
letterSpacing: '0.02em',
|
|
221
|
+
color: projectionBanner().color
|
|
222
|
+
}
|
|
223
|
+
}, projectionBanner().label), /*#__PURE__*/_react.default.createElement("div", {
|
|
224
|
+
style: {
|
|
225
|
+
fontSize: '12px',
|
|
226
|
+
color: '#4a5765'
|
|
227
|
+
}
|
|
228
|
+
}, "Projected completion: ", data.projectedEndDate, data.plannedEndDate ? ' · planned ' + data.plannedEndDate : ''))), data.steps.map((step, index) => {
|
|
229
|
+
const c = stepColors(step.status);
|
|
230
|
+
const vText = varianceText(step.varianceDays);
|
|
231
|
+
const hasPlanned = step.plannedStart || step.plannedEnd;
|
|
232
|
+
const hasActual = step.actualStart || step.actualEnd;
|
|
233
|
+
const actualEndLabel = step.actualEnd || (step.status === 'IN_PROGRESS' || step.status === 'OVERDUE' ? 'in progress' : '—');
|
|
234
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
|
|
235
|
+
key: index
|
|
236
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
100
237
|
style: {
|
|
101
|
-
margin:
|
|
238
|
+
margin: '4px'
|
|
102
239
|
}
|
|
103
240
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
104
241
|
style: {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
242
|
+
width: '100%',
|
|
243
|
+
padding: '14px 16px',
|
|
244
|
+
borderRadius: '12px',
|
|
245
|
+
boxSizing: 'border-box',
|
|
246
|
+
backgroundColor: c.bg,
|
|
247
|
+
border: '1px solid #e1e1e1',
|
|
248
|
+
color: c.text
|
|
249
|
+
}
|
|
250
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
251
|
+
style: {
|
|
252
|
+
display: 'flex',
|
|
253
|
+
alignItems: 'center',
|
|
254
|
+
justifyContent: 'space-between',
|
|
255
|
+
gap: '8px'
|
|
116
256
|
}
|
|
117
257
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
118
258
|
style: {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
259
|
+
fontSize: '18px',
|
|
260
|
+
fontWeight: 600,
|
|
261
|
+
minWidth: 0,
|
|
262
|
+
overflow: 'hidden',
|
|
263
|
+
textOverflow: 'ellipsis',
|
|
264
|
+
whiteSpace: 'nowrap'
|
|
124
265
|
}
|
|
125
|
-
}, step.description),
|
|
266
|
+
}, step.description), vText && /*#__PURE__*/_react.default.createElement("span", {
|
|
267
|
+
style: {
|
|
268
|
+
flexShrink: 0,
|
|
269
|
+
fontSize: '11px',
|
|
270
|
+
fontWeight: 600,
|
|
271
|
+
padding: '2px 8px',
|
|
272
|
+
borderRadius: '999px',
|
|
273
|
+
background: c.text === '#FFFFFF' ? 'rgba(255,255,255,0.25)' : '#eef1f5',
|
|
274
|
+
color: c.text
|
|
275
|
+
}
|
|
276
|
+
}, vText)), hasPlanned && /*#__PURE__*/_react.default.createElement("div", {
|
|
126
277
|
style: {
|
|
127
|
-
fontStyle: "italic",
|
|
128
278
|
fontSize: '12px',
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
279
|
+
fontStyle: 'italic',
|
|
280
|
+
marginTop: '4px',
|
|
281
|
+
color: c.muted,
|
|
282
|
+
overflow: 'hidden',
|
|
283
|
+
textOverflow: 'ellipsis',
|
|
284
|
+
whiteSpace: 'nowrap'
|
|
285
|
+
}
|
|
286
|
+
}, "Planned: ", step.plannedStart || '—', " \u2192 ", step.plannedEnd || '—'), hasActual && /*#__PURE__*/_react.default.createElement("div", {
|
|
287
|
+
style: {
|
|
288
|
+
fontSize: '12px',
|
|
289
|
+
marginTop: '2px',
|
|
290
|
+
color: c.text,
|
|
291
|
+
overflow: 'hidden',
|
|
292
|
+
textOverflow: 'ellipsis',
|
|
293
|
+
whiteSpace: 'nowrap'
|
|
136
294
|
}
|
|
137
|
-
}, step.
|
|
295
|
+
}, "Actual: ", step.actualStart || '—', " \u2192 ", actualEndLabel))), index < data.steps.length - 1 && /*#__PURE__*/_react.default.createElement("div", {
|
|
138
296
|
style: {
|
|
139
|
-
height:
|
|
140
|
-
marginLeft:
|
|
297
|
+
height: '24px',
|
|
298
|
+
marginLeft: '48px'
|
|
141
299
|
}
|
|
142
300
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
143
301
|
style: {
|
|
144
|
-
marginTop:
|
|
145
|
-
height:
|
|
146
|
-
width:
|
|
147
|
-
backgroundColor:
|
|
302
|
+
marginTop: '-5px',
|
|
303
|
+
height: 'calc(100% + 5px)',
|
|
304
|
+
width: '2px',
|
|
305
|
+
backgroundColor: '#eef1f5'
|
|
148
306
|
}
|
|
149
|
-
})))
|
|
307
|
+
})));
|
|
150
308
|
})));
|
|
151
309
|
});
|
|
152
310
|
var _default = exports.default = HtmlPanel;
|
|
153
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9yZWFjdEh0bWxSZW5kZXJlciIsIl9PYnNlcnZhYmxlIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9yZWFjdFByb21pc2VUcmFja2VyIiwiX0V2ZW50IiwiX0V2ZW50VHlwZSIsIl9SZXN0U2VydmljZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkhhbmRsZWJhcnMiLCJzdGF0dXMiLCJyZXNwb25zZSIsIm9rIiwiUHJvbWlzZSIsInJlc29sdmUiLCJlcnJvciIsIkVycm9yIiwic3RhdHVzVGV4dCIsImNvZGUiLCJyZWplY3QiLCJqc29uIiwidGV4dCIsImxvY2F0aW9uIiwid2luZG93IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsInBvcnQiLCJIdG1sUGFuZWwiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsImRhdGEiLCJzZXREYXRhIiwidXNlU3RhdGUiLCJ2aXNpYmxlIiwic2V0VmlzaWJsZSIsInVzZUVmZmVjdCIsImhhbmRsZSIsImFwaSIsImV2ZW50IiwiRXZlbnQiLCJ2aWV3SWQiLCJldmVudE1hbmFnZXIiLCJmaXJlRXZlbnQiLCJFdmVudFR5cGUiLCJDT01QT05FTlRfTE9BRCIsImRvTG9hZERhdGEiLCJwYXJzZWRDb25maWciLCJVdGlscyIsInBhcnNlQ29uZmlnIiwiY29uZmlnIiwiYWRkU3Vic2NyaXB0aW9ucyIsImV2ZW50SGFuZGxpbmdDb25maWciLCJhZGRTeXN0ZW1TdWJzY3JpcHRpb25zIiwicmVmcmVzaCIsImNsZWFyQ29tcG9uZW50RXZlbnRMaXN0ZW5lcnMiLCJhY3Rpb25Db25maWciLCJzZXJ2aWNlIiwiZGF0YVNlcnZpY2UiLCJpc051bGwiLCJtZXRob2QiLCJ0eXBlIiwiaW52b2tlUnBjIiwiaW52b2tlUmVzdCIsImNvbXBvbmVudCIsInRoZW4iLCJyZXN1bHQiLCJjYXRjaCIsImNvbnNvbGUiLCJwdWJsaXNoRXJyb3JNZXNzYWdlIiwiaWQiLCJsb2FkRGF0YSIsImV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24iLCJnZXRDaGlsZHJlbiIsImNyZWF0ZUVsZW1lbnQiLCJzdHlsZSIsIm1lcmdlU3R5bGVzIiwic3RlcHMiLCJtYXAiLCJzdGVwIiwiaW5kZXgiLCJGcmFnbWVudCIsIm1hcmdpbiIsImRpc3BsYXkiLCJ3aWR0aCIsInBhZGRpbmciLCJib3JkZXJSYWRpdXMiLCJtYXhXaWR0aCIsImJhY2tncm91bmRDb2xvciIsInNlcXVlbmNlIiwiY3VycmVudFN0ZXAiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJnZXRBcHBsaWNhdGlvblByaW1hcnlDb2xvciIsImJvcmRlciIsImdldEFwcGxpY2F0aW9uU2Vjb25kYXJ5Q29sb3IiLCJjb2xvciIsIm92ZXJmbG93IiwidGV4dE92ZXJmbG93Iiwid2hpdGVTcGFjZSIsImZvbnRTaXplIiwiZGVzY3JpcHRpb24iLCJzdGFydERhdGUiLCJlbmREYXRlIiwiZm9udFN0eWxlIiwianVzdGlmeUNvbnRlbnQiLCJsZW5ndGgiLCJoZWlnaHQiLCJtYXJnaW5MZWZ0IiwibWFyZ2luVG9wIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL1Byb2dyZXNzVHJhY2tlci5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBVdGlscyBmcm9tICcuLi9VdGlscyc7XG5pbXBvcnQgSFRNTFJlbmRlcmVyIGZyb20gJ3JlYWN0LWh0bWwtcmVuZGVyZXInO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tICcuLi9ldmVudC9PYnNlcnZhYmxlJztcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSAnLi4vQXBwbGljYXRpb25NYW5hZ2VyJztcbmltcG9ydCB7dHJhY2tQcm9taXNlfSBmcm9tICdyZWFjdC1wcm9taXNlLXRyYWNrZXInO1xuaW1wb3J0IEV2ZW50IGZyb20gJy4uL2V2ZW50L0V2ZW50JztcbmltcG9ydCBFdmVudFR5cGUgZnJvbSAnLi4vZXZlbnQvRXZlbnRUeXBlJztcbmltcG9ydCB7aW52b2tlUmVzdCwgaW52b2tlUnBjfSBmcm9tIFwiLi4vUmVzdFNlcnZpY2VcIjtcblxuY29uc3QgSGFuZGxlYmFycyA9IHJlcXVpcmUoJ2hhbmRsZWJhcnMnKTtcbmNvbnN0IHN0YXR1cyA9IChyZXNwb25zZSkgPT4ge1xuICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3BvbnNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgZXJyb3IgPSBuZXcgRXJyb3IocmVzcG9uc2Uuc3RhdHVzVGV4dCk7XG4gICAgICAgIGVycm9yLmNvZGUgPSByZXNwb25zZS5zdGF0dXM7XG5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgICB9XG59O1xuXG5jb25zdCBqc29uID0gKHJlc3BvbnNlKSA9PiB7XG4gICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTtcbn07XG5cbmNvbnN0IGxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgJy8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSArICc6JyArIHdpbmRvdy5sb2NhdGlvbi5wb3J0O1xuY29uc3QgSHRtbFBhbmVsID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBbZGF0YSwgc2V0RGF0YV0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBwcm9wcy5oYW5kbGUuYXBpID0gYXBpKCk7XG4gICAgfSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsIG51bGwpO1xuICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KEV2ZW50VHlwZS5DT01QT05FTlRfTE9BRCwgZXZlbnQpO1xuXG4gICAgICAgIGRvTG9hZERhdGEoKTtcbiAgICB9LCBbXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICBldmVudE1hbmFnZXIuYWRkU3Vic2NyaXB0aW9ucyhwYXJzZWRDb25maWcuZXZlbnRIYW5kbGluZ0NvbmZpZywgcHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICBldmVudE1hbmFnZXIuYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyhwcm9wcy52aWV3SWQsIHBhcnNlZENvbmZpZyk7XG4gICAgICAgIHByb3BzLmhhbmRsZS5hcGkucmVmcmVzaCgpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmNsZWFyQ29tcG9uZW50RXZlbnRMaXN0ZW5lcnMocHJvcHMuaGFuZGxlKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBkb0xvYWREYXRhID0gKGFjdGlvbkNvbmZpZykgPT4ge1xuICAgICAgICBsZXQgc2VydmljZTtcbiAgICAgICAgaWYgKGFjdGlvbkNvbmZpZyAmJiBhY3Rpb25Db25maWcuc2VydmljZSkge1xuICAgICAgICAgICAgc2VydmljZSA9IGFjdGlvbkNvbmZpZy5zZXJ2aWNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2VydmljZSA9IHByb3BzLmNvbmZpZy5kYXRhU2VydmljZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHNlcnZpY2UpKSB7XG4gICAgICAgICAgICBsZXQgbWV0aG9kID0gc2VydmljZS50eXBlID09PSAncnBjJyA/IGludm9rZVJwYyA6IGludm9rZVJlc3Q7XG4gICAgICAgICAgICBtZXRob2Qoe1xuICAgICAgICAgICAgICAgIHNlcnZpY2U6IHNlcnZpY2UsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBwcm9wcy5oYW5kbGUsXG4gICAgICAgICAgICAgICAgdmlld0lkOiBwcm9wcy52aWV3SWRcbiAgICAgICAgICAgIH0pLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldERhdGEocmVzdWx0KTtcbiAgICAgICAgICAgIH0pLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICBVdGlscy5wdWJsaXNoRXJyb3JNZXNzYWdlKGUsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGFwaSA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvcHMuY29uZmlnLmlkO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxvYWREYXRhOiAoYWN0aW9uQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICAgICAgZG9Mb2FkRGF0YShhY3Rpb25Db25maWcpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlZnJlc2goKSB7XG4gICAgICAgICAgICAgICAgbGV0IHBhcnNlZENvbmZpZyA9IFV0aWxzLnBhcnNlQ29uZmlnKHByb3BzLmNvbmZpZywgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcpICYmICFVdGlscy5pc051bGwocGFyc2VkQ29uZmlnLnZpc2libGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZpc2libGUoVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwYXJzZWRDb25maWcudmlzaWJsZSwgcGFyc2VkQ29uZmlnLmlkKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmlzaWJsZSh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0Q2hpbGRyZW46ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IHZpc2libGUodmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIHNldFZpc2libGUodmlzaWJsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIHZpc2libGUgJiZcbiAgICAgICAgPGRpdiBzdHlsZT17VXRpbHMubWVyZ2VTdHlsZXMoe30sIHByb3BzLmNvbmZpZyl9PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRhdGEgJiZcbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnN0ZXBzLm1hcCgoc3RlcCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiBcIjRweFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogXCJpbmxpbmUtYmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBcIjE2cHhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiBcIjMycHhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0ZXAuc2VxdWVuY2UgPCBkYXRhLmN1cnJlbnRTdGVwLnNlcXVlbmNlID8gJyM1MGNkODknIDogc3RlcC5zZXF1ZW5jZSA9PT0gZGF0YS5jdXJyZW50U3RlcC5zZXF1ZW5jZSA/IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRBcHBsaWNhdGlvblByaW1hcnlDb2xvcigpIDogJ3doaXRlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBzdGVwLnNlcXVlbmNlIDwgZGF0YS5jdXJyZW50U3RlcC5zZXF1ZW5jZSA/ICcxcHggc29saWQgJyArICcjRkZGRkZGJyA6IChzdGVwLnNlcXVlbmNlID09PSBkYXRhLmN1cnJlbnRTdGVwLnNlcXVlbmNlID8gJzFweCBzb2xpZCAnICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldEFwcGxpY2F0aW9uUHJpbWFyeUNvbG9yKCkgOiAnMXB4IHNvbGlkICcgKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QXBwbGljYXRpb25TZWNvbmRhcnlDb2xvcigpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHN0ZXAuc2VxdWVuY2UgPCBkYXRhLmN1cnJlbnRTdGVwLnNlcXVlbmNlID8gJyNGRkZGRkYnIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRPdmVyZmxvdzogXCJlbGxpcHNpc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBcImhpZGRlblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dE92ZXJmbG93OiBcImVsbGlwc2lzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IFwiMjBweFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RlcC5kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZXAuc3RhcnREYXRlICYmIHN0ZXAuZW5kRGF0ZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U3R5bGU6IFwiaXRhbGljXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogJzEycHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdsZWZ0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBcImhpZGRlblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dE92ZXJmbG93OiBcImVsbGlwc2lzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZXAuc3RhcnREYXRlICsgXCIgLSBcIiArIHN0ZXAuZW5kRGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPCBkYXRhLnN0ZXBzLmxlbmd0aCAtIDEgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7aGVpZ2h0OiBcIjI0cHhcIiwgbWFyZ2luTGVmdDogXCI0OHB4XCJ9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luVG9wOiBcIi0xMnB4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBcImNhbGMoMTAwJSArIDEycHgpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IFwiNHB4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBcIiNlMWUxZTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgSHRtbFBhbmVsO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQyxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDRCxJQUFBQyxNQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxrQkFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksbUJBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLG9CQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdB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
|
|
311
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9yZWFjdEh0bWxSZW5kZXJlciIsIl9PYnNlcnZhYmxlIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9yZWFjdFByb21pc2VUcmFja2VyIiwiX0V2ZW50IiwiX0V2ZW50VHlwZSIsIl9SZXN0U2VydmljZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkhhbmRsZWJhcnMiLCJzdGF0dXMiLCJyZXNwb25zZSIsIm9rIiwiUHJvbWlzZSIsInJlc29sdmUiLCJlcnJvciIsIkVycm9yIiwic3RhdHVzVGV4dCIsImNvZGUiLCJyZWplY3QiLCJqc29uIiwidGV4dCIsImxvY2F0aW9uIiwid2luZG93IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsInBvcnQiLCJIdG1sUGFuZWwiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsImRhdGEiLCJzZXREYXRhIiwidXNlU3RhdGUiLCJ2aXNpYmxlIiwic2V0VmlzaWJsZSIsInVzZUVmZmVjdCIsImhhbmRsZSIsImFwaSIsImV2ZW50IiwiRXZlbnQiLCJ2aWV3SWQiLCJldmVudE1hbmFnZXIiLCJmaXJlRXZlbnQiLCJFdmVudFR5cGUiLCJDT01QT05FTlRfTE9BRCIsImRvTG9hZERhdGEiLCJwYXJzZWRDb25maWciLCJVdGlscyIsInBhcnNlQ29uZmlnIiwiY29uZmlnIiwiYWRkU3Vic2NyaXB0aW9ucyIsImV2ZW50SGFuZGxpbmdDb25maWciLCJhZGRTeXN0ZW1TdWJzY3JpcHRpb25zIiwicmVmcmVzaCIsImNsZWFyQ29tcG9uZW50RXZlbnRMaXN0ZW5lcnMiLCJhY3Rpb25Db25maWciLCJzZXJ2aWNlIiwiZGF0YVNlcnZpY2UiLCJpc051bGwiLCJtZXRob2QiLCJ0eXBlIiwiaW52b2tlUnBjIiwiaW52b2tlUmVzdCIsImNvbXBvbmVudCIsInRoZW4iLCJyZXN1bHQiLCJjYXRjaCIsImNvbnNvbGUiLCJwdWJsaXNoRXJyb3JNZXNzYWdlIiwiaWQiLCJsb2FkRGF0YSIsImV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24iLCJnZXRDaGlsZHJlbiIsInN0ZXBDb2xvcnMiLCJzdGVwU3RhdHVzIiwicHJpbWFyeSIsImFwcGxpY2F0aW9uTWFuYWdlciIsImdldEFwcGxpY2F0aW9uUHJpbWFyeUNvbG9yIiwic2Vjb25kYXJ5IiwiZ2V0QXBwbGljYXRpb25TZWNvbmRhcnlDb2xvciIsImJnIiwiYm9yZGVyIiwibXV0ZWQiLCJ2YXJpYW5jZVRleHQiLCJ2IiwidW5kZWZpbmVkIiwiTWF0aCIsImFicyIsImRheUxhYmVsIiwibiIsInByb2plY3Rpb25CYW5uZXIiLCJ2YXJpYW5jZURheXMiLCJwcm9qZWN0aW9uU3RhdHVzIiwibGFiZWwiLCJjb2xvciIsIm5vUGxhbiIsImFjdGl2ZSIsInN0ZXBzIiwibGVuZ3RoIiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwibWVyZ2VTdHlsZXMiLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsInBhZGRpbmciLCJ0ZXh0QWxpZ24iLCJjbGFzc05hbWUiLCJmb250U2l6ZSIsIm1hcmdpbkJvdHRvbSIsImZvbnRXZWlnaHQiLCJtZXNzYWdlIiwibWFyZ2luVG9wIiwicHJvamVjdGVkRW5kRGF0ZSIsImdhcCIsIm1hcmdpbiIsImJvcmRlclJhZGl1cyIsImJhY2tncm91bmQiLCJib3JkZXJMZWZ0Iiwid2lkdGgiLCJoZWlnaHQiLCJmbGV4U2hyaW5rIiwibWluV2lkdGgiLCJsZXR0ZXJTcGFjaW5nIiwicGxhbm5lZEVuZERhdGUiLCJtYXAiLCJzdGVwIiwiaW5kZXgiLCJjIiwidlRleHQiLCJoYXNQbGFubmVkIiwicGxhbm5lZFN0YXJ0IiwicGxhbm5lZEVuZCIsImhhc0FjdHVhbCIsImFjdHVhbFN0YXJ0IiwiYWN0dWFsRW5kIiwiYWN0dWFsRW5kTGFiZWwiLCJGcmFnbWVudCIsImtleSIsImJveFNpemluZyIsImJhY2tncm91bmRDb2xvciIsIm92ZXJmbG93IiwidGV4dE92ZXJmbG93Iiwid2hpdGVTcGFjZSIsImRlc2NyaXB0aW9uIiwiZm9udFN0eWxlIiwibWFyZ2luTGVmdCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9Qcm9ncmVzc1RyYWNrZXIuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IEhUTUxSZW5kZXJlciBmcm9tICdyZWFjdC1odG1sLXJlbmRlcmVyJztcbmltcG9ydCBldmVudE1hbmFnZXIgZnJvbSAnLi4vZXZlbnQvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQge3RyYWNrUHJvbWlzZX0gZnJvbSAncmVhY3QtcHJvbWlzZS10cmFja2VyJztcbmltcG9ydCBFdmVudCBmcm9tICcuLi9ldmVudC9FdmVudCc7XG5pbXBvcnQgRXZlbnRUeXBlIGZyb20gJy4uL2V2ZW50L0V2ZW50VHlwZSc7XG5pbXBvcnQge2ludm9rZVJlc3QsIGludm9rZVJwY30gZnJvbSBcIi4uL1Jlc3RTZXJ2aWNlXCI7XG5cbmNvbnN0IEhhbmRsZWJhcnMgPSByZXF1aXJlKCdoYW5kbGViYXJzJyk7XG5jb25zdCBzdGF0dXMgPSAocmVzcG9uc2UpID0+IHtcbiAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXNwb25zZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGVycm9yID0gbmV3IEVycm9yKHJlc3BvbnNlLnN0YXR1c1RleHQpO1xuICAgICAgICBlcnJvci5jb2RlID0gcmVzcG9uc2Uuc3RhdHVzO1xuXG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnJvcik7XG4gICAgfVxufTtcblxuY29uc3QganNvbiA9IChyZXNwb25zZSkgPT4ge1xuICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7XG59O1xuXG5jb25zdCBsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUgKyAnOicgKyB3aW5kb3cubG9jYXRpb24ucG9ydDtcbmNvbnN0IEh0bWxQYW5lbCA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW2RhdGEsIHNldERhdGFdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IGFwaSgpO1xuICAgIH0pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkLCBudWxsKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuQ09NUE9ORU5UX0xPQUQsIGV2ZW50KTtcblxuICAgICAgICBkb0xvYWREYXRhKCk7XG4gICAgfSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgbGV0IHBhcnNlZENvbmZpZyA9IFV0aWxzLnBhcnNlQ29uZmlnKHByb3BzLmNvbmZpZywgcHJvcHMudmlld0lkKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN1YnNjcmlwdGlvbnMocGFyc2VkQ29uZmlnLmV2ZW50SGFuZGxpbmdDb25maWcsIHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN5c3RlbVN1YnNjcmlwdGlvbnMocHJvcHMudmlld0lkLCBwYXJzZWRDb25maWcpO1xuICAgICAgICBwcm9wcy5oYW5kbGUuYXBpLnJlZnJlc2goKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGV2ZW50TWFuYWdlci5jbGVhckNvbXBvbmVudEV2ZW50TGlzdGVuZXJzKHByb3BzLmhhbmRsZSk7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgZG9Mb2FkRGF0YSA9IChhY3Rpb25Db25maWcpID0+IHtcbiAgICAgICAgbGV0IHNlcnZpY2U7XG4gICAgICAgIGlmIChhY3Rpb25Db25maWcgJiYgYWN0aW9uQ29uZmlnLnNlcnZpY2UpIHtcbiAgICAgICAgICAgIHNlcnZpY2UgPSBhY3Rpb25Db25maWcuc2VydmljZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNlcnZpY2UgPSBwcm9wcy5jb25maWcuZGF0YVNlcnZpY2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChzZXJ2aWNlKSkge1xuICAgICAgICAgICAgbGV0IG1ldGhvZCA9IHNlcnZpY2UudHlwZSA9PT0gJ3JwYycgPyBpbnZva2VScGMgOiBpbnZva2VSZXN0O1xuICAgICAgICAgICAgbWV0aG9kKHtcbiAgICAgICAgICAgICAgICBzZXJ2aWNlOiBzZXJ2aWNlLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogcHJvcHMuaGFuZGxlLFxuICAgICAgICAgICAgICAgIHZpZXdJZDogcHJvcHMudmlld0lkXG4gICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBzZXREYXRhKHJlc3VsdCk7XG4gICAgICAgICAgICB9KS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgVXRpbHMucHVibGlzaEVycm9yTWVzc2FnZShlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBhcGkgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3BzLmNvbmZpZy5pZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsb2FkRGF0YTogKGFjdGlvbkNvbmZpZykgPT4ge1xuICAgICAgICAgICAgICAgIGRvTG9hZERhdGEoYWN0aW9uQ29uZmlnKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWZyZXNoKCkge1xuICAgICAgICAgICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwcm9wcy5jb25maWcsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuY29uZmlnKSAmJiAhVXRpbHMuaXNOdWxsKHBhcnNlZENvbmZpZy52aXNpYmxlKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRWaXNpYmxlKFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocGFyc2VkQ29uZmlnLnZpc2libGUsIHBhcnNlZENvbmZpZy5pZCkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZpc2libGUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldENoaWxkcmVuOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldCB2aXNpYmxlKHZpc2libGUpIHtcbiAgICAgICAgICAgICAgICBzZXRWaXNpYmxlKHZpc2libGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICAvLyAtLS0tIHByZXNlbnRhdGlvbiBoZWxwZXJzIC0tLS1cbiAgICBjb25zdCBzdGVwQ29sb3JzID0gKHN0ZXBTdGF0dXMpID0+IHtcbiAgICAgICAgY29uc3QgcHJpbWFyeSA9IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRBcHBsaWNhdGlvblByaW1hcnlDb2xvcigpO1xuICAgICAgICBjb25zdCBzZWNvbmRhcnkgPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QXBwbGljYXRpb25TZWNvbmRhcnlDb2xvcigpO1xuICAgICAgICBzd2l0Y2ggKHN0ZXBTdGF0dXMpIHtcbiAgICAgICAgICAgIGNhc2UgJ0NPTVBMRVRFJzpcbiAgICAgICAgICAgICAgICByZXR1cm4ge2JnOiAnIzUwY2Q4OScsIGJvcmRlcjogJyM1MGNkODknLCB0ZXh0OiAnI0ZGRkZGRicsIG11dGVkOiAncmdiYSgyNTUsMjU1LDI1NSwwLjg1KSd9O1xuICAgICAgICAgICAgY2FzZSAnSU5fUFJPR1JFU1MnOlxuICAgICAgICAgICAgICAgIHJldHVybiB7Ymc6IHByaW1hcnksIGJvcmRlcjogcHJpbWFyeSwgdGV4dDogJyNGRkZGRkYnLCBtdXRlZDogJ3JnYmEoMjU1LDI1NSwyNTUsMC44NSknfTtcbiAgICAgICAgICAgIGNhc2UgJ09WRVJEVUUnOlxuICAgICAgICAgICAgICAgIHJldHVybiB7Ymc6ICcjZjE0MTZjJywgYm9yZGVyOiAnI2YxNDE2YycsIHRleHQ6ICcjRkZGRkZGJywgbXV0ZWQ6ICdyZ2JhKDI1NSwyNTUsMjU1LDAuODUpJ307XG4gICAgICAgICAgICBkZWZhdWx0OiAvLyBQRU5ESU5HIC8gdW5rbm93blxuICAgICAgICAgICAgICAgIHJldHVybiB7Ymc6ICcjRkZGRkZGJywgYm9yZGVyOiBzZWNvbmRhcnksIHRleHQ6ICcjMWEzYzVlJywgbXV0ZWQ6ICcjN2E4Njk0J307XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgdmFyaWFuY2VUZXh0ID0gKHYpID0+IHtcbiAgICAgICAgaWYgKHYgPT09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkKSByZXR1cm4gbnVsbDtcbiAgICAgICAgaWYgKHYgPiAwKSByZXR1cm4gJysnICsgdiArICdkIGxhdGUnO1xuICAgICAgICBpZiAodiA8IDApIHJldHVybiBNYXRoLmFicyh2KSArICdkIGVhcmx5JztcbiAgICAgICAgcmV0dXJuICdvbiB0aW1lJztcbiAgICB9O1xuXG4gICAgY29uc3QgZGF5TGFiZWwgPSAobikgPT4gTWF0aC5hYnMobikgPT09IDEgPyAnZGF5JyA6ICdkYXlzJztcblxuICAgIGNvbnN0IHByb2plY3Rpb25CYW5uZXIgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHYgPSBkYXRhLnZhcmlhbmNlRGF5cztcbiAgICAgICAgc3dpdGNoIChkYXRhLnByb2plY3Rpb25TdGF0dXMpIHtcbiAgICAgICAgICAgIGNhc2UgJ0xBVEUnOlxuICAgICAgICAgICAgICAgIHJldHVybiB7bGFiZWw6ICdMQVRFIGJ5ICcgKyB2ICsgJyAnICsgZGF5TGFiZWwodiksIGNvbG9yOiAnI2YxNDE2Yyd9O1xuICAgICAgICAgICAgY2FzZSAnUVVJQ0tFUl9USEFOX1BMQU5ORUQnOlxuICAgICAgICAgICAgICAgIHJldHVybiB7bGFiZWw6ICdRVUlDS0VSIFRIQU4gUExBTk5FRCBieSAnICsgTWF0aC5hYnModikgKyAnICcgKyBkYXlMYWJlbCh2KSwgY29sb3I6ICcjNTBjZDg5J307XG4gICAgICAgICAgICBkZWZhdWx0OiAvLyBFWEFDVFxuICAgICAgICAgICAgICAgIHJldHVybiB7bGFiZWw6ICdPTiBUUkFDSycsIGNvbG9yOiBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QXBwbGljYXRpb25QcmltYXJ5Q29sb3IoKX07XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgbm9QbGFuID0gZGF0YSAmJiAoZGF0YS5hY3RpdmUgPT09IGZhbHNlIHx8ICFkYXRhLnN0ZXBzIHx8IGRhdGEuc3RlcHMubGVuZ3RoID09PSAwKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIHZpc2libGUgJiZcbiAgICAgICAgPGRpdiBzdHlsZT17VXRpbHMubWVyZ2VTdHlsZXMoe30sIHByb3BzLmNvbmZpZyl9PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRhdGEgJiYgbm9QbGFuICYmXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnNDhweCAxNnB4JywgdGV4dEFsaWduOiAnY2VudGVyJ1xuICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9J2ZhIGZhLXN0cmVhbScgc3R5bGU9e3tmb250U2l6ZTogJzQwcHgnLCBjb2xvcjogJyNkNWRiZTMnLCBtYXJnaW5Cb3R0b206ICcxMnB4J319PjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e2ZvbnRTaXplOiAnMTZweCcsIGZvbnRXZWlnaHQ6IDYwMCwgY29sb3I6ICcjNmI3Nzg1J319PlxuICAgICAgICAgICAgICAgICAgICAgICAge2RhdGEubWVzc2FnZSB8fCAnTm8gcGxhbiBpbiBwcm9ncmVzcyd9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7Zm9udFNpemU6ICcxMnB4JywgY29sb3I6ICcjOWFhM2IxJywgbWFyZ2luVG9wOiAnNHB4J319PlxuICAgICAgICAgICAgICAgICAgICAgICAgQSBwcm9jdXJlbWVudCBwbGFuIHRpbWVsaW5lIHdpbGwgYXBwZWFyIGhlcmUgb25jZSBwbGFubmluZyBzdGFydHMuXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRhdGEgJiYgIW5vUGxhbiAmJlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEucHJvamVjdGVkRW5kRGF0ZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGdhcDogJzEwcHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICcxMnB4IDE2cHgnLCBtYXJnaW46ICc0cHggNHB4IDEycHgnLCBib3JkZXJSYWRpdXM6ICcxMnB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2Y4ZmFmYycsIGJvcmRlcjogJzFweCBzb2xpZCAjZWVmMWY1JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJMZWZ0OiAnNHB4IHNvbGlkICcgKyBwcm9qZWN0aW9uQmFubmVyKCkuY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTBweCcsIGhlaWdodDogJzEwcHgnLCBib3JkZXJSYWRpdXM6ICc1MCUnLCBmbGV4U2hyaW5rOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiBwcm9qZWN0aW9uQmFubmVyKCkuY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e21pbldpZHRoOiAwfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tmb250U2l6ZTogJzEzcHgnLCBmb250V2VpZ2h0OiA3MDAsIGxldHRlclNwYWNpbmc6ICcwLjAyZW0nLCBjb2xvcjogcHJvamVjdGlvbkJhbm5lcigpLmNvbG9yfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cHJvamVjdGlvbkJhbm5lcigpLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e2ZvbnRTaXplOiAnMTJweCcsIGNvbG9yOiAnIzRhNTc2NSd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb2plY3RlZCBjb21wbGV0aW9uOiB7ZGF0YS5wcm9qZWN0ZWRFbmREYXRlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2RhdGEucGxhbm5lZEVuZERhdGUgPyAnIMK3IHBsYW5uZWQgJyArIGRhdGEucGxhbm5lZEVuZERhdGUgOiAnJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnN0ZXBzLm1hcCgoc3RlcCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjID0gc3RlcENvbG9ycyhzdGVwLnN0YXR1cyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdlRleHQgPSB2YXJpYW5jZVRleHQoc3RlcC52YXJpYW5jZURheXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc1BsYW5uZWQgPSBzdGVwLnBsYW5uZWRTdGFydCB8fCBzdGVwLnBsYW5uZWRFbmQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzQWN0dWFsID0gc3RlcC5hY3R1YWxTdGFydCB8fCBzdGVwLmFjdHVhbEVuZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3R1YWxFbmRMYWJlbCA9IHN0ZXAuYWN0dWFsRW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICgoc3RlcC5zdGF0dXMgPT09ICdJTl9QUk9HUkVTUycgfHwgc3RlcC5zdGF0dXMgPT09ICdPVkVSRFVFJykgPyAnaW4gcHJvZ3Jlc3MnIDogJ+KAlCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSZWFjdC5GcmFnbWVudCBrZXk9e2luZGV4fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3ttYXJnaW46ICc0cHgnfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLCBwYWRkaW5nOiAnMTRweCAxNnB4JywgYm9yZGVyUmFkaXVzOiAnMTJweCcsIGJveFNpemluZzogJ2JvcmRlci1ib3gnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGMuYmcsIGJvcmRlcjogJzFweCBzb2xpZCAjZTFlMWUxJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGMudGV4dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7ZGlzcGxheTogJ2ZsZXgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJywganVzdGlmeUNvbnRlbnQ6ICdzcGFjZS1iZXR3ZWVuJywgZ2FwOiAnOHB4J319PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAnMThweCcsIGZvbnRXZWlnaHQ6IDYwMCwgbWluV2lkdGg6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLCB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcycsIHdoaXRlU3BhY2U6ICdub3dyYXAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3RlcC5kZXNjcmlwdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZUZXh0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleFNocmluazogMCwgZm9udFNpemU6ICcxMXB4JywgZm9udFdlaWdodDogNjAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnMnB4IDhweCcsIGJvcmRlclJhZGl1czogJzk5OXB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogYy50ZXh0ID09PSAnI0ZGRkZGRicgPyAncmdiYSgyNTUsMjU1LDI1NSwwLjI1KScgOiAnI2VlZjFmNScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBjLnRleHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3ZUZXh0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc1BsYW5uZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogJzEycHgnLCBmb250U3R5bGU6ICdpdGFsaWMnLCBtYXJnaW5Ub3A6ICc0cHgnLCBjb2xvcjogYy5tdXRlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsIHRleHRPdmVyZmxvdzogJ2VsbGlwc2lzJywgd2hpdGVTcGFjZTogJ25vd3JhcCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBsYW5uZWQ6IHtzdGVwLnBsYW5uZWRTdGFydCB8fCAn4oCUJ30gJnJhcnI7IHtzdGVwLnBsYW5uZWRFbmQgfHwgJ+KAlCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNBY3R1YWwgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogJzEycHgnLCBtYXJnaW5Ub3A6ICcycHgnLCBjb2xvcjogYy50ZXh0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJywgdGV4dE92ZXJmbG93OiAnZWxsaXBzaXMnLCB3aGl0ZVNwYWNlOiAnbm93cmFwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0dWFsOiB7c3RlcC5hY3R1YWxTdGFydCB8fCAn4oCUJ30gJnJhcnI7IHthY3R1YWxFbmRMYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA8IGRhdGEuc3RlcHMubGVuZ3RoIC0gMSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3toZWlnaHQ6ICcyNHB4JywgbWFyZ2luTGVmdDogJzQ4cHgnfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogJy01cHgnLCBoZWlnaHQ6ICdjYWxjKDEwMCUgKyA1cHgpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMnB4JywgYmFja2dyb3VuZENvbG9yOiAnI2VlZjFmNSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBIdG1sUGFuZWw7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEs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
|
|
@@ -48,7 +48,7 @@ const StepperTitleBar = /*#__PURE__*/_react.default.memo(props => {
|
|
|
48
48
|
actions: [{
|
|
49
49
|
actionType: "script",
|
|
50
50
|
script: {
|
|
51
|
-
lines: ["if($event.data.name === 'stepperTitle'){", " @#{".concat(props.config.id, "}.show()"), "}"]
|
|
51
|
+
lines: ["if($event.data.name === 'stepperTitle' && !isNull(@#{".concat(props.config.id, "})){"), " @#{".concat(props.config.id, "}.show()"), "}"]
|
|
52
52
|
}
|
|
53
53
|
}]
|
|
54
54
|
};
|
|
@@ -61,6 +61,7 @@ const StepperTitleBar = /*#__PURE__*/_react.default.memo(props => {
|
|
|
61
61
|
recalcLinePosition();
|
|
62
62
|
});
|
|
63
63
|
recalcLinePosition();
|
|
64
|
+
show();
|
|
64
65
|
}, []);
|
|
65
66
|
const recalcLinePosition = () => {
|
|
66
67
|
var _$$offset;
|
|
@@ -96,6 +97,28 @@ const StepperTitleBar = /*#__PURE__*/_react.default.memo(props => {
|
|
|
96
97
|
'width': (stepWidth - titleWidth) / 2 + 'px'
|
|
97
98
|
});
|
|
98
99
|
};
|
|
100
|
+
function show() {
|
|
101
|
+
let graph;
|
|
102
|
+
let view = _ApplicationManager.default.getView(props.viewId);
|
|
103
|
+
if (view) {
|
|
104
|
+
for (const key of Object.keys(_ApplicationManager.default.viewContext)) {
|
|
105
|
+
let viewManager = _ApplicationManager.default.viewContext[key];
|
|
106
|
+
for (const viewManagerGraph of viewManager.getGraphs()) {
|
|
107
|
+
if (viewManagerGraph.id === view.graphId) {
|
|
108
|
+
graph = viewManagerGraph;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (graph) {
|
|
114
|
+
let steps = graph.getTitleStack();
|
|
115
|
+
setSteps(steps);
|
|
116
|
+
currentIndex.current = graph.getCurrentNodeIndex();
|
|
117
|
+
setActiveSegmentPercentage(100 - 10 * (steps.length - 1));
|
|
118
|
+
// recalc after render
|
|
119
|
+
setTimeout(() => recalcLinePosition(), 0);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
99
122
|
const api = () => {
|
|
100
123
|
return {
|
|
101
124
|
get id() {
|
|
@@ -112,26 +135,7 @@ const StepperTitleBar = /*#__PURE__*/_react.default.memo(props => {
|
|
|
112
135
|
return [];
|
|
113
136
|
},
|
|
114
137
|
show() {
|
|
115
|
-
|
|
116
|
-
let view = _ApplicationManager.default.getView(props.viewId);
|
|
117
|
-
if (view) {
|
|
118
|
-
for (const key of Object.keys(_ApplicationManager.default.viewContext)) {
|
|
119
|
-
let viewManager = _ApplicationManager.default.viewContext[key];
|
|
120
|
-
for (const viewManagerGraph of viewManager.getGraphs()) {
|
|
121
|
-
if (viewManagerGraph.id === view.graphId) {
|
|
122
|
-
graph = viewManagerGraph;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
if (graph) {
|
|
128
|
-
let steps = graph.getTitleStack();
|
|
129
|
-
setSteps(steps);
|
|
130
|
-
currentIndex.current = graph.getCurrentNodeIndex();
|
|
131
|
-
setActiveSegmentPercentage(100 - 10 * (steps.length - 1));
|
|
132
|
-
// recalc after render
|
|
133
|
-
setTimeout(() => recalcLinePosition(), 0);
|
|
134
|
-
}
|
|
138
|
+
show();
|
|
135
139
|
}
|
|
136
140
|
};
|
|
137
141
|
};
|
|
@@ -186,7 +190,7 @@ const StepperTitleBar = /*#__PURE__*/_react.default.memo(props => {
|
|
|
186
190
|
className: "step-item"
|
|
187
191
|
}, renderStep(step, idx, steps.length))));
|
|
188
192
|
}
|
|
189
|
-
return
|
|
193
|
+
return visible && !_Utils.default.isNull(props.config) ? /*#__PURE__*/_react.default.createElement("div", {
|
|
190
194
|
style: _Utils.default.mergeStyles({
|
|
191
195
|
fontSize: '24px',
|
|
192
196
|
color: '#202124',
|
|
@@ -195,7 +199,7 @@ const StepperTitleBar = /*#__PURE__*/_react.default.memo(props => {
|
|
|
195
199
|
justifyContent: 'center',
|
|
196
200
|
margin: "0 0 16px 0"
|
|
197
201
|
}, props.config)
|
|
198
|
-
}, !_Utils.default.isNull(steps) && !_Utils.default.isNull(activeSegmentPercentage) && !_Utils.default.isNull(currentIndex.current) ? render() : null) : null
|
|
202
|
+
}, !_Utils.default.isNull(steps) && !_Utils.default.isNull(activeSegmentPercentage) && !_Utils.default.isNull(currentIndex.current) ? render() : null) : null;
|
|
199
203
|
});
|
|
200
204
|
var _default = exports.default = StepperTitleBar;
|
|
201
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfT2JzZXJ2YWJsZSIsIl9FdmVudFR5cGUiLCJfc3R5bGVzIiwiX1Rvb2x0aXAiLCJfanF1ZXJ5IiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidXNlU3R5bGVzIiwibWFrZVN0eWxlcyIsInRoZW1lIiwicHJpbWFyeSIsImJhY2tncm91bmRDb2xvciIsInBhbGV0dGUiLCJtYWluIiwiYm9yZGVyIiwic2Vjb25kYXJ5IiwidGhlbWVCb3JkZXIiLCJib3JkZXJDb2xvciIsIlN0ZXBwZXJUaXRsZUJhciIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwic3RlcHMiLCJzZXRTdGVwcyIsInVzZVN0YXRlIiwidmlzaWJsZSIsInNldFZpc2libGUiLCJhY3RpdmVTZWdtZW50UGVyY2VudGFnZSIsInNldEFjdGl2ZVNlZ21lbnRQZXJjZW50YWdlIiwiY3VycmVudEluZGV4IiwidXNlUmVmIiwiY2xhc3NlcyIsInVzZUVmZmVjdCIsImhhbmRsZSIsImFwaSIsInBhcnNlZENvbmZpZyIsIlV0aWxzIiwicGFyc2VDb25maWciLCJjb25maWciLCJ2aWV3SWQiLCJldmVudEhhbmRsaW5nQ29uZmlnIiwiaXNOdWxsIiwic3Vic2NyaXB0aW9ucyIsInN1YnNjcmlwdGlvbiIsInB1Ymxpc2hlciIsImV2ZW50VHlwZSIsIkV2ZW50VHlwZSIsIkFQUExJQ0FUSU9OX0NPTlRFWFRfQ0hBTkdFIiwiYWN0aW9ucyIsImFjdGlvblR5cGUiLCJzY3JpcHQiLCJsaW5lcyIsImNvbmNhdCIsImlkIiwicHVzaCIsImV2ZW50TWFuYWdlciIsImFkZFN1YnNjcmlwdGlvbnMiLCIkIiwiZG9jdW1lbnQiLCJyZWFkeSIsInJlY2FsY0xpbmVQb3NpdGlvbiIsIndpbmRvdyIsInJlc2l6ZSIsIl8kJG9mZnNldCIsImN1cnJlbnQiLCJzdGVwRWwiLCJsZW5ndGgiLCJzdGVwVG9wIiwib2Zmc2V0IiwidG9wIiwiZmlyc3RUb3AiLCJjc3MiLCJ3aWR0aCIsInN0ZXBXaWR0aCIsImFjdGl2ZUJveCIsImZpbmQiLCJmaXJzdCIsInRpdGxlV2lkdGgiLCJyZWZyZXNoIiwiZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiIsImdldENoaWxkcmVuIiwic2hvdyIsImdyYXBoIiwidmlldyIsImFwcGxpY2F0aW9uTWFuYWdlciIsImdldFZpZXciLCJrZXkiLCJPYmplY3QiLCJrZXlzIiwidmlld0NvbnRleHQiLCJ2aWV3TWFuYWdlciIsInZpZXdNYW5hZ2VyR3JhcGgiLCJnZXRHcmFwaHMiLCJncmFwaElkIiwiZ2V0VGl0bGVTdGFjayIsImdldEN1cnJlbnROb2RlSW5kZXgiLCJzZXRUaW1lb3V0IiwicmVuZGVyU3RlcCIsInN0ZXAiLCJncmFwaGljc0NvdW50ZXIiLCJ0b3RhbFN0ZXBzIiwiaXNBY3RpdmUiLCJpc1Zpc2l0ZWQiLCJpc0xhc3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwic3R5bGUiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJpbmRleCIsImNvbG9yIiwid2hpdGVTcGFjZSIsInRpdGxlIiwicmVuZGVyIiwibWFwIiwiaWR4IiwibWVyZ2VTdHlsZXMiLCJmb250U2l6ZSIsInBhZGRpbmciLCJkaXNwbGF5IiwianVzdGlmeUNvbnRlbnQiLCJtYXJnaW4iLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvU3RlcHBlclRpdGxlQmFyLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi9VdGlsc1wiO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tICcuLi9BcHBsaWNhdGlvbk1hbmFnZXInO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tIFwiLi4vZXZlbnQvT2JzZXJ2YWJsZVwiO1xuaW1wb3J0IEV2ZW50VHlwZSBmcm9tIFwiLi4vZXZlbnQvRXZlbnRUeXBlXCI7XG5pbXBvcnQgeyBtYWtlU3R5bGVzIH0gZnJvbSBcIkBtdWkvc3R5bGVzXCI7XG5pbXBvcnQgVG9vbHRpcCBmcm9tIFwiQG11aS9tYXRlcmlhbC9Ub29sdGlwXCI7XG5pbXBvcnQgXCIuL1N0ZXBwZXJUaXRsZUJhci5jc3NcIjtcbmltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbmNvbnN0IHVzZVN0eWxlcyA9IG1ha2VTdHlsZXModGhlbWUgPT4gKHtcbiAgICBwcmltYXJ5OiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW4sXG4gICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAnICsgdGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW5cbiAgICB9LFxuICAgIHNlY29uZGFyeToge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuc2Vjb25kYXJ5Lm1haW4sXG4gICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAnICsgdGhlbWUucGFsZXR0ZS5zZWNvbmRhcnkubWFpblxuICAgIH0sXG4gICAgdGhlbWVCb3JkZXI6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IHRoZW1lLnBhbGV0dGUuc2Vjb25kYXJ5Lm1haW5cbiAgICB9XG59KSk7XG5cbmNvbnN0IFN0ZXBwZXJUaXRsZUJhciA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW3N0ZXBzLCBzZXRTdGVwc10gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2FjdGl2ZVNlZ21lbnRQZXJjZW50YWdlLCBzZXRBY3RpdmVTZWdtZW50UGVyY2VudGFnZV0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlcygpO1xuXG4gICAgLy8gcmUtYXR0YWNoIEFQSSBvbiBlYWNoIHJlbmRlclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICB9KTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwcm9wcy5jb25maWcsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgIGxldCBldmVudEhhbmRsaW5nQ29uZmlnID0gVXRpbHMuaXNOdWxsKHBhcnNlZENvbmZpZy5ldmVudEhhbmRsaW5nQ29uZmlnKSA/IHt9IDogcGFyc2VkQ29uZmlnLmV2ZW50SGFuZGxpbmdDb25maWc7XG4gICAgICAgIGV2ZW50SGFuZGxpbmdDb25maWcuc3Vic2NyaXB0aW9ucyA9IFV0aWxzLmlzTnVsbChldmVudEhhbmRsaW5nQ29uZmlnLnN1YnNjcmlwdGlvbnMpID8gW10gOiBldmVudEhhbmRsaW5nQ29uZmlnLnN1YnNjcmlwdGlvbnM7XG4gICAgICAgIGxldCBzdWJzY3JpcHRpb24gPSB7XG4gICAgICAgICAgICBwdWJsaXNoZXI6IFwiYXBwbGljYXRpb25NYW5hZ2VyXCIsXG4gICAgICAgICAgICBldmVudFR5cGU6IEV2ZW50VHlwZS5BUFBMSUNBVElPTl9DT05URVhUX0NIQU5HRSxcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvblR5cGU6IFwic2NyaXB0XCIsXG4gICAgICAgICAgICAgICAgICAgIHNjcmlwdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgaWYoJGV2ZW50LmRhdGEubmFtZSA9PT0gJ3N0ZXBwZXJUaXRsZScpe2AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYCAgIEAjeyR7cHJvcHMuY29uZmlnLmlkfX0uc2hvdygpYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIn1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICAgIGV2ZW50SGFuZGxpbmdDb25maWcuc3Vic2NyaXB0aW9ucy5wdXNoKHN1YnNjcmlwdGlvbik7XG4gICAgICAgIGV2ZW50TWFuYWdlci5hZGRTdWJzY3JpcHRpb25zKGV2ZW50SGFuZGxpbmdDb25maWcsIHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkKTtcblxuICAgICAgICAkKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZWNhbGNMaW5lUG9zaXRpb24oKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgJCh3aW5kb3cpLnJlc2l6ZShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZWNhbGNMaW5lUG9zaXRpb24oKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmVjYWxjTGluZVBvc2l0aW9uKCk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgcmVjYWxjTGluZVBvc2l0aW9uID0gKCkgPT4ge1xuICAgICAgICAvLyBZb3VyIG9sZCBsb2dpYyBkZXBlbmRlZCBvbiBzaW5nbGUtcm93IGxheW91dCBhbmQgYSBzaW5nbGUgI3RpdGxlRGl2XG4gICAgICAgIC8vIE5vdyB0aGF0IHdlIGFsbG93IHdyYXBwaW5nLCB3ZSBndWFyZCB0aGlzIHNvIGl0IGRvZXNuJ3QgYnJlYWsuXG4gICAgICAgIGlmIChjdXJyZW50SW5kZXguY3VycmVudCA9PSBudWxsKSByZXR1cm47XG5cbiAgICAgICAgY29uc3Qgc3RlcEVsID0gJChcIiNzdGVwLWNvbnRhaW5lci1cIiArIGN1cnJlbnRJbmRleC5jdXJyZW50KTtcbiAgICAgICAgaWYgKCFzdGVwRWwgfHwgc3RlcEVsLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHN0ZXBUb3AgPSBzdGVwRWwub2Zmc2V0KCkudG9wO1xuICAgICAgICBjb25zdCBmaXJzdFRvcCA9ICQoXCIjc3RlcC1jb250YWluZXItMFwiKS5vZmZzZXQoKT8udG9wO1xuXG4gICAgICAgIC8vIGlmIHdyYXBwZWQgdG8gbXVsdGlwbGUgcm93cywgc2tpcCBsaW5lIG1hdGggKGVhY2ggaXRlbSBhbHJlYWR5IGhhcyBpdHMgb3duIGxpbmUgc2VnbWVudClcbiAgICAgICAgaWYgKGZpcnN0VG9wICE9IG51bGwgJiYgc3RlcFRvcCAhPT0gZmlyc3RUb3ApIHtcbiAgICAgICAgICAgICQoXCIuc3RlcEFjdGl2ZSAucmlnaHRMaW5lXCIpLmNzcyh7IHdpZHRoOiAwIH0pO1xuICAgICAgICAgICAgJChcIi5zdGVwQWN0aXZlIC5sZWZ0TGluZVwiKS5jc3MoeyB3aWR0aDogMCB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGlmIHN0aWxsIG9uIG9uZSByb3csIHdlIGNhbiBrZWVwIHRoZSBvbGQgbG9naWMgcm91Z2hseVxuICAgICAgICBjb25zdCBzdGVwV2lkdGggPSBzdGVwRWwud2lkdGgoKTtcbiAgICAgICAgaWYgKCFzdGVwV2lkdGgpIHJldHVybjtcblxuICAgICAgICBjb25zdCBhY3RpdmVCb3ggPSBzdGVwRWwuZmluZChcIi5ib3gsIC5ib3gtcGVuZGluZ1wiKS5maXJzdCgpO1xuICAgICAgICBjb25zdCB0aXRsZVdpZHRoID0gYWN0aXZlQm94LndpZHRoKCk7XG5cbiAgICAgICAgJChcIi5zdGVwQWN0aXZlIC5yaWdodExpbmVcIikuY3NzKHtcbiAgICAgICAgICAgICdtYXJnaW4tbGVmdCc6ICh0aXRsZVdpZHRoIC8gMikgKyAncHgnLFxuICAgICAgICAgICAgJ3dpZHRoJzogKHN0ZXBXaWR0aCAtIHRpdGxlV2lkdGgpICsgJ3B4J1xuICAgICAgICB9KTtcblxuICAgICAgICAkKFwiLnN0ZXBBY3RpdmUgLmxlZnRMaW5lXCIpLmNzcyh7XG4gICAgICAgICAgICAnd2lkdGgnOiAoc3RlcFdpZHRoIC0gdGl0bGVXaWR0aCkgLyAyICsgJ3B4J1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgYXBpID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm9wcy5jb25maWcuaWQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IHZpc2libGUodmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIHNldFZpc2libGUodmlzaWJsZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVmcmVzaCgpIHtcbiAgICAgICAgICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnID8gcHJvcHMuY29uZmlnIDogcHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgICAgIHNldFZpc2libGUoVXRpbHMuaXNOdWxsKHBhcnNlZENvbmZpZy52aXNpYmxlKSB8fCBVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcnNlZENvbmZpZy52aXNpYmxlLCBwYXJzZWRDb25maWcuaWQpKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzaG93KCkge1xuICAgICAgICAgICAgICAgIGxldCBncmFwaDtcbiAgICAgICAgICAgICAgICBsZXQgdmlldyA9IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRWaWV3KHByb3BzLnZpZXdJZCk7XG5cbiAgICAgICAgICAgICAgICBpZiAodmlldykge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhhcHBsaWNhdGlvbk1hbmFnZXIudmlld0NvbnRleHQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmlld01hbmFnZXIgPSBhcHBsaWNhdGlvbk1hbmFnZXIudmlld0NvbnRleHRba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgdmlld01hbmFnZXJHcmFwaCBvZiB2aWV3TWFuYWdlci5nZXRHcmFwaHMoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2aWV3TWFuYWdlckdyYXBoLmlkID09PSB2aWV3LmdyYXBoSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JhcGggPSB2aWV3TWFuYWdlckdyYXBoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChncmFwaCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgc3RlcHMgPSBncmFwaC5nZXRUaXRsZVN0YWNrKCk7XG4gICAgICAgICAgICAgICAgICAgIHNldFN0ZXBzKHN0ZXBzKTtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEluZGV4LmN1cnJlbnQgPSBncmFwaC5nZXRDdXJyZW50Tm9kZUluZGV4KCk7XG4gICAgICAgICAgICAgICAgICAgIHNldEFjdGl2ZVNlZ21lbnRQZXJjZW50YWdlKDEwMCAtICgxMCAqIChzdGVwcy5sZW5ndGggLSAxKSkpO1xuICAgICAgICAgICAgICAgICAgICAvLyByZWNhbGMgYWZ0ZXIgcmVuZGVyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVjYWxjTGluZVBvc2l0aW9uKCksIDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBmdW5jdGlvbiByZW5kZXJTdGVwKHN0ZXAsIGdyYXBoaWNzQ291bnRlciwgdG90YWxTdGVwcykge1xuICAgICAgICBjb25zdCBpc0FjdGl2ZSA9IGdyYXBoaWNzQ291bnRlciA9PT0gY3VycmVudEluZGV4LmN1cnJlbnQ7XG4gICAgICAgIGNvbnN0IGlzVmlzaXRlZCA9IGdyYXBoaWNzQ291bnRlciA8IGN1cnJlbnRJbmRleC5jdXJyZW50O1xuICAgICAgICBjb25zdCBpc0xhc3QgPSBncmFwaGljc0NvdW50ZXIgPT09IHRvdGFsU3RlcHMgLSAxO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17aXNBY3RpdmUgPyBgc3RlcEFjdGl2ZWAgOiBpc1Zpc2l0ZWQgPyAnc3RlcFZpc2l0ZWQnIDogJ3N0ZXAnfT5cbiAgICAgICAgICAgICAgICB7LyogdG9wIGxpbmUgYmVmb3JlIGJveCAoZm9yIHZlcnRpY2FsIGxheW91dCAvIGNvbm5lY3RvcnMpICovfVxuICAgICAgICAgICAgICAgIHtncmFwaGljc0NvdW50ZXIgPiAwID8gKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9eyhncmFwaGljc0NvdW50ZXIgPD0gY3VycmVudEluZGV4LmN1cnJlbnQgPyBgJHtjbGFzc2VzLnRoZW1lQm9yZGVyfSBgIDogJycpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXNMYXN0ID8gJyBsYXN0TGluZScgOiAnJyl9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICAgICAgICAgICAgICAgJ3JvdyBmbGV4LW5vd3JhcCcgKyAoZ3JhcGhpY3NDb3VudGVyID09PSAwID8gJyBmaXJzdEJveCcgOiAnYm94V3JhcHBlcicpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogJ3Vuc2V0JywgbWFyZ2luUmlnaHQ6ICd1bnNldCcsIHdpZHRoOiAnMTAwJScgfX1cbiAgICAgICAgICAgICAgICAgICAgaWQ9eydzdGVwLScgKyBncmFwaGljc0NvdW50ZXJ9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGVwLmluZGV4ID4gMCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wtKi0qIGRhc2gnfSBzdHlsZT17eyBjb2xvcjogaXNWaXNpdGVkID8gJyNmZmZmZmYnIDogbnVsbCB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXNWaXNpdGVkID8gYCR7Y2xhc3Nlcy5zZWNvbmRhcnl9IGJveGAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0FjdGl2ZSA/IGAke2NsYXNzZXMucHJpbWFyeX0gYm94YCA6ICdib3gtcGVuZGluZycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAnIHJvdyBuby1tYXJnaW4gbm8tcGFkZGluZyBmbGV4LW5vd3JhcCcgKyAoc3RlcC5pbmRleCA9PT0gMCA/ICcgZmlyc3QtYm94JyA6ICcnKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2RvdCBjb2wtKi0qJ30gc3R5bGU9e3sgY29sb3I6IGlzVmlzaXRlZCA/ICcjZmZmZmZmJyA6IG51bGwgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3N0ZXAuaW5kZXggKyAxfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzdGVwLnRpdGxlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN0ZXAtdGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGlzQWN0aXZlID8gJyMwMDAwMDAnIDogaXNWaXNpdGVkID8gJyNmZmZmZmYnIDogJyM4ODg4ODgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3N0ZXAudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgey8qIGJvdHRvbSBsaW5lIGFmdGVyIGJveCAqL31cbiAgICAgICAgICAgICAgICB7IWlzTGFzdCA/IChcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsoZ3JhcGhpY3NDb3VudGVyIDwgY3VycmVudEluZGV4LmN1cnJlbnQgPyBgJHtjbGFzc2VzLnRoZW1lQm9yZGVyfSBgIDogJycpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3JhcGhpY3NDb3VudGVyID09PSAwID8gJyBmaXJzdExpbmUnIDogJycpfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN0ZXBwZXItY29udGFpbmVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7c3RlcHMubWFwKChzdGVwLCBpZHgpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpZHh9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZD17XCJzdGVwLWNvbnRhaW5lci1cIiArIGlkeH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN0ZXAtaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJTdGVwKHN0ZXAsIGlkeCwgc3RlcHMubGVuZ3RoKX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAge3Zpc2libGUgJiYgIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcpID8gKFxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e1xuICAgICAgICAgICAgICAgICAgICAgICAgVXRpbHMubWVyZ2VTdHlsZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogJzI0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJyMyMDIxMjQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBcIjBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogXCIwIDAgMTZweCAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmNvbmZpZ1xuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7IVV0aWxzLmlzTnVsbChzdGVwcykgJiYgIVV0aWxzLmlzTnVsbChhY3RpdmVTZWdtZW50UGVyY2VudGFnZSkgJiYgIVV0aWxzLmlzTnVsbChjdXJyZW50SW5kZXguY3VycmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgID8gcmVuZGVyKClcbiAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFN0ZXBwZXJUaXRsZUJhcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsTUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsbUJBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQU8sT0FBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQXVCLFNBQUFELHVCQUFBUyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRXZCLE1BQU1HLFNBQVMsR0FBRyxJQUFBQyxrQkFBVSxFQUFDQyxLQUFLLEtBQUs7RUFDbkNDLE9BQU8sRUFBRTtJQUNMQyxlQUFlLEVBQUVGLEtBQUssQ0FBQ0csT0FBTyxDQUFDRixPQUFPLENBQUNHLElBQUk7SUFDM0NDLE1BQU0sRUFBRSxZQUFZLEdBQUdMLEtBQUssQ0FBQ0csT0FBTyxDQUFDRixPQUFPLENBQUNHO0VBQ2pELENBQUM7RUFDREUsU0FBUyxFQUFFO0lBQ1BKLGVBQWUsRUFBRUYsS0FBSyxDQUFDRyxPQUFPLENBQUNHLFNBQVMsQ0FBQ0YsSUFBSTtJQUM3Q0MsTUFBTSxFQUFFLFlBQVksR0FBR0wsS0FBSyxDQUFDRyxPQUFPLENBQUNHLFNBQVMsQ0FBQ0Y7RUFDbkQsQ0FBQztFQUNERyxXQUFXLEVBQUU7SUFDVEMsV0FBVyxFQUFFUixLQUFLLENBQUNHLE9BQU8sQ0FBQ0csU0FBUyxDQUFDRjtFQUN6QztBQUNKLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTUssZUFBZSxnQkFBR0MsY0FBSyxDQUFDQyxJQUFJLENBQUVDLEtBQUssSUFBSztFQUMxQyxNQUFNLENBQUNDLEtBQUssRUFBRUMsUUFBUSxDQUFDLEdBQUdKLGNBQUssQ0FBQ0ssUUFBUSxDQUFDLElBQUksQ0FBQztFQUM5QyxNQUFNLENBQUNDLE9BQU8sRUFBRUMsVUFBVSxDQUFDLEdBQUdQLGNBQUssQ0FBQ0ssUUFBUSxDQUFDLEtBQUssQ0FBQztFQUNuRCxNQUFNLENBQUNHLHVCQUF1QixFQUFFQywwQkFBMEIsQ0FBQyxHQUFHVCxjQUFLLENBQUNLLFFBQVEsQ0FBQyxJQUFJLENBQUM7RUFDbEYsTUFBTUssWUFBWSxHQUFHVixjQUFLLENBQUNXLE1BQU0sQ0FBQyxJQUFJLENBQUM7RUFDdkMsTUFBTUMsT0FBTyxHQUFHeEIsU0FBUyxDQUFDLENBQUM7O0VBRTNCO0VBQ0FZLGNBQUssQ0FBQ2EsU0FBUyxDQUFDLE1BQU07SUFDbEJYLEtBQUssQ0FBQ1ksTUFBTSxDQUFDQyxHQUFHLEdBQUdBLEdBQUcsQ0FBQyxDQUFDO0VBQzVCLENBQUMsQ0FBQztFQUVGZixjQUFLLENBQUNhLFNBQVMsQ0FBQyxNQUFNO0lBQ2xCLElBQUlHLFlBQVksR0FBR0MsY0FBSyxDQUFDQyxXQUFXLENBQUNoQixLQUFLLENBQUNpQixNQUFNLEVBQUVqQixLQUFLLENBQUNrQixNQUFNLENBQUM7SUFDaEUsSUFBSUMsbUJBQW1CLEdBQUdKLGNBQUssQ0FBQ0ssTUFBTSxDQUFDTixZQUFZLENBQUNLLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUdMLFlBQVksQ0FBQ0ssbUJBQW1CO0lBQ2hIQSxtQkFBbUIsQ0FBQ0UsYUFBYSxHQUFHTixjQUFLLENBQUNLLE1BQU0sQ0FBQ0QsbUJBQW1CLENBQUNFLGFBQWEsQ0FBQyxHQUFHLEVBQUUsR0FBR0YsbUJBQW1CLENBQUNFLGFBQWE7SUFDNUgsSUFBSUMsWUFBWSxHQUFHO01BQ2ZDLFNBQVMsRUFBRSxvQkFBb0I7TUFDL0JDLFNBQVMsRUFBRUMsa0JBQVMsQ0FBQ0MsMEJBQTBCO01BQy9DQyxPQUFPLEVBQUUsQ0FDTDtRQUNJQyxVQUFVLEVBQUUsUUFBUTtRQUNwQkMsTUFBTSxFQUFFO1VBQ0pDLEtBQUssRUFBRSxzREFBQUMsTUFBQSxDQUVNL0IsS0FBSyxDQUFDaUIsTUFBTSxDQUFDZSxFQUFFLGVBQ3hCLEdBQUc7UUFFWDtNQUNKLENBQUM7SUFFVCxDQUFDO0lBRURiLG1CQUFtQixDQUFDRSxhQUFhLENBQUNZLElBQUksQ0FBQ1gsWUFBWSxDQUFDO0lBQ3BEWSxtQkFBWSxDQUFDQyxnQkFBZ0IsQ0FBQ2hCLG1CQUFtQixFQUFFbkIsS0FBSyxDQUFDWSxNQUFNLEVBQUVaLEtBQUssQ0FBQ2tCLE1BQU0sQ0FBQztJQUU5RSxJQUFBa0IsZUFBQyxFQUFDQyxRQUFRLENBQUMsQ0FBQ0MsS0FBSyxDQUFDLFlBQVk7TUFDMUJDLGtCQUFrQixDQUFDLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0lBRUYsSUFBQUgsZUFBQyxFQUFDSSxNQUFNLENBQUMsQ0FBQ0MsTUFBTSxDQUFDLFlBQVk7TUFDekJGLGtCQUFrQixDQUFDLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0lBRUZBLGtCQUFrQixDQUFDLENBQUM7RUFDeEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLE1BQU1BLGtCQUFrQixHQUFHQSxDQUFBLEtBQU07SUFBQSxJQUFBRyxTQUFBO0lBQzdCO0lBQ0E7SUFDQSxJQUFJbEMsWUFBWSxDQUFDbUMsT0FBTyxJQUFJLElBQUksRUFBRTtJQUVsQyxNQUFNQyxNQUFNLEdBQUcsSUFBQVIsZUFBQyxFQUFDLGtCQUFrQixHQUFHNUIsWUFBWSxDQUFDbUMsT0FBTyxDQUFDO0lBQzNELElBQUksQ0FBQ0MsTUFBTSxJQUFJQSxNQUFNLENBQUNDLE1BQU0sS0FBSyxDQUFDLEVBQUU7SUFFcEMsTUFBTUMsT0FBTyxHQUFHRixNQUFNLENBQUNHLE1BQU0sQ0FBQyxDQUFDLENBQUNDLEdBQUc7SUFDbkMsTUFBTUMsUUFBUSxJQUFBUCxTQUFBLEdBQUcsSUFBQU4sZUFBQyxFQUFDLG1CQUFtQixDQUFDLENBQUNXLE1BQU0sQ0FBQyxDQUFDLGNBQUFMLFNBQUEsdUJBQS9CQSxTQUFBLENBQWlDTSxHQUFHOztJQUVyRDtJQUNBLElBQUlDLFFBQVEsSUFBSSxJQUFJLElBQUlILE9BQU8sS0FBS0csUUFBUSxFQUFFO01BQzFDLElBQUFiLGVBQUMsRUFBQyx3QkFBd0IsQ0FBQyxDQUFDYyxHQUFHLENBQUM7UUFBRUMsS0FBSyxFQUFFO01BQUUsQ0FBQyxDQUFDO01BQzdDLElBQUFmLGVBQUMsRUFBQyx1QkFBdUIsQ0FBQyxDQUFDYyxHQUFHLENBQUM7UUFBRUMsS0FBSyxFQUFFO01BQUUsQ0FBQyxDQUFDO01BQzVDO0lBQ0o7O0lBRUE7SUFDQSxNQUFNQyxTQUFTLEdBQUdSLE1BQU0sQ0FBQ08sS0FBSyxDQUFDLENBQUM7SUFDaEMsSUFBSSxDQUFDQyxTQUFTLEVBQUU7SUFFaEIsTUFBTUMsU0FBUyxHQUFHVCxNQUFNLENBQUNVLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDQyxLQUFLLENBQUMsQ0FBQztJQUMzRCxNQUFNQyxVQUFVLEdBQUdILFNBQVMsQ0FBQ0YsS0FBSyxDQUFDLENBQUM7SUFFcEMsSUFBQWYsZUFBQyxFQUFDLHdCQUF3QixDQUFDLENBQUNjLEdBQUcsQ0FBQztNQUM1QixhQUFhLEVBQUdNLFVBQVUsR0FBRyxDQUFDLEdBQUksSUFBSTtNQUN0QyxPQUFPLEVBQUdKLFNBQVMsR0FBR0ksVUFBVSxHQUFJO0lBQ3hDLENBQUMsQ0FBQztJQUVGLElBQUFwQixlQUFDLEVBQUMsdUJBQXVCLENBQUMsQ0FBQ2MsR0FBRyxDQUFDO01BQzNCLE9BQU8sRUFBRSxDQUFDRSxTQUFTLEdBQUdJLFVBQVUsSUFBSSxDQUFDLEdBQUc7SUFDNUMsQ0FBQyxDQUFDO0VBQ04sQ0FBQztFQUVELE1BQU0zQyxHQUFHLEdBQUdBLENBQUEsS0FBTTtJQUNkLE9BQU87TUFDSCxJQUFJbUIsRUFBRUEsQ0FBQSxFQUFHO1FBQ0wsT0FBT2hDLEtBQUssQ0FBQ2lCLE1BQU0sQ0FBQ2UsRUFBRTtNQUMxQixDQUFDO01BQ0QsSUFBSTVCLE9BQU9BLENBQUNBLE9BQU8sRUFBRTtRQUNqQkMsVUFBVSxDQUFDRCxPQUFPLENBQUM7TUFDdkIsQ0FBQztNQUNEcUQsT0FBT0EsQ0FBQSxFQUFHO1FBQ04sSUFBSTNDLFlBQVksR0FBR0MsY0FBSyxDQUFDQyxXQUFXLENBQUNoQixLQUFLLENBQUNpQixNQUFNLEdBQUdqQixLQUFLLENBQUNpQixNQUFNLEdBQUdqQixLQUFLLENBQUNpQixNQUFNLEVBQUVqQixLQUFLLENBQUNrQixNQUFNLENBQUM7UUFDOUZiLFVBQVUsQ0FBQ1UsY0FBSyxDQUFDSyxNQUFNLENBQUNOLFlBQVksQ0FBQ1YsT0FBTyxDQUFDLElBQUlXLGNBQUssQ0FBQzJDLHlCQUF5QixDQUFDNUMsWUFBWSxDQUFDVixPQUFPLEVBQUVVLFlBQVksQ0FBQ2tCLEVBQUUsQ0FBQyxDQUFDO01BQzVILENBQUM7TUFDRDJCLFdBQVcsRUFBRUEsQ0FBQSxLQUFNO1FBQ2YsT0FBTyxFQUFFO01BQ2IsQ0FBQztNQUNEQyxJQUFJQSxDQUFBLEVBQUc7UUFDSCxJQUFJQyxLQUFLO1FBQ1QsSUFBSUMsSUFBSSxHQUFHQywyQkFBa0IsQ0FBQ0MsT0FBTyxDQUFDaEUsS0FBSyxDQUFDa0IsTUFBTSxDQUFDO1FBRW5ELElBQUk0QyxJQUFJLEVBQUU7VUFDTixLQUFLLE1BQU1HLEdBQUcsSUFBSUMsTUFBTSxDQUFDQyxJQUFJLENBQUNKLDJCQUFrQixDQUFDSyxXQUFXLENBQUMsRUFBRTtZQUMzRCxJQUFJQyxXQUFXLEdBQUdOLDJCQUFrQixDQUFDSyxXQUFXLENBQUNILEdBQUcsQ0FBQztZQUNyRCxLQUFLLE1BQU1LLGdCQUFnQixJQUFJRCxXQUFXLENBQUNFLFNBQVMsQ0FBQyxDQUFDLEVBQUU7Y0FDcEQsSUFBSUQsZ0JBQWdCLENBQUN0QyxFQUFFLEtBQUs4QixJQUFJLENBQUNVLE9BQU8sRUFBRTtnQkFDdENYLEtBQUssR0FBR1MsZ0JBQWdCO2NBQzVCO1lBQ0o7VUFDSjtRQUNKO1FBRUEsSUFBSVQsS0FBSyxFQUFFO1VBQ1AsSUFBSTVELEtBQUssR0FBRzRELEtBQUssQ0FBQ1ksYUFBYSxDQUFDLENBQUM7VUFDakN2RSxRQUFRLENBQUNELEtBQUssQ0FBQztVQUNmTyxZQUFZLENBQUNtQyxPQUFPLEdBQUdrQixLQUFLLENBQUNhLG1CQUFtQixDQUFDLENBQUM7VUFDbERuRSwwQkFBMEIsQ0FBQyxHQUFHLEdBQUksRUFBRSxJQUFJTixLQUFLLENBQUM0QyxNQUFNLEdBQUcsQ0FBQyxDQUFFLENBQUM7VUFDM0Q7VUFDQThCLFVBQVUsQ0FBQyxNQUFNcEMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QztNQUNKO0lBQ0osQ0FBQztFQUNMLENBQUM7RUFFRCxTQUFTcUMsVUFBVUEsQ0FBQ0MsSUFBSSxFQUFFQyxlQUFlLEVBQUVDLFVBQVUsRUFBRTtJQUNuRCxNQUFNQyxRQUFRLEdBQUdGLGVBQWUsS0FBS3RFLFlBQVksQ0FBQ21DLE9BQU87SUFDekQsTUFBTXNDLFNBQVMsR0FBR0gsZUFBZSxHQUFHdEUsWUFBWSxDQUFDbUMsT0FBTztJQUN4RCxNQUFNdUMsTUFBTSxHQUFHSixlQUFlLEtBQUtDLFVBQVUsR0FBRyxDQUFDO0lBRWpELG9CQUNJMUcsTUFBQSxDQUFBWSxPQUFBLENBQUFrRyxhQUFBO01BQUtDLFNBQVMsRUFBRUosUUFBUSxrQkFBa0JDLFNBQVMsR0FBRyxhQUFhLEdBQUc7SUFBTyxHQUV4RUgsZUFBZSxHQUFHLENBQUMsZ0JBQ2hCekcsTUFBQSxDQUFBWSxPQUFBLENBQUFrRyxhQUFBO01BQ0lDLFNBQVMsRUFBRSxDQUFDTixlQUFlLElBQUl0RSxZQUFZLENBQUNtQyxPQUFPLE1BQUFaLE1BQUEsQ0FBTXJCLE9BQU8sQ0FBQ2YsV0FBVyxTQUFNLEVBQUUsS0FDL0V1RixNQUFNLEdBQUcsV0FBVyxHQUFHLEVBQUU7SUFBRSxDQUNuQyxDQUFDLEdBQ0YsSUFBSSxlQUNSN0csTUFBQSxDQUFBWSxPQUFBLENBQUFrRyxhQUFBO01BQ0lDLFNBQVMsRUFDTCxpQkFBaUIsSUFBSU4sZUFBZSxLQUFLLENBQUMsR0FBRyxXQUFXLEdBQUcsWUFBWSxDQUMxRTtNQUNETyxLQUFLLEVBQUU7UUFBRUMsVUFBVSxFQUFFLE9BQU87UUFBRUMsV0FBVyxFQUFFLE9BQU87UUFBRXBDLEtBQUssRUFBRTtNQUFPLENBQUU7TUFDcEVuQixFQUFFLEVBQUUsT0FBTyxHQUFHOEM7SUFBZ0IsR0FHMUJELElBQUksQ0FBQ1csS0FBSyxHQUFHLENBQUMsaUJBQ2RuSCxNQUFBLENBQUFZLE9BQUEsQ0FBQWtHLGFBQUE7TUFBS0MsU0FBUyxFQUFFLGNBQWU7TUFBQ0MsS0FBSyxFQUFFO1FBQUVJLEtBQUssRUFBRVIsU0FBUyxHQUFHLFNBQVMsR0FBRztNQUFLO0lBQUUsZ0JBQzNFNUcsTUFBQSxDQUFBWSxPQUFBLENBQUFrRyxhQUFBLFlBQVUsQ0FDVCxDQUFDLGVBRVY5RyxNQUFBLENBQUFZLE9BQUEsQ0FBQWtHLGFBQUE7TUFDSUUsS0FBSyxFQUFFO1FBQ0hLLFVBQVUsRUFBRTtNQUNoQixDQUFFO01BQ0ZOLFNBQVMsRUFDTCxDQUFDSCxTQUFTLE1BQUFsRCxNQUFBLENBQU1yQixPQUFPLENBQUNoQixTQUFTLFlBQzdCc0YsUUFBUSxNQUFBakQsTUFBQSxDQUFNckIsT0FBTyxDQUFDckIsT0FBTyxZQUFTLGFBQWEsSUFDckQsdUNBQXVDLElBQUl3RixJQUFJLENBQUNXLEtBQUssS0FBSyxDQUFDLEdBQUcsWUFBWSxHQUFHLEVBQUU7SUFDcEYsZ0JBRURuSCxNQUFBLENBQUFZLE9BQUEsQ0FBQWtHLGFBQUE7TUFBS0MsU0FBUyxFQUFFLGFBQWM7TUFBQ0MsS0FBSyxFQUFFO1FBQUVJLEtBQUssRUFBRVIsU0FBUyxHQUFHLFNBQVMsR0FBRztNQUFLO0lBQUUsR0FDekVKLElBQUksQ0FBQ1csS0FBSyxHQUFHLENBQ2IsQ0FBQyxlQUVObkgsTUFBQSxDQUFBWSxPQUFBLENBQUFrRyxhQUFBLENBQUN0RyxRQUFBLENBQUFJLE9BQU87TUFBQzBHLEtBQUssRUFBRWQsSUFBSSxDQUFDYztJQUFNLGdCQUN2QnRILE1BQUEsQ0FBQVksT0FBQSxDQUFBa0csYUFBQTtNQUNJQyxTQUFTLEVBQUMsWUFBWTtNQUN0QkMsS0FBSyxFQUFFO1FBQ0hJLEtBQUssRUFBRVQsUUFBUSxHQUFHLFNBQVMsR0FBR0MsU0FBUyxHQUFHLFNBQVMsR0FBRztNQUMxRDtJQUFFLEdBRURKLElBQUksQ0FBQ2MsS0FDTCxDQUNBLENBQ1IsQ0FDSixDQUFDLEVBR0wsQ0FBQ1QsTUFBTSxnQkFDSjdHLE1BQUEsQ0FBQVksT0FBQSxDQUFBa0csYUFBQTtNQUNJQyxTQUFTLEVBQUUsQ0FBQ04sZUFBZSxHQUFHdEUsWUFBWSxDQUFDbUMsT0FBTyxNQUFBWixNQUFBLENBQU1yQixPQUFPLENBQUNmLFdBQVcsU0FBTSxFQUFFLEtBQzlFbUYsZUFBZSxLQUFLLENBQUMsR0FBRyxZQUFZLEdBQUcsRUFBRTtJQUFFLENBQ25ELENBQUMsR0FDRixJQUNILENBQUM7RUFFZDtFQUVBLFNBQVNjLE1BQU1BLENBQUEsRUFBRztJQUNkLG9CQUNJdkgsTUFBQSxDQUFBWSxPQUFBLENBQUFrRyxhQUFBO01BQ0lDLFNBQVMsRUFBQztJQUFtQixHQUU1Qm5GLEtBQUssQ0FBQzRGLEdBQUcsQ0FBQyxDQUFDaEIsSUFBSSxFQUFFaUIsR0FBRyxrQkFDakJ6SCxNQUFBLENBQUFZLE9BQUEsQ0FBQWtHLGFBQUE7TUFDSWxCLEdBQUcsRUFBRTZCLEdBQUk7TUFDVDlELEVBQUUsRUFBRSxpQkFBaUIsR0FBRzhELEdBQUk7TUFDNUJWLFNBQVMsRUFBQztJQUFXLEdBRXBCUixVQUFVLENBQUNDLElBQUksRUFBRWlCLEdBQUcsRUFBRTdGLEtBQUssQ0FBQzRDLE1BQU0sQ0FDbEMsQ0FDUixDQUNBLENBQUM7RUFFZDtFQUVBLG9CQUNJeEUsTUFBQSxDQUFBWSxPQUFBLENBQUFrRyxhQUFBLGNBQ0svRSxPQUFPLElBQUksQ0FBQ1csY0FBSyxDQUFDSyxNQUFNLENBQUNwQixLQUFLLENBQUNpQixNQUFNLENBQUMsZ0JBQ25DNUMsTUFBQSxDQUFBWSxPQUFBLENBQUFrRyxhQUFBO0lBQ0lFLEtBQUssRUFDRHRFLGNBQUssQ0FBQ2dGLFdBQVcsQ0FDYjtNQUNJQyxRQUFRLEVBQUUsTUFBTTtNQUNoQlAsS0FBSyxFQUFFLFNBQVM7TUFDaEJRLE9BQU8sRUFBRSxHQUFHO01BQ1pDLE9BQU8sRUFBRSxNQUFNO01BQ2ZDLGNBQWMsRUFBRSxRQUFRO01BQ3hCQyxNQUFNLEVBQUU7SUFDWixDQUFDLEVBQ0RwRyxLQUFLLENBQUNpQixNQUNWO0VBQ0gsR0FFQSxDQUFDRixjQUFLLENBQUNLLE1BQU0sQ0FBQ25CLEtBQUssQ0FBQyxJQUFJLENBQUNjLGNBQUssQ0FBQ0ssTUFBTSxDQUFDZCx1QkFBdUIsQ0FBQyxJQUFJLENBQUNTLGNBQUssQ0FBQ0ssTUFBTSxDQUFDWixZQUFZLENBQUNtQyxPQUFPLENBQUMsR0FDaEdpRCxNQUFNLENBQUMsQ0FBQyxHQUNSLElBQ0wsQ0FBQyxHQUNOLElBQ0gsQ0FBQztBQUVkLENBQUMsQ0FBQztBQUFDLElBQUFTLFFBQUEsR0FBQUMsT0FBQSxDQUFBckgsT0FBQSxHQUVZWSxlQUFlIiwiaWdub3JlTGlzdCI6W119
|
|
205
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfT2JzZXJ2YWJsZSIsIl9FdmVudFR5cGUiLCJfc3R5bGVzIiwiX1Rvb2x0aXAiLCJfanF1ZXJ5IiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidXNlU3R5bGVzIiwibWFrZVN0eWxlcyIsInRoZW1lIiwicHJpbWFyeSIsImJhY2tncm91bmRDb2xvciIsInBhbGV0dGUiLCJtYWluIiwiYm9yZGVyIiwic2Vjb25kYXJ5IiwidGhlbWVCb3JkZXIiLCJib3JkZXJDb2xvciIsIlN0ZXBwZXJUaXRsZUJhciIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwic3RlcHMiLCJzZXRTdGVwcyIsInVzZVN0YXRlIiwidmlzaWJsZSIsInNldFZpc2libGUiLCJhY3RpdmVTZWdtZW50UGVyY2VudGFnZSIsInNldEFjdGl2ZVNlZ21lbnRQZXJjZW50YWdlIiwiY3VycmVudEluZGV4IiwidXNlUmVmIiwiY2xhc3NlcyIsInVzZUVmZmVjdCIsImhhbmRsZSIsImFwaSIsInBhcnNlZENvbmZpZyIsIlV0aWxzIiwicGFyc2VDb25maWciLCJjb25maWciLCJ2aWV3SWQiLCJldmVudEhhbmRsaW5nQ29uZmlnIiwiaXNOdWxsIiwic3Vic2NyaXB0aW9ucyIsInN1YnNjcmlwdGlvbiIsInB1Ymxpc2hlciIsImV2ZW50VHlwZSIsIkV2ZW50VHlwZSIsIkFQUExJQ0FUSU9OX0NPTlRFWFRfQ0hBTkdFIiwiYWN0aW9ucyIsImFjdGlvblR5cGUiLCJzY3JpcHQiLCJsaW5lcyIsImNvbmNhdCIsImlkIiwicHVzaCIsImV2ZW50TWFuYWdlciIsImFkZFN1YnNjcmlwdGlvbnMiLCIkIiwiZG9jdW1lbnQiLCJyZWFkeSIsInJlY2FsY0xpbmVQb3NpdGlvbiIsIndpbmRvdyIsInJlc2l6ZSIsInNob3ciLCJfJCRvZmZzZXQiLCJjdXJyZW50Iiwic3RlcEVsIiwibGVuZ3RoIiwic3RlcFRvcCIsIm9mZnNldCIsInRvcCIsImZpcnN0VG9wIiwiY3NzIiwid2lkdGgiLCJzdGVwV2lkdGgiLCJhY3RpdmVCb3giLCJmaW5kIiwiZmlyc3QiLCJ0aXRsZVdpZHRoIiwiZ3JhcGgiLCJ2aWV3IiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiZ2V0VmlldyIsImtleSIsIk9iamVjdCIsImtleXMiLCJ2aWV3Q29udGV4dCIsInZpZXdNYW5hZ2VyIiwidmlld01hbmFnZXJHcmFwaCIsImdldEdyYXBocyIsImdyYXBoSWQiLCJnZXRUaXRsZVN0YWNrIiwiZ2V0Q3VycmVudE5vZGVJbmRleCIsInNldFRpbWVvdXQiLCJyZWZyZXNoIiwiZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiIsImdldENoaWxkcmVuIiwicmVuZGVyU3RlcCIsInN0ZXAiLCJncmFwaGljc0NvdW50ZXIiLCJ0b3RhbFN0ZXBzIiwiaXNBY3RpdmUiLCJpc1Zpc2l0ZWQiLCJpc0xhc3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwic3R5bGUiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJpbmRleCIsImNvbG9yIiwid2hpdGVTcGFjZSIsInRpdGxlIiwicmVuZGVyIiwibWFwIiwiaWR4IiwibWVyZ2VTdHlsZXMiLCJmb250U2l6ZSIsInBhZGRpbmciLCJkaXNwbGF5IiwianVzdGlmeUNvbnRlbnQiLCJtYXJnaW4iLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvU3RlcHBlclRpdGxlQmFyLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi9VdGlsc1wiO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tICcuLi9BcHBsaWNhdGlvbk1hbmFnZXInO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tIFwiLi4vZXZlbnQvT2JzZXJ2YWJsZVwiO1xuaW1wb3J0IEV2ZW50VHlwZSBmcm9tIFwiLi4vZXZlbnQvRXZlbnRUeXBlXCI7XG5pbXBvcnQgeyBtYWtlU3R5bGVzIH0gZnJvbSBcIkBtdWkvc3R5bGVzXCI7XG5pbXBvcnQgVG9vbHRpcCBmcm9tIFwiQG11aS9tYXRlcmlhbC9Ub29sdGlwXCI7XG5pbXBvcnQgXCIuL1N0ZXBwZXJUaXRsZUJhci5jc3NcIjtcbmltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbmNvbnN0IHVzZVN0eWxlcyA9IG1ha2VTdHlsZXModGhlbWUgPT4gKHtcbiAgICBwcmltYXJ5OiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW4sXG4gICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAnICsgdGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW5cbiAgICB9LFxuICAgIHNlY29uZGFyeToge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuc2Vjb25kYXJ5Lm1haW4sXG4gICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAnICsgdGhlbWUucGFsZXR0ZS5zZWNvbmRhcnkubWFpblxuICAgIH0sXG4gICAgdGhlbWVCb3JkZXI6IHtcbiAgICAgICAgYm9yZGVyQ29sb3I6IHRoZW1lLnBhbGV0dGUuc2Vjb25kYXJ5Lm1haW5cbiAgICB9XG59KSk7XG5cbmNvbnN0IFN0ZXBwZXJUaXRsZUJhciA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW3N0ZXBzLCBzZXRTdGVwc10gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW2FjdGl2ZVNlZ21lbnRQZXJjZW50YWdlLCBzZXRBY3RpdmVTZWdtZW50UGVyY2VudGFnZV0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBjdXJyZW50SW5kZXggPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlcygpO1xuXG4gICAgLy8gcmUtYXR0YWNoIEFQSSBvbiBlYWNoIHJlbmRlclxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICB9KTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwcm9wcy5jb25maWcsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgIGxldCBldmVudEhhbmRsaW5nQ29uZmlnID0gVXRpbHMuaXNOdWxsKHBhcnNlZENvbmZpZy5ldmVudEhhbmRsaW5nQ29uZmlnKSA/IHt9IDogcGFyc2VkQ29uZmlnLmV2ZW50SGFuZGxpbmdDb25maWc7XG4gICAgICAgIGV2ZW50SGFuZGxpbmdDb25maWcuc3Vic2NyaXB0aW9ucyA9IFV0aWxzLmlzTnVsbChldmVudEhhbmRsaW5nQ29uZmlnLnN1YnNjcmlwdGlvbnMpID8gW10gOiBldmVudEhhbmRsaW5nQ29uZmlnLnN1YnNjcmlwdGlvbnM7XG4gICAgICAgIGxldCBzdWJzY3JpcHRpb24gPSB7XG4gICAgICAgICAgICBwdWJsaXNoZXI6IFwiYXBwbGljYXRpb25NYW5hZ2VyXCIsXG4gICAgICAgICAgICBldmVudFR5cGU6IEV2ZW50VHlwZS5BUFBMSUNBVElPTl9DT05URVhUX0NIQU5HRSxcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvblR5cGU6IFwic2NyaXB0XCIsXG4gICAgICAgICAgICAgICAgICAgIHNjcmlwdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGluZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgaWYoJGV2ZW50LmRhdGEubmFtZSA9PT0gJ3N0ZXBwZXJUaXRsZScgJiYgIWlzTnVsbChAI3ske3Byb3BzLmNvbmZpZy5pZH19KSl7YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgICAgQCN7JHtwcm9wcy5jb25maWcuaWR9fS5zaG93KClgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwifVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgICAgZXZlbnRIYW5kbGluZ0NvbmZpZy5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN1YnNjcmlwdGlvbnMoZXZlbnRIYW5kbGluZ0NvbmZpZywgcHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQpO1xuXG4gICAgICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJlY2FsY0xpbmVQb3NpdGlvbigpO1xuICAgICAgICB9KTtcblxuICAgICAgICAkKHdpbmRvdykucmVzaXplKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJlY2FsY0xpbmVQb3NpdGlvbigpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZWNhbGNMaW5lUG9zaXRpb24oKTtcbiAgICAgICAgc2hvdygpO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IHJlY2FsY0xpbmVQb3NpdGlvbiA9ICgpID0+IHtcbiAgICAgICAgLy8gWW91ciBvbGQgbG9naWMgZGVwZW5kZWQgb24gc2luZ2xlLXJvdyBsYXlvdXQgYW5kIGEgc2luZ2xlICN0aXRsZURpdlxuICAgICAgICAvLyBOb3cgdGhhdCB3ZSBhbGxvdyB3cmFwcGluZywgd2UgZ3VhcmQgdGhpcyBzbyBpdCBkb2Vzbid0IGJyZWFrLlxuICAgICAgICBpZiAoY3VycmVudEluZGV4LmN1cnJlbnQgPT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHN0ZXBFbCA9ICQoXCIjc3RlcC1jb250YWluZXItXCIgKyBjdXJyZW50SW5kZXguY3VycmVudCk7XG4gICAgICAgIGlmICghc3RlcEVsIHx8IHN0ZXBFbC5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgICAgICBjb25zdCBzdGVwVG9wID0gc3RlcEVsLm9mZnNldCgpLnRvcDtcbiAgICAgICAgY29uc3QgZmlyc3RUb3AgPSAkKFwiI3N0ZXAtY29udGFpbmVyLTBcIikub2Zmc2V0KCk/LnRvcDtcblxuICAgICAgICAvLyBpZiB3cmFwcGVkIHRvIG11bHRpcGxlIHJvd3MsIHNraXAgbGluZSBtYXRoIChlYWNoIGl0ZW0gYWxyZWFkeSBoYXMgaXRzIG93biBsaW5lIHNlZ21lbnQpXG4gICAgICAgIGlmIChmaXJzdFRvcCAhPSBudWxsICYmIHN0ZXBUb3AgIT09IGZpcnN0VG9wKSB7XG4gICAgICAgICAgICAkKFwiLnN0ZXBBY3RpdmUgLnJpZ2h0TGluZVwiKS5jc3MoeyB3aWR0aDogMCB9KTtcbiAgICAgICAgICAgICQoXCIuc3RlcEFjdGl2ZSAubGVmdExpbmVcIikuY3NzKHsgd2lkdGg6IDAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZiBzdGlsbCBvbiBvbmUgcm93LCB3ZSBjYW4ga2VlcCB0aGUgb2xkIGxvZ2ljIHJvdWdobHlcbiAgICAgICAgY29uc3Qgc3RlcFdpZHRoID0gc3RlcEVsLndpZHRoKCk7XG4gICAgICAgIGlmICghc3RlcFdpZHRoKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgYWN0aXZlQm94ID0gc3RlcEVsLmZpbmQoXCIuYm94LCAuYm94LXBlbmRpbmdcIikuZmlyc3QoKTtcbiAgICAgICAgY29uc3QgdGl0bGVXaWR0aCA9IGFjdGl2ZUJveC53aWR0aCgpO1xuXG4gICAgICAgICQoXCIuc3RlcEFjdGl2ZSAucmlnaHRMaW5lXCIpLmNzcyh7XG4gICAgICAgICAgICAnbWFyZ2luLWxlZnQnOiAodGl0bGVXaWR0aCAvIDIpICsgJ3B4JyxcbiAgICAgICAgICAgICd3aWR0aCc6IChzdGVwV2lkdGggLSB0aXRsZVdpZHRoKSArICdweCdcbiAgICAgICAgfSk7XG5cbiAgICAgICAgJChcIi5zdGVwQWN0aXZlIC5sZWZ0TGluZVwiKS5jc3Moe1xuICAgICAgICAgICAgJ3dpZHRoJzogKHN0ZXBXaWR0aCAtIHRpdGxlV2lkdGgpIC8gMiArICdweCdcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIHNob3coKSB7XG4gICAgICAgIGxldCBncmFwaDtcbiAgICAgICAgbGV0IHZpZXcgPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Vmlldyhwcm9wcy52aWV3SWQpO1xuXG4gICAgICAgIGlmICh2aWV3KSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhhcHBsaWNhdGlvbk1hbmFnZXIudmlld0NvbnRleHQpKSB7XG4gICAgICAgICAgICAgICAgbGV0IHZpZXdNYW5hZ2VyID0gYXBwbGljYXRpb25NYW5hZ2VyLnZpZXdDb250ZXh0W2tleV07XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB2aWV3TWFuYWdlckdyYXBoIG9mIHZpZXdNYW5hZ2VyLmdldEdyYXBocygpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2aWV3TWFuYWdlckdyYXBoLmlkID09PSB2aWV3LmdyYXBoSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyYXBoID0gdmlld01hbmFnZXJHcmFwaDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChncmFwaCkge1xuICAgICAgICAgICAgbGV0IHN0ZXBzID0gZ3JhcGguZ2V0VGl0bGVTdGFjaygpO1xuICAgICAgICAgICAgc2V0U3RlcHMoc3RlcHMpO1xuICAgICAgICAgICAgY3VycmVudEluZGV4LmN1cnJlbnQgPSBncmFwaC5nZXRDdXJyZW50Tm9kZUluZGV4KCk7XG4gICAgICAgICAgICBzZXRBY3RpdmVTZWdtZW50UGVyY2VudGFnZSgxMDAgLSAoMTAgKiAoc3RlcHMubGVuZ3RoIC0gMSkpKTtcbiAgICAgICAgICAgIC8vIHJlY2FsYyBhZnRlciByZW5kZXJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVjYWxjTGluZVBvc2l0aW9uKCksIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYXBpID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcm9wcy5jb25maWcuaWQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IHZpc2libGUodmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIHNldFZpc2libGUodmlzaWJsZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVmcmVzaCgpIHtcbiAgICAgICAgICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnID8gcHJvcHMuY29uZmlnIDogcHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgICAgIHNldFZpc2libGUoVXRpbHMuaXNOdWxsKHBhcnNlZENvbmZpZy52aXNpYmxlKSB8fCBVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHBhcnNlZENvbmZpZy52aXNpYmxlLCBwYXJzZWRDb25maWcuaWQpKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzaG93KCkge1xuICAgICAgICAgICAgICAgIHNob3coKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBmdW5jdGlvbiByZW5kZXJTdGVwKHN0ZXAsIGdyYXBoaWNzQ291bnRlciwgdG90YWxTdGVwcykge1xuICAgICAgICBjb25zdCBpc0FjdGl2ZSA9IGdyYXBoaWNzQ291bnRlciA9PT0gY3VycmVudEluZGV4LmN1cnJlbnQ7XG4gICAgICAgIGNvbnN0IGlzVmlzaXRlZCA9IGdyYXBoaWNzQ291bnRlciA8IGN1cnJlbnRJbmRleC5jdXJyZW50O1xuICAgICAgICBjb25zdCBpc0xhc3QgPSBncmFwaGljc0NvdW50ZXIgPT09IHRvdGFsU3RlcHMgLSAxO1xuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17aXNBY3RpdmUgPyBgc3RlcEFjdGl2ZWAgOiBpc1Zpc2l0ZWQgPyAnc3RlcFZpc2l0ZWQnIDogJ3N0ZXAnfT5cbiAgICAgICAgICAgICAgICB7LyogdG9wIGxpbmUgYmVmb3JlIGJveCAoZm9yIHZlcnRpY2FsIGxheW91dCAvIGNvbm5lY3RvcnMpICovfVxuICAgICAgICAgICAgICAgIHtncmFwaGljc0NvdW50ZXIgPiAwID8gKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9eyhncmFwaGljc0NvdW50ZXIgPD0gY3VycmVudEluZGV4LmN1cnJlbnQgPyBgJHtjbGFzc2VzLnRoZW1lQm9yZGVyfSBgIDogJycpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXNMYXN0ID8gJyBsYXN0TGluZScgOiAnJyl9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICAgICAgICAgICAgICAgJ3JvdyBmbGV4LW5vd3JhcCcgKyAoZ3JhcGhpY3NDb3VudGVyID09PSAwID8gJyBmaXJzdEJveCcgOiAnYm94V3JhcHBlcicpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogJ3Vuc2V0JywgbWFyZ2luUmlnaHQ6ICd1bnNldCcsIHdpZHRoOiAnMTAwJScgfX1cbiAgICAgICAgICAgICAgICAgICAgaWQ9eydzdGVwLScgKyBncmFwaGljc0NvdW50ZXJ9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGVwLmluZGV4ID4gMCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wtKi0qIGRhc2gnfSBzdHlsZT17eyBjb2xvcjogaXNWaXNpdGVkID8gJyNmZmZmZmYnIDogbnVsbCB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXNWaXNpdGVkID8gYCR7Y2xhc3Nlcy5zZWNvbmRhcnl9IGJveGAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0FjdGl2ZSA/IGAke2NsYXNzZXMucHJpbWFyeX0gYm94YCA6ICdib3gtcGVuZGluZycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAnIHJvdyBuby1tYXJnaW4gbm8tcGFkZGluZyBmbGV4LW5vd3JhcCcgKyAoc3RlcC5pbmRleCA9PT0gMCA/ICcgZmlyc3QtYm94JyA6ICcnKVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2RvdCBjb2wtKi0qJ30gc3R5bGU9e3sgY29sb3I6IGlzVmlzaXRlZCA/ICcjZmZmZmZmJyA6IG51bGwgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3N0ZXAuaW5kZXggKyAxfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzdGVwLnRpdGxlfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN0ZXAtdGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGlzQWN0aXZlID8gJyMwMDAwMDAnIDogaXNWaXNpdGVkID8gJyNmZmZmZmYnIDogJyM4ODg4ODgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3N0ZXAudGl0bGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgey8qIGJvdHRvbSBsaW5lIGFmdGVyIGJveCAqL31cbiAgICAgICAgICAgICAgICB7IWlzTGFzdCA/IChcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsoZ3JhcGhpY3NDb3VudGVyIDwgY3VycmVudEluZGV4LmN1cnJlbnQgPyBgJHtjbGFzc2VzLnRoZW1lQm9yZGVyfSBgIDogJycpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3JhcGhpY3NDb3VudGVyID09PSAwID8gJyBmaXJzdExpbmUnIDogJycpfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN0ZXBwZXItY29udGFpbmVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7c3RlcHMubWFwKChzdGVwLCBpZHgpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpZHh9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZD17XCJzdGVwLWNvbnRhaW5lci1cIiArIGlkeH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInN0ZXAtaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJTdGVwKHN0ZXAsIGlkeCwgc3RlcHMubGVuZ3RoKX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICAgICAgdmlzaWJsZSAmJiAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZykgPyAoXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17XG4gICAgICAgICAgICAgICAgICAgICAgICBVdGlscy5tZXJnZVN0eWxlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAnMjRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnIzIwMjEyNCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IFwiMFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiBcIjAgMCAxNnB4IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuY29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHshVXRpbHMuaXNOdWxsKHN0ZXBzKSAmJiAhVXRpbHMuaXNOdWxsKGFjdGl2ZVNlZ21lbnRQZXJjZW50YWdlKSAmJiAhVXRpbHMuaXNOdWxsKGN1cnJlbnRJbmRleC5jdXJyZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgPyByZW5kZXIoKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSA6IG51bGxcbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFN0ZXBwZXJUaXRsZUJhcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsTUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsbUJBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQU8sT0FBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQXVCLFNBQUFELHVCQUFBUyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRXZCLE1BQU1HLFNBQVMsR0FBRyxJQUFBQyxrQkFBVSxFQUFDQyxLQUFLLEtBQUs7RUFDbkNDLE9BQU8sRUFBRTtJQUNMQyxlQUFlLEVBQUVGLEtBQUssQ0FBQ0csT0FBTyxDQUFDRixPQUFPLENBQUNHLElBQUk7SUFDM0NDLE1BQU0sRUFBRSxZQUFZLEdBQUdMLEtBQUssQ0FBQ0csT0FBTyxDQUFDRixPQUFPLENBQUNHO0VBQ2pELENBQUM7RUFDREUsU0FBUyxFQUFFO0lBQ1BKLGVBQWUsRUFBRUYsS0FBSyxDQUFDRyxPQUFPLENBQUNHLFNBQVMsQ0FBQ0YsSUFBSTtJQUM3Q0MsTUFBTSxFQUFFLFlBQVksR0FBR0wsS0FBSyxDQUFDRyxPQUFPLENBQUNHLFNBQVMsQ0FBQ0Y7RUFDbkQsQ0FBQztFQUNERyxXQUFXLEVBQUU7SUFDVEMsV0FBVyxFQUFFUixLQUFLLENBQUNHLE9BQU8sQ0FBQ0csU0FBUyxDQUFDRjtFQUN6QztBQUNKLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTUssZUFBZSxnQkFBR0MsY0FBSyxDQUFDQyxJQUFJLENBQUVDLEtBQUssSUFBSztFQUMxQyxNQUFNLENBQUNDLEtBQUssRUFBRUMsUUFBUSxDQUFDLEdBQUdKLGNBQUssQ0FBQ0ssUUFBUSxDQUFDLElBQUksQ0FBQztFQUM5QyxNQUFNLENBQUNDLE9BQU8sRUFBRUMsVUFBVSxDQUFDLEdBQUdQLGNBQUssQ0FBQ0ssUUFBUSxDQUFDLEtBQUssQ0FBQztFQUNuRCxNQUFNLENBQUNHLHVCQUF1QixFQUFFQywwQkFBMEIsQ0FBQyxHQUFHVCxjQUFLLENBQUNLLFFBQVEsQ0FBQyxJQUFJLENBQUM7RUFDbEYsTUFBTUssWUFBWSxHQUFHVixjQUFLLENBQUNXLE1BQU0sQ0FBQyxJQUFJLENBQUM7RUFDdkMsTUFBTUMsT0FBTyxHQUFHeEIsU0FBUyxDQUFDLENBQUM7O0VBRTNCO0VBQ0FZLGNBQUssQ0FBQ2EsU0FBUyxDQUFDLE1BQU07SUFDbEJYLEtBQUssQ0FBQ1ksTUFBTSxDQUFDQyxHQUFHLEdBQUdBLEdBQUcsQ0FBQyxDQUFDO0VBQzVCLENBQUMsQ0FBQztFQUVGZixjQUFLLENBQUNhLFNBQVMsQ0FBQyxNQUFNO0lBQ2xCLElBQUlHLFlBQVksR0FBR0MsY0FBSyxDQUFDQyxXQUFXLENBQUNoQixLQUFLLENBQUNpQixNQUFNLEVBQUVqQixLQUFLLENBQUNrQixNQUFNLENBQUM7SUFDaEUsSUFBSUMsbUJBQW1CLEdBQUdKLGNBQUssQ0FBQ0ssTUFBTSxDQUFDTixZQUFZLENBQUNLLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUdMLFlBQVksQ0FBQ0ssbUJBQW1CO0lBQ2hIQSxtQkFBbUIsQ0FBQ0UsYUFBYSxHQUFHTixjQUFLLENBQUNLLE1BQU0sQ0FBQ0QsbUJBQW1CLENBQUNFLGFBQWEsQ0FBQyxHQUFHLEVBQUUsR0FBR0YsbUJBQW1CLENBQUNFLGFBQWE7SUFDNUgsSUFBSUMsWUFBWSxHQUFHO01BQ2ZDLFNBQVMsRUFBRSxvQkFBb0I7TUFDL0JDLFNBQVMsRUFBRUMsa0JBQVMsQ0FBQ0MsMEJBQTBCO01BQy9DQyxPQUFPLEVBQUUsQ0FDTDtRQUNJQyxVQUFVLEVBQUUsUUFBUTtRQUNwQkMsTUFBTSxFQUFFO1VBQ0pDLEtBQUssRUFBRSx5REFBQUMsTUFBQSxDQUNxRC9CLEtBQUssQ0FBQ2lCLE1BQU0sQ0FBQ2UsRUFBRSxvQkFBQUQsTUFBQSxDQUM5RC9CLEtBQUssQ0FBQ2lCLE1BQU0sQ0FBQ2UsRUFBRSxlQUN4QixHQUFHO1FBRVg7TUFDSixDQUFDO0lBRVQsQ0FBQztJQUVEYixtQkFBbUIsQ0FBQ0UsYUFBYSxDQUFDWSxJQUFJLENBQUNYLFlBQVksQ0FBQztJQUNwRFksbUJBQVksQ0FBQ0MsZ0JBQWdCLENBQUNoQixtQkFBbUIsRUFBRW5CLEtBQUssQ0FBQ1ksTUFBTSxFQUFFWixLQUFLLENBQUNrQixNQUFNLENBQUM7SUFFOUUsSUFBQWtCLGVBQUMsRUFBQ0MsUUFBUSxDQUFDLENBQUNDLEtBQUssQ0FBQyxZQUFZO01BQzFCQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3hCLENBQUMsQ0FBQztJQUVGLElBQUFILGVBQUMsRUFBQ0ksTUFBTSxDQUFDLENBQUNDLE1BQU0sQ0FBQyxZQUFZO01BQ3pCRixrQkFBa0IsQ0FBQyxDQUFDO0lBQ3hCLENBQUMsQ0FBQztJQUVGQSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3BCRyxJQUFJLENBQUMsQ0FBQztFQUNWLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTixNQUFNSCxrQkFBa0IsR0FBR0EsQ0FBQSxLQUFNO0lBQUEsSUFBQUksU0FBQTtJQUM3QjtJQUNBO0lBQ0EsSUFBSW5DLFlBQVksQ0FBQ29DLE9BQU8sSUFBSSxJQUFJLEVBQUU7SUFFbEMsTUFBTUMsTUFBTSxHQUFHLElBQUFULGVBQUMsRUFBQyxrQkFBa0IsR0FBRzVCLFlBQVksQ0FBQ29DLE9BQU8sQ0FBQztJQUMzRCxJQUFJLENBQUNDLE1BQU0sSUFBSUEsTUFBTSxDQUFDQyxNQUFNLEtBQUssQ0FBQyxFQUFFO0lBRXBDLE1BQU1DLE9BQU8sR0FBR0YsTUFBTSxDQUFDRyxNQUFNLENBQUMsQ0FBQyxDQUFDQyxHQUFHO0lBQ25DLE1BQU1DLFFBQVEsSUFBQVAsU0FBQSxHQUFHLElBQUFQLGVBQUMsRUFBQyxtQkFBbUIsQ0FBQyxDQUFDWSxNQUFNLENBQUMsQ0FBQyxjQUFBTCxTQUFBLHVCQUEvQkEsU0FBQSxDQUFpQ00sR0FBRzs7SUFFckQ7SUFDQSxJQUFJQyxRQUFRLElBQUksSUFBSSxJQUFJSCxPQUFPLEtBQUtHLFFBQVEsRUFBRTtNQUMxQyxJQUFBZCxlQUFDLEVBQUMsd0JBQXdCLENBQUMsQ0FBQ2UsR0FBRyxDQUFDO1FBQUVDLEtBQUssRUFBRTtNQUFFLENBQUMsQ0FBQztNQUM3QyxJQUFBaEIsZUFBQyxFQUFDLHVCQUF1QixDQUFDLENBQUNlLEdBQUcsQ0FBQztRQUFFQyxLQUFLLEVBQUU7TUFBRSxDQUFDLENBQUM7TUFDNUM7SUFDSjs7SUFFQTtJQUNBLE1BQU1DLFNBQVMsR0FBR1IsTUFBTSxDQUFDTyxLQUFLLENBQUMsQ0FBQztJQUNoQyxJQUFJLENBQUNDLFNBQVMsRUFBRTtJQUVoQixNQUFNQyxTQUFTLEdBQUdULE1BQU0sQ0FBQ1UsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUNDLEtBQUssQ0FBQyxDQUFDO0lBQzNELE1BQU1DLFVBQVUsR0FBR0gsU0FBUyxDQUFDRixLQUFLLENBQUMsQ0FBQztJQUVwQyxJQUFBaEIsZUFBQyxFQUFDLHdCQUF3QixDQUFDLENBQUNlLEdBQUcsQ0FBQztNQUM1QixhQUFhLEVBQUdNLFVBQVUsR0FBRyxDQUFDLEdBQUksSUFBSTtNQUN0QyxPQUFPLEVBQUdKLFNBQVMsR0FBR0ksVUFBVSxHQUFJO0lBQ3hDLENBQUMsQ0FBQztJQUVGLElBQUFyQixlQUFDLEVBQUMsdUJBQXVCLENBQUMsQ0FBQ2UsR0FBRyxDQUFDO01BQzNCLE9BQU8sRUFBRSxDQUFDRSxTQUFTLEdBQUdJLFVBQVUsSUFBSSxDQUFDLEdBQUc7SUFDNUMsQ0FBQyxDQUFDO0VBQ04sQ0FBQztFQUVELFNBQVNmLElBQUlBLENBQUEsRUFBRztJQUNaLElBQUlnQixLQUFLO0lBQ1QsSUFBSUMsSUFBSSxHQUFHQywyQkFBa0IsQ0FBQ0MsT0FBTyxDQUFDN0QsS0FBSyxDQUFDa0IsTUFBTSxDQUFDO0lBRW5ELElBQUl5QyxJQUFJLEVBQUU7TUFDTixLQUFLLE1BQU1HLEdBQUcsSUFBSUMsTUFBTSxDQUFDQyxJQUFJLENBQUNKLDJCQUFrQixDQUFDSyxXQUFXLENBQUMsRUFBRTtRQUMzRCxJQUFJQyxXQUFXLEdBQUdOLDJCQUFrQixDQUFDSyxXQUFXLENBQUNILEdBQUcsQ0FBQztRQUNyRCxLQUFLLE1BQU1LLGdCQUFnQixJQUFJRCxXQUFXLENBQUNFLFNBQVMsQ0FBQyxDQUFDLEVBQUU7VUFDcEQsSUFBSUQsZ0JBQWdCLENBQUNuQyxFQUFFLEtBQUsyQixJQUFJLENBQUNVLE9BQU8sRUFBRTtZQUN0Q1gsS0FBSyxHQUFHUyxnQkFBZ0I7VUFDNUI7UUFDSjtNQUNKO0lBQ0o7SUFFQSxJQUFJVCxLQUFLLEVBQUU7TUFDUCxJQUFJekQsS0FBSyxHQUFHeUQsS0FBSyxDQUFDWSxhQUFhLENBQUMsQ0FBQztNQUNqQ3BFLFFBQVEsQ0FBQ0QsS0FBSyxDQUFDO01BQ2ZPLFlBQVksQ0FBQ29DLE9BQU8sR0FBR2MsS0FBSyxDQUFDYSxtQkFBbUIsQ0FBQyxDQUFDO01BQ2xEaEUsMEJBQTBCLENBQUMsR0FBRyxHQUFJLEVBQUUsSUFBSU4sS0FBSyxDQUFDNkMsTUFBTSxHQUFHLENBQUMsQ0FBRSxDQUFDO01BQzNEO01BQ0EwQixVQUFVLENBQUMsTUFBTWpDLGtCQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0M7RUFDSjtFQUVBLE1BQU0xQixHQUFHLEdBQUdBLENBQUEsS0FBTTtJQUNkLE9BQU87TUFDSCxJQUFJbUIsRUFBRUEsQ0FBQSxFQUFHO1FBQ0wsT0FBT2hDLEtBQUssQ0FBQ2lCLE1BQU0sQ0FBQ2UsRUFBRTtNQUMxQixDQUFDO01BQ0QsSUFBSTVCLE9BQU9BLENBQUNBLE9BQU8sRUFBRTtRQUNqQkMsVUFBVSxDQUFDRCxPQUFPLENBQUM7TUFDdkIsQ0FBQztNQUNEcUUsT0FBT0EsQ0FBQSxFQUFHO1FBQ04sSUFBSTNELFlBQVksR0FBR0MsY0FBSyxDQUFDQyxXQUFXLENBQUNoQixLQUFLLENBQUNpQixNQUFNLEdBQUdqQixLQUFLLENBQUNpQixNQUFNLEdBQUdqQixLQUFLLENBQUNpQixNQUFNLEVBQUVqQixLQUFLLENBQUNrQixNQUFNLENBQUM7UUFDOUZiLFVBQVUsQ0FBQ1UsY0FBSyxDQUFDSyxNQUFNLENBQUNOLFlBQVksQ0FBQ1YsT0FBTyxDQUFDLElBQUlXLGNBQUssQ0FBQzJELHlCQUF5QixDQUFDNUQsWUFBWSxDQUFDVixPQUFPLEVBQUVVLFlBQVksQ0FBQ2tCLEVBQUUsQ0FBQyxDQUFDO01BQzVILENBQUM7TUFDRDJDLFdBQVcsRUFBRUEsQ0FBQSxLQUFNO1FBQ2YsT0FBTyxFQUFFO01BQ2IsQ0FBQztNQUNEakMsSUFBSUEsQ0FBQSxFQUFHO1FBQ0hBLElBQUksQ0FBQyxDQUFDO01BQ1Y7SUFDSixDQUFDO0VBQ0wsQ0FBQztFQUVELFNBQVNrQyxVQUFVQSxDQUFDQyxJQUFJLEVBQUVDLGVBQWUsRUFBRUMsVUFBVSxFQUFFO0lBQ25ELE1BQU1DLFFBQVEsR0FBR0YsZUFBZSxLQUFLdEUsWUFBWSxDQUFDb0MsT0FBTztJQUN6RCxNQUFNcUMsU0FBUyxHQUFHSCxlQUFlLEdBQUd0RSxZQUFZLENBQUNvQyxPQUFPO0lBQ3hELE1BQU1zQyxNQUFNLEdBQUdKLGVBQWUsS0FBS0MsVUFBVSxHQUFHLENBQUM7SUFFakQsb0JBQ0kxRyxNQUFBLENBQUFZLE9BQUEsQ0FBQWtHLGFBQUE7TUFBS0MsU0FBUyxFQUFFSixRQUFRLGtCQUFrQkMsU0FBUyxHQUFHLGFBQWEsR0FBRztJQUFPLEdBRXhFSCxlQUFlLEdBQUcsQ0FBQyxnQkFDaEJ6RyxNQUFBLENBQUFZLE9BQUEsQ0FBQWtHLGFBQUE7TUFDSUMsU0FBUyxFQUFFLENBQUNOLGVBQWUsSUFBSXRFLFlBQVksQ0FBQ29DLE9BQU8sTUFBQWIsTUFBQSxDQUFNckIsT0FBTyxDQUFDZixXQUFXLFNBQU0sRUFBRSxLQUMvRXVGLE1BQU0sR0FBRyxXQUFXLEdBQUcsRUFBRTtJQUFFLENBQ25DLENBQUMsR0FDRixJQUFJLGVBQ1I3RyxNQUFBLENBQUFZLE9BQUEsQ0FBQWtHLGFBQUE7TUFDSUMsU0FBUyxFQUNMLGlCQUFpQixJQUFJTixlQUFlLEtBQUssQ0FBQyxHQUFHLFdBQVcsR0FBRyxZQUFZLENBQzFFO01BQ0RPLEtBQUssRUFBRTtRQUFFQyxVQUFVLEVBQUUsT0FBTztRQUFFQyxXQUFXLEVBQUUsT0FBTztRQUFFbkMsS0FBSyxFQUFFO01BQU8sQ0FBRTtNQUNwRXBCLEVBQUUsRUFBRSxPQUFPLEdBQUc4QztJQUFnQixHQUcxQkQsSUFBSSxDQUFDVyxLQUFLLEdBQUcsQ0FBQyxpQkFDZG5ILE1BQUEsQ0FBQVksT0FBQSxDQUFBa0csYUFBQTtNQUFLQyxTQUFTLEVBQUUsY0FBZTtNQUFDQyxLQUFLLEVBQUU7UUFBRUksS0FBSyxFQUFFUixTQUFTLEdBQUcsU0FBUyxHQUFHO01BQUs7SUFBRSxnQkFDM0U1RyxNQUFBLENBQUFZLE9BQUEsQ0FBQWtHLGFBQUEsWUFBVSxDQUNULENBQUMsZUFFVjlHLE1BQUEsQ0FBQVksT0FBQSxDQUFBa0csYUFBQTtNQUNJRSxLQUFLLEVBQUU7UUFDSEssVUFBVSxFQUFFO01BQ2hCLENBQUU7TUFDRk4sU0FBUyxFQUNMLENBQUNILFNBQVMsTUFBQWxELE1BQUEsQ0FBTXJCLE9BQU8sQ0FBQ2hCLFNBQVMsWUFDN0JzRixRQUFRLE1BQUFqRCxNQUFBLENBQU1yQixPQUFPLENBQUNyQixPQUFPLFlBQVMsYUFBYSxJQUNyRCx1Q0FBdUMsSUFBSXdGLElBQUksQ0FBQ1csS0FBSyxLQUFLLENBQUMsR0FBRyxZQUFZLEdBQUcsRUFBRTtJQUNwRixnQkFFRG5ILE1BQUEsQ0FBQVksT0FBQSxDQUFBa0csYUFBQTtNQUFLQyxTQUFTLEVBQUUsYUFBYztNQUFDQyxLQUFLLEVBQUU7UUFBRUksS0FBSyxFQUFFUixTQUFTLEdBQUcsU0FBUyxHQUFHO01BQUs7SUFBRSxHQUN6RUosSUFBSSxDQUFDVyxLQUFLLEdBQUcsQ0FDYixDQUFDLGVBRU5uSCxNQUFBLENBQUFZLE9BQUEsQ0FBQWtHLGFBQUEsQ0FBQ3RHLFFBQUEsQ0FBQUksT0FBTztNQUFDMEcsS0FBSyxFQUFFZCxJQUFJLENBQUNjO0lBQU0sZ0JBQ3ZCdEgsTUFBQSxDQUFBWSxPQUFBLENBQUFrRyxhQUFBO01BQ0lDLFNBQVMsRUFBQyxZQUFZO01BQ3RCQyxLQUFLLEVBQUU7UUFDSEksS0FBSyxFQUFFVCxRQUFRLEdBQUcsU0FBUyxHQUFHQyxTQUFTLEdBQUcsU0FBUyxHQUFHO01BQzFEO0lBQUUsR0FFREosSUFBSSxDQUFDYyxLQUNMLENBQ0EsQ0FDUixDQUNKLENBQUMsRUFHTCxDQUFDVCxNQUFNLGdCQUNKN0csTUFBQSxDQUFBWSxPQUFBLENBQUFrRyxhQUFBO01BQ0lDLFNBQVMsRUFBRSxDQUFDTixlQUFlLEdBQUd0RSxZQUFZLENBQUNvQyxPQUFPLE1BQUFiLE1BQUEsQ0FBTXJCLE9BQU8sQ0FBQ2YsV0FBVyxTQUFNLEVBQUUsS0FDOUVtRixlQUFlLEtBQUssQ0FBQyxHQUFHLFlBQVksR0FBRyxFQUFFO0lBQUUsQ0FDbkQsQ0FBQyxHQUNGLElBQ0gsQ0FBQztFQUVkO0VBRUEsU0FBU2MsTUFBTUEsQ0FBQSxFQUFHO0lBQ2Qsb0JBQ0l2SCxNQUFBLENBQUFZLE9BQUEsQ0FBQWtHLGFBQUE7TUFDSUMsU0FBUyxFQUFDO0lBQW1CLEdBRTVCbkYsS0FBSyxDQUFDNEYsR0FBRyxDQUFDLENBQUNoQixJQUFJLEVBQUVpQixHQUFHLGtCQUNqQnpILE1BQUEsQ0FBQVksT0FBQSxDQUFBa0csYUFBQTtNQUNJckIsR0FBRyxFQUFFZ0MsR0FBSTtNQUNUOUQsRUFBRSxFQUFFLGlCQUFpQixHQUFHOEQsR0FBSTtNQUM1QlYsU0FBUyxFQUFDO0lBQVcsR0FFcEJSLFVBQVUsQ0FBQ0MsSUFBSSxFQUFFaUIsR0FBRyxFQUFFN0YsS0FBSyxDQUFDNkMsTUFBTSxDQUNsQyxDQUNSLENBQ0EsQ0FBQztFQUVkO0VBRUEsT0FDUTFDLE9BQU8sSUFBSSxDQUFDVyxjQUFLLENBQUNLLE1BQU0sQ0FBQ3BCLEtBQUssQ0FBQ2lCLE1BQU0sQ0FBQyxnQkFDbEM1QyxNQUFBLENBQUFZLE9BQUEsQ0FBQWtHLGFBQUE7SUFDSUUsS0FBSyxFQUNEdEUsY0FBSyxDQUFDZ0YsV0FBVyxDQUNiO01BQ0lDLFFBQVEsRUFBRSxNQUFNO01BQ2hCUCxLQUFLLEVBQUUsU0FBUztNQUNoQlEsT0FBTyxFQUFFLEdBQUc7TUFDWkMsT0FBTyxFQUFFLE1BQU07TUFDZkMsY0FBYyxFQUFFLFFBQVE7TUFDeEJDLE1BQU0sRUFBRTtJQUNaLENBQUMsRUFDRHBHLEtBQUssQ0FBQ2lCLE1BQ1Y7RUFDSCxHQUVBLENBQUNGLGNBQUssQ0FBQ0ssTUFBTSxDQUFDbkIsS0FBSyxDQUFDLElBQUksQ0FBQ2MsY0FBSyxDQUFDSyxNQUFNLENBQUNkLHVCQUF1QixDQUFDLElBQUksQ0FBQ1MsY0FBSyxDQUFDSyxNQUFNLENBQUNaLFlBQVksQ0FBQ29DLE9BQU8sQ0FBQyxHQUNoR2dELE1BQU0sQ0FBQyxDQUFDLEdBQ1IsSUFDTCxDQUFDLEdBQ04sSUFBSTtBQUVwQixDQUFDLENBQUM7QUFBQyxJQUFBUyxRQUFBLEdBQUFDLE9BQUEsQ0FBQXJILE9BQUEsR0FFWVksZUFBZSIsImlnbm9yZUxpc3QiOltdfQ==
|