@datagrok/bio 2.0.4 → 2.0.5
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/package-test.js +78 -87
- package/dist/package.js +73 -82
- package/files/tests/sample_MSA_data.csv +96 -0
- package/files/tests/sample_MSA_data_empty_vals.csv +96 -0
- package/package.json +1 -1
- package/src/__jest__/test-node.ts +1 -1
- package/src/package.ts +1 -1
- package/src/tests/activity-cliffs-tests.ts +4 -4
- package/src/tests/activity-cliffs-utils.ts +1 -1
- package/src/utils/cell-renderer.ts +64 -46
- package/src/utils/sequence-activity-cliffs.ts +29 -41
- package/test-Bio-7770371320b2-4674dcdc.html +363 -0
package/dist/package.js
CHANGED
|
@@ -5462,6 +5462,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
5462
5462
|
/* harmony export */ "MacromoleculeDifferenceCellRenderer": () => (/* binding */ MacromoleculeDifferenceCellRenderer),
|
|
5463
5463
|
/* harmony export */ "MacromoleculeSequenceCellRenderer": () => (/* binding */ MacromoleculeSequenceCellRenderer),
|
|
5464
5464
|
/* harmony export */ "MonomerCellRenderer": () => (/* binding */ MonomerCellRenderer),
|
|
5465
|
+
/* harmony export */ "drawMoleculeDifferenceOnCanvas": () => (/* binding */ drawMoleculeDifferenceOnCanvas),
|
|
5465
5466
|
/* harmony export */ "processSequence": () => (/* binding */ processSequence)
|
|
5466
5467
|
/* harmony export */ });
|
|
5467
5468
|
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./src/utils/constants.ts");
|
|
@@ -5673,7 +5674,7 @@ class MonomerCellRenderer extends datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__.G
|
|
|
5673
5674
|
const s = gridCell.cell.value || '-';
|
|
5674
5675
|
const color = palette.get(s);
|
|
5675
5676
|
g.fillStyle = color;
|
|
5676
|
-
g.fillText(s, x + (w / 2), y
|
|
5677
|
+
g.fillText(s, x + (w / 2), y + (h / 2), w);
|
|
5677
5678
|
}
|
|
5678
5679
|
}
|
|
5679
5680
|
class MacromoleculeDifferenceCellRenderer extends datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__.GridCellRenderer {
|
|
@@ -5693,50 +5694,58 @@ class MacromoleculeDifferenceCellRenderer extends datagrok_api_dg__WEBPACK_IMPOR
|
|
|
5693
5694
|
* @param {DG.GridCellStyle} cellStyle Cell style.
|
|
5694
5695
|
* @memberof AlignedSequenceDifferenceCellRenderer
|
|
5695
5696
|
*/
|
|
5696
|
-
render(g, x, y, w, h, gridCell,
|
|
5697
|
+
render(g, x, y, w, h, gridCell, _cellStyle) {
|
|
5697
5698
|
var _a;
|
|
5698
5699
|
const grid = gridCell.grid;
|
|
5699
5700
|
const cell = gridCell.cell;
|
|
5700
|
-
w = getUpdatedWidth(grid, g, w, x);
|
|
5701
|
-
g.save();
|
|
5702
|
-
g.beginPath();
|
|
5703
|
-
g.rect(x, y, w, h);
|
|
5704
|
-
g.clip();
|
|
5705
|
-
g.font = '12px monospace';
|
|
5706
|
-
g.textBaseline = 'top';
|
|
5707
5701
|
const s = (_a = cell.value) !== null && _a !== void 0 ? _a : '';
|
|
5708
|
-
//TODO: can this be replaced/merged with splitSequence?
|
|
5709
|
-
const [s1, s2] = s.split('#');
|
|
5710
5702
|
const separator = gridCell.tableColumn.tags[_constants__WEBPACK_IMPORTED_MODULE_0__.TAGS.SEPARATOR];
|
|
5711
5703
|
const units = gridCell.tableColumn.tags[datagrok_api_dg__WEBPACK_IMPORTED_MODULE_1__.TAGS.UNITS];
|
|
5712
|
-
|
|
5713
|
-
|
|
5714
|
-
|
|
5715
|
-
|
|
5716
|
-
|
|
5717
|
-
|
|
5718
|
-
|
|
5719
|
-
|
|
5720
|
-
|
|
5721
|
-
|
|
5722
|
-
|
|
5723
|
-
|
|
5724
|
-
|
|
5725
|
-
|
|
5726
|
-
|
|
5727
|
-
|
|
5728
|
-
|
|
5729
|
-
|
|
5730
|
-
|
|
5731
|
-
|
|
5732
|
-
|
|
5733
|
-
|
|
5734
|
-
|
|
5735
|
-
|
|
5736
|
-
|
|
5704
|
+
w = getUpdatedWidth(grid, g, x, w);
|
|
5705
|
+
drawMoleculeDifferenceOnCanvas(g, x, y, w, h, s, units, separator);
|
|
5706
|
+
}
|
|
5707
|
+
}
|
|
5708
|
+
function drawMoleculeDifferenceOnCanvas(g, x, y, w, h, s, units, separator, fullStringLength) {
|
|
5709
|
+
//TODO: can this be replaced/merged with splitSequence?
|
|
5710
|
+
const [s1, s2] = s.split('#');
|
|
5711
|
+
const splitter = _datagrok_libraries_bio_src_viewers_web_logo__WEBPACK_IMPORTED_MODULE_5__.WebLogo.getSplitter(units, separator);
|
|
5712
|
+
const subParts1 = splitter(s1);
|
|
5713
|
+
const subParts2 = splitter(s2);
|
|
5714
|
+
const textSize1 = g.measureText(processSequence(subParts1).join(''));
|
|
5715
|
+
const textSize2 = g.measureText(processSequence(subParts2).join(''));
|
|
5716
|
+
const textWidth = Math.max(textSize1.width, textSize2.width);
|
|
5717
|
+
if (fullStringLength) {
|
|
5718
|
+
w = textWidth + subParts1.length * 4;
|
|
5719
|
+
g.canvas.width = textWidth + subParts1.length * 4;
|
|
5720
|
+
}
|
|
5721
|
+
let updatedX = Math.max(x, x + (w - (textWidth + subParts1.length * 4)) / 2);
|
|
5722
|
+
// 28 is the height of the two substitutions on top of each other + space
|
|
5723
|
+
const updatedY = Math.max(y, y + (h - 28) / 2);
|
|
5724
|
+
g.save();
|
|
5725
|
+
g.beginPath();
|
|
5726
|
+
g.rect(x, y, fullStringLength ? textWidth + subParts1.length * 4 : w, h);
|
|
5727
|
+
g.clip();
|
|
5728
|
+
g.font = '12px monospace';
|
|
5729
|
+
g.textBaseline = 'top';
|
|
5730
|
+
let palette = _datagrok_libraries_bio_src_unknown__WEBPACK_IMPORTED_MODULE_4__.UnknownSeqPalettes.Color;
|
|
5731
|
+
if (units != 'HELM')
|
|
5732
|
+
palette = getPaletteByType(units.substring(units.length - 2));
|
|
5733
|
+
const vShift = 7;
|
|
5734
|
+
for (let i = 0; i < subParts1.length; i++) {
|
|
5735
|
+
const amino1 = subParts1[i];
|
|
5736
|
+
const amino2 = subParts2[i];
|
|
5737
|
+
const color1 = palette.get(amino1);
|
|
5738
|
+
if (amino1 != amino2) {
|
|
5739
|
+
const color2 = palette.get(amino2);
|
|
5740
|
+
const subX0 = (0,_datagrok_libraries_bio_src_utils_cell_renderer__WEBPACK_IMPORTED_MODULE_7__.printLeftOrCentered)(updatedX, updatedY - vShift, w, h, g, amino1, color1, 0, true);
|
|
5741
|
+
const subX1 = (0,_datagrok_libraries_bio_src_utils_cell_renderer__WEBPACK_IMPORTED_MODULE_7__.printLeftOrCentered)(updatedX, updatedY + vShift, w, h, g, amino2, color2, 0, true);
|
|
5742
|
+
updatedX = Math.max(subX1, subX0);
|
|
5737
5743
|
}
|
|
5738
|
-
|
|
5744
|
+
else
|
|
5745
|
+
updatedX = (0,_datagrok_libraries_bio_src_utils_cell_renderer__WEBPACK_IMPORTED_MODULE_7__.printLeftOrCentered)(updatedX, updatedY, w, h, g, amino1, color1, 0, true, 0.5);
|
|
5746
|
+
updatedX += 4;
|
|
5739
5747
|
}
|
|
5748
|
+
g.restore();
|
|
5740
5749
|
}
|
|
5741
5750
|
|
|
5742
5751
|
|
|
@@ -6051,8 +6060,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6051
6060
|
/* harmony import */ var datagrok_api_ui__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(datagrok_api_ui__WEBPACK_IMPORTED_MODULE_1__);
|
|
6052
6061
|
/* harmony import */ var _datagrok_libraries_utils_src_similarity_metrics__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @datagrok-libraries/utils/src/similarity-metrics */ "./node_modules/@datagrok-libraries/utils/src/similarity-metrics.js");
|
|
6053
6062
|
/* harmony import */ var _datagrok_libraries_ml_src_typed_metrics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @datagrok-libraries/ml/src/typed-metrics */ "./node_modules/@datagrok-libraries/ml/src/typed-metrics.js");
|
|
6054
|
-
/* harmony import */ var
|
|
6055
|
-
/* harmony import */ var
|
|
6063
|
+
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/constants */ "./src/utils/constants.ts");
|
|
6064
|
+
/* harmony import */ var _cell_renderer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cell-renderer */ "./src/utils/cell-renderer.ts");
|
|
6056
6065
|
var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
6057
6066
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
6058
6067
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -6067,6 +6076,7 @@ var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _argume
|
|
|
6067
6076
|
|
|
6068
6077
|
|
|
6069
6078
|
|
|
6079
|
+
|
|
6070
6080
|
function getDistances(col, seq) {
|
|
6071
6081
|
return __awaiter(this, void 0, void 0, function* () {
|
|
6072
6082
|
const stringArray = col.toList();
|
|
@@ -6127,48 +6137,29 @@ function moleculeInfo(df, idx, seqColName) {
|
|
|
6127
6137
|
return datagrok_api_ui__WEBPACK_IMPORTED_MODULE_1__.tableFromMap(dict);
|
|
6128
6138
|
}
|
|
6129
6139
|
function createPropPanelElement(params) {
|
|
6130
|
-
const propPanel = datagrok_api_ui__WEBPACK_IMPORTED_MODULE_1__.
|
|
6131
|
-
|
|
6132
|
-
|
|
6133
|
-
|
|
6134
|
-
|
|
6135
|
-
|
|
6136
|
-
|
|
6137
|
-
propPanel.append(columnNames);
|
|
6138
|
-
const hosts = [];
|
|
6139
|
-
params.line.mols.forEach((molIdx, hostIdx) => {
|
|
6140
|
-
const activity = datagrok_api_ui__WEBPACK_IMPORTED_MODULE_1__.divText(params.activityCol.get(molIdx).toFixed(2));
|
|
6141
|
-
activity.style.paddingLeft = '15px';
|
|
6142
|
-
activity.style.paddingLeft = '10px';
|
|
6143
|
-
const molHost = datagrok_api_ui__WEBPACK_IMPORTED_MODULE_1__.divText(params.seqCol.get(molIdx));
|
|
6144
|
-
if (params.df.currentRowIdx === molIdx) {
|
|
6145
|
-
molHost.style.border = 'solid 1px lightgrey';
|
|
6146
|
-
}
|
|
6147
|
-
//@ts-ignore
|
|
6148
|
-
datagrok_api_ui__WEBPACK_IMPORTED_MODULE_1__.tooltip.bind(molHost, () => moleculeInfo(params.df, molIdx, params.seqCol.name));
|
|
6149
|
-
molHost.onclick = () => {
|
|
6150
|
-
const obj = datagrok_api_grok__WEBPACK_IMPORTED_MODULE_4__.shell.o;
|
|
6151
|
-
molHost.style.border = 'solid 1px lightgrey';
|
|
6152
|
-
params.df.currentRowIdx = molIdx;
|
|
6153
|
-
hosts.forEach((h, i) => {
|
|
6154
|
-
if (i !== hostIdx) {
|
|
6155
|
-
h.style.border = '';
|
|
6156
|
-
}
|
|
6157
|
-
});
|
|
6158
|
-
setTimeout(() => {
|
|
6159
|
-
datagrok_api_grok__WEBPACK_IMPORTED_MODULE_4__.shell.o = obj;
|
|
6160
|
-
}, 1000);
|
|
6161
|
-
};
|
|
6162
|
-
propPanel.append(datagrok_api_ui__WEBPACK_IMPORTED_MODULE_1__.divH([
|
|
6163
|
-
molHost,
|
|
6164
|
-
activity,
|
|
6165
|
-
]));
|
|
6166
|
-
hosts.push(molHost);
|
|
6140
|
+
const propPanel = datagrok_api_ui__WEBPACK_IMPORTED_MODULE_1__.div();
|
|
6141
|
+
propPanel.append(datagrok_api_ui__WEBPACK_IMPORTED_MODULE_1__.divText(params.seqCol.name, { style: { fontWeight: 'bold' } }));
|
|
6142
|
+
const sequencesArray = new Array(2);
|
|
6143
|
+
const activitiesArray = new Array(2);
|
|
6144
|
+
params.line.mols.forEach((molIdx, idx) => {
|
|
6145
|
+
sequencesArray[idx] = params.seqCol.get(molIdx);
|
|
6146
|
+
activitiesArray[idx] = params.activityCol.get(molIdx);
|
|
6167
6147
|
});
|
|
6168
|
-
|
|
6169
|
-
|
|
6170
|
-
|
|
6171
|
-
|
|
6148
|
+
const canvas = document.createElement('canvas');
|
|
6149
|
+
const context = canvas.getContext('2d');
|
|
6150
|
+
canvas.height = 30;
|
|
6151
|
+
const units = params.seqCol.getTag(datagrok_api_dg__WEBPACK_IMPORTED_MODULE_0__.TAGS.UNITS);
|
|
6152
|
+
const separator = params.seqCol.getTag(_utils_constants__WEBPACK_IMPORTED_MODULE_4__.TAGS.SEPARATOR);
|
|
6153
|
+
(0,_cell_renderer__WEBPACK_IMPORTED_MODULE_5__.drawMoleculeDifferenceOnCanvas)(context, 0, 0, 0, 30, sequencesArray.join('#'), units, separator, true);
|
|
6154
|
+
propPanel.append(datagrok_api_ui__WEBPACK_IMPORTED_MODULE_1__.div(canvas, { style: { width: '300px', overflow: 'scroll' } }));
|
|
6155
|
+
function addFiledToPropPanel(name, value) {
|
|
6156
|
+
propPanel.append(datagrok_api_ui__WEBPACK_IMPORTED_MODULE_1__.divH([
|
|
6157
|
+
datagrok_api_ui__WEBPACK_IMPORTED_MODULE_1__.divText(`${name}: `, { style: { fontWeight: 'bold', paddingRight: '5px' } }),
|
|
6158
|
+
datagrok_api_ui__WEBPACK_IMPORTED_MODULE_1__.divText(value.toFixed(2))
|
|
6159
|
+
], { style: { paddingTop: '5px' } }));
|
|
6160
|
+
}
|
|
6161
|
+
addFiledToPropPanel('Activity delta', Math.abs(activitiesArray[0] - activitiesArray[1]));
|
|
6162
|
+
addFiledToPropPanel('Cliff', params.sali);
|
|
6172
6163
|
return propPanel;
|
|
6173
6164
|
}
|
|
6174
6165
|
|
|
@@ -7060,7 +7051,7 @@ function fastaSequenceCellRenderer() {
|
|
|
7060
7051
|
//name: separatorSequenceCellRenderer
|
|
7061
7052
|
//tags: cellRenderer
|
|
7062
7053
|
//meta.cellType: sequence
|
|
7063
|
-
//meta.columnTags: quality=Macromolecule, units=
|
|
7054
|
+
//meta.columnTags: quality=Macromolecule, units=separator
|
|
7064
7055
|
//output: grid_cell_renderer result
|
|
7065
7056
|
function separatorSequenceCellRenderer() {
|
|
7066
7057
|
return new _utils_cell_renderer__WEBPACK_IMPORTED_MODULE_3__.MacromoleculeSequenceCellRenderer();
|
|
@@ -7440,4 +7431,4 @@ function macromoleculesFingerprints(mcol) {
|
|
|
7440
7431
|
bio = __webpack_exports__;
|
|
7441
7432
|
/******/ })()
|
|
7442
7433
|
;
|
|
7443
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDOzs7Ozs7Ozs7Ozs7Ozs7OztBQ2pPSztBQUN6QyxrQ0FBa0MseURBQWM7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7O0FDM0JwQztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7QUMzQzhCO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7QUM1QzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFlBQVksUUFBUTtBQUNwQjtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFlBQVksUUFBUTtBQUNwQjtBQUNPO0FBQ1A7QUFDQTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDcEJOO0FBQzlCO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDQTtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087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Ozs7Ozs7Ozs7O0FDcEVPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDUDtBQUNPO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixnQkFBZ0I7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZ0JBQWdCO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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O0FBQzVDLHNCQUFzQiwrREFBcUIsRUFBRSxnRUFBbUI7QUFDaEUsc0JBQXNCLDREQUFlLGFBQWEsNERBQWU7QUFDakU7QUFDQSxJQUFJLHVFQUE2QjtBQUNqQztBQUNBO0FBQ0EscUJBQXFCO0FBQ2Q7QUFDUCxrQkFBa0IsMEZBQWdCLFlBQVksZ0dBQXNCO0FBQ3BFO0FBQ0E7QUFDTztBQUNQO0FBQ0EsUUFBUSw2REFBbUI7QUFDM0I7QUFDQSwyQkFBMkIsNkRBQW1CLHVCQUF1QixZQUFZO0FBQ2pGLGVBQWUsNEVBQWU7QUFDOUIsS0FBSztBQUNMIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BiaW93YXNtL2Fpb2xpL2Rpc3QvYWlvbGkuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9hbWlub2FjaWRzLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvbnVjbGVvdGlkZXMuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9zZXEtcGFsZXR0ZXMuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9zZXF1ZW5jZS1lbmNvZGVyLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdW5rbm93bi5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL2NlbGwtcmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9mYXN0YS1oYW5kbGVyLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvbm90YXRpb24tY29udmVydGVyLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvc3BsaXR0ZXIuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy91bml0cy1oYW5kbGVyLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdmQtcmVnaW9ucy5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3ZpZXdlcnMvd2ViLWxvZ28uanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL3NlcXVlbmNlLXNwYWNlLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy90eXBlZC1tZXRyaWNzLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy92aWV3ZXJzL2FjdGl2aXR5LWNsaWZmcy5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvd29ya2Vycy9kaW1lbnNpb25hbGl0eS1yZWR1Y2luZy13b3JrZXItY3JlYXRvci5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvZGF0YWZyYW1lLXV0aWxzLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy9yYW5kb20uanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3NpbWlsYXJpdHktbWV0cmljcy5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvdHlwZS1kZWNsYXJhdGlvbnMuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3ZlY3Rvci1vcGVyYXRpb25zLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9mYXN0LXNoYTI1Ni9zaGEyNTYuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL2Zhc3Rlc3QtbGV2ZW5zaHRlaW4vaW5kZXguanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL2phcm8td2lua2xlci10eXBlc2NyaXB0L2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvY2FsY3VsYXRpb25zL2ZpbmdlcnByaW50cy50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvY29uc3QudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3NlcV9hbGlnbi50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvdXRpbHMvYXRvbWljLXdvcmtzLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy91dGlscy9jZWxsLXJlbmRlcmVyLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy91dGlscy9jb25zdGFudHMudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3V0aWxzL2NvbnZlcnQudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3V0aWxzL211bHRpcGxlLXNlcXVlbmNlLWFsaWdubWVudC50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvdXRpbHMvc2VxdWVuY2UtYWN0aXZpdHktY2xpZmZzLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy91dGlscy9zZXF1ZW5jZS1zcGFjZS50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvdXRpbHMvdXRpbHMudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3ZpZXdlcnMvdmQtcmVnaW9ucy12aWV3ZXIudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3dpZGdldHMvcmVwcmVzZW50YXRpb25zLnRzIiwid2VicGFjazovL2Jpby9leHRlcm5hbCB2YXIgXCIkXCIiLCJ3ZWJwYWNrOi8vYmlvL2V4dGVybmFsIHZhciBcIkRHXCIiLCJ3ZWJwYWNrOi8vYmlvL2V4dGVybmFsIHZhciBcImdyb2tcIiIsIndlYnBhY2s6Ly9iaW8vZXh0ZXJuYWwgdmFyIFwicnhqc1wiIiwid2VicGFjazovL2Jpby9leHRlcm5hbCB2YXIgXCJ1aVwiIiwid2VicGFjazovL2Jpby9leHRlcm5hbCB2YXIgXCJ3dVwiIiwid2VicGFjazovL2Jpby93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9iaW8vd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vYmlvL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9iaW8vd2VicGFjay9ydW50aW1lL2dldCBqYXZhc2NyaXB0IGNodW5rIGZpbGVuYW1lIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvZ2xvYmFsIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvcHVibGljUGF0aCIsIndlYnBhY2s6Ly9iaW8vd2VicGFjay9ydW50aW1lL2pzb25wIGNodW5rIGxvYWRpbmciLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3BhY2thZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnID8gbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCkgOlxuICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoZmFjdG9yeSkgOlxuICAoZ2xvYmFsID0gZ2xvYmFsIHx8IHNlbGYsIGdsb2JhbC5BaW9saSA9IGZhY3RvcnkoKSk7XG59KHRoaXMsIChmdW5jdGlvbiAoKSB7ICd1c2Ugc3RyaWN0JztcblxuICB2YXIgbmFtZSA9IFwiQGJpb3dhc20vYWlvbGlcIjtcbiAgdmFyIHZlcnNpb24gPSBcIjIuNC4wLXJjMlwiO1xuICB2YXIgZGVzY3JpcHRpb24gPSBcIkEgZnJhbWV3b3JrIGZvciBidWlsZGluZyBXZWJBc3NlbWJseS1iYXNlZCBnZW5vbWljcyB0b29sc1wiO1xuICB2YXIgYnJvd3NlciA9IFwiZGlzdC9haW9saS5qc1wiO1xuICB2YXIgd29ya2VyID0gXCJkaXN0L2Fpb2xpLndvcmtlci5qc1wiO1xuICB2YXIgbWFpbiA9IFwiYWlvbGkuanNcIjtcbiAgdmFyIHJlcG9zaXRvcnkgPSB7XG4gIFx0dHlwZTogXCJnaXRcIixcbiAgXHR1cmw6IFwiZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9iaW93YXNtL2Fpb2xpLmdpdFwiXG4gIH07XG4gIHZhciBhdXRob3IgPSBcIlJvYmVydCBBYm91a2hhbGlsXCI7XG4gIHZhciBsaWNlbnNlID0gXCJNSVRcIjtcbiAgdmFyIGRlcGVuZGVuY2llcyA9IHtcbiAgXHRjb21saW5rOiBcIl40LjMuMVwiLFxuICBcdFwid2FzbS1mZWF0dXJlLWRldGVjdFwiOiBcIl4xLjIuMTFcIlxuICB9O1xuICB2YXIgZGV2RGVwZW5kZW5jaWVzID0ge1xuICBcdFwiQHJvbGx1cC9wbHVnaW4tY29tbW9uanNcIjogXCJeMTEuMC4xXCIsXG4gIFx0XCJAcm9sbHVwL3BsdWdpbi1qc29uXCI6IFwiXjQuMS4wXCIsXG4gIFx0XCJAcm9sbHVwL3BsdWdpbi1ub2RlLXJlc29sdmVcIjogXCJeNy4wLjBcIixcbiAgXHRjeXByZXNzOiBcIl44LjAuMFwiLFxuICBcdHJvbGx1cDogXCJeMS4yOS4wXCIsXG4gIFx0XCJyb2xsdXAtcGx1Z2luLXRlcnNlclwiOiBcIl43LjAuMlwiXG4gIH07XG4gIHZhciBzY3JpcHRzID0ge1xuICBcdGJ1aWxkOiBcInJvbGx1cCAtY1wiLFxuICBcdGRldjogXCJyb2xsdXAgLWMgLXdcIixcbiAgXHR0ZXN0OiBcImN5cHJlc3MgcnVuXCIsXG4gIFx0XCJ0ZXN0LW9wZW5cIjogXCJjeXByZXNzIG9wZW5cIlxuICB9O1xuICB2YXIgZmlsZXMgPSBbXG4gIFx0XCJkaXN0XCJcbiAgXTtcbiAgdmFyIHBrZyA9IHtcbiAgXHRuYW1lOiBuYW1lLFxuICBcdHZlcnNpb246IHZlcnNpb24sXG4gIFx0ZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLFxuICBcdGJyb3dzZXI6IGJyb3dzZXIsXG4gIFx0d29ya2VyOiB3b3JrZXIsXG4gIFx0bWFpbjogbWFpbixcbiAgXHRyZXBvc2l0b3J5OiByZXBvc2l0b3J5LFxuICBcdGF1dGhvcjogYXV0aG9yLFxuICBcdGxpY2Vuc2U6IGxpY2Vuc2UsXG4gIFx0ZGVwZW5kZW5jaWVzOiBkZXBlbmRlbmNpZXMsXG4gIFx0ZGV2RGVwZW5kZW5jaWVzOiBkZXZEZXBlbmRlbmNpZXMsXG4gIFx0c2NyaXB0czogc2NyaXB0cyxcbiAgXHRmaWxlczogZmlsZXNcbiAgfTtcblxuICAvKipcclxuICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gICAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiAgICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gICAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gICAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICAgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiAgICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4gICAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gICAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuICAgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICAgKi9cclxuICBjb25zdCBwcm94eU1hcmtlciA9IFN5bWJvbChcIkNvbWxpbmsucHJveHlcIik7XHJcbiAgY29uc3QgY3JlYXRlRW5kcG9pbnQgPSBTeW1ib2woXCJDb21saW5rLmVuZHBvaW50XCIpO1xyXG4gIGNvbnN0IHJlbGVhc2VQcm94eSA9IFN5bWJvbChcIkNvbWxpbmsucmVsZWFzZVByb3h5XCIpO1xyXG4gIGNvbnN0IHRocm93TWFya2VyID0gU3ltYm9sKFwiQ29tbGluay50aHJvd25cIik7XHJcbiAgY29uc3QgaXNPYmplY3QgPSAodmFsKSA9PiAodHlwZW9mIHZhbCA9PT0gXCJvYmplY3RcIiAmJiB2YWwgIT09IG51bGwpIHx8IHR5cGVvZiB2YWwgPT09IFwiZnVuY3Rpb25cIjtcclxuICAvKipcclxuICAgKiBJbnRlcm5hbCB0cmFuc2ZlciBoYW5kbGUgdG8gaGFuZGxlIG9iamVjdHMgbWFya2VkIHRvIHByb3h5LlxyXG4gICAqL1xyXG4gIGNvbnN0IHByb3h5VHJhbnNmZXJIYW5kbGVyID0ge1xyXG4gICAgICBjYW5IYW5kbGU6ICh2YWwpID0+IGlzT2JqZWN0KHZhbCkgJiYgdmFsW3Byb3h5TWFya2VyXSxcclxuICAgICAgc2VyaWFsaXplKG9iaikge1xyXG4gICAgICAgICAgY29uc3QgeyBwb3J0MSwgcG9ydDIgfSA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpO1xyXG4gICAgICAgICAgZXhwb3NlKG9iaiwgcG9ydDEpO1xyXG4gICAgICAgICAgcmV0dXJuIFtwb3J0MiwgW3BvcnQyXV07XHJcbiAgICAgIH0sXHJcbiAgICAgIGRlc2VyaWFsaXplKHBvcnQpIHtcclxuICAgICAgICAgIHBvcnQuc3RhcnQoKTtcclxuICAgICAgICAgIHJldHVybiB3cmFwKHBvcnQpO1xyXG4gICAgICB9LFxyXG4gIH07XHJcbiAgLyoqXHJcbiAgICogSW50ZXJuYWwgdHJhbnNmZXIgaGFuZGxlciB0byBoYW5kbGUgdGhyb3duIGV4Y2VwdGlvbnMuXHJcbiAgICovXHJcbiAgY29uc3QgdGhyb3dUcmFuc2ZlckhhbmRsZXIgPSB7XHJcbiAgICAgIGNhbkhhbmRsZTogKHZhbHVlKSA9PiBpc09iamVjdCh2YWx1ZSkgJiYgdGhyb3dNYXJrZXIgaW4gdmFsdWUsXHJcbiAgICAgIHNlcmlhbGl6ZSh7IHZhbHVlIH0pIHtcclxuICAgICAgICAgIGxldCBzZXJpYWxpemVkO1xyXG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRXJyb3IpIHtcclxuICAgICAgICAgICAgICBzZXJpYWxpemVkID0ge1xyXG4gICAgICAgICAgICAgICAgICBpc0Vycm9yOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogdmFsdWUubWVzc2FnZSxcclxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHZhbHVlLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdGFjazogdmFsdWUuc3RhY2ssXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIHNlcmlhbGl6ZWQgPSB7IGlzRXJyb3I6IGZhbHNlLCB2YWx1ZSB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIFtzZXJpYWxpemVkLCBbXV07XHJcbiAgICAgIH0sXHJcbiAgICAgIGRlc2VyaWFsaXplKHNlcmlhbGl6ZWQpIHtcclxuICAgICAgICAgIGlmIChzZXJpYWxpemVkLmlzRXJyb3IpIHtcclxuICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuYXNzaWduKG5ldyBFcnJvcihzZXJpYWxpemVkLnZhbHVlLm1lc3NhZ2UpLCBzZXJpYWxpemVkLnZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRocm93IHNlcmlhbGl6ZWQudmFsdWU7XHJcbiAgICAgIH0sXHJcbiAgfTtcclxuICAvKipcclxuICAgKiBBbGxvd3MgY3VzdG9taXppbmcgdGhlIHNlcmlhbGl6YXRpb24gb2YgY2VydGFpbiB2YWx1ZXMuXHJcbiAgICovXHJcbiAgY29uc3QgdHJhbnNmZXJIYW5kbGVycyA9IG5ldyBNYXAoW1xyXG4gICAgICBbXCJwcm94eVwiLCBwcm94eVRyYW5zZmVySGFuZGxlcl0sXHJcbiAgICAgIFtcInRocm93XCIsIHRocm93VHJhbnNmZXJIYW5kbGVyXSxcclxuICBdKTtcclxuICBmdW5jdGlvbiBleHBvc2Uob2JqLCBlcCA9IHNlbGYpIHtcclxuICAgICAgZXAuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgZnVuY3Rpb24gY2FsbGJhY2soZXYpIHtcclxuICAgICAgICAgIGlmICghZXYgfHwgIWV2LmRhdGEpIHtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCB7IGlkLCB0eXBlLCBwYXRoIH0gPSBPYmplY3QuYXNzaWduKHsgcGF0aDogW10gfSwgZXYuZGF0YSk7XHJcbiAgICAgICAgICBjb25zdCBhcmd1bWVudExpc3QgPSAoZXYuZGF0YS5hcmd1bWVudExpc3QgfHwgW10pLm1hcChmcm9tV2lyZVZhbHVlKTtcclxuICAgICAgICAgIGxldCByZXR1cm5WYWx1ZTtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gcGF0aC5zbGljZSgwLCAtMSkucmVkdWNlKChvYmosIHByb3ApID0+IG9ialtwcm9wXSwgb2JqKTtcclxuICAgICAgICAgICAgICBjb25zdCByYXdWYWx1ZSA9IHBhdGgucmVkdWNlKChvYmosIHByb3ApID0+IG9ialtwcm9wXSwgb2JqKTtcclxuICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgY2FzZSBcIkdFVFwiIC8qIEdFVCAqLzpcclxuICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHJhd1ZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJTRVRcIiAvKiBTRVQgKi86XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50W3BhdGguc2xpY2UoLTEpWzBdXSA9IGZyb21XaXJlVmFsdWUoZXYuZGF0YS52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJBUFBMWVwiIC8qIEFQUExZICovOlxyXG4gICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gcmF3VmFsdWUuYXBwbHkocGFyZW50LCBhcmd1bWVudExpc3QpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJDT05TVFJVQ1RcIiAvKiBDT05TVFJVQ1QgKi86XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBuZXcgcmF3VmFsdWUoLi4uYXJndW1lbnRMaXN0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHByb3h5KHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICBjYXNlIFwiRU5EUE9JTlRcIiAvKiBFTkRQT0lOVCAqLzpcclxuICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHBvcnQxLCBwb3J0MiB9ID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3NlKG9iaiwgcG9ydDIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gdHJhbnNmZXIocG9ydDEsIFtwb3J0MV0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJSRUxFQVNFXCIgLyogUkVMRUFTRSAqLzpcclxuICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNhdGNoICh2YWx1ZSkge1xyXG4gICAgICAgICAgICAgIHJldHVyblZhbHVlID0geyB2YWx1ZSwgW3Rocm93TWFya2VyXTogMCB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHJldHVyblZhbHVlKVxyXG4gICAgICAgICAgICAgIC5jYXRjaCgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4geyB2YWx1ZSwgW3Rocm93TWFya2VyXTogMCB9O1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAudGhlbigocmV0dXJuVmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBbd2lyZVZhbHVlLCB0cmFuc2ZlcmFibGVzXSA9IHRvV2lyZVZhbHVlKHJldHVyblZhbHVlKTtcclxuICAgICAgICAgICAgICBlcC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHdpcmVWYWx1ZSksIHsgaWQgfSksIHRyYW5zZmVyYWJsZXMpO1xyXG4gICAgICAgICAgICAgIGlmICh0eXBlID09PSBcIlJFTEVBU0VcIiAvKiBSRUxFQVNFICovKSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vIGRldGFjaCBhbmQgZGVhY3RpdmUgYWZ0ZXIgc2VuZGluZyByZWxlYXNlIHJlc3BvbnNlIGFib3ZlLlxyXG4gICAgICAgICAgICAgICAgICBlcC5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBjYWxsYmFjayk7XHJcbiAgICAgICAgICAgICAgICAgIGNsb3NlRW5kUG9pbnQoZXApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGVwLnN0YXJ0KSB7XHJcbiAgICAgICAgICBlcC5zdGFydCgpO1xyXG4gICAgICB9XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGlzTWVzc2FnZVBvcnQoZW5kcG9pbnQpIHtcclxuICAgICAgcmV0dXJuIGVuZHBvaW50LmNvbnN0cnVjdG9yLm5hbWUgPT09IFwiTWVzc2FnZVBvcnRcIjtcclxuICB9XHJcbiAgZnVuY3Rpb24gY2xvc2VFbmRQb2ludChlbmRwb2ludCkge1xyXG4gICAgICBpZiAoaXNNZXNzYWdlUG9ydChlbmRwb2ludCkpXHJcbiAgICAgICAgICBlbmRwb2ludC5jbG9zZSgpO1xyXG4gIH1cclxuICBmdW5jdGlvbiB3cmFwKGVwLCB0YXJnZXQpIHtcclxuICAgICAgcmV0dXJuIGNyZWF0ZVByb3h5KGVwLCBbXSwgdGFyZ2V0KTtcclxuICB9XHJcbiAgZnVuY3Rpb24gdGhyb3dJZlByb3h5UmVsZWFzZWQoaXNSZWxlYXNlZCkge1xyXG4gICAgICBpZiAoaXNSZWxlYXNlZCkge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlXCIpO1xyXG4gICAgICB9XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGNyZWF0ZVByb3h5KGVwLCBwYXRoID0gW10sIHRhcmdldCA9IGZ1bmN0aW9uICgpIHsgfSkge1xyXG4gICAgICBsZXQgaXNQcm94eVJlbGVhc2VkID0gZmFsc2U7XHJcbiAgICAgIGNvbnN0IHByb3h5ID0gbmV3IFByb3h5KHRhcmdldCwge1xyXG4gICAgICAgICAgZ2V0KF90YXJnZXQsIHByb3ApIHtcclxuICAgICAgICAgICAgICB0aHJvd0lmUHJveHlSZWxlYXNlZChpc1Byb3h5UmVsZWFzZWQpO1xyXG4gICAgICAgICAgICAgIGlmIChwcm9wID09PSByZWxlYXNlUHJveHkpIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0UmVzcG9uc2VNZXNzYWdlKGVwLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJSRUxFQVNFXCIgLyogUkVMRUFTRSAqLyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBwYXRoLm1hcCgocCkgPT4gcC50b1N0cmluZygpKSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlRW5kUG9pbnQoZXApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzUHJveHlSZWxlYXNlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKHByb3AgPT09IFwidGhlblwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgdGhlbjogKCkgPT4gcHJveHkgfTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBjb25zdCByID0gcmVxdWVzdFJlc3BvbnNlTWVzc2FnZShlcCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJHRVRcIiAvKiBHRVQgKi8sXHJcbiAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBwYXRoLm1hcCgocCkgPT4gcC50b1N0cmluZygpKSxcclxuICAgICAgICAgICAgICAgICAgfSkudGhlbihmcm9tV2lyZVZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHIudGhlbi5iaW5kKHIpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUHJveHkoZXAsIFsuLi5wYXRoLCBwcm9wXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgc2V0KF90YXJnZXQsIHByb3AsIHJhd1ZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgdGhyb3dJZlByb3h5UmVsZWFzZWQoaXNQcm94eVJlbGVhc2VkKTtcclxuICAgICAgICAgICAgICAvLyBGSVhNRTogRVM2IFByb3h5IEhhbmRsZXIgYHNldGAgbWV0aG9kcyBhcmUgc3VwcG9zZWQgdG8gcmV0dXJuIGFcclxuICAgICAgICAgICAgICAvLyBib29sZWFuLiBUbyBzaG93IGdvb2Qgd2lsbCwgd2UgcmV0dXJuIHRydWUgYXN5bmNocm9ub3VzbHkgwq9cXF8o44OEKV8vwq9cclxuICAgICAgICAgICAgICBjb25zdCBbdmFsdWUsIHRyYW5zZmVyYWJsZXNdID0gdG9XaXJlVmFsdWUocmF3VmFsdWUpO1xyXG4gICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0UmVzcG9uc2VNZXNzYWdlKGVwLCB7XHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwiU0VUXCIgLyogU0VUICovLFxyXG4gICAgICAgICAgICAgICAgICBwYXRoOiBbLi4ucGF0aCwgcHJvcF0ubWFwKChwKSA9PiBwLnRvU3RyaW5nKCkpLFxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZSxcclxuICAgICAgICAgICAgICB9LCB0cmFuc2ZlcmFibGVzKS50aGVuKGZyb21XaXJlVmFsdWUpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGFwcGx5KF90YXJnZXQsIF90aGlzQXJnLCByYXdBcmd1bWVudExpc3QpIHtcclxuICAgICAgICAgICAgICB0aHJvd0lmUHJveHlSZWxlYXNlZChpc1Byb3h5UmVsZWFzZWQpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhc3QgPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgICAgICAgaWYgKGxhc3QgPT09IGNyZWF0ZUVuZHBvaW50KSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0UmVzcG9uc2VNZXNzYWdlKGVwLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIkVORFBPSU5UXCIgLyogRU5EUE9JTlQgKi8sXHJcbiAgICAgICAgICAgICAgICAgIH0pLnRoZW4oZnJvbVdpcmVWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIC8vIFdlIGp1c3QgcHJldGVuZCB0aGF0IGBiaW5kKClgIGRpZG7igJl0IGhhcHBlbi5cclxuICAgICAgICAgICAgICBpZiAobGFzdCA9PT0gXCJiaW5kXCIpIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVByb3h5KGVwLCBwYXRoLnNsaWNlKDAsIC0xKSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGNvbnN0IFthcmd1bWVudExpc3QsIHRyYW5zZmVyYWJsZXNdID0gcHJvY2Vzc0FyZ3VtZW50cyhyYXdBcmd1bWVudExpc3QpO1xyXG4gICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0UmVzcG9uc2VNZXNzYWdlKGVwLCB7XHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwiQVBQTFlcIiAvKiBBUFBMWSAqLyxcclxuICAgICAgICAgICAgICAgICAgcGF0aDogcGF0aC5tYXAoKHApID0+IHAudG9TdHJpbmcoKSksXHJcbiAgICAgICAgICAgICAgICAgIGFyZ3VtZW50TGlzdCxcclxuICAgICAgICAgICAgICB9LCB0cmFuc2ZlcmFibGVzKS50aGVuKGZyb21XaXJlVmFsdWUpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGNvbnN0cnVjdChfdGFyZ2V0LCByYXdBcmd1bWVudExpc3QpIHtcclxuICAgICAgICAgICAgICB0aHJvd0lmUHJveHlSZWxlYXNlZChpc1Byb3h5UmVsZWFzZWQpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IFthcmd1bWVudExpc3QsIHRyYW5zZmVyYWJsZXNdID0gcHJvY2Vzc0FyZ3VtZW50cyhyYXdBcmd1bWVudExpc3QpO1xyXG4gICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0UmVzcG9uc2VNZXNzYWdlKGVwLCB7XHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwiQ09OU1RSVUNUXCIgLyogQ09OU1RSVUNUICovLFxyXG4gICAgICAgICAgICAgICAgICBwYXRoOiBwYXRoLm1hcCgocCkgPT4gcC50b1N0cmluZygpKSxcclxuICAgICAgICAgICAgICAgICAgYXJndW1lbnRMaXN0LFxyXG4gICAgICAgICAgICAgIH0sIHRyYW5zZmVyYWJsZXMpLnRoZW4oZnJvbVdpcmVWYWx1ZSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHByb3h5O1xyXG4gIH1cclxuICBmdW5jdGlvbiBteUZsYXQoYXJyKSB7XHJcbiAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLCBhcnIpO1xyXG4gIH1cclxuICBmdW5jdGlvbiBwcm9jZXNzQXJndW1lbnRzKGFyZ3VtZW50TGlzdCkge1xyXG4gICAgICBjb25zdCBwcm9jZXNzZWQgPSBhcmd1bWVudExpc3QubWFwKHRvV2lyZVZhbHVlKTtcclxuICAgICAgcmV0dXJuIFtwcm9jZXNzZWQubWFwKCh2KSA9PiB2WzBdKSwgbXlGbGF0KHByb2Nlc3NlZC5tYXAoKHYpID0+IHZbMV0pKV07XHJcbiAgfVxyXG4gIGNvbnN0IHRyYW5zZmVyQ2FjaGUgPSBuZXcgV2Vha01hcCgpO1xyXG4gIGZ1bmN0aW9uIHRyYW5zZmVyKG9iaiwgdHJhbnNmZXJzKSB7XHJcbiAgICAgIHRyYW5zZmVyQ2FjaGUuc2V0KG9iaiwgdHJhbnNmZXJzKTtcclxuICAgICAgcmV0dXJuIG9iajtcclxuICB9XHJcbiAgZnVuY3Rpb24gcHJveHkob2JqKSB7XHJcbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKG9iaiwgeyBbcHJveHlNYXJrZXJdOiB0cnVlIH0pO1xyXG4gIH1cclxuICBmdW5jdGlvbiB0b1dpcmVWYWx1ZSh2YWx1ZSkge1xyXG4gICAgICBmb3IgKGNvbnN0IFtuYW1lLCBoYW5kbGVyXSBvZiB0cmFuc2ZlckhhbmRsZXJzKSB7XHJcbiAgICAgICAgICBpZiAoaGFuZGxlci5jYW5IYW5kbGUodmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgW3NlcmlhbGl6ZWRWYWx1ZSwgdHJhbnNmZXJhYmxlc10gPSBoYW5kbGVyLnNlcmlhbGl6ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJIQU5ETEVSXCIgLyogSEFORExFUiAqLyxcclxuICAgICAgICAgICAgICAgICAgICAgIG5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc2VyaWFsaXplZFZhbHVlLFxyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICB0cmFuc2ZlcmFibGVzLFxyXG4gICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBcIlJBV1wiIC8qIFJBVyAqLyxcclxuICAgICAgICAgICAgICB2YWx1ZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB0cmFuc2ZlckNhY2hlLmdldCh2YWx1ZSkgfHwgW10sXHJcbiAgICAgIF07XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGZyb21XaXJlVmFsdWUodmFsdWUpIHtcclxuICAgICAgc3dpdGNoICh2YWx1ZS50eXBlKSB7XHJcbiAgICAgICAgICBjYXNlIFwiSEFORExFUlwiIC8qIEhBTkRMRVIgKi86XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRyYW5zZmVySGFuZGxlcnMuZ2V0KHZhbHVlLm5hbWUpLmRlc2VyaWFsaXplKHZhbHVlLnZhbHVlKTtcclxuICAgICAgICAgIGNhc2UgXCJSQVdcIiAvKiBSQVcgKi86XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnZhbHVlO1xyXG4gICAgICB9XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHJlcXVlc3RSZXNwb25zZU1lc3NhZ2UoZXAsIG1zZywgdHJhbnNmZXJzKSB7XHJcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaWQgPSBnZW5lcmF0ZVVVSUQoKTtcclxuICAgICAgICAgIGVwLmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGZ1bmN0aW9uIGwoZXYpIHtcclxuICAgICAgICAgICAgICBpZiAoIWV2LmRhdGEgfHwgIWV2LmRhdGEuaWQgfHwgZXYuZGF0YS5pZCAhPT0gaWQpIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBlcC5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBsKTtcclxuICAgICAgICAgICAgICByZXNvbHZlKGV2LmRhdGEpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBpZiAoZXAuc3RhcnQpIHtcclxuICAgICAgICAgICAgICBlcC5zdGFydCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZXAucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7IGlkIH0sIG1zZyksIHRyYW5zZmVycyk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBmdW5jdGlvbiBnZW5lcmF0ZVVVSUQoKSB7XHJcbiAgICAgIHJldHVybiBuZXcgQXJyYXkoNClcclxuICAgICAgICAgIC5maWxsKDApXHJcbiAgICAgICAgICAubWFwKCgpID0+IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpXHJcbiAgICAgICAgICAuam9pbihcIi1cIik7XHJcbiAgfVxuICAvLyMgc291cmNlTWFwcGluZ1VSTD1jb21saW5rLm1qcy5tYXBcblxuICAvLyBDb25zdGFudHNcbiAgY29uc3QgVVJMX0NETl9ST09UID0gXCJodHRwczovL2Nkbi5iaW93YXNtLmNvbS92MlwiO1xuICBjb25zdCBDT05GSUdfREVGQVVMVFMgPSB7XG4gIFx0Ly8gQmlvd2FzbSBDRE4gVVJMc1xuICBcdHVybENETjogVVJMX0NETl9ST09ULFxuICBcdC8vIEdldCB0aGUgV29ya2VyIGNvZGUgY29ycmVzcG9uZGluZyB0byB0aGUgY3VycmVudCBBaW9saSB2ZXJzaW9uXG4gIFx0dXJsQWlvbGk6IGAke1VSTF9DRE5fUk9PVH0vYWlvbGkvJHtwa2cudmVyc2lvbn0vYWlvbGkud29ya2VyLmpzYCxcbiAgXHQvLyBXaGVyZSB3ZSBjYW4gZmluZCB0aGUgYmFzZSBiaW93YXNtIG1vZHVsZSAob25seSBtb2RpZnkgdGhpcyBmb3IgbG9jYWwgZGV2ZWxvcG1lbnQpXG4gIFx0dXJsQmFzZU1vZHVsZTogbnVsbCxcblxuICBcdC8vIEZvbGRlciB0byB1c2UgZm9yIG1vdW50aW5nIHRoZSBzaGFyZWQgZmlsZXN5c3RlbVxuICBcdGRpclNoYXJlZDogXCIvc2hhcmVkXCIsXG4gIFx0Ly8gRm9sZGVyIHRvIHVzZSBmb3IgbW91bnRpbmcgRmlsZS9CbG9iIG9iamVjdHMgdG8gdGhlIHZpcnR1YWwgZmlsZSBzeXN0ZW1cbiAgXHRkaXJNb3VudGVkOiBcIi9tbnRcIixcbiAgXHQvLyBGb2xkZXIgdG8gdXNlIGZvciBzeW1saW5rcyAoYmFzaWNhbGx5LCB3ZSBtYWtlIGEgc3ltbGluayB0byBlYWNoIGZpbGUgbW91bnRlZCBvbiBXT1JLRVJGU1xuICBcdC8vIHNvIHRoYXQgb3BlcmF0aW9ucyBsaWtlIFwic2FtdG9vbHMgaW5kZXhcIiBkb24ndCBjcmFzaCBkdWUgdG8gdGhlIHJlYWQtb25seSBuYXR1cmUgb2YgV09SS0VSUykuXG4gIFx0Ly8gQWxzbyBtb3VudCBVUkxzIGxhemlseSBpbiB0aGF0IGZvbGRlci5cbiAgXHRkaXJEYXRhOiBcIi9kYXRhXCIsXG4gIFx0Ly8gSW50ZXJsZWF2ZSBzdGRvdXQvc3RkZXJyLiBJZiBzZXQgdG8gZmFsc2UsIGAuZXhlYygpYCByZXR1cm5zIGFuIG9iamVjdCB7IFwic3Rkb3V0XCI6IDx0ZXh0PiwgXCJzdGRlcnJcIjogPHRleHQ+IH1cbiAgXHRwcmludEludGVybGVhdmVkOiB0cnVlLFxuXG4gIFx0Ly8gQ2FsbGJhY2sgZnVuY3Rpb24gdG8gcnVuIHdoZW5ldmVyIHdlIHJlY2VpdmUgYSBtZXNzYWdlIGZyb20gdGhlIFdlYldvcmtlciB3aXRoIHBheWxvYWQgeyB0eXBlOiBcImJpb3dhc21cIiwgdmFsdWU6IC4uLiB9LlxuICBcdC8vIFNlZSA8aHR0cHM6Ly9naXRodWIuY29tL2Jpb3dhc20vYmlvd2FzbS90cmVlL21haW4vdG9vbHMvYmh0c25lPiBmb3IgYW4gZXhhbXBsZSBvZiBob3cgdGhpcyBjYW4gYmUgdXNlZCB0byBzZW5kIHJlZ3VsYXIgdXBkYXRlc1xuICBcdC8vIGJhY2sgdG8gdGhlIG1haW4gdGhyZWFkIGJlZm9yZSBjYWxsTWFpbigpIGlzIGRvbmUgcnVubmluZy5cbiAgXHRjYWxsYmFjazogbnVsbCxcblxuICBcdC8vIERlYnVnZ2luZ1xuICBcdGRlYnVnOiBmYWxzZSxcbiAgXHRlbnY6IFwicHJkXCJcbiAgfTtcblxuICAvLyBDbGFzczogMSBvYmplY3QgPSAxIHdvcmtlcjsgdXNlciBjYW4gZGVjaWRlIGlmIHRoZXkgd2FudCB0b29scyBydW5uaW5nIGluIHNlcGFyYXRlIHRocmVhZHMgb3IgYWxsIG9mIHRoZW0gaW4gb25lXG4gIGNsYXNzIEFpb2xpXG4gIHtcbiAgXHRjb25zdHJ1Y3Rvcih0b29scywgY29uZmlnPXt9KVxuICBcdHtcbiAgXHRcdGlmKHRvb2xzID09IG51bGwpXG4gIFx0XHRcdHRocm93IFwiRXhwZWN0aW5nIGFycmF5IG9mIHRvb2xzIGFzIGlucHV0IHRvIEFpb2xpIGNvbnN0cnVjdG9yLlwiO1xuXG4gIFx0XHQvLyBQYXJzZSB1c2VyIGlucHV0XG4gIFx0XHRpZighQXJyYXkuaXNBcnJheSh0b29scykpXG4gIFx0XHRcdHRvb2xzID0gWyB0b29scyBdO1xuICBcdFx0Ly8gT3ZlcndyaXRlIGRlZmF1bHQgY29uZmlnIGlmIHNwZWNpZmllZFxuICBcdFx0Y29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgQ09ORklHX0RFRkFVTFRTLCBjb25maWcpO1xuICBcdFx0Ly8gRm9yIGNvbnZlbmllbmNlLCBzdXBwb3J0IFwiPHRvb2w+Lzx2ZXJzaW9uPlwiIG9yIFwiPHRvb2w+Lzxwcm9ncmFtPi88dmVyc2lvbj5cIiBpbnN0ZWFkIG9mIG9iamVjdCBjb25maWdcbiAgXHRcdHRvb2xzID0gdG9vbHMubWFwKHRoaXMuX3BhcnNlVG9vbCk7XG4gIFx0XHQvLyBJZiB0ZXN0aW5nIHdpdGggZGlmZmVyZW50IGVudmlyb25tZW50IGUuZy4gY2RuLXN0Zy5iaW93YXNtLmNvbVxuICBcdFx0aWYoY29uZmlnLmVudiAhPSBcInByZFwiKSB7XG4gIFx0XHRcdGNvbmZpZy51cmxDRE4gPSBjb25maWcudXJsQ0ROLnJlcGxhY2UoXCJjZG5cIiwgYGNkbi0ke2NvbmZpZy5lbnZ9YCk7XG4gIFx0XHRcdGNvbmZpZy51cmxBaW9saSA9IGNvbmZpZy51cmxBaW9saS5yZXBsYWNlKFwiY2RuXCIsIGBjZG4tJHtjb25maWcuZW52fWApO1xuICBcdFx0fVxuXG4gIFx0XHQvLyBBZGQgYmlvd2FzbSBiYXNlIG1vZHVsZSB0byBsaXN0IG9mIHRvb2xzIHRvIGluaXRpYWxpemUgKG5lZWQgdGhpcyBmb3IgdGhlIHNoYXJlZCB2aXJ0dWFsIGZpbGVzeXN0ZW0pXG4gIFx0XHR0b29scyA9IFt7XG4gIFx0XHRcdHRvb2w6IFwiYmFzZVwiLFxuICBcdFx0XHR2ZXJzaW9uOiBwa2cudmVyc2lvbixcbiAgXHRcdFx0dXJsUHJlZml4OiBjb25maWcudXJsQmFzZU1vZHVsZVxuICBcdFx0fSwgLi4udG9vbHNdO1xuXG4gIFx0XHQvLyBTZXQgc3RhdGVcbiAgXHRcdHRoaXMudG9vbHMgPSB0b29scztcbiAgXHRcdHRoaXMuY29uZmlnID0gY29uZmlnO1xuXG4gIFx0XHQvLyBIYW5kbGUgY2FsbGJhY2sgKGRlbGV0ZSBpdCBiZWNhdXNlIHdlIGNhbid0IHNlbmQgYSBmdW5jdGlvbiB0byB0aGUgV2ViV29ya2VyKVxuICBcdFx0aWYodGhpcy5jb25maWcuY2FsbGJhY2sgIT0gbnVsbClcbiAgXHRcdFx0dGhpcy5jYWxsYmFjayA9IHRoaXMuY29uZmlnLmNhbGxiYWNrO1xuICBcdFx0ZGVsZXRlIHRoaXMuY29uZmlnLmNhbGxiYWNrO1xuXG4gIFx0XHRyZXR1cm4gdGhpcy5pbml0KCk7XG4gIFx0fVxuXG4gIFx0Ly8gSW5pdGlhbGl6ZSB0aGUgV2ViV29ya2VyIGFuZCB0aGUgV2ViQXNzZW1ibHkgbW9kdWxlcyB3aXRoaW4gaXRcbiAgXHRhc3luYyBpbml0KCkge1xuICBcdFx0Ly8gTm90ZTogV2UgY2FuIG9ubHkgY3JlYXRlIGEgV2ViV29ya2VyIHVzaW5nIGEgVVJMIHRoYXQgaGFzIHRoZSBzYW1lIG9yaWdpbiBhcyB0aGUgYXBwIHJ1bm5pbmcgaXQsIGkuZS4gd2VcbiAgXHRcdC8vIGNhbid0IGRvIGBuZXcgV29ya2VyKFwiaHR0cHM6Ly9jZG4uYmlvd2FzbS5jb20vdjIvLi4uXCIpYCwgc28gaW5zdGVhZCB3ZSBuZWVkIHRvIGZldGNoIHRoZSBjb250ZW50cyBvZiB0aGF0XG4gIFx0XHQvLyBVUkwgZmlyc3QsIGFuZCB0aGVuIGNyZWF0ZSB0aGUgV2ViV29ya2VyLiBTZWUgPGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS82MDAxNTg5OD4uXG4gIFx0XHRjb25zdCBtb2R1bGVKUyA9IGF3YWl0IChhd2FpdCBmZXRjaCh0aGlzLmNvbmZpZy51cmxBaW9saSkpLnRleHQoKTtcbiAgXHRcdGNvbnN0IG1vZHVsZUJsb2IgPSBuZXcgQmxvYihbbW9kdWxlSlNdLCB7IHR5cGU6IFwiYXBwbGljYXRpb24vamF2YXNjcmlwdFwiIH0pO1xuXG4gIFx0XHQvLyBDcmVhdGUgdGhlIFdlYldvcmtlclxuICBcdFx0Y29uc3Qgd29ya2VyID0gbmV3IFdvcmtlcihVUkwuY3JlYXRlT2JqZWN0VVJMKG1vZHVsZUJsb2IpKTtcbiAgXHRcdC8vIExpc3RlbiBmb3IgXCJiaW93YXNtXCIgbWVzc2FnZXMgZnJvbSB0aGUgV2ViV29ya2VyXG4gIFx0XHRpZih0aGlzLmNhbGxiYWNrKVxuICBcdFx0XHR3b3JrZXIub25tZXNzYWdlID0gZSA9PiB7XG4gIFx0XHRcdFx0aWYoZS5kYXRhLnR5cGUgPT0gXCJiaW93YXNtXCIpXG4gIFx0XHRcdFx0XHR0aGlzLmNhbGxiYWNrKGUuZGF0YS52YWx1ZSk7XG4gIFx0XHRcdH07XG5cbiAgXHRcdGNvbnN0IGFpb2xpID0gd3JhcCh3b3JrZXIpO1xuICBcdFx0YWlvbGkudG9vbHMgPSB0aGlzLnRvb2xzO1xuICBcdFx0YWlvbGkuY29uZmlnID0gdGhpcy5jb25maWc7XG5cbiAgXHRcdC8vIEluaXRpYWxpemUgdGhlIHRvb2xzIGluc2lkZSB0aGUgV2ViV29ya2VyXG4gIFx0XHRhd2FpdCBhaW9saS5pbml0KCk7XG5cbiAgXHRcdHJldHVybiBhaW9saTtcbiAgXHR9XG5cbiAgXHQvLyBQYXJzZSBcIjx0b29sPi88dmVyc2lvbj5cIiBhbmQgXCI8dG9vbD4vPHByb2dyYW0+Lzx2ZXJzaW9uPlwiIGludG8geyBcInRvb2xcIjogPHRvb2w+LCBcInByb2dyYW1cIjogPHByb2dyYW0+LCBcInZlcnNpb25cIjogPHZlcnNpb24+IH1cbiAgXHRfcGFyc2VUb29sKHRvb2wpXG4gIFx0e1xuICBcdFx0Ly8gSWYgbm90IGEgc3RyaW5nLCBsZWF2ZSBpdCBhcyBpc1xuICBcdFx0aWYodHlwZW9mIHRvb2wgIT09IFwic3RyaW5nXCIpXG4gIFx0XHRcdHJldHVybiB0b29sO1xuXG4gIFx0XHQvLyBTdXBwb3J0IFwiPHRvb2w+Lzx2ZXJzaW9uPlwiIGFuZCBcIjx0b29sPi88cHJvZ3JhbT4vPHZlcnNpb24+XCJcbiAgXHRcdGNvbnN0IHRvb2xTcGxpdCA9IHRvb2wuc3BsaXQoXCIvXCIpO1xuICBcdFx0aWYodG9vbFNwbGl0Lmxlbmd0aCAhPSAyICYmIHRvb2xTcGxpdC5sZW5ndGggIT0gMylcbiAgXHRcdFx0dGhyb3cgXCJFeHBlY3RpbmcgJzx0b29sPi88dmVyc2lvbj4nIG9yICc8dG9vbD4vPHByb2dyYW0+Lzx2ZXJzaW9uPidcIjtcblxuICBcdFx0cmV0dXJuIHtcbiAgXHRcdFx0dG9vbDogdG9vbFNwbGl0WzBdLFxuICBcdFx0XHRwcm9ncmFtOiB0b29sU3BsaXQubGVuZ3RoID09IDMgPyB0b29sU3BsaXRbMV0gOiB0b29sU3BsaXRbMF0sXG4gIFx0XHRcdHZlcnNpb246IHRvb2xTcGxpdFt0b29sU3BsaXQubGVuZ3RoIC0gMV1cbiAgXHRcdH07XG4gIFx0fVxuICB9XG5cbiAgcmV0dXJuIEFpb2xpO1xuXG59KSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWlvbGkuanMubWFwXG4iLCJpbXBvcnQgeyBTZXFQYWxldHRlQmFzZSB9IGZyb20gJy4vc2VxLXBhbGV0dGVzJztcbmV4cG9ydCBjbGFzcyBBbWlub2FjaWRzUGFsZXR0ZXMgZXh0ZW5kcyBTZXFQYWxldHRlQmFzZSB7XG4gICAgc3RhdGljIGdldCBMZXNrKCkge1xuICAgICAgICBpZiAodGhpcy5sZXNrID09PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHRoaXMubGVzayA9IHRoaXMubWFrZVBhbGV0dGUoW1xuICAgICAgICAgICAgICAgIFtbJ0cnLCAnQScsICdTJywgJ1QnXSwgJ29yYW5nZSddLFxuICAgICAgICAgICAgICAgIFtbJ0MnLCAnVicsICdJJywgJ0wnLCAnUCcsICdGJywgJ1knLCAnTScsICdXJ10sICdhbGxfZ3JlZW4nXSxcbiAgICAgICAgICAgICAgICBbWydOJywgJ1EnLCAnSCddLCAnbWFnZW50YSddLFxuICAgICAgICAgICAgICAgIFtbJ0QnLCAnRSddLCAncmVkJ10sXG4gICAgICAgICAgICAgICAgW1snSycsICdSJ10sICdhbGxfYmx1ZSddLFxuICAgICAgICAgICAgXSwgZmFsc2UsIEFtaW5vYWNpZHNQYWxldHRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubGVzaztcbiAgICB9XG4gICAgc3RhdGljIGdldCBHcm9rR3JvdXBzKCkge1xuICAgICAgICBpZiAodGhpcy5ncm9rR3JvdXBzID09PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHRoaXMuZ3Jva0dyb3VwcyA9IHRoaXMubWFrZVBhbGV0dGUoW1xuICAgICAgICAgICAgICAgIFtbJ0MnLCAnVSddLCAneWVsbG93J10sXG4gICAgICAgICAgICAgICAgW1snRycsICdQJ10sICdyZWQnXSxcbiAgICAgICAgICAgICAgICBbWydBJywgJ1YnLCAnSScsICdMJywgJ00nLCAnRicsICdZJywgJ1cnXSwgJ2FsbF9ncmVlbiddLFxuICAgICAgICAgICAgICAgIFtbJ1InLCAnSCcsICdLJ10sICdsaWdodF9ibHVlJ10sXG4gICAgICAgICAgICAgICAgW1snRCcsICdFJ10sICdkYXJrX2JsdWUnXSxcbiAgICAgICAgICAgICAgICBbWydTJywgJ1QnLCAnTicsICdRJ10sICdvcmFuZ2UnXSxcbiAgICAgICAgICAgIF0sIGZhbHNlLCBBbWlub2FjaWRzUGFsZXR0ZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmdyb2tHcm91cHM7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgUmFzTW9sKCkge1xuICAgICAgICBpZiAodGhpcy5yYXNNb2wgPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgdGhpcy5yYXNNb2wgPSBuZXcgQW1pbm9hY2lkc1BhbGV0dGVzKHtcbiAgICAgICAgICAgICAgICAvLyBodHRwOi8vYWNjZXMuZW5zLWx5b24uZnIvYmlvdGljL3Jhc3RvcC9oZWxwL2NvbG91ci5odG1cbiAgICAgICAgICAgICAgICAnRCc6ICcjRTYwQTBBJyxcbiAgICAgICAgICAgICAgICAnRSc6ICcjRTYwQTBBJyxcbiAgICAgICAgICAgICAgICAnQyc6ICcjRTZFNjAwJyxcbiAgICAgICAgICAgICAgICAnTSc6ICcjRTZFNjAwJyxcbiAgICAgICAgICAgICAgICAnSyc6ICcjMTQ1QUZGJyxcbiAgICAgICAgICAgICAgICAnUic6ICcjMTQ1QUZGJyxcbiAgICAgICAgICAgICAgICAnUyc6ICcjRkE5NjAwJyxcbiAgICAgICAgICAgICAgICAnVCc6ICcjRkE5NjAwJyxcbiAgICAgICAgICAgICAgICAnRic6ICcjMzIzMkFBJyxcbiAgICAgICAgICAgICAgICAnWSc6ICcjMzIzMkFBJyxcbiAgICAgICAgICAgICAgICAnTic6ICcjMDBEQ0RDJyxcbiAgICAgICAgICAgICAgICAnUSc6ICcjMDBEQ0RDJyxcbiAgICAgICAgICAgICAgICAnRyc6ICcjRUJFQkVCJyxcbiAgICAgICAgICAgICAgICAnTCc6ICcjMEY4MjBGJyxcbiAgICAgICAgICAgICAgICAnVic6ICcjMEY4MjBGJyxcbiAgICAgICAgICAgICAgICAnSSc6ICcjMEY4MjBGJyxcbiAgICAgICAgICAgICAgICAnQSc6ICcjQzhDOEM4JyxcbiAgICAgICAgICAgICAgICAnVyc6ICcjQjQ1QUI0JyxcbiAgICAgICAgICAgICAgICAnSCc6ICcjODI4MkQyJyxcbiAgICAgICAgICAgICAgICAnUCc6ICcjREM5NjgyJyxcbiAgICAgICAgICAgICAgICAnb3RoZXJzJzogJyNCRUEwNkUnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucmFzTW9sO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBBbWlub2FjaWRzIHtcbiAgICBzdGF0aWMgZ2V0UGFsZXR0ZShzY2hlbWUgPSAnZ3JvaycpIHtcbiAgICAgICAgc3dpdGNoIChzY2hlbWUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2dyb2snOlxuICAgICAgICAgICAgICAgIHJldHVybiBBbWlub2FjaWRzUGFsZXR0ZXMuR3Jva0dyb3VwcztcbiAgICAgICAgICAgIGNhc2UgJ2xlc2snOlxuICAgICAgICAgICAgICAgIHJldHVybiBBbWlub2FjaWRzUGFsZXR0ZXMuTGVzaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDaGVtUGFsZXR0ZTogc2NoZW1lIFxcYCR7c2NoZW1lfVxcYCBkb2VzIG5vdCBleGlzdGApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgZGl2aWRlZCBhbWlubyBhY2lkIHdpdGggaXRzIGNvbnRlbnQgaW4gdGhlIGJyYWNrZXQsIGlmIHRoZSBjb250ZW50IGlzIG51bWJlciwgdGhlbiBpdHMgb21pdHRlZFxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGMgcmF3IGFtaW5vXG4gICAgICogQHJldHVybiB7W3N0cmluZywgc3RyaW5nXX0gb3V0ZXIgYW5kIGlubmVyIGNvbnRlbnRcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0SW5uZXJPdXRlcihjKSB7XG4gICAgICAgIGxldCBpc0lubmVyID0gMDtcbiAgICAgICAgbGV0IGlubmVyID0gJyc7XG4gICAgICAgIGxldCBvdXRlciA9ICcnO1xuICAgICAgICBmb3IgKGNvbnN0IGNoYXIgb2YgYykge1xuICAgICAgICAgICAgaWYgKGNoYXIgPT0gJygnKVxuICAgICAgICAgICAgICAgIGlzSW5uZXIrKztcbiAgICAgICAgICAgIGVsc2UgaWYgKGNoYXIgPT0gJyknKVxuICAgICAgICAgICAgICAgIGlzSW5uZXItLTtcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzSW5uZXIpXG4gICAgICAgICAgICAgICAgaW5uZXIgKz0gY2hhcjtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBvdXRlciArPSBjaGFyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhaXNOYU4ocGFyc2VJbnQoaW5uZXIpKSA/IFtvdXRlciwgJyddIDogW291dGVyLCBpbm5lcl07XG4gICAgfVxuICAgIHN0YXRpYyBnZXRDb2xvckFBUGl2b3QobW9ub21lciA9ICcnLCBzY2hlbWUgPSAnZ3JvaycpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIC8vY29uc3QgY2hlbVBhbGV0dGVJbnN0YW5jZSA9IEFBUGFsZXR0ZXMuR3Jva0dyb3VwcygpO1xuICAgICAgICBjb25zdCBjaGVtUGFsZXR0ZUluc3RhbmNlID0gdGhpcy5nZXRQYWxldHRlKHNjaGVtZSk7XG4gICAgICAgIGxldCBbb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXJdID0gdGhpcy5nZXRJbm5lck91dGVyKG1vbm9tZXIpO1xuICAgICAgICBvdXRlck1vbm9tZXIgPSAob3V0ZXJNb25vbWVyLmxlbmd0aCA+IDYgPyBgJHtvdXRlck1vbm9tZXIuc2xpY2UoMCwgMyl9Li4uYCA6IG91dGVyTW9ub21lcik7XG4gICAgICAgIGlubmVyTW9ub21lciA9IChpbm5lck1vbm9tZXIubGVuZ3RoID4gNiA/IGAke2lubmVyTW9ub21lci5zbGljZSgwLCAzKX0uLi5gIDogaW5uZXJNb25vbWVyKTtcbiAgICAgICAgaWYgKG1vbm9tZXIubGVuZ3RoID09IDEgfHwgbW9ub21lclsxXSA9PSAnKCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGFtaW5vID0gKF9hID0gbW9ub21lclswXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICByZXR1cm4gYW1pbm8gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSA/XG4gICAgICAgICAgICAgICAgW2NoZW1QYWxldHRlSW5zdGFuY2UuZ2V0KGFtaW5vKSwgYW1pbm8sIGlubmVyTW9ub21lciwgMV0gOlxuICAgICAgICAgICAgICAgIFt0aGlzLnVuZGVmaW5lZENvbG9yLCBvdXRlck1vbm9tZXIsIGlubmVyTW9ub21lciwgMV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1vbm9tZXJbMF0gPT0gJ2QnICYmIG1vbm9tZXJbMV0gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSkge1xuICAgICAgICAgICAgaWYgKG1vbm9tZXIubGVuZ3RoID09IDIgfHwgbW9ub21lclsyXSA9PSAnKCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhbWlubyA9IChfYiA9IG1vbm9tZXJbMV0pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBhbWlubyBpbiBjaGVtUGFsZXR0ZUluc3RhbmNlID9cbiAgICAgICAgICAgICAgICAgICAgW2NoZW1QYWxldHRlSW5zdGFuY2UuZ2V0KGFtaW5vKSwgYW1pbm8sIGlubmVyTW9ub21lciwgMl0gOlxuICAgICAgICAgICAgICAgICAgICBbdGhpcy51bmRlZmluZWRDb2xvciwgb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXIsIDJdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtb25vbWVyLnN1YnN0cmluZygwLCAzKSBpbiB0aGlzLkFBRnVsbE5hbWVzKSB7XG4gICAgICAgICAgICBpZiAobW9ub21lci5sZW5ndGggPT0gMyB8fCBtb25vbWVyWzNdID09ICcoJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFtaW5vID0gdGhpcy5BQUZ1bGxOYW1lc1ttb25vbWVyLnN1YnN0cmluZygwLCAzKV07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFtaW5vIGluIGNoZW1QYWxldHRlSW5zdGFuY2UgP1xuICAgICAgICAgICAgICAgICAgICBbY2hlbVBhbGV0dGVJbnN0YW5jZS5nZXQoYW1pbm8pLCBhbWlubywgaW5uZXJNb25vbWVyLCAzXSA6XG4gICAgICAgICAgICAgICAgICAgIFt0aGlzLnVuZGVmaW5lZENvbG9yLCBvdXRlck1vbm9tZXIsIGlubmVyTW9ub21lciwgM107XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCgoX2MgPSBtb25vbWVyWzBdKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MudG9Mb3dlckNhc2UoKSkgPT0gbW9ub21lclswXSkge1xuICAgICAgICAgICAgaWYgKG1vbm9tZXIuc3Vic3RyaW5nKDEsIDMpIGluIHRoaXMuQUFGdWxsTmFtZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAobW9ub21lci5sZW5ndGggPT0gNCB8fCBtb25vbWVyWzRdID09ICcoJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhbWlubyA9IHRoaXMuQUFGdWxsTmFtZXNbbW9ub21lci5zdWJzdHJpbmcoMSwgMyldO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYW1pbm8gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlbVBhbGV0dGVJbnN0YW5jZS5nZXQoYW1pbm8pLCBhbWlubywgaW5uZXJNb25vbWVyLCA0XSA6XG4gICAgICAgICAgICAgICAgICAgICAgICBbdGhpcy51bmRlZmluZWRDb2xvciwgb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXIsIDRdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3RoaXMudW5kZWZpbmVkQ29sb3IsIG91dGVyTW9ub21lciwgaW5uZXJNb25vbWVyLCAwXTtcbiAgICB9XG59XG5BbWlub2FjaWRzLlNlbVR5cGUgPSAnQW1pbm9hY2lkcyc7XG5BbWlub2FjaWRzLlNlbVR5cGVNdWx0aXBsZUFsaWdubWVudCA9ICdBbWlub2FjaWRzTXVsdGlwbGVBbGlnbm1lbnQnO1xuQW1pbm9hY2lkcy51bmRlZmluZWRDb2xvciA9ICdyZ2IoMTAwLDEwMCwxMDApJztcbkFtaW5vYWNpZHMuTmFtZXMgPSB7XG4gICAgJ0cnOiAnR2x5Y2luZScsXG4gICAgJ0wnOiAnTGV1Y2luZScsXG4gICAgJ1knOiAnVHlyb3NpbmUnLFxuICAgICdTJzogJ1NlcmluZScsXG4gICAgJ0UnOiAnR2x1dGFtaWMgYWNpZCcsXG4gICAgJ1EnOiAnR2x1dGFtaW5lJyxcbiAgICAnRCc6ICdBc3BhcnRpYyBhY2lkJyxcbiAgICAnTic6ICdBc3BhcmFnaW5lJyxcbiAgICAnRic6ICdQaGVueWxhbGFuaW5lJyxcbiAgICAnQSc6ICdBbGFuaW5lJyxcbiAgICAnSyc6ICdMeXNpbmUnLFxuICAgICdSJzogJ0FyZ2luaW5lJyxcbiAgICAnSCc6ICdIaXN0aWRpbmUnLFxuICAgICdDJzogJ0N5c3RlaW5lJyxcbiAgICAnVic6ICdWYWxpbmUnLFxuICAgICdQJzogJ1Byb2xpbmUnLFxuICAgICdXJzogJ1RyeXB0b3BoYW4nLFxuICAgICdJJzogJ0lzb2xldWNpbmUnLFxuICAgICdNJzogJ01ldGhpb25pbmUnLFxuICAgICdUJzogJ1RocmVvbmluZScsXG59O1xuQW1pbm9hY2lkcy5BQVNtaWxlcyA9IHtcbiAgICAnRyc6ICdOQ0MoPU8pTycsXG4gICAgJ0wnOiAnTltDQEhdKENDKEMpQylDKD1PKU8nLFxuICAgICdZJzogJ05DKENDMT1DQz1DKE8pQz1DMSlDKD1PKU8nLFxuICAgICdTJzogJ05DKENPKUMoPU8pTycsXG4gICAgJ0UnOiAnTltDQEBIXShDQ0MoTyk9TylDKD1PKU8nLFxuICAgICdRJzogJ05bQ0BASF0oQ0NDKE4pPU8pQyg9TylPJyxcbiAgICAnRCc6ICdOW0NAQEhdKENDKE8pPU8pQyg9TylPJyxcbiAgICAnTic6ICdOW0NAQEhdKENDKE4pPU8pQyg9TylPJyxcbiAgICAnRic6ICdOQyhDQzE9Q0M9Q0M9QzEpQyg9TylPJyxcbiAgICAnQSc6ICdOW0NASF0oQylDKD1PKU8nLFxuICAgICdLJzogJ05DKENDQ0NOKUMoPU8pTycsXG4gICAgJ1InOiAnTltDQEhdKENDQ05DKD1OKUMpQyg9TylPJyxcbiAgICAnSCc6ICdOQyhDQzE9Q049Q1tOXTEpQyg9TylPJyxcbiAgICAnQyc6ICdOW0NAQEhdKENTKUMoPU8pTycsXG4gICAgJ1YnOiAnTkMoQyhDKUMpQyg9TylPJyxcbiAgICAnUCc6ICdOKENDQzEpQzFDKD1PKU8nLFxuICAgICdXJzogJ05bQ0BASF0oQ2MxYzJjY2NjYzJuKFtIXSljMSlDKD1PKU8nLFxuICAgICdJJzogJ05bQ0BIXShbQ0BIXShDKUNDKUMoPU8pTycsXG4gICAgJ00nOiAnTkMoQ0NTQylDKD1PKU8nLFxuICAgICdUJzogJ05DKEMoTylDKUMoPU8pTycsXG59O1xuQW1pbm9hY2lkcy5BQVNtaWxlc1RydW5jYXRlZCA9IHtcbiAgICAnRyc6ICcqQyonLFxuICAgICdMJzogJ0NDKEMpQ1tDQEhdKCopKicsXG4gICAgJ1knOiAnQzE9Q0MoPUNDPUMxQ0MoKikqKU8nLFxuICAgICdTJzogJ09DQygqKUMqJyxcbiAgICAnRSc6ICcqW0NAQEhdKENDQyhPKT1PKSonLFxuICAgICdRJzogJypOW0NAQEhdKENDQyhOKT1PKSonLFxuICAgICdEJzogJypbQ0BASF0oQ0MoTyk9TykqJyxcbiAgICAnTic6ICcqW0NAQEhdKENDKE4pPU8pKicsXG4gICAgJ0YnOiAnQzE9Q0M9QyhDPUMxKUNDKCopKicsXG4gICAgJ0EnOiAnQ1tDQEhdKCopKicsXG4gICAgJ0snOiAnQyhDQ04pQ0MoKikqJyxcbiAgICAnUic6ICcqW0NASF0oQ0NDTkMoPU4pQykqJyxcbiAgICAnSCc6ICdDMT1DKE5DPU4xKUNDKCopKicsXG4gICAgJ0MnOiAnQyhbQ0BASF0oKikqKVMnLFxuICAgICdWJzogJ0NDKEMpQygqKSonLFxuICAgICdQJzogJ0MxQ0NOKCopQzEqJyxcbiAgICAnVyc6ICcqW0NAQEhdKENjMWMyY2NjY2MybihbSF0pYzEpKicsXG4gICAgJ0knOiAnQ0NbQ0BIXShDKVtDQEhdKCopKicsXG4gICAgJ00nOiAnQ1NDQ0MoKikqJyxcbiAgICAnVCc6ICdDQyhPKUMoKikqJyxcbn07XG4vKiogVE9ETzogRnVsbD9cbiAqL1xuQW1pbm9hY2lkcy5BQUZ1bGxOYW1lcyA9IHtcbiAgICAnQWxhJzogJ0EnLFxuICAgICdBcmcnOiAnUicsXG4gICAgJ0Fzbic6ICdOJyxcbiAgICAnQXNwJzogJ0QnLFxuICAgICdDeXMnOiAnQycsXG4gICAgJ0dsbic6ICdRJyxcbiAgICAnR2x1JzogJ0UnLFxuICAgICdHbHknOiAnRycsXG4gICAgJ0hpcyc6ICdIJyxcbiAgICAnSWxlJzogJ0knLFxuICAgICdMZXUnOiAnTCcsXG4gICAgJ0x5cyc6ICdLJyxcbiAgICAnTWV0JzogJ00nLFxuICAgICdQaGUnOiAnRicsXG4gICAgJ1Bybyc6ICdQJyxcbiAgICAnU2VyJzogJ1MnLFxuICAgICdUaHInOiAnVCcsXG4gICAgJ1RycCc6ICdXJyxcbiAgICAnVHlyJzogJ1knLFxuICAgICdWYWwnOiAnVicsXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWVcxcGJtOWhZMmxrY3k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbUZ0YVc1dllXTnBaSE11ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlMwRXNUMEZCVHl4RlFVRmhMR05CUVdNc1JVRkJReXhOUVVGTkxHZENRVUZuUWl4RFFVRkRPMEZCUlRGRUxFMUJRVTBzVDBGQlR5eHJRa0ZCYlVJc1UwRkJVU3hqUVVGak8wbEJSemRETEUxQlFVMHNTMEZCU3l4SlFVRkpPMUZCUTNCQ0xFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NTMEZCU3l4TFFVRkxMRU5CUVVNc1JVRkJSVHRaUVVONFFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU03WjBKQlF6TkNMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hSUVVGUkxFTkJRVU03WjBKQlEyaERMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxGZEJRVmNzUTBGQlF6dG5Ra0ZETlVRc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1UwRkJVeXhEUVVGRE8yZENRVU0xUWl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEV0QlFVc3NRMEZCUXp0blFrRkRia0lzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hWUVVGVkxFTkJRVU03WVVGRGVrSXNSVUZCUlN4TFFVRkxMRVZCUVVVc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXp0VFFVTXZRanRSUVVORUxFOUJRVThzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXp0SlFVTnVRaXhEUVVGRE8wbEJTVTBzVFVGQlRTeExRVUZMTEZWQlFWVTdVVUZETVVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVlVGQlZTeExRVUZMTEV0QlFVc3NRMEZCUXl4RlFVRkZPMWxCUXpsQ0xFbEJRVWtzUTBGQlF5eFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJRenRuUWtGRGFrTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeFJRVUZSTEVOQlFVTTdaMEpCUTNSQ0xFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1MwRkJTeXhEUVVGRE8yZENRVU51UWl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRmRCUVZjc1EwRkJRenRuUWtGRGRrUXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNXVUZCV1N4RFFVRkRPMmRDUVVNdlFpeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxGZEJRVmNzUTBGQlF6dG5Ra0ZEZWtJc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxGRkJRVkVzUTBGQlF6dGhRVU5xUXl4RlFVRkZMRXRCUVVzc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXl4RFFVRkRPMU5CUXk5Q08xRkJRMFFzVDBGQlR5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRPMGxCUTNwQ0xFTkJRVU03U1VGSlRTeE5RVUZOTEV0QlFVc3NUVUZCVFR0UlFVTjBRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEV0QlFVc3NTMEZCU3l4RFFVRkRMRVZCUVVVN1dVRkRNVUlzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4SlFVRkpMR3RDUVVGclFpeERRVUZETzJkQ1FVTnVReXg1UkVGQmVVUTdaMEpCUTNwRUxFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEZGQlFWRXNSVUZCUlN4VFFVRlRPMkZCUTNCQ0xFTkJRVU1zUTBGQlF6dFRRVU5LTzFGQlEwUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8wbEJRM0pDTEVOQlFVTTdRMEZEUmp0QlFVVkVMRTFCUVUwc1QwRkJUeXhWUVVGVk8wbEJjVWRrTEUxQlFVMHNRMEZCUXl4VlFVRlZMRU5CUVVNc1UwRkJhVUlzVFVGQlRUdFJRVU01UXl4UlFVRlJMRTFCUVUwc1JVRkJSVHRaUVVOb1FpeExRVUZMTEUxQlFVMDdaMEpCUTFRc1QwRkJUeXhyUWtGQmEwSXNRMEZCUXl4VlFVRlZMRU5CUVVNN1dVRkRka01zUzBGQlN5eE5RVUZOTzJkQ1FVTlVMRTlCUVU4c2EwSkJRV3RDTEVOQlFVTXNTVUZCU1N4RFFVRkRPMWxCUTJwRE8yZENRVU5GTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc2VVSkJRWGxDTEUxQlFVMHNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dFRRVU55UlR0SlFVTklMRU5CUVVNN1NVRkZSRHM3T3pzN1QwRkxSenRKUVVOSkxFMUJRVTBzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCVXp0UlFVTnVReXhKUVVGSkxFOUJRVThzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEYUVJc1NVRkJTU3hMUVVGTExFZEJRVWNzUlVGQlJTeERRVUZETzFGQlEyWXNTVUZCU1N4TFFVRkxMRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJSV1lzUzBGQlN5eE5RVUZOTEVsQlFVa3NTVUZCU1N4RFFVRkRMRVZCUVVVN1dVRkRjRUlzU1VGQlNTeEpRVUZKTEVsQlFVa3NSMEZCUnp0blFrRkRZaXhQUVVGUExFVkJRVVVzUTBGQlF6dHBRa0ZEVUN4SlFVRkpMRWxCUVVrc1NVRkJTU3hIUVVGSE8yZENRVU5zUWl4UFFVRlBMRVZCUVVVc1EwRkJRenRwUWtGRFVDeEpRVUZKTEU5QlFVODdaMEpCUTJRc1MwRkJTeXhKUVVGSkxFbEJRVWtzUTBGQlF6czdaMEpCUldRc1MwRkJTeXhKUVVGSkxFbEJRVWtzUTBGQlF6dFRRVU5xUWp0UlFVVkVMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0SlFVTm9SU3hEUVVGRE8wbEJSVTBzVFVGQlRTeERRVUZETEdWQlFXVXNRMEZCUXl4VlFVRnJRaXhGUVVGRkxFVkJRVVVzVTBGQmFVSXNUVUZCVFRzN1VVRkRla1VzYzBSQlFYTkVPMUZCUTNSRUxFMUJRVTBzYlVKQlFXMUNMRWRCUVVjc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTndSQ3hKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTEZsQlFWa3NRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZETDBRc1dVRkJXU3hIUVVGSExFTkJRVU1zV1VGQldTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzV1VGQldTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkRNMFlzV1VGQldTeEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03VVVGRk0wWXNTVUZCU1N4UFFVRlBMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zU1VGQlNTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1IwRkJSeXhGUVVGRk8xbEJRelZETEUxQlFVMHNTMEZCU3l4SFFVRkhMRTFCUVVFc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5d3dRMEZCUlN4WFFVRlhMRVZCUVVjc1EwRkJRenRaUVVONlF5eFBRVUZQTEV0QlFVc3NTVUZCU1N4dFFrRkJiVUlzUTBGQlF5eERRVUZETzJkQ1FVTnVReXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeExRVUZMTEVWQlFVVXNXVUZCV1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlF6RkVMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV01zUlVGQlJTeFpRVUZaTEVWQlFVVXNXVUZCV1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xTkJRM2hFTzFGQlJVUXNTVUZCU1N4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUjBGQlJ5eEpRVUZKTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVVc1NVRkJTU3h0UWtGQmJVSXNSVUZCUlR0WlFVTXpSQ3hKUVVGSkxFOUJRVThzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4SlFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEhRVUZITEVWQlFVVTdaMEpCUXpWRExFMUJRVTBzUzBGQlN5eEhRVUZITEUxQlFVRXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXd3UTBGQlJTeFhRVUZYTEVWQlFVY3NRMEZCUXp0blFrRkRla01zVDBGQlR5eExRVUZMTEVsQlFVa3NiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dHZRa0ZEYmtNc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUzBGQlN5eEZRVUZGTEZsQlFWa3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU14UkN4RFFVRkRMRWxCUVVrc1EwRkJReXhqUVVGakxFVkJRVVVzV1VGQldTeEZRVUZGTEZsQlFWa3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRoUVVONFJEdFRRVU5HTzFGQlJVUXNTVUZCU1N4UFFVRlBMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1YwRkJWeXhGUVVGRk8xbEJReTlETEVsQlFVa3NUMEZCVHl4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFbEJRVWtzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRWRCUVVjc1JVRkJSVHRuUWtGRE5VTXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTjRSQ3hQUVVGUExFdEJRVXNzU1VGQlNTeHRRa0ZCYlVJc1EwRkJReXhEUVVGRE8yOUNRVU51UXl4RFFVRkRMRzFDUVVGdFFpeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hMUVVGTExFVkJRVVVzV1VGQldTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRekZFTEVOQlFVTXNTVUZCU1N4RFFVRkRMR05CUVdNc1JVRkJSU3haUVVGWkxFVkJRVVVzV1VGQldTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMkZCUTNoRU8xTkJRMFk3VVVGRlJDeEpRVUZKTEVOQlFVRXNUVUZCUVN4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExEQkRRVUZGTEZkQlFWY3NSVUZCUlN4TFFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJUdFpRVU16UXl4SlFVRkpMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVU3WjBKQlF5OURMRWxCUVVrc1QwRkJUeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEVsQlFVa3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFZEJRVWNzUlVGQlJUdHZRa0ZETlVNc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMjlDUVVONFJDeFBRVUZQTEV0QlFVc3NTVUZCU1N4dFFrRkJiVUlzUTBGQlF5eERRVUZETzNkQ1FVTnVReXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeExRVUZMTEVWQlFVVXNXVUZCV1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03ZDBKQlF6RkVMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV01zUlVGQlJTeFpRVUZaTEVWQlFVVXNXVUZCV1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8ybENRVU40UkR0aFFVTkdPMU5CUTBZN1VVRkZSQ3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTXNSVUZCUlN4WlFVRlpMRVZCUVVVc1dVRkJXU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6bEVMRU5CUVVNN08wRkJjRXhsTEd0Q1FVRlBMRWRCUVZjc1dVRkJXU3hEUVVGRE8wRkJSUzlDTEcxRFFVRjNRaXhIUVVGWExEWkNRVUUyUWl4RFFVRkRPMEZCUlRGRkxIbENRVUZqTEVkQlFVY3NhMEpCUVd0Q0xFTkJRVU03UVVGRk4wSXNaMEpCUVVzc1IwRkJjVUk3U1VGRGRFTXNSMEZCUnl4RlFVRkZMRk5CUVZNN1NVRkRaQ3hIUVVGSExFVkJRVVVzVTBGQlV6dEpRVU5rTEVkQlFVY3NSVUZCUlN4VlFVRlZPMGxCUTJZc1IwRkJSeXhGUVVGRkxGRkJRVkU3U1VGRFlpeEhRVUZITEVWQlFVVXNaVUZCWlR0SlFVTndRaXhIUVVGSExFVkJRVVVzVjBGQlZ6dEpRVU5vUWl4SFFVRkhMRVZCUVVVc1pVRkJaVHRKUVVOd1FpeEhRVUZITEVWQlFVVXNXVUZCV1R0SlFVTnFRaXhIUVVGSExFVkJRVVVzWlVGQlpUdEpRVU53UWl4SFFVRkhMRVZCUVVVc1UwRkJVenRKUVVOa0xFZEJRVWNzUlVGQlJTeFJRVUZSTzBsQlEySXNSMEZCUnl4RlFVRkZMRlZCUVZVN1NVRkRaaXhIUVVGSExFVkJRVVVzVjBGQlZ6dEpRVU5vUWl4SFFVRkhMRVZCUVVVc1ZVRkJWVHRKUVVObUxFZEJRVWNzUlVGQlJTeFJRVUZSTzBsQlEySXNSMEZCUnl4RlFVRkZMRk5CUVZNN1NVRkRaQ3hIUVVGSExFVkJRVVVzV1VGQldUdEpRVU5xUWl4SFFVRkhMRVZCUVVVc1dVRkJXVHRKUVVOcVFpeEhRVUZITEVWQlFVVXNXVUZCV1R0SlFVTnFRaXhIUVVGSExFVkJRVVVzVjBGQlZ6dERRVU5xUWl4RFFVRkRPMEZCUlZrc2JVSkJRVkVzUjBGQmNVSTdTVUZEZWtNc1IwRkJSeXhGUVVGRkxGVkJRVlU3U1VGRFppeEhRVUZITEVWQlFVVXNjMEpCUVhOQ08wbEJRek5DTEVkQlFVY3NSVUZCUlN3eVFrRkJNa0k3U1VGRGFFTXNSMEZCUnl4RlFVRkZMR05CUVdNN1NVRkRia0lzUjBGQlJ5eEZRVUZGTEhsQ1FVRjVRanRKUVVNNVFpeEhRVUZITEVWQlFVVXNlVUpCUVhsQ08wbEJRemxDTEVkQlFVY3NSVUZCUlN4M1FrRkJkMEk3U1VGRE4wSXNSMEZCUnl4RlFVRkZMSGRDUVVGM1FqdEpRVU0zUWl4SFFVRkhMRVZCUVVVc2QwSkJRWGRDTzBsQlF6ZENMRWRCUVVjc1JVRkJSU3hwUWtGQmFVSTdTVUZEZEVJc1IwRkJSeXhGUVVGRkxHbENRVUZwUWp0SlFVTjBRaXhIUVVGSExFVkJRVVVzTUVKQlFUQkNPMGxCUXk5Q0xFZEJRVWNzUlVGQlJTeDNRa0ZCZDBJN1NVRkROMElzUjBGQlJ5eEZRVUZGTEcxQ1FVRnRRanRKUVVONFFpeEhRVUZITEVWQlFVVXNhVUpCUVdsQ08wbEJRM1JDTEVkQlFVY3NSVUZCUlN4cFFrRkJhVUk3U1VGRGRFSXNSMEZCUnl4RlFVRkZMRzlEUVVGdlF6dEpRVU42UXl4SFFVRkhMRVZCUVVVc01FSkJRVEJDTzBsQlF5OUNMRWRCUVVjc1JVRkJSU3huUWtGQlowSTdTVUZEY2tJc1IwRkJSeXhGUVVGRkxHbENRVUZwUWp0RFFVTjJRaXhEUVVGRE8wRkJSVmtzTkVKQlFXbENMRWRCUVhGQ08wbEJRMnhFTEVkQlFVY3NSVUZCUlN4TFFVRkxPMGxCUTFZc1IwRkJSeXhGUVVGRkxHbENRVUZwUWp0SlFVTjBRaXhIUVVGSExFVkJRVVVzYzBKQlFYTkNPMGxCUXpOQ0xFZEJRVWNzUlVGQlJTeFZRVUZWTzBsQlEyWXNSMEZCUnl4RlFVRkZMRzlDUVVGdlFqdEpRVU42UWl4SFFVRkhMRVZCUVVVc2NVSkJRWEZDTzBsQlF6RkNMRWRCUVVjc1JVRkJSU3h0UWtGQmJVSTdTVUZEZUVJc1IwRkJSeXhGUVVGRkxHMUNRVUZ0UWp0SlFVTjRRaXhIUVVGSExFVkJRVVVzY1VKQlFYRkNPMGxCUXpGQ0xFZEJRVWNzUlVGQlJTeFpRVUZaTzBsQlEycENMRWRCUVVjc1JVRkJSU3hqUVVGak8wbEJRMjVDTEVkQlFVY3NSVUZCUlN4eFFrRkJjVUk3U1VGRE1VSXNSMEZCUnl4RlFVRkZMRzFDUVVGdFFqdEpRVU40UWl4SFFVRkhMRVZCUVVVc1owSkJRV2RDTzBsQlEzSkNMRWRCUVVjc1JVRkJSU3haUVVGWk8wbEJRMnBDTEVkQlFVY3NSVUZCUlN4aFFVRmhPMGxCUTJ4Q0xFZEJRVWNzUlVGQlJTd3JRa0ZCSzBJN1NVRkRjRU1zUjBGQlJ5eEZRVUZGTEhGQ1FVRnhRanRKUVVNeFFpeEhRVUZITEVWQlFVVXNWMEZCVnp0SlFVTm9RaXhIUVVGSExFVkJRVVVzV1VGQldUdERRVU5zUWl4RFFVRkRPMEZCUlVZN1IwRkRSenRCUVVOWExITkNRVUZYTEVkQlFYRkNPMGxCUXpWRExFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dEpRVU5XTEV0QlFVc3NSVUZCUlN4SFFVRkhPMGxCUTFZc1MwRkJTeXhGUVVGRkxFZEJRVWM3U1VGRFZpeExRVUZMTEVWQlFVVXNSMEZCUnp0SlFVTldMRXRCUVVzc1JVRkJSU3hIUVVGSE8wbEJRMVlzUzBGQlN5eEZRVUZGTEVkQlFVYzdTVUZEVml4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dEpRVU5XTEV0QlFVc3NSVUZCUlN4SFFVRkhPMGxCUTFZc1MwRkJTeXhGUVVGRkxFZEJRVWM3U1VGRFZpeExRVUZMTEVWQlFVVXNSMEZCUnp0SlFVTldMRXRCUVVzc1JVRkJSU3hIUVVGSE8wbEJRMVlzUzBGQlN5eEZRVUZGTEVkQlFVYzdTVUZEVml4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1EwRkRXQ3hEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElDb2dZWE1nWjNKdmF5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaM0p2YXljN1hHNXBiWEJ2Y25RZ0tpQmhjeUIxYVNCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdmRXa25PMXh1YVcxd2IzSjBJQ29nWVhNZ1JFY2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMMlJuSnp0Y2JseHVhVzF3YjNKMElIdFRkSEpwYm1kRWFXTjBhVzl1WVhKNWZTQm1jbTl0SUNkQVpHRjBZV2R5YjJzdGJHbGljbUZ5YVdWekwzVjBhV3h6TDNOeVl5OTBlWEJsTFdSbFkyeGhjbUYwYVc5dWN5YzdYRzVwYlhCdmNuUWdlMU5sY1ZCaGJHVjBkR1VzSUZObGNWQmhiR1YwZEdWQ1lYTmxmU0JtY205dElDY3VMM05sY1Mxd1lXeGxkSFJsY3ljN1hHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhNZ1pYaDBaVzVrY3lCVFpYRlFZV3hsZEhSbFFtRnpaU0I3WEc0Z0lIQnlhWFpoZEdVZ2MzUmhkR2xqSUd4bGMyczZJRk5sY1ZCaGJHVjBkR1U3WEc1Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUWdUR1Z6YXlncE9pQlRaWEZRWVd4bGRIUmxJSHRjYmlBZ0lDQnBaaUFvZEdocGN5NXNaWE5ySUQwOVBTQjJiMmxrSURBcElIdGNiaUFnSUNBZ0lIUm9hWE11YkdWemF5QTlJSFJvYVhNdWJXRnJaVkJoYkdWMGRHVW9XMXh1SUNBZ0lDQWdJQ0JiV3lkSEp5d2dKMEVuTENBblV5Y3NJQ2RVSjEwc0lDZHZjbUZ1WjJVblhTeGNiaUFnSUNBZ0lDQWdXMXNuUXljc0lDZFdKeXdnSjBrbkxDQW5UQ2NzSUNkUUp5d2dKMFluTENBbldTY3NJQ2ROSnl3Z0oxY25YU3dnSjJGc2JGOW5jbVZsYmlkZExGeHVJQ0FnSUNBZ0lDQmJXeWRPSnl3Z0oxRW5MQ0FuU0NkZExDQW5iV0ZuWlc1MFlTZGRMRnh1SUNBZ0lDQWdJQ0JiV3lkRUp5d2dKMFVuWFN3Z0ozSmxaQ2RkTEZ4dUlDQWdJQ0FnSUNCYld5ZExKeXdnSjFJblhTd2dKMkZzYkY5aWJIVmxKMTBzWEc0Z0lDQWdJQ0JkTENCbVlXeHpaU3dnUVcxcGJtOWhZMmxrYzFCaGJHVjBkR1Z6S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YkdWemF6dGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdjM1JoZEdsaklHZHliMnRIY205MWNITTZJRk5sY1ZCaGJHVjBkR1U3WEc1Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUWdSM0p2YTBkeWIzVndjeWdwT2lCVFpYRlFZV3hsZEhSbElIdGNiaUFnSUNCcFppQW9kR2hwY3k1bmNtOXJSM0p2ZFhCeklEMDlQU0IyYjJsa0lEQXBJSHRjYmlBZ0lDQWdJSFJvYVhNdVozSnZhMGR5YjNWd2N5QTlJSFJvYVhNdWJXRnJaVkJoYkdWMGRHVW9XMXh1SUNBZ0lDQWdJQ0JiV3lkREp5d2dKMVVuWFN3Z0ozbGxiR3h2ZHlkZExGeHVJQ0FnSUNBZ0lDQmJXeWRISnl3Z0oxQW5YU3dnSjNKbFpDZGRMRnh1SUNBZ0lDQWdJQ0JiV3lkQkp5d2dKMVluTENBblNTY3NJQ2RNSnl3Z0owMG5MQ0FuUmljc0lDZFpKeXdnSjFjblhTd2dKMkZzYkY5bmNtVmxiaWRkTEZ4dUlDQWdJQ0FnSUNCYld5ZFNKeXdnSjBnbkxDQW5TeWRkTENBbmJHbG5hSFJmWW14MVpTZGRMRnh1SUNBZ0lDQWdJQ0JiV3lkRUp5d2dKMFVuWFN3Z0oyUmhjbXRmWW14MVpTZGRMRnh1SUNBZ0lDQWdJQ0JiV3lkVEp5d2dKMVFuTENBblRpY3NJQ2RSSjEwc0lDZHZjbUZ1WjJVblhTeGNiaUFnSUNBZ0lGMHNJR1poYkhObExDQkJiV2x1YjJGamFXUnpVR0ZzWlhSMFpYTXBPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NW5jbTlyUjNKdmRYQnpPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0J6ZEdGMGFXTWdjbUZ6VFc5c09pQlRaWEZRWVd4bGRIUmxPMXh1WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nWjJWMElGSmhjMDF2YkNncE9pQlRaWEZRWVd4bGRIUmxJSHRjYmlBZ0lDQnBaaUFvZEdocGN5NXlZWE5OYjJ3Z1BUMDlJSFp2YVdRZ01Da2dlMXh1SUNBZ0lDQWdkR2hwY3k1eVlYTk5iMndnUFNCdVpYY2dRVzFwYm05aFkybGtjMUJoYkdWMGRHVnpLSHRjYmlBZ0lDQWdJQ0FnTHk4Z2FIUjBjRG92TDJGalkyVnpMbVZ1Y3kxc2VXOXVMbVp5TDJKcGIzUnBZeTl5WVhOMGIzQXZhR1ZzY0M5amIyeHZkWEl1YUhSdFhHNGdJQ0FnSUNBZ0lDZEVKem9nSnlORk5qQkJNRUVuTENBdkx5QmhjM0FzSUdGemNHRnlkR2xqSUdGamFXUXNJR0Z6Y0Z4dUlDQWdJQ0FnSUNBblJTYzZJQ2NqUlRZd1FUQkJKeXdnTHk4Z1oyeDFMQ0JuYkhWMFlXMXBZeUJoWTJsa1hHNGdJQ0FnSUNBZ0lDZERKem9nSnlORk5rVTJNREFuTENBdkx5QmplWE1zSUdONWMzUmxhVzVsWEc0Z0lDQWdJQ0FnSUNkTkp6b2dKeU5GTmtVMk1EQW5MQ0F2THlCdFpYUXNJRzFsZEdocGIyNXBibVZjYmlBZ0lDQWdJQ0FnSjBzbk9pQW5JekUwTlVGR1JpY3NJQzh2SUd4NWN5d2diSGx6YVc1bFhHNGdJQ0FnSUNBZ0lDZFNKem9nSnlNeE5EVkJSa1luTENBdkx5QmhjbWNzSUdGeVoybHVhVzVsWEc0Z0lDQWdJQ0FnSUNkVEp6b2dKeU5HUVRrMk1EQW5MQ0F2THlCelpYSXNJSE5sY21sdVpWeHVJQ0FnSUNBZ0lDQW5WQ2M2SUNjalJrRTVOakF3Snl3Z0x5OGdkR2h5TENCMGFISmxiMjVwYm1WY2JpQWdJQ0FnSUNBZ0owWW5PaUFuSXpNeU16SkJRU2NzSUM4dklIQm9aU3dnY0dobGJubHNZV3hoYm1sdVpWeHVJQ0FnSUNBZ0lDQW5XU2M2SUNjak16SXpNa0ZCSnl3Z0x5OGdkSGx5TENCMGVYSnZjMmx1WlZ4dUlDQWdJQ0FnSUNBblRpYzZJQ2NqTURCRVEwUkRKeXdnTHk4Z1lYTnVMQ0JoYzNCaGNtRm5hVzVsWEc0Z0lDQWdJQ0FnSUNkUkp6b2dKeU13TUVSRFJFTW5MQ0F2THlCbmJHNHNJR2RzZFhSaGJXbHVaVnh1SUNBZ0lDQWdJQ0FuUnljNklDY2pSVUpGUWtWQ0p5d2dMeThnWjJ4NUxDQm5iSGxqYVc1bFhHNGdJQ0FnSUNBZ0lDZE1Kem9nSnlNd1JqZ3lNRVluTENBdkx5QnNaWFVzSUd4bGRXTnBibVZjYmlBZ0lDQWdJQ0FnSjFZbk9pQW5JekJHT0RJd1JpY3NJQzh2SUhaaGJDd2dkbUZzYVc1bFhHNGdJQ0FnSUNBZ0lDZEpKem9nSnlNd1JqZ3lNRVluTENBdkx5QnBiR1VzSUdsemIyeGxkV05wYm1WY2JpQWdJQ0FnSUNBZ0owRW5PaUFuSTBNNFF6aERPQ2NzSUM4dklHRnNZU3dnWVd4aGJtbHVaVnh1SUNBZ0lDQWdJQ0FuVnljNklDY2pRalExUVVJMEp5d2dMeThnZEhKd0xDQjBjbmx3ZEc5d2FHRnVYRzRnSUNBZ0lDQWdJQ2RJSnpvZ0p5TTRNamd5UkRJbkxDQXZMeUJvYVhNc0lHaHBjM1JwWkdsdVpWeHVJQ0FnSUNBZ0lDQW5VQ2M2SUNjalJFTTVOamd5Snl3Z0x5OGdjSEp2TENCd2NtOXNhVzVsWEc0Z0lDQWdJQ0FnSUNkdmRHaGxjbk1uT2lBbkkwSkZRVEEyUlNjc1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWNtRnpUVzlzTzF4dUlDQjlYRzU5WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJCYldsdWIyRmphV1J6SUh0Y2JpQWdjM1JoZEdsaklISmxZV1J2Ym14NUlGTmxiVlI1Y0dVNklITjBjbWx1WnlBOUlDZEJiV2x1YjJGamFXUnpKenRjYmx4dUlDQnpkR0YwYVdNZ2NtVmhaRzl1YkhrZ1UyVnRWSGx3WlUxMWJIUnBjR3hsUVd4cFoyNXRaVzUwT2lCemRISnBibWNnUFNBblFXMXBibTloWTJsa2MwMTFiSFJwY0d4bFFXeHBaMjV0Wlc1MEp6dGNibHh1SUNCemRHRjBhV01nZFc1a1pXWnBibVZrUTI5c2IzSWdQU0FuY21kaUtERXdNQ3d4TURBc01UQXdLU2M3WEc1Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCT1lXMWxjem9nVTNSeWFXNW5SR2xqZEdsdmJtRnllU0E5SUh0Y2JpQWdJQ0FuUnljNklDZEhiSGxqYVc1bEp5eGNiaUFnSUNBblRDYzZJQ2RNWlhWamFXNWxKeXhjYmlBZ0lDQW5XU2M2SUNkVWVYSnZjMmx1WlNjc1hHNGdJQ0FnSjFNbk9pQW5VMlZ5YVc1bEp5eGNiaUFnSUNBblJTYzZJQ2RIYkhWMFlXMXBZeUJoWTJsa0p5eGNiaUFnSUNBblVTYzZJQ2RIYkhWMFlXMXBibVVuTEZ4dUlDQWdJQ2RFSnpvZ0owRnpjR0Z5ZEdsaklHRmphV1FuTEZ4dUlDQWdJQ2RPSnpvZ0owRnpjR0Z5WVdkcGJtVW5MRnh1SUNBZ0lDZEdKem9nSjFCb1pXNTViR0ZzWVc1cGJtVW5MRnh1SUNBZ0lDZEJKem9nSjBGc1lXNXBibVVuTEZ4dUlDQWdJQ2RMSnpvZ0oweDVjMmx1WlNjc1hHNGdJQ0FnSjFJbk9pQW5RWEpuYVc1cGJtVW5MRnh1SUNBZ0lDZElKem9nSjBocGMzUnBaR2x1WlNjc1hHNGdJQ0FnSjBNbk9pQW5RM2x6ZEdWcGJtVW5MRnh1SUNBZ0lDZFdKem9nSjFaaGJHbHVaU2NzWEc0Z0lDQWdKMUFuT2lBblVISnZiR2x1WlNjc1hHNGdJQ0FnSjFjbk9pQW5WSEo1Y0hSdmNHaGhiaWNzWEc0Z0lDQWdKMGtuT2lBblNYTnZiR1YxWTJsdVpTY3NYRzRnSUNBZ0owMG5PaUFuVFdWMGFHbHZibWx1WlNjc1hHNGdJQ0FnSjFRbk9pQW5WR2h5Wlc5dWFXNWxKeXhjYmlBZ2ZUdGNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJRUZCVTIxcGJHVnpPaUJUZEhKcGJtZEVhV04wYVc5dVlYSjVJRDBnZTF4dUlDQWdJQ2RISnpvZ0owNURReWc5VHlsUEp5eGNiaUFnSUNBblRDYzZJQ2RPVzBOQVNGMG9RME1vUXlsREtVTW9QVThwVHljc1hHNGdJQ0FnSjFrbk9pQW5Ua01vUTBNeFBVTkRQVU1vVHlsRFBVTXhLVU1vUFU4cFR5Y3NYRzRnSUNBZ0oxTW5PaUFuVGtNb1EwOHBReWc5VHlsUEp5eGNiaUFnSUNBblJTYzZJQ2RPVzBOQVFFaGRLRU5EUXloUEtUMVBLVU1vUFU4cFR5Y3NYRzRnSUNBZ0oxRW5PaUFuVGx0RFFFQklYU2hEUTBNb1RpazlUeWxES0QxUEtVOG5MRnh1SUNBZ0lDZEVKem9nSjA1YlEwQkFTRjBvUTBNb1R5azlUeWxES0QxUEtVOG5MRnh1SUNBZ0lDZE9Kem9nSjA1YlEwQkFTRjBvUTBNb1RpazlUeWxES0QxUEtVOG5MRnh1SUNBZ0lDZEdKem9nSjA1REtFTkRNVDFEUXoxRFF6MURNU2xES0QxUEtVOG5MRnh1SUNBZ0lDZEJKem9nSjA1YlEwQklYU2hES1VNb1BVOHBUeWNzWEc0Z0lDQWdKMHNuT2lBblRrTW9RME5EUTA0cFF5ZzlUeWxQSnl4Y2JpQWdJQ0FuVWljNklDZE9XME5BU0Ywb1EwTkRUa01vUFU0cFF5bERLRDFQS1U4bkxGeHVJQ0FnSUNkSUp6b2dKMDVES0VORE1UMURUajFEVzA1ZE1TbERLRDFQS1U4bkxGeHVJQ0FnSUNkREp6b2dKMDViUTBCQVNGMG9RMU1wUXlnOVR5bFBKeXhjYmlBZ0lDQW5WaWM2SUNkT1F5aERLRU1wUXlsREtEMVBLVThuTEZ4dUlDQWdJQ2RRSnpvZ0owNG9RME5ETVNsRE1VTW9QVThwVHljc1hHNGdJQ0FnSjFjbk9pQW5UbHREUUVCSVhTaERZekZqTW1OalkyTmpNbTRvVzBoZEtXTXhLVU1vUFU4cFR5Y3NYRzRnSUNBZ0owa25PaUFuVGx0RFFFaGRLRnREUUVoZEtFTXBRME1wUXlnOVR5bFBKeXhjYmlBZ0lDQW5UU2M2SUNkT1F5aERRMU5ES1VNb1BVOHBUeWNzWEc0Z0lDQWdKMVFuT2lBblRrTW9ReWhQS1VNcFF5ZzlUeWxQSnl4Y2JpQWdmVHRjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUVGQlUyMXBiR1Z6VkhKMWJtTmhkR1ZrT2lCVGRISnBibWRFYVdOMGFXOXVZWEo1SUQwZ2UxeHVJQ0FnSUNkSEp6b2dKeXBES2ljc1hHNGdJQ0FnSjB3bk9pQW5RME1vUXlsRFcwTkFTRjBvS2lrcUp5eGNiaUFnSUNBbldTYzZJQ2RETVQxRFF5ZzlRME05UXpGRFF5Z3FLU29wVHljc1hHNGdJQ0FnSjFNbk9pQW5UME5ES0NvcFF5b25MRnh1SUNBZ0lDZEZKem9nSnlwYlEwQkFTRjBvUTBOREtFOHBQVThwS2ljc1hHNGdJQ0FnSjFFbk9pQW5LazViUTBCQVNGMG9RME5ES0U0cFBVOHBLaWNzWEc0Z0lDQWdKMFFuT2lBbktsdERRRUJJWFNoRFF5aFBLVDFQS1NvbkxGeHVJQ0FnSUNkT0p6b2dKeXBiUTBCQVNGMG9RME1vVGlrOVR5a3FKeXhjYmlBZ0lDQW5SaWM2SUNkRE1UMURRejFES0VNOVF6RXBRME1vS2lrcUp5eGNiaUFnSUNBblFTYzZJQ2REVzBOQVNGMG9LaWtxSnl4Y2JpQWdJQ0FuU3ljNklDZERLRU5EVGlsRFF5Z3FLU29uTEZ4dUlDQWdJQ2RTSnpvZ0p5cGJRMEJJWFNoRFEwTk9ReWc5VGlsREtTb25MRnh1SUNBZ0lDZElKem9nSjBNeFBVTW9Ua005VGpFcFEwTW9LaWtxSnl4Y2JpQWdJQ0FuUXljNklDZERLRnREUUVCSVhTZ3FLU29wVXljc1hHNGdJQ0FnSjFZbk9pQW5RME1vUXlsREtDb3BLaWNzWEc0Z0lDQWdKMUFuT2lBblF6RkRRMDRvS2lsRE1Tb25MRnh1SUNBZ0lDZFhKem9nSnlwYlEwQkFTRjBvUTJNeFl6SmpZMk5qWXpKdUtGdElYU2xqTVNrcUp5eGNiaUFnSUNBblNTYzZJQ2REUTF0RFFFaGRLRU1wVzBOQVNGMG9LaWtxSnl4Y2JpQWdJQ0FuVFNjNklDZERVME5EUXlncUtTb25MRnh1SUNBZ0lDZFVKem9nSjBOREtFOHBReWdxS1NvbkxGeHVJQ0I5TzF4dVhHNGdJQzhxS2lCVVQwUlBPaUJHZFd4c1AxeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCQlFVWjFiR3hPWVcxbGN6b2dVM1J5YVc1blJHbGpkR2x2Ym1GeWVTQTlJSHRjYmlBZ0lDQW5RV3hoSnpvZ0owRW5MRnh1SUNBZ0lDZEJjbWNuT2lBblVpY3NYRzRnSUNBZ0owRnpiaWM2SUNkT0p5eGNiaUFnSUNBblFYTndKem9nSjBRbkxGeHVJQ0FnSUNkRGVYTW5PaUFuUXljc1hHNGdJQ0FnSjBkc2JpYzZJQ2RSSnl4Y2JpQWdJQ0FuUjJ4MUp6b2dKMFVuTEZ4dUlDQWdJQ2RIYkhrbk9pQW5SeWNzWEc0Z0lDQWdKMGhwY3ljNklDZElKeXhjYmlBZ0lDQW5TV3hsSnpvZ0owa25MRnh1SUNBZ0lDZE1aWFVuT2lBblRDY3NYRzRnSUNBZ0oweDVjeWM2SUNkTEp5eGNiaUFnSUNBblRXVjBKem9nSjAwbkxGeHVJQ0FnSUNkUWFHVW5PaUFuUmljc1hHNGdJQ0FnSjFCeWJ5YzZJQ2RRSnl4Y2JpQWdJQ0FuVTJWeUp6b2dKMU1uTEZ4dUlDQWdJQ2RVYUhJbk9pQW5WQ2NzWEc0Z0lDQWdKMVJ5Y0NjNklDZFhKeXhjYmlBZ0lDQW5WSGx5SnpvZ0oxa25MRnh1SUNBZ0lDZFdZV3duT2lBblZpY3NYRzRnSUgwN1hHNWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5Qm5aWFJRWVd4bGRIUmxLSE5qYUdWdFpUb2djM1J5YVc1bklEMGdKMmR5YjJzbktUb2dVMlZ4VUdGc1pYUjBaU0I3WEc0Z0lDQWdjM2RwZEdOb0lDaHpZMmhsYldVcElIdGNiaUFnSUNCallYTmxJQ2RuY205ckp6cGNiaUFnSUNBZ0lISmxkSFZ5YmlCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhNdVIzSnZhMGR5YjNWd2N6dGNiaUFnSUNCallYTmxJQ2RzWlhOckp6cGNiaUFnSUNBZ0lISmxkSFZ5YmlCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhNdVRHVnphenRjYmlBZ0lDQmtaV1poZFd4ME9seHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0dCRGFHVnRVR0ZzWlhSMFpUb2djMk5vWlcxbElGeGNZQ1I3YzJOb1pXMWxmVnhjWUNCa2IyVnpJRzV2ZENCbGVHbHpkR0FwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUdScGRtbGtaV1FnWVcxcGJtOGdZV05wWkNCM2FYUm9JR2wwY3lCamIyNTBaVzUwSUdsdUlIUm9aU0JpY21GamEyVjBMQ0JwWmlCMGFHVWdZMjl1ZEdWdWRDQnBjeUJ1ZFcxaVpYSXNJSFJvWlc0Z2FYUnpJRzl0YVhSMFpXUmNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJR01nY21GM0lHRnRhVzV2WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMXR6ZEhKcGJtY3NJSE4wY21sdVoxMTlJRzkxZEdWeUlHRnVaQ0JwYm01bGNpQmpiMjUwWlc1MFhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUdkbGRFbHVibVZ5VDNWMFpYSW9Zem9nYzNSeWFXNW5LVG9nVzNOMGNtbHVaeXdnYzNSeWFXNW5YU0I3WEc0Z0lDQWdiR1YwSUdselNXNXVaWElnUFNBd08xeHVJQ0FnSUd4bGRDQnBibTVsY2lBOUlDY25PMXh1SUNBZ0lHeGxkQ0J2ZFhSbGNpQTlJQ2NuTzF4dVhHNGdJQ0FnWm05eUlDaGpiMjV6ZENCamFHRnlJRzltSUdNcElIdGNiaUFnSUNBZ0lHbG1JQ2hqYUdGeUlEMDlJQ2NvSnlsY2JpQWdJQ0FnSUNBZ2FYTkpibTVsY2lzck8xeHVJQ0FnSUNBZ1pXeHpaU0JwWmlBb1kyaGhjaUE5UFNBbktTY3BYRzRnSUNBZ0lDQWdJR2x6U1c1dVpYSXRMVHRjYmlBZ0lDQWdJR1ZzYzJVZ2FXWWdLR2x6U1c1dVpYSXBYRzRnSUNBZ0lDQWdJR2x1Ym1WeUlDczlJR05vWVhJN1hHNGdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJRzkxZEdWeUlDczlJR05vWVhJN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJQ0ZwYzA1aFRpaHdZWEp6WlVsdWRDaHBibTVsY2lrcElEOGdXMjkxZEdWeUxDQW5KMTBnT2lCYmIzVjBaWElzSUdsdWJtVnlYVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdaMlYwUTI5c2IzSkJRVkJwZG05MEtHMXZibTl0WlhJNklITjBjbWx1WnlBOUlDY25MQ0J6WTJobGJXVTZJQ2RuY205ckp5QTlJQ2RuY205ckp5azZJRnR6ZEhKcGJtY3NJSE4wY21sdVp5d2djM1J5YVc1bkxDQnVkVzFpWlhKZElIdGNiaUFnSUNBdkwyTnZibk4wSUdOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJVZ1BTQkJRVkJoYkdWMGRHVnpMa2R5YjJ0SGNtOTFjSE1vS1R0Y2JpQWdJQ0JqYjI1emRDQmphR1Z0VUdGc1pYUjBaVWx1YzNSaGJtTmxJRDBnZEdocGN5NW5aWFJRWVd4bGRIUmxLSE5qYUdWdFpTazdYRzRnSUNBZ2JHVjBJRnR2ZFhSbGNrMXZibTl0WlhJc0lHbHVibVZ5VFc5dWIyMWxjbDBnUFNCMGFHbHpMbWRsZEVsdWJtVnlUM1YwWlhJb2JXOXViMjFsY2lrN1hHNGdJQ0FnYjNWMFpYSk5iMjV2YldWeUlEMGdLRzkxZEdWeVRXOXViMjFsY2k1c1pXNW5kR2dnUGlBMklEOGdZQ1I3YjNWMFpYSk5iMjV2YldWeUxuTnNhV05sS0RBc0lETXBmUzR1TG1BZ09pQnZkWFJsY2sxdmJtOXRaWElwTzF4dUlDQWdJR2x1Ym1WeVRXOXViMjFsY2lBOUlDaHBibTVsY2sxdmJtOXRaWEl1YkdWdVozUm9JRDRnTmlBL0lHQWtlMmx1Ym1WeVRXOXViMjFsY2k1emJHbGpaU2d3TENBektYMHVMaTVnSURvZ2FXNXVaWEpOYjI1dmJXVnlLVHRjYmx4dUlDQWdJR2xtSUNodGIyNXZiV1Z5TG14bGJtZDBhQ0E5UFNBeElIeDhJRzF2Ym05dFpYSmJNVjBnUFQwZ0p5Z25LU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmhiV2x1YnlBOUlHMXZibTl0WlhKYk1GMC9MblJ2VlhCd1pYSkRZWE5sS0NraE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUdGdGFXNXZJR2x1SUdOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJVZ1AxeHVJQ0FnSUNBZ0lDQmJZMmhsYlZCaGJHVjBkR1ZKYm5OMFlXNWpaUzVuWlhRb1lXMXBibThwTENCaGJXbHVieXdnYVc1dVpYSk5iMjV2YldWeUxDQXhYU0E2WEc0Z0lDQWdJQ0FnSUZ0MGFHbHpMblZ1WkdWbWFXNWxaRU52Ykc5eUxDQnZkWFJsY2sxdmJtOXRaWElzSUdsdWJtVnlUVzl1YjIxbGNpd2dNVjA3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0cxdmJtOXRaWEpiTUYwZ1BUMGdKMlFuSUNZbUlHMXZibTl0WlhKYk1WMGhJR2x1SUdOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJVcElIdGNiaUFnSUNBZ0lHbG1JQ2h0YjI1dmJXVnlMbXhsYm1kMGFDQTlQU0F5SUh4OElHMXZibTl0WlhKYk1sMGdQVDBnSnlnbktTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHRnRhVzV2SUQwZ2JXOXViMjFsY2xzeFhUOHVkRzlWY0hCbGNrTmhjMlVvS1NFN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCaGJXbHVieUJwYmlCamFHVnRVR0ZzWlhSMFpVbHVjM1JoYm1ObElEOWNiaUFnSUNBZ0lDQWdJQ0JiWTJobGJWQmhiR1YwZEdWSmJuTjBZVzVqWlM1blpYUW9ZVzFwYm04cExDQmhiV2x1Ynl3Z2FXNXVaWEpOYjI1dmJXVnlMQ0F5WFNBNlhHNGdJQ0FnSUNBZ0lDQWdXM1JvYVhNdWRXNWtaV1pwYm1Wa1EyOXNiM0lzSUc5MWRHVnlUVzl1YjIxbGNpd2dhVzV1WlhKTmIyNXZiV1Z5TENBeVhUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9iVzl1YjIxbGNpNXpkV0p6ZEhKcGJtY29NQ3dnTXlrZ2FXNGdkR2hwY3k1QlFVWjFiR3hPWVcxbGN5a2dlMXh1SUNBZ0lDQWdhV1lnS0cxdmJtOXRaWEl1YkdWdVozUm9JRDA5SURNZ2ZId2diVzl1YjIxbGNsc3pYU0E5UFNBbktDY3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZVzFwYm04Z1BTQjBhR2x6TGtGQlJuVnNiRTVoYldWelcyMXZibTl0WlhJdWMzVmljM1J5YVc1bktEQXNJRE1wWFR0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdGdGFXNXZJR2x1SUdOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJVZ1AxeHVJQ0FnSUNBZ0lDQWdJRnRqYUdWdFVHRnNaWFIwWlVsdWMzUmhibU5sTG1kbGRDaGhiV2x1Ynlrc0lHRnRhVzV2TENCcGJtNWxjazF2Ym05dFpYSXNJRE5kSURwY2JpQWdJQ0FnSUNBZ0lDQmJkR2hwY3k1MWJtUmxabWx1WldSRGIyeHZjaXdnYjNWMFpYSk5iMjV2YldWeUxDQnBibTVsY2sxdmJtOXRaWElzSUROZE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHRiMjV2YldWeVd6QmRQeTUwYjB4dmQyVnlRMkZ6WlNncElEMDlJRzF2Ym05dFpYSmJNRjBwSUh0Y2JpQWdJQ0FnSUdsbUlDaHRiMjV2YldWeUxuTjFZbk4wY21sdVp5Z3hMQ0F6S1NCcGJpQjBhR2x6TGtGQlJuVnNiRTVoYldWektTQjdYRzRnSUNBZ0lDQWdJR2xtSUNodGIyNXZiV1Z5TG14bGJtZDBhQ0E5UFNBMElIeDhJRzF2Ym05dFpYSmJORjBnUFQwZ0p5Z25LU0I3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWVcxcGJtOGdQU0IwYUdsekxrRkJSblZzYkU1aGJXVnpXMjF2Ym05dFpYSXVjM1ZpYzNSeWFXNW5LREVzSURNcFhUdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdZVzFwYm04Z2FXNGdZMmhsYlZCaGJHVjBkR1ZKYm5OMFlXNWpaU0EvWEc0Z0lDQWdJQ0FnSUNBZ0lDQmJZMmhsYlZCaGJHVjBkR1ZKYm5OMFlXNWpaUzVuWlhRb1lXMXBibThwTENCaGJXbHVieXdnYVc1dVpYSk5iMjV2YldWeUxDQTBYU0E2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmJkR2hwY3k1MWJtUmxabWx1WldSRGIyeHZjaXdnYjNWMFpYSk5iMjV2YldWeUxDQnBibTVsY2sxdmJtOXRaWElzSURSZE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUZ0MGFHbHpMblZ1WkdWbWFXNWxaRU52Ykc5eUxDQnZkWFJsY2sxdmJtOXRaWElzSUdsdWJtVnlUVzl1YjIxbGNpd2dNRjA3WEc0Z0lIMWNibjFjYmlKZGZRPT0iLCJpbXBvcnQgeyBTZXFQYWxldHRlQmFzZSB9IGZyb20gJy4vc2VxLXBhbGV0dGVzJztcbmV4cG9ydCBjbGFzcyBOdWNsZW90aWRlc1BhbGV0dGVzIGV4dGVuZHMgU2VxUGFsZXR0ZUJhc2Uge1xuICAgIHN0YXRpYyBnZXQgQ2hyb21hdG9ncmFtKCkge1xuICAgICAgICBpZiAodGhpcy5jaHJvbWF0b2dyYW0gPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgdGhpcy5jaHJvbWF0b2dyYW0gPSBuZXcgTnVjbGVvdGlkZXNQYWxldHRlcyh7XG4gICAgICAgICAgICAgICAgJ0EnOiAnZ3JlZW4nLFxuICAgICAgICAgICAgICAgICdDJzogJ2JsdWUnLFxuICAgICAgICAgICAgICAgICdHJzogJ2JsYWNrJyxcbiAgICAgICAgICAgICAgICAnVCc6ICdyZWQnLFxuICAgICAgICAgICAgICAgICdVJzogJ3JlZCcsXG4gICAgICAgICAgICAgICAgJ290aGVycyc6ICdncmF5JyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmNocm9tYXRvZ3JhbTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTnVjbGVvdGlkZXMge1xufVxuTnVjbGVvdGlkZXMuU2VtVHlwZSA9ICdOdWNsZW90aWRlcyc7XG5OdWNsZW90aWRlcy5TZW1UeXBlTXVsdGlwbGVBbGlnbm1lbnQgPSAnTnVjbGVvdGlkZXNNdWx0aXBsZUFsaWdubWVudCc7XG5OdWNsZW90aWRlcy5OYW1lcyA9IHtcbiAgICAnQSc6ICdBZGVuaW5lJyxcbiAgICAnQyc6ICdDeXRvc2luZScsXG4gICAgJ0cnOiAnR3VhbmluZScsXG4gICAgJ1QnOiAnVGh5bWluZScsXG4gICAgJ1UnOiAnVXJhY2lsJyxcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2liblZqYkdWdmRHbGtaWE11YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SnVkV05zWlc5MGFXUmxjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGTFFTeFBRVUZQTEVWQlFXRXNZMEZCWXl4RlFVRkRMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZGTVVRc1RVRkJUU3hQUVVGUExHMUNRVUZ2UWl4VFFVRlJMR05CUVdNN1NVRkhPVU1zVFVGQlRTeExRVUZMTEZsQlFWazdVVUZETlVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zV1VGQldTeExRVUZMTEV0QlFVc3NRMEZCUXl4RlFVRkZPMWxCUTJoRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NTVUZCU1N4dFFrRkJiVUlzUTBGQlF6dG5Ra0ZETVVNc1IwRkJSeXhGUVVGRkxFOUJRVTg3WjBKQlExb3NSMEZCUnl4RlFVRkZMRTFCUVUwN1owSkJRMWdzUjBGQlJ5eEZRVUZGTEU5QlFVODdaMEpCUTFvc1IwRkJSeXhGUVVGRkxFdEJRVXM3WjBKQlExWXNSMEZCUnl4RlFVRkZMRXRCUVVzN1owSkJRMVlzVVVGQlVTeEZRVUZGTEUxQlFVMDdZVUZEYWtJc1EwRkJReXhEUVVGRE8xTkJRMG83VVVGRFJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNN1NVRkRNMElzUTBGQlF6dERRVU5HTzBGQlJVUXNUVUZCVFN4UFFVRlBMRmRCUVZjN08wRkJRMDRzYlVKQlFVOHNSMEZCVnl4aFFVRmhMRU5CUVVNN1FVRkZhRU1zYjBOQlFYZENMRWRCUVZjc09FSkJRVGhDTEVOQlFVTTdRVUZGY0VVc2FVSkJRVXNzUjBGQmNVSTdTVUZEZEVNc1IwRkJSeXhGUVVGRkxGTkJRVk03U1VGRFpDeEhRVUZITEVWQlFVVXNWVUZCVlR0SlFVTm1MRWRCUVVjc1JVRkJSU3hUUVVGVE8wbEJRMlFzUjBGQlJ5eEZRVUZGTEZOQlFWTTdTVUZEWkN4SFFVRkhMRVZCUVVVc1VVRkJVVHREUVVOa0xFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnS2lCaGN5Qm5jbTlySUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5bmNtOXJKenRjYm1sdGNHOXlkQ0FxSUdGeklIVnBJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzkxYVNjN1hHNXBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1WEc1cGJYQnZjblFnZTFOMGNtbHVaMFJwWTNScGIyNWhjbmw5SUdaeWIyMGdKMEJrWVhSaFozSnZheTFzYVdKeVlYSnBaWE12ZFhScGJITXZjM0pqTDNSNWNHVXRaR1ZqYkdGeVlYUnBiMjV6Snp0Y2JtbHRjRzl5ZENCN1UyVnhVR0ZzWlhSMFpTd2dVMlZ4VUdGc1pYUjBaVUpoYzJWOUlHWnliMjBnSnk0dmMyVnhMWEJoYkdWMGRHVnpKenRjYmx4dVpYaHdiM0owSUdOc1lYTnpJRTUxWTJ4bGIzUnBaR1Z6VUdGc1pYUjBaWE1nWlhoMFpXNWtjeUJUWlhGUVlXeGxkSFJsUW1GelpTQjdYRzRnSUhCeWFYWmhkR1VnYzNSaGRHbGpJR05vY205dFlYUnZaM0poYlRvZ1UyVnhVR0ZzWlhSMFpUdGNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJR2RsZENCRGFISnZiV0YwYjJkeVlXMG9LVG9nVTJWeFVHRnNaWFIwWlNCN1hHNGdJQ0FnYVdZZ0tIUm9hWE11WTJoeWIyMWhkRzluY21GdElEMDlQU0IyYjJsa0lEQXBJSHRjYmlBZ0lDQWdJSFJvYVhNdVkyaHliMjFoZEc5bmNtRnRJRDBnYm1WM0lFNTFZMnhsYjNScFpHVnpVR0ZzWlhSMFpYTW9lMXh1SUNBZ0lDQWdJQ0FuUVNjNklDZG5jbVZsYmljc1hHNGdJQ0FnSUNBZ0lDZERKem9nSjJKc2RXVW5MRnh1SUNBZ0lDQWdJQ0FuUnljNklDZGliR0ZqYXljc0lDOHZJRzl5WVc1blpTQS9YRzRnSUNBZ0lDQWdJQ2RVSnpvZ0ozSmxaQ2NzWEc0Z0lDQWdJQ0FnSUNkVkp6b2dKM0psWkNjc1hHNGdJQ0FnSUNBZ0lDZHZkR2hsY25Nbk9pQW5aM0poZVNjc1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVkyaHliMjFoZEc5bmNtRnRPMXh1SUNCOVhHNTlYRzVjYm1WNGNHOXlkQ0JqYkdGemN5Qk9kV05zWlc5MGFXUmxjeUI3WEc0Z0lITjBZWFJwWXlCeVpXRmtiMjVzZVNCVFpXMVVlWEJsT2lCemRISnBibWNnUFNBblRuVmpiR1Z2ZEdsa1pYTW5PMXh1WEc0Z0lITjBZWFJwWXlCeVpXRmtiMjVzZVNCVFpXMVVlWEJsVFhWc2RHbHdiR1ZCYkdsbmJtMWxiblE2SUhOMGNtbHVaeUE5SUNkT2RXTnNaVzkwYVdSbGMwMTFiSFJwY0d4bFFXeHBaMjV0Wlc1MEp6dGNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJRTVoYldWek9pQlRkSEpwYm1kRWFXTjBhVzl1WVhKNUlEMGdlMXh1SUNBZ0lDZEJKem9nSjBGa1pXNXBibVVuTEZ4dUlDQWdJQ2RESnpvZ0owTjVkRzl6YVc1bEp5eGNiaUFnSUNBblJ5YzZJQ2RIZFdGdWFXNWxKeXhjYmlBZ0lDQW5WQ2M2SUNkVWFIbHRhVzVsSnl4Y2JpQWdJQ0FuVlNjNklDZFZjbUZqYVd3bkxGeHVJQ0I5TzF4dWZWeHVJbDE5IiwiZXhwb3J0IGNsYXNzIFNlcVBhbGV0dGVCYXNlIHtcbiAgICBjb25zdHJ1Y3RvcihwYWxldHRlKSB7XG4gICAgICAgIHRoaXMuX3BhbGV0dGUgPSBwYWxldHRlO1xuICAgIH1cbiAgICBzdGF0aWMgbWFrZVBhbGV0dGUoZHQsIHNpbXBsaWZpZWQgPSBmYWxzZSwgUGFsZXR0ZVR5cGUgPSBTZXFQYWxldHRlQmFzZSkge1xuICAgICAgICBjb25zdCBwYWxldHRlID0ge307XG4gICAgICAgIGR0LmZvckVhY2goKGNwKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvYmpMaXN0ID0gY3BbMF07XG4gICAgICAgICAgICBjb25zdCBjb2xvdXIgPSBjcFsxXTtcbiAgICAgICAgICAgIG9iakxpc3QuZm9yRWFjaCgob2JqLCBpbmQpID0+IHtcbiAgICAgICAgICAgICAgICBwYWxldHRlW29ial0gPSB0aGlzLmNvbG91clBhbGV0dGVbY29sb3VyXVtzaW1wbGlmaWVkID8gMCA6IGluZF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXcgUGFsZXR0ZVR5cGUocGFsZXR0ZSk7XG4gICAgfVxuICAgIGdldChtKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWxldHRlW21dO1xuICAgIH1cbn1cblNlcVBhbGV0dGVCYXNlLnVuZGVmaW5lZENvbG9yID0gJ3JnYigxMDAsMTAwLDEwMCknO1xuLyoqIFBhbGV0dGUgd2l0aCBzaGFkZXMgb2YgcHJpbWFyeSBjb2xvcnMgKi9cblNlcVBhbGV0dGVCYXNlLmNvbG91clBhbGV0dGUgPSB7XG4gICAgJ29yYW5nZSc6IFsncmdiKDI1NSwxODcsMTIwKScsICdyZ2IoMjQ1LDE2NywxMDApJywgJ3JnYigyMzUsMTM3LDcwKScsICdyZ2IoMjA1LCAxMTEsIDcxKSddLFxuICAgICdhbGxfZ3JlZW4nOiBbJ3JnYig0NCwxNjAsNDQpJywgJ3JnYig3NCwxNjAsNzQpJywgJ3JnYigyMywxMDMsNTcpJywgJ3JnYigzMCwxMTAsOTYpJywgJ3JnYig2MCwxMzEsOTUpJyxcbiAgICAgICAgJ3JnYigyNCwxMTAsNzkpJywgJ3JnYigxNTIsMjIzLDEzOCknLCAncmdiKDE4MiwgMjIzLCAxMzgpJywgJ3JnYigxNTIsIDE5MywgMTM4KSddLFxuICAgICdhbGxfYmx1ZSc6IFsncmdiKDMxLDExOSwxODApJywgJ3JnYigyMywxOTAsMjA3KScsICdyZ2IoMTIyLCAxMDIsIDE4OSknLCAncmdiKDE1OCwyMTgsMjI5KScsICdyZ2IoMTQxLCAxMjQsIDIxNyknLFxuICAgICAgICAncmdiKDMxLCAxMjAsIDE1MCknXSxcbiAgICAnbWFnZW50YSc6IFsncmdiKDE2MiwxMDYsMTkyKScsICdyZ2IoMTk3LDE2NSwyMjQpJywgJ3JnYigyMDgsMTEzLDIxOCknXSxcbiAgICAncmVkJzogWydyZ2IoMjE0LDM5LDQwKScsICdyZ2IoMjU1LDE1MiwxNTApJ10sXG4gICAgJ3N0X2JsdWUnOiBbJ3JnYigyMywxOTAsMjA3KScsICdyZ2IoMTU4LDIxOCwyMjkpJywgJ3JnYigzMSwxMTksMTgwKSddLFxuICAgICdkYXJrX2JsdWUnOiBbJ3JnYigzMSwxMTksMTgwKScsICdyZ2IoMzEsIDEyMCwgMTUwKSddLFxuICAgICdsaWdodF9ibHVlJzogWydyZ2IoMjMsMTkwLDIwNyknLCAncmdiKDE1OCwyMTgsMjI5KScsICdyZ2IoMTA4LCAyMTgsIDIyOSknLCAncmdiKDIzLDE5MCwyMjcpJ10sXG4gICAgJ2xpbGFjX2JsdWUnOiBbJ3JnYigxMjQsMTAyLDIxMSknLCAncmdiKDE0OSwxMzQsMjE3KScsICdyZ2IoOTcsIDgxLCAxNTApJ10sXG4gICAgJ2RhcmtfZ3JlZW4nOiBbJ3JnYigyMywxMDMsNTcpJywgJ3JnYigzMCwxMTAsOTYpJywgJ3JnYig2MCwxMzEsOTUpJywgJ3JnYigyNCwxMTAsNzkpJ10sXG4gICAgJ2dyZWVuJzogWydyZ2IoNDQsMTYwLDQ0KScsICdyZ2IoNzQsMTYwLDc0KSddLFxuICAgICdsaWdodF9ncmVlbic6IFsncmdiKDE1MiwyMjMsMTM4KScsICdyZ2IoMTgyLCAyMjMsIDEzOCknLCAncmdiKDE1MiwgMTkzLCAxMzgpJ10sXG4gICAgJ3N0X2dyZWVuJzogWydyZ2IoNDQsMTYwLDQ0KScsICdyZ2IoMTUyLDIyMywxMzgpJywgJ3JnYigzOSwgMTc0LCA5NiknLCAncmdiKDc0LDE2MCw3NCknXSxcbiAgICAncGluayc6IFsncmdiKDI0NywxODIsMjEwKSddLFxuICAgICdicm93bic6IFsncmdiKDE0MCw4Niw3NSknLCAncmdiKDEwMiwgNjIsIDU0KSddLFxuICAgICdncmF5JzogWydyZ2IoMTI3LDEyNywxMjcpJywgJ3JnYigxOTksMTk5LDE5OSknLCAncmdiKDE5NiwxNTYsMTQ4KScsICdyZ2IoMjIyLCAyMjIsIDE4MCknXSxcbiAgICAneWVsbG93JzogWydyZ2IoMTg4LDE4OSwzNCknXSxcbiAgICAnd2hpdGUnOiBbJ3JnYigyMzAsMjMwLDIzMCknXSxcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljMlZ4TFhCaGJHVjBkR1Z6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2ljMlZ4TFhCaGJHVjBkR1Z6TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFXbENRU3hOUVVGTkxFOUJRVThzWTBGQll6dEpRVEpEZWtJc1dVRkJXU3hQUVVGblF6dFJRVU14UXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hIUVVGSExFOUJRVThzUTBGQlF6dEpRVU14UWl4RFFVRkRPMGxCYkVKVExFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCZDBJc1JVRkRia1FzVlVGQlZTeEhRVUZITEV0QlFVc3NSVUZCUlN4alFVRnhReXhqUVVGak8xRkJSWFpGTEUxQlFVMHNUMEZCVHl4SFFVRTRRaXhGUVVGRkxFTkJRVU03VVVGRE9VTXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTzFsQlEyaENMRTFCUVUwc1QwRkJUeXhIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTjBRaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRja0lzVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJUdG5Ra0ZETTBJc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEyeEZMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMHdzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEU0N4UFFVRlBMRWxCUVVrc1YwRkJWeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlEyeERMRU5CUVVNN1NVRlJUU3hIUVVGSExFTkJRVU1zUTBGQlV6dFJRVU5zUWl4UFFVRlBMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZETVVJc1EwRkJRenM3UVVGb1JHRXNOa0pCUVdNc1IwRkJSeXhyUWtGQmEwSXNRMEZCUXp0QlFVVnNSQ3cwUTBGQk5FTTdRVUZET1VJc05FSkJRV0VzUjBGQlowTTdTVUZEZWtRc1VVRkJVU3hGUVVGRkxFTkJRVU1zYTBKQlFXdENMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzYlVKQlFXMUNMRU5CUVVNN1NVRkRNVVlzVjBGQlZ5eEZRVUZGTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzWjBKQlFXZENMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNaMEpCUVdkQ0xFVkJRVVVzWjBKQlFXZENPMUZCUTNCSExHZENRVUZuUWl4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEc5Q1FVRnZRaXhGUVVGRkxHOUNRVUZ2UWl4RFFVRkRPMGxCUTI1R0xGVkJRVlVzUlVGQlJTeERRVUZETEdsQ1FVRnBRaXhGUVVGRkxHbENRVUZwUWl4RlFVRkZMRzlDUVVGdlFpeEZRVUZGTEd0Q1FVRnJRaXhGUVVGRkxHOUNRVUZ2UWp0UlFVTXZSeXh0UWtGQmJVSXNRMEZCUXp0SlFVTjBRaXhUUVVGVExFVkJRVVVzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4clFrRkJhMElzUTBGQlF6dEpRVU4yUlN4TFFVRkxMRVZCUVVVc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4clFrRkJhMElzUTBGQlF6dEpRVU0zUXl4VFFVRlRMRVZCUVVVc1EwRkJReXhwUWtGQmFVSXNSVUZCUlN4clFrRkJhMElzUlVGQlJTeHBRa0ZCYVVJc1EwRkJRenRKUVVOeVJTeFhRVUZYTEVWQlFVVXNRMEZCUXl4cFFrRkJhVUlzUlVGQlJTeHRRa0ZCYlVJc1EwRkJRenRKUVVOeVJDeFpRVUZaTEVWQlFVVXNRMEZCUXl4cFFrRkJhVUlzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3h2UWtGQmIwSXNSVUZCUlN4cFFrRkJhVUlzUTBGQlF6dEpRVU01Uml4WlFVRlpMRVZCUVVVc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4clFrRkJhMElzUlVGQlJTeHJRa0ZCYTBJc1EwRkJRenRKUVVNeFJTeFpRVUZaTEVWQlFVVXNRMEZCUXl4blFrRkJaMElzUlVGQlJTeG5Ra0ZCWjBJc1JVRkJSU3huUWtGQlowSXNSVUZCUlN4blFrRkJaMElzUTBGQlF6dEpRVU4wUml4UFFVRlBMRVZCUVVVc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4blFrRkJaMElzUTBGQlF6dEpRVU0zUXl4aFFVRmhMRVZCUVVVc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4dlFrRkJiMElzUlVGQlJTeHZRa0ZCYjBJc1EwRkJRenRKUVVNdlJTeFZRVUZWTEVWQlFVVXNRMEZCUXl4blFrRkJaMElzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4blFrRkJaMElzUTBGQlF6dEpRVU40Uml4TlFVRk5MRVZCUVVVc1EwRkJReXhyUWtGQmEwSXNRMEZCUXp0SlFVTTFRaXhQUVVGUExFVkJRVVVzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXp0SlFVTXZReXhOUVVGTkxFVkJRVVVzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4clFrRkJhMElzUlVGQlJTeHZRa0ZCYjBJc1EwRkJRenRKUVVNeFJpeFJRVUZSTEVWQlFVVXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF6dEpRVU0zUWl4UFFVRlBMRVZCUVVVc1EwRkJReXhyUWtGQmEwSXNRMEZCUXp0RFFVTTVRaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElDb2dZWE1nWjNKdmF5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaM0p2YXljN1hHNXBiWEJ2Y25RZ0tpQmhjeUIxYVNCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdmRXa25PMXh1YVcxd2IzSjBJQ29nWVhNZ1JFY2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMMlJuSnp0Y2JseHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQlRaWEZRWVd4bGRIUmxJSHRjYmlBZ0x5OGdWR2hsY21VZ1lYSmxJSFJ2YnlCdGRXTm9JSEJ5YjJKc1pXMGdkMmwwYUNCcGJtUmxlR1Z5SUhCeWIzQmxjblI1SUdsdUlIUjVjR1Z6WTNKcGNIUXVYRzRnSUM4dklDOHFLbHh1SUNBdkx5QWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdiU0JOYjI1dmJXVnlJR05vWVhKaFkzUmxjbHh1SUNBdkx5QWdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZDlJRU52Ykc5eVhHNGdJQzh2SUNBcUwxeHVJQ0F2THlCYmJUb2djM1J5YVc1blhUb2djM1J5YVc1bk8xeHVJQ0F2S2lvZ1RXOXViMjFsY2lCamIyeHZjbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2JTQk5iMjV2YldWeVhHNGdJQ0FxTDF4dUlDQm5aWFFvYlRvZ2MzUnlhVzVuS1RvZ2MzUnlhVzVuTzF4dWZWeHVYRzVsZUhCdmNuUWdZMnhoYzNNZ1UyVnhVR0ZzWlhSMFpVSmhjMlVnYVcxd2JHVnRaVzUwY3lCVFpYRlFZV3hsZEhSbElIdGNiaUFnY0hWaWJHbGpJSE4wWVhScFl5QjFibVJsWm1sdVpXUkRiMnh2Y2lBOUlDZHlaMklvTVRBd0xERXdNQ3d4TURBcEp6dGNibHh1SUNBdktpb2dVR0ZzWlhSMFpTQjNhWFJvSUhOb1lXUmxjeUJ2WmlCd2NtbHRZWEo1SUdOdmJHOXljeUFxTDF4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUdOdmJHOTFjbEJoYkdWMGRHVTZJSHNnVzJ0bGVUb2djM1J5YVc1blhUb2djM1J5YVc1blcxMGdmU0E5SUh0Y2JpQWdJQ0FuYjNKaGJtZGxKem9nV3lkeVoySW9NalUxTERFNE55d3hNakFwSnl3Z0ozSm5ZaWd5TkRVc01UWTNMREV3TUNrbkxDQW5jbWRpS0RJek5Td3hNemNzTnpBcEp5d2dKM0puWWlneU1EVXNJREV4TVN3Z056RXBKMTBzWEc0Z0lDQWdKMkZzYkY5bmNtVmxiaWM2SUZzbmNtZGlLRFEwTERFMk1DdzBOQ2tuTENBbmNtZGlLRGMwTERFMk1DdzNOQ2tuTENBbmNtZGlLREl6TERFd015dzFOeWtuTENBbmNtZGlLRE13TERFeE1DdzVOaWtuTENBbmNtZGlLRFl3TERFek1TdzVOU2tuTEZ4dUlDQWdJQ0FnSjNKbllpZ3lOQ3d4TVRBc056a3BKeXdnSjNKbllpZ3hOVElzTWpJekxERXpPQ2tuTENBbmNtZGlLREU0TWl3Z01qSXpMQ0F4TXpncEp5d2dKM0puWWlneE5USXNJREU1TXl3Z01UTTRLU2RkTEZ4dUlDQWdJQ2RoYkd4ZllteDFaU2M2SUZzbmNtZGlLRE14TERFeE9Td3hPREFwSnl3Z0ozSm5ZaWd5TXl3eE9UQXNNakEzS1Njc0lDZHlaMklvTVRJeUxDQXhNRElzSURFNE9Ta25MQ0FuY21kaUtERTFPQ3d5TVRnc01qSTVLU2NzSUNkeVoySW9NVFF4TENBeE1qUXNJREl4TnlrbkxGeHVJQ0FnSUNBZ0ozSm5ZaWd6TVN3Z01USXdMQ0F4TlRBcEoxMHNYRzRnSUNBZ0oyMWhaMlZ1ZEdFbk9pQmJKM0puWWlneE5qSXNNVEEyTERFNU1pa25MQ0FuY21kaUtERTVOeXd4TmpVc01qSTBLU2NzSUNkeVoySW9NakE0TERFeE15d3lNVGdwSjEwc1hHNGdJQ0FnSjNKbFpDYzZJRnNuY21kaUtESXhOQ3d6T1N3ME1Da25MQ0FuY21kaUtESTFOU3d4TlRJc01UVXdLU2RkTEZ4dUlDQWdJQ2R6ZEY5aWJIVmxKem9nV3lkeVoySW9Nak1zTVRrd0xESXdOeWtuTENBbmNtZGlLREUxT0N3eU1UZ3NNakk1S1Njc0lDZHlaMklvTXpFc01URTVMREU0TUNrblhTeGNiaUFnSUNBblpHRnlhMTlpYkhWbEp6b2dXeWR5WjJJb016RXNNVEU1TERFNE1Da25MQ0FuY21kaUtETXhMQ0F4TWpBc0lERTFNQ2tuWFN4Y2JpQWdJQ0FuYkdsbmFIUmZZbXgxWlNjNklGc25jbWRpS0RJekxERTVNQ3d5TURjcEp5d2dKM0puWWlneE5UZ3NNakU0TERJeU9Ta25MQ0FuY21kaUtERXdPQ3dnTWpFNExDQXlNamtwSnl3Z0ozSm5ZaWd5TXl3eE9UQXNNakkzS1NkZExGeHVJQ0FnSUNkc2FXeGhZMTlpYkhWbEp6b2dXeWR5WjJJb01USTBMREV3TWl3eU1URXBKeXdnSjNKbllpZ3hORGtzTVRNMExESXhOeWtuTENBbmNtZGlLRGszTENBNE1Td2dNVFV3S1NkZExGeHVJQ0FnSUNka1lYSnJYMmR5WldWdUp6b2dXeWR5WjJJb01qTXNNVEF6TERVM0tTY3NJQ2R5WjJJb016QXNNVEV3TERrMktTY3NJQ2R5WjJJb05qQXNNVE14TERrMUtTY3NJQ2R5WjJJb01qUXNNVEV3TERjNUtTZGRMRnh1SUNBZ0lDZG5jbVZsYmljNklGc25jbWRpS0RRMExERTJNQ3cwTkNrbkxDQW5jbWRpS0RjMExERTJNQ3czTkNrblhTeGNiaUFnSUNBbmJHbG5hSFJmWjNKbFpXNG5PaUJiSjNKbllpZ3hOVElzTWpJekxERXpPQ2tuTENBbmNtZGlLREU0TWl3Z01qSXpMQ0F4TXpncEp5d2dKM0puWWlneE5USXNJREU1TXl3Z01UTTRLU2RkTEZ4dUlDQWdJQ2R6ZEY5bmNtVmxiaWM2SUZzbmNtZGlLRFEwTERFMk1DdzBOQ2tuTENBbmNtZGlLREUxTWl3eU1qTXNNVE00S1Njc0lDZHlaMklvTXprc0lERTNOQ3dnT1RZcEp5d2dKM0puWWlnM05Dd3hOakFzTnpRcEoxMHNYRzRnSUNBZ0ozQnBibXNuT2lCYkozSm5ZaWd5TkRjc01UZ3lMREl4TUNrblhTeGNiaUFnSUNBblluSnZkMjRuT2lCYkozSm5ZaWd4TkRBc09EWXNOelVwSnl3Z0ozSm5ZaWd4TURJc0lEWXlMQ0ExTkNrblhTeGNiaUFnSUNBblozSmhlU2M2SUZzbmNtZGlLREV5Tnl3eE1qY3NNVEkzS1Njc0lDZHlaMklvTVRrNUxERTVPU3d4T1RrcEp5d2dKM0puWWlneE9UWXNNVFUyTERFME9Da25MQ0FuY21kaUtESXlNaXdnTWpJeUxDQXhPREFwSjEwc1hHNGdJQ0FnSjNsbGJHeHZkeWM2SUZzbmNtZGlLREU0T0N3eE9Ea3NNelFwSjEwc1hHNGdJQ0FnSjNkb2FYUmxKem9nV3lkeVoySW9Nak13TERJek1Dd3lNekFwSjEwc1hHNGdJSDA3WEc1Y2JpQWdjSEp2ZEdWamRHVmtJSE4wWVhScFl5QnRZV3RsVUdGc1pYUjBaU2hrZERvZ1czTjBjbWx1WjF0ZExDQnpkSEpwYm1kZFcxMHNYRzRnSUNBZ2MybHRjR3hwWm1sbFpDQTlJR1poYkhObExDQlFZV3hsZEhSbFZIbHdaVG9nZEhsd1pXOW1JRk5sY1ZCaGJHVjBkR1ZDWVhObElEMGdVMlZ4VUdGc1pYUjBaVUpoYzJWY2JpQWdLU0I3WEc0Z0lDQWdZMjl1YzNRZ2NHRnNaWFIwWlRvZ2V5QmJhMlY1T2lCemRISnBibWRkT2lCemRISnBibWNnZlNBOUlIdDlPMXh1SUNBZ0lHUjBMbVp2Y2tWaFkyZ29LR053S1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCdlltcE1hWE4wSUQwZ1kzQmJNRjA3WEc0Z0lDQWdJQ0JqYjI1emRDQmpiMnh2ZFhJZ1BTQmpjRnN4WFR0Y2JpQWdJQ0FnSUc5aWFreHBjM1F1Wm05eVJXRmphQ2dvYjJKcUxDQnBibVFwSUQwK0lIdGNiaUFnSUNBZ0lDQWdjR0ZzWlhSMFpWdHZZbXBkSUQwZ2RHaHBjeTVqYjJ4dmRYSlFZV3hsZEhSbFcyTnZiRzkxY2wxYmMybHRjR3hwWm1sbFpDQS9JREFnT2lCcGJtUmRPMXh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdmU2s3WEc0Z0lDQWdjbVYwZFhKdUlHNWxkeUJRWVd4bGRIUmxWSGx3WlNod1lXeGxkSFJsS1R0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ2NtVmhaRzl1YkhrZ1gzQmhiR1YwZEdVNklIc2dXMjA2SUhOMGNtbHVaMTA2SUhOMGNtbHVaeUI5TzF4dVhHNGdJR052Ym5OMGNuVmpkRzl5S0hCaGJHVjBkR1U2SUhzZ1cyMDZJSE4wY21sdVoxMDZJSE4wY21sdVp5QjlLU0I3WEc0Z0lDQWdkR2hwY3k1ZmNHRnNaWFIwWlNBOUlIQmhiR1YwZEdVN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1oyVjBLRzA2SUhOMGNtbHVaeWs2SUhOMGNtbHVaeUI3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WDNCaGJHVjBkR1ZiYlYwN1hHNGdJSDFjYm4xY2JpSmRmUT09IiwiaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvdmVjdG9yLW9wZXJhdGlvbnMnO1xuY2xhc3MgU2lkZUNoYWluU2NhbGVzIHtcbiAgICBzdGF0aWMgZ2V0QXZhaWxhYmxlU2NhbGVzKCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy5zY2FsZXMpLm1hcCgoW2ssIF9dKSA9PiBrKTtcbiAgICB9XG4gICAgc3RhdGljIGdldFNjYWxlKG5hbWUpIHtcbiAgICAgICAgYXNzZXJ0KCEodGhpcy5zY2FsZXNbbmFtZV0gPT09IHVuZGVmaW5lZCksIGBTY2FsZSAnJHtuYW1lfScgd2FzIG5vdCBmb3VuZC5gKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NhbGVzW25hbWVdO1xuICAgIH1cbn1cblNpZGVDaGFpblNjYWxlcy5zY2FsZXMgPSB7XG4gICAgLy8gV2ltbGV5LVdoaXRlIGludGVyZmFjaWFsIGh5ZHJvcGhvYmljaXR5IHNjYWxlXG4gICAgJ1dpbWxleVdoaXRlJzoge1xuICAgICAgICAnLSc6IDAsXG4gICAgICAgICdBJzogMC4xNyxcbiAgICAgICAgJ0MnOiAtMC4yNCxcbiAgICAgICAgJ0QnOiAtMC4wNyxcbiAgICAgICAgJ0UnOiAtMC4wMSxcbiAgICAgICAgJ0YnOiAtMS4xMyxcbiAgICAgICAgJ0cnOiAwLjAxLFxuICAgICAgICAnSCc6IDAuMTcsXG4gICAgICAgICdJJzogLTAuMzEsXG4gICAgICAgICdLJzogMC45OSxcbiAgICAgICAgJ0wnOiAtMC41NixcbiAgICAgICAgJ00nOiAtMC4yMyxcbiAgICAgICAgJ04nOiAwLjQyLFxuICAgICAgICAnUCc6IDAuNDUsXG4gICAgICAgICdRJzogMC41OCxcbiAgICAgICAgJ1InOiAwLjgxLFxuICAgICAgICAnUyc6IDAuMTMsXG4gICAgICAgICdUJzogMC4xNCxcbiAgICAgICAgJ1YnOiAwLjA3LFxuICAgICAgICAnVyc6IC0xLjg1LFxuICAgICAgICAnWSc6IC0wLjk0LFxuICAgIH0sXG4gICAgJ2NhdGVnb3JpYWwnOiB7XG4gICAgICAgICctJzogMCxcbiAgICAgICAgJ0EnOiAxLFxuICAgICAgICAnQyc6IDIsXG4gICAgICAgICdEJzogMyxcbiAgICAgICAgJ0UnOiA0LFxuICAgICAgICAnRic6IDUsXG4gICAgICAgICdHJzogNixcbiAgICAgICAgJ0gnOiA3LFxuICAgICAgICAnSSc6IDgsXG4gICAgICAgICdLJzogOSxcbiAgICAgICAgJ0wnOiAxMCxcbiAgICAgICAgJ00nOiAxMSxcbiAgICAgICAgJ04nOiAxMixcbiAgICAgICAgJ1AnOiAxMyxcbiAgICAgICAgJ1EnOiAxNCxcbiAgICAgICAgJ1InOiAxNSxcbiAgICAgICAgJ1MnOiAxNixcbiAgICAgICAgJ1QnOiAxNyxcbiAgICAgICAgJ1YnOiAxOCxcbiAgICAgICAgJ1cnOiAxOSxcbiAgICAgICAgJ1knOiAyMCxcbiAgICB9LFxufTtcbi8qKlxuICogQ2xhc3MgdG8gY2F0ZWdvcmlhbCBlbmNvZGUvZGVjb2RlIGFsaWduZWQgYW1pbm8gYWNpZCByZXNpZHVlcyBzZXF1ZW5jZS5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgQWxpZ25lZFNlcXVlbmNlRW5jb2RlclxuICovXG5leHBvcnQgY2xhc3MgQWxpZ25lZFNlcXVlbmNlRW5jb2RlciB7XG4gICAgY29uc3RydWN0b3Ioc2NhbGUgPSAnY2F0ZWdvcmlhbCcpIHtcbiAgICAgICAgdGhpcy5hYTJudW0gPSBTaWRlQ2hhaW5TY2FsZXMuZ2V0U2NhbGUoc2NhbGUpO1xuICAgICAgICB0aGlzLm51bTJhYSA9IHt9O1xuICAgICAgICBPYmplY3QuZW50cmllcyh0aGlzLmFhMm51bSkuZm9yRWFjaCgoW2ssIHZdKSA9PiAodGhpcy5udW0yYWFbdl0gPSBrKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAgICogVHJ1bmNhdGUgTkgyIGFuZCAtQ09PSCB0ZXJtaW5hbHMgb2YgdGhlIGdpdmVuIHNlcXVlbmNlLlxuICAgICAgICpcbiAgICAgICAqIEBzdGF0aWNcbiAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZXEgVGhlIHNlcXVlbmNlIHByb3ZpZGVkLlxuICAgICAgICogQHJldHVybiB7c3RyaW5nfSBUcnVuY2F0ZWQgc2VxdWVuY2UuXG4gICAgICAgKiBAbWVtYmVyb2YgQWxpZ25lZFNlcXVlbmNlRW5jb2RlclxuICAgICAgICovXG4gICAgc3RhdGljIF90cnVuY2F0ZVNlcXVlbmNlKHNlcSkge1xuICAgICAgICBsZXQgc3RhcnQgPSAwO1xuICAgICAgICBsZXQgZW5kID0gc2VxLmxlbmd0aDtcbiAgICAgICAgY29uc3QgdGVybWluYSA9IFsnTkgyJywgJ0NPT0gnXTtcbiAgICAgICAgaWYgKHNlcS5zdGFydHNXaXRoKHRlcm1pbmFbMF0pKSB7XG4gICAgICAgICAgICBjb25zdCBsID0gdGVybWluYVswXS5sZW5ndGg7IC8vIEN1dCBvbmx5ICdOSDInIHdpdGhvdXQgZm9sbG93aW5nICctJy5cbiAgICAgICAgICAgIGFzc2VydChzZXFbbF0gPT0gJy0nLCBgV3Jvbmcgc2VxdWVuY2UgZm9ybWF0OiAke3Rlcm1pbmFbMF19IHdpdGhvdXQgZm9sbG93aW5nICctJyBpbiAnJHtzZXF9Jy5gKTtcbiAgICAgICAgICAgIHN0YXJ0ID0gbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2VxLmVuZHNXaXRoKHRlcm1pbmFbMV0pKSB7XG4gICAgICAgICAgICBjb25zdCBsID0gdGVybWluYVsxXS5sZW5ndGggKyAxOyAvLyBDdXQgYm90aCAnQ09PSCcgYW5kIHByZWNlbmRpbmcgJy0nLlxuICAgICAgICAgICAgYXNzZXJ0KHNlcVtlbmQgLSBsXSA9PSAnLScsIGBXcm9uZyBzZXF1ZW5jZSBmb3JtYXQ6ICR7dGVybWluYVsxXX0gd2l0aG91dCAnLScgcHJlY2VuZGluZyBpbiAnJHtzZXF9Jy5gKTtcbiAgICAgICAgICAgIGVuZCAtPSBsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZXEuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgICAqIEN1dHMgYXV4aWxpYXJ5IGRlZmlzZXMgYmVmb3JlIGEgcmVzaWR1ZS5cbiAgICAgICAqXG4gICAgICAgKiBAc3RhdGljXG4gICAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VxIFRoZSBzZXF1ZW5jZSB0byBwcm9jZXNzLlxuICAgICAgICogQHJldHVybiB7c3RyaW5nfSBQcm9jZXNzZWQgc2VxdWVuY2UuXG4gICAgICAgKiBAbWVtYmVyb2YgQWxpZ25lZFNlcXVlbmNlRW5jb2RlclxuICAgICAgICovXG4gICAgc3RhdGljIF9kcm9wRGVmaXNlcyhzZXEpIHtcbiAgICAgICAgcmV0dXJuIHNlcS5yZXBsYWNlKC8oLSkoW14tXSspL2csICckMicpO1xuICAgIH1cbiAgICAvKipcbiAgICAgICAqIFBlcmZvcm1zIHRydW5jYXRpb24gYW5kIGN1dHRpbmcgYXV4aWxpYXJ5IGRlZmlzZXMuXG4gICAgICAgKlxuICAgICAgICogQHN0YXRpY1xuICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHNlcXVlbmNlIFRoZSBzZXF1ZW5jZSB3b3JrIHVuZGVyIHByb2Nlc3MuXG4gICAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IFJlc3VsdCBvZiBjbGVhbmluZy5cbiAgICAgICAqIEBtZW1iZXJvZiBBbGlnbmVkU2VxdWVuY2VFbmNvZGVyXG4gICAgICAgKi9cbiAgICBzdGF0aWMgY2xlYW4oc2VxdWVuY2UpIHtcbiAgICAgICAgcmV0dXJuIEFsaWduZWRTZXF1ZW5jZUVuY29kZXIuX2Ryb3BEZWZpc2VzKEFsaWduZWRTZXF1ZW5jZUVuY29kZXIuX3RydW5jYXRlU2VxdWVuY2Uoc2VxdWVuY2UpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICAgKiBDYXRlZ29yaWFsIGVuY29kZSBvZiB0aGUgc2VxdWVuY2UgcHJvdmlkZWQuXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHNlcXVlbmNlIFRoZSBzZXF1ZW5jZS5cbiAgICAgICAqIEByZXR1cm4ge251bWJlcltdfSBFbmNvZGVkIHZlY3Rvci5cbiAgICAgICAqIEBtZW1iZXJvZiBBbGlnbmVkU2VxdWVuY2VFbmNvZGVyXG4gICAgICAgKi9cbiAgICBlbmNvZGUoc2VxdWVuY2UpIHtcbiAgICAgICAgY29uc3Qgbkl0ZW1zID0gc2VxdWVuY2UubGVuZ3RoO1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBuZXcgQXJyYXkobkl0ZW1zKS5maWxsKDApO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5JdGVtczsgKytpKSB7XG4gICAgICAgICAgICBjb25zdCBjaGFyID0gc2VxdWVuY2VbaV07XG4gICAgICAgICAgICBhc3NlcnQoY2hhciBpbiB0aGlzLmFhMm51bSwgYFVua25vd24gY2hhciAnJHtjaGFyfScgZm91bmQgaW4gc2VxdWVuY2UgJyR7c2VxdWVuY2V9J2ApO1xuICAgICAgICAgICAgdmFsdWVzW2ldID0gdGhpcy5lbmNvZGVMZXR0dGVyKGNoYXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgfVxuICAgIGVuY29kZUxldHR0ZXIobGV0dGVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFhMm51bVtsZXR0ZXJdO1xuICAgIH1cbiAgICAvKipcbiAgICAgICAqIERlY29kZSB0aGUgZW5jb2RlZCB2ZWN0b3IgaW50byB0aGUgc2VxdWVuY2UgYmFjay5cbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0ge251bWJlcltdfSB2YWx1ZSBUaGUgdmVjdG9yIGVuY29kZWQuXG4gICAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IERlY29kZWQgc2VxdWVuY2UuXG4gICAgICAgKiBAbWVtYmVyb2YgQWxpZ25lZFNlcXVlbmNlRW5jb2RlclxuICAgICAgICovXG4gICAgZGVjb2RlKHZhbHVlKSB7XG4gICAgICAgIGxldCBzID0gJyc7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvZGUgPSB2YWx1ZVtpXTtcbiAgICAgICAgICAgIGFzc2VydChjb2RlIGluIHRoaXMubnVtMmFhLCBgVW5rbm93biBjb2RlICcke2NvZGV9JyBmb3VuZCBpbiB2ZWN0b3IgJyR7dmFsdWV9J2ApO1xuICAgICAgICAgICAgcyArPSB0aGlzLm51bTJhYVtjb2RlXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcztcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljMlZ4ZFdWdVkyVXRaVzVqYjJSbGNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW5ObGNYVmxibU5sTFdWdVkyOWtaWEl1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUMEZCVHl4RlFVRkRMRTFCUVUwc1JVRkJReXhOUVVGTkxHbEVRVUZwUkN4RFFVRkRPMEZCUzNaRkxFMUJRVTBzWlVGQlpUdEpRVzFFYmtJc1RVRkJUU3hEUVVGRExHdENRVUZyUWp0UlFVTjJRaXhQUVVGUExFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjRSQ3hEUVVGRE8wbEJSVVFzVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4SlFVRlpPMUZCUXpGQ0xFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eFRRVUZUTEVOQlFVTXNSVUZCUlN4VlFVRlZMRWxCUVVrc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXp0UlFVTTNSU3hQUVVGUExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRNMElzUTBGQlF6czdRVUY2UkUwc2MwSkJRVTBzUjBGQk5rSTdTVUZEZUVNc1owUkJRV2RFTzBsQlEyaEVMR0ZCUVdFc1JVRkJSVHRSUVVOaUxFZEJRVWNzUlVGQlJTeERRVUZETzFGQlEwNHNSMEZCUnl4RlFVRkZMRWxCUVVrN1VVRkRWQ3hIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTzFGQlExWXNSMEZCUnl4RlFVRkZMRU5CUVVNc1NVRkJTVHRSUVVOV0xFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVazdVVUZEVml4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSk8xRkJRMVlzUjBGQlJ5eEZRVUZGTEVsQlFVazdVVUZEVkN4SFFVRkhMRVZCUVVVc1NVRkJTVHRSUVVOVUxFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVazdVVUZEVml4SFFVRkhMRVZCUVVVc1NVRkJTVHRSUVVOVUxFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVazdVVUZEVml4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSk8xRkJRMVlzUjBGQlJ5eEZRVUZGTEVsQlFVazdVVUZEVkN4SFFVRkhMRVZCUVVVc1NVRkJTVHRSUVVOVUxFZEJRVWNzUlVGQlJTeEpRVUZKTzFGQlExUXNSMEZCUnl4RlFVRkZMRWxCUVVrN1VVRkRWQ3hIUVVGSExFVkJRVVVzU1VGQlNUdFJRVU5VTEVkQlFVY3NSVUZCUlN4SlFVRkpPMUZCUTFRc1IwRkJSeXhGUVVGRkxFbEJRVWs3VVVGRFZDeEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpPMUZCUTFZc1IwRkJSeXhGUVVGRkxFTkJRVU1zU1VGQlNUdExRVU5ZTzBsQlEwUXNXVUZCV1N4RlFVRkZPMUZCUTFvc1IwRkJSeXhGUVVGRkxFTkJRVU03VVVGRFRpeEhRVUZITEVWQlFVVXNRMEZCUXp0UlFVTk9MRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJRMDRzUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZEVGl4SFFVRkhMRVZCUVVVc1EwRkJRenRSUVVOT0xFZEJRVWNzUlVGQlJTeERRVUZETzFGQlEwNHNSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRUaXhIUVVGSExFVkJRVVVzUTBGQlF6dFJRVU5PTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUTA0c1IwRkJSeXhGUVVGRkxFTkJRVU03VVVGRFRpeEhRVUZITEVWQlFVVXNSVUZCUlR0UlFVTlFMRWRCUVVjc1JVRkJSU3hGUVVGRk8xRkJRMUFzUjBGQlJ5eEZRVUZGTEVWQlFVVTdVVUZEVUN4SFFVRkhMRVZCUVVVc1JVRkJSVHRSUVVOUUxFZEJRVWNzUlVGQlJTeEZRVUZGTzFGQlExQXNSMEZCUnl4RlFVRkZMRVZCUVVVN1VVRkRVQ3hIUVVGSExFVkJRVVVzUlVGQlJUdFJRVU5RTEVkQlFVY3NSVUZCUlN4RlFVRkZPMUZCUTFBc1IwRkJSeXhGUVVGRkxFVkJRVVU3VVVGRFVDeEhRVUZITEVWQlFVVXNSVUZCUlR0UlFVTlFMRWRCUVVjc1JVRkJSU3hGUVVGRk8wdEJRMUk3UTBGRFJpeERRVUZETzBGQldVbzdPenM3TzBkQlMwYzdRVUZEU0N4TlFVRk5MRTlCUVU4c2MwSkJRWE5DTzBsQlNXcERMRmxCUVZrc1VVRkJaMElzV1VGQldUdFJRVU4wUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExHVkJRV1VzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRPVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRha0lzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNoRkxFTkJRVU03U1VGRlJEczdPenM3T3p0VFFVOUxPMGxCUTB3c1RVRkJUU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRWRCUVZjN1VVRkRiRU1zU1VGQlNTeExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTJRc1NVRkJTU3hIUVVGSExFZEJRVWNzUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXp0UlFVTnlRaXhOUVVGTkxFOUJRVThzUjBGQlJ5eERRVUZETEV0QlFVc3NSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVWb1F5eEpRVUZKTEVkQlFVY3NRMEZCUXl4VlFVRlZMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVTdXVUZET1VJc1RVRkJUU3hEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExIZERRVUYzUXp0WlFVTnlSU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRWRCUVVjc1JVRkJSU3d3UWtGQk1FSXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXc0UWtGQk9FSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVOcVJ5eExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRPMU5CUTFnN1VVRkRSQ3hKUVVGSkxFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVU3V1VGRE5VSXNUVUZCVFN4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNSMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXh6UTBGQmMwTTdXVUZEY2tVc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVkQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1IwRkJSeXhGUVVGRkxEQkNRVUV3UWl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExDdENRVUVyUWl4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8xbEJRM1JITEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1UwRkRWanRSUVVORUxFOUJRVThzUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGJrTXNRMEZCUXp0SlFVVkVPenM3T3pzN08xTkJUMHM3U1VGRFRDeE5RVUZOTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWRCUVZjN1VVRkROMElzVDBGQlR5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMR0ZCUVdFc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU14UXl4RFFVRkRPMGxCUlVRN096czdPenM3VTBGUFN6dEpRVU5NTEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJaMEk3VVVGRE0wSXNUMEZCVHl4elFrRkJjMElzUTBGQlF5eFpRVUZaTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5xUnl4RFFVRkRPMGxCUlVRN096czdPenRUUVUxTE8wbEJRMFVzVFVGQlRTeERRVUZETEZGQlFXZENPMUZCUXpWQ0xFMUJRVTBzVFVGQlRTeEhRVUZITEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNN1VVRkRMMElzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUlhwRExFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVTdXVUZETDBJc1RVRkJUU3hKUVVGSkxFZEJRVWNzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUlhwQ0xFMUJRVTBzUTBGQlF5eEpRVUZKTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hwUWtGQmFVSXNTVUZCU1N4M1FrRkJkMElzVVVGQlVTeEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVVjBSaXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFRRVU4wUXp0UlFVTkVMRTlCUVU4c1RVRkJUU3hEUVVGRE8wbEJRMmhDTEVOQlFVTTdTVUZGVFN4aFFVRmhMRU5CUVVNc1RVRkJZenRSUVVOcVF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRE4wSXNRMEZCUXp0SlFVVkVPenM3T3pzN1UwRk5TenRKUVVORkxFMUJRVTBzUTBGQlF5eExRVUZsTzFGQlF6TkNMRWxCUVVrc1EwRkJReXhIUVVGWExFVkJRVVVzUTBGQlF6dFJRVVZ1UWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRTFCUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJUdFpRVU55UXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZGZEVJc1RVRkJUU3hEUVVGRExFbEJRVWtzU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMR2xDUVVGcFFpeEpRVUZKTEhOQ1FVRnpRaXhMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlJXcEdMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMU5CUTNoQ08xRkJRMFFzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEV0N4RFFVRkRPME5CUTBZaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2UyRnpjMlZ5ZEgwZ1puSnZiU0FuUUdSaGRHRm5jbTlyTFd4cFluSmhjbWxsY3k5MWRHbHNjeTl6Y21NdmRtVmpkRzl5TFc5d1pYSmhkR2x2Ym5Nbk8xeHVYRzUwZVhCbElGTnBaR1ZEYUdGcGJsTmpZV3hsSUQwZ2UxdHVZVzFsT2lCemRISnBibWRkT2lCdWRXMWlaWEo5TzF4dWRIbHdaU0JUYVdSbFEyaGhhVzVUWTJGc1pVTnZiR3hsWTNScGIyNGdQU0I3VzI1aGJXVTZJSE4wY21sdVoxMDZJRk5wWkdWRGFHRnBibE5qWVd4bGZUdGNibHh1WTJ4aGMzTWdVMmxrWlVOb1lXbHVVMk5oYkdWeklIdGNiaUFnYzNSaGRHbGpJSE5qWVd4bGN6b2dVMmxrWlVOb1lXbHVVMk5oYkdWRGIyeHNaV04wYVc5dUlEMGdlMXh1SUNBZ0lDOHZJRmRwYld4bGVTMVhhR2wwWlNCcGJuUmxjbVpoWTJsaGJDQm9lV1J5YjNCb2IySnBZMmwwZVNCelkyRnNaVnh1SUNBZ0lDZFhhVzFzWlhsWGFHbDBaU2M2SUh0Y2JpQWdJQ0FnSUNjdEp6b2dNQ3hjYmlBZ0lDQWdJQ2RCSnpvZ01DNHhOeXhjYmlBZ0lDQWdJQ2RESnpvZ0xUQXVNalFzWEc0Z0lDQWdJQ0FuUkNjNklDMHdMakEzTENBdkx5QkJjM0F0T2lBeExqSXpYRzRnSUNBZ0lDQW5SU2M2SUMwd0xqQXhMQ0F2THlCSGJIVXRPaUF5TGpBeVhHNGdJQ0FnSUNBblJpYzZJQzB4TGpFekxDQXZMMXh1SUNBZ0lDQWdKMGNuT2lBd0xqQXhMRnh1SUNBZ0lDQWdKMGduT2lBd0xqRTNMQ0F2THlCSWFYTXJPaUF3TGprMlhHNGdJQ0FnSUNBblNTYzZJQzB3TGpNeExGeHVJQ0FnSUNBZ0owc25PaUF3TGprNUxDQXZMeUJNZVhNclhHNGdJQ0FnSUNBblRDYzZJQzB3TGpVMkxGeHVJQ0FnSUNBZ0owMG5PaUF0TUM0eU15eGNiaUFnSUNBZ0lDZE9Kem9nTUM0ME1peGNiaUFnSUNBZ0lDZFFKem9nTUM0ME5TeGNiaUFnSUNBZ0lDZFJKem9nTUM0MU9DeGNiaUFnSUNBZ0lDZFNKem9nTUM0NE1Td2dMeThnUVhKbksxeHVJQ0FnSUNBZ0oxTW5PaUF3TGpFekxGeHVJQ0FnSUNBZ0oxUW5PaUF3TGpFMExGeHVJQ0FnSUNBZ0oxWW5PaUF3TGpBM0xGeHVJQ0FnSUNBZ0oxY25PaUF0TVM0NE5TeGNiaUFnSUNBZ0lDZFpKem9nTFRBdU9UUXNYRzRnSUNBZ2ZTeGNiaUFnSUNBblkyRjBaV2R2Y21saGJDYzZJSHRjYmlBZ0lDQWdJQ2N0SnpvZ01DeGNiaUFnSUNBZ0lDZEJKem9nTVN4Y2JpQWdJQ0FnSUNkREp6b2dNaXhjYmlBZ0lDQWdJQ2RFSnpvZ015eGNiaUFnSUNBZ0lDZEZKem9nTkN4Y2JpQWdJQ0FnSUNkR0p6b2dOU3hjYmlBZ0lDQWdJQ2RISnpvZ05peGNiaUFnSUNBZ0lDZElKem9nTnl4Y2JpQWdJQ0FnSUNkSkp6b2dPQ3hjYmlBZ0lDQWdJQ2RMSnpvZ09TeGNiaUFnSUNBZ0lDZE1Kem9nTVRBc1hHNGdJQ0FnSUNBblRTYzZJREV4TEZ4dUlDQWdJQ0FnSjA0bk9pQXhNaXhjYmlBZ0lDQWdJQ2RRSnpvZ01UTXNYRzRnSUNBZ0lDQW5VU2M2SURFMExGeHVJQ0FnSUNBZ0oxSW5PaUF4TlN4Y2JpQWdJQ0FnSUNkVEp6b2dNVFlzWEc0Z0lDQWdJQ0FuVkNjNklERTNMRnh1SUNBZ0lDQWdKMVluT2lBeE9DeGNiaUFnSUNBZ0lDZFhKem9nTVRrc1hHNGdJQ0FnSUNBbldTYzZJREl3TEZ4dUlDQWdJSDBzWEc0Z0lIMDdYRzVjYmlBZ2MzUmhkR2xqSUdkbGRFRjJZV2xzWVdKc1pWTmpZV3hsY3lncE9pQnpkSEpwYm1kYlhTQjdYRzRnSUNBZ2NtVjBkWEp1SUU5aWFtVmpkQzVsYm5SeWFXVnpLSFJvYVhNdWMyTmhiR1Z6S1M1dFlYQW9LRnRyTENCZlhTa2dQVDRnYXlrN1hHNGdJSDFjYmx4dUlDQnpkR0YwYVdNZ1oyVjBVMk5oYkdVb2JtRnRaVG9nYzNSeWFXNW5LVG9nVTJsa1pVTm9ZV2x1VTJOaGJHVWdlMXh1SUNBZ0lHRnpjMlZ5ZENnaEtIUm9hWE11YzJOaGJHVnpXMjVoYldWZElEMDlQU0IxYm1SbFptbHVaV1FwTENCZ1UyTmhiR1VnSnlSN2JtRnRaWDBuSUhkaGN5QnViM1FnWm05MWJtUXVZQ2s3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YzJOaGJHVnpXMjVoYldWZE8xeHVJQ0I5WEc1OVhHNWNiaThxS2x4dUlDb2dRMnhoYzNNZ2RHOGdZMkYwWldkdmNtbGhiQ0JsYm1OdlpHVXZaR1ZqYjJSbElHRnNhV2R1WldRZ1lXMXBibThnWVdOcFpDQnlaWE5wWkhWbGN5QnpaWEYxWlc1alpTNWNiaUFxWEc0Z0tpQkFaWGh3YjNKMFhHNGdLaUJBWTJ4aGMzTWdRV3hwWjI1bFpGTmxjWFZsYm1ObFJXNWpiMlJsY2x4dUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1FXeHBaMjVsWkZObGNYVmxibU5sUlc1amIyUmxjaUI3WEc0Z0lIQnliM1JsWTNSbFpDQmhZVEp1ZFcwNklGTnBaR1ZEYUdGcGJsTmpZV3hsTzF4dUlDQndjbTkwWldOMFpXUWdiblZ0TW1GaE9pQjdXMk52WkdVNklHNTFiV0psY2wwNklITjBjbWx1WjMwN1hHNWNiaUFnWTI5dWMzUnlkV04wYjNJb2MyTmhiR1U2SUhOMGNtbHVaeUE5SUNkallYUmxaMjl5YVdGc0p5a2dlMXh1SUNBZ0lIUm9hWE11WVdFeWJuVnRJRDBnVTJsa1pVTm9ZV2x1VTJOaGJHVnpMbWRsZEZOallXeGxLSE5qWVd4bEtUdGNiaUFnSUNCMGFHbHpMbTUxYlRKaFlTQTlJSHQ5TzF4dUlDQWdJRTlpYW1WamRDNWxiblJ5YVdWektIUm9hWE11WVdFeWJuVnRLUzVtYjNKRllXTm9LQ2hiYXl3Z2RsMHBJRDArSUNoMGFHbHpMbTUxYlRKaFlWdDJYU0E5SUdzcEtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdJQ0FxSUZSeWRXNWpZWFJsSUU1SU1pQmhibVFnTFVOUFQwZ2dkR1Z5YldsdVlXeHpJRzltSUhSb1pTQm5hWFpsYmlCelpYRjFaVzVqWlM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdjMlZ4SUZSb1pTQnpaWEYxWlc1alpTQndjbTkyYVdSbFpDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kOUlGUnlkVzVqWVhSbFpDQnpaWEYxWlc1alpTNWNiaUFnSUNBZ0tpQkFiV1Z0WW1WeWIyWWdRV3hwWjI1bFpGTmxjWFZsYm1ObFJXNWpiMlJsY2x4dUlDQWdJQ0FxTDF4dUlDQnpkR0YwYVdNZ1gzUnlkVzVqWVhSbFUyVnhkV1Z1WTJVb2MyVnhPaUJ6ZEhKcGJtY3BPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHeGxkQ0J6ZEdGeWRDQTlJREE3WEc0Z0lDQWdiR1YwSUdWdVpDQTlJSE5sY1M1c1pXNW5kR2c3WEc0Z0lDQWdZMjl1YzNRZ2RHVnliV2x1WVNBOUlGc25Ua2d5Snl3Z0owTlBUMGduWFR0Y2JseHVJQ0FnSUdsbUlDaHpaWEV1YzNSaGNuUnpWMmwwYUNoMFpYSnRhVzVoV3pCZEtTa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2JDQTlJSFJsY20xcGJtRmJNRjB1YkdWdVozUm9PeUF2THlCRGRYUWdiMjVzZVNBblRrZ3lKeUIzYVhSb2IzVjBJR1p2Ykd4dmQybHVaeUFuTFNjdVhHNGdJQ0FnSUNCaGMzTmxjblFvYzJWeFcyeGRJRDA5SUNjdEp5d2dZRmR5YjI1bklITmxjWFZsYm1ObElHWnZjbTFoZERvZ0pIdDBaWEp0YVc1aFd6QmRmU0IzYVhSb2IzVjBJR1p2Ykd4dmQybHVaeUFuTFNjZ2FXNGdKeVI3YzJWeGZTY3VZQ2s3WEc0Z0lDQWdJQ0J6ZEdGeWRDQTlJR3c3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2h6WlhFdVpXNWtjMWRwZEdnb2RHVnliV2x1WVZzeFhTa3BJSHRjYmlBZ0lDQWdJR052Ym5OMElHd2dQU0IwWlhKdGFXNWhXekZkTG14bGJtZDBhQ3N4T3lBdkx5QkRkWFFnWW05MGFDQW5RMDlQU0NjZ1lXNWtJSEJ5WldObGJtUnBibWNnSnkwbkxseHVJQ0FnSUNBZ1lYTnpaWEowS0hObGNWdGxibVF0YkYwZ1BUMGdKeTBuTENCZ1YzSnZibWNnYzJWeGRXVnVZMlVnWm05eWJXRjBPaUFrZTNSbGNtMXBibUZiTVYxOUlIZHBkR2h2ZFhRZ0p5MG5JSEJ5WldObGJtUnBibWNnYVc0Z0p5UjdjMlZ4ZlNjdVlDazdYRzRnSUNBZ0lDQmxibVFnTFQwZ2JEdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSE5sY1M1emRXSnpkSEpwYm1jb2MzUmhjblFzSUdWdVpDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ0FnS2lCRGRYUnpJR0YxZUdsc2FXRnllU0JrWldacGMyVnpJR0psWm05eVpTQmhJSEpsYzJsa2RXVXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhObGNTQlVhR1VnYzJWeGRXVnVZMlVnZEc4Z2NISnZZMlZ6Y3k1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1SUh0emRISnBibWQ5SUZCeWIyTmxjM05sWkNCelpYRjFaVzVqWlM1Y2JpQWdJQ0FnS2lCQWJXVnRZbVZ5YjJZZ1FXeHBaMjVsWkZObGNYVmxibU5sUlc1amIyUmxjbHh1SUNBZ0lDQXFMMXh1SUNCemRHRjBhV01nWDJSeWIzQkVaV1pwYzJWektITmxjVG9nYzNSeWFXNW5LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQnlaWFIxY200Z2MyVnhMbkpsY0d4aFkyVW9MeWd0S1NoYlhpMWRLeWt2Wnl3Z0p5UXlKeWs3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNBZ0tpQlFaWEptYjNKdGN5QjBjblZ1WTJGMGFXOXVJR0Z1WkNCamRYUjBhVzVuSUdGMWVHbHNhV0Z5ZVNCa1pXWnBjMlZ6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnpaWEYxWlc1alpTQlVhR1VnYzJWeGRXVnVZMlVnZDI5eWF5QjFibVJsY2lCd2NtOWpaWE56TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTRnZTNOMGNtbHVaMzBnVW1WemRXeDBJRzltSUdOc1pXRnVhVzVuTGx4dUlDQWdJQ0FxSUVCdFpXMWlaWEp2WmlCQmJHbG5ibVZrVTJWeGRXVnVZMlZGYm1OdlpHVnlYRzRnSUNBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJqYkdWaGJpaHpaWEYxWlc1alpUb2djM1J5YVc1bktUb2djM1J5YVc1bklIdGNiaUFnSUNCeVpYUjFjbTRnUVd4cFoyNWxaRk5sY1hWbGJtTmxSVzVqYjJSbGNpNWZaSEp2Y0VSbFptbHpaWE1vUVd4cFoyNWxaRk5sY1hWbGJtTmxSVzVqYjJSbGNpNWZkSEoxYm1OaGRHVlRaWEYxWlc1alpTaHpaWEYxWlc1alpTa3BPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FnSUNvZ1EyRjBaV2R2Y21saGJDQmxibU52WkdVZ2IyWWdkR2hsSUhObGNYVmxibU5sSUhCeWIzWnBaR1ZrTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSE5sY1hWbGJtTmxJRlJvWlNCelpYRjFaVzVqWlM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1SUh0dWRXMWlaWEpiWFgwZ1JXNWpiMlJsWkNCMlpXTjBiM0l1WEc0Z0lDQWdJQ29nUUcxbGJXSmxjbTltSUVGc2FXZHVaV1JUWlhGMVpXNWpaVVZ1WTI5a1pYSmNiaUFnSUNBZ0tpOWNiaUFnY0hWaWJHbGpJR1Z1WTI5a1pTaHpaWEYxWlc1alpUb2djM1J5YVc1bktUb2diblZ0WW1WeVcxMGdlMXh1SUNBZ0lHTnZibk4wSUc1SmRHVnRjeUE5SUhObGNYVmxibU5sTG14bGJtZDBhRHRjYmlBZ0lDQmpiMjV6ZENCMllXeDFaWE1nUFNCdVpYY2dRWEp5WVhrb2JrbDBaVzF6S1M1bWFXeHNLREFwTzF4dVhHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCdVNYUmxiWE03SUNzcmFTa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ1kyaGhjaUE5SUhObGNYVmxibU5sVzJsZE8xeHVYRzRnSUNBZ0lDQmhjM05sY25Rb1kyaGhjaUJwYmlCMGFHbHpMbUZoTW01MWJTd2dZRlZ1YTI1dmQyNGdZMmhoY2lBbkpIdGphR0Z5ZlNjZ1ptOTFibVFnYVc0Z2MyVnhkV1Z1WTJVZ0p5UjdjMlZ4ZFdWdVkyVjlKMkFwTzF4dVhHNGdJQ0FnSUNCMllXeDFaWE5iYVYwZ1BTQjBhR2x6TG1WdVkyOWtaVXhsZEhSMFpYSW9ZMmhoY2lrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQjJZV3gxWlhNN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1pXNWpiMlJsVEdWMGRIUmxjaWhzWlhSMFpYSTZJSE4wY21sdVp5azZJRzUxYldKbGNpQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVZV0V5Ym5WdFcyeGxkSFJsY2wwN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDQWdLaUJFWldOdlpHVWdkR2hsSUdWdVkyOWtaV1FnZG1WamRHOXlJR2x1ZEc4Z2RHaGxJSE5sY1hWbGJtTmxJR0poWTJzdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbHRkZlNCMllXeDFaU0JVYUdVZ2RtVmpkRzl5SUdWdVkyOWtaV1F1WEc0Z0lDQWdJQ29nUUhKbGRIVnliaUI3YzNSeWFXNW5mU0JFWldOdlpHVmtJSE5sY1hWbGJtTmxMbHh1SUNBZ0lDQXFJRUJ0WlcxaVpYSnZaaUJCYkdsbmJtVmtVMlZ4ZFdWdVkyVkZibU52WkdWeVhHNGdJQ0FnSUNvdlhHNGdJSEIxWW14cFl5QmtaV052WkdVb2RtRnNkV1U2SUc1MWJXSmxjbHRkS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0JzWlhRZ2N6b2djM1J5YVc1bklEMGdKeWM3WEc1Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUhaaGJIVmxMbXhsYm1kMGFEc2dLeXRwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JqYjJSbElEMGdkbUZzZFdWYmFWMDdYRzVjYmlBZ0lDQWdJR0Z6YzJWeWRDaGpiMlJsSUdsdUlIUm9hWE11Ym5WdE1tRmhMQ0JnVlc1cmJtOTNiaUJqYjJSbElDY2tlMk52WkdWOUp5Qm1iM1Z1WkNCcGJpQjJaV04wYjNJZ0p5UjdkbUZzZFdWOUoyQXBPMXh1WEc0Z0lDQWdJQ0J6SUNzOUlIUm9hWE11Ym5WdE1tRmhXMk52WkdWZE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdjenRjYmlBZ2ZWeHVmVnh1SWwxOSIsImV4cG9ydCBjbGFzcyBTdHJpbmdVdGlscyB7XG4gICAgc3RhdGljIGhhc2hDb2RlKHMpIHtcbiAgICAgICAgbGV0IGhhc2ggPSAwO1xuICAgICAgICBpZiAocy5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm4gaGFzaDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjaHIgPSBzLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgICAgICBoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBjaHI7XG4gICAgICAgICAgICBoYXNoIHw9IDA7IC8vIENvbnZlcnQgdG8gMzJiaXQgaW50ZWdlclxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoYXNoO1xuICAgIH1cbn1cbmltcG9ydCB7IFNlcVBhbGV0dGVCYXNlIH0gZnJvbSAnLi9zZXEtcGFsZXR0ZXMnO1xuZXhwb3J0IGNsYXNzIFVua25vd25TZXFQYWxldHRlIHtcbn1cbmV4cG9ydCBjbGFzcyBHcmF5QWxsUGFsZXR0ZSBleHRlbmRzIFVua25vd25TZXFQYWxldHRlIHtcbiAgICBnZXQobSkge1xuICAgICAgICByZXR1cm4gJyM2NjY2NjYnO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBVbmtub3duQ29sb3JQYWxldHRlIGV4dGVuZHMgVW5rbm93blNlcVBhbGV0dGUge1xuICAgIHN0YXRpYyBidWlsZFBhbGV0dGUoKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IFtdLmNvbmNhdCguLi5PYmplY3QudmFsdWVzKFNlcVBhbGV0dGVCYXNlLmNvbG91clBhbGV0dGUpKTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgZ2V0KG0pIHtcbiAgICAgICAgY29uc3QgaGFzaCA9IFN0cmluZ1V0aWxzLmhhc2hDb2RlKG0pO1xuICAgICAgICBjb25zdCBwSSA9IGhhc2ggJSBVbmtub3duQ29sb3JQYWxldHRlLnBhbGV0dGUubGVuZ3RoO1xuICAgICAgICByZXR1cm4gVW5rbm93bkNvbG9yUGFsZXR0ZS5wYWxldHRlW3BJXTtcbiAgICB9XG59XG5Vbmtub3duQ29sb3JQYWxldHRlLnBhbGV0dGUgPSBVbmtub3duQ29sb3JQYWxldHRlLmJ1aWxkUGFsZXR0ZSgpO1xuZXhwb3J0IGNsYXNzIFVua25vd25TZXFQYWxldHRlcyBleHRlbmRzIFNlcVBhbGV0dGVCYXNlIHtcbiAgICBzdGF0aWMgZ2V0IEdyYXkoKSB7XG4gICAgICAgIGlmICh0aGlzLmdyYXkgPT09IHZvaWQgMClcbiAgICAgICAgICAgIHRoaXMuZ3JheSA9IG5ldyBHcmF5QWxsUGFsZXR0ZSgpO1xuICAgICAgICByZXR1cm4gdGhpcy5ncmF5O1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IENvbG9yKCkge1xuICAgICAgICBpZiAodGhpcy5jb2xvciA9PT0gdm9pZCAwKVxuICAgICAgICAgICAgdGhpcy5jb2xvciA9IG5ldyBVbmtub3duQ29sb3JQYWxldHRlKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbG9yO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRXNXJibTkzYmk1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJblZ1YTI1dmQyNHVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCU1VFc1RVRkJUU3hQUVVGUExGZEJRVmM3U1VGRFppeE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVZNN1VVRkRPVUlzU1VGQlNTeEpRVUZKTEVkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUTNKQ0xFbEJRVWtzUTBGQlF5eERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRPMWxCUTJoQ0xFOUJRVThzU1VGQlNTeERRVUZETzFGQlEyUXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJWeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3V1VGRGVrTXNUVUZCVFN4SFFVRkhMRWRCUVZjc1EwRkJReXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTndReXhKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTTdXVUZEYkVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETERKQ1FVRXlRanRUUVVOMlF6dFJRVU5FTEU5QlFVOHNTVUZCU1N4RFFVRkRPMGxCUTJRc1EwRkJRenREUVVOR08wRkJSVVFzVDBGQlR5eEZRVUZoTEdOQlFXTXNSVUZCUXl4TlFVRk5MR2RDUVVGblFpeERRVUZETzBGQlJURkVMRTFCUVUwc1QwRkJaMElzYVVKQlFXbENPME5CUlhSRE8wRkJSVVFzVFVGQlRTeFBRVUZQTEdOQlFXVXNVMEZCVVN4cFFrRkJhVUk3U1VGRE5VTXNSMEZCUnl4RFFVRkRMRU5CUVZNN1VVRkRiRUlzVDBGQlR5eFRRVUZUTEVOQlFVTTdTVUZEYmtJc1EwRkJRenREUVVOR08wRkJSMFFzVFVGQlRTeFBRVUZQTEcxQ1FVRnZRaXhUUVVGUkxHbENRVUZwUWp0SlFVZG9SQ3hOUVVGTkxFTkJRVU1zV1VGQldUdFJRVU42UWl4TlFVRk5MRWRCUVVjc1IwRkJTU3hGUVVGbExFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhqUVVGakxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTndSaXhQUVVGUExFZEJRVWNzUTBGQlF6dEpRVU5pTEVOQlFVTTdTVUZGVFN4SFFVRkhMRU5CUVVNc1EwRkJVenRSUVVOc1FpeE5RVUZOTEVsQlFVa3NSMEZCVnl4WFFVRlhMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6ZERMRTFCUVUwc1JVRkJSU3hIUVVGSExFbEJRVWtzUjBGQlJ5eHRRa0ZCYlVJc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETzFGQlEzSkVMRTlCUVU4c2JVSkJRVzFDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRM3BETEVOQlFVTTdPMEZCV0dFc01rSkJRVThzUjBGQllTeHRRa0ZCYlVJc1EwRkJReXhaUVVGWkxFVkJRVVVzUTBGQlF6dEJRV04yUlN4TlFVRk5MRTlCUVU4c2EwSkJRVzFDTEZOQlFWRXNZMEZCWXp0SlFVYzNReXhOUVVGTkxFdEJRVXNzU1VGQlNUdFJRVU53UWl4SlFVRkpMRWxCUVVrc1EwRkJReXhKUVVGSkxFdEJRVXNzUzBGQlN5eERRVUZETzFsQlEzUkNMRWxCUVVrc1EwRkJReXhKUVVGSkxFZEJRVWNzU1VGQlNTeGpRVUZqTEVWQlFVVXNRMEZCUXp0UlFVTnVReXhQUVVGUExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTTdTVUZEYmtJc1EwRkJRenRKUVVsTkxFMUJRVTBzUzBGQlN5eExRVUZMTzFGQlEzSkNMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUzBGQlN5eExRVUZMTEVOQlFVTTdXVUZEZGtJc1NVRkJTU3hEUVVGRExFdEJRVXNzUjBGQlJ5eEpRVUZKTEcxQ1FVRnRRaXhGUVVGRkxFTkJRVU03VVVGRGVrTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRE8wbEJRM0JDTEVOQlFVTTdRMEZEUmlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENBcUlHRnpJR2R5YjJzZ1puSnZiU0FuWkdGMFlXZHliMnN0WVhCcEwyZHliMnNuTzF4dWFXMXdiM0owSUNvZ1lYTWdkV2tnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDNWcEp6dGNibWx0Y0c5eWRDQXFJR0Z6SUVSSElHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOWtaeWM3WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJUZEhKcGJtZFZkR2xzY3lCN1hHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ2FHRnphRU52WkdVb2N6b2djM1J5YVc1bktUb2diblZ0WW1WeUlIdGNiaUFnSUNCc1pYUWdhR0Z6YURvZ2JuVnRZbVZ5SUQwZ01EdGNiaUFnSUNCcFppQW9jeTVzWlc1bmRHZ2dQVDA5SURBcFhHNGdJQ0FnSUNCeVpYUjFjbTRnYUdGemFEdGNiaUFnSUNCbWIzSWdLR3hsZENCcE9pQnVkVzFpWlhJZ1BTQXdPeUJwSUR3Z2N5NXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdZMmh5T2lCdWRXMWlaWElnUFNCekxtTm9ZWEpEYjJSbFFYUW9hU2s3WEc0Z0lDQWdJQ0JvWVhOb0lEMGdLQ2hvWVhOb0lEdzhJRFVwSUMwZ2FHRnphQ2tnS3lCamFISTdYRzRnSUNBZ0lDQm9ZWE5vSUh3OUlEQTdJQzh2SUVOdmJuWmxjblFnZEc4Z016SmlhWFFnYVc1MFpXZGxjbHh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnYUdGemFEdGNiaUFnZlZ4dWZWeHVYRzVwYlhCdmNuUWdlMU5sY1ZCaGJHVjBkR1VzSUZObGNWQmhiR1YwZEdWQ1lYTmxmU0JtY205dElDY3VMM05sY1Mxd1lXeGxkSFJsY3ljN1hHNWNibVY0Y0c5eWRDQmhZbk4wY21GamRDQmpiR0Z6Y3lCVmJtdHViM2R1VTJWeFVHRnNaWFIwWlNCcGJYQnNaVzFsYm5SeklGTmxjVkJoYkdWMGRHVWdlMXh1SUNCd2RXSnNhV01nWVdKemRISmhZM1FnWjJWMEtHMDZJSE4wY21sdVp5azZJSE4wY21sdVp6dGNibjFjYmx4dVpYaHdiM0owSUdOc1lYTnpJRWR5WVhsQmJHeFFZV3hsZEhSbElHVjRkR1Z1WkhNZ1ZXNXJibTkzYmxObGNWQmhiR1YwZEdVZ2UxeHVJQ0J3ZFdKc2FXTWdaMlYwS0cwNklITjBjbWx1WnlrNklITjBjbWx1WnlCN1hHNGdJQ0FnY21WMGRYSnVJQ2NqTmpZMk5qWTJKenRjYmlBZ2ZWeHVmVnh1WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJWYm10dWIzZHVRMjlzYjNKUVlXeGxkSFJsSUdWNGRHVnVaSE1nVlc1cmJtOTNibE5sY1ZCaGJHVjBkR1VnZTF4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUhCaGJHVjBkR1U2SUhOMGNtbHVaMXRkSUQwZ1ZXNXJibTkzYmtOdmJHOXlVR0ZzWlhSMFpTNWlkV2xzWkZCaGJHVjBkR1VvS1R0Y2JseHVJQ0J3Y21sMllYUmxJSE4wWVhScFl5QmlkV2xzWkZCaGJHVjBkR1VvS1RvZ2MzUnlhVzVuVzEwZ2UxeHVJQ0FnSUdOdmJuTjBJSEpsY3lBOUlDaGJYU0JoY3lCemRISnBibWRiWFNrdVkyOXVZMkYwS0M0dUxrOWlhbVZqZEM1MllXeDFaWE1vVTJWeFVHRnNaWFIwWlVKaGMyVXVZMjlzYjNWeVVHRnNaWFIwWlNrcE8xeHVJQ0FnSUhKbGRIVnliaUJ5WlhNN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1oyVjBLRzA2SUhOMGNtbHVaeWs2SUhOMGNtbHVaeUI3WEc0Z0lDQWdZMjl1YzNRZ2FHRnphRG9nYm5WdFltVnlJRDBnVTNSeWFXNW5WWFJwYkhNdWFHRnphRU52WkdVb2JTazdYRzRnSUNBZ1kyOXVjM1FnY0VrZ1BTQm9ZWE5vSUNVZ1ZXNXJibTkzYmtOdmJHOXlVR0ZzWlhSMFpTNXdZV3hsZEhSbExteGxibWQwYUR0Y2JpQWdJQ0J5WlhSMWNtNGdWVzVyYm05M2JrTnZiRzl5VUdGc1pYUjBaUzV3WVd4bGRIUmxXM0JKWFR0Y2JpQWdmVnh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVlc1cmJtOTNibE5sY1ZCaGJHVjBkR1Z6SUdWNGRHVnVaSE1nVTJWeFVHRnNaWFIwWlVKaGMyVWdlMXh1SUNCd2NtbDJZWFJsSUhOMFlYUnBZeUJuY21GNU9pQlRaWEZRWVd4bGRIUmxPMXh1WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nWjJWMElFZHlZWGtvS1RvZ1UyVnhVR0ZzWlhSMFpTQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdVozSmhlU0E5UFQwZ2RtOXBaQ0F3S1Z4dUlDQWdJQ0FnZEdocGN5NW5jbUY1SUQwZ2JtVjNJRWR5WVhsQmJHeFFZV3hsZEhSbEtDazdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVaM0poZVR0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ2MzUmhkR2xqSUdOdmJHOXlPaUJUWlhGUVlXeGxkSFJsTzF4dVhHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ1oyVjBJRU52Ykc5eUtDazZJRk5sY1ZCaGJHVjBkR1VnZTF4dUlDQWdJR2xtSUNoMGFHbHpMbU52Ykc5eUlEMDlQU0IyYjJsa0lEQXBYRzRnSUNBZ0lDQjBhR2x6TG1OdmJHOXlJRDBnYm1WM0lGVnVhMjV2ZDI1RGIyeHZjbEJoYkdWMGRHVW9LVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVqYjJ4dmNqdGNiaUFnZlZ4dWZWeHVJbDE5IiwiY29uc3QgdW5kZWZpbmVkQ29sb3IgPSAncmdiKDEwMCwxMDAsMTAwKSc7XG5jb25zdCBncmF5Q29sb3IgPSAnIzgwODA4MCc7XG5leHBvcnQgdmFyIERyYXdTdHlsZTtcbihmdW5jdGlvbiAoRHJhd1N0eWxlKSB7XG4gICAgRHJhd1N0eWxlW1wiTVNBXCJdID0gXCJNU0FcIjtcbiAgICBEcmF3U3R5bGVbXCJjbGFzc2ljXCJdID0gXCJjbGFzc2ljXCI7XG59KShEcmF3U3R5bGUgfHwgKERyYXdTdHlsZSA9IHt9KSk7XG4vKipcbiAqIEEgZnVuY3Rpb24gdGhhdCBwcmludHMgYSBzdHJpbmcgYWxpZ25lZCB0byBsZWZ0IG9yIGNlbnRlcmVkLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IHggY29vcmRpbmF0ZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSB5IHkgY29vcmRpbmF0ZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSB3IFdpZHRoLlxuICogQHBhcmFtIHtudW1iZXJ9IGggSGVpZ2h0LlxuICogQHBhcmFtIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IGcgQ2FudmFzIHJlbmRlcmluZyBjb250ZXh0LlxuICogQHBhcmFtIHtzdHJpbmd9IHMgU3RyaW5nIHRvIHByaW50LlxuICogQHBhcmFtIHtzdHJpbmd9IFtjb2xvcj11bmRlZmluZWRDb2xvcl0gU3RyaW5nIGNvbG9yLlxuICogQHBhcmFtIHtudW1iZXJ9IFtwaXZvdD0wXSBQaXJ2b3QuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtsZWZ0PWZhbHNlXSBJcyBsZWZ0IGFsaWduZWQuXG4gKiBAcGFyYW0ge251bWJlcn0gW3RyYW5zcGFyZW5jeVJhdGU9MC4wXSBUcmFuc3BhcmVuY3kgcmF0ZSB3aGVyZSAxLjAgaXMgZnVsbHkgdHJhbnNwYXJlbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBbc2VwYXJhdG9yPScnXSBJcyBzZXBhcmF0b3IgZm9yIHNlcXVlbmNlLlxuICogQHBhcmFtIHtib29sZWFufSBbbGFzdD1mYWxzZV0gSXMgY2hlY2tlciBpZiBlbGVtZW50IGxhc3Qgb3Igbm90LlxuICogQHBhcmFtIGRyYXdTdHlsZSBJcyBkcmF3IHN0eWxlLiBNU0EgLSBmb3IgbXVsdGljaGFyU2VxLCBjbGFzc2ljIC0gZm9yIG90aGVyIHNlcS5cbiAqIEBwYXJhbSBtYXhXb3JkIElzIGFycmF5IG9mIG1heCB3b3JkcyBmb3IgZWFjaCBsaW5lLlxuICogQHBhcmFtIG1heFdvcmRJZHggSXMgaW5kZXggb2Ygd29yZCB3ZSBjdXJyZW50bHkgZHJhdy5cbiAqIEBwYXJhbSBncmlkQ2VsbCBJcyBncmlkIGNlbGwsIG5ldyBmb3IgdXBkYXRpbmcgZGF0YSBpbiBtYXhXb3JkIHdoaWxlIHJlbmRlcmluZy5cbiAqIEByZXR1cm4ge251bWJlcn0geCBjb29yZGluYXRlIHRvIHN0YXJ0IHByaW50aW5nIGF0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRMZWZ0T3JDZW50ZXJlZCh4LCB5LCB3LCBoLCBnLCBzLCBjb2xvciA9IHVuZGVmaW5lZENvbG9yLCBwaXZvdCA9IDAsIGxlZnQgPSBmYWxzZSwgdHJhbnNwYXJlbmN5UmF0ZSA9IDEuMCwgc2VwYXJhdG9yID0gJycsIGxhc3QgPSBmYWxzZSwgZHJhd1N0eWxlID0gRHJhd1N0eWxlLmNsYXNzaWMsIG1heFdvcmQgPSB7fSwgbWF4V29yZElkeCA9IDAsIGdyaWRDZWxsID0ge30pIHtcbiAgICB2YXIgX2E7XG4gICAgZy50ZXh0QWxpZ24gPSAnc3RhcnQnO1xuICAgIGNvbnN0IGNvbG9yUGFydCA9IHMuc3Vic3RyaW5nKDApO1xuICAgIGxldCBncmF5UGFydCA9IGxhc3QgPyAnJyA6IHNlcGFyYXRvcjtcbiAgICBpZiAoZHJhd1N0eWxlID09PSBEcmF3U3R5bGUuTVNBKSB7XG4gICAgICAgIGdyYXlQYXJ0ID0gJyc7XG4gICAgfVxuICAgIGxldCB0ZXh0U2l6ZSA9IGcubWVhc3VyZVRleHQoY29sb3JQYXJ0ICsgZ3JheVBhcnQpO1xuICAgIGNvbnN0IGluZGVudCA9IDU7XG4gICAgbGV0IG1heENvbG9yVGV4dFNpemUgPSBnLm1lYXN1cmVUZXh0KGNvbG9yUGFydCkud2lkdGg7XG4gICAgbGV0IGNvbG9yVGV4dFNpemUgPSBnLm1lYXN1cmVUZXh0KGNvbG9yUGFydCkud2lkdGg7XG4gICAgY29uc3QgZHkgPSAodGV4dFNpemUuZm9udEJvdW5kaW5nQm94QXNjZW50ICsgdGV4dFNpemUuZm9udEJvdW5kaW5nQm94RGVzY2VudCkgLyAyO1xuICAgIHRleHRTaXplID0gdGV4dFNpemUud2lkdGg7XG4gICAgaWYgKGRyYXdTdHlsZSA9PT0gRHJhd1N0eWxlLk1TQSkge1xuICAgICAgICBtYXhDb2xvclRleHRTaXplID0gbWF4V29yZFttYXhXb3JkSWR4XTtcbiAgICAgICAgdGV4dFNpemUgPSBtYXhXb3JkW21heFdvcmRJZHhdO1xuICAgICAgICBpZiAobWF4V29yZElkeCA+ICgoX2EgPSBtYXhXb3JkWydiaW8tbWF4SW5kZXgnXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCkpIHtcbiAgICAgICAgICAgIG1heFdvcmRbJ2Jpby1tYXhJbmRleCddID0gbWF4V29yZElkeDtcbiAgICAgICAgICAgIGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXAgPSBtYXhXb3JkO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRyYXcoZHgxLCBkeDIpIHtcbiAgICAgICAgZy5maWxsU3R5bGUgPSBjb2xvcjtcbiAgICAgICAgZy5nbG9iYWxBbHBoYSA9IHRyYW5zcGFyZW5jeVJhdGU7XG4gICAgICAgIGlmIChkcmF3U3R5bGUgPT09IERyYXdTdHlsZS5jbGFzc2ljKSB7XG4gICAgICAgICAgICBnLmZpbGxUZXh0KGNvbG9yUGFydCwgeCArIGR4MSwgeSArIGR5KTtcbiAgICAgICAgICAgIGcuZmlsbFN0eWxlID0gZ3JheUNvbG9yO1xuICAgICAgICAgICAgZy5maWxsVGV4dChncmF5UGFydCwgeCArIGR4MiwgeSArIGR5KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZHJhd1N0eWxlID09PSBEcmF3U3R5bGUuTVNBKSB7XG4gICAgICAgICAgICBnLmZpbGxTdHlsZSA9IGNvbG9yO1xuICAgICAgICAgICAgZy5maWxsVGV4dChjb2xvclBhcnQsIHggKyBkeDEgKyAoKG1heFdvcmRbbWF4V29yZElkeF0gLSBjb2xvclRleHRTaXplKSAvIDIpLCB5ICsgZHkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChsZWZ0IHx8IHRleHRTaXplID4gdykge1xuICAgICAgICBkcmF3KGluZGVudCwgaW5kZW50ICsgbWF4Q29sb3JUZXh0U2l6ZSk7XG4gICAgICAgIHJldHVybiB4ICsgbWF4Q29sb3JUZXh0U2l6ZSArIGcubWVhc3VyZVRleHQoZ3JheVBhcnQpLndpZHRoO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgZHggPSAodyAtIHRleHRTaXplKSAvIDI7XG4gICAgICAgIGRyYXcoZHgsIGR4ICsgbWF4Q29sb3JUZXh0U2l6ZSk7XG4gICAgICAgIHJldHVybiB4ICsgZHggKyBtYXhDb2xvclRleHRTaXplO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVkyVnNiQzF5Wlc1a1pYSmxjaTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkltTmxiR3d0Y21WdVpHVnlaWEl1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUVUZCVFN4alFVRmpMRWRCUVVjc2EwSkJRV3RDTEVOQlFVTTdRVUZETVVNc1RVRkJUU3hUUVVGVExFZEJRVWNzVTBGQlV5eERRVUZETzBGQlJUVkNMRTFCUVUwc1EwRkJUaXhKUVVGWkxGTkJSMWc3UVVGSVJDeFhRVUZaTEZOQlFWTTdTVUZEYmtJc2QwSkJRVmNzUTBGQlFUdEpRVU5ZTEdkRFFVRnRRaXhEUVVGQk8wRkJRM0pDTEVOQlFVTXNSVUZJVnl4VFFVRlRMRXRCUVZRc1UwRkJVeXhSUVVkd1FqdEJRVVZFT3pzN096czdPenM3T3pzN096czdPenM3T3p0SFFXOUNSenRCUVVOSUxFMUJRVTBzVlVGQlZTeHRRa0ZCYlVJc1EwRkRha01zUTBGQlV5eEZRVUZGTEVOQlFWTXNSVUZCUlN4RFFVRlRMRVZCUVVVc1EwRkJVeXhGUVVNeFF5eERRVUV5UWl4RlFVRkZMRU5CUVZNc1JVRkJSU3hMUVVGTExFZEJRVWNzWTBGQll5eEZRVU01UkN4UlFVRm5RaXhEUVVGRExFVkJRVVVzU1VGQlNTeEhRVUZITEV0QlFVc3NSVUZCUlN4dFFrRkJNa0lzUjBGQlJ5eEZRVU12UkN4WlFVRnZRaXhGUVVGRkxFVkJRVVVzVDBGQlowSXNTMEZCU3l4RlFVRkZMRmxCUVhWQ0xGTkJRVk1zUTBGQlF5eFBRVUZQTEVWQlFVVXNWVUZCZFVNc1JVRkJSU3hGUVVGRkxHRkJRWEZDTEVOQlFVTXNSVUZCUlN4WFFVRm5RaXhGUVVGRk96dEpRVU01U3l4RFFVRkRMRU5CUVVNc1UwRkJVeXhIUVVGSExFOUJRVThzUTBGQlF6dEpRVU4wUWl4TlFVRk5MRk5CUVZNc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTJwRExFbEJRVWtzVVVGQlVTeEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTTdTVUZEY2tNc1NVRkJTU3hUUVVGVExFdEJRVXNzVTBGQlV5eERRVUZETEVkQlFVY3NSVUZCUlR0UlFVTXZRaXhSUVVGUkxFZEJRVWNzUlVGQlJTeERRVUZETzB0QlEyWTdTVUZGUkN4SlFVRkpMRkZCUVZFc1IwRkJVU3hEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEZOQlFWTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1EwRkJRenRKUVVONFJDeE5RVUZOTEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkZha0lzU1VGQlNTeG5Ra0ZCWjBJc1IwRkJSeXhEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJRenRKUVVOMFJDeEpRVUZKTEdGQlFXRXNSMEZCUnl4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXp0SlFVTnVSQ3hOUVVGTkxFVkJRVVVzUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4eFFrRkJjVUlzUjBGQlJ5eFJRVUZSTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEYkVZc1VVRkJVU3hIUVVGSExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTTdTVUZETVVJc1NVRkJTU3hUUVVGVExFdEJRVXNzVTBGQlV5eERRVUZETEVkQlFVY3NSVUZCUlR0UlFVTXZRaXhuUWtGQlowSXNSMEZCUnl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03VVVGRGRrTXNVVUZCVVN4SFFVRkhMRTlCUVU4c1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU12UWl4SlFVRkpMRlZCUVZVc1IwRkJSeXhEUVVGRExFMUJRVUVzVDBGQlR5eERRVUZETEdOQlFXTXNRMEZCUXl4dFEwRkJTU3hEUVVGRExFTkJRVU1zUlVGQlJUdFpRVU12UXl4UFFVRlBMRU5CUVVNc1kwRkJZeXhEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETzFsQlEzSkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSMEZCUnl4UFFVRlBMRU5CUVVNN1UwRkRja003UzBGRFJqdEpRVVZFTEZOQlFWTXNTVUZCU1N4RFFVRkRMRWRCUVZjc1JVRkJSU3hIUVVGWE8xRkJRM0JETEVOQlFVTXNRMEZCUXl4VFFVRlRMRWRCUVVjc1MwRkJTeXhEUVVGRE8xRkJRM0JDTEVOQlFVTXNRMEZCUXl4WFFVRlhMRWRCUVVjc1owSkJRV2RDTEVOQlFVTTdVVUZEYWtNc1NVRkJTU3hUUVVGVExFdEJRVXNzVTBGQlV5eERRVUZETEU5QlFVOHNSVUZCUlR0WlFVTnVReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0WlFVTjJReXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEZOQlFWTXNRMEZCUXp0WlFVTjRRaXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0VFFVTjJRenRSUVVORUxFbEJRVWtzVTBGQlV5eExRVUZMTEZOQlFWTXNRMEZCUXl4SFFVRkhMRVZCUVVVN1dVRkRMMElzUTBGQlF5eERRVUZETEZOQlFWTXNSMEZCUnl4TFFVRkxMRU5CUVVNN1dVRkRjRUlzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJReXhIUVVGSExFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGSExHRkJRV0VzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFRRVU4wUmp0SlFVTklMRU5CUVVNN1NVRkZSQ3hKUVVGSkxFbEJRVWtzU1VGQlNTeFJRVUZSTEVkQlFVY3NRMEZCUXl4RlFVRkZPMUZCUTNoQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNUVUZCVFN4SFFVRkhMR2RDUVVGblFpeERRVUZETEVOQlFVTTdVVUZEZUVNc1QwRkJUeXhEUVVGRExFZEJRVWNzWjBKQlFXZENMRWRCUVVjc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1MwRkZOMFE3VTBGQlRUdFJRVU5NTEUxQlFVMHNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTTVRaXhKUVVGSkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSMEZCUnl4blFrRkJaMElzUTBGQlF5eERRVUZETzFGQlEyaERMRTlCUVU4c1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJRenRMUVVOc1F6dEJRVU5JTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpqYjI1emRDQjFibVJsWm1sdVpXUkRiMnh2Y2lBOUlDZHlaMklvTVRBd0xERXdNQ3d4TURBcEp6dGNibU52Ym5OMElHZHlZWGxEYjJ4dmNpQTlJQ2NqT0RBNE1EZ3dKenRjYmx4dVpYaHdiM0owSUdWdWRXMGdSSEpoZDFOMGVXeGxJSHRjYmlBZ1RWTkJJRDBnSjAxVFFTY3NYRzRnSUdOc1lYTnphV01nUFNBblkyeGhjM05wWXljc1hHNTlYRzVjYmk4cUtseHVJQ29nUVNCbWRXNWpkR2x2YmlCMGFHRjBJSEJ5YVc1MGN5QmhJSE4wY21sdVp5QmhiR2xuYm1Wa0lIUnZJR3hsWm5RZ2IzSWdZMlZ1ZEdWeVpXUXVYRzRnS2x4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlIZ2dlQ0JqYjI5eVpHbHVZWFJsTGx4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlIa2dlU0JqYjI5eVpHbHVZWFJsTGx4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlIY2dWMmxrZEdndVhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdhQ0JJWldsbmFIUXVYRzRnS2lCQWNHRnlZVzBnZTBOaGJuWmhjMUpsYm1SbGNtbHVaME52Ym5SbGVIUXlSSDBnWnlCRFlXNTJZWE1nY21WdVpHVnlhVzVuSUdOdmJuUmxlSFF1WEc0Z0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2N5QlRkSEpwYm1jZ2RHOGdjSEpwYm5RdVhHNGdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMk52Ykc5eVBYVnVaR1ZtYVc1bFpFTnZiRzl5WFNCVGRISnBibWNnWTI5c2IzSXVYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzNCcGRtOTBQVEJkSUZCcGNuWnZkQzVjYmlBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1cyeGxablE5Wm1Gc2MyVmRJRWx6SUd4bFpuUWdZV3hwWjI1bFpDNWNiaUFxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JiZEhKaGJuTndZWEpsYm1ONVVtRjBaVDB3TGpCZElGUnlZVzV6Y0dGeVpXNWplU0J5WVhSbElIZG9aWEpsSURFdU1DQnBjeUJtZFd4c2VTQjBjbUZ1YzNCaGNtVnVkRnh1SUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0elpYQmhjbUYwYjNJOUp5ZGRJRWx6SUhObGNHRnlZWFJ2Y2lCbWIzSWdjMlZ4ZFdWdVkyVXVYRzRnS2lCQWNHRnlZVzBnZTJKdmIyeGxZVzU5SUZ0c1lYTjBQV1poYkhObFhTQkpjeUJqYUdWamEyVnlJR2xtSUdWc1pXMWxiblFnYkdGemRDQnZjaUJ1YjNRdVhHNGdLaUJBY0dGeVlXMGdaSEpoZDFOMGVXeGxJRWx6SUdSeVlYY2djM1I1YkdVdUlFMVRRU0F0SUdadmNpQnRkV3gwYVdOb1lYSlRaWEVzSUdOc1lYTnphV01nTFNCbWIzSWdiM1JvWlhJZ2MyVnhMbHh1SUNvZ1FIQmhjbUZ0SUcxaGVGZHZjbVFnU1hNZ1lYSnlZWGtnYjJZZ2JXRjRJSGR2Y21SeklHWnZjaUJsWVdOb0lHeHBibVV1WEc0Z0tpQkFjR0Z5WVcwZ2JXRjRWMjl5WkVsa2VDQkpjeUJwYm1SbGVDQnZaaUIzYjNKa0lIZGxJR04xY25KbGJuUnNlU0JrY21GM0xseHVJQ29nUUhCaGNtRnRJR2R5YVdSRFpXeHNJRWx6SUdkeWFXUWdZMlZzYkN3Z2JtVjNJR1p2Y2lCMWNHUmhkR2x1WnlCa1lYUmhJR2x1SUcxaGVGZHZjbVFnZDJocGJHVWdjbVZ1WkdWeWFXNW5MbHh1SUNvZ1FISmxkSFZ5YmlCN2JuVnRZbVZ5ZlNCNElHTnZiM0prYVc1aGRHVWdkRzhnYzNSaGNuUWdjSEpwYm5ScGJtY2dZWFF1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQndjbWx1ZEV4bFpuUlBja05sYm5SbGNtVmtLRnh1SUNCNE9pQnVkVzFpWlhJc0lIazZJRzUxYldKbGNpd2dkem9nYm5WdFltVnlMQ0JvT2lCdWRXMWlaWElzWEc0Z0lHYzZJRU5oYm5aaGMxSmxibVJsY21sdVowTnZiblJsZUhReVJDd2djem9nYzNSeWFXNW5MQ0JqYjJ4dmNpQTlJSFZ1WkdWbWFXNWxaRU52Ykc5eUxGeHVJQ0J3YVhadmREb2diblZ0WW1WeUlEMGdNQ3dnYkdWbWRDQTlJR1poYkhObExDQjBjbUZ1YzNCaGNtVnVZM2xTWVhSbE9pQnVkVzFpWlhJZ1BTQXhMakFzWEc0Z0lITmxjR0Z5WVhSdmNqb2djM1J5YVc1bklEMGdKeWNzSUd4aGMzUTZJR0p2YjJ4bFlXNGdQU0JtWVd4elpTd2daSEpoZDFOMGVXeGxPaUJFY21GM1UzUjViR1VnUFNCRWNtRjNVM1I1YkdVdVkyeGhjM05wWXl3Z2JXRjRWMjl5WkRvZ2V5QmJhVzVrWlhnNklITjBjbWx1WjEwNklHNTFiV0psY2lCOUlEMGdlMzBzSUcxaGVGZHZjbVJKWkhnNklHNTFiV0psY2lBOUlEQXNJR2R5YVdSRFpXeHNPaUJoYm5rZ1BTQjdmU2s2SUc1MWJXSmxjaUI3WEc0Z0lHY3VkR1Y0ZEVGc2FXZHVJRDBnSjNOMFlYSjBKenRjYmlBZ1kyOXVjM1FnWTI5c2IzSlFZWEowSUQwZ2N5NXpkV0p6ZEhKcGJtY29NQ2s3WEc0Z0lHeGxkQ0JuY21GNVVHRnlkQ0E5SUd4aGMzUWdQeUFuSnlBNklITmxjR0Z5WVhSdmNqdGNiaUFnYVdZZ0tHUnlZWGRUZEhsc1pTQTlQVDBnUkhKaGQxTjBlV3hsTGsxVFFTa2dlMXh1SUNBZ0lHZHlZWGxRWVhKMElEMGdKeWM3WEc0Z0lIMWNibHh1SUNCc1pYUWdkR1Y0ZEZOcGVtVTZJR0Z1ZVNBOUlHY3ViV1ZoYzNWeVpWUmxlSFFvWTI5c2IzSlFZWEowSUNzZ1ozSmhlVkJoY25RcE8xeHVJQ0JqYjI1emRDQnBibVJsYm5RZ1BTQTFPMXh1WEc0Z0lHeGxkQ0J0WVhoRGIyeHZjbFJsZUhSVGFYcGxJRDBnWnk1dFpXRnpkWEpsVkdWNGRDaGpiMnh2Y2xCaGNuUXBMbmRwWkhSb08xeHVJQ0JzWlhRZ1kyOXNiM0pVWlhoMFUybDZaU0E5SUdjdWJXVmhjM1Z5WlZSbGVIUW9ZMjlzYjNKUVlYSjBLUzUzYVdSMGFEdGNiaUFnWTI5dWMzUWdaSGtnUFNBb2RHVjRkRk5wZW1VdVptOXVkRUp2ZFc1a2FXNW5RbTk0UVhOalpXNTBJQ3NnZEdWNGRGTnBlbVV1Wm05dWRFSnZkVzVrYVc1blFtOTRSR1Z6WTJWdWRDa2dMeUF5TzF4dUlDQjBaWGgwVTJsNlpTQTlJSFJsZUhSVGFYcGxMbmRwWkhSb08xeHVJQ0JwWmlBb1pISmhkMU4wZVd4bElEMDlQU0JFY21GM1UzUjViR1V1VFZOQktTQjdYRzRnSUNBZ2JXRjRRMjlzYjNKVVpYaDBVMmw2WlNBOUlHMWhlRmR2Y21SYmJXRjRWMjl5WkVsa2VGMDdYRzRnSUNBZ2RHVjRkRk5wZW1VZ1BTQnRZWGhYYjNKa1cyMWhlRmR2Y21SSlpIaGRPMXh1SUNBZ0lHbG1JQ2h0WVhoWGIzSmtTV1I0SUQ0Z0tHMWhlRmR2Y21SYkoySnBieTF0WVhoSmJtUmxlQ2RkSUQ4L0lEQXBLU0I3WEc0Z0lDQWdJQ0J0WVhoWGIzSmtXeWRpYVc4dGJXRjRTVzVrWlhnblhTQTlJRzFoZUZkdmNtUkpaSGc3WEc0Z0lDQWdJQ0JuY21sa1EyVnNiQzVqWld4c0xtTnZiSFZ0Ymk1MFpXMXdJRDBnYldGNFYyOXlaRHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JtZFc1amRHbHZiaUJrY21GM0tHUjRNVG9nYm5WdFltVnlMQ0JrZURJNklHNTFiV0psY2lrNklIWnZhV1FnZTF4dUlDQWdJR2N1Wm1sc2JGTjBlV3hsSUQwZ1kyOXNiM0k3WEc0Z0lDQWdaeTVuYkc5aVlXeEJiSEJvWVNBOUlIUnlZVzV6Y0dGeVpXNWplVkpoZEdVN1hHNGdJQ0FnYVdZZ0tHUnlZWGRUZEhsc1pTQTlQVDBnUkhKaGQxTjBlV3hsTG1Oc1lYTnphV01wSUh0Y2JpQWdJQ0FnSUdjdVptbHNiRlJsZUhRb1kyOXNiM0pRWVhKMExDQjRJQ3NnWkhneExDQjVJQ3NnWkhrcE8xeHVJQ0FnSUNBZ1p5NW1hV3hzVTNSNWJHVWdQU0JuY21GNVEyOXNiM0k3WEc0Z0lDQWdJQ0JuTG1acGJHeFVaWGgwS0dkeVlYbFFZWEowTENCNElDc2daSGd5TENCNUlDc2daSGtwTzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvWkhKaGQxTjBlV3hsSUQwOVBTQkVjbUYzVTNSNWJHVXVUVk5CS1NCN1hHNGdJQ0FnSUNCbkxtWnBiR3hUZEhsc1pTQTlJR052Ykc5eU8xeHVJQ0FnSUNBZ1p5NW1hV3hzVkdWNGRDaGpiMnh2Y2xCaGNuUXNJSGdnS3lCa2VERWdLeUFvS0cxaGVGZHZjbVJiYldGNFYyOXlaRWxrZUYwZ0xTQmpiMnh2Y2xSbGVIUlRhWHBsS1NBdklESXBMQ0I1SUNzZ1pIa3BPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJR2xtSUNoc1pXWjBJSHg4SUhSbGVIUlRhWHBsSUQ0Z2R5a2dlMXh1SUNBZ0lHUnlZWGNvYVc1a1pXNTBMQ0JwYm1SbGJuUWdLeUJ0WVhoRGIyeHZjbFJsZUhSVGFYcGxLVHRjYmlBZ0lDQnlaWFIxY200Z2VDQXJJRzFoZUVOdmJHOXlWR1Y0ZEZOcGVtVWdLeUJuTG0xbFlYTjFjbVZVWlhoMEtHZHlZWGxRWVhKMEtTNTNhV1IwYUR0Y2JseHVJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lHTnZibk4wSUdSNElEMGdLSGNnTFNCMFpYaDBVMmw2WlNrZ0x5QXlPMXh1SUNBZ0lHUnlZWGNvWkhnc0lHUjRJQ3NnYldGNFEyOXNiM0pVWlhoMFUybDZaU2s3WEc0Z0lDQWdjbVYwZFhKdUlIZ2dLeUJrZUNBcklHMWhlRU52Ykc5eVZHVjRkRk5wZW1VN1hHNGdJSDFjYm4xY2JseHVJbDE5IiwiaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7IFVuaXRzSGFuZGxlciB9IGZyb20gJy4vdW5pdHMtaGFuZGxlcic7XG4vKiogQ2xhc3MgZm9yIHBhcnNpbmcgRkFTVEEgZmlsZXMgKi9cbmV4cG9ydCBjbGFzcyBGYXN0YUZpbGVIYW5kbGVyIHtcbiAgICBjb25zdHJ1Y3RvcihmaWxlQ29udGVudCkge1xuICAgICAgICB0aGlzLl9kZXNjcmlwdGlvbnNBcnJheSA9IFtdOyAvLyBwYXJzZWQgRkFTVEEgZGVzY3JpcHRpb25zXG4gICAgICAgIHRoaXMuX3NlcXVlbmNlc0FycmF5ID0gW107IC8vIHBhcnNlZCBGQVNUQSBzZXF1ZWNlc1xuICAgICAgICB0aGlzLl9maWxlQ29udGVudCA9IGZpbGVDb250ZW50O1xuICAgICAgICB0aGlzLnBhcnNlQ29sdW1ucygpO1xuICAgIH1cbiAgICAvLyBwcml2YXRlIF9jb2x1bW5zUGFyc2VkOiBib29sZWFuID0gZmFsc2U7XG4gICAgZ2V0IGRlc2NyaXB0aW9uc0FycmF5KCkgeyByZXR1cm4gdGhpcy5fZGVzY3JpcHRpb25zQXJyYXk7IH1cbiAgICBnZXQgc2VxdWVuY2VzQXJyYXkoKSB7IHJldHVybiB0aGlzLl9zZXF1ZW5jZXNBcnJheTsgfVxuICAgIC8qKlxuICAgICAqIEhlbHBlciBtZXRob2QgdG8gcGFyc2UgYSBtYWNyb21vbGVjdWxlIGZyb20gYSBGQVNUQSBmaWxlIChzdHJpbmcpXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnRPZlNlcXVlbmNlICBpbmRleCBvZiBtYWNyb21vbGVjdWxlIHN1YnN0cmluZyBiZWdpbm5pbmdcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kT2ZTZXF1ZW5jZSAgaW5kZXggb2YgbWFjcm9tb2xlY3VsZSBzdWJzdHJpbmcgZW5kXG4gIFxuICAgICAqIEByZXR1cm4ge3N0cmluZ30gcGFyc2VkIG1hY3JvbW9sZWN1bGVcbiAgICAgKi9cbiAgICBwYXJzZU1hY3JvbW9sZWN1bGUoc3RhcnRPZlNlcXVlbmNlLCBlbmRPZlNlcXVlbmNlKSB7XG4gICAgICAgIGNvbnN0IHNlcSA9IHRoaXMuX2ZpbGVDb250ZW50LnNsaWNlKHN0YXJ0T2ZTZXF1ZW5jZSwgZW5kT2ZTZXF1ZW5jZSk7XG4gICAgICAgIGNvbnN0IHNlcUFycmF5ID0gc2VxLnNwbGl0KC9cXHMvKTtcbiAgICAgICAgcmV0dXJuIHNlcUFycmF5LmpvaW4oJycpO1xuICAgIH1cbiAgICAvKiogUGFyc2UgZGVzY3JpcHRpb25zIGFuZCBzZXF1ZW5jZXMgZnJvbSBhIEZBU1RBIHN0cmluZyAqL1xuICAgIHBhcnNlQ29sdW1ucygpIHtcbiAgICAgICAgY29uc3QgcmVnZXggPSAvXj4oLiopJC9nbTsgLy8gbWF0Y2ggJ2Rlc2NyaXB0aW9uJyBsaW5lcyBzdGFydGluZyB3aXRoID5cbiAgICAgICAgbGV0IHN0YXJ0T2ZTZXF1ZW5jZSA9IDA7XG4gICAgICAgIGxldCBtYXRjaDsgLy8gbWF0Y2guaW5kZXggaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgbWF0Y2hlZCBsaW5lXG4gICAgICAgIHdoaWxlIChtYXRjaCA9IHJlZ2V4LmV4ZWModGhpcy5fZmlsZUNvbnRlbnQpKSB7XG4gICAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuX2ZpbGVDb250ZW50LnN1YnN0cmluZyhtYXRjaC5pbmRleCArIDEsIHJlZ2V4Lmxhc3RJbmRleCk7XG4gICAgICAgICAgICB0aGlzLl9kZXNjcmlwdGlvbnNBcnJheS5wdXNoKGRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgIGlmIChzdGFydE9mU2VxdWVuY2UgIT09IDApXG4gICAgICAgICAgICAgICAgdGhpcy5fc2VxdWVuY2VzQXJyYXkucHVzaCh0aGlzLnBhcnNlTWFjcm9tb2xlY3VsZShzdGFydE9mU2VxdWVuY2UsIG1hdGNoLmluZGV4KSk7XG4gICAgICAgICAgICBzdGFydE9mU2VxdWVuY2UgPSByZWdleC5sYXN0SW5kZXggKyAxO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NlcXVlbmNlc0FycmF5LnB1c2godGhpcy5wYXJzZU1hY3JvbW9sZWN1bGUoc3RhcnRPZlNlcXVlbmNlLCAtMSkpO1xuICAgICAgICAvLyB0aGlzLl9jb2x1bW5zUGFyc2VkID0gdHJ1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRmlsZS1oYW5kbGVyIG1ldGhvZCBmb3IgaW1wb3J0IGFzIEZBU1RBXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtERy5EYXRhRnJhbWVbXX0gZGF0YWZyYW1lIHdpdGggcGFyc2VkIEZBU1RBIGNvbnRlbnRcbiAgICAgKi9cbiAgICBpbXBvcnRGYXN0YSgpIHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb25zQXJyYXlDb2wgPSBERy5Db2x1bW4uZnJvbVN0cmluZ3MoJ2Rlc2NyaXB0aW9uJywgdGhpcy5kZXNjcmlwdGlvbnNBcnJheSk7XG4gICAgICAgIGNvbnN0IHNlcXVlbmNlQ29sID0gREcuQ29sdW1uLmZyb21TdHJpbmdzKCdzZXF1ZW5jZScsIHRoaXMuc2VxdWVuY2VzQXJyYXkpO1xuICAgICAgICBzZXF1ZW5jZUNvbC5zZW1UeXBlID0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFO1xuICAgICAgICAvLyBoZXJlIHNob3VsZCBnbyB0aGUgY29kZSBmcm9tIHVuaXRzIGhhbmRsZXJcbiAgICAgICAgVW5pdHNIYW5kbGVyLnNldFVuaXRzVG9GYXN0YUNvbHVtbihzZXF1ZW5jZUNvbCk7XG4gICAgICAgIHJldHVybiBbREcuRGF0YUZyYW1lLmZyb21Db2x1bW5zKFtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbnNBcnJheUNvbCxcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZUNvbCxcbiAgICAgICAgICAgIF0pXTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2labUZ6ZEdFdGFHRnVaR3hsY2k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbVpoYzNSaExXaGhibVJzWlhJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJSMEVzVDBGQlR5eExRVUZMTEVWQlFVVXNUVUZCVFN4cFFrRkJhVUlzUTBGQlF6dEJRVVYwUXl4UFFVRlBMRVZCUVVNc1dVRkJXU3hGUVVGRExFMUJRVTBzYVVKQlFXbENMRU5CUVVNN1FVRkZOME1zYjBOQlFXOURPMEZCUTNCRExFMUJRVTBzVDBGQlR5eG5Ra0ZCWjBJN1NVRm5SVE5DTEZsQlFWa3NWMEZCYlVJN1VVRTVSSFpDTEhWQ1FVRnJRaXhIUVVGaExFVkJRVVVzUTBGQlF5eERRVUZETERSQ1FVRTBRanRSUVVNdlJDeHZRa0ZCWlN4SFFVRmhMRVZCUVVVc1EwRkJReXhEUVVGRExIZENRVUYzUWp0UlFUaEVPVVFzU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4WFFVRlhMRU5CUVVNN1VVRkRhRU1zU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4RFFVRkRPMGxCUTNSQ0xFTkJRVU03U1VFdlJFUXNNa05CUVRKRE8wbEJSVE5ETEVsQlFWY3NhVUpCUVdsQ0xFdEJRV1VzVDBGQlR5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJUVkZMRWxCUVZjc1kwRkJZeXhMUVVGbExFOUJRVThzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZkRVU3T3pzN096czdUMEZQUnp0SlFVTkxMR3RDUVVGclFpeERRVU40UWl4bFFVRjFRaXhGUVVOMlFpeGhRVUZ4UWp0UlFVVnlRaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhsUVVGbExFVkJRVVVzWVVGQllTeERRVUZETEVOQlFVTTdVVUZEY0VVc1RVRkJUU3hSUVVGUkxFZEJRVWNzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVOcVF5eFBRVUZQTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRE0wSXNRMEZCUXp0SlFVVkVMREpFUVVFeVJEdEpRVU51UkN4WlFVRlpPMUZCUTJ4Q0xFMUJRVTBzUzBGQlN5eEhRVUZITEZkQlFWY3NRMEZCUXl4RFFVRkRMRFJEUVVFMFF6dFJRVVYyUlN4SlFVRkpMR1ZCUVdVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGVFSXNTVUZCU1N4TFFVRkxMRU5CUVVNc1EwRkJReXh0UkVGQmJVUTdVVUZET1VRc1QwRkJUeXhMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVU3V1VGRE5VTXNUVUZCVFN4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1IwRkJSeXhEUVVGRExFVkJRVVVzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMWxCUTJ4R0xFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTTdXVUZETVVNc1NVRkJTU3hsUVVGbExFdEJRVXNzUTBGQlF6dG5Ra0ZEZGtJc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEdWQlFXVXNSVUZCUlN4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU51Uml4bFFVRmxMRWRCUVVjc1MwRkJTeXhEUVVGRExGTkJRVk1zUjBGQlJ5eERRVUZETEVOQlFVTTdVMEZEZGtNN1VVRkRSQ3hKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNaVUZCWlN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVY0UlN3NFFrRkJPRUk3U1VGRGFFTXNRMEZCUXp0SlFVVkVPenM3TzA5QlNVYzdTVUZEU1N4WFFVRlhPMUZCUTJoQ0xFMUJRVTBzYjBKQlFXOUNMRWRCUVVjc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTXNZVUZCWVN4RlFVRkZMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRPMUZCUXpGR0xFMUJRVTBzVjBGQlZ5eEhRVUZITEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVGRExGVkJRVlVzUlVGQlJTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNN1VVRkRNMFVzVjBGQlZ5eERRVUZETEU5QlFVOHNSMEZCUnl4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0VzUTBGQlF6dFJRVVV2UXl3MlEwRkJOa003VVVGRE4wTXNXVUZCV1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUldoRUxFOUJRVThzUTBGQlF5eEZRVUZGTEVOQlFVTXNVMEZCVXl4RFFVRkRMRmRCUVZjc1EwRkJRenRuUWtGREwwSXNiMEpCUVc5Q08yZENRVU53UWl4WFFVRlhPMkZCUTFvc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRFRpeERRVUZETzBOQlRVWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2S2lCRWJ5QnViM1FnWTJoaGJtZGxJSFJvWlhObElHbHRjRzl5ZENCc2FXNWxjeUIwYnlCdFlYUmphQ0JsZUhSbGNtNWhiQ0J0YjJSMWJHVnpJR2x1SUhkbFluQmhZMnNnWTI5dVptbG5kWEpoZEdsdmJpQXFMMXh1YVcxd2IzSjBJQ29nWVhNZ1ozSnZheUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2WjNKdmF5YzdYRzVwYlhCdmNuUWdLaUJoY3lCMWFTQm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZkV2tuTzF4dWFXMXdiM0owSUNvZ1lYTWdSRWNnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDJSbkp6dGNibHh1YVcxd2IzSjBJSHRWYm1sMGMwaGhibVJzWlhKOUlHWnliMjBnSnk0dmRXNXBkSE10YUdGdVpHeGxjaWM3WEc1Y2JpOHFLaUJEYkdGemN5Qm1iM0lnY0dGeWMybHVaeUJHUVZOVVFTQm1hV3hsY3lBcUwxeHVaWGh3YjNKMElHTnNZWE56SUVaaGMzUmhSbWxzWlVoaGJtUnNaWElnZTF4dUlDQndjbWwyWVhSbElGOW1hV3hsUTI5dWRHVnVkRG9nYzNSeWFXNW5PMXh1SUNCd2NtbDJZWFJsSUY5a1pYTmpjbWx3ZEdsdmJuTkJjbkpoZVRvZ2MzUnlhVzVuVzEwZ1BTQmJYVHNnTHk4Z2NHRnljMlZrSUVaQlUxUkJJR1JsYzJOeWFYQjBhVzl1YzF4dUlDQndjbWwyWVhSbElGOXpaWEYxWlc1alpYTkJjbkpoZVRvZ2MzUnlhVzVuVzEwZ1BTQmJYVHNnTHk4Z2NHRnljMlZrSUVaQlUxUkJJSE5sY1hWbFkyVnpYRzRnSUM4dklIQnlhWFpoZEdVZ1gyTnZiSFZ0Ym5OUVlYSnpaV1E2SUdKdmIyeGxZVzRnUFNCbVlXeHpaVHRjYmx4dUlDQndkV0pzYVdNZ1oyVjBJR1JsYzJOeWFYQjBhVzl1YzBGeWNtRjVLQ2s2SUhOMGNtbHVaMXRkSUhzZ2NtVjBkWEp1SUhSb2FYTXVYMlJsYzJOeWFYQjBhVzl1YzBGeWNtRjVPeUI5WEc1Y2JpQWdjSFZpYkdsaklHZGxkQ0J6WlhGMVpXNWpaWE5CY25KaGVTZ3BPaUJ6ZEhKcGJtZGJYU0I3SUhKbGRIVnliaUIwYUdsekxsOXpaWEYxWlc1alpYTkJjbkpoZVRzZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCSVpXeHdaWElnYldWMGFHOWtJSFJ2SUhCaGNuTmxJR0VnYldGamNtOXRiMnhsWTNWc1pTQm1jbTl0SUdFZ1JrRlRWRUVnWm1sc1pTQW9jM1J5YVc1bktWeHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdjM1JoY25SUFpsTmxjWFZsYm1ObElDQnBibVJsZUNCdlppQnRZV055YjIxdmJHVmpkV3hsSUhOMVluTjBjbWx1WnlCaVpXZHBibTVwYm1kY2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJR1Z1WkU5bVUyVnhkV1Z1WTJVZ0lHbHVaR1Y0SUc5bUlHMWhZM0p2Ylc5c1pXTjFiR1VnYzNWaWMzUnlhVzVuSUdWdVpGeHVYRzRnSUNBcUlFQnlaWFIxY200Z2UzTjBjbWx1WjMwZ2NHRnljMlZrSUcxaFkzSnZiVzlzWldOMWJHVmNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdjR0Z5YzJWTllXTnliMjF2YkdWamRXeGxLRnh1SUNBZ0lITjBZWEowVDJaVFpYRjFaVzVqWlRvZ2JuVnRZbVZ5TEZ4dUlDQWdJR1Z1WkU5bVUyVnhkV1Z1WTJVNklHNTFiV0psY2x4dUlDQXBPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHTnZibk4wSUhObGNTQTlJSFJvYVhNdVgyWnBiR1ZEYjI1MFpXNTBMbk5zYVdObEtITjBZWEowVDJaVFpYRjFaVzVqWlN3Z1pXNWtUMlpUWlhGMVpXNWpaU2s3WEc0Z0lDQWdZMjl1YzNRZ2MyVnhRWEp5WVhrZ1BTQnpaWEV1YzNCc2FYUW9MMXhjY3k4cE8xeHVJQ0FnSUhKbGRIVnliaUJ6WlhGQmNuSmhlUzVxYjJsdUtDY25LVHRjYmlBZ2ZWeHVYRzRnSUM4cUtpQlFZWEp6WlNCa1pYTmpjbWx3ZEdsdmJuTWdZVzVrSUhObGNYVmxibU5sY3lCbWNtOXRJR0VnUmtGVFZFRWdjM1J5YVc1bklDb3ZYRzRnSUhCeWFYWmhkR1VnY0dGeWMyVkRiMngxYlc1ektDa2dlMXh1SUNBZ0lHTnZibk4wSUhKbFoyVjRJRDBnTDE0K0tDNHFLU1F2WjIwN0lDOHZJRzFoZEdOb0lDZGtaWE5qY21sd2RHbHZiaWNnYkdsdVpYTWdjM1JoY25ScGJtY2dkMmwwYUNBK1hHNWNiaUFnSUNCc1pYUWdjM1JoY25SUFpsTmxjWFZsYm1ObElEMGdNRHRjYmlBZ0lDQnNaWFFnYldGMFkyZzdJQzh2SUcxaGRHTm9MbWx1WkdWNElHbHpJSFJvWlNCaVpXZHBibTVwYm1jZ2IyWWdkR2hsSUcxaGRHTm9aV1FnYkdsdVpWeHVJQ0FnSUhkb2FXeGxJQ2h0WVhSamFDQTlJSEpsWjJWNExtVjRaV01vZEdocGN5NWZabWxzWlVOdmJuUmxiblFwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JrWlhOamNtbHdkR2x2YmlBOUlIUm9hWE11WDJacGJHVkRiMjUwWlc1MExuTjFZbk4wY21sdVp5aHRZWFJqYUM1cGJtUmxlQ0FySURFc0lISmxaMlY0TG14aGMzUkpibVJsZUNrN1hHNGdJQ0FnSUNCMGFHbHpMbDlrWlhOamNtbHdkR2x2Ym5OQmNuSmhlUzV3ZFhOb0tHUmxjMk55YVhCMGFXOXVLVHRjYmlBZ0lDQWdJR2xtSUNoemRHRnlkRTltVTJWeGRXVnVZMlVnSVQwOUlEQXBYRzRnSUNBZ0lDQWdJSFJvYVhNdVgzTmxjWFZsYm1ObGMwRnljbUY1TG5CMWMyZ29kR2hwY3k1d1lYSnpaVTFoWTNKdmJXOXNaV04xYkdVb2MzUmhjblJQWmxObGNYVmxibU5sTENCdFlYUmphQzVwYm1SbGVDa3BPMXh1SUNBZ0lDQWdjM1JoY25SUFpsTmxjWFZsYm1ObElEMGdjbVZuWlhndWJHRnpkRWx1WkdWNElDc2dNVHRjYmlBZ0lDQjlYRzRnSUNBZ2RHaHBjeTVmYzJWeGRXVnVZMlZ6UVhKeVlYa3VjSFZ6YUNoMGFHbHpMbkJoY25ObFRXRmpjbTl0YjJ4bFkzVnNaU2h6ZEdGeWRFOW1VMlZ4ZFdWdVkyVXNJQzB4S1NrN1hHNWNiaUFnSUNBdkx5QjBhR2x6TGw5amIyeDFiVzV6VUdGeWMyVmtJRDBnZEhKMVpUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJHYVd4bExXaGhibVJzWlhJZ2JXVjBhRzlrSUdadmNpQnBiWEJ2Y25RZ1lYTWdSa0ZUVkVGY2JpQWdJQ3BjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSRWN1UkdGMFlVWnlZVzFsVzExOUlHUmhkR0ZtY21GdFpTQjNhWFJvSUhCaGNuTmxaQ0JHUVZOVVFTQmpiMjUwWlc1MFhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2FXMXdiM0owUm1GemRHRW9LVG9nUkVjdVJHRjBZVVp5WVcxbElGdGRJSHRjYmlBZ0lDQmpiMjV6ZENCa1pYTmpjbWx3ZEdsdmJuTkJjbkpoZVVOdmJDQTlJRVJITGtOdmJIVnRiaTVtY205dFUzUnlhVzVuY3lnblpHVnpZM0pwY0hScGIyNG5MQ0IwYUdsekxtUmxjMk55YVhCMGFXOXVjMEZ5Y21GNUtUdGNiaUFnSUNCamIyNXpkQ0J6WlhGMVpXNWpaVU52YkNBOUlFUkhMa052YkhWdGJpNW1jbTl0VTNSeWFXNW5jeWduYzJWeGRXVnVZMlVuTENCMGFHbHpMbk5sY1hWbGJtTmxjMEZ5Y21GNUtUdGNiaUFnSUNCelpYRjFaVzVqWlVOdmJDNXpaVzFVZVhCbElEMGdSRWN1VTBWTlZGbFFSUzVOUVVOU1QwMVBURVZEVlV4Rk8xeHVYRzRnSUNBZ0x5OGdhR1Z5WlNCemFHOTFiR1FnWjI4Z2RHaGxJR052WkdVZ1puSnZiU0IxYm1sMGN5Qm9ZVzVrYkdWeVhHNGdJQ0FnVlc1cGRITklZVzVrYkdWeUxuTmxkRlZ1YVhSelZHOUdZWE4wWVVOdmJIVnRiaWh6WlhGMVpXNWpaVU52YkNrN1hHNWNiaUFnSUNCeVpYUjFjbTRnVzBSSExrUmhkR0ZHY21GdFpTNW1jbTl0UTI5c2RXMXVjeWhiWEc0Z0lDQWdJQ0JrWlhOamNtbHdkR2x2Ym5OQmNuSmhlVU52YkN4Y2JpQWdJQ0FnSUhObGNYVmxibU5sUTI5c0xGeHVJQ0FnSUYwcFhUdGNiaUFnZlZ4dVhHNGdJR052Ym5OMGNuVmpkRzl5S0dacGJHVkRiMjUwWlc1ME9pQnpkSEpwYm1jcElIdGNiaUFnSUNCMGFHbHpMbDltYVd4bFEyOXVkR1Z1ZENBOUlHWnBiR1ZEYjI1MFpXNTBPMXh1SUNBZ0lIUm9hWE11Y0dGeWMyVkRiMngxYlc1ektDazdYRzRnSUgxY2JuMWNiaUpkZlE9PSIsImltcG9ydCB7IFdlYkxvZ28gfSBmcm9tICcuLi92aWV3ZXJzL3dlYi1sb2dvJztcbmltcG9ydCB7IFVuaXRzSGFuZGxlciB9IGZyb20gJy4vdW5pdHMtaGFuZGxlcic7XG4vKiogQ2xhc3MgZm9yIGhhbmRsaW5nIGNvbnZlcnNpb24gb2Ygbm90YXRpb24gc3lzdGVtcyBpbiBNYWNyb21vbGVjdWxlIGNvbHVtbnMgKi9cbmV4cG9ydCBjbGFzcyBOb3RhdGlvbkNvbnZlcnRlciBleHRlbmRzIFVuaXRzSGFuZGxlciB7XG4gICAgY29uc3RydWN0b3IoY29sKSB7XG4gICAgICAgIHN1cGVyKGNvbCk7XG4gICAgICAgIHRoaXMuX3NwbGl0dGVyID0gbnVsbDtcbiAgICB9XG4gICAgZ2V0IHNwbGl0dGVyKCkge1xuICAgICAgICBpZiAodGhpcy5fc3BsaXR0ZXIgPT09IG51bGwpXG4gICAgICAgICAgICB0aGlzLl9zcGxpdHRlciA9IFdlYkxvZ28uZ2V0U3BsaXR0ZXJGb3JDb2x1bW4odGhpcy5jb2x1bW4pO1xuICAgICAgICByZXR1cm4gdGhpcy5fc3BsaXR0ZXI7XG4gICAgfVxuICAgIDtcbiAgICB0b0Zhc3RhKHRhcmdldE5vdGF0aW9uKSB7IHJldHVybiB0YXJnZXROb3RhdGlvbiA9PT0gXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovOyB9XG4gICAgdG9TZXBhcmF0b3IodGFyZ2V0Tm90YXRpb24pIHsgcmV0dXJuIHRhcmdldE5vdGF0aW9uID09PSBcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLzsgfVxuICAgIHRvSGVsbSh0YXJnZXROb3RhdGlvbikgeyByZXR1cm4gdGFyZ2V0Tm90YXRpb24gPT09IFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi87IH1cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IGEgTWFjcm9tb2xlY3VsZSBjb2x1bW4gZnJvbSBGQVNUQSB0byBTRVBBUkFUT1Igbm90YXRpb25cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZXBhcmF0b3IgIEEgc3BlY2lmaWMgc2VwYXJhdG9yIHRvIGJlIHVzZWRcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZmFzdGFHYXBTeW1ib2wgIEdhcCBzeW1ib2wgaW4gRkFTVEEsICctJyBieSBkZWZhdWx0XG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufSAgICAgICAgQSBuZXcgY29sdW1uIGluIFNFUEFSQVRPUiBub3RhdGlvblxuICAgICAqL1xuICAgIGNvbnZlcnRGYXN0YVRvU2VwYXJhdG9yKHNlcGFyYXRvciwgZmFzdGFHYXBTeW1ib2wgPSBudWxsKSB7XG4gICAgICAgIGlmIChmYXN0YUdhcFN5bWJvbCA9PT0gbnVsbClcbiAgICAgICAgICAgIGZhc3RhR2FwU3ltYm9sID0gdGhpcy5kZWZhdWx0R2FwU3ltYm9sO1xuICAgICAgICBjb25zdCBuZXdDb2x1bW4gPSB0aGlzLmdldE5ld0NvbHVtbihcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLyk7XG4gICAgICAgIC8vIGFzc2lnbiB0aGUgdmFsdWVzIHRvIHRoZSBuZXdseSBjcmVhdGVkIGVtcHR5IGNvbHVtblxuICAgICAgICBuZXdDb2x1bW4uaW5pdCgoaWR4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmYXN0YVBvbHltZXIgPSB0aGlzLmNvbHVtbi5nZXQoaWR4KTtcbiAgICAgICAgICAgIGNvbnN0IGZhc3RhTW9ub21lcnNBcnJheSA9IHRoaXMuc3BsaXR0ZXIoZmFzdGFQb2x5bWVyKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmFzdGFNb25vbWVyc0FycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZhc3RhTW9ub21lcnNBcnJheVtpXSA9PT0gZmFzdGFHYXBTeW1ib2wpXG4gICAgICAgICAgICAgICAgICAgIGZhc3RhTW9ub21lcnNBcnJheVtpXSA9IFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LlNFUEFSQVRPUjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYXN0YU1vbm9tZXJzQXJyYXkuam9pbihzZXBhcmF0b3IpO1xuICAgICAgICB9KTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5zZXBhcmF0b3IsIHNlcGFyYXRvcik7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgd3JhcHBlciBzdHJpbmdzIGZvciBIRUxNLCBkZXBlbmRpbmcgb24gdGhlIHR5cGUgb2YgdGhlXG4gICAgICogbWFjcm9tb2xlY3VsZSAocGVwdGlkZSwgRE5BLCBSTkEpXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtzdHJpbmdbXX0gQXJyYXkgb2Ygd3JhcHBlcnNcbiAgICAgKi9cbiAgICBnZXRIZWxtV3JhcHBlcnMoKSB7XG4gICAgICAgIGNvbnN0IHByZWZpeCA9ICh0aGlzLmlzRG5hKCkpID8gJ0ROQTF7JyA6XG4gICAgICAgICAgICAodGhpcy5pc1JuYSgpKSA/ICdSTkExeycgOlxuICAgICAgICAgICAgICAgICh0aGlzLmlzUGVwdGlkZSgpKSA/ICdQRVBUSURFMXsnIDpcbiAgICAgICAgICAgICAgICAgICAgJ1Vua25vd24nOyAvLyB0aGlzIGNhc2Ugc2hvdWxkIGJlIGhhbmRsZWQgYXMgZXhjZXB0aW9uYWxcbiAgICAgICAgaWYgKHByZWZpeCA9PT0gJ1Vua25vd24nKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOZWl0aGVyIHBlcHRpZGUsIG5vciBudWNsZW90aWRlJyk7XG4gICAgICAgIGNvbnN0IHBvc3RmaXggPSAnfSQkJCc7XG4gICAgICAgIGNvbnN0IGxlZnRXcmFwcGVyID0gKHRoaXMuaXNEbmEoKSkgPyAnRCgnIDpcbiAgICAgICAgICAgICh0aGlzLmlzUm5hKCkpID8gJ1IoJyA6ICcnOyAvLyBubyB3cmFwcGVyIGZvciBwZXB0aWRlc1xuICAgICAgICBjb25zdCByaWdodFdyYXBwZXIgPSAodGhpcy5pc0RuYSgpIHx8IHRoaXMuaXNSbmEoKSkgPyAnKVAnIDogJyc7IC8vIG5vIHdyYXBwZXIgZm9yIHBlcHRpZGVzXG4gICAgICAgIHJldHVybiBbcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4XTtcbiAgICB9XG4gICAgLy8gQSBoZWxwZXIgZnVuY3Rpb24gZm9yIGNvbnZlcnRpbmcgc3RyaW5ncyB0byBIRUxNXG4gICAgY29udmVydFRvSGVsbUhlbHBlcihzb3VyY2VQb2x5bWVyLCBzb3VyY2VHYXBTeW1ib2wsIHByZWZpeCwgbGVmdFdyYXBwZXIsIHJpZ2h0V3JhcHBlciwgcG9zdGZpeCkge1xuICAgICAgICBjb25zdCBtb25vbWVyQXJyYXkgPSB0aGlzLnNwbGl0dGVyKHNvdXJjZVBvbHltZXIpO1xuICAgICAgICBjb25zdCBtb25vbWVySGVsbUFycmF5ID0gbW9ub21lckFycmF5Lm1hcCgobW0pID0+IHtcbiAgICAgICAgICAgIGlmIChtbSA9PT0gc291cmNlR2FwU3ltYm9sKVxuICAgICAgICAgICAgICAgIHJldHVybiBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5IRUxNO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtsZWZ0V3JhcHBlcn0ke21tfSR7cmlnaHRXcmFwcGVyfWA7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYCR7cHJlZml4fSR7bW9ub21lckhlbG1BcnJheS5qb2luKCcuJyl9JHtwb3N0Zml4fWA7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgYSBzdHJpbmcgd2l0aCBTRVBBUkFUT1IvRkFTVEEgbm90YXRpb24gdG8gSEVMTVxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNvdXJjZVBvbHltZXIgIEEgc3RyaW5nIHRvIGJlIGNvbnZlcnRlZFxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbH0gc291cmNlR2FwU3ltYm9sICBBbiBvcHRpb25hbCBnYXAgc3ltYm9sLCBzZXQgdG9cbiAgICAgKiBkZWZhdWx0IHZhbHVlcyAoJy0nIGZvciBGQVNUQSBhbmQgJycgZm9yIFNFUEFSQVRPUikgdW5sZXNzIHNwZWNpZmllZFxuICAgICAqIEByZXR1cm4ge3N0cmluZ30gIFRoZSB0YXJnZXQgSEVMTSBzdHJpbmdcbiAgICAgKi9cbiAgICBjb252ZXJ0U3RyaW5nVG9IZWxtKHNvdXJjZVBvbHltZXIsIHNvdXJjZUdhcFN5bWJvbCA9IG51bGwpIHtcbiAgICAgICAgaWYgKHNvdXJjZUdhcFN5bWJvbCA9PT0gbnVsbClcbiAgICAgICAgICAgIHNvdXJjZUdhcFN5bWJvbCA9IHRoaXMuZGVmYXVsdEdhcFN5bWJvbDtcbiAgICAgICAgY29uc3QgW3ByZWZpeCwgbGVmdFdyYXBwZXIsIHJpZ2h0V3JhcHBlciwgcG9zdGZpeF0gPSB0aGlzLmdldEhlbG1XcmFwcGVycygpO1xuICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9IZWxtSGVscGVyKHNvdXJjZVBvbHltZXIsIHNvdXJjZUdhcFN5bWJvbCwgcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29udmVydCBhIGNvbHVtbiB0byBIRUxNXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGx9IHNvdXJjZUdhcFN5bWJvbFxuICAgICAqIEByZXR1cm4ge0RHLkNvbHVtbn1cbiAgICAgKi9cbiAgICBjb252ZXJ0VG9IZWxtKHNvdXJjZUdhcFN5bWJvbCA9IG51bGwpIHtcbiAgICAgICAgaWYgKHNvdXJjZUdhcFN5bWJvbCA9PT0gbnVsbClcbiAgICAgICAgICAgIHNvdXJjZUdhcFN5bWJvbCA9IHRoaXMuZGVmYXVsdEdhcFN5bWJvbDtcbiAgICAgICAgY29uc3QgW3ByZWZpeCwgbGVmdFdyYXBwZXIsIHJpZ2h0V3JhcHBlciwgcG9zdGZpeF0gPSB0aGlzLmdldEhlbG1XcmFwcGVycygpO1xuICAgICAgICBjb25zdCBuZXdDb2x1bW4gPSB0aGlzLmdldE5ld0NvbHVtbihcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovKTtcbiAgICAgICAgLy8gYXNzaWduIHRoZSB2YWx1ZXMgdG8gdGhlIGVtcHR5IGNvbHVtblxuICAgICAgICBuZXdDb2x1bW4uaW5pdCgoaWR4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzb3VyY2VQb2x5bWVyID0gdGhpcy5jb2x1bW4uZ2V0KGlkeCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9IZWxtSGVscGVyKHNvdXJjZVBvbHltZXIsIHNvdXJjZUdhcFN5bWJvbCwgcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgU0VQQVJBVE9SIGNvbHVtbiB0byBGQVNUQSBub3RhdGlvblxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsfSBmYXN0YUdhcFN5bWJvbCBPcHRpb25hbCBnYXAgc3ltYm9sIGZvciBGQVNUQVxuICAgICAqIEByZXR1cm4ge0RHLkNvbHVtbn0gIENvbnZlcnRlZCBjb2x1bW5cbiAgICAgKi9cbiAgICBjb252ZXJ0U2VwYXJhdG9yVG9GYXN0YShmYXN0YUdhcFN5bWJvbCA9IG51bGwpIHtcbiAgICAgICAgaWYgKGZhc3RhR2FwU3ltYm9sID09PSBudWxsKVxuICAgICAgICAgICAgZmFzdGFHYXBTeW1ib2wgPSBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5GQVNUQTtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1uID0gdGhpcy5nZXROZXdDb2x1bW4oXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovKTtcbiAgICAgICAgLy8gYXNzaWduIHRoZSB2YWx1ZXMgdG8gdGhlIGVtcHR5IGNvbHVtblxuICAgICAgICBuZXdDb2x1bW4uaW5pdCgoaWR4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZXBhcmF0b3JQb2x5bWVyID0gdGhpcy5jb2x1bW4uZ2V0KGlkeCk7XG4gICAgICAgICAgICAvLyBpdGVtcyBjYW4gYmUgbW9ub21lcnMgb3Igc2VwYXJhdG9yc1xuICAgICAgICAgICAgY29uc3Qgc2VwYXJhdG9ySXRlbXNBcnJheSA9IHRoaXMuc3BsaXR0ZXIoc2VwYXJhdG9yUG9seW1lcik7XG4gICAgICAgICAgICBjb25zdCBmYXN0YU1vbm9tZXJzQXJyYXkgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VwYXJhdG9ySXRlbXNBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBzZXBhcmF0b3JJdGVtc0FycmF5W2ldO1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBmYXN0YU1vbm9tZXJzQXJyYXkucHVzaChmYXN0YUdhcFN5bWJvbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGl0ZW0ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGUgY2FzZSBvZiBhIG11bHRpLWNoYXJhY3RlciBtb25vbWVyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vbm9tZXIgPSAnWycgKyBpdGVtICsgJ10nO1xuICAgICAgICAgICAgICAgICAgICBmYXN0YU1vbm9tZXJzQXJyYXkucHVzaChtb25vbWVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGZhc3RhTW9ub21lcnNBcnJheS5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYXN0YU1vbm9tZXJzQXJyYXkuam9pbignJyk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3Q29sdW1uO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiAgQ29udmVydCBIRUxNIGNvbHVtbiB0byBGQVNUQS9TRVBBUkFUT1JcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0Z3ROb3RhdGlvbiAgICBUYXJnZXQgbm90YXRpb246IEZBU1RBIG9yIFNFUEFSQVRPUlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0Z3RTZXBhcmF0b3IgICBPcHRpb25hbCB0YXJnZXQgc2VwYXJhdG9yIChmb3IgSEVMTSAtPlxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbH0gdGd0R2FwU3ltYm9sICAgT3B0aW9uYWwgdGFyZ2V0IGdhcCBzeW1ib2xcbiAgICAgKiBTRVBBUkFUT1IpXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufSBDb252ZXJ0ZWQgY29sdW1uXG4gICAgICovXG4gICAgY29udmVydEhlbG0odGd0Tm90YXRpb24sIHRndFNlcGFyYXRvciA9ICcnLCB0Z3RHYXBTeW1ib2wgPSBudWxsKSB7XG4gICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gbXVzdCBub3QgY29udGFpbiBjYWxscyBvZiBpc0RuYSgpIGFuZCBpc1JuYSgpLCBmb3JcbiAgICAgICAgLy8gc291cmNlIGhlbG0gY29sdW1ucyBtYXkgY29udGFpbiBSTkEsIEROQSBhbmQgUFQgYWNyb3NzIGRpZmZlcmVudCByb3dzXG4gICAgICAgIGlmICh0Z3RHYXBTeW1ib2wgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRndEdhcFN5bWJvbCA9ICh0aGlzLnRvRmFzdGEodGd0Tm90YXRpb24pKSA/XG4gICAgICAgICAgICAgICAgVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuRkFTVEEgOlxuICAgICAgICAgICAgICAgIFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LlNFUEFSQVRPUjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50b1NlcGFyYXRvcih0Z3ROb3RhdGlvbikgJiYgdGd0U2VwYXJhdG9yID09PSAnJylcbiAgICAgICAgICAgIHRndFNlcGFyYXRvciA9IHRoaXMuc2VwYXJhdG9yO1xuICAgICAgICBjb25zdCBoZWxtV3JhcHBlcnNSZSA9IC8oUlxcKHxEXFwofFxcKXxQKS9nO1xuICAgICAgICBjb25zdCBuZXdDb2x1bW4gPSB0aGlzLmdldE5ld0NvbHVtbih0Z3ROb3RhdGlvbik7XG4gICAgICAgIC8vIGFzc2lnbiB0aGUgdmFsdWVzIHRvIHRoZSBlbXB0eSBjb2x1bW5cbiAgICAgICAgbmV3Q29sdW1uLmluaXQoKGlkeCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaGVsbVBvbHltZXIgPSB0aGlzLmNvbHVtbi5nZXQoaWR4KTtcbiAgICAgICAgICAgIC8vIHdlIGNhbm5vdCB1c2UgaXNEbmEoKSBvciBpc1JuYSgpIGJlY2F1c2Ugc291cmNlIGhlbG0gY29sdW1ucyBjYW5cbiAgICAgICAgICAgIC8vIGNvbnRhaW4gRE5BLCBSTkEgYW5kIFBUIGluIGRpZmZlcmVudCBjZWxscywgc28gdGhlIGNvcnJlc3BvbmRpbmdcbiAgICAgICAgICAgIC8vIHRhZ3MgY2Fubm90IGJlIHNldCBmb3IgdGhlIHdob2xlIGNvbHVtblxuICAgICAgICAgICAgY29uc3QgaXNOdWNsZW90aWRlID0gaGVsbVBvbHltZXIuc3RhcnRzV2l0aCgnRE5BJykgfHwgaGVsbVBvbHltZXIuc3RhcnRzV2l0aCgnUk5BJyk7XG4gICAgICAgICAgICAvLyBpdGVtcyBjYW4gYmUgbW9ub21lcnMgb3IgaGVsbXNcbiAgICAgICAgICAgIGNvbnN0IGhlbG1JdGVtc0FycmF5ID0gdGhpcy5zcGxpdHRlcihoZWxtUG9seW1lcik7XG4gICAgICAgICAgICBjb25zdCB0Z3RNb25vbWVyc0FycmF5ID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGhlbG1JdGVtc0FycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBoZWxtSXRlbXNBcnJheVtpXTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOdWNsZW90aWRlKVxuICAgICAgICAgICAgICAgICAgICBpdGVtID0gaXRlbS5yZXBsYWNlKGhlbG1XcmFwcGVyc1JlLCAnJyk7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0gPT09IFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LkhFTE0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGd0TW9ub21lcnNBcnJheS5wdXNoKHRndEdhcFN5bWJvbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMudG9GYXN0YSh0Z3ROb3RhdGlvbikgJiYgaXRlbS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjYXNlIG9mIGEgbXVsdGktY2hhcmFjdGVyIG1vbm9tZXIgY29udmVydGVkIHRvIEZBU1RBXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vbm9tZXIgPSAnWycgKyBpdGVtICsgJ10nO1xuICAgICAgICAgICAgICAgICAgICB0Z3RNb25vbWVyc0FycmF5LnB1c2gobW9ub21lcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0Z3RNb25vbWVyc0FycmF5LnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRndE1vbm9tZXJzQXJyYXkuam9pbih0Z3RTZXBhcmF0b3IpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgICB9XG4gICAgY29udmVydEhlbG1Ub1NlcGFyYXRvcigpIHtcbiAgICAgICAgLy8gVE9ETzogaW1wbGVtZW50YXRpb3JldHVybiB0aGlzLmdldE5ld0NvbHVtbigpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXROZXdDb2x1bW4oXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8pO1xuICAgIH1cbiAgICAvKiogRGlzcGF0Y2hlciBtZXRob2QgZm9yIG5vdGF0aW9uIGNvbnZlcnNpb25cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Tk9UQVRJT059IHRndE5vdGF0aW9uICAgTm90YXRpb24gd2Ugd2FudCB0byBjb252ZXJ0IHRvXG4gICAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsfSB0Z3RTZXBhcmF0b3IgICBQb3NzaWJsZSBzZXBhcmF0b3JcbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59ICAgICAgICAgICAgICAgIENvbnZlcnRlZCBjb2x1bW5cbiAgICAgKi9cbiAgICBjb252ZXJ0KHRndE5vdGF0aW9uLCB0Z3RTZXBhcmF0b3IgPSBudWxsKSB7XG4gICAgICAgIC8vIHBvc3NpYmxlIGV4Y2VwdGlvbnNcbiAgICAgICAgaWYgKHRoaXMubm90YXRpb24gPT09IHRndE5vdGF0aW9uKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0Z3Qgbm90YXRpb24gaXMgaW52YWxpZCcpO1xuICAgICAgICBpZiAodGhpcy50b1NlcGFyYXRvcih0Z3ROb3RhdGlvbikgJiYgdGd0U2VwYXJhdG9yID09PSBudWxsKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0Z3Qgc2VwYXJhdG9yIGlzIG5vdCBzcGVjaWZpZWQnKTtcbiAgICAgICAgaWYgKHRoaXMuaXNGYXN0YSgpICYmIHRoaXMudG9TZXBhcmF0b3IodGd0Tm90YXRpb24pICYmIHRndFNlcGFyYXRvciAhPT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRGYXN0YVRvU2VwYXJhdG9yKHRndFNlcGFyYXRvcik7XG4gICAgICAgIGVsc2UgaWYgKCh0aGlzLmlzRmFzdGEoKSB8fCB0aGlzLmlzU2VwYXJhdG9yKCkpICYmIHRoaXMudG9IZWxtKHRndE5vdGF0aW9uKSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRUb0hlbG0oKTtcbiAgICAgICAgZWxzZSBpZiAodGhpcy5pc1NlcGFyYXRvcigpICYmIHRoaXMudG9GYXN0YSh0Z3ROb3RhdGlvbikpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0U2VwYXJhdG9yVG9GYXN0YSgpO1xuICAgICAgICBlbHNlIGlmICh0aGlzLmlzSGVsbSgpICYmIHRoaXMudG9GYXN0YSh0Z3ROb3RhdGlvbikpIC8vIHRoZSBjYXNlIG9mIEhFTE1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRIZWxtKHRndE5vdGF0aW9uKTtcbiAgICAgICAgZWxzZSAvLyB0aGlzLmlzSGVsbSgpICYmIHRoaXMudG9TZXBhcmF0b3IodGd0Tm90YXRpb24pXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0SGVsbSh0Z3ROb3RhdGlvbiwgdGd0U2VwYXJhdG9yKTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2libTkwWVhScGIyNHRZMjl1ZG1WeWRHVnlMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaWJtOTBZWFJwYjI0dFkyOXVkbVZ5ZEdWeUxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVWxCTEU5QlFVOHNSVUZCWlN4UFFVRlBMRVZCUVVNc1RVRkJUU3h4UWtGQmNVSXNRMEZCUXp0QlFVTXhSQ3hQUVVGUExFVkJRVU1zV1VGQldTeEZRVUZYTEUxQlFVMHNhVUpCUVdsQ0xFTkJRVU03UVVGRmRrUXNhVVpCUVdsR08wRkJRMnBHTEUxQlFVMHNUMEZCVHl4cFFrRkJhMElzVTBGQlVTeFpRVUZaTzBsQmExQnFSQ3haUVVGdFFpeEhRVUZqTzFGQlF5OUNMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRV3hRVEN4alFVRlRMRWRCUVhkQ0xFbEJRVWtzUTBGQlF6dEpRVzFRT1VNc1EwRkJRenRKUVd4UVJDeEpRVUZqTEZGQlFWRTdVVUZEY0VJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVTBGQlV5eExRVUZMTEVsQlFVazdXVUZEZWtJc1NVRkJTU3hEUVVGRExGTkJRVk1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUXpkRUxFOUJRVThzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXp0SlFVTjRRaXhEUVVGRE8wbEJRVUVzUTBGQlF6dEpRVVZMTEU5QlFVOHNRMEZCUXl4alFVRjNRaXhKUVVGaExFOUJRVThzWTBGQll5eHBRMEZCYlVJc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmVFWXNWMEZCVnl4RFFVRkRMR05CUVhkQ0xFbEJRV0VzVDBGQlR5eGpRVUZqTEhsRFFVRjFRaXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVZvUnl4TlFVRk5MRU5CUVVNc1kwRkJkMElzU1VGQllTeFBRVUZQTEdOQlFXTXNLMEpCUVd0Q0xFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJUZEdPenM3T3pzN1QwRk5SenRKUVVOTExIVkNRVUYxUWl4RFFVRkRMRk5CUVdsQ0xFVkJRVVVzYVVKQlFXZERMRWxCUVVrN1VVRkRja1lzU1VGQlNTeGpRVUZqTEV0QlFVc3NTVUZCU1R0WlFVTjZRaXhqUVVGakxFZEJRVWNzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRE8xRkJSWHBETEUxQlFVMHNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhaUVVGWkxITkRRVUZ2UWl4RFFVRkRPMUZCUTNoRUxITkVRVUZ6UkR0UlFVTjBSQ3hUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNSMEZCVnl4RlFVRkZMRVZCUVVVN1dVRkROMElzVFVGQlRTeFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZETVVNc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFsQlEzWkVMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4clFrRkJhMElzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1owSkJRMnhFTEVsQlFVa3NhMEpCUVd0Q0xFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NZMEZCWXp0dlFrRkRNVU1zYTBKQlFXdENMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzV1VGQldTeERRVUZETEhOQ1FVRnpRaXhEUVVGRExGTkJRVk1zUTBGQlF6dGhRVU42UlR0WlFVTkVMRTlCUVU4c2EwSkJRV3RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJRelZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTBnc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU42UkN4UFFVRlBMRk5CUVZNc1EwRkJRenRKUVVOdVFpeERRVUZETzBsQlJVUTdPenM3TzA5QlMwYzdTVUZEU3l4bFFVRmxPMUZCUTNKQ0xFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMWxCUTNaRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzJkQ1FVTjRRaXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6dHZRa0ZEYUVNc1UwRkJVeXhEUVVGRExFTkJRVU1zTmtOQlFUWkRPMUZCUlRsRUxFbEJRVWtzVFVGQlRTeExRVUZMTEZOQlFWTTdXVUZEZEVJc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eHBRMEZCYVVNc1EwRkJReXhEUVVGRE8xRkJSWEpFTEUxQlFVMHNUMEZCVHl4SFFVRkhMRTFCUVUwc1EwRkJRenRSUVVOMlFpeE5RVUZOTEZkQlFWY3NSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVONlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExEQkNRVUV3UWp0UlFVTjRSQ3hOUVVGTkxGbEJRVmtzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl3d1FrRkJNRUk3VVVGRE0wWXNUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hYUVVGWExFVkJRVVVzV1VGQldTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTNSRUxFTkJRVU03U1VGRlJDeHRSRUZCYlVRN1NVRkRNME1zYlVKQlFXMUNMRU5CUTNwQ0xHRkJRWEZDTEVWQlEzSkNMR1ZCUVhWQ0xFVkJRM1pDTEUxQlFXTXNSVUZEWkN4WFFVRnRRaXhGUVVOdVFpeFpRVUZ2UWl4RlFVTndRaXhQUVVGbE8xRkJSV1lzVFVGQlRTeFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dFJRVU5zUkN4TlFVRk5MR2RDUVVGblFpeEhRVUZoTEZsQlFWa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGVkxFVkJRVVVzUlVGQlJUdFpRVU5xUlN4SlFVRkpMRVZCUVVVc1MwRkJTeXhsUVVGbE8yZENRVU40UWl4UFFVRlBMRmxCUVZrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4SlFVRkpMRU5CUVVNN08yZENRVVZvUkN4UFFVRlBMRWRCUVVjc1YwRkJWeXhIUVVGSExFVkJRVVVzUjBGQlJ5eFpRVUZaTEVWQlFVVXNRMEZCUXp0UlFVTm9SQ3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5JTEU5QlFVOHNSMEZCUnl4TlFVRk5MRWRCUVVjc1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFOUJRVThzUlVGQlJTeERRVUZETzBsQlF6VkVMRU5CUVVNN1NVRkZSRHM3T3pzN096dFBRVTlITzBsQlEwa3NiVUpCUVcxQ0xFTkJRM2hDTEdGQlFYRkNMRVZCUTNKQ0xHdENRVUZwUXl4SlFVRkpPMUZCUlhKRExFbEJRVWtzWlVGQlpTeExRVUZMTEVsQlFVazdXVUZETVVJc1pVRkJaU3hIUVVGSExFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJRenRSUVVNeFF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RlFVRkZMRmRCUVZjc1JVRkJSU3haUVVGWkxFVkJRVVVzVDBGQlR5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMR1ZCUVdVc1JVRkJSU3hEUVVGRE8xRkJRelZGTEU5QlFVOHNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVUZETEdGQlFXRXNSVUZCUlN4bFFVRmxMRVZCUVVVc1RVRkJUU3hGUVVGRkxGZEJRVmNzUlVGQlJTeFpRVUZaTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRPVWNzUTBGQlF6dEpRVVZFT3pzN096dFBRVXRITzBsQlEwc3NZVUZCWVN4RFFVRkRMR3RDUVVGcFF5eEpRVUZKTzFGQlEzcEVMRWxCUVVrc1pVRkJaU3hMUVVGTExFbEJRVWs3V1VGRE1VSXNaVUZCWlN4SFFVRkhMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXp0UlFVVXhReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVUZGTEZkQlFWY3NSVUZCUlN4WlFVRlpMRVZCUVVVc1QwRkJUeXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEdWQlFXVXNSVUZCUlN4RFFVRkRPMUZCUlRWRkxFMUJRVTBzVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4WlFVRlpMRFJDUVVGbExFTkJRVU03VVVGRGJrUXNkME5CUVhkRE8xRkJRM2hETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGWExFVkJRVVVzUlVGQlJUdFpRVU0zUWl4TlFVRk5MR0ZCUVdFc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVNelF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eGhRVUZoTEVWQlFVVXNaVUZCWjBJc1JVRkJSU3hOUVVGTkxFVkJRVVVzVjBGQlZ5eEZRVUZGTEZsQlFWa3NSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVNdlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTklMRTlCUVU4c1UwRkJVeXhEUVVGRE8wbEJRMjVDTEVOQlFVTTdTVUZGUkRzN096czdUMEZMUnp0SlFVTkxMSFZDUVVGMVFpeERRVUZETEdsQ1FVRm5ReXhKUVVGSk8xRkJRMnhGTEVsQlFVa3NZMEZCWXl4TFFVRkxMRWxCUVVrN1dVRkRla0lzWTBGQll5eEhRVUZITEZsQlFWa3NRMEZCUXl4elFrRkJjMElzUTBGQlF5eExRVUZMTEVOQlFVTTdVVUZGTjBRc1RVRkJUU3hUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEZsQlFWa3NPRUpCUVdkQ0xFTkJRVU03VVVGRGNFUXNkME5CUVhkRE8xRkJRM2hETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGWExFVkJRVVVzUlVGQlJUdFpRVU0zUWl4TlFVRk5MR2RDUVVGblFpeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlF6bERMSE5EUVVGelF6dFpRVU4wUXl4TlFVRk5MRzFDUVVGdFFpeEhRVUZITEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXp0WlFVTTFSQ3hOUVVGTkxHdENRVUZyUWl4SFFVRmhMRVZCUVVVc1EwRkJRenRaUVVONFF5eExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzYlVKQlFXMUNMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzJkQ1FVTnVSQ3hOUVVGTkxFbEJRVWtzUjBGQlJ5eHRRa0ZCYlVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEY0VNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeExRVUZMTEVOQlFVTXNSVUZCUlR0dlFrRkRja0lzYTBKQlFXdENMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV1VzUTBGQlF5eERRVUZETzJsQ1FVTXhRenR4UWtGQlRTeEpRVUZKTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhGUVVGRk8yOUNRVU14UWl4M1EwRkJkME03YjBKQlEzaERMRTFCUVUwc1QwRkJUeXhIUVVGSExFZEJRVWNzUjBGQlJ5eEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRPMjlDUVVOcVF5eHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdhVUpCUTJ4RE8zRkNRVUZOTzI5Q1FVTk1MR3RDUVVGclFpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRwUWtGREwwSTdZVUZEUmp0WlFVTkVMRTlCUVU4c2EwSkJRV3RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM0pETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTBnc1QwRkJUeXhUUVVGVExFTkJRVU03U1VGRGJrSXNRMEZCUXp0SlFVVkVPenM3T3pzN096dFBRVkZITzBsQlEwc3NWMEZCVnl4RFFVTnFRaXhYUVVGdFFpeEZRVU51UWl4bFFVRjFRaXhGUVVGRkxFVkJRM3BDTEdWQlFUaENMRWxCUVVrN1VVRkZiRU1zYlVWQlFXMUZPMUZCUTI1RkxIZEZRVUYzUlR0UlFVTjRSU3hKUVVGSkxGbEJRVmtzUzBGQlN5eEpRVUZKTEVWQlFVVTdXVUZEZWtJc1dVRkJXU3hIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4WFFVRjFRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTjBSQ3haUVVGWkxFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03WjBKQlF6TkRMRmxCUVZrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4VFFVRlRMRU5CUVVNN1UwRkRha1E3VVVGRlJDeEpRVUZKTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1YwRkJkVUlzUTBGQlF5eEpRVUZKTEZsQlFWa3NTMEZCU3l4RlFVRkZPMWxCUTJ4RkxGbEJRVmtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRPMUZCUldoRExFMUJRVTBzWTBGQll5eEhRVUZITEdsQ1FVRnBRaXhEUVVGRE8xRkJRM3BETEUxQlFVMHNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zVjBGQmRVSXNRMEZCUXl4RFFVRkRPMUZCUXpkRUxIZERRVUYzUXp0UlFVTjRReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNSMEZCVnl4RlFVRkZMRVZCUVVVN1dVRkROMElzVFVGQlRTeFhRVUZYTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZGZWtNc2JVVkJRVzFGTzFsQlEyNUZMRzFGUVVGdFJUdFpRVU51UlN3d1EwRkJNRU03V1VGRE1VTXNUVUZCVFN4WlFVRlpMRWRCUVVjc1YwRkJWeXhEUVVGRExGVkJRVlVzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4WFFVRlhMRU5CUVVNc1ZVRkJWU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFsQlJYQkdMR2xEUVVGcFF6dFpRVU5xUXl4TlFVRk5MR05CUVdNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMWxCUTJ4RUxFMUJRVTBzWjBKQlFXZENMRWRCUVdFc1JVRkJSU3hEUVVGRE8xbEJRM1JETEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eGpRVUZqTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8yZENRVU01UXl4SlFVRkpMRWxCUVVrc1IwRkJSeXhqUVVGakxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUXpkQ0xFbEJRVWtzV1VGQldUdHZRa0ZEWkN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eGpRVUZqTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1owSkJRekZETEVsQlFVa3NTVUZCU1N4TFFVRkxMRmxCUVZrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4SlFVRkpMRVZCUVVVN2IwSkJRM0pFTEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZoTEVOQlFVTXNRMEZCUXp0cFFrRkRkRU03Y1VKQlFVMHNTVUZCU1N4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExGZEJRWFZDTEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUlVGQlJUdHZRa0ZEYmtVc01rUkJRVEpFTzI5Q1FVTXpSQ3hOUVVGTkxFOUJRVThzUjBGQlJ5eEhRVUZITEVkQlFVY3NTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJRenR2UWtGRGFrTXNaMEpCUVdkQ0xFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMmxDUVVOb1F6dHhRa0ZCVFR0dlFrRkRUQ3huUWtGQlowSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03YVVKQlF6ZENPMkZCUTBZN1dVRkRSQ3hQUVVGUExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFJRVU0zUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOSUxFOUJRVThzVTBGQlV5eERRVUZETzBsQlEyNUNMRU5CUVVNN1NVRkZUeXh6UWtGQmMwSTdVVUZETlVJc2FVUkJRV2xFTzFGQlEycEVMRTlCUVU4c1NVRkJTU3hEUVVGRExGbEJRVmtzYzBOQlFXOUNMRU5CUVVNN1NVRkRMME1zUTBGQlF6dEpRVVZFT3pzN096dFBRVXRITzBsQlEwa3NUMEZCVHl4RFFVRkRMRmRCUVhGQ0xFVkJRVVVzWlVGQk9FSXNTVUZCU1R0UlFVTjBSU3h6UWtGQmMwSTdVVUZEZEVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVVVGQlVTeExRVUZMTEZkQlFWYzdXVUZETDBJc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eDVRa0ZCZVVJc1EwRkJReXhEUVVGRE8xRkJRemRETEVsQlFVa3NTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeFpRVUZaTEV0QlFVc3NTVUZCU1R0WlFVTjRSQ3hOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEdkRFFVRm5ReXhEUVVGRExFTkJRVU03VVVGRmNFUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFbEJRVWtzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3haUVVGWkxFdEJRVXNzU1VGQlNUdFpRVU14UlN4UFFVRlBMRWxCUVVrc1EwRkJReXgxUWtGQmRVSXNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRoUVVNdlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVjBGQlZ5eERRVUZETzFsQlEzcEZMRTlCUVU4c1NVRkJTU3hEUVVGRExHRkJRV0VzUlVGQlJTeERRVUZETzJGQlEzcENMRWxCUVVrc1NVRkJTU3hEUVVGRExGZEJRVmNzUlVGQlJTeEpRVUZKTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1YwRkJWeXhEUVVGRE8xbEJRM1JFTEU5QlFVOHNTVUZCU1N4RFFVRkRMSFZDUVVGMVFpeEZRVUZGTEVOQlFVTTdZVUZEYmtNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhYUVVGWExFTkJRVU1zUlVGQlJTeHRRa0ZCYlVJN1dVRkRkRVVzVDBGQlR5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8yRkJRMnhETEdsRVFVRnBSRHRaUVVOd1JDeFBRVUZQTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1YwRkJWeXhGUVVGRkxGbEJRV0VzUTBGQlF5eERRVUZETzBsQlEzaEVMRU5CUVVNN1EwRkxSaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUlFUnZJRzV2ZENCamFHRnVaMlVnZEdobGMyVWdhVzF3YjNKMElHeHBibVZ6SUhSdklHMWhkR05vSUdWNGRHVnlibUZzSUcxdlpIVnNaWE1nYVc0Z2QyVmljR0ZqYXlCamIyNW1hV2QxY21GMGFXOXVJQ292WEc1cGJYQnZjblFnS2lCaGN5Qm5jbTlySUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5bmNtOXJKenRjYm1sdGNHOXlkQ0FxSUdGeklIVnBJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzkxYVNjN1hHNXBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1YVcxd2IzSjBJSHRUY0d4cGRIUmxja1oxYm1Nc0lGZGxZa3h2WjI5OUlHWnliMjBnSnk0dUwzWnBaWGRsY25NdmQyVmlMV3h2WjI4bk8xeHVhVzF3YjNKMElIdFZibWwwYzBoaGJtUnNaWElzSUU1UFZFRlVTVTlPZlNCbWNtOXRJQ2N1TDNWdWFYUnpMV2hoYm1Sc1pYSW5PMXh1WEc0dktpb2dRMnhoYzNNZ1ptOXlJR2hoYm1Sc2FXNW5JR052Ym5abGNuTnBiMjRnYjJZZ2JtOTBZWFJwYjI0Z2MzbHpkR1Z0Y3lCcGJpQk5ZV055YjIxdmJHVmpkV3hsSUdOdmJIVnRibk1nS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJPYjNSaGRHbHZia052Ym5abGNuUmxjaUJsZUhSbGJtUnpJRlZ1YVhSelNHRnVaR3hsY2lCN1hHNGdJSEJ5YVhaaGRHVWdYM053YkdsMGRHVnlPaUJUY0d4cGRIUmxja1oxYm1NZ2ZDQnVkV3hzSUQwZ2JuVnNiRHRjYmlBZ2NISnZkR1ZqZEdWa0lHZGxkQ0J6Y0d4cGRIUmxjaWdwT2lCVGNHeHBkSFJsY2taMWJtTWdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxsOXpjR3hwZEhSbGNpQTlQVDBnYm5Wc2JDbGNiaUFnSUNBZ0lIUm9hWE11WDNOd2JHbDBkR1Z5SUQwZ1YyVmlURzluYnk1blpYUlRjR3hwZEhSbGNrWnZja052YkhWdGJpaDBhR2x6TG1OdmJIVnRiaWs3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WDNOd2JHbDBkR1Z5TzF4dUlDQjlPMXh1WEc0Z0lIQjFZbXhwWXlCMGIwWmhjM1JoS0hSaGNtZGxkRTV2ZEdGMGFXOXVPaUJPVDFSQlZFbFBUaWs2SUdKdmIyeGxZVzRnZXlCeVpYUjFjbTRnZEdGeVoyVjBUbTkwWVhScGIyNGdQVDA5SUU1UFZFRlVTVTlPTGtaQlUxUkJPeUI5WEc1Y2JpQWdjSFZpYkdsaklIUnZVMlZ3WVhKaGRHOXlLSFJoY21kbGRFNXZkR0YwYVc5dU9pQk9UMVJCVkVsUFRpazZJR0p2YjJ4bFlXNGdleUJ5WlhSMWNtNGdkR0Z5WjJWMFRtOTBZWFJwYjI0Z1BUMDlJRTVQVkVGVVNVOU9MbE5GVUVGU1FWUlBVanNnZlZ4dVhHNGdJSEIxWW14cFl5QjBiMGhsYkcwb2RHRnlaMlYwVG05MFlYUnBiMjQ2SUU1UFZFRlVTVTlPS1RvZ1ltOXZiR1ZoYmlCN0lISmxkSFZ5YmlCMFlYSm5aWFJPYjNSaGRHbHZiaUE5UFQwZ1RrOVVRVlJKVDA0dVNFVk1UVHNnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJEYjI1MlpYSjBJR0VnVFdGamNtOXRiMnhsWTNWc1pTQmpiMngxYlc0Z1puSnZiU0JHUVZOVVFTQjBieUJUUlZCQlVrRlVUMUlnYm05MFlYUnBiMjVjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhObGNHRnlZWFJ2Y2lBZ1FTQnpjR1ZqYVdacFl5QnpaWEJoY21GMGIzSWdkRzhnWW1VZ2RYTmxaRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1ptRnpkR0ZIWVhCVGVXMWliMndnSUVkaGNDQnplVzFpYjJ3Z2FXNGdSa0ZUVkVFc0lDY3RKeUJpZVNCa1pXWmhkV3gwWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMFJITGtOdmJIVnRibjBnSUNBZ0lDQWdJRUVnYm1WM0lHTnZiSFZ0YmlCcGJpQlRSVkJCVWtGVVQxSWdibTkwWVhScGIyNWNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdZMjl1ZG1WeWRFWmhjM1JoVkc5VFpYQmhjbUYwYjNJb2MyVndZWEpoZEc5eU9pQnpkSEpwYm1jc0lHWmhjM1JoUjJGd1UzbHRZbTlzT2lCemRISnBibWNnZkNCdWRXeHNJRDBnYm5Wc2JDazZJRVJITGtOdmJIVnRiaUI3WEc0Z0lDQWdhV1lnS0daaGMzUmhSMkZ3VTNsdFltOXNJRDA5UFNCdWRXeHNLVnh1SUNBZ0lDQWdabUZ6ZEdGSFlYQlRlVzFpYjJ3Z1BTQjBhR2x6TG1SbFptRjFiSFJIWVhCVGVXMWliMnc3WEc1Y2JpQWdJQ0JqYjI1emRDQnVaWGREYjJ4MWJXNGdQU0IwYUdsekxtZGxkRTVsZDBOdmJIVnRiaWhPVDFSQlZFbFBUaTVUUlZCQlVrRlVUMUlwTzF4dUlDQWdJQzh2SUdGemMybG5iaUIwYUdVZ2RtRnNkV1Z6SUhSdklIUm9aU0J1Wlhkc2VTQmpjbVZoZEdWa0lHVnRjSFI1SUdOdmJIVnRibHh1SUNBZ0lHNWxkME52YkhWdGJpNXBibWwwS0NocFpIZzZJRzUxYldKbGNpa2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdabUZ6ZEdGUWIyeDViV1Z5SUQwZ2RHaHBjeTVqYjJ4MWJXNHVaMlYwS0dsa2VDazdYRzRnSUNBZ0lDQmpiMjV6ZENCbVlYTjBZVTF2Ym05dFpYSnpRWEp5WVhrZ1BTQjBhR2x6TG5Od2JHbDBkR1Z5S0daaGMzUmhVRzlzZVcxbGNpazdYRzRnSUNBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR1poYzNSaFRXOXViMjFsY25OQmNuSmhlUzVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvWm1GemRHRk5iMjV2YldWeWMwRnljbUY1VzJsZElEMDlQU0JtWVhOMFlVZGhjRk41YldKdmJDbGNiaUFnSUNBZ0lDQWdJQ0JtWVhOMFlVMXZibTl0WlhKelFYSnlZWGxiYVYwZ1BTQlZibWwwYzBoaGJtUnNaWEl1WDJSbFptRjFiSFJIWVhCVGVXMWliMnh6UkdsamRDNVRSVkJCVWtGVVQxSTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z1ptRnpkR0ZOYjI1dmJXVnljMEZ5Y21GNUxtcHZhVzRvYzJWd1lYSmhkRzl5S1R0Y2JpQWdJQ0I5S1R0Y2JpQWdJQ0J1WlhkRGIyeDFiVzR1YzJWMFZHRm5LRlZ1YVhSelNHRnVaR3hsY2k1VVFVZFRMbk5sY0dGeVlYUnZjaXdnYzJWd1lYSmhkRzl5S1R0Y2JpQWdJQ0J5WlhSMWNtNGdibVYzUTI5c2RXMXVPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVkbGRDQjBhR1VnZDNKaGNIQmxjaUJ6ZEhKcGJtZHpJR1p2Y2lCSVJVeE5MQ0JrWlhCbGJtUnBibWNnYjI0Z2RHaGxJSFI1Y0dVZ2IyWWdkR2hsWEc0Z0lDQXFJRzFoWTNKdmJXOXNaV04xYkdVZ0tIQmxjSFJwWkdVc0lFUk9RU3dnVWs1QktWeHVJQ0FnS2x4dUlDQWdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZGJYWDBnUVhKeVlYa2diMllnZDNKaGNIQmxjbk5jYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWjJWMFNHVnNiVmR5WVhCd1pYSnpLQ2s2SUhOMGNtbHVaMXRkSUh0Y2JpQWdJQ0JqYjI1emRDQndjbVZtYVhnZ1BTQW9kR2hwY3k1cGMwUnVZU2dwS1NBL0lDZEVUa0V4ZXljZ09seHVJQ0FnSUNBZ0tIUm9hWE11YVhOU2JtRW9LU2tnUHlBblVrNUJNWHNuSURwY2JpQWdJQ0FnSUNBZ0tIUm9hWE11YVhOUVpYQjBhV1JsS0NrcElEOGdKMUJGVUZSSlJFVXhleWNnT2x4dUlDQWdJQ0FnSUNBZ0lDZFZibXR1YjNkdUp6c2dMeThnZEdocGN5QmpZWE5sSUhOb2IzVnNaQ0JpWlNCb1lXNWtiR1ZrSUdGeklHVjRZMlZ3ZEdsdmJtRnNYRzVjYmlBZ0lDQnBaaUFvY0hKbFptbDRJRDA5UFNBblZXNXJibTkzYmljcFhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjA1bGFYUm9aWElnY0dWd2RHbGtaU3dnYm05eUlHNTFZMnhsYjNScFpHVW5LVHRjYmx4dUlDQWdJR052Ym5OMElIQnZjM1JtYVhnZ1BTQW5mU1FrSkNjN1hHNGdJQ0FnWTI5dWMzUWdiR1ZtZEZkeVlYQndaWElnUFNBb2RHaHBjeTVwYzBSdVlTZ3BLU0EvSUNkRUtDY2dPbHh1SUNBZ0lDQWdLSFJvYVhNdWFYTlNibUVvS1NrZ1B5QW5VaWduSURvZ0p5YzdJQzh2SUc1dklIZHlZWEJ3WlhJZ1ptOXlJSEJsY0hScFpHVnpYRzRnSUNBZ1kyOXVjM1FnY21sbmFIUlhjbUZ3Y0dWeUlEMGdLSFJvYVhNdWFYTkVibUVvS1NCOGZDQjBhR2x6TG1selVtNWhLQ2twSUQ4Z0p5bFFKeUE2SUNjbk95QXZMeUJ1YnlCM2NtRndjR1Z5SUdadmNpQndaWEIwYVdSbGMxeHVJQ0FnSUhKbGRIVnliaUJiY0hKbFptbDRMQ0JzWldaMFYzSmhjSEJsY2l3Z2NtbG5hSFJYY21Gd2NHVnlMQ0J3YjNOMFptbDRYVHRjYmlBZ2ZWeHVYRzRnSUM4dklFRWdhR1ZzY0dWeUlHWjFibU4wYVc5dUlHWnZjaUJqYjI1MlpYSjBhVzVuSUhOMGNtbHVaM01nZEc4Z1NFVk1UVnh1SUNCd2NtbDJZWFJsSUdOdmJuWmxjblJVYjBobGJHMUlaV3h3WlhJb1hHNGdJQ0FnYzI5MWNtTmxVRzlzZVcxbGNqb2djM1J5YVc1bkxGeHVJQ0FnSUhOdmRYSmpaVWRoY0ZONWJXSnZiRG9nYzNSeWFXNW5MRnh1SUNBZ0lIQnlaV1pwZURvZ2MzUnlhVzVuTEZ4dUlDQWdJR3hsWm5SWGNtRndjR1Z5T2lCemRISnBibWNzWEc0Z0lDQWdjbWxuYUhSWGNtRndjR1Z5T2lCemRISnBibWNzWEc0Z0lDQWdjRzl6ZEdacGVEb2djM1J5YVc1blhHNGdJQ2s2SUhOMGNtbHVaeUI3WEc0Z0lDQWdZMjl1YzNRZ2JXOXViMjFsY2tGeWNtRjVJRDBnZEdocGN5NXpjR3hwZEhSbGNpaHpiM1Z5WTJWUWIyeDViV1Z5S1R0Y2JpQWdJQ0JqYjI1emRDQnRiMjV2YldWeVNHVnNiVUZ5Y21GNU9pQnpkSEpwYm1kYlhTQTlJRzF2Ym05dFpYSkJjbkpoZVM1dFlYQW9LRzF0T2lCemRISnBibWNwSUQwK0lIdGNiaUFnSUNBZ0lHbG1JQ2h0YlNBOVBUMGdjMjkxY21ObFIyRndVM2x0WW05c0tWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1ZXNXBkSE5JWVc1a2JHVnlMbDlrWldaaGRXeDBSMkZ3VTNsdFltOXNjMFJwWTNRdVNFVk1UVHRjYmlBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdBa2UyeGxablJYY21Gd2NHVnlmU1I3YlcxOUpIdHlhV2RvZEZkeVlYQndaWEo5WUR0Y2JpQWdJQ0I5S1R0Y2JpQWdJQ0J5WlhSMWNtNGdZQ1I3Y0hKbFptbDRmU1I3Ylc5dWIyMWxja2hsYkcxQmNuSmhlUzVxYjJsdUtDY3VKeWw5Skh0d2IzTjBabWw0ZldBN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRMjl1ZG1WeWRDQmhJSE4wY21sdVp5QjNhWFJvSUZORlVFRlNRVlJQVWk5R1FWTlVRU0J1YjNSaGRHbHZiaUIwYnlCSVJVeE5YRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J6YjNWeVkyVlFiMng1YldWeUlDQkJJSE4wY21sdVp5QjBieUJpWlNCamIyNTJaWEowWldSY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtY2dmQ0J1ZFd4c2ZTQnpiM1Z5WTJWSFlYQlRlVzFpYjJ3Z0lFRnVJRzl3ZEdsdmJtRnNJR2RoY0NCemVXMWliMndzSUhObGRDQjBiMXh1SUNBZ0tpQmtaV1poZFd4MElIWmhiSFZsY3lBb0p5MG5JR1p2Y2lCR1FWTlVRU0JoYm1RZ0p5Y2dabTl5SUZORlVFRlNRVlJQVWlrZ2RXNXNaWE56SUhOd1pXTnBabWxsWkZ4dUlDQWdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZDlJQ0JVYUdVZ2RHRnlaMlYwSUVoRlRFMGdjM1J5YVc1blhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ1kyOXVkbVZ5ZEZOMGNtbHVaMVJ2U0dWc2JTaGNiaUFnSUNCemIzVnlZMlZRYjJ4NWJXVnlPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2MyOTFjbU5sUjJGd1UzbHRZbTlzT2lCemRISnBibWNnZkNCdWRXeHNJRDBnYm5Wc2JGeHVJQ0FwT2lCemRISnBibWNnZTF4dUlDQWdJR2xtSUNoemIzVnlZMlZIWVhCVGVXMWliMndnUFQwOUlHNTFiR3dwWEc0Z0lDQWdJQ0J6YjNWeVkyVkhZWEJUZVcxaWIyd2dQU0IwYUdsekxtUmxabUYxYkhSSFlYQlRlVzFpYjJ3N1hHNGdJQ0FnWTI5dWMzUWdXM0J5WldacGVDd2diR1ZtZEZkeVlYQndaWElzSUhKcFoyaDBWM0poY0hCbGNpd2djRzl6ZEdacGVGMGdQU0IwYUdsekxtZGxkRWhsYkcxWGNtRndjR1Z5Y3lncE8xeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnZiblpsY25SVWIwaGxiRzFJWld4d1pYSW9jMjkxY21ObFVHOXNlVzFsY2l3Z2MyOTFjbU5sUjJGd1UzbHRZbTlzTENCd2NtVm1hWGdzSUd4bFpuUlhjbUZ3Y0dWeUxDQnlhV2RvZEZkeVlYQndaWElzSUhCdmMzUm1hWGdwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFTnZiblpsY25RZ1lTQmpiMngxYlc0Z2RHOGdTRVZNVFZ4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WnlCOElHNTFiR3g5SUhOdmRYSmpaVWRoY0ZONWJXSnZiRnh1SUNBZ0tpQkFjbVYwZFhKdUlIdEVSeTVEYjJ4MWJXNTlYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJR052Ym5abGNuUlViMGhsYkcwb2MyOTFjbU5sUjJGd1UzbHRZbTlzT2lCemRISnBibWNnZkNCdWRXeHNJRDBnYm5Wc2JDazZJRVJITGtOdmJIVnRiaUI3WEc0Z0lDQWdhV1lnS0hOdmRYSmpaVWRoY0ZONWJXSnZiQ0E5UFQwZ2JuVnNiQ2xjYmlBZ0lDQWdJSE52ZFhKalpVZGhjRk41YldKdmJDQTlJSFJvYVhNdVpHVm1ZWFZzZEVkaGNGTjViV0p2YkR0Y2JseHVJQ0FnSUdOdmJuTjBJRnR3Y21WbWFYZ3NJR3hsWm5SWGNtRndjR1Z5TENCeWFXZG9kRmR5WVhCd1pYSXNJSEJ2YzNSbWFYaGRJRDBnZEdocGN5NW5aWFJJWld4dFYzSmhjSEJsY25Nb0tUdGNibHh1SUNBZ0lHTnZibk4wSUc1bGQwTnZiSFZ0YmlBOUlIUm9hWE11WjJWMFRtVjNRMjlzZFcxdUtFNVBWRUZVU1U5T0xraEZURTBwTzF4dUlDQWdJQzh2SUdGemMybG5iaUIwYUdVZ2RtRnNkV1Z6SUhSdklIUm9aU0JsYlhCMGVTQmpiMngxYlc1Y2JpQWdJQ0J1WlhkRGIyeDFiVzR1YVc1cGRDZ29hV1I0T2lCdWRXMWlaWElwSUQwK0lIdGNiaUFnSUNBZ0lHTnZibk4wSUhOdmRYSmpaVkJ2YkhsdFpYSWdQU0IwYUdsekxtTnZiSFZ0Ymk1blpYUW9hV1I0S1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnZiblpsY25SVWIwaGxiRzFJWld4d1pYSW9jMjkxY21ObFVHOXNlVzFsY2l3Z2MyOTFjbU5sUjJGd1UzbHRZbTlzSVN3Z2NISmxabWw0TENCc1pXWjBWM0poY0hCbGNpd2djbWxuYUhSWGNtRndjR1Z5TENCd2IzTjBabWw0S1R0Y2JpQWdJQ0I5S1R0Y2JpQWdJQ0J5WlhSMWNtNGdibVYzUTI5c2RXMXVPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOdmJuWmxjblFnVTBWUVFWSkJWRTlTSUdOdmJIVnRiaUIwYnlCR1FWTlVRU0J1YjNSaGRHbHZibHh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaeUI4SUc1MWJHeDlJR1poYzNSaFIyRndVM2x0WW05c0lFOXdkR2x2Ym1Gc0lHZGhjQ0J6ZVcxaWIyd2dabTl5SUVaQlUxUkJYRzRnSUNBcUlFQnlaWFIxY200Z2UwUkhMa052YkhWdGJuMGdJRU52Ym5abGNuUmxaQ0JqYjJ4MWJXNWNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdZMjl1ZG1WeWRGTmxjR0Z5WVhSdmNsUnZSbUZ6ZEdFb1ptRnpkR0ZIWVhCVGVXMWliMnc2SUhOMGNtbHVaeUI4SUc1MWJHd2dQU0J1ZFd4c0tUb2dSRWN1UTI5c2RXMXVJSHRjYmlBZ0lDQnBaaUFvWm1GemRHRkhZWEJUZVcxaWIyd2dQVDA5SUc1MWJHd3BYRzRnSUNBZ0lDQm1ZWE4wWVVkaGNGTjViV0p2YkNBOUlGVnVhWFJ6U0dGdVpHeGxjaTVmWkdWbVlYVnNkRWRoY0ZONWJXSnZiSE5FYVdOMExrWkJVMVJCTzF4dVhHNGdJQ0FnWTI5dWMzUWdibVYzUTI5c2RXMXVJRDBnZEdocGN5NW5aWFJPWlhkRGIyeDFiVzRvVGs5VVFWUkpUMDR1UmtGVFZFRXBPMXh1SUNBZ0lDOHZJR0Z6YzJsbmJpQjBhR1VnZG1Gc2RXVnpJSFJ2SUhSb1pTQmxiWEIwZVNCamIyeDFiVzVjYmlBZ0lDQnVaWGREYjJ4MWJXNHVhVzVwZENnb2FXUjRPaUJ1ZFcxaVpYSXBJRDArSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSE5sY0dGeVlYUnZjbEJ2YkhsdFpYSWdQU0IwYUdsekxtTnZiSFZ0Ymk1blpYUW9hV1I0S1R0Y2JpQWdJQ0FnSUM4dklHbDBaVzF6SUdOaGJpQmlaU0J0YjI1dmJXVnljeUJ2Y2lCelpYQmhjbUYwYjNKelhHNGdJQ0FnSUNCamIyNXpkQ0J6WlhCaGNtRjBiM0pKZEdWdGMwRnljbUY1SUQwZ2RHaHBjeTV6Y0d4cGRIUmxjaWh6WlhCaGNtRjBiM0pRYjJ4NWJXVnlLVHRjYmlBZ0lDQWdJR052Ym5OMElHWmhjM1JoVFc5dWIyMWxjbk5CY25KaGVUb2djM1J5YVc1blcxMGdQU0JiWFR0Y2JpQWdJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2MyVndZWEpoZEc5eVNYUmxiWE5CY25KaGVTNXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JwZEdWdElEMGdjMlZ3WVhKaGRHOXlTWFJsYlhOQmNuSmhlVnRwWFR0Y2JpQWdJQ0FnSUNBZ2FXWWdLR2wwWlcwdWJHVnVaM1JvSUQwOVBTQXdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1ptRnpkR0ZOYjI1dmJXVnljMEZ5Y21GNUxuQjFjMmdvWm1GemRHRkhZWEJUZVcxaWIyd2hLVHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNocGRHVnRMbXhsYm1kMGFDQStJREVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQXZMeUIwYUdVZ1kyRnpaU0J2WmlCaElHMTFiSFJwTFdOb1lYSmhZM1JsY2lCdGIyNXZiV1Z5WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYlc5dWIyMWxjaUE5SUNkYkp5QXJJR2wwWlcwZ0t5QW5YU2M3WEc0Z0lDQWdJQ0FnSUNBZ1ptRnpkR0ZOYjI1dmJXVnljMEZ5Y21GNUxuQjFjMmdvYlc5dWIyMWxjaWs3WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ1ptRnpkR0ZOYjI1dmJXVnljMEZ5Y21GNUxuQjFjMmdvYVhSbGJTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQm1ZWE4wWVUxdmJtOXRaWEp6UVhKeVlYa3VhbTlwYmlnbkp5azdYRzRnSUNBZ2ZTazdYRzRnSUNBZ2NtVjBkWEp1SUc1bGQwTnZiSFZ0Ymp0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQWdRMjl1ZG1WeWRDQklSVXhOSUdOdmJIVnRiaUIwYnlCR1FWTlVRUzlUUlZCQlVrRlVUMUpjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhSbmRFNXZkR0YwYVc5dUlDQWdJRlJoY21kbGRDQnViM1JoZEdsdmJqb2dSa0ZUVkVFZ2IzSWdVMFZRUVZKQlZFOVNYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCMFozUlRaWEJoY21GMGIzSWdJQ0JQY0hScGIyNWhiQ0IwWVhKblpYUWdjMlZ3WVhKaGRHOXlJQ2htYjNJZ1NFVk1UU0F0UGx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVp5QjhJRzUxYkd4OUlIUm5kRWRoY0ZONWJXSnZiQ0FnSUU5d2RHbHZibUZzSUhSaGNtZGxkQ0JuWVhBZ2MzbHRZbTlzWEc0Z0lDQXFJRk5GVUVGU1FWUlBVaWxjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSRWN1UTI5c2RXMXVmU0JEYjI1MlpYSjBaV1FnWTI5c2RXMXVYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJR052Ym5abGNuUklaV3h0S0Z4dUlDQWdJSFJuZEU1dmRHRjBhVzl1T2lCemRISnBibWNzWEc0Z0lDQWdkR2QwVTJWd1lYSmhkRzl5T2lCemRISnBibWNnUFNBbkp5eGNiaUFnSUNCMFozUkhZWEJUZVcxaWIydzZJSE4wY21sdVp5QjhJRzUxYkd3Z1BTQnVkV3hzWEc0Z0lDazZJRVJITGtOdmJIVnRiaUI3WEc0Z0lDQWdMeThnVkdocGN5Qm1kVzVqZEdsdmJpQnRkWE4wSUc1dmRDQmpiMjUwWVdsdUlHTmhiR3h6SUc5bUlHbHpSRzVoS0NrZ1lXNWtJR2x6VW01aEtDa3NJR1p2Y2x4dUlDQWdJQzh2SUhOdmRYSmpaU0JvWld4dElHTnZiSFZ0Ym5NZ2JXRjVJR052Ym5SaGFXNGdVazVCTENCRVRrRWdZVzVrSUZCVUlHRmpjbTl6Y3lCa2FXWm1aWEpsYm5RZ2NtOTNjMXh1SUNBZ0lHbG1JQ2gwWjNSSFlYQlRlVzFpYjJ3Z1BUMDlJRzUxYkd3cElIdGNiaUFnSUNBZ0lIUm5kRWRoY0ZONWJXSnZiQ0E5SUNoMGFHbHpMblJ2Um1GemRHRW9kR2QwVG05MFlYUnBiMjRnWVhNZ1RrOVVRVlJKVDA0cEtTQS9YRzRnSUNBZ0lDQWdJRlZ1YVhSelNHRnVaR3hsY2k1ZlpHVm1ZWFZzZEVkaGNGTjViV0p2YkhORWFXTjBMa1pCVTFSQklEcGNiaUFnSUNBZ0lDQWdWVzVwZEhOSVlXNWtiR1Z5TGw5a1pXWmhkV3gwUjJGd1UzbHRZbTlzYzBScFkzUXVVMFZRUVZKQlZFOVNPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2gwYUdsekxuUnZVMlZ3WVhKaGRHOXlLSFJuZEU1dmRHRjBhVzl1SUdGeklFNVBWRUZVU1U5T0tTQW1KaUIwWjNSVFpYQmhjbUYwYjNJZ1BUMDlJQ2NuS1Z4dUlDQWdJQ0FnZEdkMFUyVndZWEpoZEc5eUlEMGdkR2hwY3k1elpYQmhjbUYwYjNJN1hHNWNiaUFnSUNCamIyNXpkQ0JvWld4dFYzSmhjSEJsY25OU1pTQTlJQzhvVWx4Y0tIeEVYRndvZkZ4Y0tYeFFLUzluTzF4dUlDQWdJR052Ym5OMElHNWxkME52YkhWdGJpQTlJSFJvYVhNdVoyVjBUbVYzUTI5c2RXMXVLSFJuZEU1dmRHRjBhVzl1SUdGeklFNVBWRUZVU1U5T0tUdGNiaUFnSUNBdkx5QmhjM05wWjI0Z2RHaGxJSFpoYkhWbGN5QjBieUIwYUdVZ1pXMXdkSGtnWTI5c2RXMXVYRzRnSUNBZ2JtVjNRMjlzZFcxdUxtbHVhWFFvS0dsa2VEb2diblZ0WW1WeUtTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQm9aV3h0VUc5c2VXMWxjaUE5SUhSb2FYTXVZMjlzZFcxdUxtZGxkQ2hwWkhncE8xeHVYRzRnSUNBZ0lDQXZMeUIzWlNCallXNXViM1FnZFhObElHbHpSRzVoS0NrZ2IzSWdhWE5TYm1Fb0tTQmlaV05oZFhObElITnZkWEpqWlNCb1pXeHRJR052YkhWdGJuTWdZMkZ1WEc0Z0lDQWdJQ0F2THlCamIyNTBZV2x1SUVST1FTd2dVazVCSUdGdVpDQlFWQ0JwYmlCa2FXWm1aWEpsYm5RZ1kyVnNiSE1zSUhOdklIUm9aU0JqYjNKeVpYTndiMjVrYVc1blhHNGdJQ0FnSUNBdkx5QjBZV2R6SUdOaGJtNXZkQ0JpWlNCelpYUWdabTl5SUhSb1pTQjNhRzlzWlNCamIyeDFiVzVjYmlBZ0lDQWdJR052Ym5OMElHbHpUblZqYkdWdmRHbGtaU0E5SUdobGJHMVFiMng1YldWeUxuTjBZWEowYzFkcGRHZ29KMFJPUVNjcElIeDhJR2hsYkcxUWIyeDViV1Z5TG5OMFlYSjBjMWRwZEdnb0oxSk9RU2NwTzF4dVhHNGdJQ0FnSUNBdkx5QnBkR1Z0Y3lCallXNGdZbVVnYlc5dWIyMWxjbk1nYjNJZ2FHVnNiWE5jYmlBZ0lDQWdJR052Ym5OMElHaGxiRzFKZEdWdGMwRnljbUY1SUQwZ2RHaHBjeTV6Y0d4cGRIUmxjaWhvWld4dFVHOXNlVzFsY2lrN1hHNGdJQ0FnSUNCamIyNXpkQ0IwWjNSTmIyNXZiV1Z5YzBGeWNtRjVPaUJ6ZEhKcGJtZGJYU0E5SUZ0ZE8xeHVJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQm9aV3h0U1hSbGJYTkJjbkpoZVM1c1pXNW5kR2c3SUdrckt5a2dlMXh1SUNBZ0lDQWdJQ0JzWlhRZ2FYUmxiU0E5SUdobGJHMUpkR1Z0YzBGeWNtRjVXMmxkTzF4dUlDQWdJQ0FnSUNCcFppQW9hWE5PZFdOc1pXOTBhV1JsS1Z4dUlDQWdJQ0FnSUNBZ0lHbDBaVzBnUFNCcGRHVnRMbkpsY0d4aFkyVW9hR1ZzYlZkeVlYQndaWEp6VW1Vc0lDY25LVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHbDBaVzBnUFQwOUlGVnVhWFJ6U0dGdVpHeGxjaTVmWkdWbVlYVnNkRWRoY0ZONWJXSnZiSE5FYVdOMExraEZURTBwSUh0Y2JpQWdJQ0FnSUNBZ0lDQjBaM1JOYjI1dmJXVnljMEZ5Y21GNUxuQjFjMmdvZEdkMFIyRndVM2x0WW05c0lTazdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQnBaaUFvZEdocGN5NTBiMFpoYzNSaEtIUm5kRTV2ZEdGMGFXOXVJR0Z6SUU1UFZFRlVTVTlPS1NBbUppQnBkR1Z0TG14bGJtZDBhQ0ErSURFcElIdGNiaUFnSUNBZ0lDQWdJQ0F2THlCMGFHVWdZMkZ6WlNCdlppQmhJRzExYkhScExXTm9ZWEpoWTNSbGNpQnRiMjV2YldWeUlHTnZiblpsY25SbFpDQjBieUJHUVZOVVFWeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHMXZibTl0WlhJZ1BTQW5XeWNnS3lCcGRHVnRJQ3NnSjEwbk8xeHVJQ0FnSUNBZ0lDQWdJSFJuZEUxdmJtOXRaWEp6UVhKeVlYa3VjSFZ6YUNodGIyNXZiV1Z5S1R0Y2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQjBaM1JOYjI1dmJXVnljMEZ5Y21GNUxuQjFjMmdvYVhSbGJTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQjBaM1JOYjI1dmJXVnljMEZ5Y21GNUxtcHZhVzRvZEdkMFUyVndZWEpoZEc5eUtUdGNiaUFnSUNCOUtUdGNiaUFnSUNCeVpYUjFjbTRnYm1WM1EyOXNkVzF1TzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCamIyNTJaWEowU0dWc2JWUnZVMlZ3WVhKaGRHOXlLQ2s2SUVSSExrTnZiSFZ0YmlCN1hHNGdJQ0FnTHk4Z1ZFOUVUem9nYVcxd2JHVnRaVzUwWVhScGIzSmxkSFZ5YmlCMGFHbHpMbWRsZEU1bGQwTnZiSFZ0YmlncE8xeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtZGxkRTVsZDBOdmJIVnRiaWhPVDFSQlZFbFBUaTVUUlZCQlVrRlVUMUlwTzF4dUlDQjlYRzVjYmlBZ0x5b3FJRVJwYzNCaGRHTm9aWElnYldWMGFHOWtJR1p2Y2lCdWIzUmhkR2x2YmlCamIyNTJaWEp6YVc5dVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQjdUazlVUVZSSlQwNTlJSFJuZEU1dmRHRjBhVzl1SUNBZ1RtOTBZWFJwYjI0Z2QyVWdkMkZ1ZENCMGJ5QmpiMjUyWlhKMElIUnZYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuSUh3Z2JuVnNiSDBnZEdkMFUyVndZWEpoZEc5eUlDQWdVRzl6YzJsaWJHVWdjMlZ3WVhKaGRHOXlYRzRnSUNBcUlFQnlaWFIxY200Z2UwUkhMa052YkhWdGJuMGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1EyOXVkbVZ5ZEdWa0lHTnZiSFZ0Ymx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdOdmJuWmxjblFvZEdkMFRtOTBZWFJwYjI0NklFNVBWRUZVU1U5T0xDQjBaM1JUWlhCaGNtRjBiM0k2SUhOMGNtbHVaeUI4SUc1MWJHd2dQU0J1ZFd4c0tUb2dSRWN1UTI5c2RXMXVJSHRjYmlBZ0lDQXZMeUJ3YjNOemFXSnNaU0JsZUdObGNIUnBiMjV6WEc0Z0lDQWdhV1lnS0hSb2FYTXVibTkwWVhScGIyNGdQVDA5SUhSbmRFNXZkR0YwYVc5dUtWeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkMFozUWdibTkwWVhScGIyNGdhWE1nYVc1MllXeHBaQ2NwTzF4dUlDQWdJR2xtSUNoMGFHbHpMblJ2VTJWd1lYSmhkRzl5S0hSbmRFNXZkR0YwYVc5dUtTQW1KaUIwWjNSVFpYQmhjbUYwYjNJZ1BUMDlJRzUxYkd3cFhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjNSbmRDQnpaWEJoY21GMGIzSWdhWE1nYm05MElITndaV05wWm1sbFpDY3BPMXh1WEc0Z0lDQWdhV1lnS0hSb2FYTXVhWE5HWVhOMFlTZ3BJQ1ltSUhSb2FYTXVkRzlUWlhCaGNtRjBiM0lvZEdkMFRtOTBZWFJwYjI0cElDWW1JSFJuZEZObGNHRnlZWFJ2Y2lBaFBUMGdiblZzYkNsY2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnZiblpsY25SR1lYTjBZVlJ2VTJWd1lYSmhkRzl5S0hSbmRGTmxjR0Z5WVhSdmNpazdYRzRnSUNBZ1pXeHpaU0JwWmlBb0tIUm9hWE11YVhOR1lYTjBZU2dwSUh4OElIUm9hWE11YVhOVFpYQmhjbUYwYjNJb0tTa2dKaVlnZEdocGN5NTBiMGhsYkcwb2RHZDBUbTkwWVhScGIyNHBLVnh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WTI5dWRtVnlkRlJ2U0dWc2JTZ3BPMXh1SUNBZ0lHVnNjMlVnYVdZZ0tIUm9hWE11YVhOVFpYQmhjbUYwYjNJb0tTQW1KaUIwYUdsekxuUnZSbUZ6ZEdFb2RHZDBUbTkwWVhScGIyNHBLVnh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WTI5dWRtVnlkRk5sY0dGeVlYUnZjbFJ2Um1GemRHRW9LVHRjYmlBZ0lDQmxiSE5sSUdsbUlDaDBhR2x6TG1selNHVnNiU2dwSUNZbUlIUm9hWE11ZEc5R1lYTjBZU2gwWjNST2IzUmhkR2x2YmlrcElDOHZJSFJvWlNCallYTmxJRzltSUVoRlRFMWNiaUFnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbU52Ym5abGNuUklaV3h0S0hSbmRFNXZkR0YwYVc5dUtUdGNiaUFnSUNCbGJITmxJQzh2SUhSb2FYTXVhWE5JWld4dEtDa2dKaVlnZEdocGN5NTBiMU5sY0dGeVlYUnZjaWgwWjNST2IzUmhkR2x2YmlsY2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnZiblpsY25SSVpXeHRLSFJuZEU1dmRHRjBhVzl1TENCMFozUlRaWEJoY21GMGIzSWhLVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJqYjI1emRISjFZM1J2Y2loamIydzZJRVJITGtOdmJIVnRiaWtnZTF4dUlDQWdJSE4xY0dWeUtHTnZiQ2s3WEc0Z0lIMWNibjFjYmlKZGZRPT0iLCJpbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgV2ViTG9nbyB9IGZyb20gJy4uL3ZpZXdlcnMvd2ViLWxvZ28nO1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0QWxpZ25lZFNlcXVlbmNlcyhwZXB0aWRlQ29sdW1uKSB7XG4gICAgY29uc3Qgc3BsaXR0ZXIgPSBXZWJMb2dvLmdldFNwbGl0dGVyRm9yQ29sdW1uKHBlcHRpZGVDb2x1bW4pO1xuICAgIGNvbnN0IGNvbExlbiA9IHBlcHRpZGVDb2x1bW4ubGVuZ3RoO1xuICAgIGNvbnN0IHJlc3VsdERmID0gREcuRGF0YUZyYW1lLmNyZWF0ZShjb2xMZW4pO1xuICAgIGxldCBtb25vbWVyTGlzdCA9IHNwbGl0dGVyKHBlcHRpZGVDb2x1bW4uZ2V0KDApKTtcbiAgICBjb25zdCBjb2x1bW5MaXN0ID0gW107XG4gICAgLy8gY3JlYXRlIGNvbHVtbnMgYW5kIGZpbGwgdGhlIGZpcnN0IHJvdyBmb3IgZmFzdGVyIHZhbHVlcyBmaWxsaW5nIGluIHRoZSBuZXh0IGxvb3BcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vbm9tZXJMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGNvbCA9IHJlc3VsdERmLmNvbHVtbnMuYWRkTmV3U3RyaW5nKChpICsgMSkudG9TdHJpbmcoKSk7XG4gICAgICAgIGNvbC5zZXQoMCwgbW9ub21lckxpc3RbaV0gfHwgJy0nLCBmYWxzZSk7XG4gICAgICAgIGNvbHVtbkxpc3QucHVzaChjb2wpO1xuICAgIH1cbiAgICBmb3IgKGxldCByb3dJbmRleCA9IDE7IHJvd0luZGV4IDwgY29sTGVuOyByb3dJbmRleCsrKSB7XG4gICAgICAgIG1vbm9tZXJMaXN0ID0gc3BsaXR0ZXIocGVwdGlkZUNvbHVtbi5nZXQocm93SW5kZXgpKTtcbiAgICAgICAgbW9ub21lckxpc3QuZm9yRWFjaCgobW9ub21lciwgY29sSW5kZXgpID0+IGNvbHVtbkxpc3RbY29sSW5kZXhdLnNldChyb3dJbmRleCwgbW9ub21lciB8fCAnLScsIGZhbHNlKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHREZjtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWMzQnNhWFIwWlhJdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUp6Y0d4cGRIUmxjaTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeFBRVUZQTEV0QlFVc3NSVUZCUlN4TlFVRk5MR2xDUVVGcFFpeERRVUZETzBGQlJYUkRMRTlCUVU4c1JVRkJReXhQUVVGUExFVkJRVU1zVFVGQlRTeHhRa0ZCY1VJc1EwRkJRenRCUVVVMVF5eE5RVUZOTEZWQlFWVXNjVUpCUVhGQ0xFTkJRVU1zWVVGQlowTTdTVUZEY0VVc1RVRkJUU3hSUVVGUkxFZEJRVWNzVDBGQlR5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzBsQlF6ZEVMRTFCUVUwc1RVRkJUU3hIUVVGSExHRkJRV0VzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZEY0VNc1RVRkJUU3hSUVVGUkxFZEJRVWNzUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRE4wTXNTVUZCU1N4WFFVRlhMRWRCUVVjc1VVRkJVU3hEUVVGRExHRkJRV0VzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkZMRU5CUVVNc1EwRkJRenRKUVVOc1JDeE5RVUZOTEZWQlFWVXNSMEZCZDBJc1JVRkJSU3hEUVVGRE8wbEJSVE5ETEcxR1FVRnRSanRKUVVOdVJpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVjBGQlZ5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRSUVVNelF5eE5RVUZOTEVkQlFVY3NSMEZCUnl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGQlF5eERRVUZETzFGQlF6bEVMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hIUVVGSExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEZWtNc1ZVRkJWU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0TFFVTjBRanRKUVVWRUxFdEJRVXNzU1VGQlNTeFJRVUZSTEVkQlFVY3NRMEZCUXl4RlFVRkZMRkZCUVZFc1IwRkJSeXhOUVVGTkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVWQlFVVTdVVUZEY0VRc1YwRkJWeXhIUVVGSExGRkJRVkVzUTBGQlF5eGhRVUZoTEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJSU3hEUVVGRExFTkJRVU03VVVGRGNrUXNWMEZCVnl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeFJRVUZSTEVWQlFVVXNSVUZCUlN4RFFVRkRMRlZCUVZVc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RlFVRkZMRTlCUVU4c1NVRkJTU3hIUVVGSExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0TFFVTjJSenRKUVVWRUxFOUJRVThzVVVGQlVTeERRVUZETzBGQlEyeENMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1WEc1cGJYQnZjblFnZTFkbFlreHZaMjk5SUdaeWIyMGdKeTR1TDNacFpYZGxjbk12ZDJWaUxXeHZaMjhuTzF4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2MzQnNhWFJCYkdsbmJtVmtVMlZ4ZFdWdVkyVnpLSEJsY0hScFpHVkRiMngxYlc0NklFUkhMa052YkhWdGJqeHpkSEpwYm1jK0tUb2dSRWN1UkdGMFlVWnlZVzFsSUh0Y2JpQWdZMjl1YzNRZ2MzQnNhWFIwWlhJZ1BTQlhaV0pNYjJkdkxtZGxkRk53YkdsMGRHVnlSbTl5UTI5c2RXMXVLSEJsY0hScFpHVkRiMngxYlc0cE8xeHVJQ0JqYjI1emRDQmpiMnhNWlc0Z1BTQndaWEIwYVdSbFEyOXNkVzF1TG14bGJtZDBhRHRjYmlBZ1kyOXVjM1FnY21WemRXeDBSR1lnUFNCRVJ5NUVZWFJoUm5KaGJXVXVZM0psWVhSbEtHTnZiRXhsYmlrN1hHNGdJR3hsZENCdGIyNXZiV1Z5VEdsemRDQTlJSE53YkdsMGRHVnlLSEJsY0hScFpHVkRiMngxYlc0dVoyVjBLREFwSVNrN1hHNGdJR052Ym5OMElHTnZiSFZ0Ymt4cGMzUTZJRVJITGtOdmJIVnRianh6ZEhKcGJtYytXMTBnUFNCYlhUdGNibHh1SUNBdkx5QmpjbVZoZEdVZ1kyOXNkVzF1Y3lCaGJtUWdabWxzYkNCMGFHVWdabWx5YzNRZ2NtOTNJR1p2Y2lCbVlYTjBaWElnZG1Gc2RXVnpJR1pwYkd4cGJtY2dhVzRnZEdobElHNWxlSFFnYkc5dmNGeHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUcxdmJtOXRaWEpNYVhOMExteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdZMjl1YzNRZ1kyOXNJRDBnY21WemRXeDBSR1l1WTI5c2RXMXVjeTVoWkdST1pYZFRkSEpwYm1jb0tHa2dLeUF4S1M1MGIxTjBjbWx1WnlncEtUdGNiaUFnSUNCamIyd3VjMlYwS0RBc0lHMXZibTl0WlhKTWFYTjBXMmxkSUh4OElDY3RKeXdnWm1Gc2MyVXBPMXh1SUNBZ0lHTnZiSFZ0Ymt4cGMzUXVjSFZ6YUNoamIyd3BPMXh1SUNCOVhHNWNiaUFnWm05eUlDaHNaWFFnY205M1NXNWtaWGdnUFNBeE95QnliM2RKYm1SbGVDQThJR052YkV4bGJqc2djbTkzU1c1a1pYZ3JLeWtnZTF4dUlDQWdJRzF2Ym05dFpYSk1hWE4wSUQwZ2MzQnNhWFIwWlhJb2NHVndkR2xrWlVOdmJIVnRiaTVuWlhRb2NtOTNTVzVrWlhncElTazdYRzRnSUNBZ2JXOXViMjFsY2t4cGMzUXVabTl5UldGamFDZ29iVzl1YjIxbGNpd2dZMjlzU1c1a1pYZ3BJRDArSUdOdmJIVnRia3hwYzNSYlkyOXNTVzVrWlhoZExuTmxkQ2h5YjNkSmJtUmxlQ3dnYlc5dWIyMWxjaUI4ZkNBbkxTY3NJR1poYkhObEtTazdYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdjbVZ6ZFd4MFJHWTdYRzU5WEc0Z0lDSmRmUT09IiwiaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7IFdlYkxvZ28gfSBmcm9tICcuLi92aWV3ZXJzL3dlYi1sb2dvJztcbi8qKiBDbGFzcyBmb3IgaGFuZGxpbmcgbm90YXRpb24gdW5pdHMgaW4gTWFjcm9tb2xlY3VsZSBjb2x1bW5zICovXG5leHBvcnQgY2xhc3MgVW5pdHNIYW5kbGVyIHtcbiAgICBjb25zdHJ1Y3Rvcihjb2wpIHtcbiAgICAgICAgdGhpcy5fY29sdW1uID0gY29sO1xuICAgICAgICBjb25zdCB1bml0cyA9IHRoaXMuX2NvbHVtbi50YWdzW0RHLlRBR1MuVU5JVFNdO1xuICAgICAgICBpZiAodW5pdHMgIT09IG51bGwpXG4gICAgICAgICAgICB0aGlzLl91bml0cyA9IHVuaXRzO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuaXRzIGFyZSBub3Qgc3BlY2lmaWVkIGluIGNvbHVtbicpO1xuICAgICAgICB0aGlzLl9ub3RhdGlvbiA9IHRoaXMuZ2V0Tm90YXRpb24oKTtcbiAgICAgICAgdGhpcy5fZGVmYXVsdEdhcFN5bWJvbCA9ICh0aGlzLmlzRmFzdGEoKSkgPyBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5GQVNUQSA6XG4gICAgICAgICAgICAodGhpcy5pc0hlbG0oKSkgPyBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5IRUxNIDpcbiAgICAgICAgICAgICAgICBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5TRVBBUkFUT1I7XG4gICAgICAgIGlmICghdGhpcy5jb2x1bW4udGFncy5oYXMoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXRTaXplKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNIZWxtKCkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGb3IgY29sdW1uICcke3RoaXMuY29sdW1uLm5hbWV9JyBvZiBub3RhdGlvbiAnJHt0aGlzLm5vdGF0aW9ufScgYCArXG4gICAgICAgICAgICAgICAgICAgIGB0YWcgJyR7VW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXRTaXplfScgaXMgbWFuZGF0b3J5LmApO1xuICAgICAgICAgICAgZWxzZSBpZiAoWydVTiddLmluY2x1ZGVzKHRoaXMuYWxwaGFiZXQpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRm9yIGNvbHVtbiAnJHt0aGlzLmNvbHVtbi5uYW1lfScgb2YgYWxwaGFiZXQgJyR7dGhpcy5hbHBoYWJldH0nIGAgK1xuICAgICAgICAgICAgICAgICAgICBgdGFnICcke1VuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0U2l6ZX0nIGlzIG1hbmRhdG9yeS5gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuY29sdW1uLnRhZ3MuaGFzKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0hlbG0oKSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvciBjb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIG9mIG5vdGF0aW9uICcke3RoaXMubm90YXRpb259JyBgICtcbiAgICAgICAgICAgICAgICAgICAgYHRhZyAnJHtVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldElzTXVsdGljaGFyfScgaXMgbWFuZGF0b3J5LmApO1xuICAgICAgICAgICAgZWxzZSBpZiAoWydVTiddLmluY2x1ZGVzKHRoaXMuYWxwaGFiZXQpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRm9yIGNvbHVtbiAnJHt0aGlzLmNvbHVtbi5uYW1lfScgb2YgYWxwaGFiZXQgJyR7dGhpcy5hbHBoYWJldH0nIGAgK1xuICAgICAgICAgICAgICAgICAgICBgdGFnICcke1VuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0SXNNdWx0aWNoYXJ9JyBpcyBtYW5kYXRvcnkuYCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIHNldFVuaXRzVG9GYXN0YUNvbHVtbihjb2wpIHtcbiAgICAgICAgaWYgKGNvbC5zZW1UeXBlICE9PSBERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEUpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Zhc3RhIGNvbHVtbiBtdXN0IGJlIE1BQ1JPTU9MRUNVTEUnKTtcbiAgICAgICAgY29uc3Qgc3RhdHMgPSBXZWJMb2dvLmdldFN0YXRzKGNvbCwgNSwgV2ViTG9nby5zcGxpdHRlckFzRmFzdGEpO1xuICAgICAgICBjb25zdCBzZXFUeXBlID0gc3RhdHMuc2FtZUxlbmd0aCA/ICdTRVEuTVNBJyA6ICdTRVEnO1xuICAgICAgICBjb25zdCBhbHBoYWJldENhbmRpZGF0ZXMgPSBbXG4gICAgICAgICAgICBbXCJQVFwiIC8qIEFMUEhBQkVULlBUICovLCBVbml0c0hhbmRsZXIuUGVwdGlkZUZhc3RhQWxwaGFiZXRdLFxuICAgICAgICAgICAgW1wiRE5BXCIgLyogQUxQSEFCRVQuRE5BICovLCBVbml0c0hhbmRsZXIuRG5hRmFzdGFBbHBoYWJldF0sXG4gICAgICAgICAgICBbXCJSTkFcIiAvKiBBTFBIQUJFVC5STkEgKi8sIFVuaXRzSGFuZGxlci5SbmFGYXN0YUFscGhhYmV0XSxcbiAgICAgICAgXTtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIGxpa2VsaWhvb2RzIGZvciBhbHBoYWJldF9jYW5kaWRhdGVzXG4gICAgICAgIGNvbnN0IGFscGhhYmV0Q2FuZGlkYXRlc1NpbSA9IGFscGhhYmV0Q2FuZGlkYXRlcy5tYXAoKGMpID0+IFdlYkxvZ28uZ2V0QWxwaGFiZXRTaW1pbGFyaXR5KHN0YXRzLmZyZXEsIGNbMV0pKTtcbiAgICAgICAgY29uc3QgbWF4Q29zID0gTWF0aC5tYXgoLi4uYWxwaGFiZXRDYW5kaWRhdGVzU2ltKTtcbiAgICAgICAgY29uc3QgYWxwaGFiZXQgPSBtYXhDb3MgPiAwLjY1ID8gYWxwaGFiZXRDYW5kaWRhdGVzW2FscGhhYmV0Q2FuZGlkYXRlc1NpbS5pbmRleE9mKG1heENvcyldWzBdIDogJ1VOJztcbiAgICAgICAgY29sLnNldFRhZyhERy5UQUdTLlVOSVRTLCBcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8pO1xuICAgICAgICBjb2wuc2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFsaWduZWQsIHNlcVR5cGUpO1xuICAgICAgICBjb2wuc2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0LCBhbHBoYWJldCk7XG4gICAgfVxuICAgIGdldCB1bml0cygpIHsgcmV0dXJuIHRoaXMuX3VuaXRzOyB9XG4gICAgZ2V0IGNvbHVtbigpIHsgcmV0dXJuIHRoaXMuX2NvbHVtbjsgfVxuICAgIGdldCBub3RhdGlvbigpIHsgcmV0dXJuIHRoaXMuX25vdGF0aW9uOyB9XG4gICAgZ2V0IGRlZmF1bHRHYXBTeW1ib2woKSB7IHJldHVybiB0aGlzLl9kZWZhdWx0R2FwU3ltYm9sOyB9XG4gICAgZ2V0IHNlcGFyYXRvcigpIHtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gdGhpcy5jb2x1bW4uZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLnNlcGFyYXRvcik7XG4gICAgICAgIGlmIChzZXBhcmF0b3IgIT09IG51bGwpXG4gICAgICAgICAgICByZXR1cm4gc2VwYXJhdG9yO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlcGFyYXRvciBub3Qgc2V0Jyk7XG4gICAgfVxuICAgIGdldCBhbGlnbmVkKCkge1xuICAgICAgICBjb25zdCBhbGlnbmVkID0gdGhpcy5jb2x1bW4uZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFsaWduZWQpO1xuICAgICAgICBpZiAoYWxpZ25lZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGFsaWduZWQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RhZyBhbGlnbmVkIG5vdCBzZXQnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQWxwaGFiZXQgbmFtZSAodXBwZXIgY2FzZSkgKi9cbiAgICBnZXQgYWxwaGFiZXQoKSB7XG4gICAgICAgIGNvbnN0IGFscGhhYmV0ID0gdGhpcy5jb2x1bW4uZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0KTtcbiAgICAgICAgaWYgKGFscGhhYmV0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gYWxwaGFiZXQudG9VcHBlckNhc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGFnIGFscGhhYmV0IG5vdCBzZXQnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXRBbHBoYWJldFNpemUoKSB7XG4gICAgICAgIGlmICh0aGlzLm5vdGF0aW9uID09IFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi8gfHwgdGhpcy5hbHBoYWJldCA9PSBcIlVOXCIgLyogQUxQSEFCRVQuVU4gKi8pIHtcbiAgICAgICAgICAgIGNvbnN0IGFscGhhYmV0U2l6ZSA9IHBhcnNlSW50KHRoaXMuY29sdW1uLmdldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldFNpemUpKTtcbiAgICAgICAgICAgIHJldHVybiBhbHBoYWJldFNpemU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMuYWxwaGFiZXQpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiUFRcIiAvKiBBTFBIQUJFVC5QVCAqLzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDIwO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJETkFcIiAvKiBBTFBIQUJFVC5ETkEgKi86XG4gICAgICAgICAgICAgICAgY2FzZSBcIlJOQVwiIC8qIEFMUEhBQkVULlJOQSAqLzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDQ7XG4gICAgICAgICAgICAgICAgY2FzZSAnTlQnOlxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFVuZXhwZWN0ZWQgYWxwaGFiZXQgJ05UJy5gKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDQ7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGFscGhhYmV0ICcke3RoaXMuYWxwaGFiZXR9Jy5gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXRBbHBoYWJldElzTXVsdGljaGFyKCkge1xuICAgICAgICBpZiAodGhpcy5ub3RhdGlvbiA9PSBcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovIHx8IHRoaXMuYWxwaGFiZXQgPT0gXCJVTlwiIC8qIEFMUEhBQkVULlVOICovKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4uZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIpID09ICd0cnVlJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpc0Zhc3RhKCkgeyByZXR1cm4gdGhpcy5ub3RhdGlvbiA9PT0gXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovOyB9XG4gICAgaXNTZXBhcmF0b3IoKSB7IHJldHVybiB0aGlzLm5vdGF0aW9uID09PSBcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLzsgfVxuICAgIGlzSGVsbSgpIHsgcmV0dXJuIHRoaXMubm90YXRpb24gPT09IFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi87IH1cbiAgICBpc1JuYSgpIHsgcmV0dXJuIHRoaXMuYWxwaGFiZXQgPT09ICdSTkEnOyB9XG4gICAgaXNEbmEoKSB7IHJldHVybiB0aGlzLmFscGhhYmV0ID09PSAnRE5BJzsgfVxuICAgIGlzUGVwdGlkZSgpIHsgcmV0dXJuIHRoaXMuYWxwaGFiZXQgPT09ICdQVCc7IH1cbiAgICAvKiogQXNzb2NpYXRlIG5vdGF0aW9uIHR5cGVzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgdW5pdHMgKi9cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtOT1RBVElPTn0gICAgIE5vdGF0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgdW5pdHMgdHlwZVxuICAgICAqL1xuICAgIGdldE5vdGF0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy51bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovKSlcbiAgICAgICAgICAgIHJldHVybiBcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi87XG4gICAgICAgIGVsc2UgaWYgKHRoaXMudW5pdHMudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovKSlcbiAgICAgICAgICAgIHJldHVybiBcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLztcbiAgICAgICAgZWxzZSBpZiAodGhpcy51bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLykpXG4gICAgICAgICAgICByZXR1cm4gXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLztcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIGhhcyB1bmV4cGVjdGVkIG5vdGF0aW9uICcke3RoaXMudW5pdHN9Jy5gKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IGVtcHR5IGNvbHVtbiBvZiB0aGUgc3BlY2lmaWVkIG5vdGF0aW9uIHR5cGUgYW5kIHRoZSBzYW1lXG4gICAgICogbGVuZ3RoIGFzIGNvbHVtblxuICAgICAqXG4gICAgICogQHBhcmFtIHtOT1RBVElPTn0gdGFyZ2V0Tm90YXRpb25cbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59XG4gICAgICovXG4gICAgZ2V0TmV3Q29sdW1uKHRhcmdldE5vdGF0aW9uKSB7XG4gICAgICAgIGNvbnN0IGNvbCA9IHRoaXMuY29sdW1uO1xuICAgICAgICBjb25zdCBsZW4gPSBjb2wubGVuZ3RoO1xuICAgICAgICBjb25zdCBuYW1lID0gdGFyZ2V0Tm90YXRpb24udG9Mb3dlckNhc2UoKSArICcoJyArIGNvbC5uYW1lICsgJyknO1xuICAgICAgICBjb25zdCBuZXdDb2xOYW1lID0gY29sLmRhdGFGcmFtZS5jb2x1bW5zLmdldFVudXNlZE5hbWUobmFtZSk7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IERHLkNvbHVtbi5mcm9tTGlzdCgnc3RyaW5nJywgbmV3Q29sTmFtZSwgbmV3IEFycmF5KGxlbikuZmlsbCgnJykpO1xuICAgICAgICBuZXdDb2x1bW4uc2VtVHlwZSA9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLlVOSVRTLCB0aGlzLm5vdGF0aW9uKTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLkNFTExfUkVOREVSRVIsICdNYWNyb21vbGVjdWxlJyk7XG4gICAgICAgIGNvbnN0IHNyY0FscGhhYmV0ID0gY29sLmdldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldCk7XG4gICAgICAgIGlmIChzcmNBbHBoYWJldClcbiAgICAgICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXQsIHNyY0FscGhhYmV0KTtcbiAgICAgICAgY29uc3Qgc3JjQWxwaGFiZXRTaXplID0gY29sLmdldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldFNpemUpO1xuICAgICAgICBpZiAoc3JjQWxwaGFiZXRTaXplKVxuICAgICAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldFNpemUsIHNyY0FscGhhYmV0U2l6ZSk7XG4gICAgICAgIGNvbnN0IHNyY0FscGhhYmV0SXNNdWx0aWNoYXIgPSBjb2wuZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIpO1xuICAgICAgICBpZiAoc3JjQWxwaGFiZXRJc011bHRpY2hhcilcbiAgICAgICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXRJc011bHRpY2hhciwgc3JjQWxwaGFiZXRJc011bHRpY2hhcik7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyBlbXB0eSBjb2x1bW4gdXNpbmcgdGVtcGxhdGVDb2wgYXMgYSB0ZW1wbGF0ZVxuICAgICAqXG4gICAgICogQHBhcmFtIHtERy5Db2x1bW59IHRlbXBsYXRlQ29sICB0aGUgcHJvcGVydGllcyBhbmQgdW5pdHMgb2YgdGhpcyBjb2x1bW4gYXJlIHVzZWQgYXMgYVxuICAgICAqIHRlbXBsYXRlIHRvIGJ1aWxkIHRoZSBuZXcgb25lXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXROZXdDb2x1bW4odGVtcGxhdGVDb2wpIHtcbiAgICAgICAgY29uc3QgY29sID0gbmV3IFVuaXRzSGFuZGxlcih0ZW1wbGF0ZUNvbCk7XG4gICAgICAgIGNvbnN0IHRhcmdldE5vdGF0aW9uID0gY29sLm5vdGF0aW9uO1xuICAgICAgICByZXR1cm4gY29sLmdldE5ld0NvbHVtbih0YXJnZXROb3RhdGlvbik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEEgaGVscGVyIGZ1bmN0aW9uIGNoZWNraW5nIHRoZSB2YWxpZGl0eSBvZiB0aGUgJ3VuaXRzJyBzdHJpbmdcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0cyAgdGhlIHN0cmluZyB0byBiZSB2YWxpZGF0ZWRcbiAgICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgICAqL1xuICAgIHN0YXRpYyB1bml0c1N0cmluZ0lzVmFsaWQodW5pdHMpIHtcbiAgICAgICAgdW5pdHMgPSB1bml0cy50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBwcmVmaXhlcyA9IFtcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8sIFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovLCBcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovXTtcbiAgICAgICAgY29uc3QgcG9zdGZpeGVzID0gWydybmEnLCAnZG5hJywgJ3B0J107XG4gICAgICAgIGNvbnN0IHByZWZpeENyaXRlcmlvbiA9IHByZWZpeGVzLnNvbWUoKHApID0+IHVuaXRzLnN0YXJ0c1dpdGgocC50b0xvd2VyQ2FzZSgpKSk7XG4gICAgICAgIHJldHVybiBwcmVmaXhDcml0ZXJpb247XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdCBhIG5ldyBjb2x1bW4gb2Ygc2VtYW50aWMgdHlwZSBNQUNST01PTEVDVUxFIGZyb20gdGhlIGxpc3Qgb2ZcbiAgICAgKiBzcGVjaWZpZWQgcGFyYW1ldGVyc1xuICAgICAqXG4gICAgICogQHBhcmFtIHtudW1iZXJ9ICAgIGxlbiAgdGhlIGxlbmd0aCBvZiB0aGUgbmV3IGNvbHVtblxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSAgICBuYW1lICB0aGUgbmFtZSBvZiB0aGUgbmV3IGNvbHVtblxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSAgICB1bml0cyAgdGhlIHVuaXRzIG9mIHRoZSBuZXcgY29sdW1uXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXROZXdDb2x1bW5Gcm9tUGFyYW1zKGxlbiwgbmFtZSwgdW5pdHMpIHtcbiAgICAgICAgLy8gV0FSTklORzogaW4gdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBpcyBpbXBvc3NpYmxlIHRvIHZlcmlmeSB0aGUgdW5pcXVlbmVzc1xuICAgICAgICAvLyBvZiB0aGUgbmV3IGNvbHVtbidzIG5hbWVcbiAgICAgICAgLy8gVE9ETzogdmVyaWZ5IHRoZSB2YWxpZGl0eSBvZiB1bml0cyBwYXJhbWV0ZXJcbiAgICAgICAgaWYgKCFVbml0c0hhbmRsZXIudW5pdHNTdHJpbmdJc1ZhbGlkKHVuaXRzKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBmb3JtYXQgb2YgXFwndW5pdHNcXCcgcGFyYW1ldGVyJyk7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IERHLkNvbHVtbi5mcm9tTGlzdCgnc3RyaW5nJywgbmFtZSwgbmV3IEFycmF5KGxlbikuZmlsbCgnJykpO1xuICAgICAgICBuZXdDb2x1bW4uc2VtVHlwZSA9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLlVOSVRTLCB1bml0cyk7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxufVxuVW5pdHNIYW5kbGVyLlRBR1MgPSB7XG4gICAgYWxpZ25lZDogJ2FsaWduZWQnLFxuICAgIGFscGhhYmV0OiAnYWxwaGFiZXQnLFxuICAgIGFscGhhYmV0U2l6ZTogJy5hbHBoYWJldFNpemUnLFxuICAgIGFscGhhYmV0SXNNdWx0aWNoYXI6ICcuYWxwaGFiZXRJc011bHRpY2hhcicsXG4gICAgc2VwYXJhdG9yOiAnc2VwYXJhdG9yJyxcbn07XG5Vbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdCA9IHtcbiAgICBIRUxNOiAnKicsXG4gICAgU0VQQVJBVE9SOiAnJyxcbiAgICBGQVNUQTogJy0nLFxufTtcblVuaXRzSGFuZGxlci5QZXB0aWRlRmFzdGFBbHBoYWJldCA9IG5ldyBTZXQoW1xuICAgICdHJywgJ0wnLCAnWScsICdTJywgJ0UnLCAnUScsICdEJywgJ04nLCAnRicsICdBJyxcbiAgICAnSycsICdSJywgJ0gnLCAnQycsICdWJywgJ1AnLCAnVycsICdJJywgJ00nLCAnVCcsXG5dKTtcblVuaXRzSGFuZGxlci5EbmFGYXN0YUFscGhhYmV0ID0gbmV3IFNldChbJ0EnLCAnQycsICdHJywgJ1QnXSk7XG5Vbml0c0hhbmRsZXIuUm5hRmFzdGFBbHBoYWJldCA9IG5ldyBTZXQoWydBJywgJ0MnLCAnRycsICdVJ10pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZFc1cGRITXRhR0Z1Wkd4bGNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW5WdWFYUnpMV2hoYm1Sc1pYSXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1QwRkJUeXhMUVVGTExFVkJRVVVzVFVGQlRTeHBRa0ZCYVVJc1EwRkJRenRCUVVsMFF5eFBRVUZQTEVWQlFVTXNUMEZCVHl4RlFVRmpMRTFCUVUwc2NVSkJRWEZDTEVOQlFVTTdRVUZuUW5wRUxHbEZRVUZwUlR0QlFVTnFSU3hOUVVGTkxFOUJRVThzV1VGQldUdEpRV2xQZGtJc1dVRkJiVUlzUjBGQll6dFJRVU12UWl4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFZEJRVWNzUTBGQlF6dFJRVU51UWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlF5OURMRWxCUVVrc1MwRkJTeXhMUVVGTExFbEJRVWs3V1VGRGFFSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhMUVVGTExFTkJRVU03TzFsQlJYQkNMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zYlVOQlFXMURMRU5CUVVNc1EwRkJRenRSUVVOMlJDeEpRVUZKTEVOQlFVTXNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFJRVU53UXl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMSE5DUVVGelFpeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUTNKR0xFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dG5Ra0ZETVVRc1dVRkJXU3hEUVVGRExITkNRVUZ6UWl4RFFVRkRMRk5CUVZNc1EwRkJRenRSUVVWc1JDeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVU3V1VGRGVrUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRk8yZENRVU5tTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc1pVRkJaU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NhMEpCUVd0Q0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVsQlFVazdiMEpCUTJoR0xGRkJRVkVzV1VGQldTeERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdhVUpCUTNoRUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dG5Ra0ZEY2tNc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eGxRVUZsTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hyUWtGQmEwSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1NVRkJTVHR2UWtGRGFFWXNVVUZCVVN4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzYVVKQlFXbENMRU5CUVVNc1EwRkJRenRUUVVNNVJEdFJRVVZFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4RlFVRkZPMWxCUTJoRkxFbEJRVWtzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlR0blFrRkRaaXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEdWQlFXVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxHdENRVUZyUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hKUVVGSk8yOUNRVU5vUml4UlFVRlJMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zYlVKQlFXMUNMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdhVUpCUXk5RUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dG5Ra0ZEY2tNc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eGxRVUZsTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hyUWtGQmEwSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1NVRkJTVHR2UWtGRGFFWXNVVUZCVVN4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4cFFrRkJhVUlzUTBGQlF5eERRVUZETzFOQlEzSkZPMGxCUTBnc1EwRkJRenRKUVhCUFRTeE5RVUZOTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zUjBGQll6dFJRVU5vUkN4SlFVRkpMRWRCUVVjc1EwRkJReXhQUVVGUExFdEJRVXNzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4aFFVRmhPMWxCUXpGRExFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNiME5CUVc5RExFTkJRVU1zUTBGQlF6dFJRVVY0UkN4TlFVRk5MRXRCUVVzc1IwRkJaMElzVDBGQlR5eERRVUZETEZGQlFWRXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhGUVVGRkxFOUJRVThzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXp0UlFVTTNSU3hOUVVGTkxFOUJRVThzUjBGQlJ5eExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXp0UlFVVnlSQ3hOUVVGTkxHdENRVUZyUWl4SFFVRTBRanRaUVVOc1JDeDVRa0ZCWXl4WlFVRlpMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTTdXVUZEYUVRc01rSkJRV1VzV1VGQldTeERRVUZETEdkQ1FVRm5RaXhEUVVGRE8xbEJRemRETERKQ1FVRmxMRmxCUVZrc1EwRkJReXhuUWtGQlowSXNRMEZCUXp0VFFVTTVReXhEUVVGRE8xRkJSVVlzWjBSQlFXZEVPMUZCUTJoRUxFMUJRVTBzY1VKQlFYRkNMRWRCUVdFc2EwSkJRV3RDTEVOQlFVTXNSMEZCUnl4RFFVTTFSQ3hEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMSEZDUVVGeFFpeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTXhSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXp0UlFVTnNSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRPMUZCUlhKSExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExDdENRVUZwUWl4RFFVRkRPMUZCUXpGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZETDBNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGQlF6dEpRVU51UkN4RFFVRkRPMGxCUlVRc1NVRkJZeXhMUVVGTExFdEJRV0VzVDBGQlR5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWeVJDeEpRVUZqTEUxQlFVMHNTMEZCWjBJc1QwRkJUeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVXhSQ3hKUVVGWExGRkJRVkVzUzBGQlpTeFBRVUZQTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSVEZFTEVsQlFWY3NaMEpCUVdkQ0xFdEJRV0VzVDBGQlR5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJYaEZMRWxCUVZjc1UwRkJVenRSUVVOc1FpeE5RVUZOTEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJRMnhGTEVsQlFVa3NVMEZCVXl4TFFVRkxMRWxCUVVrN1dVRkRjRUlzVDBGQlR5eFRRVUZUTEVOQlFVTTdPMWxCUldwQ0xFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dEpRVU42UXl4RFFVRkRPMGxCUlVRc1NVRkJWeXhQUVVGUE8xRkJRMmhDTEUxQlFVMHNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRE9VUXNTVUZCU1N4UFFVRlBMRXRCUVVzc1NVRkJTU3hGUVVGRk8xbEJRM0JDTEU5QlFVOHNUMEZCVHl4RFFVRkRPMU5CUTJoQ08yRkJRVTA3V1VGRFRDeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVOQlFVTTdVMEZEZUVNN1NVRkRTQ3hEUVVGRE8wbEJSVVFzYVVOQlFXbERPMGxCUTJwRExFbEJRVmNzVVVGQlVUdFJRVU5xUWl4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlEyaEZMRWxCUVVrc1VVRkJVU3hMUVVGTExFbEJRVWtzUlVGQlJUdFpRVU55UWl4UFFVRlBMRkZCUVZFc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFRRVU12UWp0aFFVRk5PMWxCUTB3c1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhEUVVGRE8xTkJRM3BETzBsQlEwZ3NRMEZCUXp0SlFVVk5MR1ZCUVdVN1VVRkRjRUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNVVUZCVVN3NFFrRkJhVUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNVVUZCVVN3d1FrRkJaU3hGUVVGRk8xbEJRMnhGTEUxQlFVMHNXVUZCV1N4SFFVRkhMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEYkVZc1QwRkJUeXhaUVVGWkxFTkJRVU03VTBGRGNrSTdZVUZCVFR0WlFVTk1MRkZCUVZFc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJUdG5Ra0ZEZGtJN2IwSkJRMFVzVDBGQlR5eEZRVUZGTEVOQlFVTTdaMEpCUTFvc09FSkJRV3RDTzJkQ1FVTnNRanR2UWtGRFJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0blFrRkRXQ3hMUVVGTExFbEJRVWs3YjBKQlExQXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXd5UWtGQk1rSXNRMEZCUXl4RFFVRkRPMjlDUVVNeFF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0blFrRkRXRHR2UWtGRFJTeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMSGRDUVVGM1FpeEpRVUZKTEVOQlFVTXNVVUZCVVN4SlFVRkpMRU5CUVVNc1EwRkJRenRoUVVNMVJEdFRRVU5HTzBsQlEwZ3NRMEZCUXp0SlFVVk5MSE5DUVVGelFqdFJRVU16UWl4SlFVRkpMRWxCUVVrc1EwRkJReXhSUVVGUkxEaENRVUZwUWl4SlFVRkpMRWxCUVVrc1EwRkJReXhSUVVGUkxEQkNRVUZsTEVWQlFVVTdXVUZEYkVVc1QwRkJUeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRWxCUVVrc1RVRkJUU3hEUVVGRE8xTkJRelZGTzJGQlFVMDdXVUZEVEN4UFFVRlBMRXRCUVVzc1EwRkJRenRUUVVOa08wbEJRMGdzUTBGQlF6dEpRVVZOTEU5QlFVOHNTMEZCWXl4UFFVRlBMRWxCUVVrc1EwRkJReXhSUVVGUkxHbERRVUZ0UWl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVVdlJDeFhRVUZYTEV0QlFXTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1VVRkJVU3g1UTBGQmRVSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZka1VzVFVGQlRTeExRVUZqTEU5QlFVOHNTVUZCU1N4RFFVRkRMRkZCUVZFc0swSkJRV3RDTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlRkRUxFdEJRVXNzUzBGQll5eFBRVUZQTEVsQlFVa3NRMEZCUXl4UlFVRlJMRXRCUVVzc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVZ3UkN4TFFVRkxMRXRCUVdNc1QwRkJUeXhKUVVGSkxFTkJRVU1zVVVGQlVTeExRVUZMTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZjRVFzVTBGQlV5eExRVUZqTEU5QlFVOHNTVUZCU1N4RFFVRkRMRkZCUVZFc1MwRkJTeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJUbEVMRFJFUVVFMFJEdEpRVU0xUkRzN1QwRkZSenRKUVVOUExGZEJRVmM3VVVGRGJrSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEZWQlFWVXNPRUpCUVdkQ08xbEJRM0pFTEc5RFFVRnpRanRoUVVOdVFpeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zVlVGQlZTeHpRMEZCYjBJN1dVRkRPVVFzTkVOQlFUQkNPMkZCUTNaQ0xFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhWUVVGVkxEUkNRVUZsTzFsQlEzcEVMR3REUVVGeFFqczdXVUZGY2tJc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eFhRVUZYTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3c0UWtGQk9FSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRE4wWXNRMEZCUXp0SlFVVkVPenM3T3pzN1QwRk5SenRKUVVOUExGbEJRVmtzUTBGQlF5eGpRVUYzUWp0UlFVTTNReXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRPMUZCUTNoQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNN1VVRkRka0lzVFVGQlRTeEpRVUZKTEVkQlFVY3NZMEZCWXl4RFFVRkRMRmRCUVZjc1JVRkJSU3hIUVVGSExFZEJRVWNzUjBGQlJ5eEhRVUZITEVOQlFVTXNTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJRenRSUVVOcVJTeE5RVUZOTEZWQlFWVXNSMEZCUnl4SFFVRkhMRU5CUVVNc1UwRkJVeXhEUVVGRExFOUJRVThzUTBGQlF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkROMFFzVFVGQlRTeFRRVUZUTEVkQlFVY3NSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zVVVGQlVTeEZRVUZGTEZWQlFWVXNSVUZCUlN4SlFVRkpMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOd1JpeFRRVUZUTEVOQlFVTXNUMEZCVHl4SFFVRkhMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zWVVGQllTeERRVUZETzFGQlF6ZERMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlF5OURMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4aFFVRmhMRVZCUVVVc1pVRkJaU3hEUVVGRExFTkJRVU03VVVGRmVrUXNUVUZCVFN4WFFVRlhMRWRCUVVjc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJRek5FTEVsQlFVa3NWMEZCVnp0WlFVTmlMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldTeERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1YwRkJWeXhEUVVGRExFTkJRVU03VVVGRk5VUXNUVUZCVFN4bFFVRmxMRWRCUVVjc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8xRkJRMjVGTEVsQlFVa3NaVUZCWlR0WlFVTnFRaXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVGRkxHVkJRV1VzUTBGQlF5eERRVUZETzFGQlJYQkZMRTFCUVUwc2MwSkJRWE5DTEVkQlFVY3NSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFTkJRVU03VVVGRGFrWXNTVUZCU1N4elFrRkJjMEk3V1VGRGVFSXNVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhGUVVGRkxITkNRVUZ6UWl4RFFVRkRMRU5CUVVNN1VVRkZiRVlzVDBGQlR5eFRRVUZUTEVOQlFVTTdTVUZEYmtJc1EwRkJRenRKUVVWRU96czdPenM3VDBGTlJ6dEpRVU5KTEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1YwRkJjMEk3VVVGREwwTXNUVUZCVFN4SFFVRkhMRWRCUVdsQ0xFbEJRVWtzV1VGQldTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUTNoRUxFMUJRVTBzWTBGQll5eEhRVUZITEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNN1VVRkRjRU1zVDBGQlR5eEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRE8wbEJRekZETEVOQlFVTTdTVUZGUkRzN096czdUMEZMUnp0SlFVTkpMRTFCUVUwc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4TFFVRmhPMUZCUXpWRExFdEJRVXNzUjBGQlJ5eExRVUZMTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNN1VVRkROVUlzVFVGQlRTeFJRVUZSTEVkQlFVY3NaMGRCUVcxRUxFTkJRVU03VVVGRGNrVXNUVUZCVFN4VFFVRlRMRWRCUVVjc1EwRkJReXhMUVVGTExFVkJRVVVzUzBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUlhaRExFMUJRVTBzWlVGQlpTeEhRVUZITEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTm9SaXhQUVVGUExHVkJRV1VzUTBGQlF6dEpRVU42UWl4RFFVRkRPMGxCUlVRN096czdPenM3TzA5QlVVYzdTVUZEU1N4TlFVRk5MRU5CUVVNc2MwSkJRWE5DTEVOQlEyeERMRWRCUVZjc1JVRkRXQ3hKUVVGWkxFVkJRMW9zUzBGQllUdFJRVVZpTERSRlFVRTBSVHRSUVVNMVJTd3lRa0ZCTWtJN1VVRkRNMElzSzBOQlFTdERPMUZCUXk5RExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUzBGQlN5eERRVUZETzFsQlEzcERMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zZFVOQlFYVkRMRU5CUVVNc1EwRkJRenRSUVVNelJDeE5RVUZOTEZOQlFWTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eFJRVUZSTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRemxGTEZOQlFWTXNRMEZCUXl4UFFVRlBMRWRCUVVjc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eGhRVUZoTEVOQlFVTTdVVUZETjBNc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU4yUXl4UFFVRlBMRk5CUVZNc1EwRkJRenRKUVVOdVFpeERRVUZET3p0QlFUbE9jMElzYVVKQlFVa3NSMEZCUnp0SlFVTTFRaXhQUVVGUExFVkJRVVVzVTBGQlV6dEpRVU5zUWl4UlFVRlJMRVZCUVVVc1ZVRkJWVHRKUVVOd1FpeFpRVUZaTEVWQlFVVXNaVUZCWlR0SlFVTTNRaXh0UWtGQmJVSXNSVUZCUlN4elFrRkJjMEk3U1VGRE0wTXNVMEZCVXl4RlFVRkZMRmRCUVZjN1EwRkRka0lzUTBGQlF6dEJRVTEzUWl4dFEwRkJjMElzUjBGQlJ6dEpRVU5xUkN4SlFVRkpMRVZCUVVVc1IwRkJSenRKUVVOVUxGTkJRVk1zUlVGQlJTeEZRVUZGTzBsQlEySXNTMEZCU3l4RlFVRkZMRWRCUVVjN1EwRkRXQ3hEUVVGRE8wRkJSWEZDTEdsRFFVRnZRaXhIUVVGSExFbEJRVWtzUjBGQlJ5eERRVUZETzBsQlEzQkVMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjN1NVRkRhRVFzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ6dERRVU5xUkN4RFFVRkRMRU5CUVVNN1FVRkRiMElzTmtKQlFXZENMRWRCUVVjc1NVRkJTU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEycEVMRFpDUVVGblFpeEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0FxSUdGeklFUkhJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzlrWnljN1hHNXBiWEJ2Y25RZ0tpQmhjeUIxYVNCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdmRXa25PMXh1YVcxd2IzSjBJQ29nWVhNZ1ozSnZheUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2WjNKdmF5YzdYRzVjYm1sdGNHOXlkQ0I3VjJWaVRHOW5ieXdnVTJWeFEyOXNVM1JoZEhOOUlHWnliMjBnSnk0dUwzWnBaWGRsY25NdmQyVmlMV3h2WjI4bk8xeHVYRzR2S2lvZ1pXNTFiU0IwZVhCbElIUnZJSE5wYlhCc2FXWjVJSE5sZEhScGJtY2dYQ0oxYzJWeUxXWnlhV1Z1Wkd4NVhDSWdibTkwWVhScGIyNGdhV1lnYm1WalpYTnpZWEo1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnWlc1MWJTQk9UMVJCVkVsUFRpQjdYRzRnSUVaQlUxUkJJRDBnSjJaaGMzUmhKeXhjYmlBZ1UwVlFRVkpCVkU5U0lEMGdKM05sY0dGeVlYUnZjaWNzWEc0Z0lFaEZURTBnUFNBbmFHVnNiU2NzWEc1OVhHNWNibVY0Y0c5eWRDQmpiMjV6ZENCbGJuVnRJRUZNVUVoQlFrVlVJSHRjYmlBZ1JFNUJJRDBnSjBST1FTY3NYRzRnSUZKT1FTQTlJQ2RTVGtFbkxGeHVJQ0JRVkNBOUlDZFFWQ2NzWEc0Z0lGVk9JRDBnSjFWT0p5eGNibjFjYmx4dUx5b3FJRU5zWVhOeklHWnZjaUJvWVc1a2JHbHVaeUJ1YjNSaGRHbHZiaUIxYm1sMGN5QnBiaUJOWVdOeWIyMXZiR1ZqZFd4bElHTnZiSFZ0Ym5NZ0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCVmJtbDBjMGhoYm1Sc1pYSWdlMXh1SUNCd2RXSnNhV01nYzNSaGRHbGpJSEpsWVdSdmJteDVJRlJCUjFNZ1BTQjdYRzRnSUNBZ1lXeHBaMjVsWkRvZ0oyRnNhV2R1WldRbkxGeHVJQ0FnSUdGc2NHaGhZbVYwT2lBbllXeHdhR0ZpWlhRbkxGeHVJQ0FnSUdGc2NHaGhZbVYwVTJsNlpUb2dKeTVoYkhCb1lXSmxkRk5wZW1VbkxGeHVJQ0FnSUdGc2NHaGhZbVYwU1hOTmRXeDBhV05vWVhJNklDY3VZV3h3YUdGaVpYUkpjMDExYkhScFkyaGhjaWNzWEc0Z0lDQWdjMlZ3WVhKaGRHOXlPaUFuYzJWd1lYSmhkRzl5Snl4Y2JpQWdmVHRjYmx4dUlDQndjbTkwWldOMFpXUWdjbVZoWkc5dWJIa2dYMk52YkhWdGJqb2dSRWN1UTI5c2RXMXVPeUF2THlCMGFHVWdZMjlzZFcxdUlIUnZJR0psSUdOdmJuWmxjblJsWkZ4dUlDQndjbTkwWldOMFpXUWdYM1Z1YVhSek9pQnpkSEpwYm1jN0lDOHZJSFZ1YVhSekxDQnZaaUIwYUdVZ1ptOXliU0JtWVhOMFlTd2djMlZ3WVhKaGRHOXlYRzRnSUhCeWIzUmxZM1JsWkNCZmJtOTBZWFJwYjI0NklFNVBWRUZVU1U5T095QXZMeUJqZFhKeVpXNTBJRzV2ZEdGMGFXOXVJQ2gzYVhSb2IzVjBJRHBUUlZFNlRsUXNJR1YwWXk0cFhHNGdJSEJ5YjNSbFkzUmxaQ0JmWkdWbVlYVnNkRWRoY0ZONWJXSnZiRG9nYzNSeWFXNW5PMXh1SUNCd2NtOTBaV04wWldRZ2MzUmhkR2xqSUhKbFlXUnZibXg1SUY5a1pXWmhkV3gwUjJGd1UzbHRZbTlzYzBScFkzUWdQU0I3WEc0Z0lDQWdTRVZNVFRvZ0p5b25MRnh1SUNBZ0lGTkZVRUZTUVZSUFVqb2dKeWNzWEc0Z0lDQWdSa0ZUVkVFNklDY3RKeXhjYmlBZ2ZUdGNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJSEpsWVdSdmJteDVJRkJsY0hScFpHVkdZWE4wWVVGc2NHaGhZbVYwSUQwZ2JtVjNJRk5sZENoYlhHNGdJQ0FnSjBjbkxDQW5UQ2NzSUNkWkp5d2dKMU1uTENBblJTY3NJQ2RSSnl3Z0owUW5MQ0FuVGljc0lDZEdKeXdnSjBFbkxGeHVJQ0FnSUNkTEp5d2dKMUluTENBblNDY3NJQ2RESnl3Z0oxWW5MQ0FuVUNjc0lDZFhKeXdnSjBrbkxDQW5UU2NzSUNkVUp5eGNiaUFnWFNrN1hHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ2NtVmhaRzl1YkhrZ1JHNWhSbUZ6ZEdGQmJIQm9ZV0psZENBOUlHNWxkeUJUWlhRb1d5ZEJKeXdnSjBNbkxDQW5SeWNzSUNkVUoxMHBPMXh1SUNCd2RXSnNhV01nYzNSaGRHbGpJSEpsWVdSdmJteDVJRkp1WVVaaGMzUmhRV3h3YUdGaVpYUWdQU0J1WlhjZ1UyVjBLRnNuUVNjc0lDZERKeXdnSjBjbkxDQW5WU2RkS1R0Y2JseHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklITmxkRlZ1YVhSelZHOUdZWE4wWVVOdmJIVnRiaWhqYjJ3NklFUkhMa052YkhWdGJpa2dlMXh1SUNBZ0lHbG1JQ2hqYjJ3dWMyVnRWSGx3WlNBaFBUMGdSRWN1VTBWTlZGbFFSUzVOUVVOU1QwMVBURVZEVlV4RktWeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkR1lYTjBZU0JqYjJ4MWJXNGdiWFZ6ZENCaVpTQk5RVU5TVDAxUFRFVkRWVXhGSnlrN1hHNWNiaUFnSUNCamIyNXpkQ0J6ZEdGMGN6b2dVMlZ4UTI5c1UzUmhkSE1nUFNCWFpXSk1iMmR2TG1kbGRGTjBZWFJ6S0dOdmJDd2dOU3dnVjJWaVRHOW5ieTV6Y0d4cGRIUmxja0Z6Um1GemRHRXBPMXh1SUNBZ0lHTnZibk4wSUhObGNWUjVjR1VnUFNCemRHRjBjeTV6WVcxbFRHVnVaM1JvSUQ4Z0oxTkZVUzVOVTBFbklEb2dKMU5GVVNjN1hHNWNiaUFnSUNCamIyNXpkQ0JoYkhCb1lXSmxkRU5oYm1ScFpHRjBaWE02SUZ0emRISnBibWNzSUZObGREeHpkSEpwYm1jK1hWdGRJRDBnVzF4dUlDQWdJQ0FnVzBGTVVFaEJRa1ZVTGxCVUxDQlZibWwwYzBoaGJtUnNaWEl1VUdWd2RHbGtaVVpoYzNSaFFXeHdhR0ZpWlhSZExGeHVJQ0FnSUNBZ1cwRk1VRWhCUWtWVUxrUk9RU3dnVlc1cGRITklZVzVrYkdWeUxrUnVZVVpoYzNSaFFXeHdhR0ZpWlhSZExGeHVJQ0FnSUNBZ1cwRk1VRWhCUWtWVUxsSk9RU3dnVlc1cGRITklZVzVrYkdWeUxsSnVZVVpoYzNSaFFXeHdhR0ZpWlhSZExGeHVJQ0FnSUYwN1hHNWNiaUFnSUNBdkx5QkRZV3hqZFd4aGRHVWdiR2xyWld4cGFHOXZaSE1nWm05eUlHRnNjR2hoWW1WMFgyTmhibVJwWkdGMFpYTmNiaUFnSUNCamIyNXpkQ0JoYkhCb1lXSmxkRU5oYm1ScFpHRjBaWE5UYVcwNklHNTFiV0psY2x0ZElEMGdZV3h3YUdGaVpYUkRZVzVrYVdSaGRHVnpMbTFoY0NoY2JpQWdJQ0FnSUNoaktTQTlQaUJYWldKTWIyZHZMbWRsZEVGc2NHaGhZbVYwVTJsdGFXeGhjbWwwZVNoemRHRjBjeTVtY21WeExDQmpXekZkS1NrN1hHNGdJQ0FnWTI5dWMzUWdiV0Y0UTI5eklEMGdUV0YwYUM1dFlYZ29MaTR1WVd4d2FHRmlaWFJEWVc1a2FXUmhkR1Z6VTJsdEtUdGNiaUFnSUNCamIyNXpkQ0JoYkhCb1lXSmxkQ0E5SUcxaGVFTnZjeUErSURBdU5qVWdQeUJoYkhCb1lXSmxkRU5oYm1ScFpHRjBaWE5iWVd4d2FHRmlaWFJEWVc1a2FXUmhkR1Z6VTJsdExtbHVaR1Y0VDJZb2JXRjRRMjl6S1YxYk1GMGdPaUFuVlU0bk8xeHVYRzRnSUNBZ1kyOXNMbk5sZEZSaFp5aEVSeTVVUVVkVExsVk9TVlJUTENCT1QxUkJWRWxQVGk1R1FWTlVRU2s3WEc0Z0lDQWdZMjlzTG5ObGRGUmhaeWhWYm1sMGMwaGhibVJzWlhJdVZFRkhVeTVoYkdsbmJtVmtMQ0J6WlhGVWVYQmxLVHRjYmlBZ0lDQmpiMnd1YzJWMFZHRm5LRlZ1YVhSelNHRnVaR3hsY2k1VVFVZFRMbUZzY0doaFltVjBMQ0JoYkhCb1lXSmxkQ2s3WEc0Z0lIMWNibHh1SUNCd2NtOTBaV04wWldRZ1oyVjBJSFZ1YVhSektDazZJSE4wY21sdVp5QjdJSEpsZEhWeWJpQjBhR2x6TGw5MWJtbDBjenNnZlZ4dVhHNGdJSEJ5YjNSbFkzUmxaQ0JuWlhRZ1kyOXNkVzF1S0NrNklFUkhMa052YkhWdGJpQjdJSEpsZEhWeWJpQjBhR2x6TGw5amIyeDFiVzQ3SUgxY2JseHVJQ0J3ZFdKc2FXTWdaMlYwSUc1dmRHRjBhVzl1S0NrNklFNVBWRUZVU1U5T0lIc2djbVYwZFhKdUlIUm9hWE11WDI1dmRHRjBhVzl1T3lCOVhHNWNiaUFnY0hWaWJHbGpJR2RsZENCa1pXWmhkV3gwUjJGd1UzbHRZbTlzS0NrNklITjBjbWx1WnlCN0lISmxkSFZ5YmlCMGFHbHpMbDlrWldaaGRXeDBSMkZ3VTNsdFltOXNPeUI5WEc1Y2JpQWdjSFZpYkdsaklHZGxkQ0J6WlhCaGNtRjBiM0lvS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0JqYjI1emRDQnpaWEJoY21GMGIzSWdQU0IwYUdsekxtTnZiSFZ0Ymk1blpYUlVZV2NvVlc1cGRITklZVzVrYkdWeUxsUkJSMU11YzJWd1lYSmhkRzl5S1R0Y2JpQWdJQ0JwWmlBb2MyVndZWEpoZEc5eUlDRTlQU0J1ZFd4c0tWeHVJQ0FnSUNBZ2NtVjBkWEp1SUhObGNHRnlZWFJ2Y2p0Y2JpQWdJQ0JsYkhObFhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjFObGNHRnlZWFJ2Y2lCdWIzUWdjMlYwSnlrN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1oyVjBJR0ZzYVdkdVpXUW9LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQmpiMjV6ZENCaGJHbG5ibVZrSUQwZ2RHaHBjeTVqYjJ4MWJXNHVaMlYwVkdGbktGVnVhWFJ6U0dGdVpHeGxjaTVVUVVkVExtRnNhV2R1WldRcE8xeHVJQ0FnSUdsbUlDaGhiR2xuYm1Wa0lDRTlQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1lXeHBaMjVsWkR0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZFVZV2NnWVd4cFoyNWxaQ0J1YjNRZ2MyVjBKeWs3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnTHlvcUlFRnNjR2hoWW1WMElHNWhiV1VnS0hWd2NHVnlJR05oYzJVcElDb3ZYRzRnSUhCMVlteHBZeUJuWlhRZ1lXeHdhR0ZpWlhRb0tUb2djM1J5YVc1bklIdGNiaUFnSUNCamIyNXpkQ0JoYkhCb1lXSmxkQ0E5SUhSb2FYTXVZMjlzZFcxdUxtZGxkRlJoWnloVmJtbDBjMGhoYm1Sc1pYSXVWRUZIVXk1aGJIQm9ZV0psZENrN1hHNGdJQ0FnYVdZZ0tHRnNjR2hoWW1WMElDRTlQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1lXeHdhR0ZpWlhRdWRHOVZjSEJsY2tOaGMyVW9LVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkVVlXY2dZV3h3YUdGaVpYUWdibTkwSUhObGRDY3BPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5Qm5aWFJCYkhCb1lXSmxkRk5wZW1Vb0tUb2diblZ0WW1WeUlIdGNiaUFnSUNCcFppQW9kR2hwY3k1dWIzUmhkR2x2YmlBOVBTQk9UMVJCVkVsUFRpNUlSVXhOSUh4OElIUm9hWE11WVd4d2FHRmlaWFFnUFQwZ1FVeFFTRUZDUlZRdVZVNHBJSHRjYmlBZ0lDQWdJR052Ym5OMElHRnNjR2hoWW1WMFUybDZaU0E5SUhCaGNuTmxTVzUwS0hSb2FYTXVZMjlzZFcxdUxtZGxkRlJoWnloVmJtbDBjMGhoYm1Sc1pYSXVWRUZIVXk1aGJIQm9ZV0psZEZOcGVtVXBLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmhiSEJvWVdKbGRGTnBlbVU3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lITjNhWFJqYUNBb2RHaHBjeTVoYkhCb1lXSmxkQ2tnZTF4dUlDQWdJQ0FnWTJGelpTQkJURkJJUVVKRlZDNVFWRHBjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJREl3TzF4dUlDQWdJQ0FnWTJGelpTQkJURkJJUVVKRlZDNUVUa0U2WEc0Z0lDQWdJQ0JqWVhObElFRk1VRWhCUWtWVUxsSk9RVHBjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRFE3WEc0Z0lDQWdJQ0JqWVhObElDZE9WQ2M2WEc0Z0lDQWdJQ0FnSUdOdmJuTnZiR1V1ZDJGeWJpaGdWVzVsZUhCbFkzUmxaQ0JoYkhCb1lXSmxkQ0FuVGxRbkxtQXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdORHRjYmlBZ0lDQWdJR1JsWm1GMWJIUTZYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdWVzVsZUhCbFkzUmxaQ0JoYkhCb1lXSmxkQ0FuSkh0MGFHbHpMbUZzY0doaFltVjBmU2N1WUNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdkbGRFRnNjR2hoWW1WMFNYTk5kV3gwYVdOb1lYSW9LVG9nWW05dmJHVmhiaUI3WEc0Z0lDQWdhV1lnS0hSb2FYTXVibTkwWVhScGIyNGdQVDBnVGs5VVFWUkpUMDR1U0VWTVRTQjhmQ0IwYUdsekxtRnNjR2hoWW1WMElEMDlJRUZNVUVoQlFrVlVMbFZPS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWpiMngxYlc0dVoyVjBWR0ZuS0ZWdWFYUnpTR0Z1Wkd4bGNpNVVRVWRUTG1Gc2NHaGhZbVYwU1hOTmRXeDBhV05vWVhJcElEMDlJQ2QwY25WbEp6dGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCcGMwWmhjM1JoS0NrNklHSnZiMnhsWVc0Z2V5QnlaWFIxY200Z2RHaHBjeTV1YjNSaGRHbHZiaUE5UFQwZ1RrOVVRVlJKVDA0dVJrRlRWRUU3SUgxY2JseHVJQ0J3ZFdKc2FXTWdhWE5UWlhCaGNtRjBiM0lvS1RvZ1ltOXZiR1ZoYmlCN0lISmxkSFZ5YmlCMGFHbHpMbTV2ZEdGMGFXOXVJRDA5UFNCT1QxUkJWRWxQVGk1VFJWQkJVa0ZVVDFJN0lIMWNibHh1SUNCd2RXSnNhV01nYVhOSVpXeHRLQ2s2SUdKdmIyeGxZVzRnZXlCeVpYUjFjbTRnZEdocGN5NXViM1JoZEdsdmJpQTlQVDBnVGs5VVFWUkpUMDR1U0VWTVRUc2dmVnh1WEc0Z0lIQjFZbXhwWXlCcGMxSnVZU2dwT2lCaWIyOXNaV0Z1SUhzZ2NtVjBkWEp1SUhSb2FYTXVZV3h3YUdGaVpYUWdQVDA5SUNkU1RrRW5PeUI5WEc1Y2JpQWdjSFZpYkdsaklHbHpSRzVoS0NrNklHSnZiMnhsWVc0Z2V5QnlaWFIxY200Z2RHaHBjeTVoYkhCb1lXSmxkQ0E5UFQwZ0owUk9RU2M3SUgxY2JseHVJQ0J3ZFdKc2FXTWdhWE5RWlhCMGFXUmxLQ2s2SUdKdmIyeGxZVzRnZXlCeVpYUjFjbTRnZEdocGN5NWhiSEJvWVdKbGRDQTlQVDBnSjFCVUp6c2dmVnh1WEc0Z0lDOHFLaUJCYzNOdlkybGhkR1VnYm05MFlYUnBiMjRnZEhsd1pYTWdkMmwwYUNCMGFHVWdZMjl5Y21WemNHOXVaR2x1WnlCMWJtbDBjeUFxTDF4dUlDQXZLaXBjYmlBZ0lDb2dRSEpsZEhWeWJpQjdUazlVUVZSSlQwNTlJQ0FnSUNCT2IzUmhkR2x2YmlCaGMzTnZZMmxoZEdWa0lIZHBkR2dnZEdobElIVnVhWFJ6SUhSNWNHVmNiaUFnSUNvdlhHNGdJSEJ5YjNSbFkzUmxaQ0JuWlhST2IzUmhkR2x2YmlncE9pQk9UMVJCVkVsUFRpQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdWRXNXBkSE11ZEc5TWIzZGxja05oYzJVb0tTNXpkR0Z5ZEhOWGFYUm9LRTVQVkVGVVNVOU9Ma1pCVTFSQktTbGNiaUFnSUNBZ0lISmxkSFZ5YmlCT1QxUkJWRWxQVGk1R1FWTlVRVHRjYmlBZ0lDQmxiSE5sSUdsbUlDaDBhR2x6TG5WdWFYUnpMblJ2VEc5M1pYSkRZWE5sS0NrdWMzUmhjblJ6VjJsMGFDaE9UMVJCVkVsUFRpNVRSVkJCVWtGVVQxSXBLVnh1SUNBZ0lDQWdjbVYwZFhKdUlFNVBWRUZVU1U5T0xsTkZVRUZTUVZSUFVqdGNiaUFnSUNCbGJITmxJR2xtSUNoMGFHbHpMblZ1YVhSekxuUnZURzkzWlhKRFlYTmxLQ2t1YzNSaGNuUnpWMmwwYUNoT1QxUkJWRWxQVGk1SVJVeE5LU2xjYmlBZ0lDQWdJSEpsZEhWeWJpQk9UMVJCVkVsUFRpNUlSVXhOTzF4dUlDQWdJR1ZzYzJWY2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhnUTI5c2RXMXVJQ2NrZTNSb2FYTXVZMjlzZFcxdUxtNWhiV1Y5SnlCb1lYTWdkVzVsZUhCbFkzUmxaQ0J1YjNSaGRHbHZiaUFuSkh0MGFHbHpMblZ1YVhSemZTY3VZQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EzSmxZWFJsSUdFZ2JtVjNJR1Z0Y0hSNUlHTnZiSFZ0YmlCdlppQjBhR1VnYzNCbFkybG1hV1ZrSUc1dmRHRjBhVzl1SUhSNWNHVWdZVzVrSUhSb1pTQnpZVzFsWEc0Z0lDQXFJR3hsYm1kMGFDQmhjeUJqYjJ4MWJXNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHRPVDFSQlZFbFBUbjBnZEdGeVoyVjBUbTkwWVhScGIyNWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JFY3VRMjlzZFcxdWZWeHVJQ0FnS2k5Y2JpQWdjSEp2ZEdWamRHVmtJR2RsZEU1bGQwTnZiSFZ0YmloMFlYSm5aWFJPYjNSaGRHbHZiam9nVGs5VVFWUkpUMDRwT2lCRVJ5NURiMngxYlc0Z2UxeHVJQ0FnSUdOdmJuTjBJR052YkNBOUlIUm9hWE11WTI5c2RXMXVPMXh1SUNBZ0lHTnZibk4wSUd4bGJpQTlJR052YkM1c1pXNW5kR2c3WEc0Z0lDQWdZMjl1YzNRZ2JtRnRaU0E5SUhSaGNtZGxkRTV2ZEdGMGFXOXVMblJ2VEc5M1pYSkRZWE5sS0NrZ0t5QW5LQ2NnS3lCamIyd3VibUZ0WlNBcklDY3BKenRjYmlBZ0lDQmpiMjV6ZENCdVpYZERiMnhPWVcxbElEMGdZMjlzTG1SaGRHRkdjbUZ0WlM1amIyeDFiVzV6TG1kbGRGVnVkWE5sWkU1aGJXVW9ibUZ0WlNrN1hHNGdJQ0FnWTI5dWMzUWdibVYzUTI5c2RXMXVJRDBnUkVjdVEyOXNkVzF1TG1aeWIyMU1hWE4wS0NkemRISnBibWNuTENCdVpYZERiMnhPWVcxbExDQnVaWGNnUVhKeVlYa29iR1Z1S1M1bWFXeHNLQ2NuS1NrN1hHNGdJQ0FnYm1WM1EyOXNkVzF1TG5ObGJWUjVjR1VnUFNCRVJ5NVRSVTFVV1ZCRkxrMUJRMUpQVFU5TVJVTlZURVU3WEc0Z0lDQWdibVYzUTI5c2RXMXVMbk5sZEZSaFp5aEVSeTVVUVVkVExsVk9TVlJUTENCMGFHbHpMbTV2ZEdGMGFXOXVLVHRjYmlBZ0lDQnVaWGREYjJ4MWJXNHVjMlYwVkdGbktFUkhMbFJCUjFNdVEwVk1URjlTUlU1RVJWSkZVaXdnSjAxaFkzSnZiVzlzWldOMWJHVW5LVHRjYmx4dUlDQWdJR052Ym5OMElITnlZMEZzY0doaFltVjBJRDBnWTI5c0xtZGxkRlJoWnloVmJtbDBjMGhoYm1Sc1pYSXVWRUZIVXk1aGJIQm9ZV0psZENrN1hHNGdJQ0FnYVdZZ0tITnlZMEZzY0doaFltVjBLVnh1SUNBZ0lDQWdibVYzUTI5c2RXMXVMbk5sZEZSaFp5aFZibWwwYzBoaGJtUnNaWEl1VkVGSFV5NWhiSEJvWVdKbGRDd2djM0pqUVd4d2FHRmlaWFFwTzF4dVhHNGdJQ0FnWTI5dWMzUWdjM0pqUVd4d2FHRmlaWFJUYVhwbElEMGdZMjlzTG1kbGRGUmhaeWhWYm1sMGMwaGhibVJzWlhJdVZFRkhVeTVoYkhCb1lXSmxkRk5wZW1VcE8xeHVJQ0FnSUdsbUlDaHpjbU5CYkhCb1lXSmxkRk5wZW1VcFhHNGdJQ0FnSUNCdVpYZERiMngxYlc0dWMyVjBWR0ZuS0ZWdWFYUnpTR0Z1Wkd4bGNpNVVRVWRUTG1Gc2NHaGhZbVYwVTJsNlpTd2djM0pqUVd4d2FHRmlaWFJUYVhwbEtUdGNibHh1SUNBZ0lHTnZibk4wSUhOeVkwRnNjR2hoWW1WMFNYTk5kV3gwYVdOb1lYSWdQU0JqYjJ3dVoyVjBWR0ZuS0ZWdWFYUnpTR0Z1Wkd4bGNpNVVRVWRUTG1Gc2NHaGhZbVYwU1hOTmRXeDBhV05vWVhJcE8xeHVJQ0FnSUdsbUlDaHpjbU5CYkhCb1lXSmxkRWx6VFhWc2RHbGphR0Z5S1Z4dUlDQWdJQ0FnYm1WM1EyOXNkVzF1TG5ObGRGUmhaeWhWYm1sMGMwaGhibVJzWlhJdVZFRkhVeTVoYkhCb1lXSmxkRWx6VFhWc2RHbGphR0Z5TENCemNtTkJiSEJvWVdKbGRFbHpUWFZzZEdsamFHRnlLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQnVaWGREYjJ4MWJXNDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTNKbFlYUmxJR0VnYm1WM0lHVnRjSFI1SUdOdmJIVnRiaUIxYzJsdVp5QjBaVzF3YkdGMFpVTnZiQ0JoY3lCaElIUmxiWEJzWVhSbFhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQjdSRWN1UTI5c2RXMXVmU0IwWlcxd2JHRjBaVU52YkNBZ2RHaGxJSEJ5YjNCbGNuUnBaWE1nWVc1a0lIVnVhWFJ6SUc5bUlIUm9hWE1nWTI5c2RXMXVJR0Z5WlNCMWMyVmtJR0Z6SUdGY2JpQWdJQ29nZEdWdGNHeGhkR1VnZEc4Z1luVnBiR1FnZEdobElHNWxkeUJ2Ym1WY2JpQWdJQ29nUUhKbGRIVnliaUI3UkVjdVEyOXNkVzF1ZlZ4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJuWlhST1pYZERiMngxYlc0b2RHVnRjR3hoZEdWRGIydzZJRVJITGtOdmJIVnRiaWs2SUVSSExrTnZiSFZ0YmlCN1hHNGdJQ0FnWTI5dWMzUWdZMjlzT2lCVmJtbDBjMGhoYm1Sc1pYSWdQU0J1WlhjZ1ZXNXBkSE5JWVc1a2JHVnlLSFJsYlhCc1lYUmxRMjlzS1R0Y2JpQWdJQ0JqYjI1emRDQjBZWEpuWlhST2IzUmhkR2x2YmlBOUlHTnZiQzV1YjNSaGRHbHZianRjYmlBZ0lDQnlaWFIxY200Z1kyOXNMbWRsZEU1bGQwTnZiSFZ0YmloMFlYSm5aWFJPYjNSaGRHbHZiaWs3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FTQm9aV3h3WlhJZ1puVnVZM1JwYjI0Z1kyaGxZMnRwYm1jZ2RHaGxJSFpoYkdsa2FYUjVJRzltSUhSb1pTQW5kVzVwZEhNbklITjBjbWx1WjF4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2RXNXBkSE1nSUhSb1pTQnpkSEpwYm1jZ2RHOGdZbVVnZG1Gc2FXUmhkR1ZrWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMkp2YjJ4bFlXNTlYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklIVnVhWFJ6VTNSeWFXNW5TWE5XWVd4cFpDaDFibWwwY3pvZ2MzUnlhVzVuS1RvZ1ltOXZiR1ZoYmlCN1hHNGdJQ0FnZFc1cGRITWdQU0IxYm1sMGN5NTBiMHh2ZDJWeVEyRnpaU2dwTzF4dUlDQWdJR052Ym5OMElIQnlaV1pwZUdWeklEMGdXMDVQVkVGVVNVOU9Ma1pCVTFSQkxDQk9UMVJCVkVsUFRpNVRSVkJCVWtGVVQxSXNJRTVQVkVGVVNVOU9Ma2hGVEUxZE8xeHVJQ0FnSUdOdmJuTjBJSEJ2YzNSbWFYaGxjeUE5SUZzbmNtNWhKeXdnSjJSdVlTY3NJQ2R3ZENkZE8xeHVYRzRnSUNBZ1kyOXVjM1FnY0hKbFptbDRRM0pwZEdWeWFXOXVJRDBnY0hKbFptbDRaWE11YzI5dFpTZ29jQ2tnUFQ0Z2RXNXBkSE11YzNSaGNuUnpWMmwwYUNod0xuUnZURzkzWlhKRFlYTmxLQ2twS1R0Y2JpQWdJQ0J5WlhSMWNtNGdjSEpsWm1sNFEzSnBkR1Z5YVc5dU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU52Ym5OMGNuVmpkQ0JoSUc1bGR5QmpiMngxYlc0Z2IyWWdjMlZ0WVc1MGFXTWdkSGx3WlNCTlFVTlNUMDFQVEVWRFZVeEZJR1p5YjIwZ2RHaGxJR3hwYzNRZ2IyWmNiaUFnSUNvZ2MzQmxZMmxtYVdWa0lIQmhjbUZ0WlhSbGNuTmNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJQ0FnSUd4bGJpQWdkR2hsSUd4bGJtZDBhQ0J2WmlCMGFHVWdibVYzSUdOdmJIVnRibHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ0lDQWdibUZ0WlNBZ2RHaGxJRzVoYldVZ2IyWWdkR2hsSUc1bGR5QmpiMngxYlc1Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJQ0FnSUhWdWFYUnpJQ0IwYUdVZ2RXNXBkSE1nYjJZZ2RHaGxJRzVsZHlCamIyeDFiVzVjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSRWN1UTI5c2RXMXVmVnh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5Qm5aWFJPWlhkRGIyeDFiVzVHY205dFVHRnlZVzF6S0Z4dUlDQWdJR3hsYmpvZ2JuVnRZbVZ5TEZ4dUlDQWdJRzVoYldVNklITjBjbWx1Wnl4Y2JpQWdJQ0IxYm1sMGN6b2djM1J5YVc1blhHNGdJQ2s2SUVSSExrTnZiSFZ0YmlCN1hHNGdJQ0FnTHk4Z1YwRlNUa2xPUnpvZ2FXNGdkR2hwY3lCcGJYQnNaVzFsYm5SaGRHbHZiaUJwY3lCcGN5QnBiWEJ2YzNOcFlteGxJSFJ2SUhabGNtbG1lU0IwYUdVZ2RXNXBjWFZsYm1WemMxeHVJQ0FnSUM4dklHOW1JSFJvWlNCdVpYY2dZMjlzZFcxdUozTWdibUZ0WlZ4dUlDQWdJQzh2SUZSUFJFODZJSFpsY21sbWVTQjBhR1VnZG1Gc2FXUnBkSGtnYjJZZ2RXNXBkSE1nY0dGeVlXMWxkR1Z5WEc0Z0lDQWdhV1lnS0NGVmJtbDBjMGhoYm1Sc1pYSXVkVzVwZEhOVGRISnBibWRKYzFaaGJHbGtLSFZ1YVhSektTbGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnblNXNTJZV3hwWkNCbWIzSnRZWFFnYjJZZ1hGd25kVzVwZEhOY1hDY2djR0Z5WVcxbGRHVnlKeWs3WEc0Z0lDQWdZMjl1YzNRZ2JtVjNRMjlzZFcxdUlEMGdSRWN1UTI5c2RXMXVMbVp5YjIxTWFYTjBLQ2R6ZEhKcGJtY25MQ0J1WVcxbExDQnVaWGNnUVhKeVlYa29iR1Z1S1M1bWFXeHNLQ2NuS1NrN1hHNGdJQ0FnYm1WM1EyOXNkVzF1TG5ObGJWUjVjR1VnUFNCRVJ5NVRSVTFVV1ZCRkxrMUJRMUpQVFU5TVJVTlZURVU3WEc0Z0lDQWdibVYzUTI5c2RXMXVMbk5sZEZSaFp5aEVSeTVVUVVkVExsVk9TVlJUTENCMWJtbDBjeWs3WEc0Z0lDQWdjbVYwZFhKdUlHNWxkME52YkhWdGJqdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QmpiMjV6ZEhKMVkzUnZjaWhqYjJ3NklFUkhMa052YkhWdGJpa2dlMXh1SUNBZ0lIUm9hWE11WDJOdmJIVnRiaUE5SUdOdmJEdGNiaUFnSUNCamIyNXpkQ0IxYm1sMGN5QTlJSFJvYVhNdVgyTnZiSFZ0Ymk1MFlXZHpXMFJITGxSQlIxTXVWVTVKVkZOZE8xeHVJQ0FnSUdsbUlDaDFibWwwY3lBaFBUMGdiblZzYkNsY2JpQWdJQ0FnSUhSb2FYTXVYM1Z1YVhSeklEMGdkVzVwZEhNN1hHNGdJQ0FnWld4elpWeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkVmJtbDBjeUJoY21VZ2JtOTBJSE53WldOcFptbGxaQ0JwYmlCamIyeDFiVzRuS1R0Y2JpQWdJQ0IwYUdsekxsOXViM1JoZEdsdmJpQTlJSFJvYVhNdVoyVjBUbTkwWVhScGIyNG9LVHRjYmlBZ0lDQjBhR2x6TGw5a1pXWmhkV3gwUjJGd1UzbHRZbTlzSUQwZ0tIUm9hWE11YVhOR1lYTjBZU2dwS1NBL0lGVnVhWFJ6U0dGdVpHeGxjaTVmWkdWbVlYVnNkRWRoY0ZONWJXSnZiSE5FYVdOMExrWkJVMVJCSURwY2JpQWdJQ0FnSUNoMGFHbHpMbWx6U0dWc2JTZ3BLU0EvSUZWdWFYUnpTR0Z1Wkd4bGNpNWZaR1ZtWVhWc2RFZGhjRk41YldKdmJITkVhV04wTGtoRlRFMGdPbHh1SUNBZ0lDQWdJQ0JWYm1sMGMwaGhibVJzWlhJdVgyUmxabUYxYkhSSFlYQlRlVzFpYjJ4elJHbGpkQzVUUlZCQlVrRlVUMUk3WEc1Y2JpQWdJQ0JwWmlBb0lYUm9hWE11WTI5c2RXMXVMblJoWjNNdWFHRnpLRlZ1YVhSelNHRnVaR3hsY2k1VVFVZFRMbUZzY0doaFltVjBVMmw2WlNrcElIdGNiaUFnSUNBZ0lHbG1JQ2gwYUdsekxtbHpTR1ZzYlNncEtWeHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb1lFWnZjaUJqYjJ4MWJXNGdKeVI3ZEdocGN5NWpiMngxYlc0dWJtRnRaWDBuSUc5bUlHNXZkR0YwYVc5dUlDY2tlM1JvYVhNdWJtOTBZWFJwYjI1OUp5QmdJQ3RjYmlBZ0lDQWdJQ0FnSUNCZ2RHRm5JQ2NrZTFWdWFYUnpTR0Z1Wkd4bGNpNVVRVWRUTG1Gc2NHaGhZbVYwVTJsNlpYMG5JR2x6SUcxaGJtUmhkRzl5ZVM1Z0tUdGNiaUFnSUNBZ0lHVnNjMlVnYVdZZ0tGc25WVTRuWFM1cGJtTnNkV1JsY3loMGFHbHpMbUZzY0doaFltVjBLU2xjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLR0JHYjNJZ1kyOXNkVzF1SUNja2UzUm9hWE11WTI5c2RXMXVMbTVoYldWOUp5QnZaaUJoYkhCb1lXSmxkQ0FuSkh0MGFHbHpMbUZzY0doaFltVjBmU2NnWUNBclhHNGdJQ0FnSUNBZ0lDQWdZSFJoWnlBbkpIdFZibWwwYzBoaGJtUnNaWEl1VkVGSFV5NWhiSEJvWVdKbGRGTnBlbVY5SnlCcGN5QnRZVzVrWVhSdmNua3VZQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbU52YkhWdGJpNTBZV2R6TG1oaGN5aFZibWwwYzBoaGJtUnNaWEl1VkVGSFV5NWhiSEJvWVdKbGRFbHpUWFZzZEdsamFHRnlLU2tnZTF4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11YVhOSVpXeHRLQ2twWEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhnUm05eUlHTnZiSFZ0YmlBbkpIdDBhR2x6TG1OdmJIVnRiaTV1WVcxbGZTY2diMllnYm05MFlYUnBiMjRnSnlSN2RHaHBjeTV1YjNSaGRHbHZibjBuSUdBZ0sxeHVJQ0FnSUNBZ0lDQWdJR0IwWVdjZ0p5UjdWVzVwZEhOSVlXNWtiR1Z5TGxSQlIxTXVZV3h3YUdGaVpYUkpjMDExYkhScFkyaGhjbjBuSUdseklHMWhibVJoZEc5eWVTNWdLVHRjYmlBZ0lDQWdJR1ZzYzJVZ2FXWWdLRnNuVlU0blhTNXBibU5zZFdSbGN5aDBhR2x6TG1Gc2NHaGhZbVYwS1NsY2JpQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0dCR2IzSWdZMjlzZFcxdUlDY2tlM1JvYVhNdVkyOXNkVzF1TG01aGJXVjlKeUJ2WmlCaGJIQm9ZV0psZENBbkpIdDBhR2x6TG1Gc2NHaGhZbVYwZlNjZ1lDQXJYRzRnSUNBZ0lDQWdJQ0FnWUhSaFp5QW5KSHRWYm1sMGMwaGhibVJzWlhJdVZFRkhVeTVoYkhCb1lXSmxkRWx6VFhWc2RHbGphR0Z5ZlNjZ2FYTWdiV0Z1WkdGMGIzSjVMbUFwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVmVnh1SWwxOSIsIi8vIERhdGEgc3RydWN0dXJlcyBmb3IgVi1Eb21haW4gcmVnaW9ucyBvZiBhbnRpYm9kaWVzXG5leHBvcnQgdmFyIFZkUmVnaW9uVHlwZTtcbihmdW5jdGlvbiAoVmRSZWdpb25UeXBlKSB7XG4gICAgVmRSZWdpb25UeXBlW1wiVW5rbm93blwiXSA9IFwidW5rbm93blwiO1xuICAgIFZkUmVnaW9uVHlwZVtcIkZSXCJdID0gXCJmcmFtZXdvcmtcIjtcbiAgICBWZFJlZ2lvblR5cGVbXCJDRFJcIl0gPSBcImNkclwiO1xufSkoVmRSZWdpb25UeXBlIHx8IChWZFJlZ2lvblR5cGUgPSB7fSkpO1xuLyoqIERlc2NyaWJlcyBWLURPTUFJTiAoSUcgYW5kIFRSKSByZWdpb24gKG9mIG11bHRpcGxlIGFsaWdubWVudClcbiAqIGh0dHBzOi8vd3d3LmltZ3Qub3JnL0lNR1RTY2llbnRpZmljQ2hhcnQvTnVtYmVyaW5nL0lNR1RJR1ZMc3VwZXJmYW1pbHkuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgVmRSZWdpb24ge1xuICAgIC8qKlxuICAgICAqIHN0YXJ0IGFuZCBwb3NpdGlvbiBhcmUgc3RyaW5ncyBiZWNhdXNlIHRoZXkgY29ycmVzcG9uZCB0byBwb3NpdGlvbiBuYW1lcyBhcyBjb2x1bW4gbmFtZXMgaW4gQU5BUkNJIG91dHB1dFxuICAgICAqIEBwYXJhbSB7VmRSZWdpb25UeXBlfSB0eXBlICBUeXBlIG9mIHRoZSByZWdpb25cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAgTmFtZSBvZiB0aGUgcmVnaW9uXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGNoYWluXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG9yZGVyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHBvc2l0aW9uU3RhcnROYW1lICBSZWdpb24gc3RhcnQgcG9zaXRpb24gKGluY2x1c2l2ZSlcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcG9zaXRpb25FbmROYW1lICBSZWdpb24gZW5kIHBvc2l0aW9uIChpbmNsdXNpdmUpXG4gICAgICovXG4gICAgY29uc3RydWN0b3IodHlwZSwgbmFtZSwgY2hhaW4sIG9yZGVyLCBwb3NpdGlvblN0YXJ0TmFtZSwgcG9zaXRpb25FbmROYW1lKSB7XG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuY2hhaW4gPSBjaGFpbjtcbiAgICAgICAgdGhpcy5vcmRlciA9IG9yZGVyO1xuICAgICAgICB0aGlzLnBvc2l0aW9uU3RhcnROYW1lID0gcG9zaXRpb25TdGFydE5hbWU7XG4gICAgICAgIHRoaXMucG9zaXRpb25FbmROYW1lID0gcG9zaXRpb25FbmROYW1lO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRtUXRjbVZuYVc5dWN5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW5aa0xYSmxaMmx2Ym5NdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzY1VSQlFYRkVPMEZCUlhKRUxFMUJRVTBzUTBGQlRpeEpRVUZaTEZsQlNWZzdRVUZLUkN4WFFVRlpMRmxCUVZrN1NVRkRkRUlzYlVOQlFXMUNMRU5CUVVFN1NVRkRia0lzWjBOQlFXZENMRU5CUVVFN1NVRkRhRUlzTWtKQlFWY3NRMEZCUVR0QlFVTmlMRU5CUVVNc1JVRktWeXhaUVVGWkxFdEJRVm9zV1VGQldTeFJRVWwyUWp0QlFVVkVPenRIUVVWSE8wRkJRMGdzVFVGQlRTeFBRVUZQTEZGQlFWRTdTVUZSYmtJN096czdPenM3TzA5QlVVYzdTVUZEU0N4WlFVRlpMRWxCUVd0Q0xFVkJRVVVzU1VGQldTeEZRVUZGTEV0QlFXRXNSVUZCUlN4TFFVRmhMRVZCUTNoRkxHbENRVUY1UWl4RlFVRkZMR1ZCUVhWQ08xRkJRMnhFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRMnBDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRMnBDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE8xRkJRMjVDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE8xRkJRMjVDTEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUjBGQlJ5eHBRa0ZCYVVJc1EwRkJRenRSUVVNelF5eEpRVUZKTEVOQlFVTXNaVUZCWlN4SFFVRkhMR1ZCUVdVc1EwRkJRenRKUVVONlF5eERRVUZETzBOQlEwWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2THlCRVlYUmhJSE4wY25WamRIVnlaWE1nWm05eUlGWXRSRzl0WVdsdUlISmxaMmx2Ym5NZ2IyWWdZVzUwYVdKdlpHbGxjMXh1WEc1bGVIQnZjblFnWlc1MWJTQldaRkpsWjJsdmJsUjVjR1VnZTF4dUlDQlZibXR1YjNkdUlEMGdKM1Z1YTI1dmQyNG5MRnh1SUNCR1VpQTlJQ2RtY21GdFpYZHZjbXNuTEZ4dUlDQkRSRklnUFNBblkyUnlKeXhjYm4xY2JseHVMeW9xSUVSbGMyTnlhV0psY3lCV0xVUlBUVUZKVGlBb1NVY2dZVzVrSUZSU0tTQnlaV2RwYjI0Z0tHOW1JRzExYkhScGNHeGxJR0ZzYVdkdWJXVnVkQ2xjYmlBcUlHaDBkSEJ6T2k4dmQzZDNMbWx0WjNRdWIzSm5MMGxOUjFSVFkybGxiblJwWm1salEyaGhjblF2VG5WdFltVnlhVzVuTDBsTlIxUkpSMVpNYzNWd1pYSm1ZVzFwYkhrdWFIUnRiRnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVm1SU1pXZHBiMjRnZTF4dUlDQjBlWEJsT2lCV1pGSmxaMmx2YmxSNWNHVTdYRzRnSUc1aGJXVTZJSE4wY21sdVp6dGNiaUFnWTJoaGFXNDZJSE4wY21sdVp6dGNiaUFnYjNKa1pYSTZJRzUxYldKbGNqdGNiaUFnY0c5emFYUnBiMjVUZEdGeWRFNWhiV1U2SUhOMGNtbHVaenRjYmlBZ2NHOXphWFJwYjI1RmJtUk9ZVzFsT2lCemRISnBibWM3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJSE4wWVhKMElHRnVaQ0J3YjNOcGRHbHZiaUJoY21VZ2MzUnlhVzVuY3lCaVpXTmhkWE5sSUhSb1pYa2dZMjl5Y21WemNHOXVaQ0IwYnlCd2IzTnBkR2x2YmlCdVlXMWxjeUJoY3lCamIyeDFiVzRnYm1GdFpYTWdhVzRnUVU1QlVrTkpJRzkxZEhCMWRGeHVJQ0FnS2lCQWNHRnlZVzBnZTFaa1VtVm5hVzl1Vkhsd1pYMGdkSGx3WlNBZ1ZIbHdaU0J2WmlCMGFHVWdjbVZuYVc5dVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J1WVcxbElDQk9ZVzFsSUc5bUlIUm9aU0J5WldkcGIyNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUdOb1lXbHVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCdmNtUmxjbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2NHOXphWFJwYjI1VGRHRnlkRTVoYldVZ0lGSmxaMmx2YmlCemRHRnlkQ0J3YjNOcGRHbHZiaUFvYVc1amJIVnphWFpsS1Z4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdjRzl6YVhScGIyNUZibVJPWVcxbElDQlNaV2RwYjI0Z1pXNWtJSEJ2YzJsMGFXOXVJQ2hwYm1Oc2RYTnBkbVVwWEc0Z0lDQXFMMXh1SUNCamIyNXpkSEoxWTNSdmNpaDBlWEJsT2lCV1pGSmxaMmx2YmxSNWNHVXNJRzVoYldVNklITjBjbWx1Wnl3Z1kyaGhhVzQ2SUhOMGNtbHVaeXdnYjNKa1pYSTZJRzUxYldKbGNpeGNiaUFnSUNCd2IzTnBkR2x2YmxOMFlYSjBUbUZ0WlRvZ2MzUnlhVzVuTENCd2IzTnBkR2x2YmtWdVpFNWhiV1U2SUhOMGNtbHVaeWtnZTF4dUlDQWdJSFJvYVhNdWRIbHdaU0E5SUhSNWNHVTdYRzRnSUNBZ2RHaHBjeTV1WVcxbElEMGdibUZ0WlR0Y2JpQWdJQ0IwYUdsekxtTm9ZV2x1SUQwZ1kyaGhhVzQ3WEc0Z0lDQWdkR2hwY3k1dmNtUmxjaUE5SUc5eVpHVnlPMXh1SUNBZ0lIUm9hWE11Y0c5emFYUnBiMjVUZEdGeWRFNWhiV1VnUFNCd2IzTnBkR2x2YmxOMFlYSjBUbUZ0WlR0Y2JpQWdJQ0IwYUdsekxuQnZjMmwwYVc5dVJXNWtUbUZ0WlNBOUlIQnZjMmwwYVc5dVJXNWtUbUZ0WlR0Y2JpQWdmVnh1ZlZ4dUlsMTkiLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgd3UgZnJvbSAnd3UnO1xuaW1wb3J0ICogYXMgcnhqcyBmcm9tICdyeGpzJztcbmltcG9ydCB7IFZlY3RvciB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3R5cGUtZGVjbGFyYXRpb25zJztcbmltcG9ydCB7IHZlY3Rvckxlbmd0aCwgdmVjdG9yRG90UHJvZHVjdCB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3ZlY3Rvci1vcGVyYXRpb25zJztcbmltcG9ydCB7IEFtaW5vYWNpZHMsIEFtaW5vYWNpZHNQYWxldHRlcyB9IGZyb20gJy4uL2FtaW5vYWNpZHMnO1xuaW1wb3J0IHsgTnVjbGVvdGlkZXMsIE51Y2xlb3RpZGVzUGFsZXR0ZXMgfSBmcm9tICcuLi9udWNsZW90aWRlcyc7XG5pbXBvcnQgeyBVbmtub3duU2VxUGFsZXR0ZXMgfSBmcm9tICcuLi91bmtub3duJztcbmltcG9ydCB7IFVuaXRzSGFuZGxlciB9IGZyb20gJy4uL3V0aWxzL3VuaXRzLWhhbmRsZXInO1xudmFyIFBvc2l0aW9uSGVpZ2h0O1xuKGZ1bmN0aW9uIChQb3NpdGlvbkhlaWdodCkge1xuICAgIFBvc2l0aW9uSGVpZ2h0W1wiRW50cm9weVwiXSA9IFwiRW50cm9weVwiO1xuICAgIFBvc2l0aW9uSGVpZ2h0W1wiZnVsbFwiXSA9IFwiMTAwJVwiO1xufSkoUG9zaXRpb25IZWlnaHQgfHwgKFBvc2l0aW9uSGVpZ2h0ID0ge30pKTtcbi8qKkBwYXJhbSB7TW91c2VFdmVudH0gZXZlbnRcbiAqIEBwYXJhbSB7bnVtYmVyfSByIGRldmljZVBpeGVsUmF0aW9uXG4gKiBAcmV0dXJuIHtERy5Qb2ludH0gY2FudmFzIHJlbGF0ZWQgY3Vyc29yIHBvc2l0aW9uXG4gKi9cbkhUTUxDYW52YXNFbGVtZW50LnByb3RvdHlwZS5nZXRDdXJzb3JQb3NpdGlvbiA9IGZ1bmN0aW9uIChldmVudCwgcikge1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHJldHVybiBuZXcgREcuUG9pbnQoKGV2ZW50LmNsaWVudFggLSByZWN0LmxlZnQpICogciwgKGV2ZW50LmNsaWVudFkgLSByZWN0LnRvcCkgKiByKTtcbn07XG5ERy5SZWN0LnByb3RvdHlwZS5jb250YWlucyA9IGZ1bmN0aW9uICh4LCB5KSB7XG4gICAgcmV0dXJuIHRoaXMubGVmdCA8PSB4ICYmIHggPD0gdGhpcy5yaWdodCAmJiB0aGlzLnRvcCA8PSB5ICYmIHkgPD0gdGhpcy5ib3R0b207XG59O1xuZXhwb3J0IGNsYXNzIFBvc2l0aW9uTW9ub21lckluZm8ge1xuICAgIGNvbnN0cnVjdG9yKGNvdW50ID0gMCwgYm91bmRzID0gbmV3IERHLlJlY3QoMCwgMCwgMCwgMCkpIHtcbiAgICAgICAgdGhpcy5jb3VudCA9IGNvdW50O1xuICAgICAgICB0aGlzLmJvdW5kcyA9IGJvdW5kcztcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUG9zaXRpb25JbmZvIHtcbiAgICAvKiogZnJlcSA9IHt9LCByb3dDb3VudCA9IDBcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBOYW1lIG9mIHBvc2l0aW9uICgnMTExQScsICcxMTEuMScsIGV0YylcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3VtRm9ySGVpZ2h0Q2FsYyBTdW0gb2YgYWxsIG1vbm9tZXIgY291bnRzIGZvciBoZWlnaHQgY2FsY3VsYXRpb25cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcm93Q291bnQgQ291bnQgb2YgZWxlbWVudHMgaW4gY29sdW1uXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gZnJlcSBmcmVxdWVuY3kgb2YgbW9ub21lcnMgaW4gcG9zaXRpb25cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihuYW1lLCBmcmVxID0ge30sIHJvd0NvdW50ID0gMCwgc3VtRm9ySGVpZ2h0Q2FsYyA9IDApIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5mcmVxID0gZnJlcTtcbiAgICAgICAgdGhpcy5yb3dDb3VudCA9IHJvd0NvdW50O1xuICAgICAgICB0aGlzLnN1bUZvckhlaWdodENhbGMgPSBzdW1Gb3JIZWlnaHRDYWxjO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBXZWJMb2dvIGV4dGVuZHMgREcuSnNWaWV3ZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnZpZXdlcklkID0gLTE7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgICAgLy8gcHJpdmF0ZSByZWFkb25seSBjb2xvclNjaGVtZTogQ29sb3JTY2hlbWUgPSBDb2xvclNjaGVtZXNbTnVjbGVvdGlkZXNXZWJMb2dvLnJlc2lkdWVzU2V0XTtcbiAgICAgICAgdGhpcy5jcCA9IG51bGw7XG4gICAgICAgIHRoaXMuYXhpc0hlaWdodCA9IDEyO1xuICAgICAgICB0aGlzLnNlcUNvbCA9IG51bGw7XG4gICAgICAgIHRoaXMuc3BsaXR0ZXIgPSBudWxsO1xuICAgICAgICAvLyBwcml2YXRlIG1heExlbmd0aDogbnVtYmVyID0gMTAwO1xuICAgICAgICB0aGlzLnBvc2l0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLnJvd3NNYXNrZWQgPSAwO1xuICAgICAgICB0aGlzLnJvd3NOdWxsID0gMDtcbiAgICAgICAgdGhpcy5wb3NpdGlvbk1hcmdpbiA9IDA7XG4gICAgICAgIHRoaXMucG9zaXRpb25OYW1lcyA9IFtdO1xuICAgICAgICB0aGlzLnN0YXJ0UG9zaXRpb24gPSAtMTtcbiAgICAgICAgdGhpcy5lbmRQb3NpdGlvbiA9IC0xO1xuICAgICAgICB0aGlzLnZpZXdTdWJzID0gW107XG4gICAgICAgIHRoaXMudmlld2VySWQgPSBXZWJMb2dvLnZpZXdlckNvdW50O1xuICAgICAgICBXZWJMb2dvLnZpZXdlckNvdW50ICs9IDE7XG4gICAgICAgIHRoaXMudGV4dEJhc2VsaW5lID0gJ3RvcCc7XG4gICAgICAgIHRoaXMudW5pdHNIYW5kbGVyID0gbnVsbDtcbiAgICAgICAgdGhpcy5fcG9zaXRpb25XaWR0aCA9IHRoaXMucG9zaXRpb25XaWR0aCA9IHRoaXMuZmxvYXQoJ3Bvc2l0aW9uV2lkdGgnLCAxNiAvKixcbiAgICAgICAgICB7ZWRpdG9yOiAnc2xpZGVyJywgbWluOiA0LCBtYXg6IDY0LCBwb3N0Zml4OiAncHgnfSovKTtcbiAgICAgICAgdGhpcy5taW5IZWlnaHQgPSB0aGlzLmZsb2F0KCdtaW5IZWlnaHQnLCA1MCAvKixcbiAgICAgICAgICB7ZWRpdG9yOiAnc2xpZGVyJywgbWluOiAyNSwgbWF4OiAyNTAsIHBvc3RmaXg6ICdweCd9Ki8pO1xuICAgICAgICB0aGlzLm1heEhlaWdodCA9IHRoaXMuZmxvYXQoJ21heEhlaWdodCcsIDEwMCAvKixcbiAgICAgICAgICB7ZWRpdG9yOiAnc2xpZGVyJywgbWluOiAyNSwgbWF4OiA1MDAsIHBvc3RmaXg6ICdweCd9Ki8pO1xuICAgICAgICB0aGlzLmNvbnNpZGVyTnVsbFNlcXVlbmNlcyA9IHRoaXMuYm9vbCgnY29uc2lkZXJOdWxsU2VxdWVuY2VzJywgZmFsc2UpO1xuICAgICAgICB0aGlzLnNlcXVlbmNlQ29sdW1uTmFtZSA9IHRoaXMuc3RyaW5nKCdzZXF1ZW5jZUNvbHVtbk5hbWUnLCBudWxsKTtcbiAgICAgICAgdGhpcy5zdGFydFBvc2l0aW9uTmFtZSA9IHRoaXMuc3RyaW5nKCdzdGFydFBvc2l0aW9uTmFtZScsIG51bGwpO1xuICAgICAgICB0aGlzLmVuZFBvc2l0aW9uTmFtZSA9IHRoaXMuc3RyaW5nKCdlbmRQb3NpdGlvbk5hbWUnLCBudWxsKTtcbiAgICAgICAgdGhpcy5maXhXaWR0aCA9IHRoaXMuYm9vbCgnZml4V2lkdGgnLCBmYWxzZSk7XG4gICAgICAgIHRoaXMudmVydGljYWxBbGlnbm1lbnQgPSB0aGlzLnN0cmluZygndmVydGljYWxBbGlnbm1lbnQnLCAnbWlkZGxlJywgeyBjaG9pY2VzOiBbJ3RvcCcsICdtaWRkbGUnLCAnYm90dG9tJ10gfSk7XG4gICAgICAgIHRoaXMuaG9yaXpvbnRhbEFsaWdubWVudCA9IHRoaXMuc3RyaW5nKCdob3Jpem9udGFsQWxpZ25tZW50JywgJ2NlbnRlcicsIHsgY2hvaWNlczogWydsZWZ0JywgJ2NlbnRlcicsICdyaWdodCddIH0pO1xuICAgICAgICB0aGlzLmZpdEFyZWEgPSB0aGlzLmJvb2woJ2ZpdEFyZWEnLCB0cnVlKTtcbiAgICAgICAgdGhpcy5zaHJpbmtFbXB0eVRhaWwgPSB0aGlzLmJvb2woJ3Nocmlua0VtcHR5VGFpbCcsIHRydWUpO1xuICAgICAgICB0aGlzLnNraXBFbXB0eVBvc2l0aW9ucyA9IHRoaXMuYm9vbCgnc2tpcEVtcHR5UG9zaXRpb25zJywgZmFsc2UpO1xuICAgICAgICB0aGlzLnBvc2l0aW9uTWFyZ2luU3RhdGUgPSB0aGlzLnN0cmluZygncG9zaXRpb25NYXJnaW5TdGF0ZScsICdhdXRvJywgeyBjaG9pY2VzOiBbJ2F1dG8nLCAnZW5hYmxlJywgJ29mZiddIH0pO1xuICAgICAgICBsZXQgZGVmYXVsdFZhbHVlRm9yUG9zaXRpb25NYXJnaW4gPSAwO1xuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbk1hcmdpblN0YXRlID09PSAnYXV0bycpIHtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZUZvclBvc2l0aW9uTWFyZ2luID0gNDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBvc2l0aW9uTWFyZ2luID0gdGhpcy5pbnQoJ3Bvc2l0aW9uTWFyZ2luJywgZGVmYXVsdFZhbHVlRm9yUG9zaXRpb25NYXJnaW4sIHsgbWluOiAwLCBtYXg6IDE2IH0pO1xuICAgICAgICB0aGlzLnBvc2l0aW9uSGVpZ2h0ID0gdGhpcy5zdHJpbmcoJ3Bvc2l0aW9uSGVpZ2h0JywgUG9zaXRpb25IZWlnaHQuZnVsbCwgeyBjaG9pY2VzOiBbUG9zaXRpb25IZWlnaHQuZnVsbCwgUG9zaXRpb25IZWlnaHQuRW50cm9weV0gfSk7XG4gICAgfVxuICAgIC8qKiBGb3Igc3RhcnRQb3NpdGlvbiBlcXVhbHMgdG8gZW5kUG9zaXRpb24gTGVuZ3RoIGlzIDEgKi9cbiAgICBnZXQgTGVuZ3RoKCkge1xuICAgICAgICBpZiAodGhpcy5za2lwRW1wdHlQb3NpdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc2l0aW9ucy5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRQb3NpdGlvbiA8PSB0aGlzLmVuZFBvc2l0aW9uID8gdGhpcy5lbmRQb3NpdGlvbiAtIHRoaXMuc3RhcnRQb3NpdGlvbiArIDEgOiAwO1xuICAgIH1cbiAgICBnZXQgcG9zaXRpb25XaWR0aFdpdGhNYXJnaW4oKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCh0aGlzLnBvc2l0aW9uTWFyZ2luU3RhdGUgPT09ICdhdXRvJykgJiYgKCgoX2EgPSB0aGlzLnVuaXRzSGFuZGxlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldEFscGhhYmV0SXNNdWx0aWNoYXIoKSkgPT09IHRydWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcG9zaXRpb25XaWR0aCArIHRoaXMucG9zaXRpb25NYXJnaW47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb25NYXJnaW5TdGF0ZSA9PT0gJ2VuYWJsZScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbldpZHRoICsgdGhpcy5wb3NpdGlvbk1hcmdpbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcG9zaXRpb25XaWR0aDtcbiAgICB9XG4gICAgaW5pdCgpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignV2ViTG9nbyBzZWNvbmQgaW5pdGlhbGl6YXRpb24hJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmhlbHBVcmwgPSAnL2hlbHAvdmlzdWFsaXplL3ZpZXdlcnMvd2ViLWxvZ28ubWQnO1xuICAgICAgICAgICAgdGhpcy5tc2dIb3N0ID0gdWkuZGl2KCdObyBtZXNzYWdlJyk7XG4gICAgICAgICAgICB0aGlzLm1zZ0hvc3Quc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgICAgIHRoaXMuY2FudmFzID0gdWkuY2FudmFzKCk7XG4gICAgICAgICAgICB0aGlzLmNhbnZhcy5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICAgICAgICAgIHRoaXMuaG9zdCA9IHVpLmRpdihbdGhpcy5tc2dIb3N0LCB0aGlzLmNhbnZhc10pO1xuICAgICAgICAgICAgLy8gdGhpcy5zbGlkZXIgPSB1aS5yYW5nZVNsaWRlcigwLCAyMCwgMiwgNSk7XG4gICAgICAgICAgICAvLyB0aGlzLnNsaWRlci5yb290LnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICAgICAgICAgICAgLy8gdGhpcy5zbGlkZXIucm9vdC5zdHlsZS5oZWlnaHQgPSAnMTJweCc7XG4gICAgICAgICAgICBjb25zdCBnZXRNb25vbWVyID0gKHApID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBqUG9zID0gTWF0aC5mbG9vcihwLnggLyB0aGlzLnBvc2l0aW9uV2lkdGhXaXRoTWFyZ2luKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMucG9zaXRpb25zW2pQb3NdO1xuICAgICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA9PT0gdm9pZCAwKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW2pQb3MsIG51bGwsIG51bGxdO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vbm9tZXIgPSBPYmplY3Qua2V5cyhwb3NpdGlvbi5mcmVxKVxuICAgICAgICAgICAgICAgICAgICAuZmluZCgobSkgPT4gcG9zaXRpb24uZnJlcVttXS5ib3VuZHMuY29udGFpbnMocC54LCBwLnkpKTtcbiAgICAgICAgICAgICAgICBpZiAobW9ub21lciA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW2pQb3MsIG51bGwsIG51bGxdO1xuICAgICAgICAgICAgICAgIHJldHVybiBbalBvcywgbW9ub21lciwgcG9zaXRpb24uZnJlcVttb25vbWVyXV07XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy8gdGhpcy5zdWJzLnB1c2gocnhqcy5mcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5jYW52YXMsICdtb3VzZW92ZXInKS5zdWJzY3JpYmUoKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgIC8vIH0pKTtcbiAgICAgICAgICAgIHRoaXMudmlld1N1YnMucHVzaChyeGpzLmZyb21FdmVudCh0aGlzLmNhbnZhcywgJ21vdXNlbW92ZScpLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jYW52YXMpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBjb25zdCBhcmdzID0gZTtcbiAgICAgICAgICAgICAgICBjb25zdCByID0gd2luZG93LmRldmljZVBpeGVsUmF0aW87XG4gICAgICAgICAgICAgICAgY29uc3QgY3Vyc29yUCA9IHRoaXMuY2FudmFzLmdldEN1cnNvclBvc2l0aW9uKGFyZ3MsIHIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IFtqUG9zLCBtb25vbWVyXSA9IGdldE1vbm9tZXIoY3Vyc29yUCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUZyYW1lICYmIHRoaXMuc2VxQ29sICYmIHRoaXMuc3BsaXR0ZXIgJiYgbW9ub21lcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByb3dDb3VudCA9IHd1LmNvdW50KCkudGFrZSh0aGlzLmRhdGFGcmFtZS5yb3dDb3VudCkuZmlsdGVyKChpUm93KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXEgPSB0aGlzLnNlcUNvbC5nZXQoaVJvdyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXFNID0gc2VxID8gdGhpcy5zcGxpdHRlcihzZXEpW3RoaXMuc3RhcnRQb3NpdGlvbiArIGpQb3NdIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoKHNlcU0gPT09IG1vbm9tZXIpIHx8IChzZXFNID09PSAnJyAmJiBtb25vbWVyID09PSAnLScpKSAmJiB0aGlzLmRhdGFGcmFtZS5maWx0ZXIuZ2V0KGlSb3cpO1xuICAgICAgICAgICAgICAgICAgICB9KS5yZWR1Y2UoKGNvdW50LCBpUm93KSA9PiBjb3VudCArIDEsIDApO1xuICAgICAgICAgICAgICAgICAgICB1aS50b29sdGlwLnNob3codWkuZGl2KFt1aS5kaXYoYCR7bW9ub21lcn1gKSwgdWkuZGl2KGAke3Jvd0NvdW50fSByb3dzYCldKSwgYXJncy54ICsgMTYsIGFyZ3MueSArIDE2KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHVpLnRvb2x0aXAuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIHRoaXMudmlld1N1YnMucHVzaChyeGpzLmZyb21FdmVudCh0aGlzLmNhbnZhcywgJ21vdXNlZG93bicpLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jYW52YXMgfHwgZS5idXR0b24gIT0gMClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFyZ3MgPSBlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHIgPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbztcbiAgICAgICAgICAgICAgICBjb25zdCBbalBvcywgbW9ub21lcl0gPSBnZXRNb25vbWVyKHRoaXMuY2FudmFzLmdldEN1cnNvclBvc2l0aW9uKGFyZ3MsIHIpKTtcbiAgICAgICAgICAgICAgICAvLyBwcmV2ZW50cyBkZXNlbGVjdCBhbGwgcm93cyBpZiB3ZSBtaXNzIG1vbm9tZXIgYm91bmRzXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUZyYW1lICYmIHRoaXMuc2VxQ29sICYmIHRoaXMuc3BsaXR0ZXIgJiYgbW9ub21lcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24uaW5pdCgoaVJvdykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VxID0gdGhpcy5zZXFDb2wuZ2V0KGlSb3cpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VxTSA9IHNlcSA/IHRoaXMuc3BsaXR0ZXIoc2VxKVt0aGlzLnN0YXJ0UG9zaXRpb24gKyBqUG9zXSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKChzZXFNID09PSBtb25vbWVyKSB8fCAoc2VxTSA9PT0gJycgJiYgbW9ub21lciA9PT0gJy0nKSkgJiYgdGhpcy5kYXRhRnJhbWUuZmlsdGVyLmdldChpUm93KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgdGhpcy52aWV3U3Vicy5wdXNoKHVpLm9uU2l6ZUNoYW5nZWQodGhpcy5yb290KS5zdWJzY3JpYmUodGhpcy5yb290T25TaXplQ2hhbmdlZC5iaW5kKHRoaXMpKSk7XG4gICAgICAgICAgICB0aGlzLnJvb3QuYXBwZW5kKHRoaXMuaG9zdCk7XG4gICAgICAgICAgICAvLyB0aGlzLnJvb3QuYXBwZW5kQ2hpbGQodGhpcy5zbGlkZXIucm9vdCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJvb3RPblNpemVDaGFuZ2VkKGFyZ3MpIHtcbiAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgIC8vIGNvbnNvbGUuZGVidWcoYFdlYkxvZ28ub25Sb290U2l6ZUNoYW5nZWQoKSBgICtcbiAgICAgICAgLy8gICBgcm9vdC53aWR0aD0ke3RoaXMucm9vdC5jbGllbnRXaWR0aH0sIHJvb3QuaGVpZ2h0PSR7dGhpcy5yb290LmNsaWVudEhlaWdodH0sIGAgK1xuICAgICAgICAvLyAgIGBjYW52YXMud2lkdGg9JHt0aGlzLmNhbnZhcy53aWR0aH0sIGNhbnZhcy5oZWlnaHQ9JHt0aGlzLmNhbnZhcy5oZWlnaHR9IC5gKTtcbiAgICB9XG4gICAgLyoqIEFzc2lnbnMge0BsaW5rIHNlcUNvbH0gYW5kIHtAbGluayBjcH0gYmFzZWQgb24ge0BsaW5rIHNlcXVlbmNlQ29sdW1uTmFtZX0gYW5kIGNhbGxzIHtAbGluayByZW5kZXJ9KCkuXG4gICAgICovXG4gICAgdXBkYXRlU2VxQ29sKCkge1xuICAgICAgICBpZiAodGhpcy5kYXRhRnJhbWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VxQ29sID0gdGhpcy5zZXF1ZW5jZUNvbHVtbk5hbWUgPyB0aGlzLmRhdGFGcmFtZS5jb2wodGhpcy5zZXF1ZW5jZUNvbHVtbk5hbWUpIDogbnVsbDtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlcUNvbCA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXFDb2wgPSBXZWJMb2dvLnBpY2tVcFNlcUNvbDIodGhpcy5kYXRhRnJhbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VxdWVuY2VDb2x1bW5OYW1lID0gdGhpcy5zZXFDb2wgPyB0aGlzLnNlcUNvbC5uYW1lIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnNlcUNvbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuaXRzID0gdGhpcy5zZXFDb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IHRoaXMuc2VxQ29sLmdldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5zZXBhcmF0b3IpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3BsaXR0ZXIgPSBXZWJMb2dvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXBhcmF0b3IpO1xuICAgICAgICAgICAgICAgIHRoaXMudW5pdHNIYW5kbGVyID0gbmV3IFVuaXRzSGFuZGxlcih0aGlzLnNlcUNvbCk7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNwID0gV2ViTG9nby5waWNrVXBQYWxldHRlKHRoaXMuc2VxQ29sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc3BsaXR0ZXIgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb25OYW1lcyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRQb3NpdGlvbiA9IC0xO1xuICAgICAgICAgICAgICAgIHRoaXMuZW5kUG9zaXRpb24gPSAtMTtcbiAgICAgICAgICAgICAgICB0aGlzLmNwID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgIH1cbiAgICB1cGRhdGVQb3NpdGlvbnMoKSB7XG4gICAgICAgIGlmICghdGhpcy5zZXFDb2wpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGxldCBjYXRlZ29yaWVzO1xuICAgICAgICBpZiAodGhpcy5zaHJpbmtFbXB0eVRhaWwpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGljZXMgPSB0aGlzLmRhdGFGcmFtZS5maWx0ZXIuZ2V0U2VsZWN0ZWRJbmRleGVzKCk7XG4gICAgICAgICAgICBjYXRlZ29yaWVzID0gQXJyYXkuZnJvbShuZXcgU2V0KEFycmF5LmZyb20oQXJyYXkoaW5kaWNlcy5sZW5ndGgpLmtleXMoKSkubWFwKChpKSA9PiB0aGlzLnNlcUNvbC5nZXQoaW5kaWNlc1tpXSkpKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjYXRlZ29yaWVzID0gdGhpcy5zZXFDb2wuY2F0ZWdvcmllcztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtYXhMZW5ndGggPSBjYXRlZ29yaWVzLmxlbmd0aCA+IDAgPyBNYXRoLm1heCguLi5jYXRlZ29yaWVzLm1hcCgocykgPT4gcyAhPT0gbnVsbCA/IHRoaXMuc3BsaXR0ZXIocykubGVuZ3RoIDogMCkpIDogMDtcbiAgICAgICAgLy8gR2V0IHBvc2l0aW9uIG5hbWVzIGZyb20gZGF0YSBjb2x1bW4gdGFnICdwb3NpdGlvbk5hbWVzJ1xuICAgICAgICBjb25zdCBwb3NpdGlvbk5hbWVzVHh0ID0gdGhpcy5zZXFDb2wuZ2V0VGFnKCdwb3NpdGlvbk5hbWVzJyk7XG4gICAgICAgIC8vIEZhbGxiYWNrIGlmICdwb3NpdGlvbk5hbWVzJyB0YWcgaXMgbm90IHByb3ZpZGVkXG4gICAgICAgIHRoaXMucG9zaXRpb25OYW1lcyA9IHBvc2l0aW9uTmFtZXNUeHQgPyBwb3NpdGlvbk5hbWVzVHh0LnNwbGl0KCcsICcpLm1hcCgobikgPT4gbi50cmltKCkpIDpcbiAgICAgICAgICAgIFsuLi5BcnJheShtYXhMZW5ndGgpLmtleXMoKV0ubWFwKChqUG9zKSA9PiBgJHtqUG9zICsgMX1gKTtcbiAgICAgICAgdGhpcy5zdGFydFBvc2l0aW9uID0gKHRoaXMuc3RhcnRQb3NpdGlvbk5hbWUgJiYgdGhpcy5wb3NpdGlvbk5hbWVzICYmXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uTmFtZXMuaW5jbHVkZXModGhpcy5zdGFydFBvc2l0aW9uTmFtZSkpID9cbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25OYW1lcy5pbmRleE9mKHRoaXMuc3RhcnRQb3NpdGlvbk5hbWUpIDogMDtcbiAgICAgICAgdGhpcy5lbmRQb3NpdGlvbiA9ICh0aGlzLmVuZFBvc2l0aW9uTmFtZSAmJiB0aGlzLnBvc2l0aW9uTmFtZXMgJiZcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25OYW1lcy5pbmNsdWRlcyh0aGlzLmVuZFBvc2l0aW9uTmFtZSkpID9cbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25OYW1lcy5pbmRleE9mKHRoaXMuZW5kUG9zaXRpb25OYW1lKSA6IChtYXhMZW5ndGggLSAxKTtcbiAgICB9XG4gICAgb25Qcm9wZXJ0eUNoYW5nZWQocHJvcGVydHkpIHtcbiAgICAgICAgLy8gY29uc29sZS5kZWJ1ZyhgV2ViTG9nby5vblByb3BlcnR5Q2hhbmdlZCggJHtwcm9wZXJ0eS5uYW1lfSA9ICcnIH0pYCk7XG4gICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2VkKHByb3BlcnR5KTtcbiAgICAgICAgc3dpdGNoIChwcm9wZXJ0eS5uYW1lKSB7XG4gICAgICAgICAgICBjYXNlICdjb25zaWRlck51bGxTZXF1ZW5jZXMnOlxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2VxdWVuY2VDb2x1bW5OYW1lJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNlcUNvbCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc3RhcnRQb3NpdGlvbk5hbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2VxQ29sKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdlbmRQb3NpdGlvbk5hbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2VxQ29sKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdwb3NpdGlvbldpZHRoJzpcbiAgICAgICAgICAgICAgICB0aGlzLl9wb3NpdGlvbldpZHRoID0gdGhpcy5wb3NpdGlvbldpZHRoO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbWluSGVpZ2h0JzpcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21heEhlaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdmaXhXaWR0aCc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd2ZXJ0aWNhbEFsaWdubWVudCc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdob3Jpem9udGFsQWxpZ25tZW50JzpcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2ZpdEFyZWEnOlxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2hyaW5rRW1wdHlUYWlsJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9ucygpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2tpcEVtcHR5UG9zaXRpb25zJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9ucygpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncG9zaXRpb25NYXJnaW4nOlxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncG9zaXRpb25NYXJnaW5TdGF0ZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdwb3NpdGlvbkhlaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25UYWJsZUF0dGFjaGVkKCkge1xuICAgICAgICBjb25zdCBfc3VwZXIgPSBPYmplY3QuY3JlYXRlKG51bGwsIHtcbiAgICAgICAgICAgIG9uVGFibGVBdHRhY2hlZDogeyBnZXQ6ICgpID0+IHN1cGVyLm9uVGFibGVBdHRhY2hlZCB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgZGF0YUZyYW1lVHh0ID0gdGhpcy5kYXRhRnJhbWUgPyAnZGF0YScgOiAnbnVsbCc7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBiaW86IFdlYkxvZ288JHt0aGlzLnZpZXdlcklkfT4ub25UYWJsZUF0dGFjaGVkKCBkYXRhRnJhbWUgPSAke2RhdGFGcmFtZVR4dH0gKSBzdGFydGApO1xuICAgICAgICAgICAgX3N1cGVyLm9uVGFibGVBdHRhY2hlZC5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTZXFDb2woKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGFGcmFtZSAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzLnB1c2godGhpcy5kYXRhRnJhbWUuc2VsZWN0aW9uLm9uQ2hhbmdlZC5zdWJzY3JpYmUoKF8pID0+IHRoaXMucmVuZGVyKCkpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnMucHVzaCh0aGlzLmRhdGFGcmFtZS5maWx0ZXIub25DaGFuZ2VkLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9ucygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHlpZWxkIHRoaXMuaW5pdCgpO1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgYmlvOiBXZWJMb2dvPCR7dGhpcy52aWV3ZXJJZH0+Lm9uVGFibGVBdHRhY2hlZCgpIGVuZGApO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZGV0YWNoKCkge1xuICAgICAgICBjb25zdCBfc3VwZXIgPSBPYmplY3QuY3JlYXRlKG51bGwsIHtcbiAgICAgICAgICAgIGRldGFjaDogeyBnZXQ6ICgpID0+IHN1cGVyLmRldGFjaCB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgZGF0YUZyYW1lVHh0ID0gYCR7dGhpcy5kYXRhRnJhbWUgPyAnZGF0YScgOiAnbnVsbCd9YDtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYGJpbzogV2ViTG9nbzwke3RoaXMudmlld2VySWR9Pi5vblRhYmxlQXR0YWNoZWQoIGRhdGFGcmFtZSA9ICR7ZGF0YUZyYW1lVHh0fSApIHN0YXJ0YCk7XG4gICAgICAgICAgICBfc3VwZXIuZGV0YWNoLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB0aGlzLnZpZXdTdWJzLmZvckVhY2goKHN1YikgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICAgICAgdGhpcy5ob3N0LnJlbW92ZSgpO1xuICAgICAgICAgICAgdGhpcy5jYW52YXMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLm1zZ0hvc3QgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLmhvc3QgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBiaW86IFdlYkxvZ288JHt0aGlzLnZpZXdlcklkfT4ub25UYWJsZUF0dGFjaGVkKCkgZW5kYCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfbnVsbFNlcXVlbmNlKGZpbGxlclJlc2lkdWUgPSAnWCcpIHtcbiAgICAgICAgaWYgKHRoaXMuY29uc2lkZXJOdWxsU2VxdWVuY2VzKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBBcnJheSh0aGlzLkxlbmd0aCkuZmlsbChmaWxsZXJSZXNpZHVlKS5qb2luKCcnKTtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZW1vdmVXaGVyZShhcnJheSwgcHJlZGljYXRlKSB7XG4gICAgICAgIGxldCBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gICAgICAgIGxldCB1cGRhdGVJdGVyYXRvciA9IDA7XG4gICAgICAgIGZvciAobGV0IGRlbGV0ZUl0ZXJhdG9yID0gMDsgZGVsZXRlSXRlcmF0b3IgPCBsZW5ndGg7IGRlbGV0ZUl0ZXJhdG9yKyspIHtcbiAgICAgICAgICAgIGlmICghcHJlZGljYXRlKGFycmF5W2RlbGV0ZUl0ZXJhdG9yXSkpIHtcbiAgICAgICAgICAgICAgICBhcnJheVt1cGRhdGVJdGVyYXRvcl0gPSBhcnJheVtkZWxldGVJdGVyYXRvcl07XG4gICAgICAgICAgICAgICAgdXBkYXRlSXRlcmF0b3IrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBhcnJheS5sZW5ndGggPSB1cGRhdGVJdGVyYXRvcjtcbiAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgIH1cbiAgICBfcmVtb3ZlRW1wdHlQb3NpdGlvbnMoKSB7XG4gICAgICAgIGlmICh0aGlzLnNraXBFbXB0eVBvc2l0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVXaGVyZSh0aGlzLnBvc2l0aW9ucywgaXRlbSA9PiB7IHZhciBfYTsgcmV0dXJuICgoX2EgPSBpdGVtID09PSBudWxsIHx8IGl0ZW0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGl0ZW0uZnJlcVsnLSddKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY291bnQpID09PSBpdGVtLnJvd0NvdW50OyB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfY2FsY3VsYXRlKHIpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNhbnZhcyB8fCAhdGhpcy5ob3N0IHx8ICF0aGlzLnNlcUNvbCB8fCAhdGhpcy5kYXRhRnJhbWUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMudW5pdHNIYW5kbGVyID0gbmV3IFVuaXRzSGFuZGxlcih0aGlzLnNlcUNvbCk7XG4gICAgICAgIHRoaXMuY2FsY1NpemUoKTtcbiAgICAgICAgdGhpcy5wb3NpdGlvbnMgPSBuZXcgQXJyYXkodGhpcy5zdGFydFBvc2l0aW9uIDw9IHRoaXMuZW5kUG9zaXRpb24gPyB0aGlzLmVuZFBvc2l0aW9uIC0gdGhpcy5zdGFydFBvc2l0aW9uICsgMSA6IDApO1xuICAgICAgICBmb3IgKGxldCBqUG9zID0gMDsgalBvcyA8IHRoaXMuTGVuZ3RoOyBqUG9zKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHBvc05hbWUgPSB0aGlzLnBvc2l0aW9uTmFtZXNbdGhpcy5zdGFydFBvc2l0aW9uICsgalBvc107XG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uc1tqUG9zXSA9IG5ldyBQb3NpdGlvbkluZm8ocG9zTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gMjAyMi0wNS0wNSBhc2thbGtpbiBpbnN0cnVjdGVkIHRvIHNob3cgV2ViTG9nbyBiYXNlZCBvbiBmaWx0ZXIgKG5vdCBzZWxlY3Rpb24pXG4gICAgICAgIGNvbnN0IGluZGljZXMgPSB0aGlzLmRhdGFGcmFtZS5maWx0ZXIuZ2V0U2VsZWN0ZWRJbmRleGVzKCk7XG4gICAgICAgIC8vIGNvbnN0IGluZGljZXMgPSB0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24udHJ1ZUNvdW50ID4gMCA/IHRoaXMuZGF0YUZyYW1lLnNlbGVjdGlvbi5nZXRTZWxlY3RlZEluZGV4ZXMoKSA6XG4gICAgICAgIC8vICAgdGhpcy5kYXRhRnJhbWUuZmlsdGVyLmdldFNlbGVjdGVkSW5kZXhlcygpO1xuICAgICAgICB0aGlzLnJvd3NNYXNrZWQgPSBpbmRpY2VzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5yb3dzTnVsbCA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgaSBvZiBpbmRpY2VzKSB7XG4gICAgICAgICAgICBsZXQgcyA9ICh0aGlzLnNlcUNvbC5nZXQoaSkpO1xuICAgICAgICAgICAgaWYgKCFzKSB7XG4gICAgICAgICAgICAgICAgcyA9IHRoaXMuX251bGxTZXF1ZW5jZSgpO1xuICAgICAgICAgICAgICAgICsrdGhpcy5yb3dzTnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNlcU0gPSB0aGlzLnNwbGl0dGVyKHMpO1xuICAgICAgICAgICAgZm9yIChsZXQgalBvcyA9IDA7IGpQb3MgPCB0aGlzLkxlbmd0aDsgalBvcysrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcG1JbmZvID0gdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcTtcbiAgICAgICAgICAgICAgICBjb25zdCBtID0gc2VxTVt0aGlzLnN0YXJ0UG9zaXRpb24gKyBqUG9zXSB8fCAnLSc7XG4gICAgICAgICAgICAgICAgaWYgKCEobSBpbiBwbUluZm8pKVxuICAgICAgICAgICAgICAgICAgICBwbUluZm9bbV0gPSBuZXcgUG9zaXRpb25Nb25vbWVySW5mbygpO1xuICAgICAgICAgICAgICAgIHBtSW5mb1ttXS5jb3VudCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vI3JlZ2lvbiBQb2xpc2ggZnJlcSBjb3VudHNcbiAgICAgICAgZm9yIChsZXQgalBvcyA9IDA7IGpQb3MgPCB0aGlzLkxlbmd0aDsgalBvcysrKSB7XG4gICAgICAgICAgICAvLyBkZWxldGUgdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcVsnLSddO1xuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbnNbalBvc10ucm93Q291bnQgPSAwO1xuICAgICAgICAgICAgZm9yIChjb25zdCBtIGluIHRoaXMucG9zaXRpb25zW2pQb3NdLmZyZXEpXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbnNbalBvc10ucm93Q291bnQgKz0gdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcVttXS5jb3VudDtcbiAgICAgICAgICAgIGlmICh0aGlzLnBvc2l0aW9uSGVpZ2h0ID09IFBvc2l0aW9uSGVpZ2h0LkVudHJvcHkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uc1tqUG9zXS5zdW1Gb3JIZWlnaHRDYWxjID0gMDtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG0gaW4gdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwbiA9IHRoaXMucG9zaXRpb25zW2pQb3NdLmZyZXFbbV0uY291bnQgLyB0aGlzLnBvc2l0aW9uc1tqUG9zXS5yb3dDb3VudDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbnNbalBvc10uc3VtRm9ySGVpZ2h0Q2FsYyArPSAtcG4gKiBNYXRoLmxvZzIocG4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyNlbmRyZWdpb25cbiAgICAgICAgdGhpcy5fcmVtb3ZlRW1wdHlQb3NpdGlvbnMoKTtcbiAgICAgICAgY29uc3QgYWJzb2x1dGVNYXhIZWlnaHQgPSB0aGlzLmNhbnZhcy5oZWlnaHQgLSB0aGlzLmF4aXNIZWlnaHQgKiByO1xuICAgICAgICAvLyBjb25zb2xlLmRlYnVnKGBXZWJMb2dvPCR7dGhpcy52aWV3ZXJJZH0+Ll9jYWxjdWxhdGUoKSBtYXhIZWlnaHQ9JHttYXhIZWlnaHR9LmApO1xuICAgICAgICAvLyNyZWdpb24gQ2FsY3VsYXRlIHNjcmVlblxuICAgICAgICBmb3IgKGxldCBqUG9zID0gMDsgalBvcyA8IHRoaXMuTGVuZ3RoOyBqUG9zKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGZyZXEgPSB0aGlzLnBvc2l0aW9uc1tqUG9zXS5mcmVxO1xuICAgICAgICAgICAgY29uc3Qgcm93Q291bnQgPSB0aGlzLnBvc2l0aW9uc1tqUG9zXS5yb3dDb3VudDtcbiAgICAgICAgICAgIGNvbnN0IGFscGhhYmV0U2l6ZSA9IHRoaXMuZ2V0QWxwaGFiZXRTaXplKCk7XG4gICAgICAgICAgICBpZiAoKHRoaXMucG9zaXRpb25IZWlnaHQgPT0gUG9zaXRpb25IZWlnaHQuRW50cm9weSkgJiYgKGFscGhhYmV0U2l6ZSA9PSBudWxsKSkge1xuICAgICAgICAgICAgICAgIGdyb2suc2hlbGwuZXJyb3IoJ1dlYkxvZ286IGFscGhhYmV0IGlzIHVuZGVmaW5lZC4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG1heEhlaWdodCA9ICh0aGlzLnBvc2l0aW9uSGVpZ2h0ID09IFBvc2l0aW9uSGVpZ2h0LkVudHJvcHkpID8gKGFic29sdXRlTWF4SGVpZ2h0ICogKE1hdGgubG9nMihhbHBoYWJldFNpemUpIC0gKHRoaXMucG9zaXRpb25zW2pQb3NdLnN1bUZvckhlaWdodENhbGMpKSAvIE1hdGgubG9nMihhbHBoYWJldFNpemUpKSA6IGFic29sdXRlTWF4SGVpZ2h0O1xuICAgICAgICAgICAgbGV0IHkgPSB0aGlzLmF4aXNIZWlnaHQgKiByICsgKGFic29sdXRlTWF4SGVpZ2h0IC0gbWF4SGVpZ2h0IC0gMSk7XG4gICAgICAgICAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXMoZnJlcSkuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhWzBdICE9PSAnLScgJiYgYlswXSAhPT0gJy0nKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYlsxXS5jb3VudCAtIGFbMV0uY291bnQ7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYVswXSA9PT0gJy0nICYmIGJbMF0gPT09ICctJylcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYVswXSA9PT0gJy0nKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgZWxzZSAvKiAoYlswXSA9PT0gJy0nKSAqL1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKzE7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBtSW5mbyA9IGVudHJ5WzFdO1xuICAgICAgICAgICAgICAgIC8vIGNvbnN0IG06IHN0cmluZyA9IGVudHJ5WzBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGggPSBtYXhIZWlnaHQgKiBwbUluZm8uY291bnQgLyByb3dDb3VudDtcbiAgICAgICAgICAgICAgICBwbUluZm8uYm91bmRzID0gbmV3IERHLlJlY3QoalBvcyAqIHRoaXMucG9zaXRpb25XaWR0aFdpdGhNYXJnaW4sIHksIHRoaXMuX3Bvc2l0aW9uV2lkdGgsIGgpO1xuICAgICAgICAgICAgICAgIHkgKz0gaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyNlbmRyZWdpb25cbiAgICB9XG4gICAgLy8gcmVmbGVjdCBjaGFuZ2VzIG1hZGUgdG8gZmlsdGVyL3NlbGVjdGlvblxuICAgIHJlbmRlcihyZWNhbGMgPSB0cnVlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKHRoaXMubXNnSG9zdCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VxQ29sICYmICF0aGlzLmNwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tc2dIb3N0LmlubmVyVGV4dCA9IGBVbmtub3duIHBhbGV0dGUgKGNvbHVtbiBzZW1UeXBlOiAnJHt0aGlzLnNlcUNvbC5zZW1UeXBlfScpLmA7XG4gICAgICAgICAgICAgICAgdGhpcy5tc2dIb3N0LnN0eWxlLmRpc3BsYXkgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubXNnSG9zdC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5jYW52YXMgfHwgIXRoaXMuc2VxQ29sIHx8ICF0aGlzLmRhdGFGcmFtZSB8fCAhdGhpcy5jcClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgZyA9IHRoaXMuY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgIGlmICghZylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgciA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvO1xuICAgICAgICBpZiAocmVjYWxjKVxuICAgICAgICAgICAgdGhpcy5fY2FsY3VsYXRlKHIpO1xuICAgICAgICBnLnJlc2V0VHJhbnNmb3JtKCk7XG4gICAgICAgIGcuZmlsbFN0eWxlID0gJ3doaXRlJztcbiAgICAgICAgZy5maWxsUmVjdCgwLCAwLCB0aGlzLmNhbnZhcy53aWR0aCwgdGhpcy5jYW52YXMuaGVpZ2h0KTtcbiAgICAgICAgZy50ZXh0QmFzZWxpbmUgPSB0aGlzLnRleHRCYXNlbGluZTtcbiAgICAgICAgLy8gUHJldmVudHMgZGl2aXNpb24gYnkgemVybyBvbiBMZW5ndGggPSAwXG4gICAgICAgIGlmICh0aGlzLnN0YXJ0UG9zaXRpb24gPT09IC0xIHx8IHRoaXMuZW5kUG9zaXRpb24gPT09IC0xKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAvLyNyZWdpb24gUGxvdCBwb3NpdGlvbk5hbWVzXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uRm9udFNpemUgPSAxMCAqIHI7XG4gICAgICAgIGcucmVzZXRUcmFuc2Zvcm0oKTtcbiAgICAgICAgZy5maWxsU3R5bGUgPSAnYmxhY2snO1xuICAgICAgICBnLnRleHRBbGlnbiA9ICdjZW50ZXInO1xuICAgICAgICBnLmZvbnQgPSBgJHtwb3NpdGlvbkZvbnRTaXplLnRvRml4ZWQoMSl9cHggUm9ib3RvLCBSb2JvdG8gTG9jYWwsIHNhbnMtc2VyaWZgO1xuICAgICAgICBjb25zdCBwb3NOYW1lTWF4V2lkdGggPSBNYXRoLm1heCguLi50aGlzLnBvc2l0aW9ucy5tYXAoKHBvcykgPT4gZy5tZWFzdXJlVGV4dChwb3MubmFtZSkud2lkdGgpKTtcbiAgICAgICAgY29uc3QgaFNjYWxlID0gcG9zTmFtZU1heFdpZHRoIDwgKHRoaXMuX3Bvc2l0aW9uV2lkdGggLSAyKSA/IDEgOiAodGhpcy5fcG9zaXRpb25XaWR0aCAtIDIpIC8gcG9zTmFtZU1heFdpZHRoO1xuICAgICAgICBmb3IgKGxldCBqUG9zID0gMDsgalBvcyA8IHRoaXMuTGVuZ3RoOyBqUG9zKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHBvcyA9IHRoaXMucG9zaXRpb25zW2pQb3NdO1xuICAgICAgICAgICAgZy5yZXNldFRyYW5zZm9ybSgpO1xuICAgICAgICAgICAgZy5zZXRUcmFuc2Zvcm0oaFNjYWxlLCAwLCAwLCAxLCBqUG9zICogdGhpcy5wb3NpdGlvbldpZHRoV2l0aE1hcmdpbiArIHRoaXMuX3Bvc2l0aW9uV2lkdGggLyAyLCAwKTtcbiAgICAgICAgICAgIGcuZmlsbFRleHQocG9zLm5hbWUsIDAsIDApO1xuICAgICAgICB9XG4gICAgICAgIC8vI2VuZHJlZ2lvbiBQbG90IHBvc2l0aW9uTmFtZXNcbiAgICAgICAgZm9yIChsZXQgalBvcyA9IDA7IGpQb3MgPCB0aGlzLkxlbmd0aDsgalBvcysrKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFttb25vbWVyLCBwbUluZm9dIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMucG9zaXRpb25zW2pQb3NdLmZyZXEpKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1vbm9tZXIgIT09ICctJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb25vbWVyVHh0ID0gV2ViTG9nby5tb25vbWVyVG9UZXh0KG1vbm9tZXIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiID0gcG1JbmZvLmJvdW5kcztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9udFN0eWxlID0gJzE2cHggUm9ib3RvLCBSb2JvdG8gTG9jYWwsIHNhbnMtc2VyaWYnO1xuICAgICAgICAgICAgICAgICAgICAvLyBIYWNrcyB0byBzY2FsZSB1cHBlcmNhc2UgY2hhcmFjdGVycyB0byB0YXJnZXQgcmVjdGFuZ2xlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwcGVyY2FzZUxldHRlckFzY2VudCA9IDAuMjU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwcGVyY2FzZUxldHRlckhlaWdodCA9IDEyLjI7XG4gICAgICAgICAgICAgICAgICAgIGcucmVzZXRUcmFuc2Zvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgZy5zdHJva2VTdHlsZSA9ICdsaWdodGdyYXknO1xuICAgICAgICAgICAgICAgICAgICBnLmxpbmVXaWR0aCA9IDE7XG4gICAgICAgICAgICAgICAgICAgIGcucmVjdChiLmxlZnQsIGIudG9wLCBiLndpZHRoLCBiLmhlaWdodCk7XG4gICAgICAgICAgICAgICAgICAgIGcuZmlsbFN0eWxlID0gKF9hID0gdGhpcy5jcC5nZXQobW9ub21lcikpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHRoaXMuY3AuZ2V0KCdvdGhlcicpO1xuICAgICAgICAgICAgICAgICAgICBnLnRleHRBbGlnbiA9ICdsZWZ0JztcbiAgICAgICAgICAgICAgICAgICAgZy5mb250ID0gZm9udFN0eWxlO1xuICAgICAgICAgICAgICAgICAgICAvL2cuZmlsbFJlY3QoYi5sZWZ0LCBiLnRvcCwgYi53aWR0aCwgYi5oZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtVG0gPSBnLm1lYXN1cmVUZXh0KG1vbm9tZXJUeHQpO1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiAobU0uYWN0dWFsQm91bmRpbmdCb3hBc2NlbnQgIT0gMClcbiAgICAgICAgICAgICAgICAgICAgLy8gICBjb25zb2xlLmRlYnVnKGBtOiAke219LCBtTS5hY3R1YWxCb3VuZGluZ0JveEFzY2VudDogJHttTS5hY3R1YWxCb3VuZGluZ0JveEFzY2VudH1gKTtcbiAgICAgICAgICAgICAgICAgICAgZy5zZXRUcmFuc2Zvcm0oYi53aWR0aCAvIG1UbS53aWR0aCwgMCwgMCwgYi5oZWlnaHQgLyB1cHBlcmNhc2VMZXR0ZXJIZWlnaHQsIGIubGVmdCwgYi50b3ApO1xuICAgICAgICAgICAgICAgICAgICBnLmZpbGxUZXh0KG1vbm9tZXJUeHQsIDAsIC11cHBlcmNhc2VMZXR0ZXJBc2NlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBjYWxjU2l6ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNhbnZhcyB8fCAhdGhpcy5ob3N0KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCByID0gd2luZG93LmRldmljZVBpeGVsUmF0aW87XG4gICAgICAgIGxldCB3aWR0aCA9IHRoaXMuTGVuZ3RoICogdGhpcy5wb3NpdGlvbldpZHRoV2l0aE1hcmdpbiAvIHI7XG4gICAgICAgIGxldCBoZWlnaHQgPSBNYXRoLm1pbih0aGlzLm1heEhlaWdodCwgTWF0aC5tYXgodGhpcy5taW5IZWlnaHQsIHRoaXMucm9vdC5jbGllbnRIZWlnaHQpKTtcbiAgICAgICAgaWYgKHRoaXMuZml0QXJlYSkge1xuICAgICAgICAgICAgY29uc3QgeFNjYWxlID0gdGhpcy5yb290LmNsaWVudEhlaWdodCAvIGhlaWdodDtcbiAgICAgICAgICAgIGNvbnN0IHlTY2FsZSA9IHRoaXMucm9vdC5jbGllbnRXaWR0aCAvIHdpZHRoO1xuICAgICAgICAgICAgY29uc3Qgc2NhbGUgPSBNYXRoLm1heCgxLCBNYXRoLm1pbih4U2NhbGUsIHlTY2FsZSkpO1xuICAgICAgICAgICAgd2lkdGggPSB3aWR0aCAqIHNjYWxlO1xuICAgICAgICAgICAgaGVpZ2h0ID0gaGVpZ2h0ICogc2NhbGU7XG4gICAgICAgICAgICB0aGlzLl9wb3NpdGlvbldpZHRoID0gdGhpcy5wb3NpdGlvbldpZHRoICogc2NhbGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jYW52YXMud2lkdGggPSB3aWR0aCAqIHI7XG4gICAgICAgIHRoaXMuY2FudmFzLnN0eWxlLndpZHRoID0gYCR7d2lkdGh9cHhgO1xuICAgICAgICAvLyBjb25zdCBjYW52YXNIZWlnaHQ6IG51bWJlciA9IHdpZHRoID4gdGhpcy5yb290LmNsaWVudFdpZHRoID8gaGVpZ2h0IC0gOCA6IGhlaWdodDtcbiAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdoZWlnaHQnLCBgJHtoZWlnaHR9cHhgKTtcbiAgICAgICAgY29uc3QgY2FudmFzSGVpZ2h0ID0gdGhpcy5ob3N0LmNsaWVudEhlaWdodDtcbiAgICAgICAgdGhpcy5jYW52YXMuaGVpZ2h0ID0gY2FudmFzSGVpZ2h0ICogcjtcbiAgICAgICAgdGhpcy5jYW52YXMuc3R5bGUuc2V0UHJvcGVydHkoJ2hlaWdodCcsIGAke2NhbnZhc0hlaWdodH1weGApO1xuICAgICAgICAvLyBBZGp1c3QgaG9zdCBhbmQgcm9vdCB3aWR0aFxuICAgICAgICBpZiAodGhpcy5maXhXaWR0aCkge1xuICAgICAgICAgICAgLy8gZnVsbCB3aWR0aCBmb3IgY2FudmFzIGhvc3QgYW5kIHJvb3RcbiAgICAgICAgICAgIHRoaXMucm9vdC5zdHlsZS53aWR0aCA9IHRoaXMuaG9zdC5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YDtcbiAgICAgICAgICAgIHRoaXMucm9vdC5zdHlsZS5oZWlnaHQgPSBgJHtoZWlnaHR9cHhgO1xuICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdvdmVyZmxvdycsICdoaWRkZW4nLCAnaW1wb3J0YW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBhbGxvdyBzY3JvbGwgY2FudmFzIGluIHJvb3RcbiAgICAgICAgICAgIHRoaXMucm9vdC5zdHlsZS53aWR0aCA9IHRoaXMuaG9zdC5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5vdmVyZmxvd1ggPSAnYXV0byFpbXBvcnRhbnQnO1xuICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdvdmVyZmxvdycsIG51bGwpO1xuICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCd0ZXh0LWFsaWduJywgdGhpcy5ob3Jpem9udGFsQWxpZ25tZW50KTtcbiAgICAgICAgICAgIC8vIHZlcnRpY2FsIGFsaWdubWVudFxuICAgICAgICAgICAgbGV0IGhvc3RUb3BNYXJnaW4gPSAwO1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnZlcnRpY2FsQWxpZ25tZW50KSB7XG4gICAgICAgICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICAgICAgICAgICAgaG9zdFRvcE1hcmdpbiA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ21pZGRsZSc6XG4gICAgICAgICAgICAgICAgICAgIGhvc3RUb3BNYXJnaW4gPSBNYXRoLm1heCgwLCAodGhpcy5yb290LmNsaWVudEhlaWdodCAtIGhlaWdodCkgLyAyKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICAgICAgICAgICAgaG9zdFRvcE1hcmdpbiA9IE1hdGgubWF4KDAsIHRoaXMucm9vdC5jbGllbnRIZWlnaHQgLSBoZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgnbWFyZ2luLXRvcCcsIGAke2hvc3RUb3BNYXJnaW59cHhgLCAnaW1wb3J0YW50Jyk7XG4gICAgICAgICAgICBpZiAodGhpcy5yb290LmNsaWVudEhlaWdodCA8IGhlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgnaGVpZ2h0JywgYCR7dGhpcy5yb290LmNsaWVudEhlaWdodH1weGApO1xuICAgICAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgnb3ZlcmZsb3cteScsIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdvdmVyZmxvdy15JywgJ2hpZGRlbicsICdpbXBvcnRhbnQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zb2xlLmRlYnVnKFxuICAgICAgICAvLyAgIGB0aGlzLnJvb3Quc3R5bGUuaGVpZ2h0ID0gJHt0aGlzLnJvb3Quc3R5bGUuaGVpZ2h0fVxcbmAgK1xuICAgICAgICAvLyAgIGB0aGlzLnJvb3QuY2xpZW50SGVpZ2h0ID0gJHt0aGlzLnJvb3QuY2xpZW50SGVpZ2h0fVxcbmAgK1xuICAgICAgICAvLyAgIGB0aGlzLmhvc3Quc3R5bGUuaGVpZ2h0ID0gJHt0aGlzLmhvc3Quc3R5bGUuaGVpZ2h0fVxcbmAgK1xuICAgICAgICAvLyAgIGB0aGlzLmhvc3QuY2xpZW50SGVpZ2h0ID0gJHt0aGlzLmhvc3QuY2xpZW50SGVpZ2h0fVxcbmAgK1xuICAgICAgICAvLyAgICdcXG4nICtcbiAgICAgICAgLy8gICBgdGhpcy5jYW52YXMuaGVpZ2h0ICAgICAgID0gJHt0aGlzLmNhbnZhcy5oZWlnaHR9XFxuYCArXG4gICAgICAgIC8vICAgYHRoaXMuY2FudmFzLnN0eWxlLmhlaWdodCA9ICR7dGhpcy5jYW52YXMuc3R5bGUuaGVpZ2h0fWApO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge0RHLkNvbHVtbn0gc2VxQ29sIENvbHVtbiB0byBsb29rIGZvciBhIHBhbGV0dGVcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gIG1pbkxlbmd0aCBtaW5pbXVtIGxlbmd0aCBvZiBzZXF1ZW5jZSB0byBkZXRlY3QgcGFsZXR0ZSAoZW1wdHkgc3RyaW5ncyBhcmUgYWxsb3dlZClcbiAgICAgKiBAcmV0dXJuIHtTZXFQYWxldHRlfSBQYWxldHRlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGFscGhhYmV0IG9mIHRoZSBzZXF1ZW5jZXMgaW4gdGhlIGNvbHVtblxuICAgICAqL1xuICAgIHN0YXRpYyBwaWNrVXBQYWxldHRlKHNlcUNvbCwgbWluTGVuZ3RoID0gNSkge1xuICAgICAgICBsZXQgcmVzID0gbnVsbDtcbiAgICAgICAgc3dpdGNoIChzZXFDb2wuc2VtVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBBbWlub2FjaWRzLlNlbVR5cGVNdWx0aXBsZUFsaWdubWVudDpcbiAgICAgICAgICAgICAgICByZXMgPSBBbWlub2FjaWRzUGFsZXR0ZXMuR3Jva0dyb3VwcztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgTnVjbGVvdGlkZXMuU2VtVHlwZU11bHRpcGxlQWxpZ25tZW50OlxuICAgICAgICAgICAgICAgIHJlcyA9IE51Y2xlb3RpZGVzUGFsZXR0ZXMuQ2hyb21hdG9ncmFtO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0YXRzID0gV2ViTG9nby5nZXRTdGF0cyhzZXFDb2wsIG1pbkxlbmd0aCwgV2ViTG9nby5zcGxpdHRlckFzRmFzdGEpO1xuICAgICAgICBjb25zdCBhbHBoYWJldENhbmRpZGF0ZXMgPSBbXG4gICAgICAgICAgICBbbmV3IFNldChPYmplY3Qua2V5cyhOdWNsZW90aWRlcy5OYW1lcykpLCBOdWNsZW90aWRlc1BhbGV0dGVzLkNocm9tYXRvZ3JhbV0sXG4gICAgICAgICAgICBbbmV3IFNldChPYmplY3Qua2V5cyhBbWlub2FjaWRzLk5hbWVzKSksIEFtaW5vYWNpZHNQYWxldHRlcy5Hcm9rR3JvdXBzXSxcbiAgICAgICAgXTtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIGxpa2VsaWhvb2RzIGZvciBhbHBoYWJldF9jYW5kaWRhdGVzXG4gICAgICAgIGNvbnN0IGFscGhhYmV0Q2FuZGlkYXRlc1NpbSA9IGFscGhhYmV0Q2FuZGlkYXRlc1xuICAgICAgICAgICAgLm1hcCgoYykgPT4gV2ViTG9nby5nZXRBbHBoYWJldFNpbWlsYXJpdHkoc3RhdHMuZnJlcSwgY1swXSkpO1xuICAgICAgICBjb25zdCBtYXhDb3MgPSBNYXRoLm1heCguLi5hbHBoYWJldENhbmRpZGF0ZXNTaW0pO1xuICAgICAgICBpZiAobWF4Q29zID4gMC41NSlcbiAgICAgICAgICAgIHJlcyA9IGFscGhhYmV0Q2FuZGlkYXRlc1thbHBoYWJldENhbmRpZGF0ZXNTaW0uaW5kZXhPZihtYXhDb3MpXVsxXTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcmVzID0gVW5rbm93blNlcVBhbGV0dGVzLkNvbG9yO1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICBnZXRBbHBoYWJldFNpemUoKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIHJldHVybiAoX2IgPSAoX2EgPSB0aGlzLnVuaXRzSGFuZGxlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldEFscGhhYmV0U2l6ZSgpKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwO1xuICAgIH1cbiAgICAvKiogU3RhdHMgb2Ygc2VxdWVuY2VzIHdpdGggc3BlY2lmaWVkIHNwbGl0dGVyIGZ1bmMsIHJldHVybnMgeyBmcmVxLCBzYW1lTGVuZ3RoIH0uXG4gICAgICogQHBhcmFtIHtERy5Db2x1bW59IHNlcUNvbFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBtaW5MZW5ndGhcbiAgICAgKiBAcGFyYW0ge1NwbGl0dGVyRnVuY30gc3BsaXR0ZXJcbiAgICAgKiBAcmV0dXJuIHsgU2VxQ29sU3RhdHMgfSwgc2FtZUxlbmd0aDogYm9vbGVhbiB9IHN0YXRzIG9mIGNvbHVtbiBzZXF1ZW5jZXNcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0U3RhdHMoc2VxQ29sLCBtaW5MZW5ndGgsIHNwbGl0dGVyKSB7XG4gICAgICAgIGNvbnN0IGZyZXEgPSB7fTtcbiAgICAgICAgbGV0IHNhbWVMZW5ndGggPSB0cnVlO1xuICAgICAgICBsZXQgZmlyc3RMZW5ndGggPSBudWxsO1xuICAgICAgICBmb3IgKGNvbnN0IHNlcSBvZiBzZXFDb2wuY2F0ZWdvcmllcykge1xuICAgICAgICAgICAgY29uc3QgbVNlcSA9IHNwbGl0dGVyKHNlcSk7XG4gICAgICAgICAgICBpZiAoZmlyc3RMZW5ndGggPT0gbnVsbClcbiAgICAgICAgICAgICAgICBmaXJzdExlbmd0aCA9IG1TZXEubGVuZ3RoO1xuICAgICAgICAgICAgZWxzZSBpZiAobVNlcS5sZW5ndGggIT09IGZpcnN0TGVuZ3RoKVxuICAgICAgICAgICAgICAgIHNhbWVMZW5ndGggPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChtU2VxLmxlbmd0aCA+IG1pbkxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbSBvZiBtU2VxKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghKG0gaW4gZnJlcSkpXG4gICAgICAgICAgICAgICAgICAgICAgICBmcmVxW21dID0gMDtcbiAgICAgICAgICAgICAgICAgICAgZnJlcVttXSArPSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBmcmVxOiBmcmVxLCBzYW1lTGVuZ3RoOiBzYW1lTGVuZ3RoIH07XG4gICAgfVxuICAgIHN0YXRpYyBnZXRBbHBoYWJldFNpbWlsYXJpdHkoZnJlcSwgYWxwaGFiZXQsIGdhcFN5bWJvbCA9ICctJykge1xuICAgICAgICBjb25zdCBrZXlzID0gbmV3IFNldChbLi4ubmV3IFNldChPYmplY3Qua2V5cyhmcmVxKSksIC4uLmFscGhhYmV0XSk7XG4gICAgICAgIGtleXMuZGVsZXRlKGdhcFN5bWJvbCk7XG4gICAgICAgIGNvbnN0IGZyZXFBID0gW107XG4gICAgICAgIGNvbnN0IGFscGhhYmV0QSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IG0gb2Yga2V5cykge1xuICAgICAgICAgICAgZnJlcUEucHVzaChtIGluIGZyZXEgPyBmcmVxW21dIDogMCk7XG4gICAgICAgICAgICBhbHBoYWJldEEucHVzaChhbHBoYWJldC5oYXMobSkgPyAxIDogMCk7XG4gICAgICAgIH1cbiAgICAgICAgLyogVGhlcmUgd2VyZSBhIGZldyBpZGVhczogY2hpLXNxdWFyZWQsIHBlYXJzb24gY29ycmVsYXRpb24gKHZhcmlhbmNlPyksIHNjYWxhciBwcm9kdWN0ICovXG4gICAgICAgIGNvbnN0IGZyZXFWID0gbmV3IFZlY3RvcihmcmVxQSk7XG4gICAgICAgIGNvbnN0IGFscGhhYmV0ViA9IG5ldyBWZWN0b3IoYWxwaGFiZXRBKTtcbiAgICAgICAgcmV0dXJuIHZlY3RvckRvdFByb2R1Y3QoZnJlcVYsIGFscGhhYmV0VikgLyAodmVjdG9yTGVuZ3RoKGZyZXFWKSAqIHZlY3Rvckxlbmd0aChhbHBoYWJldFYpKTtcbiAgICB9XG4gICAgLy8gLyoqIEZpcnN0IHRyeSB0byBmaW5kIGNvbHVtbiB3aXRoIHNlbVR5cGUgJ2FsaWduZWRTZXF1ZW5jZScuXG4gICAgLy8gICogTmV4dCBsb29rIGZvciBjb2x1bW4gd2l0aCBkYXRhIGFscGhhYmV0IGNvcnJlc3BvbmRpbmcgdG8gYW55IG9mIHRoZSBrbm93biBwYWxldHRlcy5cbiAgICAvLyAgKiBAcGFyYW0ge0RHLkRhdGFGcmFtZX0gZGF0YUZyYW1lXG4gICAgLy8gICogQHJldHVybiB7REcuQ29sdW1ufSBUaGUgY29sdW1uIHdlIHdlcmUgbG9va2luZyBmb3Igb3IgbnVsbFxuICAgIC8vICAqL1xuICAgIC8vIHByaXZhdGUgcGlja1VwU2VxQ29sKGRhdGFGcmFtZTogREcuRGF0YUZyYW1lKTogREcuQ29sdW1uIHwgbnVsbCB7XG4gICAgLy8gICBsZXQgcmVzOiBERy5Db2x1bW4gfCBudWxsID0gZGF0YUZyYW1lLmNvbHVtbnMuYnlTZW1UeXBlKCdhbGlnbmVkU2VxdWVuY2UnKTtcbiAgICAvLyAgIGlmIChyZXMgPT0gbnVsbCkge1xuICAgIC8vICAgICBmb3IgKGNvbnN0IGNvbCBvZiBkYXRhRnJhbWUuY29sdW1ucykge1xuICAgIC8vICAgICAgIGNvbnN0IGNwID0gV2ViTG9nby5waWNrVXBQYWxldHRlKGNvbCBhcyBERy5Db2x1bW4sIDUpO1xuICAgIC8vICAgICAgIGlmIChjcCAhPT0gbnVsbCAmJiAhKGNwIGluc3RhbmNlb2YgVW5rbm93blNlcVBhbGV0dGUpKSB7XG4gICAgLy8gICAgICAgICByZXMgPSBjb2w7XG4gICAgLy8gICAgICAgICBicmVhaztcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgIH1cbiAgICAvLyAgIH1cbiAgICAvLyAgIHJldHVybiByZXM7XG4gICAgLy8gfVxuICAgIHN0YXRpYyBwaWNrVXBTZXFDb2wyKGRmKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3Qgc2VtVHlwZUNvbExpc3QgPSBkZi5jb2x1bW5zLmJ5U2VtVHlwZUFsbChERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEUpO1xuICAgICAgICBsZXQgcmVzQ29sID0gKF9hID0gc2VtVHlwZUNvbExpc3QuZmluZCgoY29sKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB1bml0cyA9IGNvbC5nZXRUYWcoREcuVEFHUy5VTklUUyk7XG4gICAgICAgICAgICByZXR1cm4gdW5pdHMgPyB1bml0cy5pbmRleE9mKCdNU0EnKSAhPT0gLTEgOiBmYWxzZTtcbiAgICAgICAgfSkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IG51bGw7XG4gICAgICAgIGlmICghcmVzQ29sICYmIHNlbVR5cGVDb2xMaXN0Lmxlbmd0aCA+IDApXG4gICAgICAgICAgICByZXNDb2wgPSBzZW1UeXBlQ29sTGlzdFswXTtcbiAgICAgICAgcmV0dXJuIHJlc0NvbDtcbiAgICB9XG4gICAgLyoqIFNwbGl0IHNlcXVlbmNlIGZvciBzaW5nbGUgY2hhcmFjdGVyIG1vbm9tZXJzLCBzcXVhcmUgYnJhY2tldHMgbXVsdGljaGFyIG1vbm9tZXIgbmFtZXMgb3IgZ2FwIHN5bWJvbC5cbiAgICAgKiBAcGFyYW0ge2FueX0gc2VxIG9iamVjdCB3aXRoIHNlcXVlbmNlXG4gICAgICogQHJldHVybiB7c3RyaW5nW119IGFycmF5IG9mIG1vbm9tZXJzXG4gICAgICovXG4gICAgc3RhdGljIHNwbGl0dGVyQXNGYXN0YShzZXEpIHtcbiAgICAgICAgY29uc3QgcmVzID0gd3Uoc2VxLnRvU3RyaW5nKCkubWF0Y2hBbGwoV2ViTG9nby5tb25vbWVyUmUpKVxuICAgICAgICAgICAgLm1hcCgobWEpID0+IHtcbiAgICAgICAgICAgIGxldCBtUmVzO1xuICAgICAgICAgICAgY29uc3QgbSA9IG1hWzBdO1xuICAgICAgICAgICAgaWYgKG0ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIGlmIChtIGluIFdlYkxvZ28uYWFTeW5vbnltcykge1xuICAgICAgICAgICAgICAgICAgICBtUmVzID0gV2ViTG9nby5hYVN5bm9ueW1zW21dO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbVJlcyA9ICcnO1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBMb25nIG1vbm9tZXIgJyR7bX0nIGhhcyBub3QgYSBzaG9ydCBzeW5vbnltLmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG1SZXMgPSBtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG1SZXM7XG4gICAgICAgIH0pLnRvQXJyYXkoKTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgLyoqIFNwbGl0cyBIZWxtIHN0cmluZyB0byBtb25vbWVycywgYnV0IGRvZXMgbm90IHJlcGxhY2UgbW9ub21lciBuYW1lcyB0byBvdGhlciBub3RhdGlvbiAoZS5nLiBmb3IgUk5BKS5cbiAgICAgKiBPbmx5IGZvciBsaW5lYXIgcG9seW1lcnMsIGRvZXMgbm90IHNwbGl0IFJOQSBmb3Igcmlib3NlIGFuZCBwaG9zcGhhdGUgbW9ub21lcnMuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNlcSBTb3VyY2Ugc3RyaW5nIG9mIEhFTE0gbm90YXRpb25cbiAgICAgKiBAcmV0dXJuIHtzdHJpbmdbXX1cbiAgICAgKi9cbiAgICBzdGF0aWMgc3BsaXR0ZXJBc0hlbG0oc2VxKSB7XG4gICAgICAgIFdlYkxvZ28uaGVsbVJlLmxhc3RJbmRleCA9IDA7XG4gICAgICAgIGNvbnN0IGVhID0gV2ViTG9nby5oZWxtUmUuZXhlYyhzZXEudG9TdHJpbmcoKSk7XG4gICAgICAgIGNvbnN0IGluU2VxID0gZWEgPyBlYVsyXSA6IG51bGw7XG4gICAgICAgIGNvbnN0IG1tUG9zdFByb2Nlc3MgPSAobW0pID0+IHtcbiAgICAgICAgICAgIFdlYkxvZ28uaGVsbVBwMVJlLmxhc3RJbmRleCA9IDA7XG4gICAgICAgICAgICBjb25zdCBwcDFNID0gV2ViTG9nby5oZWxtUHAxUmUuZXhlYyhtbSk7XG4gICAgICAgICAgICBpZiAocHAxTSAmJiBwcDFNLmxlbmd0aCA+PSAyKVxuICAgICAgICAgICAgICAgIHJldHVybiBwcDFNWzFdO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHJldHVybiBtbTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgbW1MaXN0ID0gaW5TZXEgPyBpblNlcS5zcGxpdCgnLicpIDogW107XG4gICAgICAgIGNvbnN0IG1tTGlzdFJlcyA9IG1tTGlzdC5tYXAobW1Qb3N0UHJvY2Vzcyk7XG4gICAgICAgIHJldHVybiBtbUxpc3RSZXM7XG4gICAgfVxuICAgIC8qKiBHZXRzIG1ldGhvZCB0byBzcGxpdCBzZXF1ZW5jZSBieSBzZXBhcmF0b3JcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VwYXJhdG9yXG4gICAgICogQHBhcmFtIGxpbWl0XG4gICAgICogQHJldHVybiB7U3BsaXR0ZXJGdW5jfVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRTcGxpdHRlcldpdGhTZXBhcmF0b3Ioc2VwYXJhdG9yLCBsaW1pdCA9IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gKHNlcSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHNlcS5zcGxpdChzZXBhcmF0b3IsIGxpbWl0KTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLyoqIEdldCBzcGxpdHRlciBtZXRob2QgdG8gc3BsaXQgc2VxdWVuY2VzIHRvIG1vbm9tZXJzXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXRzXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNlcGFyYXRvclxuICAgICAqIEBwYXJhbSBsaW1pdFxuICAgICAqIEByZXR1cm4ge1NwbGl0dGVyRnVuY31cbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcGFyYXRvciwgbGltaXQgPSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHVuaXRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8pKVxuICAgICAgICAgICAgcmV0dXJuIFdlYkxvZ28uc3BsaXR0ZXJBc0Zhc3RhO1xuICAgICAgICBlbHNlIGlmICh1bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8pKVxuICAgICAgICAgICAgcmV0dXJuIFdlYkxvZ28uZ2V0U3BsaXR0ZXJXaXRoU2VwYXJhdG9yKHNlcGFyYXRvciwgbGltaXQpO1xuICAgICAgICBlbHNlIGlmICh1bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLykpXG4gICAgICAgICAgICByZXR1cm4gV2ViTG9nby5zcGxpdHRlckFzSGVsbTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHVuaXRzICR7dW5pdHN9IC5gKTtcbiAgICAgICAgLy8gVE9ETzogU3BsaXR0ZXIgZm9yIEhFTE1cbiAgICB9XG4gICAgc3RhdGljIGdldFNwbGl0dGVyRm9yQ29sdW1uKGNvbCkge1xuICAgICAgICBpZiAoY29sLnNlbVR5cGUgIT09IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgR2V0IHNwbGl0dGVyIGZvciBzZW1UeXBlIFwiJHtERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEV9XCIgb25seS5gKTtcbiAgICAgICAgY29uc3QgdW5pdHMgPSBjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpO1xuICAgICAgICBjb25zdCBzZXBhcmF0b3IgPSBjb2wuZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLnNlcGFyYXRvcik7XG4gICAgICAgIHJldHVybiBXZWJMb2dvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXBhcmF0b3IpO1xuICAgIH1cbiAgICAvKiBTaG9ydGVucyBtb25vbWVyIHJlcHJlc2VudGF0aW9uIHRleHQgZm9yIG1vbm9tZXJzIHdpdGggbG9uZyBuYW1lcy5cbiAgICAqKi9cbiAgICBzdGF0aWMgbW9ub21lclRvVGV4dChzcmMpIHtcbiAgICAgICAgY29uc3Qgc3JjVHh0ID0gc3JjLnRvU3RyaW5nKCk7XG4gICAgICAgIGlmIChzcmNUeHQubGVuZ3RoIDw9IDUpIHtcbiAgICAgICAgICAgIHJldHVybiBzcmNUeHQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwYXJ0cyA9IHd1KHNyYy50b1N0cmluZygpLm1hdGNoQWxsKFdlYkxvZ28ubG9uZ01vbm9tZXJQYXJ0UmUpKVxuICAgICAgICAgICAgICAgIC5tYXAoKG1hKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbVJlcyA9IG1hWzBdO1xuICAgICAgICAgICAgICAgIHJldHVybiBtUmVzO1xuICAgICAgICAgICAgfSkudG9BcnJheSgpO1xuICAgICAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcgJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnQwID0gcGFydHNbMF07XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzVHh0ID0gcGFydDAubGVuZ3RoIDwgNiA/IGAke3BhcnQwfeKApmAgOiBgJHtwYXJ0MC5zdWJzdHJpbmcoMCwgNSl94oCmYDtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzVHh0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyBtb25vbWVyVG9TaG9ydChhbWlubywgbWF4TGVuZ3RoT2ZNb25vbWVyKSB7XG4gICAgICAgIHJldHVybiBhbWluby5sZW5ndGggPD0gbWF4TGVuZ3RoT2ZNb25vbWVyID8gYW1pbm8gOiBhbWluby5zdWJzdHJpbmcoMCwgbWF4TGVuZ3RoT2ZNb25vbWVyKSArICfigKYnO1xuICAgIH1cbn1cbldlYkxvZ28ucmVzaWR1ZXNTZXQgPSAnbnVjbGVvdGlkZXMnO1xuV2ViTG9nby52aWV3ZXJDb3VudCA9IC0xO1xuV2ViTG9nby5tb25vbWVyUmUgPSAvXFxbKFxcdyspXFxdfChcXHcpfCgtKS9nO1xuV2ViTG9nby5oZWxtUmUgPSAvKFBFUFRJREUxfEROQTF8Uk5BMSlcXHsoW159XSspfS9nO1xuV2ViTG9nby5oZWxtUHAxUmUgPSAvXFxbKFteXFxbXFxdXSspXS9nO1xuLyoqIE9ubHkgc29tZSBvZiB0aGUgc3lub255bXMuIFRoZXNlIHdlcmUgb2J0YWluZWQgZnJvbSB0aGUgY2x1c3RlcmVkIG9saWdvcGVwdGlkZSBkYXRhc2V0LiAqL1xuV2ViTG9nby5hYVN5bm9ueW1zID0ge1xuICAgICdbTWVObGVdJzogJ0wnLFxuICAgICdbTWVBXSc6ICdBJyxcbiAgICAnW01lR10nOiAnRycsXG4gICAgJ1tNZUZdJzogJ0YnLFxufTtcbldlYkxvZ28ubG9uZ01vbm9tZXJQYXJ0UmUgPSAvKFxcdyspL2c7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkMlZpTFd4dloyOHVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSXRiRzluYnk1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN1FVRkJRU3hQUVVGUExFdEJRVXNzU1VGQlNTeE5RVUZOTEcxQ1FVRnRRaXhEUVVGRE8wRkJRekZETEU5QlFVOHNTMEZCU3l4RlFVRkZMRTFCUVUwc2FVSkJRV2xDTEVOQlFVTTdRVUZEZEVNc1QwRkJUeXhMUVVGTExFVkJRVVVzVFVGQlRTeHBRa0ZCYVVJc1EwRkJRenRCUVVWMFF5eFBRVUZQTEVWQlFVVXNUVUZCVFN4SlFVRkpMRU5CUVVNN1FVRkRjRUlzVDBGQlR5eExRVUZMTEVsQlFVa3NUVUZCVFN4TlFVRk5MRU5CUVVNN1FVRkZOMElzVDBGQlR5eEZRVUZETEUxQlFVMHNSVUZCUXl4TlFVRk5MR2xFUVVGcFJDeERRVUZETzBGQlEzWkZMRTlCUVU4c1JVRkJReXhaUVVGWkxFVkJRVVVzWjBKQlFXZENMRVZCUVVNc1RVRkJUU3hwUkVGQmFVUXNRMEZCUXp0QlFVTXZSaXhQUVVGUExFVkJRVU1zVlVGQlZTeEZRVUZGTEd0Q1FVRnJRaXhGUVVGRExFMUJRVTBzWlVGQlpTeERRVUZETzBGQlF6ZEVMRTlCUVU4c1JVRkJReXhYUVVGWExFVkJRVVVzYlVKQlFXMUNMRVZCUVVNc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVTm9SU3hQUVVGUExFVkJRVU1zYTBKQlFXdENMRVZCUVVNc1RVRkJUU3haUVVGWkxFTkJRVU03UVVGSE9VTXNUMEZCVHl4RlFVRlhMRmxCUVZrc1JVRkJReXhOUVVGTkxIZENRVUYzUWl4RFFVRkRPMEZCVVRsRUxFbEJRVXNzWTBGSFNqdEJRVWhFTEZkQlFVc3NZMEZCWXp0SlFVTnFRaXh4UTBGQmJVSXNRMEZCUVR0SlFVTnVRaXdyUWtGQllTeERRVUZCTzBGQlEyWXNRMEZCUXl4RlFVaEpMR05CUVdNc1MwRkJaQ3hqUVVGakxGRkJSMnhDTzBGQldVUTdPenRIUVVkSE8wRkJRMGdzYVVKQlFXbENMRU5CUVVNc1UwRkJVeXhEUVVGRExHbENRVUZwUWl4SFFVRkhMRlZCUVZNc1MwRkJhVUlzUlVGQlJTeERRVUZUTzBsQlEyNUdMRTFCUVUwc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1JVRkJSU3hEUVVGRE8wbEJRekZETEU5QlFVOHNTVUZCU1N4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRka1lzUTBGQlF5eERRVUZETzBGQlJVWXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVVVGQlVTeEhRVUZITEZWQlFWTXNRMEZCVXl4RlFVRkZMRU5CUVZNN1NVRkRlRVFzVDBGQlR5eEpRVUZKTEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NTVUZCU1N4SlFVRkpMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJRenRCUVVOb1JpeERRVUZETEVOQlFVTTdRVUZGUml4TlFVRk5MRTlCUVU4c2JVSkJRVzFDTzBsQlV6bENMRmxCUVZrc1VVRkJaMElzUTBGQlF5eEZRVUZGTEZOQlFXdENMRWxCUVVrc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRGRFVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1IwRkJSeXhMUVVGTExFTkJRVU03VVVGRGJrSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU03U1VGRGRrSXNRMEZCUXp0RFFVTkdPMEZCUlVRc1RVRkJUU3hQUVVGUExGbEJRVms3U1VGTmRrSTdPenM3TzA5QlMwYzdTVUZEU0N4WlFVRlpMRWxCUVZrc1JVRkJSU3hQUVVFMlF5eEZRVUZGTEVWQlFVVXNWMEZCYlVJc1EwRkJReXhGUVVGRkxHMUNRVUV5UWl4RFFVRkRPMUZCUXpOSUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUTJwQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUTJwQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVkQlFVY3NVVUZCVVN4RFFVRkRPMUZCUTNwQ0xFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1IwRkJSeXhuUWtGQlowSXNRMEZCUXp0SlFVTXpReXhEUVVGRE8wTkJRMFk3UVVGRlJDeE5RVUZOTEU5QlFVOHNUMEZCVVN4VFFVRlJMRVZCUVVVc1EwRkJReXhSUVVGUk8wbEJlVVYwUXp0UlFVTkZMRXRCUVVzc1JVRkJSU3hEUVVGRE8xRkJkRVZHTEdGQlFWRXNSMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWMFFpeG5Ra0ZCVnl4SFFVRlpMRXRCUVVzc1EwRkJRenRSUVVWeVF5dzBSa0ZCTkVZN1VVRkRiRVlzVDBGQlJTeEhRVUZ6UWl4SlFVRkpMRU5CUVVNN1VVRlJMMElzWlVGQlZTeEhRVUZYTEVWQlFVVXNRMEZCUXp0UlFVVjRRaXhYUVVGTkxFZEJRVFpDTEVsQlFVa3NRMEZCUXp0UlFVTjRReXhoUVVGUkxFZEJRWGRDTEVsQlFVa3NRMEZCUXp0UlFVTTNReXh0UTBGQmJVTTdVVUZETTBJc1kwRkJVeXhIUVVGdFFpeEZRVUZGTEVOQlFVTTdVVUZGTDBJc1pVRkJWU3hIUVVGWExFTkJRVU1zUTBGQlF6dFJRVU4yUWl4aFFVRlJMRWRCUVZjc1EwRkJReXhEUVVGRE8xRkJWWFJDTEcxQ1FVRmpMRWRCUVZjc1EwRkJReXhEUVVGRE8xRkJWekZDTEd0Q1FVRmhMRWRCUVdFc1JVRkJSU3hEUVVGRE8xRkJSVGRDTEd0Q1FVRmhMRWRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRk0wSXNaMEpCUVZjc1IwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRWEZDZWtJc1lVRkJVU3hIUVVGdFFpeEZRVUZGTEVOQlFVTTdVVUZMY0VNc1NVRkJTU3hEUVVGRExGRkJRVkVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNWMEZCVnl4RFFVRkRPMUZCUTNCRExFOUJRVThzUTBGQlF5eFhRVUZYTEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUlhwQ0xFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NTMEZCU3l4RFFVRkRPMUZCUXpGQ0xFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUlhwQ0xFbEJRVWtzUTBGQlF5eGpRVUZqTEVkQlFVY3NTVUZCU1N4RFFVRkRMR0ZCUVdFc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEdWQlFXVXNSVUZCUlN4RlFVRkZMRU5CUVVFN09FUkJRMjVDTEVOQlFVTXNRMEZCUXp0UlFVTjRSQ3hKUVVGSkxFTkJRVU1zVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhGUVVGRkxFVkJRVVVzUTBGQlFUdG5SVUZEWVN4RFFVRkRMRU5CUVVNN1VVRkRNVVFzU1VGQlNTeERRVUZETEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUlVGQlJTeEhRVUZITEVOQlFVRTdaMFZCUTFrc1EwRkJReXhEUVVGRE8xRkJSVEZFTEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMSFZDUVVGMVFpeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTNaRkxFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEc5Q1FVRnZRaXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzFGQlJXeEZMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExHMUNRVUZ0UWl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRMmhGTEVsQlFVa3NRMEZCUXl4bFFVRmxMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVVUxUkN4SlFVRkpMRU5CUVVNc1VVRkJVU3hIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJSVGRETEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRzFDUVVGdFFpeEZRVUZGTEZGQlFWRXNSVUZEYUVVc1JVRkJReXhQUVVGUExFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNVVUZCVVN4RlFVRkZMRkZCUVZFc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF6dFJRVU14UXl4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXh4UWtGQmNVSXNSVUZCUlN4UlFVRlJMRVZCUTNCRkxFVkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RlFVRkZMRkZCUVZFc1JVRkJSU3hQUVVGUExFTkJRVU1zUlVGQlF5eERRVUZETEVOQlFVTTdVVUZETVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU14UXl4SlFVRkpMRU5CUVVNc1pVRkJaU3hIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdVVUZETVVRc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zYjBKQlFXOUNMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGFrVXNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc2NVSkJRWEZDTEVWQlFVVXNUVUZCVFN4RlFVTnNSU3hGUVVGRExFOUJRVThzUlVGQlJTeERRVUZETEUxQlFVMHNSVUZCUlN4UlFVRlJMRVZCUVVVc1MwRkJTeXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETzFGQlEzaERMRWxCUVVrc05rSkJRVFpDTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTNSRExFbEJRVWtzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhMUVVGTExFMUJRVTBzUlVGQlJUdFpRVU55UXl3MlFrRkJOa0lzUjBGQlJ5eERRVUZETEVOQlFVTTdVMEZEY2tNN1VVRkRSQ3hKUVVGSkxFTkJRVU1zWTBGQll5eEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNOa0pCUVRaQ0xFVkJRVVVzUlVGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETzFGQlEyNUhMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4blFrRkJaMElzUlVGQlJTeGpRVUZqTEVOQlFVTXNTVUZCU1N4RlFVRkZMRVZCUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU1zWTBGQll5eERRVUZETEVsQlFVa3NSVUZCUlN4alFVRmpMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETzBsQlEzSkpMRU5CUVVNN1NVRTFSRVFzTUVSQlFUQkVPMGxCUXpGRUxFbEJRVmtzVFVGQlRUdFJRVU5vUWl4SlFVRkpMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNSVUZCUlR0WlFVTXpRaXhQUVVGUExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNUVUZCVFN4RFFVRkRPMU5CUXpsQ08xRkJRMFFzVDBGQlR5eEpRVUZKTEVOQlFVTXNZVUZCWVN4SlFVRkpMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRExHRkJRV0VzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOb1J5eERRVUZETzBsQlJVUXNTVUZCV1N4MVFrRkJkVUk3TzFGQlEycERMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRXRCUVVzc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZCTEUxQlFVRXNTVUZCU1N4RFFVRkRMRmxCUVZrc01FTkJRVVVzYzBKQlFYTkNMRVZCUVVVc1RVRkJTeXhKUVVGSkxFTkJRVU1zUlVGQlJUdFpRVU51Unl4UFFVRlBMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXp0VFFVTnNSRHRSUVVORUxFbEJRVWtzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhMUVVGTExGRkJRVkVzUlVGQlJUdFpRVU42UXl4UFFVRlBMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXp0VFFVTnNSRHRSUVVWRUxFOUJRVThzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXp0SlFVTTNRaXhEUVVGRE8wbEJOa05oTEVsQlFVazdPMWxCUTJoQ0xFbEJRVWtzU1VGQlNTeERRVUZETEZkQlFWY3NSVUZCUlR0blFrRkRjRUlzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4blEwRkJaME1zUTBGQlF5eERRVUZETzJkQ1FVTm9SQ3hQUVVGUE8yRkJRMUk3V1VGRlJDeEpRVUZKTEVOQlFVTXNWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJRenRaUVVONFFpeEpRVUZKTEVOQlFVTXNUMEZCVHl4SFFVRkhMSEZEUVVGeFF5eERRVUZETzFsQlJYSkVMRWxCUVVrc1EwRkJReXhQUVVGUExFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRaUVVOd1F5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFZEJRVWNzVFVGQlRTeERRVUZETzFsQlJYQkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzUlVGQlJTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRPMWxCUXpGQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1IwRkJSeXhOUVVGTkxFTkJRVU03V1VGRmFrTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXp0WlFVVm9SQ3cyUTBGQk5rTTdXVUZETjBNc2VVTkJRWGxETzFsQlEzcERMREJEUVVFd1F6dFpRVVV4UXl4TlFVRk5MRlZCUVZVc1IwRkJSeXhEUVVGRExFTkJRVmNzUlVGQmRVUXNSVUZCUlR0blFrRkRkRVlzVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4MVFrRkJkVUlzUTBGQlF5eERRVUZETzJkQ1FVTTFSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8yZENRVVYwUXl4SlFVRkpMRkZCUVZFc1MwRkJTeXhMUVVGTExFTkJRVU03YjBKQlEzSkNMRTlCUVU4c1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMmRDUVVVMVFpeE5RVUZOTEU5QlFVOHNSMEZCZFVJc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRPM0ZDUVVNelJDeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTXpSQ3hKUVVGSkxFOUJRVThzUzBGQlN5eFRRVUZUTzI5Q1FVTjJRaXhQUVVGUExFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRuUWtGRk5VSXNUMEZCVHl4RFFVRkRMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVVzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMnBFTEVOQlFVTXNRMEZCUXp0WlFVZEdMSEZIUVVGeFJ6dFpRVU55Unl4UFFVRlBPMWxCUlZBc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJZU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRV0VzUlVGQlJTeEZRVUZGTzJkQ1FVTnNSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMDdiMEpCUTJRc1QwRkJUenRuUWtGRlZDeE5RVUZOTEVsQlFVa3NSMEZCUnl4RFFVRmxMRU5CUVVNN1owSkJSVGRDTEUxQlFVMHNRMEZCUXl4SFFVRlhMRTFCUVUwc1EwRkJReXhuUWtGQlowSXNRMEZCUXp0blFrRkRNVU1zVFVGQlRTeFBRVUZQTEVkQlFXRXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEycEZMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8yZENRVVUxUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhUUVVGVExFbEJRVWtzU1VGQlNTeERRVUZETEUxQlFVMHNTVUZCU1N4SlFVRkpMRU5CUVVNc1VVRkJVU3hKUVVGSkxFOUJRVThzUlVGQlJUdHZRa0ZETjBRc1RVRkJUU3hSUVVGUkxFZEJRVWNzUlVGQlJTeERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVmtzUlVGQlJTeEZRVUZGTzNkQ1FVTm9SaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dDNRa0ZEYmtNc1RVRkJUU3hKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXp0M1FrRkRla1VzVDBGQlR5eERRVUZETEVOQlFVTXNTVUZCU1N4TFFVRkxMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeExRVUZMTEVWQlFVVXNTVUZCU1N4UFFVRlBMRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU1zU1VGQlNTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdiMEpCUTNKSExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCVXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hKUVVGSkxFVkJRVVVzUlVGQlJTeERRVUZETEV0QlFVc3NSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03YjBKQlEycEVMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NUMEZCVHl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NVVUZCVVN4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0cFFrRkRka2M3Y1VKQlFVMDdiMEpCUTB3c1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0cFFrRkRia0k3V1VGRFNDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUlVvc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJZU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRV0VzUlVGQlJTeEZRVUZGTzJkQ1FVTnNSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU03YjBKQlF5OUNMRTlCUVU4N1owSkJSVlFzVFVGQlRTeEpRVUZKTEVkQlFVY3NRMEZCWlN4RFFVRkRPMmRDUVVNM1FpeE5RVUZOTEVOQlFVTXNSMEZCVnl4TlFVRk5MRU5CUVVNc1owSkJRV2RDTEVOQlFVTTdaMEpCUXpGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRWRCUVVjc1ZVRkJWU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJSVE5GTEhWRVFVRjFSRHRuUWtGRGRrUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1UwRkJVeXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NTVUZCU1N4RFFVRkRMRkZCUVZFc1NVRkJTU3hQUVVGUExFVkJRVVU3YjBKQlF6ZEVMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hGUVVGRk8zZENRVU55UXl4TlFVRk5MRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenQzUWtGRGJrTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF6dDNRa0ZEZWtVc1QwRkJUeXhEUVVGRExFTkJRVU1zU1VGQlNTeExRVUZMTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hMUVVGTExFVkJRVVVzU1VGQlNTeFBRVUZQTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03YjBKQlEzSkhMRU5CUVVNc1EwRkJReXhEUVVGRE8ybENRVU5LTzFsQlEwZ3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVWS0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhoUVVGaExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVVTNSaXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03V1VGRE5VSXNNa05CUVRKRE8xbEJSVE5ETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRGNFSXNRMEZCUXp0TFFVRkJPMGxCUlU4c2FVSkJRV2xDTEVOQlFVTXNTVUZCVXp0UlFVTnFReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUld4Q0xHbEVRVUZwUkR0UlFVTnFSQ3h4UmtGQmNVWTdVVUZEY2tZc2FVWkJRV2xHTzBsQlEyNUdMRU5CUVVNN1NVRkZSRHRQUVVOSE8wbEJRMHNzV1VGQldUdFJRVU5zUWl4SlFVRkpMRWxCUVVrc1EwRkJReXhUUVVGVExFVkJRVVU3V1VGRGJFSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU03V1VGRE0wWXNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hKUVVGSkxFbEJRVWtzUlVGQlJUdG5Ra0ZEZGtJc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dG5Ra0ZEY0VRc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTTdZVUZEYWtVN1dVRkRSQ3hKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVTdaMEpCUTJZc1RVRkJUU3hMUVVGTExFZEJRVmNzU1VGQlNTeERRVUZETEUxQlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0blFrRkRla1FzVFVGQlRTeFRRVUZUTEVkQlFWY3NTVUZCU1N4RFFVRkRMRTFCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRuUWtGRE0wVXNTVUZCU1N4RFFVRkRMRkZCUVZFc1IwRkJSeXhQUVVGUExFTkJRVU1zVjBGQlZ5eERRVUZETEV0QlFVc3NSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJRenRuUWtGRGRFUXNTVUZCU1N4RFFVRkRMRmxCUVZrc1IwRkJSeXhKUVVGSkxGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1owSkJSV3hFTEVsQlFVa3NRMEZCUXl4bFFVRmxMRVZCUVVVc1EwRkJRenRuUWtGRGRrSXNTVUZCU1N4RFFVRkRMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRoUVVNNVF6dHBRa0ZCVFR0blFrRkRUQ3hKUVVGSkxFTkJRVU1zVVVGQlVTeEhRVUZITEVsQlFVa3NRMEZCUXp0blFrRkRja0lzU1VGQlNTeERRVUZETEdGQlFXRXNSMEZCUnl4RlFVRkZMRU5CUVVNN1owSkJRM2hDTEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEzaENMRWxCUVVrc1EwRkJReXhYUVVGWExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTNSQ0xFbEJRVWtzUTBGQlF5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRPMkZCUTJoQ08xTkJRMFk3VVVGRFJDeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1NVRkRhRUlzUTBGQlF6dEpRVVZQTEdWQlFXVTdVVUZEY2tJc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTzFsQlEyUXNUMEZCVHp0UlFVVlVMRWxCUVVrc1ZVRkJPRUlzUTBGQlF6dFJRVU51UXl4SlFVRkpMRWxCUVVrc1EwRkJReXhsUVVGbExFVkJRVVU3V1VGRGVFSXNUVUZCVFN4UFFVRlBMRWRCUVdVc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzUTBGQlF6dFpRVU4yUlN4VlFVRlZMRWRCUVVjc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NRMEZETjBJc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJVeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRUUVVNdlJqdGhRVUZOTzFsQlEwd3NWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVlVGQlZTeERRVUZETzFOQlEzSkRPMUZCUTBRc1RVRkJUU3hUUVVGVExFZEJRVWNzVlVGQlZTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVOc1JTeERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhMUVVGTExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVjZSQ3d3UkVGQk1FUTdVVUZETVVRc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXp0UlFVTTNSQ3hyUkVGQmEwUTdVVUZEYkVRc1NVRkJTU3hEUVVGRExHRkJRV0VzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVONlJpeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSVFZFTEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRWxCUVVrc1NVRkJTU3hEUVVGRExHRkJRV0U3V1VGRGFFVXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzUkVMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRla1FzU1VGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhsUVVGbExFbEJRVWtzU1VGQlNTeERRVUZETEdGQlFXRTdXVUZETlVRc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU53UkN4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNaRkxFTkJRVU03U1VGRlpTeHBRa0ZCYVVJc1EwRkJReXhSUVVGeFFqdFJRVU55UkN4M1JVRkJkMFU3VVVGRGVFVXNTMEZCU3l4RFFVRkRMR2xDUVVGcFFpeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUld4RExGRkJRVkVzVVVGQlVTeERRVUZETEVsQlFVa3NSVUZCUlR0WlFVTjJRaXhMUVVGTExIVkNRVUYxUWp0blFrRkRNVUlzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRuUWtGRGJFSXNUVUZCVFR0WlFVTlNMRXRCUVVzc2IwSkJRVzlDTzJkQ1FVTjJRaXhKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTEVOQlFVTTdaMEpCUTNCQ0xFMUJRVTA3V1VGRFVpeExRVUZMTEcxQ1FVRnRRanRuUWtGRGRFSXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8yZENRVU53UWl4TlFVRk5PMWxCUTFJc1MwRkJTeXhwUWtGQmFVSTdaMEpCUTNCQ0xFbEJRVWtzUTBGQlF5eFpRVUZaTEVWQlFVVXNRMEZCUXp0blFrRkRjRUlzVFVGQlRUdFpRVU5TTEV0QlFVc3NaVUZCWlR0blFrRkRiRUlzU1VGQlNTeERRVUZETEdOQlFXTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRE8yZENRVU42UXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzJkQ1FVTnNRaXhOUVVGTk8xbEJRMUlzUzBGQlN5eFhRVUZYTzJkQ1FVTmtMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdaMEpCUTJ4Q0xFMUJRVTA3V1VGRFVpeExRVUZMTEZkQlFWYzdaMEpCUTJRc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0blFrRkRiRUlzVFVGQlRUdFpRVU5TTEV0QlFVc3NWVUZCVlR0blFrRkRZaXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMmRDUVVOc1FpeE5RVUZOTzFsQlExSXNTMEZCU3l4dFFrRkJiVUk3WjBKQlEzUkNMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdaMEpCUTJ4Q0xFMUJRVTA3V1VGRFVpeExRVUZMTEhGQ1FVRnhRanRuUWtGRGVFSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dG5Ra0ZEYkVJc1RVRkJUVHRaUVVOU0xFdEJRVXNzVTBGQlV6dG5Ra0ZEV2l4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzJkQ1FVTnNRaXhOUVVGTk8xbEJRMUlzUzBGQlN5eHBRa0ZCYVVJN1owSkJRM0JDTEVsQlFVa3NRMEZCUXl4bFFVRmxMRVZCUVVVc1EwRkJRenRuUWtGRGRrSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dG5Ra0ZEYkVJc1RVRkJUVHRaUVVOU0xFdEJRVXNzYjBKQlFXOUNPMmRDUVVOMlFpeEpRVUZKTEVOQlFVTXNaVUZCWlN4RlFVRkZMRU5CUVVNN1owSkJRM1pDTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03WjBKQlEyeENMRTFCUVUwN1dVRkRVaXhMUVVGTExHZENRVUZuUWp0blFrRkRia0lzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRuUWtGRGJFSXNUVUZCVFR0WlFVTlNMRXRCUVVzc2NVSkJRWEZDTzJkQ1FVTjRRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMmRDUVVOc1FpeE5RVUZOTzFsQlExSXNTMEZCU3l4blFrRkJaMEk3WjBKQlEyNUNMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdaMEpCUTJ4Q0xFMUJRVTA3VTBGRFVEdEpRVU5JTEVOQlFVTTdTVUZGY1VJc1pVRkJaVHM3T3pzN1dVRkRia01zVFVGQlRTeFpRVUZaTEVkQlFWY3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1dVRkRPVVFzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4blFrRkJaMElzU1VGQlNTeERRVUZETEZGQlFWRXNhME5CUVd0RExGbEJRVmtzVlVGQlZTeERRVUZETEVOQlFVTTdXVUZEY2tjc1QwRkJUU3hsUVVGbExGbEJRVWM3V1VGRmVFSXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8xbEJSWEJDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRk5CUVZNc1MwRkJTeXhMUVVGTExFTkJRVU1zUlVGQlJUdG5Ra0ZETjBJc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhUUVVGVExFTkJRVU1zVTBGQlV5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRGJrWXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1UwRkJVeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZPMjlDUVVNM1JDeEpRVUZKTEVOQlFVTXNaVUZCWlN4RlFVRkZMRU5CUVVNN2IwSkJRM1pDTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRuUWtGRGFFSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRoUVVOTU8xbEJSVVFzVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1dVRkRiRUlzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4blFrRkJaMElzU1VGQlNTeERRVUZETEZGQlFWRXNlVUpCUVhsQ0xFTkJRVU1zUTBGQlF6dFJRVU40UlN4RFFVRkRPMHRCUVVFN1NVRkZjVUlzVFVGQlRUczdPenM3V1VGRE1VSXNUVUZCVFN4WlFVRlpMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzFsQlF6TkVMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zWjBKQlFXZENMRWxCUVVrc1EwRkJReXhSUVVGUkxHdERRVUZyUXl4WlFVRlpMRlZCUVZVc1EwRkJReXhEUVVGRE8xbEJRM0pITEU5QlFVMHNUVUZCVFN4WlFVRkhPMWxCUldZc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4RFFVRkRPMWxCUTJ4RUxFbEJRVWtzUTBGQlF5eEpRVUZMTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1dVRkRjRUlzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4VFFVRlRMRU5CUVVNN1dVRkRlRUlzU1VGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4VFFVRlRMRU5CUVVNN1dVRkRla0lzU1VGQlNTeERRVUZETEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNN1dVRkZkRUlzU1VGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4TFFVRkxMRU5CUVVNN1dVRkRla0lzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4blFrRkJaMElzU1VGQlNTeERRVUZETEZGQlFWRXNlVUpCUVhsQ0xFTkJRVU1zUTBGQlF6dFJRVU40UlN4RFFVRkRPMHRCUVVFN1NVRkZVeXhoUVVGaExFTkJRVU1zWVVGQllTeEhRVUZITEVkQlFVYzdVVUZEZWtNc1NVRkJTU3hKUVVGSkxFTkJRVU1zY1VKQlFYRkNPMWxCUXpWQ0xFOUJRVThzU1VGQlNTeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRk4wUXNUMEZCVHl4RlFVRkZMRU5CUVVNN1NVRkRXaXhEUVVGRE8wbEJSVk1zVjBGQlZ5eERRVUZETEV0QlFXbENMRVZCUVVVc1UwRkJPRUk3VVVGRGNrVXNTVUZCU1N4TlFVRk5MRWRCUVVjc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF6dFJRVU14UWl4SlFVRkpMR05CUVdNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGRrSXNTMEZCU3l4SlFVRkpMR05CUVdNc1IwRkJSeXhEUVVGRExFVkJRVVVzWTBGQll5eEhRVUZITEUxQlFVMHNSVUZCUlN4alFVRmpMRVZCUVVVc1JVRkJSVHRaUVVOMFJTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF5eEZRVUZGTzJkQ1FVTnlReXhMUVVGTExFTkJRVU1zWTBGQll5eERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRE8yZENRVU01UXl4alFVRmpMRVZCUVVVc1EwRkJRenRoUVVOc1FqdFRRVU5HTzFGQlEwUXNTMEZCU3l4RFFVRkRMRTFCUVUwc1IwRkJSeXhqUVVGakxFTkJRVU03VVVGRE9VSXNUMEZCVHl4TFFVRkxMRU5CUVVNN1NVRkRaaXhEUVVGRE8wbEJSMU1zY1VKQlFYRkNPMUZCUXpkQ0xFbEJRVWtzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhGUVVGRk8xbEJRek5DTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUlVGQlJTeEpRVUZKTEVOQlFVTXNSVUZCUlN4WFFVRkRMRTlCUVVFc1EwRkJRU3hOUVVGQkxFbEJRVWtzWVVGQlNpeEpRVUZKTEhWQ1FVRktMRWxCUVVrc1EwRkJSU3hKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETERCRFFVRkZMRXRCUVVzc1RVRkJTeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZCTEVWQlFVRXNRMEZCUXl4RFFVRkRPMU5CUTNCR08wbEJRMGdzUTBGQlF6dEpRVVZUTEZWQlFWVXNRMEZCUXl4RFFVRlRPMUZCUXpWQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV6dFpRVU12UkN4UFFVRlBPMUZCUTFRc1NVRkJTU3hEUVVGRExGbEJRVmtzUjBGQlJ5eEpRVUZKTEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGSGJFUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRE8xRkJSV2hDTEVsQlFVa3NRMEZCUXl4VFFVRlRMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEdGQlFXRXNTVUZCU1N4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJReXhoUVVGaExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOdVNDeExRVUZMTEVsQlFVa3NTVUZCU1N4SFFVRkhMRU5CUVVNc1JVRkJSU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1JVRkJSVHRaUVVNM1F5eE5RVUZOTEU5QlFVOHNSMEZCVnl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkRkRVVzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhKUVVGSkxGbEJRVmtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0VFFVTnNSRHRSUVVWRUxHbEdRVUZwUmp0UlFVTnFSaXhOUVVGTkxFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4RFFVRkRPMUZCUXpORUxESkhRVUV5Unp0UlFVTXpSeXhuUkVGQlowUTdVVUZGYUVRc1NVRkJTU3hEUVVGRExGVkJRVlVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRPMUZCUTJwRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUld4Q0xFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NUMEZCVHl4RlFVRkZPMWxCUTNaQ0xFbEJRVWtzUTBGQlF5eEhRVUZ0UWl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkZOME1zU1VGQlNTeERRVUZETEVOQlFVTXNSVUZCUlR0blFrRkRUaXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEdGQlFXRXNSVUZCUlN4RFFVRkRPMmRDUVVONlFpeEZRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN1lVRkRha0k3V1VGRlJDeE5RVUZOTEVsQlFVa3NSMEZCWVN4SlFVRkpMRU5CUVVNc1VVRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzcERMRXRCUVVzc1NVRkJTU3hKUVVGSkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEZRVUZGTzJkQ1FVTTNReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF6dG5Ra0ZEZWtNc1RVRkJUU3hEUVVGRExFZEJRVmNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETzJkQ1FVTjZSQ3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRPMjlDUVVOb1FpeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3h0UWtGQmJVSXNSVUZCUlN4RFFVRkRPMmRDUVVONFF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU03WVVGRGJrSTdVMEZEUmp0UlFVVkVMRFJDUVVFMFFqdFJRVU0xUWl4TFFVRkxMRWxCUVVrc1NVRkJTU3hIUVVGSExFTkJRVU1zUlVGQlJTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hKUVVGSkxFVkJRVVVzUlVGQlJUdFpRVU0zUXl4NVEwRkJlVU03V1VGRmVrTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eFJRVUZSTEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTJ4RExFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEpRVUZKTzJkQ1FVTjJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRkZCUVZFc1NVRkJTU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTTdXVUZEZEVVc1NVRkJTU3hKUVVGSkxFTkJRVU1zWTBGQll5eEpRVUZKTEdOQlFXTXNRMEZCUXl4UFFVRlBMRVZCUVVVN1owSkJRMnBFTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zWjBKQlFXZENMRWRCUVVjc1EwRkJReXhEUVVGRE8yZENRVU14UXl4TFFVRkxMRTFCUVUwc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRk8yOUNRVU42UXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTTdiMEpCUXpsRkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1owSkJRV2RDTEVsQlFVa3NRMEZCUXl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0cFFrRkRPVVE3WVVGRFJqdFRRVU5HTzFGQlEwUXNXVUZCV1R0UlFVTmFMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNSVUZCUlN4RFFVRkRPMUZCUlRkQ0xFMUJRVTBzYVVKQlFXbENMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRlZCUVZVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGJrVXNiVVpCUVcxR08xRkJSVzVHTERCQ1FVRXdRanRSUVVNeFFpeExRVUZMTEVsQlFVa3NTVUZCU1N4SFFVRkhMRU5CUVVNc1JVRkJSU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1JVRkJSVHRaUVVNM1F5eE5RVUZOTEVsQlFVa3NSMEZCZVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNN1dVRkROMFVzVFVGQlRTeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTTdXVUZETDBNc1RVRkJUU3haUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETEdWQlFXVXNSVUZCUlN4RFFVRkRPMWxCUXpWRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4SlFVRkpMR05CUVdNc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NTVUZCU1N4SlFVRkpMRU5CUVVNc1JVRkJSVHRuUWtGRE4wVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zYVVOQlFXbERMRU5CUVVNc1EwRkJRenRoUVVOeVJEdFpRVVZFTEUxQlFVMHNVMEZCVXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV01zU1VGQlNTeGpRVUZqTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zYVVKQlFXbENMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF6dFpRVVUxVFN4SlFVRkpMRU5CUVVNc1IwRkJWeXhKUVVGSkxFTkJRVU1zVlVGQlZTeEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMR2xDUVVGcFFpeEhRVUZITEZOQlFWTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVVeFJTeE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdG5Ra0ZEYWtRc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eEhRVUZITzI5Q1FVTTVRaXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXp0eFFrRkROVUlzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4SFFVRkhPMjlDUVVOdVF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0eFFrRkRUaXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4SFFVRkhPMjlDUVVOdVFpeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRPM0ZDUVVOUUxHOUNRVUZ2UWp0dlFrRkRka0lzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTmtMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMGdzUzBGQlN5eE5RVUZOTEV0QlFVc3NTVUZCU1N4UFFVRlBMRVZCUVVVN1owSkJRek5DTEUxQlFVMHNUVUZCVFN4SFFVRjNRaXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUXpkRExEaENRVUU0UWp0blFrRkRPVUlzVFVGQlRTeERRVUZETEVkQlFWY3NVMEZCVXl4SFFVRkhMRTFCUVUwc1EwRkJReXhMUVVGTExFZEJRVWNzVVVGQlVTeERRVUZETzJkQ1FVVjBSQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeEhRVUZITEVsQlFVa3NSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEhWQ1FVRjFRaXhGUVVGRkxFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU0xUml4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8yRkJRMUk3VTBGRFJqdFJRVU5FTEZsQlFWazdTVUZEWkN4RFFVRkRPMGxCUlVRc01rTkJRVEpETzBsQlF6TkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzU1VGQlNUczdVVUZEYkVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTzFsQlEyaENMRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRVZCUVVVN1owSkJRek5DTEVsQlFVa3NRMEZCUXl4UFFVRlJMRU5CUVVNc1UwRkJVeXhIUVVGSExIRkRRVUZ4UXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFOUJRVThzUzBGQlN5eERRVUZETzJkQ1FVTjRSaXhKUVVGSkxFTkJRVU1zVDBGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRWRCUVVjc1JVRkJSU3hEUVVGRE8yRkJRMnhETzJsQ1FVRk5PMmRDUVVOTUxFbEJRVWtzUTBGQlF5eFBRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1IwRkJSeXhOUVVGTkxFTkJRVU03WVVGRGRFTTdVMEZEUmp0UlFVVkVMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSVHRaUVVNM1JDeFBRVUZQTzFGQlJWUXNUVUZCVFN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRka01zU1VGQlNTeERRVUZETEVOQlFVTTdXVUZCUlN4UFFVRlBPMUZCUldZc1RVRkJUU3hEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEdkQ1FVRm5RaXhEUVVGRE8xRkJSV3hETEVsQlFVa3NUVUZCVFR0WlFVTlNMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGY2tJc1EwRkJReXhEUVVGRExHTkJRV01zUlVGQlJTeERRVUZETzFGQlEyNUNMRU5CUVVNc1EwRkJReXhUUVVGVExFZEJRVWNzVDBGQlR5eERRVUZETzFGQlEzUkNMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRM2hFTEVOQlFVTXNRMEZCUXl4WlFVRlpMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF6dFJRVVZ1UXl3d1EwRkJNRU03VVVGRE1VTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1lVRkJZU3hMUVVGTExFTkJRVU1zUTBGQlF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4WFFVRlhMRXRCUVVzc1EwRkJReXhEUVVGRE8xbEJRM1JFTEU5QlFVODdVVUZGVkN3MFFrRkJORUk3VVVGRE5VSXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTJoRExFTkJRVU1zUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXp0UlFVTnVRaXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEU5QlFVOHNRMEZCUXp0UlFVTjBRaXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEZGQlFWRXNRMEZCUXp0UlFVTjJRaXhEUVVGRExFTkJRVU1zU1VGQlNTeEhRVUZITEVkQlFVY3NaMEpCUVdkQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4eFEwRkJjVU1zUTBGQlF6dFJRVU0zUlN4TlFVRk5MR1ZCUVdVc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGFFY3NUVUZCVFN4TlFVRk5MRWRCUVVjc1pVRkJaU3hIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NaVUZCWlN4RFFVRkRPMUZCUlRkSExFdEJRVXNzU1VGQlNTeEpRVUZKTEVkQlFVY3NRMEZCUXl4RlFVRkZMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZPMWxCUXpkRExFMUJRVTBzUjBGQlJ5eEhRVUZwUWl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFsQlF5OURMRU5CUVVNc1EwRkJReXhqUVVGakxFVkJRVVVzUTBGQlF6dFpRVU51UWl4RFFVRkRMRU5CUVVNc1dVRkJXU3hEUVVOYUxFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkRaaXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEhWQ1FVRjFRaXhIUVVGSExFbEJRVWtzUTBGQlF5eGpRVUZqTEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRM0JGTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1UwRkROVUk3VVVGRFJDd3JRa0ZCSzBJN1VVRkZMMElzUzBGQlN5eEpRVUZKTEVsQlFVa3NSMEZCUnl4RFFVRkRMRVZCUVVVc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNTVUZCU1N4RlFVRkZMRVZCUVVVN1dVRkROME1zUzBGQlN5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RlFVRkZMRTFCUVUwc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlR0blFrRkRla1VzU1VGQlNTeFBRVUZQTEV0QlFVc3NSMEZCUnl4RlFVRkZPMjlDUVVOdVFpeE5RVUZOTEZWQlFWVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzI5Q1FVTnNSQ3hOUVVGTkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRPMjlDUVVWNFFpeE5RVUZOTEZOQlFWTXNSMEZCUnl4MVEwRkJkVU1zUTBGQlF6dHZRa0ZETVVRc01FUkJRVEJFTzI5Q1FVTXhSQ3hOUVVGTkxIRkNRVUZ4UWl4SFFVRkhMRWxCUVVrc1EwRkJRenR2UWtGRGJrTXNUVUZCVFN4eFFrRkJjVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTTdiMEpCUlc1RExFTkJRVU1zUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXp0dlFrRkRia0lzUTBGQlF5eERRVUZETEZkQlFWY3NSMEZCUnl4WFFVRlhMRU5CUVVNN2IwSkJRelZDTEVOQlFVTXNRMEZCUXl4VFFVRlRMRWRCUVVjc1EwRkJReXhEUVVGRE8yOUNRVU5vUWl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenR2UWtGRGVrTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1IwRkJSeXhOUVVGQkxFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXh0UTBGQlNTeEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dHZRa0ZETTBRc1EwRkJReXhEUVVGRExGTkJRVk1zUjBGQlJ5eE5RVUZOTEVOQlFVTTdiMEpCUTNKQ0xFTkJRVU1zUTBGQlF5eEpRVUZKTEVkQlFVY3NVMEZCVXl4RFFVRkRPMjlDUVVOdVFpd3JRMEZCSzBNN2IwSkJReTlETEUxQlFVMHNSMEZCUnl4SFFVRm5RaXhEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMjlDUVVWdVJDeDFRMEZCZFVNN2IwSkJRM1pETEhsR1FVRjVSanR2UWtGRmVrWXNRMEZCUXl4RFFVRkRMRmxCUVZrc1EwRkRXaXhEUVVGRExFTkJRVU1zUzBGQlN5eEhRVUZITEVkQlFVY3NRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMSEZDUVVGeFFpeEZRVU16UkN4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0dlFrRkRha0lzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1EwRkJRenRwUWtGRGJrUTdZVUZEUmp0VFFVTkdPMGxCUTBnc1EwRkJRenRKUVVWUExGRkJRVkU3VVVGRFpDeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTzFsQlF6VkNMRTlCUVU4N1VVRkZWQ3hOUVVGTkxFTkJRVU1zUjBGQlZ5eE5RVUZOTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU03VVVGRk1VTXNTVUZCU1N4TFFVRkxMRWRCUVZjc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNkVUpCUVhWQ0xFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEyNUZMRWxCUVVrc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUlhoR0xFbEJRVWtzU1VGQlNTeERRVUZETEU5QlFVOHNSVUZCUlR0WlFVTm9RaXhOUVVGTkxFMUJRVTBzUjBGQlZ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1IwRkJSeXhOUVVGTkxFTkJRVU03V1VGRGRrUXNUVUZCVFN4TlFVRk5MRWRCUVZjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFhRVUZYTEVkQlFVY3NTMEZCU3l4RFFVRkRPMWxCUTNKRUxFMUJRVTBzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNUVUZCVFN4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGNFUXNTMEZCU3l4SFFVRkhMRXRCUVVzc1IwRkJSeXhMUVVGTExFTkJRVU03V1VGRGRFSXNUVUZCVFN4SFFVRkhMRTFCUVUwc1IwRkJSeXhMUVVGTExFTkJRVU03V1VGRGVFSXNTVUZCU1N4RFFVRkRMR05CUVdNc1IwRkJSeXhKUVVGSkxFTkJRVU1zWVVGQllTeEhRVUZITEV0QlFVc3NRMEZCUXp0VFFVTnNSRHRSUVVWRUxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4SFFVRkhMRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRE9VSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEhRVUZITEVkQlFVY3NTMEZCU3l4SlFVRkpMRU5CUVVNN1VVRkZka01zYjBaQlFXOUdPMUZCUTNCR0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhSUVVGUkxFVkJRVVVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUTNKRUxFMUJRVTBzV1VGQldTeEhRVUZYTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRE8xRkJRM0JFTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExGbEJRVmtzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZEVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRkZCUVZFc1JVRkJSU3hIUVVGSExGbEJRVmtzU1VGQlNTeERRVUZETEVOQlFVTTdVVUZGTjBRc05rSkJRVFpDTzFGQlF6ZENMRWxCUVVrc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJUdFpRVU5xUWl4elEwRkJjME03V1VGRGRFTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUjBGQlJ5eEhRVUZITEV0QlFVc3NTVUZCU1N4RFFVRkRPMWxCUXpkRUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1IwRkJSeXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETzFsQlEzWkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4VlFVRlZMRVZCUVVVc1VVRkJVU3hGUVVGRkxGZEJRVmNzUTBGQlF5eERRVUZETzFOQlEyaEZPMkZCUVUwN1dVRkRUQ3c0UWtGQk9FSTdXVUZET1VJc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NSMEZCUnl4TlFVRk5MRU5CUVVNN1dVRkRka1FzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhIUVVGSExHZENRVUZuUWl4RFFVRkRPMWxCUXpkRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhWUVVGVkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdXVUZGT1VNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmxCUVZrc1JVRkJSU3hKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1EwRkJRenRaUVVWd1JTeHhRa0ZCY1VJN1dVRkRja0lzU1VGQlNTeGhRVUZoTEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTNSQ0xGRkJRVkVzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhGUVVGRk8yZENRVU5vUXl4TFFVRkxMRXRCUVVzN2IwSkJRMUlzWVVGQllTeEhRVUZITEVOQlFVTXNRMEZCUXp0dlFrRkRiRUlzVFVGQlRUdG5Ra0ZEVWl4TFFVRkxMRkZCUVZFN2IwSkJRMWdzWVVGQllTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUTI1RkxFMUJRVTA3WjBKQlExSXNTMEZCU3l4UlFVRlJPMjlDUVVOWUxHRkJRV0VzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJRenR2UWtGRE4wUXNUVUZCVFR0aFFVTlFPMWxCUTBRc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmxCUVZrc1JVRkJSU3hIUVVGSExHRkJRV0VzU1VGQlNTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRPMWxCUlRkRkxFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjc1RVRkJUU3hGUVVGRk8yZENRVU51UXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNVVUZCVVN4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVsQlFVa3NRMEZCUXl4RFFVRkRPMmRDUVVOeVJTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRVU1zV1VGQldTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMkZCUTJwRU8ybENRVUZOTzJkQ1FVTk1MRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4WlFVRlpMRVZCUVVVc1VVRkJVU3hGUVVGRkxGZEJRVmNzUTBGQlF5eERRVUZETzJGQlEyeEZPMU5CUTBZN1VVRkZSQ3hwUWtGQmFVSTdVVUZEYWtJc05rUkJRVFpFTzFGQlF6ZEVMRFpFUVVFMlJEdFJRVU0zUkN3MlJFRkJOa1E3VVVGRE4wUXNOa1JCUVRaRU8xRkJRemRFTEZkQlFWYzdVVUZEV0N3eVJFRkJNa1E3VVVGRE0wUXNLMFJCUVN0RU8wbEJRMnBGTEVOQlFVTTdTVUZGUkRzN096dFBRVWxITzBsQlEwa3NUVUZCVFN4RFFVRkRMR0ZCUVdFc1EwRkJReXhOUVVGcFFpeEZRVUZGTEZsQlFXOUNMRU5CUVVNN1VVRkRiRVVzU1VGQlNTeEhRVUZITEVkQlFYTkNMRWxCUVVrc1EwRkJRenRSUVVOc1F5eFJRVUZSTEUxQlFVMHNRMEZCUXl4UFFVRlBMRVZCUVVVN1dVRkRlRUlzUzBGQlN5eFZRVUZWTEVOQlFVTXNkMEpCUVhkQ08yZENRVU4wUXl4SFFVRkhMRWRCUVVjc2EwSkJRV3RDTEVOQlFVTXNWVUZCVlN4RFFVRkRPMmRDUVVOd1F5eE5RVUZOTzFsQlExSXNTMEZCU3l4WFFVRlhMRU5CUVVNc2QwSkJRWGRDTzJkQ1FVTjJReXhIUVVGSExFZEJRVWNzYlVKQlFXMUNMRU5CUVVNc1dVRkJXU3hEUVVGRE8yZENRVU4yUXl4TlFVRk5PMU5CUTFBN1VVRkRSQ3hOUVVGTkxFdEJRVXNzUjBGQlowSXNUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFVkJRVVVzVTBGQlV5eEZRVUZGTEU5QlFVOHNRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJRenRSUVVWNFJpeE5RVUZOTEd0Q1FVRnJRaXhIUVVGblF6dFpRVU4wUkN4RFFVRkRMRWxCUVVrc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzYlVKQlFXMUNMRU5CUVVNc1dVRkJXU3hEUVVGRE8xbEJRek5GTEVOQlFVTXNTVUZCU1N4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXl4VlFVRlZMRU5CUVVNN1UwRkRlRVVzUTBGQlF6dFJRVU5HTEdkRVFVRm5SRHRSUVVOb1JDeE5RVUZOTEhGQ1FVRnhRaXhIUVVGaExHdENRVUZyUWp0aFFVTjJSQ3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRMMFFzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNN1VVRkRiRVFzU1VGQlNTeE5RVUZOTEVkQlFVY3NTVUZCU1R0WlFVTm1MRWRCUVVjc1IwRkJSeXhyUWtGQmEwSXNRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6czdXVUZGYmtVc1IwRkJSeXhIUVVGSExHdENRVUZyUWl4RFFVRkRMRXRCUVVzc1EwRkJRenRSUVVWcVF5eFBRVUZQTEVkQlFVY3NRMEZCUXp0SlFVTmlMRU5CUVVNN1NVRkZUU3hsUVVGbE96dFJRVU53UWl4UFFVRlBMRTFCUVVFc1RVRkJRU3hKUVVGSkxFTkJRVU1zV1VGQldTd3dRMEZCUlN4bFFVRmxMRVZCUVVVc2JVTkJRVWtzUTBGQlF5eERRVUZETzBsQlEyNUVMRU5CUVVNN1NVRkZSRHM3T3pzN1QwRkxSenRKUVVOSUxFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCYVVJc1JVRkJSU3hUUVVGcFFpeEZRVUZGTEZGQlFYTkNPMUZCUXpGRkxFMUJRVTBzU1VGQlNTeEhRVUUwUWl4RlFVRkZMRU5CUVVNN1VVRkRla01zU1VGQlNTeFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUTNSQ0xFbEJRVWtzVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXp0UlFVVjJRaXhMUVVGTExFMUJRVTBzUjBGQlJ5eEpRVUZKTEUxQlFVMHNRMEZCUXl4VlFVRlZMRVZCUVVVN1dVRkRia01zVFVGQlRTeEpRVUZKTEVkQlFVY3NVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJSVE5DTEVsQlFVa3NWMEZCVnl4SlFVRkpMRWxCUVVrN1owSkJRM0pDTEZkQlFWY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8ybENRVU4yUWl4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFdEJRVXNzVjBGQlZ6dG5Ra0ZEYkVNc1ZVRkJWU3hIUVVGSExFdEJRVXNzUTBGQlF6dFpRVVZ5UWl4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzVTBGQlV5eEZRVUZGTzJkQ1FVTXpRaXhMUVVGTExFMUJRVTBzUTBGQlF5eEpRVUZKTEVsQlFVa3NSVUZCUlR0dlFrRkRjRUlzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJRenQzUWtGRFpDeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8yOUNRVU5rTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03YVVKQlEyUTdZVUZEUmp0VFFVTkdPMUZCUTBRc1QwRkJUeXhGUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNWVUZCVlN4RlFVRkZMRlZCUVZVc1JVRkJReXhEUVVGRE8wbEJRemxETEVOQlFVTTdTVUZGVFN4TlFVRk5MRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNTVUZCYTBJc1JVRkJSU3hSUVVGeFFpeEZRVUZGTEZsQlFXOUNMRWRCUVVjN1VVRkRjRWNzVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVZNc1EwRkJReXhIUVVGSExFbEJRVWtzUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUlVGQlJTeEhRVUZITEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRNMFVzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVWMlFpeE5RVUZOTEV0QlFVc3NSMEZCWVN4RlFVRkZMRU5CUVVNN1VVRkRNMElzVFVGQlRTeFRRVUZUTEVkQlFXRXNSVUZCUlN4RFFVRkRPMUZCUXk5Q0xFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NTVUZCU1N4RlFVRkZPMWxCUTNCQ0xFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU53UXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1UwRkRla003VVVGRFJDd3dSa0ZCTUVZN1VVRkRNVVlzVFVGQlRTeExRVUZMTEVkQlFWY3NTVUZCU1N4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGVFTXNUVUZCVFN4VFFVRlRMRWRCUVZjc1NVRkJTU3hOUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdVVUZEYUVRc1QwRkJUeXhuUWtGQlowSXNRMEZCUXl4TFFVRkxMRVZCUVVVc1UwRkJVeXhEUVVGRExFZEJRVWNzUTBGQlF5eFpRVUZaTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZET1VZc1EwRkJRenRKUVVWRUxDdEVRVUVyUkR0SlFVTXZSQ3g1UmtGQmVVWTdTVUZEZWtZc2NVTkJRWEZETzBsQlEzSkRMR2RGUVVGblJUdEpRVU5vUlN4TlFVRk5PMGxCUTA0c2IwVkJRVzlGTzBsQlEzQkZMR2RHUVVGblJqdEpRVU5vUml4MVFrRkJkVUk3U1VGRGRrSXNOa05CUVRaRE8wbEJRemRETEN0RVFVRXJSRHRKUVVNdlJDeHBSVUZCYVVVN1NVRkRha1VzY1VKQlFYRkNPMGxCUTNKQ0xHbENRVUZwUWp0SlFVTnFRaXhWUVVGVk8wbEJRMVlzVVVGQlVUdEpRVU5TTEUxQlFVMDdTVUZEVGl4blFrRkJaMEk3U1VGRGFFSXNTVUZCU1R0SlFVVkhMRTFCUVUwc1EwRkJReXhoUVVGaExFTkJRVU1zUlVGQlowSTdPMUZCUXpGRExFMUJRVTBzWTBGQll5eEhRVUZITEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNN1VVRkRla1VzU1VGQlNTeE5RVUZOTEVkQlFYRkNMRTFCUVVFc1kwRkJZeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RlFVRkZPMWxCUTNwRUxFMUJRVTBzUzBGQlN5eEhRVUZITEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTjRReXhQUVVGUExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRE8xRkJRM0pFTEVOQlFVTXNRMEZCUXl4dFEwRkJTU3hKUVVGSkxFTkJRVU03VVVGRFdDeEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMR05CUVdNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF6dFpRVU4wUXl4TlFVRk5MRWRCUVVjc1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6ZENMRTlCUVU4c1RVRkJUU3hEUVVGRE8wbEJRMmhDTEVOQlFVTTdTVUZKUkRzN08wOUJSMGM3U1VGRFNTeE5RVUZOTEVOQlFVTXNaVUZCWlN4RFFVRkRMRWRCUVZFN1VVRkRjRU1zVFVGQlRTeEhRVUZITEVkQlFXRXNSVUZCUlN4RFFVRnRRaXhIUVVGSExFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dGhRVU51Uml4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGdlFpeEZRVUZGTEVWQlFVVTdXVUZETlVJc1NVRkJTU3hKUVVGWkxFTkJRVU03V1VGRGFrSXNUVUZCVFN4RFFVRkRMRWRCUVZjc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzaENMRWxCUVVrc1EwRkJReXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVWQlFVVTdaMEpCUTJoQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEU5QlFVOHNRMEZCUXl4VlFVRlZMRVZCUVVVN2IwSkJRek5DTEVsQlFVa3NSMEZCUnl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJsQ1FVTTVRanR4UWtGQlRUdHZRa0ZEVEN4SlFVRkpMRWRCUVVjc1JVRkJSU3hEUVVGRE8yOUNRVU5XTEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNORUpCUVRSQ0xFTkJRVU1zUTBGQlF6dHBRa0ZETDBRN1lVRkRSanRwUWtGQlRUdG5Ra0ZEVEN4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRE8yRkJRMVk3V1VGRFJDeFBRVUZQTEVsQlFVa3NRMEZCUXp0UlFVTmtMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETzFGQlJXWXNUMEZCVHl4SFFVRkhMRU5CUVVNN1NVRkRZaXhEUVVGRE8wbEJTMFE3T3pzN1QwRkpSenRKUVVOSkxFMUJRVTBzUTBGQlF5eGpRVUZqTEVOQlFVTXNSMEZCVVR0UlFVTnVReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkROMElzVFVGQlRTeEZRVUZGTEVkQlFUSkNMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM1pGTEUxQlFVMHNTMEZCU3l4SFFVRnJRaXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETzFGQlJTOURMRTFCUVUwc1lVRkJZU3hIUVVGSExFTkJRVU1zUlVGQlZTeEZRVUZWTEVWQlFVVTdXVUZETTBNc1QwRkJUeXhEUVVGRExGTkJRVk1zUTBGQlF5eFRRVUZUTEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTJoRExFMUJRVTBzU1VGQlNTeEhRVUZITEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzFsQlEzaERMRWxCUVVrc1NVRkJTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXp0blFrRkRNVUlzVDBGQlR5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN08yZENRVVZtTEU5QlFVOHNSVUZCUlN4RFFVRkRPMUZCUTJRc1EwRkJReXhEUVVGRE8xRkJSVVlzVFVGQlRTeE5RVUZOTEVkQlFXRXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU03VVVGRGRrUXNUVUZCVFN4VFFVRlRMRWRCUVdFc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXp0UlFVTjBSQ3hQUVVGUExGTkJRVk1zUTBGQlF6dEpRVU51UWl4RFFVRkRPMGxCUlVRN096czdUMEZKUnp0SlFVTkpMRTFCUVUwc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4VFFVRnBRaXhGUVVGRkxGRkJRVFJDTEZOQlFWTTdVVUZETjBZc1QwRkJUeXhEUVVGRExFZEJRVmNzUlVGQlJTeEZRVUZGTzFsQlEzSkNMRTlCUVU4c1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eFRRVUZUTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRja01zUTBGQlF5eERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVkVPenM3T3p0UFFVdEhPMGxCUTBrc1RVRkJUU3hEUVVGRExGZEJRVmNzUTBGQlF5eExRVUZoTEVWQlFVVXNVMEZCYVVJc1JVRkJSU3hSUVVFMFFpeFRRVUZUTzFGQlF5OUdMRWxCUVVrc1MwRkJTeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEZWQlFWVXNPRUpCUVdkQ08xbEJRMmhFTEU5QlFVOHNUMEZCVHl4RFFVRkRMR1ZCUVdVc1EwRkJRenRoUVVNMVFpeEpRVUZKTEV0QlFVc3NRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhWUVVGVkxITkRRVUZ2UWp0WlFVTjZSQ3hQUVVGUExFOUJRVThzUTBGQlF5eDNRa0ZCZDBJc1EwRkJReXhUUVVGVExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdZVUZEZGtRc1NVRkJTU3hMUVVGTExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNWVUZCVlN3MFFrRkJaVHRaUVVOd1JDeFBRVUZQTEU5QlFVOHNRMEZCUXl4alFVRmpMRU5CUVVNN08xbEJSVGxDTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc2IwSkJRVzlDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkZha1FzTUVKQlFUQkNPMGxCUXpWQ0xFTkJRVU03U1VGRlRTeE5RVUZOTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zUjBGQll6dFJRVU12UXl4SlFVRkpMRWRCUVVjc1EwRkJReXhQUVVGUExFdEJRVXNzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4aFFVRmhPMWxCUXpGRExFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNOa0pCUVRaQ0xFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVWc1JpeE5RVUZOTEV0QlFVc3NSMEZCUnl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRlRU1zVFVGQlRTeFRRVUZUTEVkQlFVY3NSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMUZCUXpGRUxFOUJRVThzVDBGQlR5eERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRkxMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU03U1VGREwwTXNRMEZCUXp0SlFWbEVPMDlCUTBjN1NVRkRTU3hOUVVGTkxFTkJRVU1zWVVGQllTeERRVUZETEVkQlFWRTdVVUZEYkVNc1RVRkJUU3hOUVVGTkxFZEJRVmNzUjBGQlJ5eERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRPMUZCUTNSRExFbEJRVWtzVFVGQlRTeERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRVZCUVVVN1dVRkRkRUlzVDBGQlR5eE5RVUZOTEVOQlFVTTdVMEZEWmp0aFFVRk5PMWxCUTB3c1RVRkJUU3hMUVVGTExFZEJRV0VzUlVGQlJTeERRVUZ0UWl4SFFVRkhMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eERRVUZETzJsQ1FVTTNSaXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZ2UWl4RlFVRkZMRVZCUVVVN1owSkJRelZDTEUxQlFVMHNTVUZCU1N4SFFVRlhMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZETTBJc1QwRkJUeXhKUVVGSkxFTkJRVU03V1VGRFpDeERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRaUVVWbUxFbEJRVWtzUzBGQlN5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRVZCUVVVN1owSkJRM0pDTEU5QlFVOHNSMEZCUnl4RFFVRkRPMkZCUTFvN2FVSkJRVTA3WjBKQlEwd3NUVUZCVFN4TFFVRkxMRWRCUVZjc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTXZRaXhOUVVGTkxFMUJRVTBzUjBGQlZ5eExRVUZMTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRE8yZENRVU53Uml4UFFVRlBMRTFCUVUwc1EwRkJRenRoUVVObU8xTkJRMFk3U1VGRFNDeERRVUZETzBsQlJVMHNUVUZCVFN4RFFVRkRMR05CUVdNc1EwRkJReXhMUVVGaExFVkJRVVVzYTBKQlFUQkNPMUZCUTNCRkxFOUJRVThzUzBGQlN5eERRVUZETEUxQlFVMHNTVUZCU1N4clFrRkJhMElzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNSVUZCUlN4clFrRkJhMElzUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXp0SlFVTnVSeXhEUVVGRE96dEJRV2d6UW1Fc2JVSkJRVmNzUjBGQlJ5eGhRVUZoTEVOQlFVTTdRVUZETTBJc2JVSkJRVmNzUjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFTdDFRbnBDTEdsQ1FVRlRMRWRCUVVjc2NVSkJRWEZDTEVOQlFVTTdRVUV5UW14RExHTkJRVTBzUjBGQlJ5eHBRMEZCYVVNc1EwRkJRenRCUVVNelF5eHBRa0ZCVXl4SFFVRkhMR2RDUVVGblFpeERRVUZETzBGQmFVVTFReXc0UmtGQk9FWTdRVUZETDBVc2EwSkJRVlVzUjBGQkswSTdTVUZEZEVRc1UwRkJVeXhGUVVGRkxFZEJRVWM3U1VGRFpDeFBRVUZQTEVWQlFVVXNSMEZCUnp0SlFVTmFMRTlCUVU4c1JVRkJSU3hIUVVGSE8wbEJRMW9zVDBGQlR5eEZRVUZGTEVkQlFVYzdRMEZEWWl4RFFVRkRPMEZCUldFc2VVSkJRV2xDTEVkQlFVY3NVVUZCVVN4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJQ29nWVhNZ1ozSnZheUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2WjNKdmF5YzdYRzVwYlhCdmNuUWdLaUJoY3lCMWFTQm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZkV2tuTzF4dWFXMXdiM0owSUNvZ1lYTWdSRWNnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDJSbkp6dGNibHh1YVcxd2IzSjBJSGQxSUdaeWIyMGdKM2QxSnp0Y2JtbHRjRzl5ZENBcUlHRnpJSEo0YW5NZ1puSnZiU0FuY25ocWN5YzdYRzVjYm1sdGNHOXlkQ0I3Vm1WamRHOXlmU0JtY205dElDZEFaR0YwWVdkeWIyc3RiR2xpY21GeWFXVnpMM1YwYVd4ekwzTnlZeTkwZVhCbExXUmxZMnhoY21GMGFXOXVjeWM3WEc1cGJYQnZjblFnZTNabFkzUnZja3hsYm1kMGFDd2dkbVZqZEc5eVJHOTBVSEp2WkhWamRIMGdabkp2YlNBblFHUmhkR0ZuY205ckxXeHBZbkpoY21sbGN5OTFkR2xzY3k5emNtTXZkbVZqZEc5eUxXOXdaWEpoZEdsdmJuTW5PMXh1YVcxd2IzSjBJSHRCYldsdWIyRmphV1J6TENCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhOOUlHWnliMjBnSnk0dUwyRnRhVzV2WVdOcFpITW5PMXh1YVcxd2IzSjBJSHRPZFdOc1pXOTBhV1JsY3l3Z1RuVmpiR1Z2ZEdsa1pYTlFZV3hsZEhSbGMzMGdabkp2YlNBbkxpNHZiblZqYkdWdmRHbGtaWE1uTzF4dWFXMXdiM0owSUh0VmJtdHViM2R1VTJWeFVHRnNaWFIwWlhOOUlHWnliMjBnSnk0dUwzVnVhMjV2ZDI0bk8xeHVhVzF3YjNKMElIdFRaWEZRWVd4bGRIUmxmU0JtY205dElDY3VMaTl6WlhFdGNHRnNaWFIwWlhNbk8xeHVhVzF3YjNKMElIdFRkV0p6WTNKcGNIUnBiMjU5SUdaeWIyMGdKM0o0YW5Nbk8xeHVhVzF3YjNKMElIdE9UMVJCVkVsUFRpd2dWVzVwZEhOSVlXNWtiR1Z5ZlNCbWNtOXRJQ2N1TGk5MWRHbHNjeTkxYm1sMGN5MW9ZVzVrYkdWeUp6dGNibHh1WkdWamJHRnlaU0J0YjJSMWJHVWdKMlJoZEdGbmNtOXJMV0Z3YVM5emNtTXZaM0pwWkNjZ2UxeHVJQ0JwYm5SbGNtWmhZMlVnVW1WamRDQjdYRzRnSUNBZ1kyOXVkR0ZwYm5Nb2VEb2diblZ0WW1WeUxDQjVPaUJ1ZFcxaVpYSXBPaUJpYjI5c1pXRnVPMXh1SUNCOVhHNTlYRzVjYm1WdWRXMGdVRzl6YVhScGIyNUlaV2xuYUhRZ2UxeHVJQ0JGYm5SeWIzQjVJRDBnSjBWdWRISnZjSGtuTEZ4dUlDQm1kV3hzSUQwZ0p6RXdNQ1VuTEZ4dWZWeHVYRzVrWldOc1lYSmxJR2RzYjJKaGJDQjdYRzRnSUdsdWRHVnlabUZqWlNCSVZFMU1RMkZ1ZG1GelJXeGxiV1Z1ZENCN1hHNGdJQ0FnWjJWMFEzVnljMjl5VUc5emFYUnBiMjRvWlhabGJuUTZJRTF2ZFhObFJYWmxiblFzSUhJNklHNTFiV0psY2lrNklFUkhMbEJ2YVc1ME8xeHVJQ0I5WEc1OVhHNWNibVY0Y0c5eWRDQjBlWEJsSUUxdmJtOXRaWEpHY21WeGN5QTlJSHNnVzIwNklITjBjbWx1WjEwNklHNTFiV0psY2lCOU8xeHVaWGh3YjNKMElIUjVjR1VnVTJWeFEyOXNVM1JoZEhNZ1BTQjdJR1p5WlhFNklFMXZibTl0WlhKR2NtVnhjeXdnYzJGdFpVeGxibWQwYURvZ1ltOXZiR1ZoYmlCOVhHNWxlSEJ2Y25RZ2RIbHdaU0JUY0d4cGRIUmxja1oxYm1NZ1BTQW9jMlZ4T2lCemRISnBibWNwSUQwK0lITjBjbWx1WjF0ZE8xeHVYRzR2S2lwQWNHRnlZVzBnZTAxdmRYTmxSWFpsYm5SOUlHVjJaVzUwWEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ2NpQmtaWFpwWTJWUWFYaGxiRkpoZEdsdmJseHVJQ29nUUhKbGRIVnliaUI3UkVjdVVHOXBiblI5SUdOaGJuWmhjeUJ5Wld4aGRHVmtJR04xY25OdmNpQndiM05wZEdsdmJseHVJQ292WEc1SVZFMU1RMkZ1ZG1GelJXeGxiV1Z1ZEM1d2NtOTBiM1I1Y0dVdVoyVjBRM1Z5YzI5eVVHOXphWFJwYjI0Z1BTQm1kVzVqZEdsdmJpaGxkbVZ1ZERvZ1RXOTFjMlZGZG1WdWRDd2djam9nYm5WdFltVnlLVG9nUkVjdVVHOXBiblFnZTF4dUlDQmpiMjV6ZENCeVpXTjBJRDBnZEdocGN5NW5aWFJDYjNWdVpHbHVaME5zYVdWdWRGSmxZM1FvS1R0Y2JpQWdjbVYwZFhKdUlHNWxkeUJFUnk1UWIybHVkQ2dvWlhabGJuUXVZMnhwWlc1MFdDQXRJSEpsWTNRdWJHVm1kQ2tnS2lCeUxDQW9aWFpsYm5RdVkyeHBaVzUwV1NBdElISmxZM1F1ZEc5d0tTQXFJSElwTzF4dWZUdGNibHh1UkVjdVVtVmpkQzV3Y205MGIzUjVjR1V1WTI5dWRHRnBibk1nUFNCbWRXNWpkR2x2YmloNE9pQnVkVzFpWlhJc0lIazZJRzUxYldKbGNpazZJR0p2YjJ4bFlXNGdlMXh1SUNCeVpYUjFjbTRnZEdocGN5NXNaV1owSUR3OUlIZ2dKaVlnZUNBOFBTQjBhR2x6TG5KcFoyaDBJQ1ltSUhSb2FYTXVkRzl3SUR3OUlIa2dKaVlnZVNBOFBTQjBhR2x6TG1KdmRIUnZiVHRjYm4wN1hHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCUWIzTnBkR2x2YmsxdmJtOXRaWEpKYm1adklIdGNiaUFnTHlvcUlGTmxjWFZsYm1ObGN5QmpiM1Z1ZENCM2FYUm9JRzF2Ym05dFpYSWdhVzRnY0c5emFYUnBiMjVjYmlBZ0lDb3ZYRzRnSUdOdmRXNTBPaUJ1ZFcxaVpYSTdYRzVjYmlBZ0x5b3FJRkpsYldWdFltVnlJSE5qY21WbGJpQmpiMjl5WkhNZ2NtVmpkRnh1SUNBZ0tpOWNiaUFnWW05MWJtUnpPaUJFUnk1U1pXTjBPMXh1WEc0Z0lHTnZibk4wY25WamRHOXlLR052ZFc1ME9pQnVkVzFpWlhJZ1BTQXdMQ0JpYjNWdVpITTZJRVJITGxKbFkzUWdQU0J1WlhjZ1JFY3VVbVZqZENnd0xDQXdMQ0F3TENBd0tTa2dlMXh1SUNBZ0lIUm9hWE11WTI5MWJuUWdQU0JqYjNWdWREdGNiaUFnSUNCMGFHbHpMbUp2ZFc1a2N5QTlJR0p2ZFc1a2N6dGNiaUFnZlZ4dWZWeHVYRzVsZUhCdmNuUWdZMnhoYzNNZ1VHOXphWFJwYjI1SmJtWnZJSHRjYmlBZ2NIVmliR2xqSUhKbFlXUnZibXg1SUc1aGJXVTZJSE4wY21sdVp6dGNiaUFnWm5KbGNUb2dleUJiYlRvZ2MzUnlhVzVuWFRvZ1VHOXphWFJwYjI1TmIyNXZiV1Z5U1c1bWJ5QjlPMXh1SUNCeWIzZERiM1Z1ZERvZ2JuVnRZbVZ5TzF4dUlDQnpkVzFHYjNKSVpXbG5hSFJEWVd4ak9pQnVkVzFpWlhJN1hHNWNiaUFnTHlvcUlHWnlaWEVnUFNCN2ZTd2djbTkzUTI5MWJuUWdQU0F3WEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnVZVzFsSUU1aGJXVWdiMllnY0c5emFYUnBiMjRnS0NjeE1URkJKeXdnSnpFeE1TNHhKeXdnWlhSaktWeHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnYzNWdFJtOXlTR1ZwWjJoMFEyRnNZeUJUZFcwZ2IyWWdZV3hzSUcxdmJtOXRaWElnWTI5MWJuUnpJR1p2Y2lCb1pXbG5hSFFnWTJGc1kzVnNZWFJwYjI1Y2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJSEp2ZDBOdmRXNTBJRU52ZFc1MElHOW1JR1ZzWlcxbGJuUnpJR2x1SUdOdmJIVnRibHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjF0ZGZTQm1jbVZ4SUdaeVpYRjFaVzVqZVNCdlppQnRiMjV2YldWeWN5QnBiaUJ3YjNOcGRHbHZibHh1SUNBZ0tpOWNiaUFnWTI5dWMzUnlkV04wYjNJb2JtRnRaVG9nYzNSeWFXNW5MQ0JtY21WeE9pQjdJRnR0T2lCemRISnBibWRkT2lCUWIzTnBkR2x2YmsxdmJtOXRaWEpKYm1adklIMGdQU0I3ZlN3Z2NtOTNRMjkxYm5RNklHNTFiV0psY2lBOUlEQXNJSE4xYlVadmNraGxhV2RvZEVOaGJHTTZJRzUxYldKbGNpQTlJREFwSUh0Y2JpQWdJQ0IwYUdsekxtNWhiV1VnUFNCdVlXMWxPMXh1SUNBZ0lIUm9hWE11Wm5KbGNTQTlJR1p5WlhFN1hHNGdJQ0FnZEdocGN5NXliM2REYjNWdWRDQTlJSEp2ZDBOdmRXNTBPMXh1SUNBZ0lIUm9hWE11YzNWdFJtOXlTR1ZwWjJoMFEyRnNZeUE5SUhOMWJVWnZja2hsYVdkb2RFTmhiR003WEc0Z0lIMWNibjFjYmx4dVpYaHdiM0owSUdOc1lYTnpJRmRsWWt4dloyOGdaWGgwWlc1a2N5QkVSeTVLYzFacFpYZGxjaUI3WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nY21WemFXUjFaWE5UWlhRZ1BTQW5iblZqYkdWdmRHbGtaWE1uTzF4dUlDQndjbWwyWVhSbElITjBZWFJwWXlCMmFXVjNaWEpEYjNWdWREb2diblZ0WW1WeUlEMGdMVEU3WEc1Y2JpQWdjSEpwZG1GMFpTQjJhV1YzWlhKSlpEb2diblZ0WW1WeUlEMGdMVEU3WEc0Z0lIQnlhWFpoZEdVZ2RXNXBkSE5JWVc1a2JHVnlPaUJWYm1sMGMwaGhibVJzWlhJZ2ZDQnVkV3hzTzF4dUlDQndjbWwyWVhSbElHbHVhWFJwWVd4cGVtVmtPaUJpYjI5c1pXRnVJRDBnWm1Gc2MyVTdYRzVjYmlBZ0x5OGdjSEpwZG1GMFpTQnlaV0ZrYjI1c2VTQmpiMnh2Y2xOamFHVnRaVG9nUTI5c2IzSlRZMmhsYldVZ1BTQkRiMnh2Y2xOamFHVnRaWE5iVG5WamJHVnZkR2xrWlhOWFpXSk1iMmR2TG5KbGMybGtkV1Z6VTJWMFhUdGNiaUFnY0hKdmRHVmpkR1ZrSUdOd09pQlRaWEZRWVd4bGRIUmxJSHdnYm5Wc2JDQTlJRzUxYkd3N1hHNWNiaUFnY0hKcGRtRjBaU0JvYjNOMFB6b2dTRlJOVEVScGRrVnNaVzFsYm5RN1hHNGdJSEJ5YVhaaGRHVWdiWE5uU0c5emREODZJRWhVVFV4RmJHVnRaVzUwTzF4dUlDQndjbWwyWVhSbElHTmhiblpoY3o4NklFaFVUVXhEWVc1MllYTkZiR1Z0Wlc1ME8xeHVJQ0J3Y21sMllYUmxJSE5zYVdSbGNqODZJRVJITGxKaGJtZGxVMnhwWkdWeU8xeHVJQ0J3Y21sMllYUmxJSFJsZUhSQ1lYTmxiR2x1WlRvZ1EyRnVkbUZ6VkdWNGRFSmhjMlZzYVc1bE8xeHVYRzRnSUhCeWFYWmhkR1VnWVhocGMwaGxhV2RvZERvZ2JuVnRZbVZ5SUQwZ01USTdYRzVjYmlBZ2NISnBkbUYwWlNCelpYRkRiMnc2SUVSSExrTnZiSFZ0Ymp4emRISnBibWMrSUh3Z2JuVnNiQ0E5SUc1MWJHdzdYRzRnSUhCeWFYWmhkR1VnYzNCc2FYUjBaWEk2SUZOd2JHbDBkR1Z5Um5WdVl5QjhJRzUxYkd3Z1BTQnVkV3hzTzF4dUlDQXZMeUJ3Y21sMllYUmxJRzFoZUV4bGJtZDBhRG9nYm5WdFltVnlJRDBnTVRBd08xeHVJQ0J3Y21sMllYUmxJSEJ2YzJsMGFXOXVjem9nVUc5emFYUnBiMjVKYm1adlcxMGdQU0JiWFR0Y2JseHVJQ0J3Y21sMllYUmxJSEp2ZDNOTllYTnJaV1E2SUc1MWJXSmxjaUE5SURBN1hHNGdJSEJ5YVhaaGRHVWdjbTkzYzA1MWJHdzZJRzUxYldKbGNpQTlJREE3WEc1Y2JpQWdMeThnVm1sbGQyVnlKM01nY0hKdmNHVnlkR2xsY3lBb2JHbHJaV3g1SUhSb1pYa2djMmh2ZFd4a0lHSmxJSEIxWW14cFl5QnpieUIwYUdGMElIUm9aWGtnWTJGdUlHSmxJSE5sZENCdmRYUnphV1JsS1Z4dUlDQndjbWwyWVhSbElGOXdiM05wZEdsdmJsZHBaSFJvT2lCdWRXMWlaWEk3WEc0Z0lIQjFZbXhwWXlCd2IzTnBkR2x2YmxkcFpIUm9PaUJ1ZFcxaVpYSTdYRzRnSUhCMVlteHBZeUJ0YVc1SVpXbG5hSFE2SUc1MWJXSmxjanRjYmlBZ2NIVmliR2xqSUcxaGVFaGxhV2RvZERvZ2JuVnRZbVZ5TzF4dUlDQndkV0pzYVdNZ1kyOXVjMmxrWlhKT2RXeHNVMlZ4ZFdWdVkyVnpPaUJpYjI5c1pXRnVPMXh1SUNCd2RXSnNhV01nYzJWeGRXVnVZMlZEYjJ4MWJXNU9ZVzFsT2lCemRISnBibWNnZkNCdWRXeHNPMXh1SUNCd2RXSnNhV01nY0c5emFYUnBiMjVOWVhKbmFXNVRkR0YwWlRvZ2MzUnlhVzVuTzF4dUlDQndkV0pzYVdNZ2NHOXphWFJwYjI1TllYSm5hVzQ2SUc1MWJXSmxjaUE5SURBN1hHNGdJSEIxWW14cFl5QnpkR0Z5ZEZCdmMybDBhVzl1VG1GdFpUb2djM1J5YVc1bklId2diblZzYkR0Y2JpQWdjSFZpYkdsaklHVnVaRkJ2YzJsMGFXOXVUbUZ0WlRvZ2MzUnlhVzVuSUh3Z2JuVnNiRHRjYmlBZ2NIVmliR2xqSUdacGVGZHBaSFJvT2lCaWIyOXNaV0Z1TzF4dUlDQndkV0pzYVdNZ2RtVnlkR2xqWVd4QmJHbG5ibTFsYm5RNklITjBjbWx1WnlCOElHNTFiR3c3WEc0Z0lIQjFZbXhwWXlCb2IzSnBlbTl1ZEdGc1FXeHBaMjV0Wlc1ME9pQnpkSEpwYm1jZ2ZDQnVkV3hzTzF4dUlDQndkV0pzYVdNZ1ptbDBRWEpsWVRvZ1ltOXZiR1ZoYmp0Y2JpQWdjSFZpYkdsaklITm9jbWx1YTBWdGNIUjVWR0ZwYkRvZ1ltOXZiR1ZoYmp0Y2JpQWdjSFZpYkdsaklITnJhWEJGYlhCMGVWQnZjMmwwYVc5dWN6b2dZbTl2YkdWaGJqdGNiaUFnY0hWaWJHbGpJSEJ2YzJsMGFXOXVTR1ZwWjJoME9pQnpkSEpwYm1jN1hHNWNiaUFnY0hKcGRtRjBaU0J3YjNOcGRHbHZiazVoYldWek9pQnpkSEpwYm1kYlhTQTlJRnRkTzF4dVhHNGdJSEJ5YVhaaGRHVWdjM1JoY25SUWIzTnBkR2x2YmpvZ2JuVnRZbVZ5SUQwZ0xURTdYRzVjYmlBZ2NISnBkbUYwWlNCbGJtUlFiM05wZEdsdmJqb2diblZ0WW1WeUlEMGdMVEU3WEc1Y2JpQWdMeW9xSUVadmNpQnpkR0Z5ZEZCdmMybDBhVzl1SUdWeGRXRnNjeUIwYnlCbGJtUlFiM05wZEdsdmJpQk1aVzVuZEdnZ2FYTWdNU0FxTDF4dUlDQndjbWwyWVhSbElHZGxkQ0JNWlc1bmRHZ29LVG9nYm5WdFltVnlJSHRjYmlBZ0lDQnBaaUFvZEdocGN5NXphMmx3Ulcxd2RIbFFiM05wZEdsdmJuTXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG5CdmMybDBhVzl1Y3k1c1pXNW5kR2c3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbk4wWVhKMFVHOXphWFJwYjI0Z1BEMGdkR2hwY3k1bGJtUlFiM05wZEdsdmJpQS9JSFJvYVhNdVpXNWtVRzl6YVhScGIyNGdMU0IwYUdsekxuTjBZWEowVUc5emFYUnBiMjRnS3lBeElEb2dNRHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWjJWMElIQnZjMmwwYVc5dVYybGtkR2hYYVhSb1RXRnlaMmx1S0NrZ2UxeHVJQ0FnSUdsbUlDZ29kR2hwY3k1d2IzTnBkR2x2YmsxaGNtZHBibE4wWVhSbElEMDlQU0FuWVhWMGJ5Y3BJQ1ltSUNoMGFHbHpMblZ1YVhSelNHRnVaR3hsY2o4dVoyVjBRV3h3YUdGaVpYUkpjMDExYkhScFkyaGhjaWdwSUQwOVBTQjBjblZsS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYM0J2YzJsMGFXOXVWMmxrZEdnZ0t5QjBhR2x6TG5CdmMybDBhVzl1VFdGeVoybHVPMXh1SUNBZ0lIMWNiaUFnSUNCcFppQW9kR2hwY3k1d2IzTnBkR2x2YmsxaGNtZHBibE4wWVhSbElEMDlQU0FuWlc1aFlteGxKeWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVgzQnZjMmwwYVc5dVYybGtkR2dnS3lCMGFHbHpMbkJ2YzJsMGFXOXVUV0Z5WjJsdU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUIwYUdsekxsOXdiM05wZEdsdmJsZHBaSFJvTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCMmFXVjNVM1ZpY3pvZ1UzVmljMk55YVhCMGFXOXVXMTBnUFNCYlhUdGNibHh1SUNCamIyNXpkSEoxWTNSdmNpZ3BJSHRjYmlBZ0lDQnpkWEJsY2lncE8xeHVYRzRnSUNBZ2RHaHBjeTUyYVdWM1pYSkpaQ0E5SUZkbFlreHZaMjh1ZG1sbGQyVnlRMjkxYm5RN1hHNGdJQ0FnVjJWaVRHOW5ieTUyYVdWM1pYSkRiM1Z1ZENBclBTQXhPMXh1WEc0Z0lDQWdkR2hwY3k1MFpYaDBRbUZ6Wld4cGJtVWdQU0FuZEc5d0p6dGNiaUFnSUNCMGFHbHpMblZ1YVhSelNHRnVaR3hsY2lBOUlHNTFiR3c3WEc1Y2JpQWdJQ0IwYUdsekxsOXdiM05wZEdsdmJsZHBaSFJvSUQwZ2RHaHBjeTV3YjNOcGRHbHZibGRwWkhSb0lEMGdkR2hwY3k1bWJHOWhkQ2duY0c5emFYUnBiMjVYYVdSMGFDY3NJREUyTHlvc1hHNGdJQ0FnSUNCN1pXUnBkRzl5T2lBbmMyeHBaR1Z5Snl3Z2JXbHVPaUEwTENCdFlYZzZJRFkwTENCd2IzTjBabWw0T2lBbmNIZ25mU292S1R0Y2JpQWdJQ0IwYUdsekxtMXBia2hsYVdkb2RDQTlJSFJvYVhNdVpteHZZWFFvSjIxcGJraGxhV2RvZENjc0lEVXdMeW9zWEc0Z0lDQWdJQ0I3WldScGRHOXlPaUFuYzJ4cFpHVnlKeXdnYldsdU9pQXlOU3dnYldGNE9pQXlOVEFzSUhCdmMzUm1hWGc2SUNkd2VDZDlLaThwTzF4dUlDQWdJSFJvYVhNdWJXRjRTR1ZwWjJoMElEMGdkR2hwY3k1bWJHOWhkQ2duYldGNFNHVnBaMmgwSnl3Z01UQXdMeW9zWEc0Z0lDQWdJQ0I3WldScGRHOXlPaUFuYzJ4cFpHVnlKeXdnYldsdU9pQXlOU3dnYldGNE9pQTFNREFzSUhCdmMzUm1hWGc2SUNkd2VDZDlLaThwTzF4dVhHNGdJQ0FnZEdocGN5NWpiMjV6YVdSbGNrNTFiR3hUWlhGMVpXNWpaWE1nUFNCMGFHbHpMbUp2YjJ3b0oyTnZibk5wWkdWeVRuVnNiRk5sY1hWbGJtTmxjeWNzSUdaaGJITmxLVHRjYmlBZ0lDQjBhR2x6TG5ObGNYVmxibU5sUTI5c2RXMXVUbUZ0WlNBOUlIUm9hWE11YzNSeWFXNW5LQ2R6WlhGMVpXNWpaVU52YkhWdGJrNWhiV1VuTENCdWRXeHNLVHRjYmx4dUlDQWdJSFJvYVhNdWMzUmhjblJRYjNOcGRHbHZiazVoYldVZ1BTQjBhR2x6TG5OMGNtbHVaeWduYzNSaGNuUlFiM05wZEdsdmJrNWhiV1VuTENCdWRXeHNLVHRjYmlBZ0lDQjBhR2x6TG1WdVpGQnZjMmwwYVc5dVRtRnRaU0E5SUhSb2FYTXVjM1J5YVc1bktDZGxibVJRYjNOcGRHbHZiazVoYldVbkxDQnVkV3hzS1R0Y2JseHVJQ0FnSUhSb2FYTXVabWw0VjJsa2RHZ2dQU0IwYUdsekxtSnZiMndvSjJacGVGZHBaSFJvSnl3Z1ptRnNjMlVwTzF4dVhHNGdJQ0FnZEdocGN5NTJaWEowYVdOaGJFRnNhV2R1YldWdWRDQTlJSFJvYVhNdWMzUnlhVzVuS0NkMlpYSjBhV05oYkVGc2FXZHViV1Z1ZENjc0lDZHRhV1JrYkdVbkxGeHVJQ0FnSUNBZ2UyTm9iMmxqWlhNNklGc25kRzl3Snl3Z0oyMXBaR1JzWlNjc0lDZGliM1IwYjIwblhYMHBPMXh1SUNBZ0lIUm9hWE11YUc5eWFYcHZiblJoYkVGc2FXZHViV1Z1ZENBOUlIUm9hWE11YzNSeWFXNW5LQ2RvYjNKcGVtOXVkR0ZzUVd4cFoyNXRaVzUwSnl3Z0oyTmxiblJsY2ljc1hHNGdJQ0FnSUNCN1kyaHZhV05sY3pvZ1d5ZHNaV1owSnl3Z0oyTmxiblJsY2ljc0lDZHlhV2RvZENkZGZTazdYRzRnSUNBZ2RHaHBjeTVtYVhSQmNtVmhJRDBnZEdocGN5NWliMjlzS0NkbWFYUkJjbVZoSnl3Z2RISjFaU2s3WEc0Z0lDQWdkR2hwY3k1emFISnBibXRGYlhCMGVWUmhhV3dnUFNCMGFHbHpMbUp2YjJ3b0ozTm9jbWx1YTBWdGNIUjVWR0ZwYkNjc0lIUnlkV1VwTzF4dUlDQWdJSFJvYVhNdWMydHBjRVZ0Y0hSNVVHOXphWFJwYjI1eklEMGdkR2hwY3k1aWIyOXNLQ2R6YTJsd1JXMXdkSGxRYjNOcGRHbHZibk1uTENCbVlXeHpaU2s3WEc0Z0lDQWdkR2hwY3k1d2IzTnBkR2x2YmsxaGNtZHBibE4wWVhSbElEMGdkR2hwY3k1emRISnBibWNvSjNCdmMybDBhVzl1VFdGeVoybHVVM1JoZEdVbkxDQW5ZWFYwYnljc1hHNGdJQ0FnSUNCN1kyaHZhV05sY3pvZ1d5ZGhkWFJ2Snl3Z0oyVnVZV0pzWlNjc0lDZHZabVluWFgwcE8xeHVJQ0FnSUd4bGRDQmtaV1poZFd4MFZtRnNkV1ZHYjNKUWIzTnBkR2x2YmsxaGNtZHBiaUE5SURBN1hHNGdJQ0FnYVdZZ0tIUm9hWE11Y0c5emFYUnBiMjVOWVhKbmFXNVRkR0YwWlNBOVBUMGdKMkYxZEc4bktTQjdYRzRnSUNBZ0lDQWdJR1JsWm1GMWJIUldZV3gxWlVadmNsQnZjMmwwYVc5dVRXRnlaMmx1SUQwZ05EdGNiaUFnSUNCOVhHNGdJQ0FnZEdocGN5NXdiM05wZEdsdmJrMWhjbWRwYmlBOUlIUm9hWE11YVc1MEtDZHdiM05wZEdsdmJrMWhjbWRwYmljc0lHUmxabUYxYkhSV1lXeDFaVVp2Y2xCdmMybDBhVzl1VFdGeVoybHVMQ0I3YldsdU9pQXdMQ0J0WVhnNklERTJmU2s3WEc0Z0lDQWdkR2hwY3k1d2IzTnBkR2x2YmtobGFXZG9kQ0E5SUhSb2FYTXVjM1J5YVc1bktDZHdiM05wZEdsdmJraGxhV2RvZENjc0lGQnZjMmwwYVc5dVNHVnBaMmgwTG1aMWJHd3NJSHRqYUc5cFkyVnpPaUJiVUc5emFYUnBiMjVJWldsbmFIUXVablZzYkN3Z1VHOXphWFJwYjI1SVpXbG5hSFF1Ulc1MGNtOXdlVjE5S1R0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1lYTjVibU1nYVc1cGRDZ3BPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCcFppQW9kR2hwY3k1cGJtbDBhV0ZzYVhwbFpDa2dlMXh1SUNBZ0lDQWdZMjl1YzI5c1pTNWxjbkp2Y2lnblYyVmlURzluYnlCelpXTnZibVFnYVc1cGRHbGhiR2w2WVhScGIyNGhKeWs3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2RHaHBjeTVwYm1sMGFXRnNhWHBsWkNBOUlIUnlkV1U3WEc0Z0lDQWdkR2hwY3k1b1pXeHdWWEpzSUQwZ0p5OW9aV3h3TDNacGMzVmhiR2w2WlM5MmFXVjNaWEp6TDNkbFlpMXNiMmR2TG0xa0p6dGNibHh1SUNBZ0lIUm9hWE11YlhOblNHOXpkQ0E5SUhWcExtUnBkaWduVG04Z2JXVnpjMkZuWlNjcE8xeHVJQ0FnSUhSb2FYTXViWE5uU0c5emRDNXpkSGxzWlM1a2FYTndiR0Y1SUQwZ0oyNXZibVVuTzF4dVhHNGdJQ0FnZEdocGN5NWpZVzUyWVhNZ1BTQjFhUzVqWVc1MllYTW9LVHRjYmlBZ0lDQjBhR2x6TG1OaGJuWmhjeTV6ZEhsc1pTNTNhV1IwYUNBOUlDY3hNREFsSnp0Y2JseHVJQ0FnSUhSb2FYTXVhRzl6ZENBOUlIVnBMbVJwZGloYmRHaHBjeTV0YzJkSWIzTjBMQ0IwYUdsekxtTmhiblpoYzEwcE8xeHVYRzRnSUNBZ0x5OGdkR2hwY3k1emJHbGtaWElnUFNCMWFTNXlZVzVuWlZOc2FXUmxjaWd3TENBeU1Dd2dNaXdnTlNrN1hHNGdJQ0FnTHk4Z2RHaHBjeTV6Ykdsa1pYSXVjbTl2ZEM1emRIbHNaUzUzYVdSMGFDQTlJQ2N4TURBbEp6dGNiaUFnSUNBdkx5QjBhR2x6TG5Oc2FXUmxjaTV5YjI5MExuTjBlV3hsTG1obGFXZG9kQ0E5SUNjeE1uQjRKenRjYmx4dUlDQWdJR052Ym5OMElHZGxkRTF2Ym05dFpYSWdQU0FvY0RvZ1JFY3VVRzlwYm5RcE9pQmJiblZ0WW1WeUxDQnpkSEpwYm1jZ2ZDQnVkV3hzTENCUWIzTnBkR2x2YmsxdmJtOXRaWEpKYm1adklId2diblZzYkYwZ1BUNGdlMXh1SUNBZ0lDQWdZMjl1YzNRZ2FsQnZjeUE5SUUxaGRHZ3VabXh2YjNJb2NDNTRJQzhnZEdocGN5NXdiM05wZEdsdmJsZHBaSFJvVjJsMGFFMWhjbWRwYmlrN1hHNGdJQ0FnSUNCamIyNXpkQ0J3YjNOcGRHbHZiaUE5SUhSb2FYTXVjRzl6YVhScGIyNXpXMnBRYjNOZE8xeHVYRzRnSUNBZ0lDQnBaaUFvY0c5emFYUnBiMjRnUFQwOUlIWnZhV1FnTUNsY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUZ0cVVHOXpMQ0J1ZFd4c0xDQnVkV3hzWFR0Y2JseHVJQ0FnSUNBZ1kyOXVjM1FnYlc5dWIyMWxjam9nYzNSeWFXNW5JSHdnZFc1a1pXWnBibVZrSUQwZ1QySnFaV04wTG10bGVYTW9jRzl6YVhScGIyNHVabkpsY1NsY2JpQWdJQ0FnSUNBZ0xtWnBibVFvS0cwcElEMCtJSEJ2YzJsMGFXOXVMbVp5WlhGYmJWMHVZbTkxYm1SekxtTnZiblJoYVc1ektIQXVlQ3dnY0M1NUtTazdYRzRnSUNBZ0lDQnBaaUFvYlc5dWIyMWxjaUE5UFQwZ2RXNWtaV1pwYm1Wa0tWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1cycFFiM01zSUc1MWJHd3NJRzUxYkd4ZE8xeHVYRzRnSUNBZ0lDQnlaWFIxY200Z1cycFFiM01zSUcxdmJtOXRaWElzSUhCdmMybDBhVzl1TG1aeVpYRmJiVzl1YjIxbGNsMWRPMXh1SUNBZ0lIMDdYRzVjYmx4dUlDQWdJQzh2SUhSb2FYTXVjM1ZpY3k1d2RYTm9LSEo0YW5NdVpuSnZiVVYyWlc1MFBFMXZkWE5sUlhabGJuUStLSFJvYVhNdVkyRnVkbUZ6TENBbmJXOTFjMlZ2ZG1WeUp5a3VjM1ZpYzJOeWFXSmxLQ2hsT2lCTmIzVnpaVVYyWlc1MEtTQTlQaUI3WEc0Z0lDQWdMeThnZlNrcE8xeHVYRzRnSUNBZ2RHaHBjeTUyYVdWM1UzVmljeTV3ZFhOb0tISjRhbk11Wm5KdmJVVjJaVzUwUEUxdmRYTmxSWFpsYm5RK0tIUm9hWE11WTJGdWRtRnpMQ0FuYlc5MWMyVnRiM1psSnlrdWMzVmljMk55YVdKbEtDaGxPaUJOYjNWelpVVjJaVzUwS1NBOVBpQjdYRzRnSUNBZ0lDQnBaaUFvSVhSb2FYTXVZMkZ1ZG1GektWeHVJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNWNiaUFnSUNBZ0lHTnZibk4wSUdGeVozTWdQU0JsSUdGeklFMXZkWE5sUlhabGJuUTdYRzVjYmlBZ0lDQWdJR052Ym5OMElISTZJRzUxYldKbGNpQTlJSGRwYm1SdmR5NWtaWFpwWTJWUWFYaGxiRkpoZEdsdk8xeHVJQ0FnSUNBZ1kyOXVjM1FnWTNWeWMyOXlVRG9nUkVjdVVHOXBiblFnUFNCMGFHbHpMbU5oYm5aaGN5NW5aWFJEZFhKemIzSlFiM05wZEdsdmJpaGhjbWR6TENCeUtUdGNiaUFnSUNBZ0lHTnZibk4wSUZ0cVVHOXpMQ0J0YjI1dmJXVnlYU0E5SUdkbGRFMXZibTl0WlhJb1kzVnljMjl5VUNrN1hHNWNiaUFnSUNBZ0lHbG1JQ2gwYUdsekxtUmhkR0ZHY21GdFpTQW1KaUIwYUdsekxuTmxjVU52YkNBbUppQjBhR2x6TG5Od2JHbDBkR1Z5SUNZbUlHMXZibTl0WlhJcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2NtOTNRMjkxYm5RZ1BTQjNkUzVqYjNWdWRDZ3BMblJoYTJVb2RHaHBjeTVrWVhSaFJuSmhiV1V1Y205M1EyOTFiblFwTG1acGJIUmxjaWdvYVZKdmR6b2diblZ0WW1WeUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYzJWeElEMGdkR2hwY3k1elpYRkRiMndoTG1kbGRDaHBVbTkzS1R0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCelpYRk5JRDBnYzJWeElEOGdkR2hwY3k1emNHeHBkSFJsY2lFb2MyVnhLVnQwYUdsekxuTjBZWEowVUc5emFYUnBiMjRnS3lCcVVHOXpYU0E2SUc1MWJHdzdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2dvYzJWeFRTQTlQVDBnYlc5dWIyMWxjaWtnZkh3Z0tITmxjVTBnUFQwOUlDY25JQ1ltSUcxdmJtOXRaWElnUFQwOUlDY3RKeWtwSUNZbUlIUm9hWE11WkdGMFlVWnlZVzFsTG1acGJIUmxjaTVuWlhRb2FWSnZkeWs3WEc0Z0lDQWdJQ0FnSUgwcExuSmxaSFZqWlR4dWRXMWlaWEkrS0NoamIzVnVkQ3dnYVZKdmR5a2dQVDRnWTI5MWJuUWdLeUF4TENBd0tUdGNiaUFnSUNBZ0lDQWdkV2t1ZEc5dmJIUnBjQzV6YUc5M0tIVnBMbVJwZGloYmRXa3VaR2wyS0dBa2UyMXZibTl0WlhKOVlDa3NJSFZwTG1ScGRpaGdKSHR5YjNkRGIzVnVkSDBnY205M2MyQXBYU2tzSUdGeVozTXVlQ0FySURFMkxDQmhjbWR6TG5rZ0t5QXhOaWs3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0IxYVM1MGIyOXNkR2x3TG1ocFpHVW9LVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLU2s3WEc1Y2JpQWdJQ0IwYUdsekxuWnBaWGRUZFdKekxuQjFjMmdvY25ocWN5NW1jbTl0UlhabGJuUThUVzkxYzJWRmRtVnVkRDRvZEdocGN5NWpZVzUyWVhNc0lDZHRiM1Z6WldSdmQyNG5LUzV6ZFdKelkzSnBZbVVvS0dVNklFMXZkWE5sUlhabGJuUXBJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDZ2hkR2hwY3k1allXNTJZWE1nZkh3Z1pTNWlkWFIwYjI0Z0lUMGdNQ2xjYmlBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1WEc0Z0lDQWdJQ0JqYjI1emRDQmhjbWR6SUQwZ1pTQmhjeUJOYjNWelpVVjJaVzUwTzF4dUlDQWdJQ0FnWTI5dWMzUWdjam9nYm5WdFltVnlJRDBnZDJsdVpHOTNMbVJsZG1salpWQnBlR1ZzVW1GMGFXODdYRzRnSUNBZ0lDQmpiMjV6ZENCYmFsQnZjeXdnYlc5dWIyMWxjbDBnUFNCblpYUk5iMjV2YldWeUtIUm9hWE11WTJGdWRtRnpMbWRsZEVOMWNuTnZjbEJ2YzJsMGFXOXVLR0Z5WjNNc0lISXBLVHRjYmx4dUlDQWdJQ0FnTHk4Z2NISmxkbVZ1ZEhNZ1pHVnpaV3hsWTNRZ1lXeHNJSEp2ZDNNZ2FXWWdkMlVnYldsemN5QnRiMjV2YldWeUlHSnZkVzVrYzF4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11WkdGMFlVWnlZVzFsSUNZbUlIUm9hWE11YzJWeFEyOXNJQ1ltSUhSb2FYTXVjM0JzYVhSMFpYSWdKaVlnYlc5dWIyMWxjaWtnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbVJoZEdGR2NtRnRaUzV6Wld4bFkzUnBiMjR1YVc1cGRDZ29hVkp2ZHlrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE5sY1NBOUlIUm9hWE11YzJWeFEyOXNJUzVuWlhRb2FWSnZkeWs3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYzJWeFRTQTlJSE5sY1NBL0lIUm9hWE11YzNCc2FYUjBaWEloS0hObGNTbGJkR2hwY3k1emRHRnlkRkJ2YzJsMGFXOXVJQ3NnYWxCdmMxMGdPaUJ1ZFd4c08xeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQW9LSE5sY1UwZ1BUMDlJRzF2Ym05dFpYSXBJSHg4SUNoelpYRk5JRDA5UFNBbkp5QW1KaUJ0YjI1dmJXVnlJRDA5UFNBbkxTY3BLU0FtSmlCMGFHbHpMbVJoZEdGR2NtRnRaUzVtYVd4MFpYSXVaMlYwS0dsU2IzY3BPMXh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5S1NrN1hHNWNiaUFnSUNCMGFHbHpMblpwWlhkVGRXSnpMbkIxYzJnb2RXa3ViMjVUYVhwbFEyaGhibWRsWkNoMGFHbHpMbkp2YjNRcExuTjFZbk5qY21saVpTaDBhR2x6TG5KdmIzUlBibE5wZW1WRGFHRnVaMlZrTG1KcGJtUW9kR2hwY3lrcEtUdGNibHh1SUNBZ0lIUm9hWE11Y205dmRDNWhjSEJsYm1Rb2RHaHBjeTVvYjNOMEtUdGNiaUFnSUNBdkx5QjBhR2x6TG5KdmIzUXVZWEJ3Wlc1a1EyaHBiR1FvZEdocGN5NXpiR2xrWlhJdWNtOXZkQ2s3WEc1Y2JpQWdJQ0IwYUdsekxuSmxibVJsY2loMGNuVmxLVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnY205dmRFOXVVMmw2WlVOb1lXNW5aV1FvWVhKbmN6b2dZVzU1S1NCN1hHNGdJQ0FnZEdocGN5NXlaVzVrWlhJb2RISjFaU2s3WEc1Y2JpQWdJQ0F2THlCamIyNXpiMnhsTG1SbFluVm5LR0JYWldKTWIyZHZMbTl1VW05dmRGTnBlbVZEYUdGdVoyVmtLQ2tnWUNBclhHNGdJQ0FnTHk4Z0lDQmdjbTl2ZEM1M2FXUjBhRDBrZTNSb2FYTXVjbTl2ZEM1amJHbGxiblJYYVdSMGFIMHNJSEp2YjNRdWFHVnBaMmgwUFNSN2RHaHBjeTV5YjI5MExtTnNhV1Z1ZEVobGFXZG9kSDBzSUdBZ0sxeHVJQ0FnSUM4dklDQWdZR05oYm5aaGN5NTNhV1IwYUQwa2UzUm9hWE11WTJGdWRtRnpMbmRwWkhSb2ZTd2dZMkZ1ZG1GekxtaGxhV2RvZEQwa2UzUm9hWE11WTJGdWRtRnpMbWhsYVdkb2RIMGdMbUFwTzF4dUlDQjlYRzVjYmlBZ0x5b3FJRUZ6YzJsbmJuTWdlMEJzYVc1cklITmxjVU52YkgwZ1lXNWtJSHRBYkdsdWF5QmpjSDBnWW1GelpXUWdiMjRnZTBCc2FXNXJJSE5sY1hWbGJtTmxRMjlzZFcxdVRtRnRaWDBnWVc1a0lHTmhiR3h6SUh0QWJHbHVheUJ5Wlc1a1pYSjlLQ2t1WEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUhWd1pHRjBaVk5sY1VOdmJDZ3BPaUIyYjJsa0lIdGNiaUFnSUNCcFppQW9kR2hwY3k1a1lYUmhSbkpoYldVcElIdGNiaUFnSUNBZ0lIUm9hWE11YzJWeFEyOXNJRDBnZEdocGN5NXpaWEYxWlc1alpVTnZiSFZ0Yms1aGJXVWdQeUIwYUdsekxtUmhkR0ZHY21GdFpTNWpiMndvZEdocGN5NXpaWEYxWlc1alpVTnZiSFZ0Yms1aGJXVXBJRG9nYm5Wc2JEdGNiaUFnSUNBZ0lHbG1JQ2gwYUdsekxuTmxjVU52YkNBOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzJWeFEyOXNJRDBnVjJWaVRHOW5ieTV3YVdOclZYQlRaWEZEYjJ3eUtIUm9hWE11WkdGMFlVWnlZVzFsS1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6WlhGMVpXNWpaVU52YkhWdGJrNWhiV1VnUFNCMGFHbHpMbk5sY1VOdmJDQS9JSFJvYVhNdWMyVnhRMjlzTG01aGJXVWdPaUJ1ZFd4c08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLSFJvYVhNdWMyVnhRMjlzS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhWdWFYUnpPaUJ6ZEhKcGJtY2dQU0IwYUdsekxuTmxjVU52YkNFdVoyVjBWR0ZuS0VSSExsUkJSMU11VlU1SlZGTXBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnpaWEJoY21GMGIzSTZJSE4wY21sdVp5QTlJSFJvYVhNdWMyVnhRMjlzSVM1blpYUlVZV2NvVlc1cGRITklZVzVrYkdWeUxsUkJSMU11YzJWd1lYSmhkRzl5S1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6Y0d4cGRIUmxjaUE5SUZkbFlreHZaMjh1WjJWMFUzQnNhWFIwWlhJb2RXNXBkSE1zSUhObGNHRnlZWFJ2Y2lrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11ZFc1cGRITklZVzVrYkdWeUlEMGdibVYzSUZWdWFYUnpTR0Z1Wkd4bGNpaDBhR2x6TG5ObGNVTnZiQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2RHaHBjeTUxY0dSaGRHVlFiM05wZEdsdmJuTW9LVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWpjQ0E5SUZkbFlreHZaMjh1Y0dsamExVndVR0ZzWlhSMFpTaDBhR2x6TG5ObGNVTnZiQ2s3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTndiR2wwZEdWeUlEMGdiblZzYkR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV3YjNOcGRHbHZiazVoYldWeklEMGdXMTA3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjM1JoY25SUWIzTnBkR2x2YmlBOUlDMHhPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtVnVaRkJ2YzJsMGFXOXVJRDBnTFRFN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WTNBZ1BTQnVkV3hzTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQjBhR2x6TG5KbGJtUmxjaWdwTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCMWNHUmhkR1ZRYjNOcGRHbHZibk1vS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbk5sY1VOdmJDbGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JseHVJQ0FnSUd4bGRDQmpZWFJsWjI5eWFXVnpPaUFvYzNSeWFXNW5JSHdnYm5Wc2JDa2dXMTA3WEc0Z0lDQWdhV1lnS0hSb2FYTXVjMmh5YVc1clJXMXdkSGxVWVdsc0tTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCcGJtUnBZMlZ6T2lCSmJuUXpNa0Z5Y21GNUlEMGdkR2hwY3k1a1lYUmhSbkpoYldVdVptbHNkR1Z5TG1kbGRGTmxiR1ZqZEdWa1NXNWtaWGhsY3lncE8xeHVJQ0FnSUNBZ1kyRjBaV2R2Y21sbGN5QTlJRUZ5Y21GNUxtWnliMjBvYm1WM0lGTmxkQ2hjYmlBZ0lDQWdJQ0FnUVhKeVlYa3Vabkp2YlNoQmNuSmhlU2hwYm1ScFkyVnpMbXhsYm1kMGFDa3VhMlY1Y3lncEtTNXRZWEFvS0drNklHNTFiV0psY2lrZ1BUNGdkR2hwY3k1elpYRkRiMndoTG1kbGRDaHBibVJwWTJWelcybGRLU2twS1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdZMkYwWldkdmNtbGxjeUE5SUhSb2FYTXVjMlZ4UTI5c0xtTmhkR1ZuYjNKcFpYTTdYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJuTjBJRzFoZUV4bGJtZDBhQ0E5SUdOaGRHVm5iM0pwWlhNdWJHVnVaM1JvSUQ0Z01DQS9JRTFoZEdndWJXRjRLQzR1TG1OaGRHVm5iM0pwWlhNdWJXRndLRnh1SUNBZ0lDQWdLSE1wSUQwK0lITWdJVDA5SUc1MWJHd2dQeUIwYUdsekxuTndiR2wwZEdWeUlTaHpLUzVzWlc1bmRHZ2dPaUF3S1NrZ09pQXdPMXh1WEc0Z0lDQWdMeThnUjJWMElIQnZjMmwwYVc5dUlHNWhiV1Z6SUdaeWIyMGdaR0YwWVNCamIyeDFiVzRnZEdGbklDZHdiM05wZEdsdmJrNWhiV1Z6SjF4dUlDQWdJR052Ym5OMElIQnZjMmwwYVc5dVRtRnRaWE5VZUhRZ1BTQjBhR2x6TG5ObGNVTnZiQzVuWlhSVVlXY29KM0J2YzJsMGFXOXVUbUZ0WlhNbktUdGNiaUFnSUNBdkx5QkdZV3hzWW1GamF5QnBaaUFuY0c5emFYUnBiMjVPWVcxbGN5Y2dkR0ZuSUdseklHNXZkQ0J3Y205MmFXUmxaRnh1SUNBZ0lIUm9hWE11Y0c5emFYUnBiMjVPWVcxbGN5QTlJSEJ2YzJsMGFXOXVUbUZ0WlhOVWVIUWdQeUJ3YjNOcGRHbHZiazVoYldWelZIaDBMbk53YkdsMEtDY3NJQ2NwTG0xaGNDZ29iaWtnUFQ0Z2JpNTBjbWx0S0NrcElEcGNiaUFnSUNBZ0lGc3VMaTVCY25KaGVTaHRZWGhNWlc1bmRHZ3BMbXRsZVhNb0tWMHViV0Z3S0NocVVHOXpLU0E5UGlCZ0pIdHFVRzl6SUNzZ01YMWdLVHRjYmx4dUlDQWdJSFJvYVhNdWMzUmhjblJRYjNOcGRHbHZiaUE5SUNoMGFHbHpMbk4wWVhKMFVHOXphWFJwYjI1T1lXMWxJQ1ltSUhSb2FYTXVjRzl6YVhScGIyNU9ZVzFsY3lBbUpseHVJQ0FnSUNBZ2RHaHBjeTV3YjNOcGRHbHZiazVoYldWekxtbHVZMngxWkdWektIUm9hWE11YzNSaGNuUlFiM05wZEdsdmJrNWhiV1VwS1NBL1hHNGdJQ0FnSUNCMGFHbHpMbkJ2YzJsMGFXOXVUbUZ0WlhNdWFXNWtaWGhQWmloMGFHbHpMbk4wWVhKMFVHOXphWFJwYjI1T1lXMWxLU0E2SURBN1hHNGdJQ0FnZEdocGN5NWxibVJRYjNOcGRHbHZiaUE5SUNoMGFHbHpMbVZ1WkZCdmMybDBhVzl1VG1GdFpTQW1KaUIwYUdsekxuQnZjMmwwYVc5dVRtRnRaWE1nSmlaY2JpQWdJQ0FnSUhSb2FYTXVjRzl6YVhScGIyNU9ZVzFsY3k1cGJtTnNkV1JsY3loMGFHbHpMbVZ1WkZCdmMybDBhVzl1VG1GdFpTa3BJRDljYmlBZ0lDQWdJSFJvYVhNdWNHOXphWFJwYjI1T1lXMWxjeTVwYm1SbGVFOW1LSFJvYVhNdVpXNWtVRzl6YVhScGIyNU9ZVzFsS1NBNklDaHRZWGhNWlc1bmRHZ2dMU0F4S1R0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCdmRtVnljbWxrWlNCdmJsQnliM0JsY25SNVEyaGhibWRsWkNod2NtOXdaWEowZVRvZ1JFY3VVSEp2Y0dWeWRIa3BPaUIyYjJsa0lIdGNiaUFnSUNBdkx5QmpiMjV6YjJ4bExtUmxZblZuS0dCWFpXSk1iMmR2TG05dVVISnZjR1Z5ZEhsRGFHRnVaMlZrS0NBa2UzQnliM0JsY25SNUxtNWhiV1Y5SUQwZ0p5Y2dmU2xnS1R0Y2JpQWdJQ0J6ZFhCbGNpNXZibEJ5YjNCbGNuUjVRMmhoYm1kbFpDaHdjbTl3WlhKMGVTazdYRzVjYmlBZ0lDQnpkMmwwWTJnZ0tIQnliM0JsY25SNUxtNWhiV1VwSUh0Y2JpQWdJQ0JqWVhObElDZGpiMjV6YVdSbGNrNTFiR3hUWlhGMVpXNWpaWE1uT2x4dUlDQWdJQ0FnZEdocGN5NXlaVzVrWlhJb2RISjFaU2s3WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCallYTmxJQ2R6WlhGMVpXNWpaVU52YkhWdGJrNWhiV1VuT2x4dUlDQWdJQ0FnZEdocGN5NTFjR1JoZEdWVFpYRkRiMndvS1R0Y2JpQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lHTmhjMlVnSjNOMFlYSjBVRzl6YVhScGIyNU9ZVzFsSnpwY2JpQWdJQ0FnSUhSb2FYTXVkWEJrWVhSbFUyVnhRMjlzS0NrN1hHNGdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQmpZWE5sSUNkbGJtUlFiM05wZEdsdmJrNWhiV1VuT2x4dUlDQWdJQ0FnZEdocGN5NTFjR1JoZEdWVFpYRkRiMndvS1R0Y2JpQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lHTmhjMlVnSjNCdmMybDBhVzl1VjJsa2RHZ25PbHh1SUNBZ0lDQWdkR2hwY3k1ZmNHOXphWFJwYjI1WGFXUjBhQ0E5SUhSb2FYTXVjRzl6YVhScGIyNVhhV1IwYUR0Y2JpQWdJQ0FnSUhSb2FYTXVjbVZ1WkdWeUtIUnlkV1VwTzF4dUlDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ1kyRnpaU0FuYldsdVNHVnBaMmgwSnpwY2JpQWdJQ0FnSUhSb2FYTXVjbVZ1WkdWeUtIUnlkV1VwTzF4dUlDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ1kyRnpaU0FuYldGNFNHVnBaMmgwSnpwY2JpQWdJQ0FnSUhSb2FYTXVjbVZ1WkdWeUtIUnlkV1VwTzF4dUlDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ1kyRnpaU0FuWm1sNFYybGtkR2duT2x4dUlDQWdJQ0FnZEdocGN5NXlaVzVrWlhJb2RISjFaU2s3WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCallYTmxJQ2QyWlhKMGFXTmhiRUZzYVdkdWJXVnVkQ2M2WEc0Z0lDQWdJQ0IwYUdsekxuSmxibVJsY2loMGNuVmxLVHRjYmlBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUdOaGMyVWdKMmh2Y21sNmIyNTBZV3hCYkdsbmJtMWxiblFuT2x4dUlDQWdJQ0FnZEdocGN5NXlaVzVrWlhJb2RISjFaU2s3WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCallYTmxJQ2RtYVhSQmNtVmhKenBjYmlBZ0lDQWdJSFJvYVhNdWNtVnVaR1Z5S0hSeWRXVXBPMXh1SUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnWTJGelpTQW5jMmh5YVc1clJXMXdkSGxVWVdsc0p6cGNiaUFnSUNBZ0lIUm9hWE11ZFhCa1lYUmxVRzl6YVhScGIyNXpLQ2s3WEc0Z0lDQWdJQ0IwYUdsekxuSmxibVJsY2loMGNuVmxLVHRjYmlBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUdOaGMyVWdKM05yYVhCRmJYQjBlVkJ2YzJsMGFXOXVjeWM2WEc0Z0lDQWdJQ0IwYUdsekxuVndaR0YwWlZCdmMybDBhVzl1Y3lncE8xeHVJQ0FnSUNBZ2RHaHBjeTV5Wlc1a1pYSW9kSEoxWlNrN1hHNGdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQmpZWE5sSUNkd2IzTnBkR2x2YmsxaGNtZHBiaWM2WEc0Z0lDQWdJQ0IwYUdsekxuSmxibVJsY2loMGNuVmxLVHRjYmlBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUdOaGMyVWdKM0J2YzJsMGFXOXVUV0Z5WjJsdVUzUmhkR1VuT2x4dUlDQWdJQ0FnZEdocGN5NXlaVzVrWlhJb2RISjFaU2s3WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCallYTmxJQ2R3YjNOcGRHbHZia2hsYVdkb2RDYzZYRzRnSUNBZ0lDQjBhR2x6TG5KbGJtUmxjaWgwY25WbEtUdGNiaUFnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJ2ZG1WeWNtbGtaU0JoYzNsdVl5QnZibFJoWW14bFFYUjBZV05vWldRb0tTQjdYRzRnSUNBZ1kyOXVjM1FnWkdGMFlVWnlZVzFsVkhoME9pQnpkSEpwYm1jZ1BTQjBhR2x6TG1SaGRHRkdjbUZ0WlNBL0lDZGtZWFJoSnlBNklDZHVkV3hzSnp0Y2JpQWdJQ0JqYjI1emIyeGxMbVJsWW5WbktHQmlhVzg2SUZkbFlreHZaMjg4Skh0MGFHbHpMblpwWlhkbGNrbGtmVDR1YjI1VVlXSnNaVUYwZEdGamFHVmtLQ0JrWVhSaFJuSmhiV1VnUFNBa2UyUmhkR0ZHY21GdFpWUjRkSDBnS1NCemRHRnlkR0FwTzF4dUlDQWdJSE4xY0dWeUxtOXVWR0ZpYkdWQmRIUmhZMmhsWkNncE8xeHVYRzRnSUNBZ2RHaHBjeTUxY0dSaGRHVlRaWEZEYjJ3b0tUdGNibHh1SUNBZ0lHbG1JQ2gwYUdsekxtUmhkR0ZHY21GdFpTQWhQVDBnZG05cFpDQXdLU0I3WEc0Z0lDQWdJQ0IwYUdsekxuTjFZbk11Y0hWemFDaDBhR2x6TG1SaGRHRkdjbUZ0WlM1elpXeGxZM1JwYjI0dWIyNURhR0Z1WjJWa0xuTjFZbk5qY21saVpTZ29YeWtnUFQ0Z2RHaHBjeTV5Wlc1a1pYSW9LU2twTzF4dUlDQWdJQ0FnZEdocGN5NXpkV0p6TG5CMWMyZ29kR2hwY3k1a1lYUmhSbkpoYldVdVptbHNkR1Z5TG05dVEyaGhibWRsWkM1emRXSnpZM0pwWW1Vb0tGOHBJRDArSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTUxY0dSaGRHVlFiM05wZEdsdmJuTW9LVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXlaVzVrWlhJb0tUdGNiaUFnSUNBZ0lIMHBLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbWx1YVhRb0tUdGNiaUFnSUNCamIyNXpiMnhsTG1SbFluVm5LR0JpYVc4NklGZGxZa3h2WjI4OEpIdDBhR2x6TG5acFpYZGxja2xrZlQ0dWIyNVVZV0pzWlVGMGRHRmphR1ZrS0NrZ1pXNWtZQ2s3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nYjNabGNuSnBaR1VnWVhONWJtTWdaR1YwWVdOb0tDa2dlMXh1SUNBZ0lHTnZibk4wSUdSaGRHRkdjbUZ0WlZSNGRDQTlJR0FrZTNSb2FYTXVaR0YwWVVaeVlXMWxJRDhnSjJSaGRHRW5JRG9nSjI1MWJHd25mV0E3WEc0Z0lDQWdZMjl1YzI5c1pTNWtaV0oxWnloZ1ltbHZPaUJYWldKTWIyZHZQQ1I3ZEdocGN5NTJhV1YzWlhKSlpIMCtMbTl1VkdGaWJHVkJkSFJoWTJobFpDZ2daR0YwWVVaeVlXMWxJRDBnSkh0a1lYUmhSbkpoYldWVWVIUjlJQ2tnYzNSaGNuUmdLVHRjYmlBZ0lDQnpkWEJsY2k1a1pYUmhZMmdvS1R0Y2JseHVJQ0FnSUhSb2FYTXVkbWxsZDFOMVluTXVabTl5UldGamFDZ29jM1ZpS1NBOVBpQnpkV0l1ZFc1emRXSnpZM0pwWW1Vb0tTazdYRzRnSUNBZ2RHaHBjeTVvYjNOMElTNXlaVzF2ZG1Vb0tUdGNiaUFnSUNCMGFHbHpMbU5oYm5aaGN5QTlJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQjBhR2x6TG0xelowaHZjM1FnUFNCMWJtUmxabWx1WldRN1hHNGdJQ0FnZEdocGN5NW9iM04wSUQwZ2RXNWtaV1pwYm1Wa08xeHVYRzRnSUNBZ2RHaHBjeTVwYm1sMGFXRnNhWHBsWkNBOUlHWmhiSE5sTzF4dUlDQWdJR052Ym5OdmJHVXVaR1ZpZFdjb1lHSnBiem9nVjJWaVRHOW5iendrZTNSb2FYTXVkbWxsZDJWeVNXUjlQaTV2YmxSaFlteGxRWFIwWVdOb1pXUW9LU0JsYm1SZ0tUdGNiaUFnZlZ4dVhHNGdJSEJ5YjNSbFkzUmxaQ0JmYm5Wc2JGTmxjWFZsYm1ObEtHWnBiR3hsY2xKbGMybGtkV1VnUFNBbldDY3BPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHbG1JQ2gwYUdsekxtTnZibk5wWkdWeVRuVnNiRk5sY1hWbGJtTmxjeWxjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnUVhKeVlYa29kR2hwY3k1TVpXNW5kR2dwTG1acGJHd29abWxzYkdWeVVtVnphV1IxWlNrdWFtOXBiaWduSnlrN1hHNWNiaUFnSUNCeVpYUjFjbTRnSnljN1hHNGdJSDFjYmx4dUlDQndjbTkwWldOMFpXUWdjbVZ0YjNabFYyaGxjbVVvWVhKeVlYazZJRUZ5Y21GNVBHRnVlVDRzSUhCeVpXUnBZMkYwWlRvZ0tGUTZJR0Z1ZVNrZ1BUNGdZbTl2YkdWaGJpazZJRUZ5Y21GNVBHRnVlVDRnZTF4dUlDQWdJR3hsZENCc1pXNW5kR2dnUFNCaGNuSmhlUzVzWlc1bmRHZzdYRzRnSUNBZ2JHVjBJSFZ3WkdGMFpVbDBaWEpoZEc5eUlEMGdNRHRjYmlBZ0lDQm1iM0lnS0d4bGRDQmtaV3hsZEdWSmRHVnlZWFJ2Y2lBOUlEQTdJR1JsYkdWMFpVbDBaWEpoZEc5eUlEd2diR1Z1WjNSb095QmtaV3hsZEdWSmRHVnlZWFJ2Y2lzcktTQjdYRzRnSUNBZ0lDQnBaaUFvSVhCeVpXUnBZMkYwWlNoaGNuSmhlVnRrWld4bGRHVkpkR1Z5WVhSdmNsMHBLU0I3WEc0Z0lDQWdJQ0FnSUdGeWNtRjVXM1Z3WkdGMFpVbDBaWEpoZEc5eVhTQTlJR0Z5Y21GNVcyUmxiR1YwWlVsMFpYSmhkRzl5WFR0Y2JpQWdJQ0FnSUNBZ2RYQmtZWFJsU1hSbGNtRjBiM0lyS3p0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdZWEp5WVhrdWJHVnVaM1JvSUQwZ2RYQmtZWFJsU1hSbGNtRjBiM0k3WEc0Z0lDQWdjbVYwZFhKdUlHRnljbUY1TzF4dUlDQjlYRzVjYmx4dUlDQndjbTkwWldOMFpXUWdYM0psYlc5MlpVVnRjSFI1VUc5emFYUnBiMjV6S0NrZ2UxeHVJQ0FnSUdsbUlDaDBhR2x6TG5OcmFYQkZiWEIwZVZCdmMybDBhVzl1Y3lrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV5WlcxdmRtVlhhR1Z5WlNoMGFHbHpMbkJ2YzJsMGFXOXVjeXdnYVhSbGJTQTlQaUJwZEdWdFB5NW1jbVZ4V3ljdEoxMC9MbU52ZFc1MElEMDlQU0JwZEdWdExuSnZkME52ZFc1MEtUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQndjbTkwWldOMFpXUWdYMk5oYkdOMWJHRjBaU2h5T2lCdWRXMWlaWElwSUh0Y2JpQWdJQ0JwWmlBb0lYUm9hWE11WTJGdWRtRnpJSHg4SUNGMGFHbHpMbWh2YzNRZ2ZId2dJWFJvYVhNdWMyVnhRMjlzSUh4OElDRjBhR2x6TG1SaGRHRkdjbUZ0WlNsY2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjBhR2x6TG5WdWFYUnpTR0Z1Wkd4bGNpQTlJRzVsZHlCVmJtbDBjMGhoYm1Sc1pYSW9kR2hwY3k1elpYRkRiMndwTzF4dVhHNWNiaUFnSUNCMGFHbHpMbU5oYkdOVGFYcGxLQ2s3WEc1Y2JpQWdJQ0IwYUdsekxuQnZjMmwwYVc5dWN5QTlJRzVsZHlCQmNuSmhlU2gwYUdsekxuTjBZWEowVUc5emFYUnBiMjRnUEQwZ2RHaHBjeTVsYm1SUWIzTnBkR2x2YmlBL0lIUm9hWE11Wlc1a1VHOXphWFJwYjI0Z0xTQjBhR2x6TG5OMFlYSjBVRzl6YVhScGIyNGdLeUF4SURvZ01DazdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FsQnZjeUE5SURBN0lHcFFiM01nUENCMGFHbHpMa3hsYm1kMGFEc2dhbEJ2Y3lzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCd2IzTk9ZVzFsT2lCemRISnBibWNnUFNCMGFHbHpMbkJ2YzJsMGFXOXVUbUZ0WlhOYmRHaHBjeTV6ZEdGeWRGQnZjMmwwYVc5dUlDc2dhbEJ2YzEwN1hHNGdJQ0FnSUNCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTQTlJRzVsZHlCUWIzTnBkR2x2YmtsdVptOG9jRzl6VG1GdFpTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5OGdNakF5TWkwd05TMHdOU0JoYzJ0aGJHdHBiaUJwYm5OMGNuVmpkR1ZrSUhSdklITm9iM2NnVjJWaVRHOW5ieUJpWVhObFpDQnZiaUJtYVd4MFpYSWdLRzV2ZENCelpXeGxZM1JwYjI0cFhHNGdJQ0FnWTI5dWMzUWdhVzVrYVdObGN5QTlJSFJvYVhNdVpHRjBZVVp5WVcxbExtWnBiSFJsY2k1blpYUlRaV3hsWTNSbFpFbHVaR1Y0WlhNb0tUdGNiaUFnSUNBdkx5QmpiMjV6ZENCcGJtUnBZMlZ6SUQwZ2RHaHBjeTVrWVhSaFJuSmhiV1V1YzJWc1pXTjBhVzl1TG5SeWRXVkRiM1Z1ZENBK0lEQWdQeUIwYUdsekxtUmhkR0ZHY21GdFpTNXpaV3hsWTNScGIyNHVaMlYwVTJWc1pXTjBaV1JKYm1SbGVHVnpLQ2tnT2x4dUlDQWdJQzh2SUNBZ2RHaHBjeTVrWVhSaFJuSmhiV1V1Wm1sc2RHVnlMbWRsZEZObGJHVmpkR1ZrU1c1a1pYaGxjeWdwTzF4dVhHNGdJQ0FnZEdocGN5NXliM2R6VFdGemEyVmtJRDBnYVc1a2FXTmxjeTVzWlc1bmRHZzdYRzRnSUNBZ2RHaHBjeTV5YjNkelRuVnNiQ0E5SURBN1hHNWNiaUFnSUNCbWIzSWdLR052Ym5OMElHa2diMllnYVc1a2FXTmxjeWtnZTF4dUlDQWdJQ0FnYkdWMElITTZJSE4wY21sdVp5QTlJRHh6ZEhKcGJtYytLSFJvYVhNdWMyVnhRMjlzTG1kbGRDaHBLU2s3WEc1Y2JpQWdJQ0FnSUdsbUlDZ2hjeWtnZTF4dUlDQWdJQ0FnSUNCeklEMGdkR2hwY3k1ZmJuVnNiRk5sY1hWbGJtTmxLQ2s3WEc0Z0lDQWdJQ0FnSUNzcmRHaHBjeTV5YjNkelRuVnNiRHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnWTI5dWMzUWdjMlZ4VFRvZ2MzUnlhVzVuVzEwZ1BTQjBhR2x6TG5Od2JHbDBkR1Z5SVNoektUdGNiaUFnSUNBZ0lHWnZjaUFvYkdWMElHcFFiM01nUFNBd095QnFVRzl6SUR3Z2RHaHBjeTVNWlc1bmRHZzdJR3BRYjNNckt5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQndiVWx1Wm04Z1BTQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYUzVtY21WeE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdE9pQnpkSEpwYm1jZ1BTQnpaWEZOVzNSb2FYTXVjM1JoY25SUWIzTnBkR2x2YmlBcklHcFFiM05kSUh4OElDY3RKenRjYmlBZ0lDQWdJQ0FnYVdZZ0tDRW9iU0JwYmlCd2JVbHVabThwS1Z4dUlDQWdJQ0FnSUNBZ0lIQnRTVzVtYjF0dFhTQTlJRzVsZHlCUWIzTnBkR2x2YmsxdmJtOXRaWEpKYm1adktDazdYRzRnSUNBZ0lDQWdJSEJ0U1c1bWIxdHRYUzVqYjNWdWRDc3JPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lDOHZJM0psWjJsdmJpQlFiMnhwYzJnZ1puSmxjU0JqYjNWdWRITmNiaUFnSUNCbWIzSWdLR3hsZENCcVVHOXpJRDBnTURzZ2FsQnZjeUE4SUhSb2FYTXVUR1Z1WjNSb095QnFVRzl6S3lzcElIdGNiaUFnSUNBZ0lDOHZJR1JsYkdWMFpTQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYUzVtY21WeFd5Y3RKMTA3WEc1Y2JpQWdJQ0FnSUhSb2FYTXVjRzl6YVhScGIyNXpXMnBRYjNOZExuSnZkME52ZFc1MElEMGdNRHRjYmlBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnYlNCcGJpQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYUzVtY21WeEtWeHVJQ0FnSUNBZ0lDQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYUzV5YjNkRGIzVnVkQ0FyUFNCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTNW1jbVZ4VzIxZExtTnZkVzUwTzF4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11Y0c5emFYUnBiMjVJWldsbmFIUWdQVDBnVUc5emFYUnBiMjVJWldsbmFIUXVSVzUwY205d2VTa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuQnZjMmwwYVc5dWMxdHFVRzl6WFM1emRXMUdiM0pJWldsbmFIUkRZV3hqSUQwZ01EdGNiaUFnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0J0SUdsdUlIUm9hWE11Y0c5emFYUnBiMjV6VzJwUWIzTmRMbVp5WlhFcElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQndiaUE5SUhSb2FYTXVjRzl6YVhScGIyNXpXMnBRYjNOZExtWnlaWEZiYlYwdVkyOTFiblFnTHlCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTNXliM2REYjNWdWREdGNiaUFnSUNBZ0lDQWdJQ0IwYUdsekxuQnZjMmwwYVc5dWMxdHFVRzl6WFM1emRXMUdiM0pJWldsbmFIUkRZV3hqSUNzOUlDMXdiaUFxSUUxaGRHZ3ViRzluTWlod2JpazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ0x5OGpaVzVrY21WbmFXOXVYRzRnSUNBZ2RHaHBjeTVmY21WdGIzWmxSVzF3ZEhsUWIzTnBkR2x2Ym5Nb0tUdGNibHh1SUNBZ0lHTnZibk4wSUdGaWMyOXNkWFJsVFdGNFNHVnBaMmgwSUQwZ2RHaHBjeTVqWVc1MllYTXVhR1ZwWjJoMElDMGdkR2hwY3k1aGVHbHpTR1ZwWjJoMElDb2djanRjYmlBZ0lDQXZMeUJqYjI1emIyeGxMbVJsWW5WbktHQlhaV0pNYjJkdlBDUjdkR2hwY3k1MmFXVjNaWEpKWkgwK0xsOWpZV3hqZFd4aGRHVW9LU0J0WVhoSVpXbG5hSFE5Skh0dFlYaElaV2xuYUhSOUxtQXBPMXh1WEc0Z0lDQWdMeThqY21WbmFXOXVJRU5oYkdOMWJHRjBaU0J6WTNKbFpXNWNiaUFnSUNCbWIzSWdLR3hsZENCcVVHOXpJRDBnTURzZ2FsQnZjeUE4SUhSb2FYTXVUR1Z1WjNSb095QnFVRzl6S3lzcElIdGNiaUFnSUNBZ0lHTnZibk4wSUdaeVpYRTZJSHNnVzJNNklITjBjbWx1WjEwNklGQnZjMmwwYVc5dVRXOXViMjFsY2tsdVptOGdmU0E5SUhSb2FYTXVjRzl6YVhScGIyNXpXMnBRYjNOZExtWnlaWEU3WEc0Z0lDQWdJQ0JqYjI1emRDQnliM2REYjNWdWRDQTlJSFJvYVhNdWNHOXphWFJwYjI1elcycFFiM05kTG5KdmQwTnZkVzUwTzF4dUlDQWdJQ0FnWTI5dWMzUWdZV3h3YUdGaVpYUlRhWHBsSUQwZ2RHaHBjeTVuWlhSQmJIQm9ZV0psZEZOcGVtVW9LVHRjYmlBZ0lDQWdJR2xtSUNnb2RHaHBjeTV3YjNOcGRHbHZia2hsYVdkb2RDQTlQU0JRYjNOcGRHbHZia2hsYVdkb2RDNUZiblJ5YjNCNUtTQW1KaUFvWVd4d2FHRmlaWFJUYVhwbElEMDlJRzUxYkd3cEtTQjdYRzRnSUNBZ0lDQWdJR2R5YjJzdWMyaGxiR3d1WlhKeWIzSW9KMWRsWWt4dloyODZJR0ZzY0doaFltVjBJR2x6SUhWdVpHVm1hVzVsWkM0bktUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdZMjl1YzNRZ2JXRjRTR1ZwWjJoMElEMGdLSFJvYVhNdWNHOXphWFJwYjI1SVpXbG5hSFFnUFQwZ1VHOXphWFJwYjI1SVpXbG5hSFF1Ulc1MGNtOXdlU2tnUHlBb1lXSnpiMngxZEdWTllYaElaV2xuYUhRZ0tpQW9UV0YwYUM1c2IyY3lLR0ZzY0doaFltVjBVMmw2WlNrZ0xTQW9kR2hwY3k1d2IzTnBkR2x2Ym5OYmFsQnZjMTB1YzNWdFJtOXlTR1ZwWjJoMFEyRnNZeWtwSUM4Z1RXRjBhQzVzYjJjeUtHRnNjR2hoWW1WMFUybDZaU2twSURvZ1lXSnpiMngxZEdWTllYaElaV2xuYUhRN1hHNWNiaUFnSUNBZ0lHeGxkQ0I1T2lCdWRXMWlaWElnUFNCMGFHbHpMbUY0YVhOSVpXbG5hSFFnS2lCeUlDc2dLR0ZpYzI5c2RYUmxUV0Y0U0dWcFoyaDBJQzBnYldGNFNHVnBaMmgwSUMwZ01TazdYRzVjYmlBZ0lDQWdJR052Ym5OMElHVnVkSEpwWlhNZ1BTQlBZbXBsWTNRdVpXNTBjbWxsY3lobWNtVnhLUzV6YjNKMEtDaGhMQ0JpS1NBOVBpQjdYRzRnSUNBZ0lDQWdJR2xtSUNoaFd6QmRJQ0U5UFNBbkxTY2dKaVlnWWxzd1hTQWhQVDBnSnkwbktWeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmlXekZkTG1OdmRXNTBJQzBnWVZzeFhTNWpiM1Z1ZER0Y2JpQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb1lWc3dYU0E5UFQwZ0p5MG5JQ1ltSUdKYk1GMGdQVDA5SUNjdEp5bGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdNRHRjYmlBZ0lDQWdJQ0FnWld4elpTQnBaaUFvWVZzd1hTQTlQVDBnSnkwbktWeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQXRNVHRjYmlBZ0lDQWdJQ0FnWld4elpTQXZLaUFvWWxzd1hTQTlQVDBnSnkwbktTQXFMMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUFyTVR0Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQmxiblJ5ZVNCdlppQmxiblJ5YVdWektTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElIQnRTVzVtYnpvZ1VHOXphWFJwYjI1TmIyNXZiV1Z5U1c1bWJ5QTlJR1Z1ZEhKNVd6RmRPMXh1SUNBZ0lDQWdJQ0F2THlCamIyNXpkQ0J0T2lCemRISnBibWNnUFNCbGJuUnllVnN3WFR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYURvZ2JuVnRZbVZ5SUQwZ2JXRjRTR1ZwWjJoMElDb2djRzFKYm1adkxtTnZkVzUwSUM4Z2NtOTNRMjkxYm5RN1hHNWNiaUFnSUNBZ0lDQWdjRzFKYm1adkxtSnZkVzVrY3lBOUlHNWxkeUJFUnk1U1pXTjBLR3BRYjNNZ0tpQjBhR2x6TG5CdmMybDBhVzl1VjJsa2RHaFhhWFJvVFdGeVoybHVMQ0I1TENCMGFHbHpMbDl3YjNOcGRHbHZibGRwWkhSb0xDQm9LVHRjYmlBZ0lDQWdJQ0FnZVNBclBTQm9PMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNBdkx5TmxibVJ5WldkcGIyNWNiaUFnZlZ4dVhHNGdJQzh2SUhKbFpteGxZM1FnWTJoaGJtZGxjeUJ0WVdSbElIUnZJR1pwYkhSbGNpOXpaV3hsWTNScGIyNWNiaUFnY21WdVpHVnlLSEpsWTJGc1l5QTlJSFJ5ZFdVcElIdGNiaUFnSUNCcFppQW9kR2hwY3k1dGMyZEliM04wS1NCN1hHNGdJQ0FnSUNCcFppQW9kR2hwY3k1elpYRkRiMndnSmlZZ0lYUm9hWE11WTNBcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1dGMyZEliM04wSVM1cGJtNWxjbFJsZUhRZ1BTQmdWVzVyYm05M2JpQndZV3hsZEhSbElDaGpiMngxYlc0Z2MyVnRWSGx3WlRvZ0p5UjdkR2hwY3k1elpYRkRiMnd1YzJWdFZIbHdaWDBuS1M1Z08xeHVJQ0FnSUNBZ0lDQjBhR2x6TG0xelowaHZjM1FoTG5OMGVXeGxMbVJwYzNCc1lYa2dQU0FuSnp0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXViWE5uU0c5emRDRXVjM1I1YkdVdVpHbHpjR3hoZVNBOUlDZHViMjVsSnp0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb0lYUm9hWE11WTJGdWRtRnpJSHg4SUNGMGFHbHpMbk5sY1VOdmJDQjhmQ0FoZEdocGN5NWtZWFJoUm5KaGJXVWdmSHdnSVhSb2FYTXVZM0FwWEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzVjYmlBZ0lDQmpiMjV6ZENCbklEMGdkR2hwY3k1allXNTJZWE11WjJWMFEyOXVkR1Y0ZENnbk1tUW5LVHRjYmlBZ0lDQnBaaUFvSVdjcElISmxkSFZ5Ymp0Y2JseHVJQ0FnSUdOdmJuTjBJSElnUFNCM2FXNWtiM2N1WkdWMmFXTmxVR2w0Wld4U1lYUnBienRjYmx4dUlDQWdJR2xtSUNoeVpXTmhiR01wWEc0Z0lDQWdJQ0IwYUdsekxsOWpZV3hqZFd4aGRHVW9jaWs3WEc1Y2JpQWdJQ0JuTG5KbGMyVjBWSEpoYm5ObWIzSnRLQ2s3WEc0Z0lDQWdaeTVtYVd4c1UzUjViR1VnUFNBbmQyaHBkR1VuTzF4dUlDQWdJR2N1Wm1sc2JGSmxZM1FvTUN3Z01Dd2dkR2hwY3k1allXNTJZWE11ZDJsa2RHZ3NJSFJvYVhNdVkyRnVkbUZ6TG1obGFXZG9kQ2s3WEc0Z0lDQWdaeTUwWlhoMFFtRnpaV3hwYm1VZ1BTQjBhR2x6TG5SbGVIUkNZWE5sYkdsdVpUdGNibHh1SUNBZ0lDOHZJRkJ5WlhabGJuUnpJR1JwZG1semFXOXVJR0o1SUhwbGNtOGdiMjRnVEdWdVozUm9JRDBnTUZ4dUlDQWdJR2xtSUNoMGFHbHpMbk4wWVhKMFVHOXphWFJwYjI0Z1BUMDlJQzB4SUh4OElIUm9hWE11Wlc1a1VHOXphWFJwYjI0Z1BUMDlJQzB4S1Z4dUlDQWdJQ0FnY21WMGRYSnVPMXh1WEc0Z0lDQWdMeThqY21WbmFXOXVJRkJzYjNRZ2NHOXphWFJwYjI1T1lXMWxjMXh1SUNBZ0lHTnZibk4wSUhCdmMybDBhVzl1Um05dWRGTnBlbVVnUFNBeE1DQXFJSEk3WEc0Z0lDQWdaeTV5WlhObGRGUnlZVzV6Wm05eWJTZ3BPMXh1SUNBZ0lHY3VabWxzYkZOMGVXeGxJRDBnSjJKc1lXTnJKenRjYmlBZ0lDQm5MblJsZUhSQmJHbG5iaUE5SUNkalpXNTBaWEluTzF4dUlDQWdJR2N1Wm05dWRDQTlJR0FrZTNCdmMybDBhVzl1Um05dWRGTnBlbVV1ZEc5R2FYaGxaQ2d4S1gxd2VDQlNiMkp2ZEc4c0lGSnZZbTkwYnlCTWIyTmhiQ3dnYzJGdWN5MXpaWEpwWm1BN1hHNGdJQ0FnWTI5dWMzUWdjRzl6VG1GdFpVMWhlRmRwWkhSb0lEMGdUV0YwYUM1dFlYZ29MaTR1ZEdocGN5NXdiM05wZEdsdmJuTXViV0Z3S0Nod2IzTXBJRDArSUdjdWJXVmhjM1Z5WlZSbGVIUW9jRzl6TG01aGJXVXBMbmRwWkhSb0tTazdYRzRnSUNBZ1kyOXVjM1FnYUZOallXeGxJRDBnY0c5elRtRnRaVTFoZUZkcFpIUm9JRHdnS0hSb2FYTXVYM0J2YzJsMGFXOXVWMmxrZEdnZ0xTQXlLU0EvSURFZ09pQW9kR2hwY3k1ZmNHOXphWFJwYjI1WGFXUjBhQ0F0SURJcElDOGdjRzl6VG1GdFpVMWhlRmRwWkhSb08xeHVYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FsQnZjeUE5SURBN0lHcFFiM01nUENCMGFHbHpMa3hsYm1kMGFEc2dhbEJ2Y3lzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCd2IzTTZJRkJ2YzJsMGFXOXVTVzVtYnlBOUlIUm9hWE11Y0c5emFYUnBiMjV6VzJwUWIzTmRPMXh1SUNBZ0lDQWdaeTV5WlhObGRGUnlZVzV6Wm05eWJTZ3BPMXh1SUNBZ0lDQWdaeTV6WlhSVWNtRnVjMlp2Y20wb1hHNGdJQ0FnSUNBZ0lHaFRZMkZzWlN3Z01Dd2dNQ3dnTVN4Y2JpQWdJQ0FnSUNBZ2FsQnZjeUFxSUhSb2FYTXVjRzl6YVhScGIyNVhhV1IwYUZkcGRHaE5ZWEpuYVc0Z0t5QjBhR2x6TGw5d2IzTnBkR2x2YmxkcFpIUm9JQzhnTWl3Z01DazdYRzRnSUNBZ0lDQm5MbVpwYkd4VVpYaDBLSEJ2Y3k1dVlXMWxMQ0F3TENBd0tUdGNiaUFnSUNCOVhHNGdJQ0FnTHk4alpXNWtjbVZuYVc5dUlGQnNiM1FnY0c5emFYUnBiMjVPWVcxbGMxeHVYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FsQnZjeUE5SURBN0lHcFFiM01nUENCMGFHbHpMa3hsYm1kMGFEc2dhbEJ2Y3lzcktTQjdYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJRnR0YjI1dmJXVnlMQ0J3YlVsdVptOWRJRzltSUU5aWFtVmpkQzVsYm5SeWFXVnpLSFJvYVhNdWNHOXphWFJwYjI1elcycFFiM05kTG1aeVpYRXBLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaHRiMjV2YldWeUlDRTlQU0FuTFNjcElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnRiMjV2YldWeVZIaDBJRDBnVjJWaVRHOW5ieTV0YjI1dmJXVnlWRzlVWlhoMEtHMXZibTl0WlhJcE8xeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHSWdQU0J3YlVsdVptOHVZbTkxYm1Sek8xeHVYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdabTl1ZEZOMGVXeGxJRDBnSnpFMmNIZ2dVbTlpYjNSdkxDQlNiMkp2ZEc4Z1RHOWpZV3dzSUhOaGJuTXRjMlZ5YVdZbk8xeHVJQ0FnSUNBZ0lDQWdJQzh2SUVoaFkydHpJSFJ2SUhOallXeGxJSFZ3Y0dWeVkyRnpaU0JqYUdGeVlXTjBaWEp6SUhSdklIUmhjbWRsZENCeVpXTjBZVzVuYkdWY2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCMWNIQmxjbU5oYzJWTVpYUjBaWEpCYzJObGJuUWdQU0F3TGpJMU8xeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElIVndjR1Z5WTJGelpVeGxkSFJsY2tobGFXZG9kQ0E5SURFeUxqSTdYRzVjYmlBZ0lDQWdJQ0FnSUNCbkxuSmxjMlYwVkhKaGJuTm1iM0p0S0NrN1hHNGdJQ0FnSUNBZ0lDQWdaeTV6ZEhKdmEyVlRkSGxzWlNBOUlDZHNhV2RvZEdkeVlYa25PMXh1SUNBZ0lDQWdJQ0FnSUdjdWJHbHVaVmRwWkhSb0lEMGdNVHRjYmlBZ0lDQWdJQ0FnSUNCbkxuSmxZM1FvWWk1c1pXWjBMQ0JpTG5SdmNDd2dZaTUzYVdSMGFDd2dZaTVvWldsbmFIUXBPMXh1SUNBZ0lDQWdJQ0FnSUdjdVptbHNiRk4wZVd4bElEMGdkR2hwY3k1amNDNW5aWFFvYlc5dWIyMWxjaWtnUHo4Z2RHaHBjeTVqY0M1blpYUW9KMjkwYUdWeUp5azdYRzRnSUNBZ0lDQWdJQ0FnWnk1MFpYaDBRV3hwWjI0Z1BTQW5iR1ZtZENjN1hHNGdJQ0FnSUNBZ0lDQWdaeTVtYjI1MElEMGdabTl1ZEZOMGVXeGxPMXh1SUNBZ0lDQWdJQ0FnSUM4dlp5NW1hV3hzVW1WamRDaGlMbXhsWm5Rc0lHSXVkRzl3TENCaUxuZHBaSFJvTENCaUxtaGxhV2RvZENrN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JWUnRPaUJVWlhoMFRXVjBjbWxqY3lBOUlHY3ViV1ZoYzNWeVpWUmxlSFFvYlc5dWIyMWxjbFI0ZENrN1hHNWNiaUFnSUNBZ0lDQWdJQ0F2THlCcFppQW9iVTB1WVdOMGRXRnNRbTkxYm1ScGJtZENiM2hCYzJObGJuUWdJVDBnTUNsY2JpQWdJQ0FnSUNBZ0lDQXZMeUFnSUdOdmJuTnZiR1V1WkdWaWRXY29ZRzA2SUNSN2JYMHNJRzFOTG1GamRIVmhiRUp2ZFc1a2FXNW5RbTk0UVhOalpXNTBPaUFrZTIxTkxtRmpkSFZoYkVKdmRXNWthVzVuUW05NFFYTmpaVzUwZldBcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnWnk1elpYUlVjbUZ1YzJadmNtMG9YRzRnSUNBZ0lDQWdJQ0FnSUNCaUxuZHBaSFJvSUM4Z2JWUnRMbmRwWkhSb0xDQXdMQ0F3TENCaUxtaGxhV2RvZENBdklIVndjR1Z5WTJGelpVeGxkSFJsY2tobGFXZG9kQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHSXViR1ZtZEN3Z1lpNTBiM0FwTzF4dUlDQWdJQ0FnSUNBZ0lHY3VabWxzYkZSbGVIUW9iVzl1YjIxbGNsUjRkQ3dnTUN3Z0xYVndjR1Z5WTJGelpVeGxkSFJsY2tGelkyVnVkQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdOaGJHTlRhWHBsS0NrZ2UxeHVJQ0FnSUdsbUlDZ2hkR2hwY3k1allXNTJZWE1nZkh3Z0lYUm9hWE11YUc5emRDbGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JseHVJQ0FnSUdOdmJuTjBJSEk2SUc1MWJXSmxjaUE5SUhkcGJtUnZkeTVrWlhacFkyVlFhWGhsYkZKaGRHbHZPMXh1WEc0Z0lDQWdiR1YwSUhkcFpIUm9PaUJ1ZFcxaVpYSWdQU0IwYUdsekxreGxibWQwYUNBcUlIUm9hWE11Y0c5emFYUnBiMjVYYVdSMGFGZHBkR2hOWVhKbmFXNGdMeUJ5TzF4dUlDQWdJR3hsZENCb1pXbG5hSFFnUFNCTllYUm9MbTFwYmloMGFHbHpMbTFoZUVobGFXZG9kQ3dnVFdGMGFDNXRZWGdvZEdocGN5NXRhVzVJWldsbmFIUXNJSFJvYVhNdWNtOXZkQzVqYkdsbGJuUklaV2xuYUhRcEtUdGNibHh1SUNBZ0lHbG1JQ2gwYUdsekxtWnBkRUZ5WldFcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhoVFkyRnNaVG9nYm5WdFltVnlJRDBnZEdocGN5NXliMjkwTG1Oc2FXVnVkRWhsYVdkb2RDQXZJR2hsYVdkb2REdGNiaUFnSUNBZ0lHTnZibk4wSUhsVFkyRnNaVG9nYm5WdFltVnlJRDBnZEdocGN5NXliMjkwTG1Oc2FXVnVkRmRwWkhSb0lDOGdkMmxrZEdnN1hHNGdJQ0FnSUNCamIyNXpkQ0J6WTJGc1pTQTlJRTFoZEdndWJXRjRLREVzSUUxaGRHZ3ViV2x1S0hoVFkyRnNaU3dnZVZOallXeGxLU2s3WEc0Z0lDQWdJQ0IzYVdSMGFDQTlJSGRwWkhSb0lDb2djMk5oYkdVN1hHNGdJQ0FnSUNCb1pXbG5hSFFnUFNCb1pXbG5hSFFnS2lCelkyRnNaVHRjYmlBZ0lDQWdJSFJvYVhNdVgzQnZjMmwwYVc5dVYybGtkR2dnUFNCMGFHbHpMbkJ2YzJsMGFXOXVWMmxrZEdnZ0tpQnpZMkZzWlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0IwYUdsekxtTmhiblpoY3k1M2FXUjBhQ0E5SUhkcFpIUm9JQ29nY2p0Y2JpQWdJQ0IwYUdsekxtTmhiblpoY3k1emRIbHNaUzUzYVdSMGFDQTlJR0FrZTNkcFpIUm9mWEI0WUR0Y2JseHVJQ0FnSUM4dklHTnZibk4wSUdOaGJuWmhjMGhsYVdkb2REb2diblZ0WW1WeUlEMGdkMmxrZEdnZ1BpQjBhR2x6TG5KdmIzUXVZMnhwWlc1MFYybGtkR2dnUHlCb1pXbG5hSFFnTFNBNElEb2dhR1ZwWjJoME8xeHVJQ0FnSUhSb2FYTXVhRzl6ZEM1emRIbHNaUzV6WlhSUWNtOXdaWEowZVNnbmFHVnBaMmgwSnl3Z1lDUjdhR1ZwWjJoMGZYQjRZQ2s3WEc0Z0lDQWdZMjl1YzNRZ1kyRnVkbUZ6U0dWcFoyaDBPaUJ1ZFcxaVpYSWdQU0IwYUdsekxtaHZjM1F1WTJ4cFpXNTBTR1ZwWjJoME8xeHVJQ0FnSUhSb2FYTXVZMkZ1ZG1GekxtaGxhV2RvZENBOUlHTmhiblpoYzBobGFXZG9kQ0FxSUhJN1hHNGdJQ0FnZEdocGN5NWpZVzUyWVhNdWMzUjViR1V1YzJWMFVISnZjR1Z5ZEhrb0oyaGxhV2RvZENjc0lHQWtlMk5oYm5aaGMwaGxhV2RvZEgxd2VHQXBPMXh1WEc0Z0lDQWdMeThnUVdScWRYTjBJR2h2YzNRZ1lXNWtJSEp2YjNRZ2QybGtkR2hjYmlBZ0lDQnBaaUFvZEdocGN5NW1hWGhYYVdSMGFDa2dlMXh1SUNBZ0lDQWdMeThnWm5Wc2JDQjNhV1IwYUNCbWIzSWdZMkZ1ZG1GeklHaHZjM1FnWVc1a0lISnZiM1JjYmlBZ0lDQWdJSFJvYVhNdWNtOXZkQzV6ZEhsc1pTNTNhV1IwYUNBOUlIUm9hWE11YUc5emRDNXpkSGxzWlM1M2FXUjBhQ0E5SUdBa2UzZHBaSFJvZlhCNFlEdGNiaUFnSUNBZ0lIUm9hWE11Y205dmRDNXpkSGxzWlM1b1pXbG5hSFFnUFNCZ0pIdG9aV2xuYUhSOWNIaGdPMXh1SUNBZ0lDQWdkR2hwY3k1b2IzTjBMbk4wZVd4bExuTmxkRkJ5YjNCbGNuUjVLQ2R2ZG1WeVpteHZkeWNzSUNkb2FXUmtaVzRuTENBbmFXMXdiM0owWVc1MEp5azdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUM4dklHRnNiRzkzSUhOamNtOXNiQ0JqWVc1MllYTWdhVzRnY205dmRGeHVJQ0FnSUNBZ2RHaHBjeTV5YjI5MExuTjBlV3hsTG5kcFpIUm9JRDBnZEdocGN5NW9iM04wTG5OMGVXeGxMbmRwWkhSb0lEMGdKekV3TUNVbk8xeHVJQ0FnSUNBZ2RHaHBjeTVvYjNOMExuTjBlV3hsTG05MlpYSm1iRzkzV0NBOUlDZGhkWFJ2SVdsdGNHOXlkR0Z1ZENjN1hHNGdJQ0FnSUNCMGFHbHpMbWh2YzNRdWMzUjViR1V1YzJWMFVISnZjR1Z5ZEhrb0oyOTJaWEptYkc5M0p5d2diblZzYkNrN1hHNWNiaUFnSUNBZ0lIUm9hWE11YUc5emRDNXpkSGxzWlM1elpYUlFjbTl3WlhKMGVTZ25kR1Y0ZEMxaGJHbG5iaWNzSUhSb2FYTXVhRzl5YVhwdmJuUmhiRUZzYVdkdWJXVnVkQ2s3WEc1Y2JpQWdJQ0FnSUM4dklIWmxjblJwWTJGc0lHRnNhV2R1YldWdWRGeHVJQ0FnSUNBZ2JHVjBJR2h2YzNSVWIzQk5ZWEpuYVc0Z1BTQXdPMXh1SUNBZ0lDQWdjM2RwZEdOb0lDaDBhR2x6TG5abGNuUnBZMkZzUVd4cFoyNXRaVzUwS1NCN1hHNGdJQ0FnSUNCallYTmxJQ2QwYjNBbk9seHVJQ0FnSUNBZ0lDQm9iM04wVkc5d1RXRnlaMmx1SUQwZ01EdGNiaUFnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNCallYTmxJQ2R0YVdSa2JHVW5PbHh1SUNBZ0lDQWdJQ0JvYjNOMFZHOXdUV0Z5WjJsdUlEMGdUV0YwYUM1dFlYZ29NQ3dnS0hSb2FYTXVjbTl2ZEM1amJHbGxiblJJWldsbmFIUWdMU0JvWldsbmFIUXBJQzhnTWlrN1hHNGdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnWTJGelpTQW5ZbTkwZEc5dEp6cGNiaUFnSUNBZ0lDQWdhRzl6ZEZSdmNFMWhjbWRwYmlBOUlFMWhkR2d1YldGNEtEQXNJSFJvYVhNdWNtOXZkQzVqYkdsbGJuUklaV2xuYUhRZ0xTQm9aV2xuYUhRcE8xeHVJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhSb2FYTXVhRzl6ZEM1emRIbHNaUzV6WlhSUWNtOXdaWEowZVNnbmJXRnlaMmx1TFhSdmNDY3NJR0FrZTJodmMzUlViM0JOWVhKbmFXNTljSGhnTENBbmFXMXdiM0owWVc1MEp5azdYRzVjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbkp2YjNRdVkyeHBaVzUwU0dWcFoyaDBJRHdnYUdWcFoyaDBLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVhRzl6ZEM1emRIbHNaUzV6WlhSUWNtOXdaWEowZVNnbmFHVnBaMmgwSnl3Z1lDUjdkR2hwY3k1eWIyOTBMbU5zYVdWdWRFaGxhV2RvZEgxd2VHQXBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtaHZjM1F1YzNSNWJHVXVjMlYwVUhKdmNHVnlkSGtvSjI5MlpYSm1iRzkzTFhrbkxDQnVkV3hzS1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVhRzl6ZEM1emRIbHNaUzV6WlhSUWNtOXdaWEowZVNnbmIzWmxjbVpzYjNjdGVTY3NJQ2RvYVdSa1pXNG5MQ0FuYVcxd2IzSjBZVzUwSnlrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4Z1kyOXVjMjlzWlM1a1pXSjFaeWhjYmlBZ0lDQXZMeUFnSUdCMGFHbHpMbkp2YjNRdWMzUjViR1V1YUdWcFoyaDBJRDBnSkh0MGFHbHpMbkp2YjNRdWMzUjViR1V1YUdWcFoyaDBmVnhjYm1BZ0sxeHVJQ0FnSUM4dklDQWdZSFJvYVhNdWNtOXZkQzVqYkdsbGJuUklaV2xuYUhRZ1BTQWtlM1JvYVhNdWNtOXZkQzVqYkdsbGJuUklaV2xuYUhSOVhGeHVZQ0FyWEc0Z0lDQWdMeThnSUNCZ2RHaHBjeTVvYjNOMExuTjBlV3hsTG1obGFXZG9kQ0E5SUNSN2RHaHBjeTVvYjNOMExuTjBlV3hsTG1obGFXZG9kSDFjWEc1Z0lDdGNiaUFnSUNBdkx5QWdJR0IwYUdsekxtaHZjM1F1WTJ4cFpXNTBTR1ZwWjJoMElEMGdKSHQwYUdsekxtaHZjM1F1WTJ4cFpXNTBTR1ZwWjJoMGZWeGNibUFnSzF4dUlDQWdJQzh2SUNBZ0oxeGNiaWNnSzF4dUlDQWdJQzh2SUNBZ1lIUm9hWE11WTJGdWRtRnpMbWhsYVdkb2RDQWdJQ0FnSUNBOUlDUjdkR2hwY3k1allXNTJZWE11YUdWcFoyaDBmVnhjYm1BZ0sxeHVJQ0FnSUM4dklDQWdZSFJvYVhNdVkyRnVkbUZ6TG5OMGVXeGxMbWhsYVdkb2RDQTlJQ1I3ZEdocGN5NWpZVzUyWVhNdWMzUjViR1V1YUdWcFoyaDBmV0FwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQndZWEpoYlNCN1JFY3VRMjlzZFcxdWZTQnpaWEZEYjJ3Z1EyOXNkVzF1SUhSdklHeHZiMnNnWm05eUlHRWdjR0ZzWlhSMFpWeHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnSUcxcGJreGxibWQwYUNCdGFXNXBiWFZ0SUd4bGJtZDBhQ0J2WmlCelpYRjFaVzVqWlNCMGJ5QmtaWFJsWTNRZ2NHRnNaWFIwWlNBb1pXMXdkSGtnYzNSeWFXNW5jeUJoY21VZ1lXeHNiM2RsWkNsY2JpQWdJQ29nUUhKbGRIVnliaUI3VTJWeFVHRnNaWFIwWlgwZ1VHRnNaWFIwWlNCamIzSnlaWE53YjI1a2FXNW5JSFJ2SUhSb1pTQmhiSEJvWVdKbGRDQnZaaUIwYUdVZ2MyVnhkV1Z1WTJWeklHbHVJSFJvWlNCamIyeDFiVzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdjR2xqYTFWd1VHRnNaWFIwWlNoelpYRkRiMnc2SUVSSExrTnZiSFZ0Yml3Z2JXbHVUR1Z1WjNSb09pQnVkVzFpWlhJZ1BTQTFLVG9nVTJWeFVHRnNaWFIwWlNCN1hHNGdJQ0FnYkdWMElISmxjem9nVTJWeFVHRnNaWFIwWlNCOElHNTFiR3dnUFNCdWRXeHNPMXh1SUNBZ0lITjNhWFJqYUNBb2MyVnhRMjlzTG5ObGJWUjVjR1VwSUh0Y2JpQWdJQ0JqWVhObElFRnRhVzV2WVdOcFpITXVVMlZ0Vkhsd1pVMTFiSFJwY0d4bFFXeHBaMjV0Wlc1ME9seHVJQ0FnSUNBZ2NtVnpJRDBnUVcxcGJtOWhZMmxrYzFCaGJHVjBkR1Z6TGtkeWIydEhjbTkxY0hNN1hHNGdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQmpZWE5sSUU1MVkyeGxiM1JwWkdWekxsTmxiVlI1Y0dWTmRXeDBhWEJzWlVGc2FXZHViV1Z1ZERwY2JpQWdJQ0FnSUhKbGN5QTlJRTUxWTJ4bGIzUnBaR1Z6VUdGc1pYUjBaWE11UTJoeWIyMWhkRzluY21GdE8xeHVJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUhOMFlYUnpPaUJUWlhGRGIyeFRkR0YwY3lBOUlGZGxZa3h2WjI4dVoyVjBVM1JoZEhNb2MyVnhRMjlzTENCdGFXNU1aVzVuZEdnc0lGZGxZa3h2WjI4dWMzQnNhWFIwWlhKQmMwWmhjM1JoS1R0Y2JseHVJQ0FnSUdOdmJuTjBJR0ZzY0doaFltVjBRMkZ1Wkdsa1lYUmxjem9nVzFObGREeHpkSEpwYm1jK0xDQlRaWEZRWVd4bGRIUmxYVnRkSUQwZ1cxeHVJQ0FnSUNBZ1cyNWxkeUJUWlhRb1QySnFaV04wTG10bGVYTW9UblZqYkdWdmRHbGtaWE11VG1GdFpYTXBLU3dnVG5WamJHVnZkR2xrWlhOUVlXeGxkSFJsY3k1RGFISnZiV0YwYjJkeVlXMWRMRnh1SUNBZ0lDQWdXMjVsZHlCVFpYUW9UMkpxWldOMExtdGxlWE1vUVcxcGJtOWhZMmxrY3k1T1lXMWxjeWtwTENCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhNdVIzSnZhMGR5YjNWd2MxMHNYRzRnSUNBZ1hUdGNiaUFnSUNBdkx5QkRZV3hqZFd4aGRHVWdiR2xyWld4cGFHOXZaSE1nWm05eUlHRnNjR2hoWW1WMFgyTmhibVJwWkdGMFpYTmNiaUFnSUNCamIyNXpkQ0JoYkhCb1lXSmxkRU5oYm1ScFpHRjBaWE5UYVcwNklHNTFiV0psY2x0ZElEMGdZV3h3YUdGaVpYUkRZVzVrYVdSaGRHVnpYRzRnSUNBZ0lDQXViV0Z3S0NoaktTQTlQaUJYWldKTWIyZHZMbWRsZEVGc2NHaGhZbVYwVTJsdGFXeGhjbWwwZVNoemRHRjBjeTVtY21WeExDQmpXekJkS1NrN1hHNGdJQ0FnWTI5dWMzUWdiV0Y0UTI5eklEMGdUV0YwYUM1dFlYZ29MaTR1WVd4d2FHRmlaWFJEWVc1a2FXUmhkR1Z6VTJsdEtUdGNiaUFnSUNCcFppQW9iV0Y0UTI5eklENGdNQzQxTlNsY2JpQWdJQ0FnSUhKbGN5QTlJR0ZzY0doaFltVjBRMkZ1Wkdsa1lYUmxjMXRoYkhCb1lXSmxkRU5oYm1ScFpHRjBaWE5UYVcwdWFXNWtaWGhQWmlodFlYaERiM01wWFZzeFhUdGNiaUFnSUNCbGJITmxYRzRnSUNBZ0lDQnlaWE1nUFNCVmJtdHViM2R1VTJWeFVHRnNaWFIwWlhNdVEyOXNiM0k3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdjbVZ6TzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdkbGRFRnNjR2hoWW1WMFUybDZaU2dwT2lCdWRXMWlaWElnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5WdWFYUnpTR0Z1Wkd4bGNqOHVaMlYwUVd4d2FHRmlaWFJUYVhwbEtDa2dQejhnTUR0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJUZEdGMGN5QnZaaUJ6WlhGMVpXNWpaWE1nZDJsMGFDQnpjR1ZqYVdacFpXUWdjM0JzYVhSMFpYSWdablZ1WXl3Z2NtVjBkWEp1Y3lCN0lHWnlaWEVzSUhOaGJXVk1aVzVuZEdnZ2ZTNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0RVJ5NURiMngxYlc1OUlITmxjVU52YkZ4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdiV2x1VEdWdVozUm9YRzRnSUNBcUlFQndZWEpoYlNCN1UzQnNhWFIwWlhKR2RXNWpmU0J6Y0d4cGRIUmxjbHh1SUNBZ0tpQkFjbVYwZFhKdUlIc2dVMlZ4UTI5c1UzUmhkSE1nZlN3Z2MyRnRaVXhsYm1kMGFEb2dZbTl2YkdWaGJpQjlJSE4wWVhSeklHOW1JR052YkhWdGJpQnpaWEYxWlc1alpYTmNiaUFnSUNvdlhHNGdJSE4wWVhScFl5Qm5aWFJUZEdGMGN5aHpaWEZEYjJ3NklFUkhMa052YkhWdGJpd2diV2x1VEdWdVozUm9PaUJ1ZFcxaVpYSXNJSE53YkdsMGRHVnlPaUJUY0d4cGRIUmxja1oxYm1NcE9pQlRaWEZEYjJ4VGRHRjBjeUI3WEc0Z0lDQWdZMjl1YzNRZ1puSmxjVG9nZXlCYmJUb2djM1J5YVc1blhUb2diblZ0WW1WeUlIMGdQU0I3ZlR0Y2JpQWdJQ0JzWlhRZ2MyRnRaVXhsYm1kMGFDQTlJSFJ5ZFdVN1hHNGdJQ0FnYkdWMElHWnBjbk4wVEdWdVozUm9JRDBnYm5Wc2JEdGNibHh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdjMlZ4SUc5bUlITmxjVU52YkM1allYUmxaMjl5YVdWektTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCdFUyVnhJRDBnYzNCc2FYUjBaWElvYzJWeEtUdGNibHh1SUNBZ0lDQWdhV1lnS0dacGNuTjBUR1Z1WjNSb0lEMDlJRzUxYkd3cFhHNGdJQ0FnSUNBZ0lHWnBjbk4wVEdWdVozUm9JRDBnYlZObGNTNXNaVzVuZEdnN1hHNGdJQ0FnSUNCbGJITmxJR2xtSUNodFUyVnhMbXhsYm1kMGFDQWhQVDBnWm1seWMzUk1aVzVuZEdncFhHNGdJQ0FnSUNBZ0lITmhiV1ZNWlc1bmRHZ2dQU0JtWVd4elpUdGNibHh1SUNBZ0lDQWdhV1lnS0cxVFpYRXViR1Z1WjNSb0lENGdiV2x1VEdWdVozUm9LU0I3WEc0Z0lDQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2JTQnZaaUJ0VTJWeEtTQjdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tDRW9iU0JwYmlCbWNtVnhLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnlaWEZiYlYwZ1BTQXdPMXh1SUNBZ0lDQWdJQ0FnSUdaeVpYRmJiVjBnS3owZ01UdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZTJaeVpYRTZJR1p5WlhFc0lITmhiV1ZNWlc1bmRHZzZJSE5oYldWTVpXNW5kR2g5TzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJuWlhSQmJIQm9ZV0psZEZOcGJXbHNZWEpwZEhrb1puSmxjVG9nVFc5dWIyMWxja1p5WlhGekxDQmhiSEJvWVdKbGREb2dVMlYwUEhOMGNtbHVaejRzSUdkaGNGTjViV0p2YkRvZ2MzUnlhVzVuSUQwZ0p5MG5LVG9nYm5WdFltVnlJSHRjYmlBZ0lDQmpiMjV6ZENCclpYbHpJRDBnYm1WM0lGTmxkRHh6ZEhKcGJtYytLRnN1TGk1dVpYY2dVMlYwS0U5aWFtVmpkQzVyWlhsektHWnlaWEVwS1N3Z0xpNHVZV3h3YUdGaVpYUmRLVHRjYmlBZ0lDQnJaWGx6TG1SbGJHVjBaU2huWVhCVGVXMWliMndwTzF4dVhHNGdJQ0FnWTI5dWMzUWdabkpsY1VFNklHNTFiV0psY2x0ZElEMGdXMTA3WEc0Z0lDQWdZMjl1YzNRZ1lXeHdhR0ZpWlhSQk9pQnVkVzFpWlhKYlhTQTlJRnRkTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYlNCdlppQnJaWGx6S1NCN1hHNGdJQ0FnSUNCbWNtVnhRUzV3ZFhOb0tHMGdhVzRnWm5KbGNTQS9JR1p5WlhGYmJWMGdPaUF3S1R0Y2JpQWdJQ0FnSUdGc2NHaGhZbVYwUVM1d2RYTm9LR0ZzY0doaFltVjBMbWhoY3lodEtTQS9JREVnT2lBd0tUdGNiaUFnSUNCOVhHNGdJQ0FnTHlvZ1ZHaGxjbVVnZDJWeVpTQmhJR1psZHlCcFpHVmhjem9nWTJocExYTnhkV0Z5WldRc0lIQmxZWEp6YjI0Z1kyOXljbVZzWVhScGIyNGdLSFpoY21saGJtTmxQeWtzSUhOallXeGhjaUJ3Y205a2RXTjBJQ292WEc0Z0lDQWdZMjl1YzNRZ1puSmxjVlk2SUZabFkzUnZjaUE5SUc1bGR5QldaV04wYjNJb1puSmxjVUVwTzF4dUlDQWdJR052Ym5OMElHRnNjR2hoWW1WMFZqb2dWbVZqZEc5eUlEMGdibVYzSUZabFkzUnZjaWhoYkhCb1lXSmxkRUVwTzF4dUlDQWdJSEpsZEhWeWJpQjJaV04wYjNKRWIzUlFjbTlrZFdOMEtHWnlaWEZXTENCaGJIQm9ZV0psZEZZcElDOGdLSFpsWTNSdmNreGxibWQwYUNobWNtVnhWaWtnS2lCMlpXTjBiM0pNWlc1bmRHZ29ZV3h3YUdGaVpYUldLU2s3WEc0Z0lIMWNibHh1SUNBdkx5QXZLaW9nUm1seWMzUWdkSEo1SUhSdklHWnBibVFnWTI5c2RXMXVJSGRwZEdnZ2MyVnRWSGx3WlNBbllXeHBaMjVsWkZObGNYVmxibU5sSnk1Y2JpQWdMeThnSUNvZ1RtVjRkQ0JzYjI5cklHWnZjaUJqYjJ4MWJXNGdkMmwwYUNCa1lYUmhJR0ZzY0doaFltVjBJR052Y25KbGMzQnZibVJwYm1jZ2RHOGdZVzU1SUc5bUlIUm9aU0JyYm05M2JpQndZV3hsZEhSbGN5NWNiaUFnTHk4Z0lDb2dRSEJoY21GdElIdEVSeTVFWVhSaFJuSmhiV1Y5SUdSaGRHRkdjbUZ0WlZ4dUlDQXZMeUFnS2lCQWNtVjBkWEp1SUh0RVJ5NURiMngxYlc1OUlGUm9aU0JqYjJ4MWJXNGdkMlVnZDJWeVpTQnNiMjlyYVc1bklHWnZjaUJ2Y2lCdWRXeHNYRzRnSUM4dklDQXFMMXh1SUNBdkx5QndjbWwyWVhSbElIQnBZMnRWY0ZObGNVTnZiQ2hrWVhSaFJuSmhiV1U2SUVSSExrUmhkR0ZHY21GdFpTazZJRVJITGtOdmJIVnRiaUI4SUc1MWJHd2dlMXh1SUNBdkx5QWdJR3hsZENCeVpYTTZJRVJITGtOdmJIVnRiaUI4SUc1MWJHd2dQU0JrWVhSaFJuSmhiV1V1WTI5c2RXMXVjeTVpZVZObGJWUjVjR1VvSjJGc2FXZHVaV1JUWlhGMVpXNWpaU2NwTzF4dUlDQXZMeUFnSUdsbUlDaHlaWE1nUFQwZ2JuVnNiQ2tnZTF4dUlDQXZMeUFnSUNBZ1ptOXlJQ2hqYjI1emRDQmpiMndnYjJZZ1pHRjBZVVp5WVcxbExtTnZiSFZ0Ym5NcElIdGNiaUFnTHk4Z0lDQWdJQ0FnWTI5dWMzUWdZM0FnUFNCWFpXSk1iMmR2TG5CcFkydFZjRkJoYkdWMGRHVW9ZMjlzSUdGeklFUkhMa052YkhWdGJpd2dOU2s3WEc0Z0lDOHZJQ0FnSUNBZ0lHbG1JQ2hqY0NBaFBUMGdiblZzYkNBbUppQWhLR053SUdsdWMzUmhibU5sYjJZZ1ZXNXJibTkzYmxObGNWQmhiR1YwZEdVcEtTQjdYRzRnSUM4dklDQWdJQ0FnSUNBZ2NtVnpJRDBnWTI5c08xeHVJQ0F2THlBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBdkx5QWdJQ0FnSUNCOVhHNGdJQzh2SUNBZ0lDQjlYRzRnSUM4dklDQWdmVnh1SUNBdkx5QWdJSEpsZEhWeWJpQnlaWE03WEc0Z0lDOHZJSDFjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUhCcFkydFZjRk5sY1VOdmJESW9aR1k2SUVSSExrUmhkR0ZHY21GdFpTazZJRVJITGtOdmJIVnRiaUI4SUc1MWJHd2dlMXh1SUNBZ0lHTnZibk4wSUhObGJWUjVjR1ZEYjJ4TWFYTjBJRDBnWkdZdVkyOXNkVzF1Y3k1aWVWTmxiVlI1Y0dWQmJHd29SRWN1VTBWTlZGbFFSUzVOUVVOU1QwMVBURVZEVlV4RktUdGNiaUFnSUNCc1pYUWdjbVZ6UTI5c09pQkVSeTVEYjJ4MWJXNGdmQ0J1ZFd4c0lEMGdjMlZ0Vkhsd1pVTnZiRXhwYzNRdVptbHVaQ2dvWTI5c0tTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQjFibWwwY3lBOUlHTnZiQzVuWlhSVVlXY29SRWN1VkVGSFV5NVZUa2xVVXlrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZFc1cGRITWdQeUIxYm1sMGN5NXBibVJsZUU5bUtDZE5VMEVuS1NBaFBUMGdMVEVnT2lCbVlXeHpaVHRjYmlBZ0lDQjlLU0EvUHlCdWRXeHNPMXh1SUNBZ0lHbG1JQ2doY21WelEyOXNJQ1ltSUhObGJWUjVjR1ZEYjJ4TWFYTjBMbXhsYm1kMGFDQStJREFwWEc0Z0lDQWdJQ0J5WlhORGIyd2dQU0J6WlcxVWVYQmxRMjlzVEdsemRGc3dYVHRjYmlBZ0lDQnlaWFIxY200Z2NtVnpRMjlzTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCemRHRjBhV01nYlc5dWIyMWxjbEpsSUQwZ0wxeGNXeWhjWEhjcktWeGNYWHdvWEZ4M0tYd29MU2t2Wnp0Y2JseHVJQ0F2S2lvZ1UzQnNhWFFnYzJWeGRXVnVZMlVnWm05eUlITnBibWRzWlNCamFHRnlZV04wWlhJZ2JXOXViMjFsY25Nc0lITnhkV0Z5WlNCaWNtRmphMlYwY3lCdGRXeDBhV05vWVhJZ2JXOXViMjFsY2lCdVlXMWxjeUJ2Y2lCbllYQWdjM2x0WW05c0xseHVJQ0FnS2lCQWNHRnlZVzBnZTJGdWVYMGdjMlZ4SUc5aWFtVmpkQ0IzYVhSb0lITmxjWFZsYm1ObFhHNGdJQ0FxSUVCeVpYUjFjbTRnZTNOMGNtbHVaMXRkZlNCaGNuSmhlU0J2WmlCdGIyNXZiV1Z5YzF4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJ6Y0d4cGRIUmxja0Z6Um1GemRHRW9jMlZ4T2lCaGJua3BPaUJ6ZEhKcGJtZGJYU0I3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpPaUJ6ZEhKcGJtZGJYU0E5SUhkMVBGSmxaMFY0Y0UxaGRHTm9RWEp5WVhrK0tITmxjUzUwYjFOMGNtbHVaeWdwTG0xaGRHTm9RV3hzS0ZkbFlreHZaMjh1Ylc5dWIyMWxjbEpsS1NsY2JpQWdJQ0FnSUM1dFlYQW9LRzFoT2lCU1pXZEZlSEJOWVhSamFFRnljbUY1S1NBOVBpQjdYRzRnSUNBZ0lDQWdJR3hsZENCdFVtVnpPaUJ6ZEhKcGJtYzdYRzRnSUNBZ0lDQWdJR052Ym5OMElHMDZJSE4wY21sdVp5QTlJRzFoV3pCZE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYlM1c1pXNW5kR2dnUGlBeEtTQjdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tHMGdhVzRnVjJWaVRHOW5ieTVoWVZONWJtOXVlVzF6S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J0VW1WeklEMGdWMlZpVEc5bmJ5NWhZVk41Ym05dWVXMXpXMjFkTzF4dUlDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J0VW1WeklEMGdKeWM3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6YjJ4bExtUmxZblZuS0dCTWIyNW5JRzF2Ym05dFpYSWdKeVI3YlgwbklHaGhjeUJ1YjNRZ1lTQnphRzl5ZENCemVXNXZibmx0TG1BcE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNCdFVtVnpJRDBnYlR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JWSmxjenRjYmlBZ0lDQWdJSDBwTG5SdlFYSnlZWGtvS1R0Y2JseHVJQ0FnSUhKbGRIVnliaUJ5WlhNN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElITjBZWFJwWXlCb1pXeHRVbVVnUFNBdktGQkZVRlJKUkVVeGZFUk9RVEY4VWs1Qk1TbGNYSHNvVzE1OVhTc3BmUzluTzF4dUlDQndjbWwyWVhSbElITjBZWFJwWXlCb1pXeHRVSEF4VW1VZ1BTQXZYRnhiS0Z0ZVhGeGJYRnhkWFNzcFhTOW5PMXh1WEc0Z0lDOHFLaUJUY0d4cGRITWdTR1ZzYlNCemRISnBibWNnZEc4Z2JXOXViMjFsY25Nc0lHSjFkQ0JrYjJWeklHNXZkQ0J5WlhCc1lXTmxJRzF2Ym05dFpYSWdibUZ0WlhNZ2RHOGdiM1JvWlhJZ2JtOTBZWFJwYjI0Z0tHVXVaeTRnWm05eUlGSk9RU2t1WEc0Z0lDQXFJRTl1YkhrZ1ptOXlJR3hwYm1WaGNpQndiMng1YldWeWN5d2daRzlsY3lCdWIzUWdjM0JzYVhRZ1VrNUJJR1p2Y2lCeWFXSnZjMlVnWVc1a0lIQm9iM053YUdGMFpTQnRiMjV2YldWeWN5NWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhObGNTQlRiM1Z5WTJVZ2MzUnlhVzVuSUc5bUlFaEZURTBnYm05MFlYUnBiMjVjYmlBZ0lDb2dRSEpsZEhWeWJpQjdjM1J5YVc1blcxMTlYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklITndiR2wwZEdWeVFYTklaV3h0S0hObGNUb2dZVzU1S1RvZ2MzUnlhVzVuVzEwZ2UxeHVJQ0FnSUZkbFlreHZaMjh1YUdWc2JWSmxMbXhoYzNSSmJtUmxlQ0E5SURBN1hHNGdJQ0FnWTI5dWMzUWdaV0U2SUZKbFowVjRjRVY0WldOQmNuSmhlU0I4SUc1MWJHd2dQU0JYWldKTWIyZHZMbWhsYkcxU1pTNWxlR1ZqS0hObGNTNTBiMU4wY21sdVp5Z3BLVHRjYmlBZ0lDQmpiMjV6ZENCcGJsTmxjVG9nYzNSeWFXNW5JSHdnYm5Wc2JDQTlJR1ZoSUQ4Z1pXRmJNbDBnT2lCdWRXeHNPMXh1WEc0Z0lDQWdZMjl1YzNRZ2JXMVFiM04wVUhKdlkyVnpjeUE5SUNodGJUb2djM1J5YVc1bktUb2djM1J5YVc1bklEMCtJSHRjYmlBZ0lDQWdJRmRsWWt4dloyOHVhR1ZzYlZCd01WSmxMbXhoYzNSSmJtUmxlQ0E5SURBN1hHNGdJQ0FnSUNCamIyNXpkQ0J3Y0RGTklEMGdWMlZpVEc5bmJ5NW9aV3h0VUhBeFVtVXVaWGhsWXlodGJTazdYRzRnSUNBZ0lDQnBaaUFvY0hBeFRTQW1KaUJ3Y0RGTkxteGxibWQwYUNBK1BTQXlLVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjSEF4VFZzeFhUdGNiaUFnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRzF0TzF4dUlDQWdJSDA3WEc1Y2JpQWdJQ0JqYjI1emRDQnRiVXhwYzNRNklITjBjbWx1WjF0ZElEMGdhVzVUWlhFZ1B5QnBibE5sY1M1emNHeHBkQ2duTGljcElEb2dXMTA3WEc0Z0lDQWdZMjl1YzNRZ2JXMU1hWE4wVW1Wek9pQnpkSEpwYm1kYlhTQTlJRzF0VEdsemRDNXRZWEFvYlcxUWIzTjBVSEp2WTJWemN5azdYRzRnSUNBZ2NtVjBkWEp1SUcxdFRHbHpkRkpsY3p0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJIWlhSeklHMWxkR2h2WkNCMGJ5QnpjR3hwZENCelpYRjFaVzVqWlNCaWVTQnpaWEJoY21GMGIzSmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhObGNHRnlZWFJ2Y2x4dUlDQWdLaUJBY0dGeVlXMGdiR2x0YVhSY2JpQWdJQ29nUUhKbGRIVnliaUI3VTNCc2FYUjBaWEpHZFc1amZWeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUlRjR3hwZEhSbGNsZHBkR2hUWlhCaGNtRjBiM0lvYzJWd1lYSmhkRzl5T2lCemRISnBibWNzSUd4cGJXbDBPaUJ1ZFcxaVpYSWdmQ0IxYm1SbFptbHVaV1FnUFNCMWJtUmxabWx1WldRcE9pQlRjR3hwZEhSbGNrWjFibU1nZTF4dUlDQWdJSEpsZEhWeWJpQW9jMlZ4T2lCemRISnBibWNwSUQwK0lIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCelpYRXVjM0JzYVhRb2MyVndZWEpoZEc5eUxDQnNhVzFwZENrN1hHNGdJQ0FnZlR0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJIWlhRZ2MzQnNhWFIwWlhJZ2JXVjBhRzlrSUhSdklITndiR2wwSUhObGNYVmxibU5sY3lCMGJ5QnRiMjV2YldWeWMxeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnZFc1cGRITmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhObGNHRnlZWFJ2Y2x4dUlDQWdLaUJBY0dGeVlXMGdiR2x0YVhSY2JpQWdJQ29nUUhKbGRIVnliaUI3VTNCc2FYUjBaWEpHZFc1amZWeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUlRjR3hwZEhSbGNpaDFibWwwY3pvZ2MzUnlhVzVuTENCelpYQmhjbUYwYjNJNklITjBjbWx1Wnl3Z2JHbHRhWFE2SUc1MWJXSmxjaUI4SUhWdVpHVm1hVzVsWkNBOUlIVnVaR1ZtYVc1bFpDazZJRk53YkdsMGRHVnlSblZ1WXlCN1hHNGdJQ0FnYVdZZ0tIVnVhWFJ6TG5SdlRHOTNaWEpEWVhObEtDa3VjM1JoY25SelYybDBhQ2hPVDFSQlZFbFBUaTVHUVZOVVFTa3BYRzRnSUNBZ0lDQnlaWFIxY200Z1YyVmlURzluYnk1emNHeHBkSFJsY2tGelJtRnpkR0U3WEc0Z0lDQWdaV3h6WlNCcFppQW9kVzVwZEhNdWRHOU1iM2RsY2tOaGMyVW9LUzV6ZEdGeWRITlhhWFJvS0U1UFZFRlVTVTlPTGxORlVFRlNRVlJQVWlrcFhHNGdJQ0FnSUNCeVpYUjFjbTRnVjJWaVRHOW5ieTVuWlhSVGNHeHBkSFJsY2xkcGRHaFRaWEJoY21GMGIzSW9jMlZ3WVhKaGRHOXlMQ0JzYVcxcGRDazdYRzRnSUNBZ1pXeHpaU0JwWmlBb2RXNXBkSE11ZEc5TWIzZGxja05oYzJVb0tTNXpkR0Z5ZEhOWGFYUm9LRTVQVkVGVVNVOU9Ma2hGVEUwcEtWeHVJQ0FnSUNBZ2NtVjBkWEp1SUZkbFlreHZaMjh1YzNCc2FYUjBaWEpCYzBobGJHMDdYRzRnSUNBZ1pXeHpaVnh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtHQlZibVY0Y0dWamRHVmtJSFZ1YVhSeklDUjdkVzVwZEhOOUlDNWdLVHRjYmx4dUlDQWdJQzh2SUZSUFJFODZJRk53YkdsMGRHVnlJR1p2Y2lCSVJVeE5YRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklHZGxkRk53YkdsMGRHVnlSbTl5UTI5c2RXMXVLR052YkRvZ1JFY3VRMjlzZFcxdUtUb2dVM0JzYVhSMFpYSkdkVzVqSUh0Y2JpQWdJQ0JwWmlBb1kyOXNMbk5sYlZSNWNHVWdJVDA5SUVSSExsTkZUVlJaVUVVdVRVRkRVazlOVDB4RlExVk1SU2xjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdSMlYwSUhOd2JHbDBkR1Z5SUdadmNpQnpaVzFVZVhCbElGd2lKSHRFUnk1VFJVMVVXVkJGTGsxQlExSlBUVTlNUlVOVlRFVjlYQ0lnYjI1c2VTNWdLVHRjYmx4dUlDQWdJR052Ym5OMElIVnVhWFJ6SUQwZ1kyOXNMbWRsZEZSaFp5aEVSeTVVUVVkVExsVk9TVlJUS1R0Y2JpQWdJQ0JqYjI1emRDQnpaWEJoY21GMGIzSWdQU0JqYjJ3dVoyVjBWR0ZuS0ZWdWFYUnpTR0Z1Wkd4bGNpNVVRVWRUTG5ObGNHRnlZWFJ2Y2lrN1hHNGdJQ0FnY21WMGRYSnVJRmRsWWt4dloyOHVaMlYwVTNCc2FYUjBaWElvZFc1cGRITXNJSE5sY0dGeVlYUnZjaWs3WEc0Z0lIMWNibHh1SUNBdktpb2dUMjVzZVNCemIyMWxJRzltSUhSb1pTQnplVzV2Ym5sdGN5NGdWR2hsYzJVZ2QyVnlaU0J2WW5SaGFXNWxaQ0JtY205dElIUm9aU0JqYkhWemRHVnlaV1FnYjJ4cFoyOXdaWEIwYVdSbElHUmhkR0Z6WlhRdUlDb3ZYRzRnSUhCeWFYWmhkR1VnYzNSaGRHbGpJR0ZoVTNsdWIyNTViWE02SUhzZ1cyNWhiV1U2SUhOMGNtbHVaMTA2SUhOMGNtbHVaeUI5SUQwZ2UxeHVJQ0FnSUNkYlRXVk9iR1ZkSnpvZ0owd25MQ0F2THlCT2JHVWdMU0J1YjNKc1pYVmphVzVsWEc0Z0lDQWdKMXROWlVGZEp6b2dKMEVuTEZ4dUlDQWdJQ2RiVFdWSFhTYzZJQ2RISnl4Y2JpQWdJQ0FuVzAxbFJsMG5PaUFuUmljc1hHNGdJSDA3WEc1Y2JpQWdjSEpwZG1GMFpTQnpkR0YwYVdNZ2JHOXVaMDF2Ym05dFpYSlFZWEowVW1VZ1BTQXZLRnhjZHlzcEwyYzdYRzVjYmlBZ0x5b2dVMmh2Y25SbGJuTWdiVzl1YjIxbGNpQnlaWEJ5WlhObGJuUmhkR2x2YmlCMFpYaDBJR1p2Y2lCdGIyNXZiV1Z5Y3lCM2FYUm9JR3h2Ym1jZ2JtRnRaWE11WEc0Z0lDb3FMMXh1SUNCd2RXSnNhV01nYzNSaGRHbGpJRzF2Ym05dFpYSlViMVJsZUhRb2MzSmpPaUJoYm5rcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUdOdmJuTjBJSE55WTFSNGREb2djM1J5YVc1bklEMGdjM0pqTG5SdlUzUnlhVzVuS0NrN1hHNGdJQ0FnYVdZZ0tITnlZMVI0ZEM1c1pXNW5kR2dnUEQwZ05Ta2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlITnlZMVI0ZER0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdZMjl1YzNRZ2NHRnlkSE02SUhOMGNtbHVaMXRkSUQwZ2QzVThVbVZuUlhod1RXRjBZMmhCY25KaGVUNG9jM0pqTG5SdlUzUnlhVzVuS0NrdWJXRjBZMmhCYkd3b1YyVmlURzluYnk1c2IyNW5UVzl1YjIxbGNsQmhjblJTWlNrcFhHNGdJQ0FnSUNBZ0lDNXRZWEFvS0cxaE9pQlNaV2RGZUhCTllYUmphRUZ5Y21GNUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYlZKbGN6b2djM1J5YVc1bklEMGdiV0ZiTUYwN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHMVNaWE03WEc0Z0lDQWdJQ0FnSUgwcExuUnZRWEp5WVhrb0tUdGNibHh1SUNBZ0lDQWdhV1lnS0hCaGNuUnpMbXhsYm1kMGFDQTlQU0F3S1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBbklDYzdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCd1lYSjBNRG9nYzNSeWFXNW5JRDBnY0dGeWRITmJNRjA3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSEpsYzFSNGREb2djM1J5YVc1bklEMGdjR0Z5ZERBdWJHVnVaM1JvSUR3Z05pQS9JR0FrZTNCaGNuUXdmZUtBcG1BZ09pQmdKSHR3WVhKME1DNXpkV0p6ZEhKcGJtY29NQ3dnTlNsOTRvQ21ZRHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSEpsYzFSNGREdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUcxdmJtOXRaWEpVYjFOb2IzSjBLR0Z0YVc1dk9pQnpkSEpwYm1jc0lHMWhlRXhsYm1kMGFFOW1UVzl1YjIxbGNqb2diblZ0WW1WeUtUb2djM1J5YVc1bklIdGNiaUFnSUNCeVpYUjFjbTRnWVcxcGJtOHViR1Z1WjNSb0lEdzlJRzFoZUV4bGJtZDBhRTltVFc5dWIyMWxjaUEvSUdGdGFXNXZJRG9nWVcxcGJtOHVjM1ZpYzNSeWFXNW5LREFzSUcxaGVFeGxibWQwYUU5bVRXOXViMjFsY2lrZ0t5QW40b0NtSnp0Y2JpQWdmVnh1ZlZ4dUlsMTkiLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCB7IG5vcm1hbGl6ZSB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3ZlY3Rvci1vcGVyYXRpb25zJztcbmltcG9ydCB7IGNyZWF0ZURpbWVuc2luYWxpdHlSZWR1Y2luZ1dvcmtlciB9IGZyb20gJy4vd29ya2Vycy9kaW1lbnNpb25hbGl0eS1yZWR1Y2luZy13b3JrZXItY3JlYXRvcic7XG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlRGltZW5zaW5hbGl0eVdpdGhOb3JtYWxpemF0aW9uKGRhdGFDb2wsIG1ldGhvZE5hbWUsIHNpbWlsYXJpdHlNZXRyaWMsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBkaW1lbnNpb25hbGl0eVJlZHVjZVJlcyA9IHlpZWxkIGNyZWF0ZURpbWVuc2luYWxpdHlSZWR1Y2luZ1dvcmtlcih7IGRhdGE6IGRhdGFDb2wsIG1ldHJpYzogc2ltaWxhcml0eU1ldHJpYyB9LCBtZXRob2ROYW1lLCBvcHRpb25zKTtcbiAgICAgICAgZGltZW5zaW9uYWxpdHlSZWR1Y2VSZXMuZW1iZWRkaW5nID0gZGltZW5zaW9uYWxpdHlSZWR1Y2VSZXMuZW1iZWRkaW5nLm1hcChpdCA9PiBub3JtYWxpemUoaXQpKTtcbiAgICAgICAgcmV0dXJuIGRpbWVuc2lvbmFsaXR5UmVkdWNlUmVzO1xuICAgIH0pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYzJWeGRXVnVZMlV0YzNCaFkyVXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKelpYRjFaVzVqWlMxemNHRmpaUzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3UVVGRlFTeFBRVUZQTEVWQlFVVXNVMEZCVXl4RlFVRkZMRTFCUVUwc2FVUkJRV2xFTEVOQlFVTTdRVUZITlVVc1QwRkJUeXhGUVVGRkxHbERRVUZwUXl4RlFVRXJRaXhOUVVGTkxHdEVRVUZyUkN4RFFVRkRPMEZCUjJ4SkxFMUJRVTBzVlVGQlowSXNiME5CUVc5RExFTkJRM1JFTEU5QlFYRkRMRVZCUTNKRExGVkJRV3RDTEVWQlEyeENMR2RDUVVFMlJDeEZRVU0zUkN4UFFVRmhPenRSUVVWaUxFMUJRVTBzZFVKQlFYVkNMRWRCUTNwQ0xFMUJRVTBzYVVOQlFXbERMRU5CUTI1RExFVkJRVVVzU1VGQlNTeEZRVUZGTEU5QlFVOHNSVUZCUlN4TlFVRk5MRVZCUVVVc1owSkJRV2RDTEVWQlFXZENMRVZCUTNwRUxGVkJRVlVzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVVTNRaXgxUWtGQmRVSXNRMEZCUXl4VFFVRlRMRWRCUVVjc2RVSkJRWFZDTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJReTlHTEU5QlFVOHNkVUpCUVhWQ0xFTkJRVU03U1VGRGJrTXNRMEZCUXp0RFFVRkJJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJRUpwZEVGeWNtRjVJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMMkpwZEMxaGNuSmhlU2M3WEc1cGJYQnZjblFnZXlCTllYUnlhWGdzSUZabFkzUnZjaUI5SUdaeWIyMGdKMEJrWVhSaFozSnZheTFzYVdKeVlYSnBaWE12ZFhScGJITXZjM0pqTDNSNWNHVXRaR1ZqYkdGeVlYUnBiMjV6Snp0Y2JtbHRjRzl5ZENCN0lHNXZjbTFoYkdsNlpTQjlJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMM1psWTNSdmNpMXZjR1Z5WVhScGIyNXpKenRjYm1sdGNHOXlkQ0FxSUdGeklFUkhJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzlrWnljN1hHNXBiWEJ2Y25RZ2V5QkNhWFJCY25KaGVVMWxkSEpwWTNNc0lGTjBjbWx1WjAxbGRISnBZM01zSUZaaGJHbGtWSGx3WlhNc0lGWmxZM1J2Y2sxbGRISnBZM01nZlNCbWNtOXRJQ2N1TDNSNWNHVmtMVzFsZEhKcFkzTW5PMXh1YVcxd2IzSjBJSHNnWTNKbFlYUmxSR2x0Wlc1emFXNWhiR2wwZVZKbFpIVmphVzVuVjI5eWEyVnlMQ0JKVW1Wa2RXTmxSR2x0Wlc1emFXOXVZV3hwZEhsU1pYTjFiSFFnZlNCbWNtOXRJQ2N1TDNkdmNtdGxjbk12WkdsdFpXNXphVzl1WVd4cGRIa3RjbVZrZFdOcGJtY3RkMjl5YTJWeUxXTnlaV0YwYjNJbk8xeHVYRzVjYm1WNGNHOXlkQ0JoYzNsdVl5Qm1kVzVqZEdsdmJpQnlaV1IxWTJWRWFXMWxibk5wYm1Gc2FYUjVWMmwwYUU1dmNtMWhiR2w2WVhScGIyNG9YRzRnSUNBZ1pHRjBZVU52YkRvZ1FtbDBRWEp5WVhsYlhYeFdaV04wYjNKYlhYeHpkSEpwYm1kYlhTd2dYRzRnSUNBZ2JXVjBhRzlrVG1GdFpUb2djM1J5YVc1bkxDQmNiaUFnSUNCemFXMXBiR0Z5YVhSNVRXVjBjbWxqT2lCQ2FYUkJjbkpoZVUxbGRISnBZM044Vm1WamRHOXlUV1YwY21samMzeFRkSEpwYm1kTlpYUnlhV056TEZ4dUlDQWdJRzl3ZEdsdmJuTS9PaUJoYm5rcE9pQlFjbTl0YVhObFBFbFNaV1IxWTJWRWFXMWxibk5wYjI1aGJHbDBlVkpsYzNWc2RENGdlMXh1WEc0Z0lDQWdZMjl1YzNRZ1pHbHRaVzV6YVc5dVlXeHBkSGxTWldSMVkyVlNaWE02SUVsU1pXUjFZMlZFYVcxbGJuTnBiMjVoYkdsMGVWSmxjM1ZzZENBOVhHNGdJQ0FnSUNBZ0lHRjNZV2wwSUdOeVpXRjBaVVJwYldWdWMybHVZV3hwZEhsU1pXUjFZMmx1WjFkdmNtdGxjaWhjYmlBZ0lDQWdJQ0FnSUNBZ0lIc2daR0YwWVRvZ1pHRjBZVU52YkN3Z2JXVjBjbWxqT2lCemFXMXBiR0Z5YVhSNVRXVjBjbWxqSUgwZ1lYTWdWbUZzYVdSVWVYQmxjeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHMWxkR2h2WkU1aGJXVXNJRzl3ZEdsdmJuTXBPMXh1WEc0Z0lDQWdaR2x0Wlc1emFXOXVZV3hwZEhsU1pXUjFZMlZTWlhNdVpXMWlaV1JrYVc1bklEMGdaR2x0Wlc1emFXOXVZV3hwZEhsU1pXUjFZMlZTWlhNdVpXMWlaV1JrYVc1bkxtMWhjQ2hwZENBOVBpQnViM0p0WVd4cGVtVW9hWFFwS1R0Y2JpQWdJQ0J5WlhSMWNtNGdaR2x0Wlc1emFXOXVZV3hwZEhsU1pXUjFZMlZTWlhNN1hHNTlJbDE5IiwiaW1wb3J0ICogYXMgZmwgZnJvbSAnZmFzdGVzdC1sZXZlbnNodGVpbic7XG5pbXBvcnQgeyBqYXJvV2lua2xlciB9IGZyb20gJ2phcm8td2lua2xlci10eXBlc2NyaXB0JztcbmltcG9ydCB7IGRpc3RhbmNlTWV0cmljcyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3NpbWlsYXJpdHktbWV0cmljcyc7XG5pbXBvcnQgeyBjYWxjdWxhdGVFdWNsaWRlYW5EaXN0YW5jZSB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3ZlY3Rvci1vcGVyYXRpb25zJztcbmV4cG9ydCBjb25zdCBBdmFpbGFibGVNZXRyaWNzID0ge1xuICAgICdWZWN0b3InOiB7XG4gICAgICAgICdFdWNsaWRlYW5EaXN0YW5jZSc6IGNhbGN1bGF0ZUV1Y2xpZGVhbkRpc3RhbmNlLFxuICAgIH0sXG4gICAgJ1N0cmluZyc6IHtcbiAgICAgICAgJ0xldmVuc2h0ZWluJzogZmwuZGlzdGFuY2UsXG4gICAgICAgICdKYXJvLVdpbmtsZXInOiBqYXJvV2lua2xlcixcbiAgICB9LFxuICAgICdCaXRBcnJheSc6IHtcbiAgICAgICAgJ1Rhbmltb3RvJzogZGlzdGFuY2VNZXRyaWNzWydUYW5pbW90byddLFxuICAgICAgICAnRGljZSc6IGRpc3RhbmNlTWV0cmljc1snRGljZSddLFxuICAgICAgICAnQXN5bW1ldHJpYyc6IGRpc3RhbmNlTWV0cmljc1snQXN5bW1ldHJpYyddLFxuICAgICAgICAnQnJhdW4tQmxhbnF1ZXQnOiBkaXN0YW5jZU1ldHJpY3NbJ0JyYXVuLUJsYW5xdWV0J10sXG4gICAgICAgICdDb3NpbmUnOiBkaXN0YW5jZU1ldHJpY3NbJ0Nvc2luZSddLFxuICAgICAgICAnS3VsY3p5bnNraSc6IGRpc3RhbmNlTWV0cmljc1snS3VsY3p5bnNraSddLFxuICAgICAgICAnTWMtQ29ubmF1Z2hleSc6IGRpc3RhbmNlTWV0cmljc1snTWMtQ29ubmF1Z2hleSddLFxuICAgICAgICAnUm9nb3QtR29sZGJlcmcnOiBkaXN0YW5jZU1ldHJpY3NbJ1JvZ290LUdvbGRiZXJnJ10sXG4gICAgICAgICdSdXNzZWwnOiBkaXN0YW5jZU1ldHJpY3NbJ1J1c3NlbCddLFxuICAgICAgICAnU29rYWwnOiBkaXN0YW5jZU1ldHJpY3NbJ1Nva2FsJ10sXG4gICAgfSxcbn07XG5leHBvcnQgY29uc3QgTWV0cmljVG9EYXRhVHlwZSA9IE9iamVjdC5rZXlzKEF2YWlsYWJsZU1ldHJpY3MpXG4gICAgLnJlZHVjZSgocmV0LCBrZXkpID0+IHtcbiAgICBmb3IgKGNvbnN0IHZhbCBvZiBPYmplY3Qua2V5cyhBdmFpbGFibGVNZXRyaWNzW2tleV0pKSB7XG4gICAgICAgIHJldFt2YWxdID0ga2V5O1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xufSwge30pO1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nTWV0cmljKG5hbWUpIHtcbiAgICByZXR1cm4gTWV0cmljVG9EYXRhVHlwZVtuYW1lXSA9PSAnU3RyaW5nJztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0JpdEFycmF5TWV0cmljKG5hbWUpIHtcbiAgICByZXR1cm4gTWV0cmljVG9EYXRhVHlwZVtuYW1lXSA9PSAnQml0QXJyYXknO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzVmVjdG9yTWV0cmljKG5hbWUpIHtcbiAgICByZXR1cm4gTWV0cmljVG9EYXRhVHlwZVtuYW1lXSA9PSAnVmVjdG9yJztcbn1cbi8qKiBVbmlmaWVkIGNsYXNzIGltcGxlbWVudGluZyBkaWZmZXJlbnQgc3RyaW5nIG1lYXN1cmVzLiAqL1xuZXhwb3J0IGNsYXNzIE1lYXN1cmUge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgTWVhc3VyZSB3aXRoIC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kIE1ldGhvZCB0byBjYWxjdWxhdGUgZGlzdGFuY2UgYmV0d2VlbiBzdHJpbmdzLlxuICAgICAqIEBtZW1iZXJvZiBNZWFzdXJlclxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG1ldGhvZCkge1xuICAgICAgICB0aGlzLm1ldGhvZCA9IG1ldGhvZDtcbiAgICAgICAgdGhpcy5kYXRhVHlwZSA9IE1ldHJpY1RvRGF0YVR5cGVbbWV0aG9kXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBjdXN0b20gc3RyaW5nIGRpc3RhbmNlIGZ1bmN0aW9uIHNwZWNpZmllZC5cbiAgICAgKiBAcmV0dXJuIHtEaXN0YW5jZU1ldHJpY30gQ2FsbGJhY2sgb2YgdGhlIG1lYXN1cmUgY2hvc2VuLlxuICAgICAqIEBtZW1iZXJvZiBNZWFzdXJlclxuICAgICAqL1xuICAgIGdldE1lYXN1cmUoKSB7XG4gICAgICAgIGNvbnN0IGRpY3QgPSBBdmFpbGFibGVNZXRyaWNzO1xuICAgICAgICByZXR1cm4gZGljdFt0aGlzLmRhdGFUeXBlXVt0aGlzLm1ldGhvZF07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgY3VzdG9tIHN0cmluZyBkaXN0YW5jZSBieSB0aGUgZ2l2ZW4gZGF0YSB0eXBlLlxuICAgICAqIEBwYXJhbSB7QXZhaWxhYmxlRGF0YVR5cGVzfSBkYXRhVHlwZSBNZXRyaWMncyBkYXRhIHR5cGVcbiAgICAgKiBAcmV0dXJuIHtzdHJpbmdbXX0gTWV0cmljIG5hbWVzIHdoaWNoIGV4cGVjdHMgdGhlIGdpdmVuIGRhdGEgdHlwZVxuICAgICAqIEBtZW1iZXJvZiBNZWFzdXJlclxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRNZXRyaWNCeURhdGFUeXBlKGRhdGFUeXBlKSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhBdmFpbGFibGVNZXRyaWNzW2RhdGFUeXBlXSk7XG4gICAgfVxuICAgIC8qKiBSZXR1cm5zIG1ldHJpYyBuYW1lcyBhdmFpbGFibGUuXG4gICAgICogQG1lbWJlcm9mIE1lYXN1cmVyXG4gICAgKi9cbiAgICBzdGF0aWMgZ2V0IGF2YWlsYWJsZU1lYXN1cmVzKCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoQXZhaWxhYmxlTWV0cmljcyk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZEhsd1pXUXRiV1YwY21samN5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW5SNWNHVmtMVzFsZEhKcFkzTXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1QwRkJUeXhMUVVGTExFVkJRVVVzVFVGQlRTeHhRa0ZCY1VJc1EwRkJRenRCUVVNeFF5eFBRVUZQTEVWQlFVTXNWMEZCVnl4RlFVRkRMRTFCUVUwc2VVSkJRWGxDTEVOQlFVTTdRVUZGY0VRc1QwRkJUeXhGUVVGRExHVkJRV1VzUlVGQlF5eE5RVUZOTEd0RVFVRnJSQ3hEUVVGRE8wRkJRMnBHTEU5QlFVOHNSVUZCUXl3d1FrRkJNRUlzUlVGQlF5eE5RVUZOTEdsRVFVRnBSQ3hEUVVGRE8wRkJTVE5HTEUxQlFVMHNRMEZCUXl4TlFVRk5MR2RDUVVGblFpeEhRVUZITzBsQlF6bENMRkZCUVZFc1JVRkJSVHRSUVVOU0xHMUNRVUZ0UWl4RlFVRkZMREJDUVVFd1FqdExRVU5vUkR0SlFVTkVMRkZCUVZFc1JVRkJSVHRSUVVOU0xHRkJRV0VzUlVGQlJTeEZRVUZGTEVOQlFVTXNVVUZCVVR0UlFVTXhRaXhqUVVGakxFVkJRVVVzVjBGQlZ6dExRVU0xUWp0SlFVTkVMRlZCUVZVc1JVRkJSVHRSUVVOV0xGVkJRVlVzUlVGQlJTeGxRVUZsTEVOQlFVTXNWVUZCVlN4RFFVRkRPMUZCUTNaRExFMUJRVTBzUlVGQlJTeGxRVUZsTEVOQlFVTXNUVUZCVFN4RFFVRkRPMUZCUXk5Q0xGbEJRVmtzUlVGQlJTeGxRVUZsTEVOQlFVTXNXVUZCV1N4RFFVRkRPMUZCUXpORExHZENRVUZuUWl4RlFVRkZMR1ZCUVdVc1EwRkJReXhuUWtGQlowSXNRMEZCUXp0UlFVTnVSQ3hSUVVGUkxFVkJRVVVzWlVGQlpTeERRVUZETEZGQlFWRXNRMEZCUXp0UlFVTnVReXhaUVVGWkxFVkJRVVVzWlVGQlpTeERRVUZETEZsQlFWa3NRMEZCUXp0UlFVTXpReXhsUVVGbExFVkJRVVVzWlVGQlpTeERRVUZETEdWQlFXVXNRMEZCUXp0UlFVTnFSQ3huUWtGQlowSXNSVUZCUlN4bFFVRmxMRU5CUVVNc1owSkJRV2RDTEVOQlFVTTdVVUZEYmtRc1VVRkJVU3hGUVVGRkxHVkJRV1VzUTBGQlF5eFJRVUZSTEVOQlFVTTdVVUZEYmtNc1QwRkJUeXhGUVVGRkxHVkJRV1VzUTBGQlF5eFBRVUZQTEVOQlFVTTdTMEZEYkVNN1EwRkRSaXhEUVVGRE8wRkJSVVlzVFVGQlRTeERRVUZETEUxQlFVMHNaMEpCUVdkQ0xFZEJRWEZDTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTTdTMEZETlVVc1RVRkJUU3hEUVVGRExFTkJRVU1zUjBGQmNVSXNSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSVHRKUVVOeVF5eExRVUZMTEUxQlFVMHNSMEZCUnl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1IwRkJlVUlzUTBGQlF5eERRVUZETEVWQlFVVTdVVUZETVVVc1IwRkJSeXhEUVVGRExFZEJRWGxDTEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNN1MwRkRkRU03U1VGRFJDeFBRVUZQTEVkQlFVY3NRMEZCUXp0QlFVTmlMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVmRVTEUxQlFVMHNWVUZCVlN4alFVRmpMRU5CUVVNc1NVRkJhMEk3U1VGREwwTXNUMEZCVHl4blFrRkJaMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4UlFVRlJMRU5CUVVNN1FVRkROVU1zUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4blFrRkJaMElzUTBGQlF5eEpRVUZyUWp0SlFVTnFSQ3hQUVVGUExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxGVkJRVlVzUTBGQlF6dEJRVU01UXl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHTkJRV01zUTBGQlF5eEpRVUZyUWp0SlFVTXZReXhQUVVGUExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxGRkJRVkVzUTBGQlF6dEJRVU0xUXl4RFFVRkRPMEZCUlVRc05FUkJRVFJFTzBGQlF6VkVMRTFCUVUwc1QwRkJUeXhQUVVGUE8wbEJTV3hDT3pzN08wOUJTVWM3U1VGRFNDeFpRVUZaTEUxQlFXOUNPMUZCUXpsQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NUVUZCVFN4RFFVRkRPMUZCUTNKQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVkQlFVY3NaMEpCUVdkQ0xFTkJRVU1zVFVGQlRTeERRVUYxUWl4RFFVRkRPMGxCUTJwRkxFTkJRVU03U1VGRlJEczdPenRQUVVsSE8wbEJRMGtzVlVGQlZUdFJRVU5tTEUxQlFVMHNTVUZCU1N4SFFVRnpSQ3huUWtGQlowSXNRMEZCUXp0UlFVTnFSaXhQUVVGUExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBsQlF6RkRMRU5CUVVNN1NVRkZSRHM3T3pzN1QwRkxSenRKUVVOSkxFMUJRVTBzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhSUVVFMFFqdFJRVU0xUkN4UFFVRlBMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5xUkN4RFFVRkRPMGxCUlVRN08wMUJSVVU3U1VGRFJpeE5RVUZOTEV0QlFVc3NhVUpCUVdsQ08xRkJRekZDTEU5QlFVOHNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRPMGxCUTNaRExFTkJRVU03UTBGRFJpSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQXFJR0Z6SUdac0lHWnliMjBnSjJaaGMzUmxjM1F0YkdWMlpXNXphSFJsYVc0bk8xeHVhVzF3YjNKMElIdHFZWEp2VjJsdWEyeGxjbjBnWm5KdmJTQW5hbUZ5YnkxM2FXNXJiR1Z5TFhSNWNHVnpZM0pwY0hRbk8xeHVhVzF3YjNKMElIdEVhWE4wWVc1alpVMWxkSEpwWTMwZ1puSnZiU0FuUUdSaGRHRm5jbTlyTFd4cFluSmhjbWxsY3k5MWRHbHNjeTl6Y21NdmRIbHdaUzFrWldOc1lYSmhkR2x2Ym5Nbk8xeHVhVzF3YjNKMElIdGthWE4wWVc1alpVMWxkSEpwWTNOOUlHWnliMjBnSjBCa1lYUmhaM0p2YXkxc2FXSnlZWEpwWlhNdmRYUnBiSE12YzNKakwzTnBiV2xzWVhKcGRIa3RiV1YwY21samN5YzdYRzVwYlhCdmNuUWdlMk5oYkdOMWJHRjBaVVYxWTJ4cFpHVmhia1JwYzNSaGJtTmxmU0JtY205dElDZEFaR0YwWVdkeWIyc3RiR2xpY21GeWFXVnpMM1YwYVd4ekwzTnlZeTkyWldOMGIzSXRiM0JsY21GMGFXOXVjeWM3WEc1cGJYQnZjblFnUW1sMFFYSnlZWGtnWm5KdmJTQW5RR1JoZEdGbmNtOXJMV3hwWW5KaGNtbGxjeTkxZEdsc2N5OXpjbU12WW1sMExXRnljbUY1Snp0Y2JtbHRjRzl5ZENCN1ZtVmpkRzl5TENCVGRISnBibWRFYVdOMGFXOXVZWEo1ZlNCbWNtOXRJQ2RBWkdGMFlXZHliMnN0YkdsaWNtRnlhV1Z6TDNWMGFXeHpMM055WXk5MGVYQmxMV1JsWTJ4aGNtRjBhVzl1Y3ljN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCQmRtRnBiR0ZpYkdWTlpYUnlhV056SUQwZ2UxeHVJQ0FuVm1WamRHOXlKem9nZTF4dUlDQWdJQ2RGZFdOc2FXUmxZVzVFYVhOMFlXNWpaU2M2SUdOaGJHTjFiR0YwWlVWMVkyeHBaR1ZoYmtScGMzUmhibU5sTEZ4dUlDQjlMRnh1SUNBblUzUnlhVzVuSnpvZ2UxeHVJQ0FnSUNkTVpYWmxibk5vZEdWcGJpYzZJR1pzTG1ScGMzUmhibU5sTEZ4dUlDQWdJQ2RLWVhKdkxWZHBibXRzWlhJbk9pQnFZWEp2VjJsdWEyeGxjaXhjYmlBZ2ZTeGNiaUFnSjBKcGRFRnljbUY1SnpvZ2UxeHVJQ0FnSUNkVVlXNXBiVzkwYnljNklHUnBjM1JoYm1ObFRXVjBjbWxqYzFzblZHRnVhVzF2ZEc4blhTeGNiaUFnSUNBblJHbGpaU2M2SUdScGMzUmhibU5sVFdWMGNtbGpjMXNuUkdsalpTZGRMRnh1SUNBZ0lDZEJjM2x0YldWMGNtbGpKem9nWkdsemRHRnVZMlZOWlhSeWFXTnpXeWRCYzNsdGJXVjBjbWxqSjEwc1hHNGdJQ0FnSjBKeVlYVnVMVUpzWVc1eGRXVjBKem9nWkdsemRHRnVZMlZOWlhSeWFXTnpXeWRDY21GMWJpMUNiR0Z1Y1hWbGRDZGRMRnh1SUNBZ0lDZERiM05wYm1Vbk9pQmthWE4wWVc1alpVMWxkSEpwWTNOYkowTnZjMmx1WlNkZExGeHVJQ0FnSUNkTGRXeGplbmx1YzJ0cEp6b2daR2x6ZEdGdVkyVk5aWFJ5YVdOeld5ZExkV3hqZW5sdWMydHBKMTBzWEc0Z0lDQWdKMDFqTFVOdmJtNWhkV2RvWlhrbk9pQmthWE4wWVc1alpVMWxkSEpwWTNOYkowMWpMVU52Ym01aGRXZG9aWGtuWFN4Y2JpQWdJQ0FuVW05bmIzUXRSMjlzWkdKbGNtY25PaUJrYVhOMFlXNWpaVTFsZEhKcFkzTmJKMUp2WjI5MExVZHZiR1JpWlhKbkoxMHNYRzRnSUNBZ0oxSjFjM05sYkNjNklHUnBjM1JoYm1ObFRXVjBjbWxqYzFzblVuVnpjMlZzSjEwc1hHNGdJQ0FnSjFOdmEyRnNKem9nWkdsemRHRnVZMlZOWlhSeWFXTnpXeWRUYjJ0aGJDZGRMRnh1SUNCOUxGeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRTFsZEhKcFkxUnZSR0YwWVZSNWNHVTZJRk4wY21sdVowUnBZM1JwYjI1aGNua2dQU0JQWW1wbFkzUXVhMlY1Y3loQmRtRnBiR0ZpYkdWTlpYUnlhV056S1Z4dUlDQXVjbVZrZFdObEtDaHlaWFE2SUZOMGNtbHVaMFJwWTNScGIyNWhjbmtzSUd0bGVTa2dQVDRnZTF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnZG1Gc0lHOW1JRTlpYW1WamRDNXJaWGx6S0VGMllXbHNZV0pzWlUxbGRISnBZM05iYTJWNUlHRnpJRUYyWVdsc1lXSnNaVVJoZEdGVWVYQmxjMTBwS1NCN1hHNGdJQ0FnSUNCeVpYUmJkbUZzSUdGeklFRjJZV2xzWVdKc1pVUmhkR0ZVZVhCbGMxMGdQU0JyWlhrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnlaWFE3WEc0Z0lIMHNJSHQ5S1R0Y2JseHVaWGh3YjNKMElIUjVjR1VnUVhaaGFXeGhZbXhsUkdGMFlWUjVjR1Z6SUQwZ2EyVjViMllnZEhsd1pXOW1JRUYyWVdsc1lXSnNaVTFsZEhKcFkzTTdYRzVsZUhCdmNuUWdkSGx3WlNCVGRISnBibWROWlhSeWFXTnpJRDBnYTJWNWIyWWdkSGx3Wlc5bUlFRjJZV2xzWVdKc1pVMWxkSEpwWTNOYkoxTjBjbWx1WnlkZE8xeHVaWGh3YjNKMElIUjVjR1VnUW1sMFFYSnlZWGxOWlhSeWFXTnpJRDBnYTJWNWIyWWdkSGx3Wlc5bUlFRjJZV2xzWVdKc1pVMWxkSEpwWTNOYkowSnBkRUZ5Y21GNUoxMDdYRzVsZUhCdmNuUWdkSGx3WlNCV1pXTjBiM0pOWlhSeWFXTnpJRDBnYTJWNWIyWWdkSGx3Wlc5bUlFRjJZV2xzWVdKc1pVMWxkSEpwWTNOYkoxWmxZM1J2Y2lkZE8xeHVaWGh3YjNKMElIUjVjR1VnUzI1dmQyNU5aWFJ5YVdOeklEMGdVM1J5YVc1blRXVjBjbWxqY3lCOElFSnBkRUZ5Y21GNVRXVjBjbWxqY3lCOElGWmxZM1J2Y2sxbGRISnBZM003WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRlpoYkdsa1ZIbHdaWE1nUFNCN1pHRjBZVG9nYzNSeWFXNW5XMTBzSUcxbGRISnBZem9nVTNSeWFXNW5UV1YwY21samMzMGdmQ0I3WkdGMFlUb2dWbVZqZEc5eVcxMHNJRzFsZEhKcFl6b2dWbVZqZEc5eVRXVjBjbWxqYzMwZ2ZGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIdGtZWFJoT2lCQ2FYUkJjbkpoZVZ0ZExDQnRaWFJ5YVdNNklFSnBkRUZ5Y21GNVRXVjBjbWxqYzMwN1hHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnBjMU4wY21sdVowMWxkSEpwWXlodVlXMWxPaUJMYm05M2JrMWxkSEpwWTNNcElIdGNiaUFnY21WMGRYSnVJRTFsZEhKcFkxUnZSR0YwWVZSNWNHVmJibUZ0WlYwZ1BUMGdKMU4wY21sdVp5YzdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCcGMwSnBkRUZ5Y21GNVRXVjBjbWxqS0c1aGJXVTZJRXR1YjNkdVRXVjBjbWxqY3lrZ2UxeHVJQ0J5WlhSMWNtNGdUV1YwY21salZHOUVZWFJoVkhsd1pWdHVZVzFsWFNBOVBTQW5RbWwwUVhKeVlYa25PMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2FYTldaV04wYjNKTlpYUnlhV01vYm1GdFpUb2dTMjV2ZDI1TlpYUnlhV056S1NCN1hHNGdJSEpsZEhWeWJpQk5aWFJ5YVdOVWIwUmhkR0ZVZVhCbFcyNWhiV1ZkSUQwOUlDZFdaV04wYjNJbk8xeHVmVnh1WEc0dktpb2dWVzVwWm1sbFpDQmpiR0Z6Y3lCcGJYQnNaVzFsYm5ScGJtY2daR2xtWm1WeVpXNTBJSE4wY21sdVp5QnRaV0Z6ZFhKbGN5NGdLaTljYm1WNGNHOXlkQ0JqYkdGemN5Qk5aV0Z6ZFhKbElIdGNiaUFnY0hKdmRHVmpkR1ZrSUcxbGRHaHZaRG9nUzI1dmQyNU5aWFJ5YVdOek8xeHVJQ0J3Y205MFpXTjBaV1FnWkdGMFlWUjVjR1U2SUVGMllXbHNZV0pzWlVSaGRHRlVlWEJsY3p0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUTNKbFlYUmxjeUJoYmlCcGJuTjBZVzVqWlNCdlppQk5aV0Z6ZFhKbElIZHBkR2dnTGx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdiV1YwYUc5a0lFMWxkR2h2WkNCMGJ5QmpZV3hqZFd4aGRHVWdaR2x6ZEdGdVkyVWdZbVYwZDJWbGJpQnpkSEpwYm1kekxseHVJQ0FnS2lCQWJXVnRZbVZ5YjJZZ1RXVmhjM1Z5WlhKY2JpQWdJQ292WEc0Z0lHTnZibk4wY25WamRHOXlLRzFsZEdodlpEb2dTMjV2ZDI1TlpYUnlhV056S1NCN1hHNGdJQ0FnZEdocGN5NXRaWFJvYjJRZ1BTQnRaWFJvYjJRN1hHNGdJQ0FnZEdocGN5NWtZWFJoVkhsd1pTQTlJRTFsZEhKcFkxUnZSR0YwWVZSNWNHVmJiV1YwYUc5a1hTQmhjeUJCZG1GcGJHRmliR1ZFWVhSaFZIbHdaWE03WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1Y3lCamRYTjBiMjBnYzNSeWFXNW5JR1JwYzNSaGJtTmxJR1oxYm1OMGFXOXVJSE53WldOcFptbGxaQzVjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSR2x6ZEdGdVkyVk5aWFJ5YVdOOUlFTmhiR3hpWVdOcklHOW1JSFJvWlNCdFpXRnpkWEpsSUdOb2IzTmxiaTVjYmlBZ0lDb2dRRzFsYldKbGNtOW1JRTFsWVhOMWNtVnlYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdaMlYwVFdWaGMzVnlaU2dwT2lCRWFYTjBZVzVqWlUxbGRISnBZeUI3WEc0Z0lDQWdZMjl1YzNRZ1pHbGpkRG9nZTF0clpYazZJSE4wY21sdVoxMDZJSHRiYTJWNU1qb2djM1J5YVc1blhUb2dSR2x6ZEdGdVkyVk5aWFJ5YVdOOWZTQTlJRUYyWVdsc1lXSnNaVTFsZEhKcFkzTTdYRzRnSUNBZ2NtVjBkWEp1SUdScFkzUmJkR2hwY3k1a1lYUmhWSGx3WlYxYmRHaHBjeTV0WlhSb2IyUmRPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnlibk1nWTNWemRHOXRJSE4wY21sdVp5QmthWE4wWVc1alpTQmllU0IwYUdVZ1oybDJaVzRnWkdGMFlTQjBlWEJsTGx4dUlDQWdLaUJBY0dGeVlXMGdlMEYyWVdsc1lXSnNaVVJoZEdGVWVYQmxjMzBnWkdGMFlWUjVjR1VnVFdWMGNtbGpKM01nWkdGMFlTQjBlWEJsWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlM04wY21sdVoxdGRmU0JOWlhSeWFXTWdibUZ0WlhNZ2QyaHBZMmdnWlhod1pXTjBjeUIwYUdVZ1oybDJaVzRnWkdGMFlTQjBlWEJsWEc0Z0lDQXFJRUJ0WlcxaVpYSnZaaUJOWldGemRYSmxjbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5Qm5aWFJOWlhSeWFXTkNlVVJoZEdGVWVYQmxLR1JoZEdGVWVYQmxPaUJCZG1GcGJHRmliR1ZFWVhSaFZIbHdaWE1wT2lCemRISnBibWRiWFNCN1hHNGdJQ0FnY21WMGRYSnVJRTlpYW1WamRDNXJaWGx6S0VGMllXbHNZV0pzWlUxbGRISnBZM05iWkdGMFlWUjVjR1ZkS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJTWlhSMWNtNXpJRzFsZEhKcFl5QnVZVzFsY3lCaGRtRnBiR0ZpYkdVdVhHNGdJQ0FxSUVCdFpXMWlaWEp2WmlCTlpXRnpkWEpsY2x4dUlDQXFMMXh1SUNCemRHRjBhV01nWjJWMElHRjJZV2xzWVdKc1pVMWxZWE4xY21WektDazZJSE4wY21sdVoxdGRJSHRjYmlBZ0lDQnlaWFIxY200Z1QySnFaV04wTG10bGVYTW9RWFpoYVd4aFlteGxUV1YwY21samN5azdYRzRnSUgxY2JuMWNiaUpkZlE9PSIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCB7IGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy9zaW1pbGFyaXR5LW1ldHJpY3MnO1xuaW1wb3J0IHsgcmVtb3ZlRW1wdHlTdHJpbmdSb3dzIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvZGF0YWZyYW1lLXV0aWxzJztcbmxldCB6b29tID0gZmFsc2U7XG5jb25zdCBtb2xDb2x1bW5OYW1lcyA9IFsnMV9zZXEnLCAnMl9zZXEnXTtcbmNvbnN0IG5vbk5vcm1hbGl6ZWREaXN0YW5jZXMgPSBbJ0xldmVuc2h0ZWluJ107XG4vLyBTZWFyY2hlcyBmb3IgYWN0aXZpdHkgY2xpZmZzIGluIGEgY2hlbWljYWwgZGF0YXNldCBieSBzZWxlY3RlZCBjdXRvZmZcbmV4cG9ydCBmdW5jdGlvbiBnZXRBY3Rpdml0eUNsaWZmcyhkZiwgc2VxQ29sLCBlbmNvZGVkQ29sLCBheGVzTmFtZXMsIHNjYXR0ZXJUaXRsZSwgYWN0aXZpdGllcywgc2ltaWxhcml0eSwgc2ltaWxhcml0eU1ldHJpYywgbWV0aG9kTmFtZSwgc2VtVHlwZSwgdGFncywgc2VxU3BhY2VGdW5jLCBzaW1NYXRyaXhGdW5jLCB0b29sdGlwRnVuYywgcHJvcGVydHlQYW5lbEZ1bmMsIHNlcVNwYWNlT3B0aW9ucykge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGF1dG9tYXRpY1NpbWlsYXJpdHlMaW1pdCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBNSU5fU0lNSUxBUklUWSA9IDgwO1xuICAgICAgICBjb25zdCBpbml0aWFsU2ltaWxhcml0eUxpbWl0ID0gYXV0b21hdGljU2ltaWxhcml0eUxpbWl0ID8gTUlOX1NJTUlMQVJJVFkgOiBzaW1pbGFyaXR5IC8gMTAwO1xuICAgICAgICBjb25zdCBkaW1lbnNpb25hbGl0eVJlZHVjZUNvbCA9IGVuY29kZWRDb2wgIT09IG51bGwgJiYgZW5jb2RlZENvbCAhPT0gdm9pZCAwID8gZW5jb2RlZENvbCA6IHNlcUNvbDtcbiAgICAgICAgY29uc3Qgd2l0aG91dEVtcHR5VmFsdWVzID0gREcuRGF0YUZyYW1lLmZyb21Db2x1bW5zKFtkaW1lbnNpb25hbGl0eVJlZHVjZUNvbF0pLmNsb25lKCk7XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCBlbXB0eVZhbHNJZHhzID0gcmVtb3ZlRW1wdHlTdHJpbmdSb3dzKHdpdGhvdXRFbXB0eVZhbHVlcywgZGltZW5zaW9uYWxpdHlSZWR1Y2VDb2wpO1xuICAgICAgICBjb25zdCB7IGRpc3RhbmNlLCBjb29yZGluYXRlcyB9ID0geWllbGQgc2VxU3BhY2VGdW5jKHtcbiAgICAgICAgICAgIHNlcUNvbDogd2l0aG91dEVtcHR5VmFsdWVzLmNvbChkaW1lbnNpb25hbGl0eVJlZHVjZUNvbC5uYW1lKSxcbiAgICAgICAgICAgIG1ldGhvZE5hbWU6IG1ldGhvZE5hbWUsXG4gICAgICAgICAgICBzaW1pbGFyaXR5TWV0cmljOiBzaW1pbGFyaXR5TWV0cmljLFxuICAgICAgICAgICAgZW1iZWRBeGVzTmFtZXM6IGF4ZXNOYW1lcyxcbiAgICAgICAgICAgIG9wdGlvbnM6IHNlcVNwYWNlT3B0aW9uc1xuICAgICAgICB9KTtcbiAgICAgICAgZm9yIChjb25zdCBjb2wgb2YgY29vcmRpbmF0ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpc3RWYWx1ZXMgPSBjb2wudG9MaXN0KCk7XG4gICAgICAgICAgICBlbXB0eVZhbHNJZHhzLmZvckVhY2goKGluZCkgPT4gbGlzdFZhbHVlcy5zcGxpY2UoaW5kLCAwLCBudWxsKSk7XG4gICAgICAgICAgICBkZi5jb2x1bW5zLmFkZChERy5Db2x1bW4uZnJvbUxpc3QoJ2RvdWJsZScsIGNvbC5uYW1lLCBsaXN0VmFsdWVzKSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGZTZXEgPSBERy5EYXRhRnJhbWUuZnJvbUNvbHVtbnMoW0RHLkNvbHVtbi5mcm9tTGlzdCgnc3RyaW5nJywgJ3NlcScsIGRpbWVuc2lvbmFsaXR5UmVkdWNlQ29sLnRvTGlzdCgpKV0pO1xuICAgICAgICBjb25zdCBkaW0gPSBkaW1lbnNpb25hbGl0eVJlZHVjZUNvbC5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHNpbUFyciA9IEFycmF5KGRpbSAtIDEpO1xuICAgICAgICBpZiAoIWRpc3RhbmNlIHx8IGVtcHR5VmFsc0lkeHMubGVuZ3RoICE9PSAwIHx8IG5vbk5vcm1hbGl6ZWREaXN0YW5jZXMuaW5jbHVkZXMoc2ltaWxhcml0eU1ldHJpYykpXG4gICAgICAgICAgICB5aWVsZCBzaW1NYXRyaXhGdW5jKGRpbSwgZGltZW5zaW9uYWxpdHlSZWR1Y2VDb2wsIGRmU2VxLCAnc2VxJywgc2ltQXJyKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgZ2V0U2ltaWxhcml0aWVzRnJvbURpc3RhbmNlcyhkaW0sIGRpc3RhbmNlLCBzaW1BcnIpO1xuICAgICAgICBjb25zdCBvcHRTaW1pbGFyaXR5TGltaXQgPSBpbml0aWFsU2ltaWxhcml0eUxpbWl0O1xuICAgICAgICBjb25zdCBzaW1WYWxzID0gW107XG4gICAgICAgIGNvbnN0IHNhbGlWYWxzID0gW107XG4gICAgICAgIGNvbnN0IG4xID0gW107XG4gICAgICAgIGNvbnN0IG4yID0gW107XG4gICAgICAgIGNvbnN0IGNsaWZmc01vbElkcyA9IG5ldyBTZXQoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgIT0gZGltIC0gMTsgKytpKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiAhPSBkaW0gLSAxIC0gaTsgKytqKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2ltID0gc2ltQXJyW2ldID8gc2ltQXJyW2ldLmdldChqKSA6IDA7XG4gICAgICAgICAgICAgICAgaWYgKHNpbSA+PSBvcHRTaW1pbGFyaXR5TGltaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgbjEucHVzaChpKTtcbiAgICAgICAgICAgICAgICAgICAgbjIucHVzaChpICsgaiArIDEpO1xuICAgICAgICAgICAgICAgICAgICBjbGlmZnNNb2xJZHMuYWRkKGkpO1xuICAgICAgICAgICAgICAgICAgICBjbGlmZnNNb2xJZHMuYWRkKGkgKyBqICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIHNpbVZhbHMucHVzaChzaW0pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaWZmID0gTWF0aC5hYnMoYWN0aXZpdGllcy5nZXQoaSkgLSBhY3Rpdml0aWVzLmdldChpICsgaiArIDEpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNpbSAhPSAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgc2FsaVZhbHMucHVzaChkaWZmIC8gKDEgLSBzaW0pKTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgc2FsaVZhbHMucHVzaChJbmZpbml0eSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNhbGlWYWxzV2l0aG91dEluZmluaXR5ID0gc2FsaVZhbHMuZmlsdGVyKGl0ID0+IGl0ICE9PSBJbmZpbml0eSk7XG4gICAgICAgIGNvbnN0IHNhbGlNaW4gPSBNYXRoLm1pbiguLi5zYWxpVmFsc1dpdGhvdXRJbmZpbml0eSk7XG4gICAgICAgIGNvbnN0IHNhbGlNYXggPSBNYXRoLm1heCguLi5zYWxpVmFsc1dpdGhvdXRJbmZpbml0eSk7XG4gICAgICAgIGNvbnN0IHNhbGlPcGFjaXR5Q29lZiA9IDAuOCAvIChzYWxpTWF4IC0gc2FsaU1pbik7XG4gICAgICAgIGNvbnN0IG5laWdoYm91cnNDb3VudCA9IG5ldyBBcnJheShkaW0pLmZpbGwoMCk7XG4gICAgICAgIGNvbnN0IHNpbWlsYXJpdHlDb3VudCA9IG5ldyBBcnJheShkaW0pLmZpbGwoMCk7XG4gICAgICAgIGNvbnN0IHNhbGlDb3VudCA9IG5ldyBBcnJheShkaW0pLmZpbGwoMCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpICE9IG4xLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBuZWlnaGJvdXJzQ291bnRbbjFbaV1dICs9IDE7XG4gICAgICAgICAgICBuZWlnaGJvdXJzQ291bnRbbjJbaV1dICs9IDE7XG4gICAgICAgICAgICBzaW1pbGFyaXR5Q291bnRbbjFbaV1dICs9IHNpbVZhbHNbaV07XG4gICAgICAgICAgICBzaW1pbGFyaXR5Q291bnRbbjJbaV1dICs9IHNpbVZhbHNbaV07XG4gICAgICAgICAgICBpZiAoc2FsaVZhbHNbaV0gIT0gSW5maW5pdHkpIHtcbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZpdGllcy5nZXQobjFbaV0pID4gYWN0aXZpdGllcy5nZXQobjJbaV0pKVxuICAgICAgICAgICAgICAgICAgICBzYWxpQ291bnRbbjFbaV1dICs9IHNhbGlWYWxzW2ldO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgc2FsaUNvdW50W24yW2ldXSArPSBzYWxpVmFsc1tpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzYWxpID0gREcuQ29sdW1uLmZyb21MaXN0KCdkb3VibGUnLCBgc2FsaV8ke2F4ZXNOYW1lc1swXS5zdWJzdHJpbmcoYXhlc05hbWVzWzBdLmxhc3RJbmRleE9mKCdfJykpfWAsIHNhbGlDb3VudCk7XG4gICAgICAgIGRmLmNvbHVtbnMuYWRkKHNhbGkpO1xuICAgICAgICBjb25zdCBjbGlmZnNDb2xOYW1lID0gYWRkQ2xpZmZzQm9vbGVhbkNvbChkZiwgY2xpZmZzTW9sSWRzKTtcbiAgICAgICAgY29uc3QgdmlldyA9IGdyb2suc2hlbGwuZ2V0VGFibGVWaWV3KGRmLm5hbWUpO1xuICAgICAgICB2aWV3LmdyaWQuY29sdW1ucy5ieU5hbWUoY2xpZmZzQ29sTmFtZSkudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICBjb25zdCBzcCA9IHZpZXcuYWRkVmlld2VyKERHLlZpZXdlci5zY2F0dGVyUGxvdChkZiwge1xuICAgICAgICAgICAgeENvbHVtbk5hbWU6IGF4ZXNOYW1lc1swXSxcbiAgICAgICAgICAgIHlDb2x1bW5OYW1lOiBheGVzTmFtZXNbMV0sXG4gICAgICAgICAgICBzaXplOiBzYWxpLm5hbWUsXG4gICAgICAgICAgICBjb2xvcjogYWN0aXZpdGllcy5uYW1lLFxuICAgICAgICAgICAgc2hvd1hTZWxlY3RvcjogZmFsc2UsXG4gICAgICAgICAgICBzaG93WVNlbGVjdG9yOiBmYWxzZSxcbiAgICAgICAgICAgIHNob3dTaXplU2VsZWN0b3I6IGZhbHNlLFxuICAgICAgICAgICAgc2hvd0NvbG9yU2VsZWN0b3I6IGZhbHNlLFxuICAgICAgICAgICAgbWFya2VyTWluU2l6ZTogNSxcbiAgICAgICAgICAgIG1hcmtlck1heFNpemU6IDI1LFxuICAgICAgICAgICAgdGl0bGU6IHNjYXR0ZXJUaXRsZVxuICAgICAgICB9KSk7XG4gICAgICAgIGNvbnN0IGNhbnZhcyA9IHNwLmdldEluZm8oKVsnY2FudmFzJ107XG4gICAgICAgIGNvbnN0IGxpbmVzUmVzID0gY3JlYXRlTGluZXMobjEsIG4yLCBzZXFDb2wsIGFjdGl2aXRpZXMsIHNhbGlWYWxzLCBzaW1WYWxzLCBzZW1UeXBlLCB0YWdzKTtcbiAgICAgICAgY29uc3QgY2FzaGVkTGluZXNEYXRhID0ge307XG4gICAgICAgIGxldCBhY2M7XG4gICAgICAgIGxpbmVzUmVzLmxpbmVzRGYub25DdXJyZW50Q2VsbENoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRNb2xJZHggPSBsaW5lc1Jlcy5saW5lc0RmLmN1cnJlbnRDb2wgJiYgbGluZXNSZXMubGluZXNEZi5jdXJyZW50Q29sLm5hbWUgPT09ICcyX3NlcScgPyAxIDogMDtcbiAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBsaW5lc1Jlcy5saW5lc0RmLmN1cnJlbnRSb3dJZHggIT09IC0xID8gbGluZXNSZXMubGluZXNbbGluZXNSZXMubGluZXNEZi5jdXJyZW50Um93SWR4XSA6IG51bGw7XG4gICAgICAgICAgICBzcC5kYXRhRnJhbWUuY3VycmVudFJvd0lkeCA9IGxpbmUgPyBsaW5lLm1vbHNbY3VycmVudE1vbElkeF0gOiAtMTtcbiAgICAgICAgICAgIHNwLmRhdGFGcmFtZS5zZWxlY3Rpb24uc2V0KDAsICFsaW5lc1Jlcy5saW5lc1swXS5zZWxlY3RlZCk7XG4gICAgICAgICAgICBzcC5kYXRhRnJhbWUuc2VsZWN0aW9uLnNldCgwLCBsaW5lc1Jlcy5saW5lc1swXS5zZWxlY3RlZCk7XG4gICAgICAgICAgICBsaW5lc0RmR3JpZC5pbnZhbGlkYXRlKCk7XG4gICAgICAgICAgICBpZiAobGluZSlcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgdXBkYXRlUHJvcGVydHlQYW5lbChkZiwgYWNjLCBjYXNoZWRMaW5lc0RhdGEsIGxpbmUsIHNlcUNvbCwgYWN0aXZpdGllcywgbGluZXNSZXMubGluZXNEZi5nZXQoJ3NhbGknLCBsaW5lLmlkKSwgcHJvcGVydHlQYW5lbEZ1bmMpOyB9LCAxMDAwKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGxpbmVzUmVzLmxpbmVzRGYub25TZWxlY3Rpb25DaGFuZ2VkLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgICAgaWYgKGxpbmVzUmVzLmxpbmVzRGYubW91c2VPdmVyUm93SWR4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBsaW5lc1Jlcy5saW5lc1tsaW5lc1Jlcy5saW5lc0RmLm1vdXNlT3ZlclJvd0lkeF07XG4gICAgICAgICAgICAgICAgbGluZS5zZWxlY3RlZCA9ICFsaW5lLnNlbGVjdGVkO1xuICAgICAgICAgICAgICAgIGlmICghbGluZS5zZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgZGYuc2VsZWN0aW9uLnNldEFsbChmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaW5lc1Jlcy5saW5lcy5mb3JFYWNoKChsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGwuc2VsZWN0ZWQpXG4gICAgICAgICAgICAgICAgICAgIGwubW9scy5mb3JFYWNoKChtKSA9PiBkZi5zZWxlY3Rpb24uc2V0KG0sIHRydWUpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbGluZXNEZkdyaWQuaW52YWxpZGF0ZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgbGluZXNEZkdyaWQgPSBsaW5lc1Jlcy5saW5lc0RmLnBsb3QuZ3JpZCgpLnNvcnQoWydzYWxpJ10sIFtmYWxzZV0pO1xuICAgICAgICBsaW5lc0RmR3JpZC5vbkNlbGxDbGljay5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgem9vbSA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBsaXN0Q2xpZmZzTGluayA9IHVpLmJ1dHRvbihgJHtsaW5lc1Jlcy5saW5lc0RmLnJvd0NvdW50fSBjbGlmZnNgLCAoKSA9PiB7XG4gICAgICAgICAgICBncm9rLnNoZWxsLmRvY2tNYW5hZ2VyLmRvY2sobGluZXNEZkdyaWQucm9vdCwgJ2Rvd24nLCBudWxsLCAnQWN0aXZpdHkgY2xpZmZzJywgMC4yKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGVkaXRTcExpbmtTdHlsZShsaXN0Q2xpZmZzTGluaywgc3AsIDEwKTtcbiAgICAgICAgY29uc3QgZmlsdGVyQ2xpZmZzQnV0dG9uID0gdWkuc3dpdGNoSW5wdXQoYFNob3cgb25seSBjbGlmZnNgLCBmYWxzZSk7XG4gICAgICAgIGZpbHRlckNsaWZmc0J1dHRvbi5vbkNoYW5nZWQoKCkgPT4ge1xuICAgICAgICAgICAgZmlsdGVyQ2xpZmZzQnV0dG9uLnZhbHVlID8gZGYucm93cy5maWx0ZXIoKHJvdykgPT4gcm93W2NsaWZmc0NvbE5hbWVdID09PSB0cnVlKSA6IGRmLmZpbHRlci5zZXRBbGwodHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBlZGl0U3BMaW5rU3R5bGUoZmlsdGVyQ2xpZmZzQnV0dG9uLnJvb3QsIHNwLCAzMCk7XG4gICAgICAgIGxldCB0aW1lcjtcbiAgICAgICAgY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgICAgICAgIHRpbWVyID0gZ2xvYmFsLnNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBjaGVja0N1cnNvck9uTGluZShldmVudCwgY2FudmFzLCBsaW5lc1Jlcy5saW5lcyk7XG4gICAgICAgICAgICAgICAgaWYgKGxpbmUgJiYgZGYubW91c2VPdmVyUm93SWR4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB1aS50b29sdGlwLnNob3codG9vbHRpcEZ1bmMoeyBjYXNoZWREYXRhOiBjYXNoZWRMaW5lc0RhdGEsIGxpbmU6IGxpbmUsIGRmOiBkZiwgc2VxQ29sOiBzZXFDb2wsIGFjdGl2aXR5Q29sOiBhY3Rpdml0aWVzIH0pLCBldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCA1MDApO1xuICAgICAgICB9KTtcbiAgICAgICAgY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgY29uc3QgbGluZSA9IGNoZWNrQ3Vyc29yT25MaW5lKGV2ZW50LCBjYW52YXMsIGxpbmVzUmVzLmxpbmVzKTtcbiAgICAgICAgICAgIGlmIChsaW5lICYmIGRmLm1vdXNlT3ZlclJvd0lkeCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuY3RybEtleSkge1xuICAgICAgICAgICAgICAgICAgICBsaW5lLnNlbGVjdGVkID0gIWxpbmUuc2VsZWN0ZWQ7XG4gICAgICAgICAgICAgICAgICAgIGxpbmVzUmVzLmxpbmVzRGYuc2VsZWN0aW9uLnNldChsaW5lLmlkLCBsaW5lLnNlbGVjdGVkKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFsaW5lLnNlbGVjdGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgZGYuc2VsZWN0aW9uLnNldEFsbChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIGxpbmVzUmVzLmxpbmVzLmZvckVhY2goKGwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsLnNlbGVjdGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwubW9scy5mb3JFYWNoKChtKSA9PiBkZi5zZWxlY3Rpb24uc2V0KG0sIHRydWUpKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAobGluZXNSZXMubGluZXNEZi5jdXJyZW50Um93SWR4ICE9PSBsaW5lLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lc1Jlcy5saW5lc0RmLmN1cnJlbnRSb3dJZHggPSBsaW5lLmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGYuY3VycmVudFJvd0lkeCA9IGxpbmUubW9sc1swXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRmLnNlbGVjdGlvbi5zZXQoMCwgIWxpbmVzUmVzLmxpbmVzWzBdLnNlbGVjdGVkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRmLnNlbGVjdGlvbi5zZXQoMCwgbGluZXNSZXMubGluZXNbMF0uc2VsZWN0ZWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IG9yZGVyID0gbGluZXNSZXMubGluZXNEZi5nZXRTb3J0ZWRPcmRlcihsaW5lc0RmR3JpZC5zb3J0QnlDb2x1bW5zLCBsaW5lc0RmR3JpZC5zb3J0VHlwZXMpO1xuICAgICAgICAgICAgICAgIGxpbmVzRGZHcmlkLnNjcm9sbFRvQ2VsbCgnc2VxXzEnLCBvcmRlci5pbmRleE9mKGxpbmUuaWQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHNwLm9uRXZlbnQoJ2Q0LWJlZm9yZS1kcmF3LXNjZW5lJylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVzID0gcmVuZGVyTGluZXMoc3AsIGF4ZXNOYW1lc1swXSwgYXhlc05hbWVzWzFdLCBsaW5lc1Jlcywgc2FsaVZhbHMsIHNhbGlPcGFjaXR5Q29lZiwgc2FsaU1pbik7XG4gICAgICAgICAgICBpZiAoem9vbSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRMaW5lID0gbGluZXNbbGluZXNSZXMubGluZXNEZi5jdXJyZW50Um93SWR4XTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB6b29tTGVmdCwgem9vbVJpZ2h0LCB6b29tVG9wLCB6b29tQm90dG9tIH0gPSBnZXRab29tQ29vcmRpbmF0ZXMoc3Audmlld3BvcnQud2lkdGgsIHNwLnZpZXdwb3J0LmhlaWdodCwgc3AuZGF0YUZyYW1lLmdldChheGVzTmFtZXNbMF0sIGN1cnJlbnRMaW5lLm1vbHNbMF0pLCBzcC5kYXRhRnJhbWUuZ2V0KGF4ZXNOYW1lc1sxXSwgY3VycmVudExpbmUubW9sc1swXSksIHNwLmRhdGFGcmFtZS5nZXQoYXhlc05hbWVzWzBdLCBjdXJyZW50TGluZS5tb2xzWzFdKSwgc3AuZGF0YUZyYW1lLmdldChheGVzTmFtZXNbMV0sIGN1cnJlbnRMaW5lLm1vbHNbMV0pKTtcbiAgICAgICAgICAgICAgICAgICAgc3Auem9vbSh6b29tTGVmdCwgem9vbVRvcCwgem9vbVJpZ2h0LCB6b29tQm90dG9tKTtcbiAgICAgICAgICAgICAgICB9LCAzMDApO1xuICAgICAgICAgICAgICAgIHpvb20gPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpbHRlckNsaWZmc0J1dHRvbi52YWx1ZSA/IGRmLnJvd3MuZmlsdGVyKChyb3cpID0+IHJvd1tjbGlmZnNDb2xOYW1lXSA9PT0gdHJ1ZSkgOiBkZi5maWx0ZXIuc2V0QWxsKHRydWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgc3AuYWRkUHJvcGVydHkoJ3NpbWlsYXJpdHlMaW1pdCcsICdkb3VibGUnLCBvcHRTaW1pbGFyaXR5TGltaXQpO1xuICAgICAgICBhY2MgPSBjcmVhdGVQb3BlcnR5UGFuZWwoKTtcbiAgICAgICAgcmV0dXJuIHNwO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZWRpdFNwTGlua1N0eWxlKGVsLCBzcCwgdG9wTWFyZ2luKSB7XG4gICAgZWwuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIGVsLnN0eWxlLnRvcCA9IGAke3RvcE1hcmdpbn1weGA7XG4gICAgZWwuc3R5bGUucmlnaHQgPSAnMTBweCc7XG4gICAgc3Aucm9vdC5hcHBlbmQoZWwpO1xufVxuZnVuY3Rpb24gY3JlYXRlUG9wZXJ0eVBhbmVsKCkge1xuICAgIGNvbnN0IGFjYyA9IHVpLmFjY29yZGlvbigpO1xuICAgIGNvbnN0IGFjY0ljb24gPSB1aS5lbGVtZW50KCdpJyk7XG4gICAgYWNjSWNvbi5jbGFzc05hbWUgPSAnZ3Jvay1pY29uIHN2Zy1pY29uIHN2Zy12aWV3LWxheW91dCc7XG4gICAgYWNjLmFkZFRpdGxlKHVpLnNwYW4oW2FjY0ljb24sIHVpLmxhYmVsKGBBY3Rpdml0eSBjbGlmZnNgKV0pKTtcbiAgICBhY2MuYWRkUGFuZSgnQ2xpZmYgRGV0YWlscycsICgpID0+IHVpLmRpdlRleHQoJ0NsaWZmIGhhcyBub3QgYmVlbiBzZWxlY3RlZCcpLCB0cnVlKTtcbiAgICBncm9rLnNoZWxsLm8gPSBhY2Mucm9vdDtcbiAgICByZXR1cm4gYWNjO1xufVxuZnVuY3Rpb24gdXBkYXRlUHJvcGVydHlQYW5lbChkZiwgYWNjLCBjYXNoZWREYXRhLCBsaW5lLCBzZXFDb2wsIGFjdGl2aXRpZXMsIHNhbGksIHByb3BQYW5lbEZ1bmMpIHtcbiAgICBjb25zdCBwYW5lbCA9IGFjYy5nZXRQYW5lKCdDbGlmZiBEZXRhaWxzJyk7XG4gICAgdWkuZW1wdHkocGFuZWwucm9vdCk7XG4gICAgY29uc3QgcGFuZWxFbGVtZW50ID0gcHJvcFBhbmVsRnVuYyh7IGNhc2hlZERhdGE6IGNhc2hlZERhdGEsIGxpbmU6IGxpbmUsIGRmOiBkZiwgc2VxQ29sOiBzZXFDb2wsIGFjdGl2aXR5Q29sOiBhY3Rpdml0aWVzLCBzYWxpOiBzYWxpIH0pO1xuICAgIHBhbmVsLnJvb3QuYXBwZW5kKHBhbmVsRWxlbWVudCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGdyb2suc2hlbGwubyA9IGFjYy5yb290O1xuICAgIH0sIDUwMCk7XG59XG5mdW5jdGlvbiBnZXRab29tQ29vcmRpbmF0ZXMoVzAsIEgwLCB4MSwgeTEsIHgyLCB5Mikge1xuICAgIGNvbnN0IFcxID0gTWF0aC5hYnMoeDEgLSB4Mik7XG4gICAgY29uc3QgSDEgPSBNYXRoLmFicyh5MSAtIHkyKTtcbiAgICBjb25zdCBzY2FsZVcgPSBXMCAvIFcxO1xuICAgIGNvbnN0IHNjYWxlSCA9IEgwIC8gSDE7XG4gICAgY29uc3Qgc2NhbGUgPSBNYXRoLm1pbihzY2FsZVcsIHNjYWxlSCk7XG4gICAgY29uc3QgVzIgPSAoVzAgLyBzY2FsZSkgKiA1O1xuICAgIGNvbnN0IEgyID0gKEgwIC8gc2NhbGUpICogNTtcbiAgICBjb25zdCBsZWZ0ID0geDEgPCB4MiA/IHgxIDogeDI7XG4gICAgY29uc3QgdG9wID0geTEgPiB5MiA/IHkxIDogeTI7XG4gICAgY29uc3Qgem9vbUxlZnQgPSAobGVmdCArIFcxIC8gMikgLSBXMiAvIDI7XG4gICAgY29uc3Qgem9vbVJpZ2h0ID0gem9vbUxlZnQgKyBXMjtcbiAgICBjb25zdCB6b29tVG9wID0gKHRvcCAtIEgxIC8gMikgKyBIMiAvIDI7XG4gICAgY29uc3Qgem9vbUJvdHRvbSA9IHpvb21Ub3AgLSBIMjtcbiAgICByZXR1cm4geyB6b29tTGVmdDogem9vbUxlZnQsIHpvb21SaWdodDogem9vbVJpZ2h0LCB6b29tVG9wOiB6b29tVG9wLCB6b29tQm90dG9tOiB6b29tQm90dG9tIH07XG59XG5mdW5jdGlvbiBjaGVja0N1cnNvck9uTGluZShldmVudCwgY2FudmFzLCBsaW5lcykge1xuICAgIGNvbnN0IHJlY3QgPSBjYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgeCA9IGV2ZW50LmNsaWVudFggLSByZWN0LmxlZnQ7XG4gICAgY29uc3QgeSA9IGV2ZW50LmNsaWVudFkgLSByZWN0LnRvcDtcbiAgICBsZXQgY2xvc2VzdExpbmUgPSBudWxsO1xuICAgIGxldCBtaW5EaXN0ID0gMDtcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICAgICAgY29uc3QgZGlzdCA9IE1hdGguYWJzKE1hdGguaHlwb3QobGluZS5hWzBdIC0geCwgbGluZS5hWzFdIC0geSkgK1xuICAgICAgICAgICAgTWF0aC5oeXBvdChsaW5lLmJbMF0gLSB4LCBsaW5lLmJbMV0gLSB5KSAtIE1hdGguaHlwb3QobGluZS5hWzBdIC0gbGluZS5iWzBdLCBsaW5lLmFbMV0gLSBsaW5lLmJbMV0pKTtcbiAgICAgICAgaWYgKCghbWluRGlzdCAmJiBkaXN0IDwgMikgfHwgZGlzdCA8IG1pbkRpc3QpIHtcbiAgICAgICAgICAgIG1pbkRpc3QgPSBkaXN0O1xuICAgICAgICAgICAgY2xvc2VzdExpbmUgPSBsaW5lO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjbG9zZXN0TGluZTtcbn1cbmZ1bmN0aW9uIHJlbmRlckxpbmVzKHNwLCB4QXhpcywgeUF4aXMsIGxpbmVzUmVzLCBzYWxpVmFscywgc2FsaU9wYWNpdHlDb2VmLCBzYWxpTWluKSB7XG4gICAgY29uc3QgbGluZXMgPSBsaW5lc1Jlcy5saW5lcztcbiAgICBjb25zdCBjYW52YXMgPSBzcC5nZXRJbmZvKClbJ2NhbnZhcyddO1xuICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgIGNvbnN0IHggPSBzcC5kYXRhRnJhbWUuY29sdW1ucy5ieU5hbWUoeEF4aXMpO1xuICAgIGNvbnN0IHkgPSBzcC5kYXRhRnJhbWUuY29sdW1ucy5ieU5hbWUoeUF4aXMpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgcG9pbnRGcm9tID0gc3Aud29ybGRUb1NjcmVlbih4LmdldChsaW5lc1tpXS5tb2xzWzBdKSwgeS5nZXQobGluZXNbaV0ubW9sc1swXSkpO1xuICAgICAgICBjb25zdCBwb2ludFRvID0gc3Aud29ybGRUb1NjcmVlbih4LmdldChsaW5lc1tpXS5tb2xzWzFdKSwgeS5nZXQobGluZXNbaV0ubW9sc1sxXSkpO1xuICAgICAgICBsaW5lc1tpXS5hID0gW3BvaW50RnJvbS54LCBwb2ludEZyb20ueV07XG4gICAgICAgIGxpbmVzW2ldLmIgPSBbcG9pbnRUby54LCBwb2ludFRvLnldO1xuICAgICAgICBjb25zdCBsaW5lID0gbmV3IFBhdGgyRCgpO1xuICAgICAgICBsaW5lLm1vdmVUbyhsaW5lc1tpXS5hWzBdLCBsaW5lc1tpXS5hWzFdKTtcbiAgICAgICAgY29uc3QgY29sb3IgPSBsaW5lc1tpXS5zZWxlY3RlZCA/ICcyNTUsMjU1LDAnIDogJzAsMTI4LDAnO1xuICAgICAgICBjb25zdCBvcGFjaXR5ID0gc2FsaVZhbHNbaV0gPT09IEluZmluaXR5ID8gMSA6IDAuMiArIChzYWxpVmFsc1tpXSAtIHNhbGlNaW4pICogc2FsaU9wYWNpdHlDb2VmO1xuICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSBgcmdiYSgke2NvbG9yfSwke29wYWNpdHl9KWA7XG4gICAgICAgIGN0eC5saW5lV2lkdGggPSBsaW5lc1tpXS5pZCA9PT0gbGluZXNSZXMubGluZXNEZi5jdXJyZW50Um93SWR4ID8gMyA6IDE7XG4gICAgICAgIGxpbmUubGluZVRvKGxpbmVzW2ldLmJbMF0sIGxpbmVzW2ldLmJbMV0pO1xuICAgICAgICBjdHguc3Ryb2tlKGxpbmUpO1xuICAgIH1cbiAgICByZXR1cm4gbGluZXM7XG59XG5mdW5jdGlvbiBjcmVhdGVMaW5lcyhuMSwgbjIsIHNlcSwgYWN0aXZpdGllcywgc2FsaVZhbHMsIHNpbVZhbHMsIHNlbVR5cGUsIHRhZ3MpIHtcbiAgICBjb25zdCBsaW5lcyA9IG5ldyBBcnJheShuMS5sZW5ndGgpLmZpbGwobnVsbCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuMS5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBudW0xID0gbjFbaV07XG4gICAgICAgIGNvbnN0IG51bTIgPSBuMltpXTtcbiAgICAgICAgbGluZXNbaV0gPSAoeyBpZDogaSwgbW9sczogW251bTEsIG51bTJdLCBzZWxlY3RlZDogZmFsc2UsIGE6IFtdLCBiOiBbXSB9KTtcbiAgICB9XG4gICAgY29uc3QgbGluZXNEZiA9IERHLkRhdGFGcmFtZS5jcmVhdGUobGluZXMubGVuZ3RoKTtcbiAgICBtb2xDb2x1bW5OYW1lcy5mb3JFYWNoKChpdCwgaWR4KSA9PiB7XG4gICAgICAgIGxpbmVzRGYuY29sdW1ucy5hZGROZXdTdHJpbmcoaXQpLmluaXQoKGkpID0+IHNlcS5nZXQobGluZXNbaV0ubW9sc1tpZHhdKSk7XG4gICAgICAgIHNldFRhZ3MobGluZXNEZi5jb2woaXQpLCB0YWdzKTtcbiAgICAgICAgbGluZXNEZi5jb2woaXQpLnNlbVR5cGUgPSBzZW1UeXBlO1xuICAgIH0pO1xuICAgIGxpbmVzRGYuY29sdW1ucy5hZGROZXdGbG9hdCgnYWN0X2RpZmYnKVxuICAgICAgICAuaW5pdCgoaSkgPT4gTWF0aC5hYnMoYWN0aXZpdGllcy5nZXQobGluZXNbaV0ubW9sc1swXSkgLSBhY3Rpdml0aWVzLmdldChsaW5lc1tpXS5tb2xzWzFdKSkpO1xuICAgIGxpbmVzRGYuY29sdW1ucy5hZGROZXdJbnQoJ2xpbmVfaW5kZXgnKS5pbml0KChpKSA9PiBpKTtcbiAgICBsaW5lc0RmLmNvbHVtbnMuYWRkTmV3RmxvYXQoJ3NhbGknKS5pbml0KChpKSA9PiBzYWxpVmFsc1tpXSk7XG4gICAgbGluZXNEZi5jb2x1bW5zLmFkZE5ld0Zsb2F0KCdzaW0nKS5pbml0KChpKSA9PiBzaW1WYWxzW2ldKTtcbiAgICByZXR1cm4geyBsaW5lcywgbGluZXNEZiB9O1xufVxuZnVuY3Rpb24gc2V0VGFncyhjb2wsIHRhZ3MpIHtcbiAgICBPYmplY3Qua2V5cyh0YWdzKS5mb3JFYWNoKHRhZyA9PiB7XG4gICAgICAgIGNvbC50YWdzW3RhZ10gPSB0YWdzW3RhZ107XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2ltaWxhcml0aWVzTWFyaXgoZGltLCBzZXFDb2wsIGRmU2VxLCBzaW1BcnIsIHNpbUZ1bmMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSAhPSBkaW0gLSAxOyArK2kpIHtcbiAgICAgICAgICAgIGNvbnN0IG1vbCA9IHNlcUNvbC5nZXQoaSk7XG4gICAgICAgICAgICBkZlNlcS5yb3dzLnJlbW92ZUF0KDAsIDEsIGZhbHNlKTtcbiAgICAgICAgICAgIHNpbUFycltpXSA9ICh5aWVsZCBzaW1GdW5jKGRmU2VxLmNvbCgnc2VxJyksIG1vbCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzaW1BcnI7XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2ltaWxhcml0aWVzRnJvbURpc3RhbmNlcyhkaW0sIGRpc3RhbmNlcywgc2ltQXJyKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaW0gLSAxOyArK2kpIHtcbiAgICAgICAgY29uc3Qgc2ltaWxhcml0eUFyciA9IG5ldyBBcnJheShkaW0gLSBpIC0gMSkuZmlsbCgwKTtcbiAgICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgZGltOyArK2opIHtcbiAgICAgICAgICAgIHNpbWlsYXJpdHlBcnJbaiAtIGkgLSAxXSA9IGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UoZGlzdGFuY2VzW2ldW2pdKTtcbiAgICAgICAgfVxuICAgICAgICBzaW1BcnJbaV0gPSBERy5Db2x1bW4uZnJvbUZsb2F0MzJBcnJheSgnc2ltaWxhcml0eScsIEZsb2F0MzJBcnJheS5mcm9tKHNpbWlsYXJpdHlBcnIpKTtcbiAgICB9XG4gICAgcmV0dXJuIHNpbUFycjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBhZGRDbGlmZnNCb29sZWFuQ29sKGRmLCBpZHMpIHtcbiAgICBjb25zdCBjb2xuYW1lID0gJ2NvbnRhaW5zQ2xpZmYnO1xuICAgIGNvbnN0IGNvbE5hbWVJbmQgPSBkZi5jb2x1bW5zLm5hbWVzKCkuZmlsdGVyKChpdCkgPT4gaXQuaW5jbHVkZXMoY29sbmFtZSkpLmxlbmd0aCArIDE7XG4gICAgY29uc3QgbmV3Q29sTmFtZSA9IGAke2NvbG5hbWV9XyR7Y29sTmFtZUluZH1gO1xuICAgIGRmLmNvbHVtbnMuYWRkTmV3Qm9vbChuZXdDb2xOYW1lKS5pbml0KChpKSA9PiBpZHMuaGFzKGkpKTtcbiAgICByZXR1cm4gbmV3Q29sTmFtZTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVlXTjBhWFpwZEhrdFkyeHBabVp6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lZV04wYVhacGRIa3RZMnhwWm1aekxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096dEJRVUZCTEU5QlFVOHNTMEZCU3l4SlFVRkpMRTFCUVUwc2JVSkJRVzFDTEVOQlFVTTdRVUZETVVNc1QwRkJUeXhMUVVGTExFVkJRVVVzVFVGQlRTeHBRa0ZCYVVJc1EwRkJRenRCUVVOMFF5eFBRVUZQTEV0QlFVc3NSVUZCUlN4TlFVRk5MR2xDUVVGcFFpeERRVUZETzBGQlJYUkRMRTlCUVU4c1JVRkJSU3g1UWtGQmVVSXNSVUZCUlN4TlFVRk5MR3RFUVVGclJDeERRVUZETzBGQlF6ZEdMRTlCUVU4c1JVRkJReXh4UWtGQmNVSXNSVUZCUXl4TlFVRk5MQ3REUVVFclF5eERRVUZCTzBGQmNVTnVSaXhKUVVGSkxFbEJRVWtzUjBGQlJ5eExRVUZMTEVOQlFVTTdRVUZGYWtJc1RVRkJUU3hqUVVGakxFZEJRVWNzUTBGQlF5eFBRVUZQTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1FVRkZNVU1zVFVGQlRTeHpRa0ZCYzBJc1IwRkJSeXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzBGQlJTOURMSGRGUVVGM1JUdEJRVU40UlN4TlFVRk5MRlZCUVdkQ0xHbENRVUZwUWl4RFFVTnVReXhGUVVGblFpeEZRVU5vUWl4TlFVRnBRaXhGUVVOcVFpeFZRVUUwUWl4RlFVTTFRaXhUUVVGdFFpeEZRVU51UWl4WlFVRnZRaXhGUVVOd1FpeFZRVUZ4UWl4RlFVTnlRaXhWUVVGclFpeEZRVU5zUWl4blFrRkJkMElzUlVGRGVFSXNWVUZCYTBJc1JVRkRiRUlzVDBGQlpTeEZRVU5tTEVsQlFTdENMRVZCUXk5Q0xGbEJRVFpGTEVWQlF6ZEZMR0ZCUVN0SUxFVkJReTlJTEZkQlFUUkVMRVZCUXpWRUxHbENRVUZyUlN4RlFVTnNSU3hsUVVGeFFqczdVVUZGZGtJc1RVRkJUU3gzUWtGQmQwSXNSMEZCUnl4TFFVRkxMRU5CUVVNN1VVRkRka01zVFVGQlRTeGpRVUZqTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUlRGQ0xFMUJRVTBzYzBKQlFYTkNMRWRCUVVjc2QwSkJRWGRDTEVOQlFVTXNRMEZCUXl4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU1zVlVGQlZTeEhRVUZITEVkQlFVY3NRMEZCUXp0UlFVVTFSaXhOUVVGTkxIVkNRVUYxUWl4SFFVRkhMRlZCUVZVc1lVRkJWaXhWUVVGVkxHTkJRVllzVlVGQlZTeEhRVUZKTEUxQlFVMHNRMEZCUXp0UlFVTnlSQ3hOUVVGTkxHdENRVUZyUWl4SFFVRkhMRVZCUVVVc1EwRkJReXhUUVVGVExFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRPMUZCUTNKR0xGbEJRVms3VVVGRFpDeE5RVUZOTEdGQlFXRXNSMEZCUnl4eFFrRkJjVUlzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3gxUWtGQmRVSXNRMEZCUXl4RFFVRkRPMUZCUlhwR0xFMUJRVTBzUlVGQlF5eFJRVUZSTEVWQlFVVXNWMEZCVnl4RlFVRkRMRWRCUVVjc1RVRkJUU3haUVVGWkxFTkJRVU03V1VGRGFrUXNUVUZCVFN4RlFVRkZMR3RDUVVGclFpeERRVUZETEVkQlFVY3NRMEZCUXl4MVFrRkJkVUlzUTBGQlF5eEpRVUZKTEVOQlFVVTdXVUZETjBRc1ZVRkJWU3hGUVVGRkxGVkJRVlU3V1VGRGRFSXNaMEpCUVdkQ0xFVkJRVVVzWjBKQlFXZENPMWxCUTJ4RExHTkJRV01zUlVGQlJTeFRRVUZUTzFsQlEzcENMRTlCUVU4c1JVRkJSU3hsUVVGbE8xTkJRM3BDTEVOQlFVTXNRMEZCUXp0UlFVVklMRXRCUVVzc1RVRkJUU3hIUVVGSExFbEJRVWtzVjBGQlZ5eEZRVUZGTzFsQlF6TkNMRTFCUVUwc1ZVRkJWU3hIUVVGSExFZEJRVWNzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0WlFVTm9ReXhoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNSMEZCVnl4RlFVRkZMRVZCUVVVc1EwRkJReXhWUVVGVkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU40UlN4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhSUVVGUkxFVkJRVVVzUjBGQlJ5eERRVUZETEVsQlFVa3NSVUZCUlN4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRE8xTkJRM1JGTzFGQlJVUXNUVUZCVFN4TFFVRkxMRWRCUVVjc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eFJRVUZSTEVWQlFVVXNTMEZCU3l4RlFVRkZMSFZDUVVGMVFpeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMmhJTEUxQlFVMHNSMEZCUnl4SFFVRkhMSFZDUVVGMVFpeERRVUZETEUxQlFVMHNRMEZCUXp0UlFVTXpReXhOUVVGTkxFMUJRVTBzUjBGQlowSXNTMEZCU3l4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVV6UXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hKUVVGSkxHRkJRV0VzUTBGQlF5eE5RVUZOTEV0QlFVc3NRMEZCUXl4SlFVRkpMSE5DUVVGelFpeERRVUZETEZGQlFWRXNRMEZCUXl4blFrRkJaMElzUTBGQlF6dFpRVU01Uml4TlFVRk5MR0ZCUVdFc1EwRkJReXhIUVVGSExFVkJRVVVzZFVKQlFYVkNMRVZCUVVVc1MwRkJTeXhGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXpzN1dVRkZlRVVzTkVKQlFUUkNMRU5CUVVNc1IwRkJSeXhGUVVGRkxGRkJRVkVzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVVjBSQ3hOUVVGTkxHdENRVUZyUWl4SFFVRkhMSE5DUVVGelFpeERRVUZETzFGQlJXeEVMRTFCUVUwc1QwRkJUeXhIUVVGaExFVkJRVVVzUTBGQlF6dFJRVU0zUWl4TlFVRk5MRkZCUVZFc1IwRkJZU3hGUVVGRkxFTkJRVU03VVVGRE9VSXNUVUZCVFN4RlFVRkZMRWRCUVdFc1JVRkJSU3hEUVVGRE8xRkJRM2hDTEUxQlFVMHNSVUZCUlN4SFFVRmhMRVZCUVVVc1EwRkJRenRSUVVONFFpeE5RVUZOTEZsQlFWa3NSMEZCUnl4SlFVRkpMRWRCUVVjc1JVRkJWU3hEUVVGRE8xRkJSWFpETEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRk8xbEJRMnBETEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJUdG5Ra0ZEY2tNc1RVRkJUU3hIUVVGSExFZEJRVmNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUlhKRUxFbEJRVWtzUjBGQlJ5eEpRVUZKTEd0Q1FVRnJRaXhGUVVGRk8yOUNRVU0zUWl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTllMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGRGJrSXNXVUZCV1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZEY0VJc1dVRkJXU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU0xUWl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzI5Q1FVTnNRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRM0pGTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNN2QwSkJRMVlzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXpzN2QwSkJSV2hETEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03YVVKQlF6TkNPMkZCUTBZN1UwRkRSanRSUVVWRUxFMUJRVTBzZFVKQlFYVkNMRWRCUVVjc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1MwRkJTeXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU4yUlN4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NkVUpCUVhWQ0xFTkJRVU1zUTBGQlF6dFJRVU55UkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NkVUpCUVhWQ0xFTkJRVU1zUTBGQlF6dFJRVU55UkN4TlFVRk5MR1ZCUVdVc1IwRkJSeXhIUVVGSExFZEJRVU1zUTBGQlF5eFBRVUZQTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkhhRVFzVFVGQlRTeGxRVUZsTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXk5RExFMUJRVTBzWlVGQlpTeEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTXZReXhOUVVGTkxGTkJRVk1zUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGZWtNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVTdXVUZEYmtNc1pVRkJaU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVNMVFpeGxRVUZsTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFsQlF6VkNMR1ZCUVdVc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGNrTXNaVUZCWlN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOeVF5eEpRVUZKTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hSUVVGUkxFVkJRVVU3WjBKQlF6TkNMRWxCUVVrc1ZVRkJWU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGREwwTXNVMEZCVXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenM3YjBKQlJXaERMRk5CUVZNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WVVGRGJrTTdVMEZEUmp0UlFVVkVMRTFCUVUwc1NVRkJTU3hIUVVGakxFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTTdVVUZGYWtrc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRja0lzVFVGQlRTeGhRVUZoTEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU1zUlVGQlJTeEZRVUZGTEZsQlFWa3NRMEZCUXl4RFFVRkRPMUZCUlRWRUxFMUJRVTBzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTTVReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1lVRkJZU3hEUVVGRkxFTkJRVU1zVDBGQlR5eEhRVUZITEV0QlFVc3NRMEZCUXp0UlFVTjZSQ3hOUVVGTkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zVjBGQlZ5eERRVUZETEVWQlFVVXNSVUZCUlR0WlFVTnNSQ3hYUVVGWExFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTjZRaXhYUVVGWExFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTjZRaXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVsQlFVazdXVUZEWml4TFFVRkxMRVZCUVVVc1ZVRkJWU3hEUVVGRExFbEJRVWs3V1VGRGRFSXNZVUZCWVN4RlFVRkZMRXRCUVVzN1dVRkRjRUlzWVVGQllTeEZRVUZGTEV0QlFVczdXVUZEY0VJc1owSkJRV2RDTEVWQlFVVXNTMEZCU3p0WlFVTjJRaXhwUWtGQmFVSXNSVUZCUlN4TFFVRkxPMWxCUTNoQ0xHRkJRV0VzUlVGQlJTeERRVUZETzFsQlEyaENMR0ZCUVdFc1JVRkJSU3hGUVVGRk8xbEJRMnBDTEV0QlFVc3NSVUZCUlN4WlFVRlpPMU5CUTNCQ0xFTkJRVU1zUTBGQmVVSXNRMEZCUXp0UlFVVTFRaXhOUVVGTkxFMUJRVTBzUjBGQlNTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RlFVRlZMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03VVVGREwwTXNUVUZCVFN4UlFVRlJMRWRCUVVjc1YwRkJWeXhEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRlZCUVZVc1JVRkJSU3hSUVVGUkxFVkJRVVVzVDBGQlR5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVVelJpeE5RVUZOTEdWQlFXVXNSMEZCVVN4RlFVRkZMRU5CUVVNN1VVRkRhRU1zU1VGQlNTeEhRVUZwUWl4RFFVRkRPMUZCUlhSQ0xGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zVTBGQlV5eERRVUZETEVkQlFVY3NSVUZCUlR0WlFVTnVSQ3hOUVVGTkxHRkJRV0VzUjBGQlJ5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1NVRkJTU3hSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRXRCUVVzc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVNeFJ5eE5RVUZOTEVsQlFVa3NSMEZCUnl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0VzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTTdXVUZETTBjc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eGhRVUZoTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU5zUlN4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRaUVVNelJDeEZRVUZGTEVOQlFVTXNVMEZCVXl4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdXVUZETVVRc1YwRkJWeXhEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzFsQlEzcENMRWxCUVVrc1NVRkJTVHRuUWtGRFRpeFZRVUZWTEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVVc2JVSkJRVzFDTEVOQlFVTXNSVUZCUlN4RlFVRkZMRWRCUVVjc1JVRkJSU3hsUVVGbExFVkJRVVVzU1VGQlNTeEZRVUZGTEUxQlFVMHNSVUZCUlN4VlFVRlZMRVZCUVVVc1VVRkJVU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNUVUZCVFN4RlFVRkZMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeHBRa0ZCYVVJc1EwRkJReXhEUVVGQkxFTkJRVUVzUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUTJoTExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlJVZ3NVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGTkxFVkJRVVVzUlVGQlJUdFpRVU4yUkN4SlFVRkpMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zWlVGQlpTeExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkZPMmRDUVVNelF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNN1owSkJRemxFTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETzJkQ1FVTXZRaXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRTdiMEpCUTJoQ0xFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8yRkJRemxDTzFsQlEwUXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlR0blFrRkRNMElzU1VGQlNTeERRVUZETEVOQlFVTXNVVUZCVVR0dlFrRkRXaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEY2tRc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRFNDeFhRVUZYTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNN1VVRkRNMElzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGU0N4TlFVRk5MRmRCUVZjc1IwRkJSeXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRmVrVXNWMEZCVnl4RFFVRkRMRmRCUVZjc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eEZRVUZGTzFsQlEzSkRMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU03VVVGRFpDeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVklMRTFCUVUwc1kwRkJZeXhIUVVGSExFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExGRkJRVkVzVTBGQlV5eEZRVUZGTEVkQlFVY3NSVUZCUlR0WlFVTXpSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFbEJRVWtzUlVGQlJTeE5RVUZOTEVWQlFVVXNTVUZCU1N4RlFVRkZMR2xDUVVGcFFpeEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTNSR0xFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEwZ3NaVUZCWlN4RFFVRkRMR05CUVdNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZGZUVNc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl4RlFVRkZMRU5CUVVNc1YwRkJWeXhEUVVGRExHdENRVUZyUWl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRM0pGTEd0Q1FVRnJRaXhEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZGTEVWQlFVVTdXVUZETDBJc2EwSkJRV3RDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEdGQlFXRXNRMEZCUXl4TFFVRkxMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU16Unl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOSUxHVkJRV1VzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUldwRUxFbEJRVWtzUzBGQmNVSXNRMEZCUXp0UlFVTXhRaXhOUVVGTkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1YwRkJWeXhGUVVGRkxGVkJRVlVzUzBGQmFVSTdXVUZET1VRc1dVRkJXU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFsQlEzQkNMRXRCUVVzc1IwRkJSeXhOUVVGTkxFTkJRVU1zVlVGQlZTeERRVUZETzJkQ1FVTjRRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eHBRa0ZCYVVJc1EwRkJReXhMUVVGTExFVkJRVVVzVFVGQlRTeEZRVUZGTEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRuUWtGRE9VUXNTVUZCU1N4SlFVRkpMRWxCUVVrc1JVRkJSU3hEUVVGRExHVkJRV1VzUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlR0dlFrRkRia01zUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFVkJRVU1zVlVGQlZTeEZRVUZGTEdWQlFXVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRTFCUVUwc1JVRkJSU3hYUVVGWExFVkJRVVVzVlVGQlZTeEZRVUZETEVOQlFVTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0cFFrRkRNVW83V1VGRFNDeERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRWaXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVZJTEUxQlFVMHNRMEZCUXl4blFrRkJaMElzUTBGQlF5eFhRVUZYTEVWQlFVVXNWVUZCVXl4TFFVRnBRanRaUVVNM1JDeE5RVUZOTEVsQlFVa3NSMEZCUnl4cFFrRkJhVUlzUTBGQlF5eExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFpRVU01UkN4SlFVRkpMRWxCUVVrc1NVRkJTU3hGUVVGRkxFTkJRVU1zWlVGQlpTeExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkZPMmRDUVVOeVF5eEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVN2IwSkJRMnBDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETzI5Q1FVTXZRaXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUlVGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN2IwSkJSWFpFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVVHQzUWtGRGFFSXNSVUZCUlN4RFFVRkRMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdiMEpCUlRkQ0xGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVU3ZDBKQlF6TkNMRWxCUVVrc1EwRkJReXhEUVVGRExGRkJRVkU3TkVKQlExb3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU55UkN4RFFVRkRMRU5CUVVNc1EwRkJRenRwUWtGRFNqdHhRa0ZCVFR0dlFrRkRUQ3hKUVVGSkxGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4TFFVRkxMRWxCUVVrc1EwRkJReXhGUVVGRkxFVkJRVVU3ZDBKQlF6bERMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zWVVGQllTeEhRVUZITEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNN2QwSkJRM3BETEVWQlFVVXNRMEZCUXl4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0M1FrRkRhRU1zUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dDNRa0ZEYWtRc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN2NVSkJRMnBFTzJsQ1FVTkdPMmRDUVVORUxFMUJRVTBzUzBGQlN5eEhRVUZITEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1kwRkJZeXhEUVVGRExGZEJRVmNzUTBGQlF5eGhRVUZoTEVWQlFVVXNWMEZCVnl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8yZENRVU5vUnl4WFFVRlhMRU5CUVVNc1dVRkJXU3hEUVVGRExFOUJRVThzUlVGQlJTeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzJGQlF6TkVPMUZCUTBnc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRlNDeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMSE5DUVVGelFpeERRVUZETzJGQlF5OUNMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVTBzUlVGQlJTeEZRVUZGTzFsQlEzQkNMRTFCUVUwc1MwRkJTeXhIUVVGSExGZEJRVmNzUTBGQlF5eEZRVUZGTEVWQlF6RkNMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeGxRVUZsTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1dVRkROVVVzU1VGQlNTeEpRVUZKTEVWQlFVVTdaMEpCUTFJc1RVRkJUU3hYUVVGWExFZEJRVWNzUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03WjBKQlF6RkVMRlZCUVZVc1EwRkJReXhIUVVGRkxFVkJRVVU3YjBKQlEySXNUVUZCVFN4RlFVRkRMRkZCUVZFc1JVRkJSU3hUUVVGVExFVkJRVVVzVDBGQlR5eEZRVUZGTEZWQlFWVXNSVUZCUXl4SFFVRkhMR3RDUVVGclFpeERRVU51UlN4RlFVRkZMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUlVGRGFrSXNSVUZCUlN4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFVkJRMnhDTEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlEyNUVMRVZCUVVVc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUTI1RUxFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRMjVFTEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlEzQkVMRU5CUVVFN2IwSkJRMFFzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUTJRc1QwRkJUeXhGUVVOUUxGTkJRVk1zUlVGRFZDeFZRVUZWTEVOQlFVTXNRMEZCUXp0blFrRkRhRUlzUTBGQlF5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMmRDUVVOU0xFbEJRVWtzUjBGQlJ5eExRVUZMTEVOQlFVTTdZVUZEWkR0WlFVTkVMR3RDUVVGclFpeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eGhRVUZoTEVOQlFVTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRE0wY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZUQ3hGUVVGRkxFTkJRVU1zVjBGQlZ5eERRVUZETEdsQ1FVRnBRaXhGUVVGRkxGRkJRVkVzUlVGQlJTeHJRa0ZCYTBJc1EwRkJReXhEUVVGRE8xRkJRMmhGTEVkQlFVY3NSMEZCUnl4clFrRkJhMElzUlVGQlJTeERRVUZETzFGQlF6TkNMRTlCUVU4c1JVRkJSU3hEUVVGRE8wbEJRMW9zUTBGQlF6dERRVUZCTzBGQlJVUXNVMEZCVXl4bFFVRmxMRU5CUVVNc1JVRkJaU3hGUVVGRkxFVkJRWGRDTEVWQlFVVXNVMEZCYVVJN1NVRkRia1lzUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRWRCUVVjc1ZVRkJWU3hEUVVGRE8wbEJReTlDTEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhIUVVGSExFZEJRVWNzVTBGQlV5eEpRVUZKTEVOQlFVTTdTVUZEYUVNc1JVRkJSU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVkQlFVY3NUVUZCVFN4RFFVRkRPMGxCUTNoQ0xFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRM0pDTEVOQlFVTTdRVUZGUkN4VFFVRlRMR3RDUVVGclFqdEpRVU42UWl4TlFVRk5MRWRCUVVjc1IwRkJSeXhGUVVGRkxFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdTVUZETTBJc1RVRkJUU3hQUVVGUExFZEJRVWNzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVOb1F5eFBRVUZQTEVOQlFVTXNVMEZCVXl4SFFVRkhMRzlEUVVGdlF5eERRVUZETzBsQlEzcEVMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZET1VRc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eGxRVUZsTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5dzJRa0ZCTmtJc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzBsQlEzQkdMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNN1NVRkRlRUlzVDBGQlR5eEhRVUZITEVOQlFVTTdRVUZEWWl4RFFVRkRPMEZCUlVRc1UwRkJVeXh0UWtGQmJVSXNRMEZETVVJc1JVRkJaMElzUlVGRGFFSXNSMEZCYVVJc1JVRkRha0lzVlVGQlpTeEZRVU5tTEVsQlFWY3NSVUZEV0N4TlFVRnBRaXhGUVVOcVFpeFZRVUZ4UWl4RlFVTnlRaXhKUVVGWkxFVkJRMW9zWVVGQk9FUTdTVUZET1VRc1RVRkJUU3hMUVVGTExFZEJRVWNzUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJRenRKUVVNelF5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU55UWl4TlFVRk5MRmxCUVZrc1IwRkJSeXhoUVVGaExFTkJRVU1zUlVGQlF5eFZRVUZWTEVWQlFVVXNWVUZCVlN4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4TlFVRk5MRVZCUVVVc1RVRkJUU3hGUVVGRkxGZEJRVmNzUlVGQlJTeFZRVUZWTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJReXhEUVVGRExFTkJRVU03U1VGRGRFa3NTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdTVUZEYUVNc1ZVRkJWU3hEUVVGRExFZEJRVWNzUlVGQlJUdFJRVU5rTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTTdTVUZETVVJc1EwRkJReXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzBGQlExWXNRMEZCUXp0QlFVVkVMRk5CUVZNc2EwSkJRV3RDTEVOQlFVTXNSVUZCVlN4RlFVRkZMRVZCUVZVc1JVRkJSU3hGUVVGVkxFVkJRVVVzUlVGQlZTeEZRVUZGTEVWQlFWVXNSVUZCUlN4RlFVRlZPMGxCUTJoSExFMUJRVTBzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETzBsQlF6ZENMRTFCUVUwc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRemRDTEUxQlFVMHNUVUZCVFN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRGRrSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF6dEpRVU4yUWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRKUVVOMlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZETlVJc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRelZDTEUxQlFVMHNTVUZCU1N4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8wbEJReTlDTEUxQlFVMHNSMEZCUnl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8wbEJRemxDTEUxQlFVMHNVVUZCVVN4SFFVRkhMRU5CUVVNc1NVRkJTU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRekZETEUxQlFVMHNVMEZCVXl4SFFVRkhMRkZCUVZFc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRGFFTXNUVUZCVFN4UFFVRlBMRWRCUVVjc1EwRkJReXhIUVVGSExFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGVFTXNUVUZCVFN4VlFVRlZMRWRCUVVjc1QwRkJUeXhIUVVGSExFVkJRVVVzUTBGQlF6dEpRVU5vUXl4UFFVRlBMRVZCUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeFRRVUZUTEVWQlFVVXNVMEZCVXl4RlFVRkZMRTlCUVU4c1JVRkJSU3hQUVVGUExFVkJRVVVzVlVGQlZTeEZRVUZGTEZWQlFWVXNSVUZCUXl4RFFVRkRPMEZCUXpsR0xFTkJRVU03UVVGRlJDeFRRVUZUTEdsQ1FVRnBRaXhEUVVGRExFdEJRVlVzUlVGQlJTeE5RVUZYTEVWQlFVVXNTMEZCWXp0SlFVTm9SU3hOUVVGTkxFbEJRVWtzUjBGQlJ5eE5RVUZOTEVOQlFVTXNjVUpCUVhGQ0xFVkJRVVVzUTBGQlF6dEpRVU0xUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU1zVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNN1NVRkRjRU1zVFVGQlRTeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETzBsQlEyNURMRWxCUVVrc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF6dEpRVU4yUWl4SlFVRkpMRTlCUVU4c1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGFFSXNTMEZCU3l4TlFVRk5MRWxCUVVrc1NVRkJTU3hMUVVGTExFVkJRVVU3VVVGRGVFSXNUVUZCVFN4SlFVRkpMRWRCUTFJc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTJwRUxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzWkhMRWxCUVVrc1EwRkJReXhEUVVGRExFOUJRVThzU1VGQlNTeEpRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWxCUVVrc1NVRkJTU3hIUVVGSExFOUJRVThzUlVGQlJUdFpRVU0xUXl4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRE8xbEJRMllzVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXp0VFFVTndRanRMUVVOR08wbEJRMFFzVDBGQlR5eFhRVUZYTEVOQlFVTTdRVUZEY2tJc1EwRkJRenRCUVVWRUxGTkJRVk1zVjBGQlZ5eERRVUZETEVWQlFYZENMRVZCUXpORExFdEJRV0VzUlVGQlJTeExRVUZoTEVWQlFVVXNVVUZCZDBJc1JVRkJSU3hSUVVGclFpeEZRVUZGTEdWQlFYVkNMRVZCUVVVc1QwRkJaVHRKUVVOd1NDeE5RVUZOTEV0QlFVc3NSMEZCUnl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRE8wbEJRemRDTEUxQlFVMHNUVUZCVFN4SFFVRkpMRVZCUVVVc1EwRkJReXhQUVVGUExFVkJRVGhDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1NVRkRia1VzVFVGQlRTeEhRVUZITEVkQlFVY3NUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVFpDTEVOQlFVTTdTVUZEYUVVc1RVRkJUU3hEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEZOQlFWVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlF6bERMRTFCUVUwc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eFRRVUZWTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEpRVU01UXl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFJRVU55UXl4TlFVRk5MRk5CUVZNc1IwRkJSeXhGUVVGRkxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRja1lzVFVGQlRTeFBRVUZQTEVkQlFVY3NSVUZCUlN4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEyNUdMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhGUVVGRkxGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjRReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRjRU1zVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4TlFVRk5MRVZCUVVVc1EwRkJRenRSUVVNeFFpeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRekZETEUxQlFVMHNTMEZCU3l4SFFVRkhMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETzFGQlF6RkVMRTFCUVUwc1QwRkJUeXhIUVVGSExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4SFFVRkRMR1ZCUVdVc1EwRkJRenRSUVVNM1JpeEhRVUZITEVOQlFVTXNWMEZCVnl4SFFVRkhMRkZCUVZFc1MwRkJTeXhKUVVGSkxFOUJRVThzUjBGQlJ5eERRVUZETzFGQlF6bERMRWRCUVVjc1EwRkJReXhUUVVGVExFZEJRVWNzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1MwRkJTeXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEZGtVc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTXhReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMHRCUTJ4Q08wbEJRMFFzVDBGQlR5eExRVUZMTEVOQlFVTTdRVUZEWml4RFFVRkRPMEZCUlVRc1UwRkJVeXhYUVVGWExFTkJRMnhDTEVWQlFWa3NSVUZEV2l4RlFVRlpMRVZCUTFvc1IwRkJZeXhGUVVOa0xGVkJRWEZDTEVWQlEzSkNMRkZCUVd0Q0xFVkJRMnhDTEU5QlFXbENMRVZCUTJwQ0xFOUJRV1VzUlVGRFppeEpRVUVyUWp0SlFVTXZRaXhOUVVGTkxFdEJRVXNzUjBGQldTeEpRVUZKTEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUTNaRUxFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMUZCUTJ4RExFMUJRVTBzU1VGQlNTeEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOdVFpeE5RVUZOTEVsQlFVa3NSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGJrSXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNSVUZCUlN4UlFVRlJMRVZCUVVVc1MwRkJTeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU03UzBGRGVrVTdTVUZEUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhGUVVGRkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRGJFUXNZMEZCWXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlR0UlFVTnFReXhQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEZsQlFWa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZUTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYkVZc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkZMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRGFFTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVVVzUTBGQlF5eFBRVUZQTEVkQlFVY3NUMEZCVHl4RFFVRkRPMGxCUTNKRExFTkJRVU1zUTBGQlF5eERRVUZCTzBsQlEwWXNUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhYUVVGWExFTkJRVU1zVlVGQlZTeERRVUZETzFOQlEzQkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVk1zUlVGQlJTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEZEVjc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlV5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNdlJDeFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRmRCUVZjc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRlRMRVZCUVVVc1JVRkJSU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNKRkxFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFWTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEYmtVc1QwRkJUeXhGUVVGRExFdEJRVXNzUlVGQlJTeFBRVUZQTEVWQlFVTXNRMEZCUXp0QlFVTXhRaXhEUVVGRE8wRkJSVVFzVTBGQlV5eFBRVUZQTEVOQlFVTXNSMEZCWXl4RlFVRkZMRWxCUVN0Q08wbEJRemxFTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZPMUZCUXpsQ0xFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlF6VkNMRU5CUVVNc1EwRkJReXhEUVVGQk8wRkJRMG9zUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCWjBJc2IwSkJRVzlDTEVOQlEzUkRMRWRCUVZjc1JVRkRXQ3hOUVVGcFFpeEZRVU5xUWl4TFFVRnRRaXhGUVVOdVFpeE5RVUZ0UWl4RlFVTnVRaXhQUVVGdFJUczdVVUZIY2tVc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVTdXVUZEYWtNc1RVRkJUU3hIUVVGSExFZEJRVWNzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVNeFFpeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUTJwRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkZMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVVVzUTBGQlF6dFRRVU4wUkR0UlFVTkVMRTlCUVU4c1RVRkJUU3hEUVVGRE8wbEJRMmhDTEVOQlFVTTdRMEZCUVR0QlFVZEVMRTFCUVUwc1ZVRkJWU3cwUWtGQk5FSXNRMEZCUXl4SFFVRlhMRVZCUVVVc1UwRkJhVUlzUlVGQlJTeE5RVUZ0UWp0SlFVVTVSaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhIUVVGSExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlR0UlFVTm9ReXhOUVVGTkxHRkJRV0VzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOeVJDeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSVHRaUVVOb1F5eGhRVUZoTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eDVRa0ZCZVVJc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRUUVVOMlJUdFJRVU5FTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExGbEJRVmtzUlVGQlJTeFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU03UzBGRGVFWTdTVUZEUkN4UFFVRlBMRTFCUVUwc1EwRkJRenRCUVVOb1FpeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMRzFDUVVGdFFpeERRVUZETEVWQlFXZENMRVZCUVVVc1IwRkJaMEk3U1VGRGNFVXNUVUZCVFN4UFFVRlBMRWRCUVVjc1pVRkJaU3hEUVVGRE8wbEJRMmhETEUxQlFVMHNWVUZCVlN4SFFVRkhMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1JVRkJWU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVTTVSaXhOUVVGTkxGVkJRVlVzUjBGQlJ5eEhRVUZITEU5QlFVOHNTVUZCU1N4VlFVRlZMRVZCUVVVc1EwRkJRenRKUVVNNVF5eEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNeFJDeFBRVUZQTEZWQlFWVXNRMEZCUXp0QlFVTndRaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElDb2dZWE1nWjNKdmF5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaM0p2YXljN1hHNXBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1YVcxd2IzSjBJQ29nWVhNZ2RXa2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMM1ZwSnp0Y2JtbHRjRzl5ZENCN0lFMWhkSEpwZUNCOUlHWnliMjBnSjBCa1lYUmhaM0p2YXkxc2FXSnlZWEpwWlhNdmRYUnBiSE12YzNKakwzUjVjR1V0WkdWamJHRnlZWFJwYjI1ekp6dGNibWx0Y0c5eWRDQjdJR2RsZEZOcGJXbHNZWEpwZEhsR2NtOXRSR2x6ZEdGdVkyVWdmU0JtY205dElDZEFaR0YwWVdkeWIyc3RiR2xpY21GeWFXVnpMM1YwYVd4ekwzTnlZeTl6YVcxcGJHRnlhWFI1TFcxbGRISnBZM01uTzF4dWFXMXdiM0owSUh0eVpXMXZkbVZGYlhCMGVWTjBjbWx1WjFKdmQzTjlJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMMlJoZEdGbWNtRnRaUzExZEdsc2N5ZGNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JKVEdsdVpTQjdYRzRnSUdsa09pQnVkVzFpWlhJN1hHNGdJRzF2YkhNNklHNTFiV0psY2x0ZE8xeHVJQ0J6Wld4bFkzUmxaRG9nWW05dmJHVmhianRjYmlBZ1lUb2diblZ0WW1WeVcxMDdJQzh2SUZ0NExDQjVYVnh1SUNCaU9pQnVkVzFpWlhKYlhUc2dMeThnVzNnc0lIbGRYRzU5WEc1Y2JtbHVkR1Z5Wm1GalpTQkpVbVZ1WkdWeVpXUk1hVzVsY3lCN1hHNGdJR3hwYm1Wek9pQkpUR2x1WlZ0ZE8xeHVJQ0JzYVc1bGMwUm1PaUJFUnk1RVlYUmhSbkpoYldVN1hHNTlYRzVjYm1WNGNHOXlkQ0JwYm5SbGNtWmhZMlVnU1ZObGNYVmxibU5sVTNCaFkyVlFZWEpoYlhNZ2UxeHVJQ0J6WlhGRGIydzZJRVJITGtOdmJIVnRiaXhjYmlBZ2JXVjBhRzlrVG1GdFpUb2djM1J5YVc1bkxGeHVJQ0J6YVcxcGJHRnlhWFI1VFdWMGNtbGpPaUJ6ZEhKcGJtY3NYRzRnSUdWdFltVmtRWGhsYzA1aGJXVnpPaUJ6ZEhKcGJtZGJYU3hjYmlBZ2IzQjBhVzl1Y3o4NklHRnVlVnh1ZlZ4dVhHNWxlSEJ2Y25RZ2FXNTBaWEptWVdObElFbFRaWEYxWlc1alpWTndZV05sVW1WemRXeDBJSHRjYmlBZ1pHbHpkR0Z1WTJVNklFMWhkSEpwZUR0Y2JpQWdZMjl2Y21ScGJtRjBaWE02SUVSSExrTnZiSFZ0Ymt4cGMzUTdYRzU5WEc1Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1NWUnZiMngwYVhCQmJtUlFZVzVsYkZCaGNtRnRjeUI3WEc0Z0lHTmhjMmhsWkVSaGRHRTZJR0Z1ZVN4Y2JpQWdiR2x1WlRvZ1NVeHBibVVzWEc0Z0lHUm1PaUJFUnk1RVlYUmhSbkpoYldVc1hHNGdJSE5sY1VOdmJEb2dSRWN1UTI5c2RXMXVMRnh1SUNCaFkzUnBkbWwwZVVOdmJEb2dSRWN1UTI5c2RXMXVMRnh1SUNCellXeHBQem9nYm5WdFltVnlYRzU5WEc1Y2JteGxkQ0I2YjI5dElEMGdabUZzYzJVN1hHNWNibU52Ym5OMElHMXZiRU52YkhWdGJrNWhiV1Z6SUQwZ1d5Y3hYM05sY1Njc0lDY3lYM05sY1NkZE8xeHVYRzVqYjI1emRDQnViMjVPYjNKdFlXeHBlbVZrUkdsemRHRnVZMlZ6SUQwZ1d5ZE1aWFpsYm5Ob2RHVnBiaWRkTzF4dVhHNHZMeUJUWldGeVkyaGxjeUJtYjNJZ1lXTjBhWFpwZEhrZ1kyeHBabVp6SUdsdUlHRWdZMmhsYldsallXd2daR0YwWVhObGRDQmllU0J6Wld4bFkzUmxaQ0JqZFhSdlptWmNibVY0Y0c5eWRDQmhjM2x1WXlCbWRXNWpkR2x2YmlCblpYUkJZM1JwZG1sMGVVTnNhV1ptY3loY2JpQWdJQ0JrWmpvZ1JFY3VSR0YwWVVaeVlXMWxMQ0JjYmlBZ0lDQnpaWEZEYjJ3NklFUkhMa052YkhWdGJpeGNiaUFnSUNCbGJtTnZaR1ZrUTI5c09pQkVSeTVEYjJ4MWJXNGdmQ0J1ZFd4c0xGeHVJQ0FnSUdGNFpYTk9ZVzFsY3pvZ2MzUnlhVzVuVzEwc1hHNGdJQ0FnYzJOaGRIUmxjbFJwZEd4bE9pQnpkSEpwYm1jc1hHNGdJQ0FnWVdOMGFYWnBkR2xsY3pvZ1JFY3VRMjlzZFcxdUxDQmNiaUFnSUNCemFXMXBiR0Z5YVhSNU9pQnVkVzFpWlhJc1hHNGdJQ0FnYzJsdGFXeGhjbWwwZVUxbGRISnBZem9nYzNSeWFXNW5MQ0JjYmlBZ0lDQnRaWFJvYjJST1lXMWxPaUJ6ZEhKcGJtY3NJRnh1SUNBZ0lITmxiVlI1Y0dVNklITjBjbWx1Wnl4Y2JpQWdJQ0IwWVdkek9pQjdXMmx1WkdWNE9pQnpkSEpwYm1kZE9pQnpkSEpwYm1kOUxGeHVJQ0FnSUhObGNWTndZV05sUm5WdVl6b2dLSEJoY21GdGN6b2dTVk5sY1hWbGJtTmxVM0JoWTJWUVlYSmhiWE1wSUQwK0lGQnliMjFwYzJVOFNWTmxjWFZsYm1ObFUzQmhZMlZTWlhOMWJIUStMRnh1SUNBZ0lITnBiVTFoZEhKcGVFWjFibU02SUNoa2FXMDZJRzUxYldKbGNpd2djMlZ4UTI5c09pQkVSeTVEYjJ4MWJXNHNJR1JtT2lCRVJ5NUVZWFJoUm5KaGJXVXNJR052YkU1aGJXVTZJSE4wY21sdVp5d2djMmx0UVhKeU9pQkVSeTVEYjJ4MWJXNWJYU2tnUFQ0Z1VISnZiV2x6WlR4RVJ5NURiMngxYlc1YlhUNHNYRzRnSUNBZ2RHOXZiSFJwY0VaMWJtTTZJQ2h3WVhKaGJYTTZJRWxVYjI5c2RHbHdRVzVrVUdGdVpXeFFZWEpoYlhNcElEMCtJRWhVVFV4RmJHVnRaVzUwTEZ4dUlDQWdJSEJ5YjNCbGNuUjVVR0Z1Wld4R2RXNWpPaUFvY0dGeVlXMXpPaUJKVkc5dmJIUnBjRUZ1WkZCaGJtVnNVR0Z5WVcxektTQTlQaUJJVkUxTVJXeGxiV1Z1ZEN4Y2JpQWdJQ0J6WlhGVGNHRmpaVTl3ZEdsdmJuTS9PaUJoYm5rcElEb2dVSEp2YldselpUeEVSeTVXYVdWM1pYSStJSHRjYmx4dUlDQmpiMjV6ZENCaGRYUnZiV0YwYVdOVGFXMXBiR0Z5YVhSNVRHbHRhWFFnUFNCbVlXeHpaVHRjYmlBZ1kyOXVjM1FnVFVsT1gxTkpUVWxNUVZKSlZGa2dQU0E0TUR0Y2JseHVJQ0JqYjI1emRDQnBibWwwYVdGc1UybHRhV3hoY21sMGVVeHBiV2wwSUQwZ1lYVjBiMjFoZEdsalUybHRhV3hoY21sMGVVeHBiV2wwSUQ4Z1RVbE9YMU5KVFVsTVFWSkpWRmtnT2lCemFXMXBiR0Z5YVhSNUlDOGdNVEF3TzF4dVhHNGdJR052Ym5OMElHUnBiV1Z1YzJsdmJtRnNhWFI1VW1Wa2RXTmxRMjlzSUQwZ1pXNWpiMlJsWkVOdmJDQS9QeUJ6WlhGRGIydzdYRzRnSUdOdmJuTjBJSGRwZEdodmRYUkZiWEIwZVZaaGJIVmxjeUE5SUVSSExrUmhkR0ZHY21GdFpTNW1jbTl0UTI5c2RXMXVjeWhiWkdsdFpXNXphVzl1WVd4cGRIbFNaV1IxWTJWRGIyeGRLUzVqYkc5dVpTZ3BPMXh1SUNBZ0lDOHZRSFJ6TFdsbmJtOXlaVnh1SUNCamIyNXpkQ0JsYlhCMGVWWmhiSE5KWkhoeklEMGdjbVZ0YjNabFJXMXdkSGxUZEhKcGJtZFNiM2R6S0hkcGRHaHZkWFJGYlhCMGVWWmhiSFZsY3l3Z1pHbHRaVzV6YVc5dVlXeHBkSGxTWldSMVkyVkRiMndwTzF4dVhHNGdJR052Ym5OMElIdGthWE4wWVc1alpTd2dZMjl2Y21ScGJtRjBaWE45SUQwZ1lYZGhhWFFnYzJWeFUzQmhZMlZHZFc1aktIdGNiaUFnSUNCelpYRkRiMnc2SUhkcGRHaHZkWFJGYlhCMGVWWmhiSFZsY3k1amIyd29aR2x0Wlc1emFXOXVZV3hwZEhsU1pXUjFZMlZEYjJ3dWJtRnRaU2toTEZ4dUlDQWdJRzFsZEdodlpFNWhiV1U2SUcxbGRHaHZaRTVoYldVc1hHNGdJQ0FnYzJsdGFXeGhjbWwwZVUxbGRISnBZem9nYzJsdGFXeGhjbWwwZVUxbGRISnBZeXhjYmlBZ0lDQmxiV0psWkVGNFpYTk9ZVzFsY3pvZ1lYaGxjMDVoYldWekxGeHVJQ0FnSUc5d2RHbHZibk02SUhObGNWTndZV05sVDNCMGFXOXVjMXh1SUNCOUtUdGNibHh1SUNCbWIzSWdLR052Ym5OMElHTnZiQ0J2WmlCamIyOXlaR2x1WVhSbGN5a2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2JHbHpkRlpoYkhWbGN5QTlJR052YkM1MGIweHBjM1FvS1R0Y2JpQWdJQ0FnSUdWdGNIUjVWbUZzYzBsa2VITXVabTl5UldGamFDZ29hVzVrT2lCdWRXMWlaWElwSUQwK0lHeHBjM1JXWVd4MVpYTXVjM0JzYVdObEtHbHVaQ3dnTUN3Z2JuVnNiQ2twTzF4dUlDQWdJQ0FnWkdZdVkyOXNkVzF1Y3k1aFpHUW9SRWN1UTI5c2RXMXVMbVp5YjIxTWFYTjBLQ2RrYjNWaWJHVW5MQ0JqYjJ3dWJtRnRaU3dnYkdsemRGWmhiSFZsY3lrcE8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ1pHWlRaWEVnUFNCRVJ5NUVZWFJoUm5KaGJXVXVabkp2YlVOdmJIVnRibk1vVzBSSExrTnZiSFZ0Ymk1bWNtOXRUR2x6ZENnbmMzUnlhVzVuSnl3Z0ozTmxjU2NzSUdScGJXVnVjMmx2Ym1Gc2FYUjVVbVZrZFdObFEyOXNMblJ2VEdsemRDZ3BLVjBwTzF4dUlDQmpiMjV6ZENCa2FXMGdQU0JrYVcxbGJuTnBiMjVoYkdsMGVWSmxaSFZqWlVOdmJDNXNaVzVuZEdnN1hHNGdJR052Ym5OMElITnBiVUZ5Y2pvZ1JFY3VRMjlzZFcxdVcxMGdQU0JCY25KaGVTaGthVzBnTFNBeEtUdGNibHh1SUNCcFppQW9JV1JwYzNSaGJtTmxJSHg4SUdWdGNIUjVWbUZzYzBsa2VITXViR1Z1WjNSb0lDRTlQU0F3SUh4OElHNXZiazV2Y20xaGJHbDZaV1JFYVhOMFlXNWpaWE11YVc1amJIVmtaWE1vYzJsdGFXeGhjbWwwZVUxbGRISnBZeWtwWEc0Z0lDQWdZWGRoYVhRZ2MybHRUV0YwY21sNFJuVnVZeWhrYVcwc0lHUnBiV1Z1YzJsdmJtRnNhWFI1VW1Wa2RXTmxRMjlzTENCa1psTmxjU3dnSjNObGNTY3NJSE5wYlVGeWNpazdYRzRnSUdWc2MyVmNiaUFnSUNCblpYUlRhVzFwYkdGeWFYUnBaWE5HY205dFJHbHpkR0Z1WTJWektHUnBiU3dnWkdsemRHRnVZMlVzSUhOcGJVRnljaWs3WEc1Y2JpQWdZMjl1YzNRZ2IzQjBVMmx0YVd4aGNtbDBlVXhwYldsMElEMGdhVzVwZEdsaGJGTnBiV2xzWVhKcGRIbE1hVzFwZER0Y2JseHVJQ0JqYjI1emRDQnphVzFXWVd4ek9pQnVkVzFpWlhKYlhTQTlJRnRkTzF4dUlDQmpiMjV6ZENCellXeHBWbUZzY3pvZ2JuVnRZbVZ5VzEwZ1BTQmJYVHRjYmlBZ1kyOXVjM1FnYmpFNklHNTFiV0psY2x0ZElEMGdXMTA3WEc0Z0lHTnZibk4wSUc0eU9pQnVkVzFpWlhKYlhTQTlJRnRkTzF4dUlDQmpiMjV6ZENCamJHbG1abk5OYjJ4SlpITWdQU0J1WlhjZ1UyVjBQRzUxYldKbGNqNG9LVHRjYmx4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQWhQU0JrYVcwZ0xTQXhPeUFySzJrcElIdGNiaUFnSUNCbWIzSWdLR3hsZENCcUlEMGdNRHNnYWlBaFBTQmthVzBnTFNBeElDMGdhVHNnS3l0cUtTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCemFXMDZJRzUxYldKbGNpQTlJSE5wYlVGeWNsdHBYU0EvSUhOcGJVRnljbHRwWFM1blpYUW9haWtnT2lBd08xeHVYRzRnSUNBZ0lDQnBaaUFvYzJsdElENDlJRzl3ZEZOcGJXbHNZWEpwZEhsTWFXMXBkQ2tnZTF4dUlDQWdJQ0FnSUNCdU1TNXdkWE5vS0drcE8xeHVJQ0FnSUNBZ0lDQnVNaTV3ZFhOb0tHa2dLeUJxSUNzZ01TazdYRzRnSUNBZ0lDQWdJR05zYVdabWMwMXZiRWxrY3k1aFpHUW9hU2s3WEc0Z0lDQWdJQ0FnSUdOc2FXWm1jMDF2YkVsa2N5NWhaR1FvYVNBcklHb2dLeUF4S1R0Y2JpQWdJQ0FnSUNBZ2MybHRWbUZzY3k1d2RYTm9LSE5wYlNrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdScFptWWdQU0JOWVhSb0xtRmljeWhoWTNScGRtbDBhV1Z6TG1kbGRDaHBLU0F0SUdGamRHbDJhWFJwWlhNdVoyVjBLR2tnS3lCcUlDc2dNU2twTzF4dUlDQWdJQ0FnSUNCcFppQW9jMmx0SUNFOUlERXBYRzRnSUNBZ0lDQWdJQ0FnYzJGc2FWWmhiSE11Y0hWemFDaGthV1ptSUM4Z0tERWdMU0J6YVcwcEtUdGNiaUFnSUNBZ0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNBZ0lITmhiR2xXWVd4ekxuQjFjMmdvU1c1bWFXNXBkSGtwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUdOdmJuTjBJSE5oYkdsV1lXeHpWMmwwYUc5MWRFbHVabWx1YVhSNUlEMGdjMkZzYVZaaGJITXVabWxzZEdWeUtHbDBJRDArSUdsMElDRTlQU0JKYm1acGJtbDBlU2s3WEc0Z0lHTnZibk4wSUhOaGJHbE5hVzRnUFNCTllYUm9MbTFwYmlndUxpNXpZV3hwVm1Gc2MxZHBkR2h2ZFhSSmJtWnBibWwwZVNrN1hHNGdJR052Ym5OMElITmhiR2xOWVhnZ1BTQk5ZWFJvTG0xaGVDZ3VMaTV6WVd4cFZtRnNjMWRwZEdodmRYUkpibVpwYm1sMGVTazdYRzRnSUdOdmJuTjBJSE5oYkdsUGNHRmphWFI1UTI5bFppQTlJREF1T0M4b2MyRnNhVTFoZUNBdElITmhiR2xOYVc0cE8xeHVYRzVjYmlBZ1kyOXVjM1FnYm1WcFoyaGliM1Z5YzBOdmRXNTBJRDBnYm1WM0lFRnljbUY1S0dScGJTa3VabWxzYkNnd0tUdGNiaUFnWTI5dWMzUWdjMmx0YVd4aGNtbDBlVU52ZFc1MElEMGdibVYzSUVGeWNtRjVLR1JwYlNrdVptbHNiQ2d3S1R0Y2JpQWdZMjl1YzNRZ2MyRnNhVU52ZFc1MElEMGdibVYzSUVGeWNtRjVLR1JwYlNrdVptbHNiQ2d3S1R0Y2JseHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0FoUFNCdU1TNXNaVzVuZEdnN0lDc3JhU2tnZTF4dUlDQWdJRzVsYVdkb1ltOTFjbk5EYjNWdWRGdHVNVnRwWFYwZ0t6MGdNVHRjYmlBZ0lDQnVaV2xuYUdKdmRYSnpRMjkxYm5SYmJqSmJhVjFkSUNzOUlERTdYRzRnSUNBZ2MybHRhV3hoY21sMGVVTnZkVzUwVzI0eFcybGRYU0FyUFNCemFXMVdZV3h6VzJsZE8xeHVJQ0FnSUhOcGJXbHNZWEpwZEhsRGIzVnVkRnR1TWx0cFhWMGdLejBnYzJsdFZtRnNjMXRwWFR0Y2JpQWdJQ0JwWmlBb2MyRnNhVlpoYkhOYmFWMGdJVDBnU1c1bWFXNXBkSGtwSUh0Y2JpQWdJQ0FnSUdsbUlDaGhZM1JwZG1sMGFXVnpMbWRsZENodU1WdHBYU2tnUGlCaFkzUnBkbWwwYVdWekxtZGxkQ2h1TWx0cFhTa3BYRzRnSUNBZ0lDQWdJSE5oYkdsRGIzVnVkRnR1TVZ0cFhWMGdLejBnYzJGc2FWWmhiSE5iYVYwN1hHNGdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJSE5oYkdsRGIzVnVkRnR1TWx0cFhWMGdLejBnYzJGc2FWWmhiSE5iYVYwN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ1kyOXVjM1FnYzJGc2FUb2dSRWN1UTI5c2RXMXVJRDBnUkVjdVEyOXNkVzF1TG1aeWIyMU1hWE4wS0Nka2IzVmliR1VuTENCZ2MyRnNhVjhrZTJGNFpYTk9ZVzFsYzFzd1hTNXpkV0p6ZEhKcGJtY29ZWGhsYzA1aGJXVnpXekJkTG14aGMzUkpibVJsZUU5bUtDZGZKeWtwZldBc0lITmhiR2xEYjNWdWRDazdYRzVjYmlBZ1pHWXVZMjlzZFcxdWN5NWhaR1FvYzJGc2FTazdYRzRnSUdOdmJuTjBJR05zYVdabWMwTnZiRTVoYldVZ1BTQmhaR1JEYkdsbVpuTkNiMjlzWldGdVEyOXNLR1JtTENCamJHbG1abk5OYjJ4SlpITXBPMXh1WEc0Z0lHTnZibk4wSUhacFpYY2dQU0JuY205ckxuTm9aV3hzTG1kbGRGUmhZbXhsVm1sbGR5aGtaaTV1WVcxbEtUdGNiaUFnZG1sbGR5NW5jbWxrTG1OdmJIVnRibk11WW5sT1lXMWxLR05zYVdabWMwTnZiRTVoYldVcElTNTJhWE5wWW14bElEMGdabUZzYzJVN1hHNGdJR052Ym5OMElITndJRDBnZG1sbGR5NWhaR1JXYVdWM1pYSW9SRWN1Vm1sbGQyVnlMbk5qWVhSMFpYSlFiRzkwS0dSbUxDQjdYRzRnSUNBZ2VFTnZiSFZ0Yms1aGJXVTZJR0Y0WlhOT1lXMWxjMXN3WFN4Y2JpQWdJQ0I1UTI5c2RXMXVUbUZ0WlRvZ1lYaGxjMDVoYldWeld6RmRMRnh1SUNBZ0lITnBlbVU2SUhOaGJHa3VibUZ0WlN4Y2JpQWdJQ0JqYjJ4dmNqb2dZV04wYVhacGRHbGxjeTV1WVcxbExGeHVJQ0FnSUhOb2IzZFlVMlZzWldOMGIzSTZJR1poYkhObExGeHVJQ0FnSUhOb2IzZFpVMlZzWldOMGIzSTZJR1poYkhObExGeHVJQ0FnSUhOb2IzZFRhWHBsVTJWc1pXTjBiM0k2SUdaaGJITmxMRnh1SUNBZ0lITm9iM2REYjJ4dmNsTmxiR1ZqZEc5eU9pQm1ZV3h6WlN4Y2JpQWdJQ0J0WVhKclpYSk5hVzVUYVhwbE9pQTFMRnh1SUNBZ0lHMWhjbXRsY2sxaGVGTnBlbVU2SURJMUxGeHVJQ0FnSUhScGRHeGxPaUJ6WTJGMGRHVnlWR2wwYkdWY2JpQWdmU2twSUdGeklFUkhMbE5qWVhSMFpYSlFiRzkwVm1sbGQyVnlPMXh1WEc0Z0lHTnZibk4wSUdOaGJuWmhjeUE5SUNoemNDNW5aWFJKYm1adktDa2dZWE1nWVc1NUtWc25ZMkZ1ZG1GekoxMDdYRzRnSUdOdmJuTjBJR3hwYm1WelVtVnpJRDBnWTNKbFlYUmxUR2x1WlhNb2JqRXNJRzR5TENCelpYRkRiMndzSUdGamRHbDJhWFJwWlhNc0lITmhiR2xXWVd4ekxDQnphVzFXWVd4ekxDQnpaVzFVZVhCbExDQjBZV2R6S1R0Y2JseHVJQ0JqYjI1emRDQmpZWE5vWldSTWFXNWxjMFJoZEdFNklHRnVlU0E5SUh0OU8xeHVJQ0JzWlhRZ1lXTmpPaUJFUnk1QlkyTnZjbVJwYjI0N1hHNWNiaUFnYkdsdVpYTlNaWE11YkdsdVpYTkVaaTV2YmtOMWNuSmxiblJEWld4c1EyaGhibWRsWkM1emRXSnpZM0pwWW1Vb0tDa2dQVDRnZTF4dUlDQWdJR052Ym5OMElHTjFjbkpsYm5STmIyeEpaSGdnUFNCc2FXNWxjMUpsY3k1c2FXNWxjMFJtTG1OMWNuSmxiblJEYjJ3Z0ppWWdiR2x1WlhOU1pYTXViR2x1WlhORVppNWpkWEp5Wlc1MFEyOXNMbTVoYldVZ1BUMDlJQ2N5WDNObGNTY2dQeUF4SURvZ01EdGNiaUFnSUNCamIyNXpkQ0JzYVc1bElEMGdiR2x1WlhOU1pYTXViR2x1WlhORVppNWpkWEp5Wlc1MFVtOTNTV1I0SUNFOVBTQXRNU0EvSUd4cGJtVnpVbVZ6TG14cGJtVnpXMnhwYm1WelVtVnpMbXhwYm1WelJHWXVZM1Z5Y21WdWRGSnZkMGxrZUYwZ09pQnVkV3hzTzF4dUlDQWdJSE53TG1SaGRHRkdjbUZ0WlM1amRYSnlaVzUwVW05M1NXUjRJRDBnYkdsdVpTQS9JR3hwYm1VdWJXOXNjMXRqZFhKeVpXNTBUVzlzU1dSNFhTQTZJQzB4TzF4dUlDQWdJSE53TG1SaGRHRkdjbUZ0WlM1elpXeGxZM1JwYjI0dWMyVjBLREFzSUNGc2FXNWxjMUpsY3k1c2FXNWxjMXN3WFM1elpXeGxZM1JsWkNrN1hHNGdJQ0FnYzNBdVpHRjBZVVp5WVcxbExuTmxiR1ZqZEdsdmJpNXpaWFFvTUN3Z2JHbHVaWE5TWlhNdWJHbHVaWE5iTUYwdWMyVnNaV04wWldRcE8xeHVJQ0FnSUd4cGJtVnpSR1pIY21sa0xtbHVkbUZzYVdSaGRHVW9LVHRjYmlBZ0lDQnBaaUFvYkdsdVpTbGNiaUFnSUNBZ0lITmxkRlJwYldWdmRYUW9LQ2tnUFQ0Z2UzVndaR0YwWlZCeWIzQmxjblI1VUdGdVpXd29aR1lzSUdGall5d2dZMkZ6YUdWa1RHbHVaWE5FWVhSaExDQnNhVzVsTENCelpYRkRiMndzSUdGamRHbDJhWFJwWlhNc0lHeHBibVZ6VW1WekxteHBibVZ6UkdZdVoyVjBLQ2R6WVd4cEp5d2diR2x1WlM1cFpDa3NJSEJ5YjNCbGNuUjVVR0Z1Wld4R2RXNWpLWDBzSURFd01EQXBPeUFnSUNBZ0lGeHVJQ0I5S1R0Y2JseHVJQ0JzYVc1bGMxSmxjeTVzYVc1bGMwUm1MbTl1VTJWc1pXTjBhVzl1UTJoaGJtZGxaQzV6ZFdKelkzSnBZbVVvS0Y4NklHRnVlU2tnUFQ0Z2UxeHVJQ0FnSUdsbUlDaHNhVzVsYzFKbGN5NXNhVzVsYzBSbUxtMXZkWE5sVDNabGNsSnZkMGxrZUNBaFBUMGdMVEVwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR3hwYm1VZ1BTQnNhVzVsYzFKbGN5NXNhVzVsYzF0c2FXNWxjMUpsY3k1c2FXNWxjMFJtTG0xdmRYTmxUM1psY2xKdmQwbGtlRjA3WEc0Z0lDQWdJQ0JzYVc1bExuTmxiR1ZqZEdWa0lEMGdJV3hwYm1VdWMyVnNaV04wWldRN1hHNGdJQ0FnSUNCcFppQW9JV3hwYm1VdWMyVnNaV04wWldRcFhHNGdJQ0FnSUNBZ0lHUm1Mbk5sYkdWamRHbHZiaTV6WlhSQmJHd29abUZzYzJVcE8xeHVJQ0FnSUgxY2JpQWdJQ0JzYVc1bGMxSmxjeTVzYVc1bGN5NW1iM0pGWVdOb0tDaHNLU0E5UGlCN1hHNGdJQ0FnSUNCcFppQW9iQzV6Wld4bFkzUmxaQ2xjYmlBZ0lDQWdJQ0FnYkM1dGIyeHpMbVp2Y2tWaFkyZ29LRzBwSUQwK0lHUm1Mbk5sYkdWamRHbHZiaTV6WlhRb2JTd2dkSEoxWlNrcE8xeHVJQ0FnSUgwcE8xeHVJQ0FnSUd4cGJtVnpSR1pIY21sa0xtbHVkbUZzYVdSaGRHVW9LVHRjYmlBZ2ZTazdYRzVjYmlBZ1kyOXVjM1FnYkdsdVpYTkVaa2R5YVdRZ1BTQnNhVzVsYzFKbGN5NXNhVzVsYzBSbUxuQnNiM1F1WjNKcFpDZ3BMbk52Y25Rb1d5ZHpZV3hwSjEwc0lGdG1ZV3h6WlYwcE8xeHVYRzRnSUd4cGJtVnpSR1pIY21sa0xtOXVRMlZzYkVOc2FXTnJMbk4xWW5OamNtbGlaU2dvS1NBOVBpQjdYRzRnSUNBZ2VtOXZiU0E5SUhSeWRXVTdYRzRnSUgwcE8xeHVYRzRnSUdOdmJuTjBJR3hwYzNSRGJHbG1abk5NYVc1cklEMGdkV2t1WW5WMGRHOXVLR0FrZTJ4cGJtVnpVbVZ6TG14cGJtVnpSR1l1Y205M1EyOTFiblI5SUdOc2FXWm1jMkFzSUNncElEMCtJSHRjYmlBZ0lDQm5jbTlyTG5Ob1pXeHNMbVJ2WTJ0TllXNWhaMlZ5TG1Sdlkyc29iR2x1WlhORVprZHlhV1F1Y205dmRDd2dKMlJ2ZDI0bkxDQnVkV3hzTENBblFXTjBhWFpwZEhrZ1kyeHBabVp6Snl3Z01DNHlLVHRjYmlBZ2ZTazdYRzRnSUdWa2FYUlRjRXhwYm10VGRIbHNaU2hzYVhOMFEyeHBabVp6VEdsdWF5d2djM0FzSURFd0tUdGNibHh1SUNCamIyNXpkQ0JtYVd4MFpYSkRiR2xtWm5OQ2RYUjBiMjRnUFNCMWFTNXpkMmwwWTJoSmJuQjFkQ2hnVTJodmR5QnZibXg1SUdOc2FXWm1jMkFzSUdaaGJITmxLVHRjYmlBZ1ptbHNkR1Z5UTJ4cFptWnpRblYwZEc5dUxtOXVRMmhoYm1kbFpDZ29LVDArSUh0Y2JpQWdJQ0JtYVd4MFpYSkRiR2xtWm5OQ2RYUjBiMjR1ZG1Gc2RXVWdQeUJrWmk1eWIzZHpMbVpwYkhSbGNpZ29jbTkzS1NBOVBpQnliM2RiWTJ4cFptWnpRMjlzVG1GdFpWMGdQVDA5SUhSeWRXVXBJRG9nWkdZdVptbHNkR1Z5TG5ObGRFRnNiQ2gwY25WbEtUdGNiaUFnZlNrN1hHNGdJR1ZrYVhSVGNFeHBibXRUZEhsc1pTaG1hV3gwWlhKRGJHbG1abk5DZFhSMGIyNHVjbTl2ZEN3Z2MzQXNJRE13S1R0Y2JseHVJQ0JzWlhRZ2RHbHRaWEk2SUU1dlpHVktVeTVVYVcxbGIzVjBPMXh1SUNCallXNTJZWE11WVdSa1JYWmxiblJNYVhOMFpXNWxjaWduYlc5MWMyVnRiM1psSnl3Z1puVnVZM1JwYjI0Z0tHVjJaVzUwT2lCTmIzVnpaVVYyWlc1MEtTQjdYRzRnSUNBZ1kyeGxZWEpVYVcxbGIzVjBLSFJwYldWeUtUdGNiaUFnSUNCMGFXMWxjaUE5SUdkc2IySmhiQzV6WlhSVWFXMWxiM1YwS0daMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lHTnZibk4wSUd4cGJtVWdQU0JqYUdWamEwTjFjbk52Y2s5dVRHbHVaU2hsZG1WdWRDd2dZMkZ1ZG1GekxDQnNhVzVsYzFKbGN5NXNhVzVsY3lrN1hHNGdJQ0FnSUNCcFppQW9iR2x1WlNBbUppQmtaaTV0YjNWelpVOTJaWEpTYjNkSlpIZ2dQVDA5SUMweEtTQjdYRzRnSUNBZ0lDQWdJQ0FnZFdrdWRHOXZiSFJwY0M1emFHOTNLSFJ2YjJ4MGFYQkdkVzVqS0h0allYTm9aV1JFWVhSaE9pQmpZWE5vWldSTWFXNWxjMFJoZEdFc0lHeHBibVU2SUd4cGJtVXNJR1JtT2lCa1ppd2djMlZ4UTI5c09pQnpaWEZEYjJ3c0lHRmpkR2wyYVhSNVEyOXNPaUJoWTNScGRtbDBhV1Z6ZlNrc0lHVjJaVzUwTG1Oc2FXVnVkRmdzSUdWMlpXNTBMbU5zYVdWdWRGa3BPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMHNJRFV3TUNrN1hHNGdJSDBwTzF4dVhHNGdJR05oYm5aaGN5NWhaR1JGZG1WdWRFeHBjM1JsYm1WeUtDZHRiM1Z6WldSdmQyNG5MQ0JtZFc1amRHbHZiaWhsZG1WdWREb2dUVzkxYzJWRmRtVnVkQ2tnZTF4dUlDQWdJR052Ym5OMElHeHBibVVnUFNCamFHVmphME4xY25OdmNrOXVUR2x1WlNobGRtVnVkQ3dnWTJGdWRtRnpMQ0JzYVc1bGMxSmxjeTVzYVc1bGN5azdYRzRnSUNBZ2FXWWdLR3hwYm1VZ0ppWWdaR1l1Ylc5MWMyVlBkbVZ5VW05M1NXUjRJRDA5UFNBdE1Ta2dlMXh1SUNBZ0lDQWdhV1lnS0dWMlpXNTBMbU4wY214TFpYa3BJSHRjYmlBZ0lDQWdJQ0FnYkdsdVpTNXpaV3hsWTNSbFpDQTlJQ0ZzYVc1bExuTmxiR1ZqZEdWa08xeHVJQ0FnSUNBZ0lDQnNhVzVsYzFKbGN5NXNhVzVsYzBSbUxuTmxiR1ZqZEdsdmJpNXpaWFFvYkdsdVpTNXBaQ3dnYkdsdVpTNXpaV3hsWTNSbFpDazdYRzVjYmlBZ0lDQWdJQ0FnYVdZZ0tDRnNhVzVsTG5ObGJHVmpkR1ZrS1Z4dUlDQWdJQ0FnSUNBZ0lHUm1Mbk5sYkdWamRHbHZiaTV6WlhSQmJHd29abUZzYzJVcE8xeHVYRzRnSUNBZ0lDQWdJR3hwYm1WelVtVnpMbXhwYm1WekxtWnZja1ZoWTJnb0tHd3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvYkM1elpXeGxZM1JsWkNsY2JpQWdJQ0FnSUNBZ0lDQWdJR3d1Ylc5c2N5NW1iM0pGWVdOb0tDaHRLU0E5UGlCa1ppNXpaV3hsWTNScGIyNHVjMlYwS0cwc0lIUnlkV1VwS1R0Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYkdsdVpYTlNaWE11YkdsdVpYTkVaaTVqZFhKeVpXNTBVbTkzU1dSNElDRTlQU0JzYVc1bExtbGtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2JHbHVaWE5TWlhNdWJHbHVaWE5FWmk1amRYSnlaVzUwVW05M1NXUjRJRDBnYkdsdVpTNXBaRHRjYmlBZ0lDQWdJQ0FnSUNCa1ppNWpkWEp5Wlc1MFVtOTNTV1I0SUQwZ2JHbHVaUzV0YjJ4eld6QmRPMXh1SUNBZ0lDQWdJQ0FnSUdSbUxuTmxiR1ZqZEdsdmJpNXpaWFFvTUN3Z0lXeHBibVZ6VW1WekxteHBibVZ6V3pCZExuTmxiR1ZqZEdWa0tUdGNiaUFnSUNBZ0lDQWdJQ0JrWmk1elpXeGxZM1JwYjI0dWMyVjBLREFzSUd4cGJtVnpVbVZ6TG14cGJtVnpXekJkTG5ObGJHVmpkR1ZrS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ1kyOXVjM1FnYjNKa1pYSWdQU0JzYVc1bGMxSmxjeTVzYVc1bGMwUm1MbWRsZEZOdmNuUmxaRTl5WkdWeUtHeHBibVZ6UkdaSGNtbGtMbk52Y25SQ2VVTnZiSFZ0Ym5Nc0lHeHBibVZ6UkdaSGNtbGtMbk52Y25SVWVYQmxjeWs3WEc0Z0lDQWdJQ0JzYVc1bGMwUm1SM0pwWkM1elkzSnZiR3hVYjBObGJHd29KM05sY1Y4eEp5d2diM0prWlhJdWFXNWtaWGhQWmloc2FXNWxMbWxrS1NrN1hHNGdJQ0FnZlZ4dUlDQjlLVHRjYmx4dUlDQnpjQzV2YmtWMlpXNTBLQ2RrTkMxaVpXWnZjbVV0WkhKaGR5MXpZMlZ1WlNjcFhHNGdJQ0FnTG5OMVluTmpjbWxpWlNnb1h6b2dZVzU1S1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCc2FXNWxjeUE5SUhKbGJtUmxja3hwYm1WektITndMRnh1SUNBZ0lDQWdJQ0JoZUdWelRtRnRaWE5iTUYwc0lHRjRaWE5PWVcxbGMxc3hYU3dnYkdsdVpYTlNaWE1zSUhOaGJHbFdZV3h6TENCellXeHBUM0JoWTJsMGVVTnZaV1lzSUhOaGJHbE5hVzRwTzF4dUlDQWdJQ0FnYVdZZ0tIcHZiMjBwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWTNWeWNtVnVkRXhwYm1VZ1BTQnNhVzVsYzF0c2FXNWxjMUpsY3k1c2FXNWxjMFJtTG1OMWNuSmxiblJTYjNkSlpIaGRPMXh1SUNBZ0lDQWdJQ0J6WlhSVWFXMWxiM1YwS0NncFBUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSHQ2YjI5dFRHVm1kQ3dnZW05dmJWSnBaMmgwTENCNmIyOXRWRzl3TENCNmIyOXRRbTkwZEc5dGZTQTlJR2RsZEZwdmIyMURiMjl5WkdsdVlYUmxjeWhjYmlBZ0lDQWdJQ0FnSUNBZ0lITndMblpwWlhkd2IzSjBMbmRwWkhSb0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNBdWRtbGxkM0J2Y25RdWFHVnBaMmgwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjM0F1WkdGMFlVWnlZVzFsTG1kbGRDaGhlR1Z6VG1GdFpYTmJNRjBzSUdOMWNuSmxiblJNYVc1bExtMXZiSE5iTUYwcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNBdVpHRjBZVVp5WVcxbExtZGxkQ2hoZUdWelRtRnRaWE5iTVYwc0lHTjFjbkpsYm5STWFXNWxMbTF2YkhOYk1GMHBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MzQXVaR0YwWVVaeVlXMWxMbWRsZENoaGVHVnpUbUZ0WlhOYk1GMHNJR04xY25KbGJuUk1hVzVsTG0xdmJITmJNVjBwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjM0F1WkdGMFlVWnlZVzFsTG1kbGRDaGhlR1Z6VG1GdFpYTmJNVjBzSUdOMWNuSmxiblJNYVc1bExtMXZiSE5iTVYwcFhHNGdJQ0FnSUNBZ0lDQWdLU0FnSUNBZ0lDQWdYRzRnSUNBZ0lDQWdJQ0FnYzNBdWVtOXZiU2g2YjI5dFRHVm1kQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIcHZiMjFVYjNBc1hHNGdJQ0FnSUNBZ0lDQWdJQ0I2YjI5dFVtbG5hSFFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjZiMjl0UW05MGRHOXRLVHRjYmlBZ0lDQWdJQ0FnZlN3Z016QXdLVHRjYmlBZ0lDQWdJQ0FnZW05dmJTQTlJR1poYkhObE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ1ptbHNkR1Z5UTJ4cFptWnpRblYwZEc5dUxuWmhiSFZsSUQ4Z1pHWXVjbTkzY3k1bWFXeDBaWElvS0hKdmR5a2dQVDRnY205M1cyTnNhV1ptYzBOdmJFNWhiV1ZkSUQwOVBTQjBjblZsS1NBNklHUm1MbVpwYkhSbGNpNXpaWFJCYkd3b2RISjFaU2s3WEc0Z0lDQWdmU2s3WEc1Y2JpQWdjM0F1WVdSa1VISnZjR1Z5ZEhrb0ozTnBiV2xzWVhKcGRIbE1hVzFwZENjc0lDZGtiM1ZpYkdVbkxDQnZjSFJUYVcxcGJHRnlhWFI1VEdsdGFYUXBPMXh1SUNCaFkyTWdQU0JqY21WaGRHVlFiM0JsY25SNVVHRnVaV3dvS1R0Y2JpQWdjbVYwZFhKdUlITndPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQmxaR2wwVTNCTWFXNXJVM1I1YkdVb1pXdzZJRWhVVFV4RmJHVnRaVzUwTENCemNEb2dSRWN1VTJOaGRIUmxjbEJzYjNSV2FXVjNaWElzSUhSdmNFMWhjbWRwYmpvZ2JuVnRZbVZ5S1h0Y2JpQWdaV3d1YzNSNWJHVXVjRzl6YVhScGIyNGdQU0FuWVdKemIyeDFkR1VuTzF4dUlDQmxiQzV6ZEhsc1pTNTBiM0FnUFNCZ0pIdDBiM0JOWVhKbmFXNTljSGhnTzF4dUlDQmxiQzV6ZEhsc1pTNXlhV2RvZENBOUlDY3hNSEI0Snp0Y2JpQWdjM0F1Y205dmRDNWhjSEJsYm1Rb1pXd3BPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQmpjbVZoZEdWUWIzQmxjblI1VUdGdVpXd29LVG9nUkVjdVFXTmpiM0prYVc5dUlIdGNiaUFnWTI5dWMzUWdZV05qSUQwZ2RXa3VZV05qYjNKa2FXOXVLQ2s3WEc0Z0lHTnZibk4wSUdGalkwbGpiMjRnUFNCMWFTNWxiR1Z0Wlc1MEtDZHBKeWs3WEc0Z0lHRmpZMGxqYjI0dVkyeGhjM05PWVcxbElEMGdKMmR5YjJzdGFXTnZiaUJ6ZG1jdGFXTnZiaUJ6ZG1jdGRtbGxkeTFzWVhsdmRYUW5PMXh1SUNCaFkyTXVZV1JrVkdsMGJHVW9kV2t1YzNCaGJpaGJZV05qU1dOdmJpd2dkV2t1YkdGaVpXd29ZRUZqZEdsMmFYUjVJR05zYVdabWMyQXBYU2twTzF4dUlDQmhZMk11WVdSa1VHRnVaU2duUTJ4cFptWWdSR1YwWVdsc2N5Y3NJQ2dwSUQwK0lIVnBMbVJwZGxSbGVIUW9KME5zYVdabUlHaGhjeUJ1YjNRZ1ltVmxiaUJ6Wld4bFkzUmxaQ2NwTENCMGNuVmxLVHRjYmlBZ1ozSnZheTV6YUdWc2JDNXZJRDBnWVdOakxuSnZiM1E3WEc0Z0lISmxkSFZ5YmlCaFkyTTdYRzU5WEc1Y2JtWjFibU4wYVc5dUlIVndaR0YwWlZCeWIzQmxjblI1VUdGdVpXd29YRzRnSUdSbU9pQkVSeTVFWVhSaFJuSmhiV1VzWEc0Z0lHRmpZem9nUkVjdVFXTmpiM0prYVc5dUxGeHVJQ0JqWVhOb1pXUkVZWFJoT2lCaGJua3NYRzRnSUd4cGJtVTZJRWxNYVc1bExDQmNiaUFnYzJWeFEyOXNPaUJFUnk1RGIyeDFiVzRzSUZ4dUlDQmhZM1JwZG1sMGFXVnpPaUJFUnk1RGIyeDFiVzRzWEc0Z0lITmhiR2s2SUc1MWJXSmxjaXhjYmlBZ2NISnZjRkJoYm1Wc1JuVnVZem9nS0hCaGNtRnRjem9nU1ZSdmIyeDBhWEJCYm1SUVlXNWxiRkJoY21GdGN5a2dQVDRnU0ZSTlRFVnNaVzFsYm5RcGUxeHVJQ0JqYjI1emRDQndZVzVsYkNBOUlHRmpZeTVuWlhSUVlXNWxLQ2REYkdsbVppQkVaWFJoYVd4ekp5azdYRzRnSUhWcExtVnRjSFI1S0hCaGJtVnNMbkp2YjNRcE8xeHVJQ0JqYjI1emRDQndZVzVsYkVWc1pXMWxiblFnUFNCd2NtOXdVR0Z1Wld4R2RXNWpLSHRqWVhOb1pXUkVZWFJoT2lCallYTm9aV1JFWVhSaExDQnNhVzVsT2lCc2FXNWxMQ0JrWmpvZ1pHWXNJSE5sY1VOdmJEb2djMlZ4UTI5c0xDQmhZM1JwZG1sMGVVTnZiRG9nWVdOMGFYWnBkR2xsY3l3Z2MyRnNhVG9nYzJGc2FYMHBPMXh1SUNCd1lXNWxiQzV5YjI5MExtRndjR1Z1WkNod1lXNWxiRVZzWlcxbGJuUXBPMXh1SUNCelpYUlVhVzFsYjNWMEtDZ3BJRDArSUh0Y2JpQWdJQ0JuY205ckxuTm9aV3hzTG04Z1BTQmhZMk11Y205dmREdGNiaUFnZlN3Z05UQXdLVHRjYm4xY2JseHVablZ1WTNScGIyNGdaMlYwV205dmJVTnZiM0prYVc1aGRHVnpLRmN3T2lCdWRXMWlaWElzSUVnd09pQnVkVzFpWlhJc0lIZ3hPaUJ1ZFcxaVpYSXNJSGt4T2lCdWRXMWlaWElzSUhneU9pQnVkVzFpWlhJc0lIa3lPaUJ1ZFcxaVpYSXBJSHRjYmlBZ1kyOXVjM1FnVnpFZ1BTQk5ZWFJvTG1GaWN5aDRNU0F0SUhneUtUdGNiaUFnWTI5dWMzUWdTREVnUFNCTllYUm9MbUZpY3loNU1TQXRJSGt5S1R0Y2JpQWdZMjl1YzNRZ2MyTmhiR1ZYSUQwZ1Z6QWdMeUJYTVR0Y2JpQWdZMjl1YzNRZ2MyTmhiR1ZJSUQwZ1NEQWdMeUJJTVR0Y2JpQWdZMjl1YzNRZ2MyTmhiR1VnUFNCTllYUm9MbTFwYmloelkyRnNaVmNzSUhOallXeGxTQ2s3WEc0Z0lHTnZibk4wSUZjeUlEMGdLRmN3SUM4Z2MyTmhiR1VwSUNvZ05UdGNiaUFnWTI5dWMzUWdTRElnUFNBb1NEQWdMeUJ6WTJGc1pTa2dLaUExTzF4dUlDQmpiMjV6ZENCc1pXWjBJRDBnZURFZ1BDQjRNaUEvSUhneElEb2dlREk3WEc0Z0lHTnZibk4wSUhSdmNDQTlJSGt4SUQ0Z2VUSWdQeUI1TVNBNklIa3lPMXh1SUNCamIyNXpkQ0I2YjI5dFRHVm1kQ0E5SUNoc1pXWjBJQ3NnVnpFZ0x5QXlLU0F0SUZjeUlDOGdNanRjYmlBZ1kyOXVjM1FnZW05dmJWSnBaMmgwSUQwZ2VtOXZiVXhsWm5RZ0t5QlhNanRjYmlBZ1kyOXVjM1FnZW05dmJWUnZjQ0E5SUNoMGIzQWdMU0JJTVNBdklESXBJQ3NnU0RJZ0x5QXlPMXh1SUNCamIyNXpkQ0I2YjI5dFFtOTBkRzl0SUQwZ2VtOXZiVlJ2Y0NBdElFZ3lPMXh1SUNCeVpYUjFjbTRnZTNwdmIyMU1aV1owT2lCNmIyOXRUR1ZtZEN3Z2VtOXZiVkpwWjJoME9pQjZiMjl0VW1sbmFIUXNJSHB2YjIxVWIzQTZJSHB2YjIxVWIzQXNJSHB2YjIxQ2IzUjBiMjA2SUhwdmIyMUNiM1IwYjIxOU8xeHVmVnh1WEc1bWRXNWpkR2x2YmlCamFHVmphME4xY25OdmNrOXVUR2x1WlNobGRtVnVkRG9nWVc1NUxDQmpZVzUyWVhNNklHRnVlU3dnYkdsdVpYTTZJRWxNYVc1bFcxMHBPaUJKVEdsdVpTQjhJRzUxYkd3Z2UxeHVJQ0JqYjI1emRDQnlaV04wSUQwZ1kyRnVkbUZ6TG1kbGRFSnZkVzVrYVc1blEyeHBaVzUwVW1WamRDZ3BPMXh1SUNCamIyNXpkQ0I0SUQwZ1pYWmxiblF1WTJ4cFpXNTBXQ0F0SUhKbFkzUXViR1ZtZER0Y2JpQWdZMjl1YzNRZ2VTQTlJR1YyWlc1MExtTnNhV1Z1ZEZrZ0xTQnlaV04wTG5SdmNEdGNiaUFnYkdWMElHTnNiM05sYzNSTWFXNWxJRDBnYm5Wc2JEdGNiaUFnYkdWMElHMXBia1JwYzNRZ1BTQXdPMXh1SUNCbWIzSWdLR052Ym5OMElHeHBibVVnYjJZZ2JHbHVaWE1wSUh0Y2JpQWdJQ0JqYjI1emRDQmthWE4wSUQxY2JpQWdJQ0FnSUUxaGRHZ3VZV0p6S0UxaGRHZ3VhSGx3YjNRb2JHbHVaUzVoV3pCZElDMGdlQ3dnYkdsdVpTNWhXekZkSUMwZ2VTa2dLMXh1SUNBZ0lDQWdUV0YwYUM1b2VYQnZkQ2hzYVc1bExtSmJNRjBnTFNCNExDQnNhVzVsTG1KYk1WMGdMU0I1S1NBdElFMWhkR2d1YUhsd2IzUW9iR2x1WlM1aFd6QmRJQzBnYkdsdVpTNWlXekJkTENCc2FXNWxMbUZiTVYwZ0xTQnNhVzVsTG1KYk1WMHBLVHRjYmlBZ0lDQnBaaUFvS0NGdGFXNUVhWE4wSUNZbUlHUnBjM1FnUENBeUtTQjhmQ0JrYVhOMElEd2diV2x1UkdsemRDa2dlMXh1SUNBZ0lDQWdiV2x1UkdsemRDQTlJR1JwYzNRN1hHNGdJQ0FnSUNCamJHOXpaWE4wVEdsdVpTQTlJR3hwYm1VN1hHNGdJQ0FnZlZ4dUlDQjlYRzRnSUhKbGRIVnliaUJqYkc5elpYTjBUR2x1WlR0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnY21WdVpHVnlUR2x1WlhNb2MzQTZJRVJITGxOallYUjBaWEpRYkc5MFZtbGxkMlZ5TEZ4dUlDQjRRWGhwY3pvZ2MzUnlhVzVuTENCNVFYaHBjem9nYzNSeWFXNW5MQ0JzYVc1bGMxSmxjem9nU1ZKbGJtUmxjbVZrVEdsdVpYTXNJSE5oYkdsV1lXeHpPaUJ1ZFcxaVpYSmJYU3dnYzJGc2FVOXdZV05wZEhsRGIyVm1PaUJ1ZFcxaVpYSXNJSE5oYkdsTmFXNDZJRzUxYldKbGNpazZJRWxNYVc1bElGdGRJSHRjYmlBZ1kyOXVjM1FnYkdsdVpYTWdQU0JzYVc1bGMxSmxjeTVzYVc1bGN6dGNiaUFnWTI5dWMzUWdZMkZ1ZG1GeklEMGdLSE53TG1kbGRFbHVabThvS1NCaGN5QjdXMmx1WkdWNE9pQnpkSEpwYm1kZElEb2dZVzU1ZlNsYkoyTmhiblpoY3lkZE8xeHVJQ0JqYjI1emRDQmpkSGdnUFNCallXNTJZWE11WjJWMFEyOXVkR1Y0ZENnbk1tUW5LU0JoY3lCRFlXNTJZWE5TWlc1a1pYSnBibWREYjI1MFpYaDBNa1E3WEc0Z0lHTnZibk4wSUhnZ1BTQnpjQzVrWVhSaFJuSmhiV1VoTG1OdmJIVnRibk11WW5sT1lXMWxLSGhCZUdsektUdGNiaUFnWTI5dWMzUWdlU0E5SUhOd0xtUmhkR0ZHY21GdFpTRXVZMjlzZFcxdWN5NWllVTVoYldVb2VVRjRhWE1wTzF4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR3hwYm1WekxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdZMjl1YzNRZ2NHOXBiblJHY205dElEMGdjM0F1ZDI5eWJHUlViMU5qY21WbGJpaDRMbWRsZENoc2FXNWxjMXRwWFM1dGIyeHpXekJkS1N3Z2VTNW5aWFFvYkdsdVpYTmJhVjB1Ylc5c2Mxc3dYU2twTzF4dUlDQWdJR052Ym5OMElIQnZhVzUwVkc4Z1BTQnpjQzUzYjNKc1pGUnZVMk55WldWdUtIZ3VaMlYwS0d4cGJtVnpXMmxkTG0xdmJITmJNVjBwTENCNUxtZGxkQ2hzYVc1bGMxdHBYUzV0YjJ4eld6RmRLU2s3WEc0Z0lDQWdiR2x1WlhOYmFWMHVZU0E5SUZ0d2IybHVkRVp5YjIwdWVDd2djRzlwYm5SR2NtOXRMbmxkTzF4dUlDQWdJR3hwYm1WelcybGRMbUlnUFNCYmNHOXBiblJVYnk1NExDQndiMmx1ZEZSdkxubGRPMXh1SUNBZ0lHTnZibk4wSUd4cGJtVWdQU0J1WlhjZ1VHRjBhREpFS0NrN1hHNGdJQ0FnYkdsdVpTNXRiM1psVkc4b2JHbHVaWE5iYVYwdVlWc3dYU3dnYkdsdVpYTmJhVjB1WVZzeFhTazdYRzRnSUNBZ1kyOXVjM1FnWTI5c2IzSWdQU0JzYVc1bGMxdHBYUzV6Wld4bFkzUmxaQ0EvSUNjeU5UVXNNalUxTERBbklEb2dKekFzTVRJNExEQW5PMXh1SUNBZ0lHTnZibk4wSUc5d1lXTnBkSGtnUFNCellXeHBWbUZzYzF0cFhTQTlQVDBnU1c1bWFXNXBkSGtnUHlBeElEb2dNQzR5SUNzZ0tITmhiR2xXWVd4elcybGRJQzBnYzJGc2FVMXBiaWtxYzJGc2FVOXdZV05wZEhsRGIyVm1PMXh1SUNBZ0lHTjBlQzV6ZEhKdmEyVlRkSGxzWlNBOUlHQnlaMkpoS0NSN1kyOXNiM0o5TENSN2IzQmhZMmwwZVgwcFlEdGNiaUFnSUNCamRIZ3ViR2x1WlZkcFpIUm9JRDBnYkdsdVpYTmJhVjB1YVdRZ1BUMDlJR3hwYm1WelVtVnpMbXhwYm1WelJHWXVZM1Z5Y21WdWRGSnZkMGxrZUNBL0lETWdPaUF4TzF4dUlDQWdJR3hwYm1VdWJHbHVaVlJ2S0d4cGJtVnpXMmxkTG1KYk1GMHNJR3hwYm1WelcybGRMbUpiTVYwcE8xeHVJQ0FnSUdOMGVDNXpkSEp2YTJVb2JHbHVaU2s3WEc0Z0lIMWNiaUFnY21WMGRYSnVJR3hwYm1Wek8xeHVmVnh1WEc1bWRXNWpkR2x2YmlCamNtVmhkR1ZNYVc1bGN5aGNiaUFnYmpFNklHNTFiV0psY2x0ZExDQmNiaUFnYmpJNklHNTFiV0psY2x0ZExDQmNiaUFnYzJWeE9pQkVSeTVEYjJ4MWJXNHNJRnh1SUNCaFkzUnBkbWwwYVdWek9pQkVSeTVEYjJ4MWJXNHNJRnh1SUNCellXeHBWbUZzY3pvZ2JuVnRZbVZ5VzEwc1hHNGdJSE5wYlZaaGJITTZJRzUxYldKbGNsdGRMRnh1SUNCelpXMVVlWEJsT2lCemRISnBibWNzWEc0Z0lIUmhaM002SUh0YmFXNWtaWGc2SUhOMGNtbHVaMTA2SUhOMGNtbHVaMzBwSURvZ1NWSmxibVJsY21Wa1RHbHVaWE1nZTF4dUlDQmpiMjV6ZENCc2FXNWxjem9nU1V4cGJtVmJYU0E5SUc1bGR5QkJjbkpoZVNodU1TNXNaVzVuZEdncExtWnBiR3dvYm5Wc2JDazdYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2JqRXViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0JqYjI1emRDQnVkVzB4SUQwZ2JqRmJhVjA3WEc0Z0lDQWdZMjl1YzNRZ2JuVnRNaUE5SUc0eVcybGRPMXh1SUNBZ0lHeHBibVZ6VzJsZElEMGdLSHRwWkRvZ2FTd2diVzlzY3pvZ1cyNTFiVEVzSUc1MWJUSmRMQ0J6Wld4bFkzUmxaRG9nWm1Gc2MyVXNJR0U2SUZ0ZExDQmlPaUJiWFgwcE8xeHVJQ0I5WEc0Z0lHTnZibk4wSUd4cGJtVnpSR1lnUFNCRVJ5NUVZWFJoUm5KaGJXVXVZM0psWVhSbEtHeHBibVZ6TG14bGJtZDBhQ2s3WEc0Z0lHMXZiRU52YkhWdGJrNWhiV1Z6TG1admNrVmhZMmdvS0dsMExDQnBaSGdwSUQwK0lIdGNiaUFnSUNCc2FXNWxjMFJtTG1OdmJIVnRibk11WVdSa1RtVjNVM1J5YVc1bktHbDBLUzVwYm1sMEtDaHBPaUJ1ZFcxaVpYSXBJRDArSUhObGNTNW5aWFFvYkdsdVpYTmJhVjB1Ylc5c2MxdHBaSGhkS1NrN1hHNGdJQ0FnYzJWMFZHRm5jeWhzYVc1bGMwUm1MbU52YkNocGRDa2hMQ0IwWVdkektUdGNiaUFnSUNCc2FXNWxjMFJtTG1OdmJDaHBkQ2toTG5ObGJWUjVjR1VnUFNCelpXMVVlWEJsTzF4dUlDQjlLVnh1SUNCc2FXNWxjMFJtTG1OdmJIVnRibk11WVdSa1RtVjNSbXh2WVhRb0oyRmpkRjlrYVdabUp5bGNiaUFnSUNBdWFXNXBkQ2dvYVRvZ2JuVnRZbVZ5S1NBOVBpQk5ZWFJvTG1GaWN5aGhZM1JwZG1sMGFXVnpMbWRsZENoc2FXNWxjMXRwWFM1dGIyeHpXekJkS1NBdElHRmpkR2wyYVhScFpYTXVaMlYwS0d4cGJtVnpXMmxkTG0xdmJITmJNVjBwS1NrN1hHNGdJR3hwYm1WelJHWXVZMjlzZFcxdWN5NWhaR1JPWlhkSmJuUW9KMnhwYm1WZmFXNWtaWGduS1M1cGJtbDBLQ2hwT2lCdWRXMWlaWElwSUQwK0lHa3BPMXh1SUNCc2FXNWxjMFJtTG1OdmJIVnRibk11WVdSa1RtVjNSbXh2WVhRb0ozTmhiR2tuS1M1cGJtbDBLQ2hwT2lCdWRXMWlaWElwSUQwK0lITmhiR2xXWVd4elcybGRLVHRjYmlBZ2JHbHVaWE5FWmk1amIyeDFiVzV6TG1Ga1pFNWxkMFpzYjJGMEtDZHphVzBuS1M1cGJtbDBLQ2hwT2lCdWRXMWlaWElwSUQwK0lITnBiVlpoYkhOYmFWMHBPMXh1SUNCeVpYUjFjbTRnZTJ4cGJtVnpMQ0JzYVc1bGMwUm1mVHRjYm4xY2JseHVablZ1WTNScGIyNGdjMlYwVkdGbmN5aGpiMnc2SUVSSExrTnZiSFZ0Yml3Z2RHRm5jem9nZTF0cGJtUmxlRG9nYzNSeWFXNW5YVG9nYzNSeWFXNW5mU2tnZTF4dUlDQlBZbXBsWTNRdWEyVjVjeWgwWVdkektTNW1iM0pGWVdOb0tIUmhaeUE5UGlCN1hHNGdJQ0FnWTI5c0xuUmhaM05iZEdGblhTQTlJSFJoWjNOYmRHRm5YVHRjYmlBZ2ZTbGNibjFjYmx4dVpYaHdiM0owSUdGemVXNWpJR1oxYm1OMGFXOXVJR2RsZEZOcGJXbHNZWEpwZEdsbGMwMWhjbWw0S0Z4dUlDQWdJR1JwYlRvZ2JuVnRZbVZ5TENCY2JpQWdJQ0J6WlhGRGIydzZJRVJITGtOdmJIVnRiaXdnWEc0Z0lDQWdaR1pUWlhFNklFUkhMa1JoZEdGR2NtRnRaU3dnWEc0Z0lDQWdjMmx0UVhKeU9pQkVSeTVEYjJ4MWJXNWJYU3hjYmlBZ0lDQnphVzFHZFc1ak9pQW9ZMjlzT2lCRVJ5NURiMngxYlc0c0lHMXZiRG9nYzNSeWFXNW5LU0E5UGlCUWNtOXRhWE5sUEVSSExrTnZiSFZ0YmlCOElHNTFiR3crWEc0Z0lDQWdLVnh1SUNBNklGQnliMjFwYzJVOFJFY3VRMjlzZFcxdVcxMCtJSHRjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ0lUMGdaR2x0SUMwZ01Uc2dLeXRwS1NCN1hHNGdJQ0FnWTI5dWMzUWdiVzlzSUQwZ2MyVnhRMjlzTG1kbGRDaHBLVHRjYmlBZ0lDQmtabE5sY1M1eWIzZHpMbkpsYlc5MlpVRjBLREFzSURFc0lHWmhiSE5sS1R0Y2JpQWdJQ0J6YVcxQmNuSmJhVjBnUFNBb1lYZGhhWFFnYzJsdFJuVnVZeWhrWmxObGNTNWpiMndvSjNObGNTY3BJU3dnYlc5c0tTa2hPMXh1SUNCOVhHNGdJSEpsZEhWeWJpQnphVzFCY25JN1hHNTlYRzVjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRGTnBiV2xzWVhKcGRHbGxjMFp5YjIxRWFYTjBZVzVqWlhNb1pHbHRPaUJ1ZFcxaVpYSXNJR1JwYzNSaGJtTmxjem9nVFdGMGNtbDRMQ0J6YVcxQmNuSTZJRVJITGtOdmJIVnRibHRkS1Z4dUlDQTZJRVJITGtOdmJIVnRibHRkSUh0Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JrYVcwZ0xTQXhPeUFySzJrcElIdGNiaUFnSUNCamIyNXpkQ0J6YVcxcGJHRnlhWFI1UVhKeUlEMGdibVYzSUVGeWNtRjVLR1JwYlNBdElHa2dMU0F4S1M1bWFXeHNLREFwTzF4dUlDQWdJR1p2Y2lBb2JHVjBJR29nUFNCcElDc2dNVHNnYWlBOElHUnBiVHNnS3l0cUtTQjdYRzRnSUNBZ0lDQnphVzFwYkdGeWFYUjVRWEp5VzJvZ0xTQnBJQzBnTVYwZ1BTQm5aWFJUYVcxcGJHRnlhWFI1Um5KdmJVUnBjM1JoYm1ObEtHUnBjM1JoYm1ObGMxdHBYVnRxWFNrN1hHNGdJQ0FnZlZ4dUlDQWdJSE5wYlVGeWNsdHBYU0E5SUVSSExrTnZiSFZ0Ymk1bWNtOXRSbXh2WVhRek1rRnljbUY1S0NkemFXMXBiR0Z5YVhSNUp5d2dSbXh2WVhRek1rRnljbUY1TG1aeWIyMG9jMmx0YVd4aGNtbDBlVUZ5Y2lrcE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCemFXMUJjbkk3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmhaR1JEYkdsbVpuTkNiMjlzWldGdVEyOXNLR1JtT2lCRVJ5NUVZWFJoUm5KaGJXVXNJR2xrY3pvZ1UyVjBQRzUxYldKbGNqNHBPaUJ6ZEhKcGJtY2dlMXh1SUNCamIyNXpkQ0JqYjJ4dVlXMWxJRDBnSjJOdmJuUmhhVzV6UTJ4cFptWW5PMXh1SUNCamIyNXpkQ0JqYjJ4T1lXMWxTVzVrSUQwZ1pHWXVZMjlzZFcxdWN5NXVZVzFsY3lncExtWnBiSFJsY2lnb2FYUTZJSE4wY21sdVp5a2dQVDRnYVhRdWFXNWpiSFZrWlhNb1kyOXNibUZ0WlNrcExteGxibWQwYUNBcklERTdYRzRnSUdOdmJuTjBJRzVsZDBOdmJFNWhiV1VnUFNCZ0pIdGpiMnh1WVcxbGZWOGtlMk52YkU1aGJXVkpibVI5WUR0Y2JpQWdaR1l1WTI5c2RXMXVjeTVoWkdST1pYZENiMjlzS0c1bGQwTnZiRTVoYldVcExtbHVhWFFvS0drcElEMCtJR2xrY3k1b1lYTW9hU2twTzF4dUlDQnlaWFIxY200Z2JtVjNRMjlzVG1GdFpUdGNibjFjYmx4dUlsMTkiLCJleHBvcnQgZnVuY3Rpb24gY3JlYXRlRGltZW5zaW5hbGl0eVJlZHVjaW5nV29ya2VyKGRhdGFNZXRyaWMsIG1ldGhvZCwgb3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkge1xuICAgICAgICBjb25zdCB3b3JrZXIgPSBuZXcgV29ya2VyKG5ldyBVUkwoJy4vZGltZW5zaW9uYWxpdHktcmVkdWNlcicsIGltcG9ydC5tZXRhLnVybCkpO1xuICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgY29sdW1uRGF0YTogZGF0YU1ldHJpYy5kYXRhLFxuICAgICAgICAgICAgbWV0aG9kOiBtZXRob2QsXG4gICAgICAgICAgICBtZWFzdXJlOiBkYXRhTWV0cmljLm1ldHJpYyxcbiAgICAgICAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgICB3b3JrZXIub25tZXNzYWdlID0gKHsgZGF0YTogeyBkaXN0YW5jZSwgZW1iZWRkaW5nIH0gfSkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSh7IGRpc3RhbmNlOiBkaXN0YW5jZSwgZW1iZWRkaW5nOiBlbWJlZGRpbmcgfSk7XG4gICAgICAgIH07XG4gICAgfSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2laR2x0Wlc1emFXOXVZV3hwZEhrdGNtVmtkV05wYm1jdGQyOXlhMlZ5TFdOeVpXRjBiM0l1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SmthVzFsYm5OcGIyNWhiR2wwZVMxeVpXUjFZMmx1WnkxM2IzSnJaWEl0WTNKbFlYUnZjaTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGcFFrRXNUVUZCVFN4VlFVRlZMR2xEUVVGcFF5eERRVUZETEZWQlFYTkNMRVZCUVVVc1RVRkJZeXhGUVVOc1JpeFBRVUZoTzBsQlJXcENMRTlCUVU4c1NVRkJTU3hQUVVGUExFTkJRVU1zVlVGQlV5eFBRVUZQTzFGQlEycERMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NSMEZCUnl4RFFVRkRMREJDUVVFd1FpeEZRVUZGTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5vUml4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVGRE8xbEJRMnBDTEZWQlFWVXNSVUZCUlN4VlFVRlZMRU5CUVVNc1NVRkJTVHRaUVVNelFpeE5RVUZOTEVWQlFVVXNUVUZCVFR0WlFVTmtMRTlCUVU4c1JVRkJSU3hWUVVGVkxFTkJRVU1zVFVGQlRUdFpRVU14UWl4UFFVRlBMRVZCUVVVc1QwRkJUenRUUVVOcVFpeERRVUZETEVOQlFVTTdVVUZEU0N4TlFVRk5MRU5CUVVNc1UwRkJVeXhIUVVGSExFTkJRVU1zUlVGQlF5eEpRVUZKTEVWQlFVVXNSVUZCUXl4UlFVRlJMRVZCUVVVc1UwRkJVeXhGUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZGTzFsQlEzQkVMRTlCUVU4c1EwRkJReXhGUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEVWQlFVVXNVMEZCVXl4RlFVRkZMRk5CUVZNc1JVRkJReXhEUVVGRExFTkJRVU03VVVGRGNrUXNRMEZCUXl4RFFVRkRPMGxCUTBvc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFRDeERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUhzZ1RXRjBjbWw0SUgwZ1puSnZiU0FuUUdSaGRHRm5jbTlyTFd4cFluSmhjbWxsY3k5MWRHbHNjeTl6Y21NdmRIbHdaUzFrWldOc1lYSmhkR2x2Ym5Nbk8xeHVhVzF3YjNKMElIdFdZV3hwWkZSNWNHVnpmU0JtY205dElDY3VMaTkwZVhCbFpDMXRaWFJ5YVdOekp6dGNibHh1THlvcVhHNGdLaUJCSUhkdmNtdGxjaUIwYnlCd1pYSm1iM0p0SUdScGJXVnVjMmx2Ym1Gc2FYUjVJSEpsWkhWamRHbHZiaTVjYmlBcVhHNGdLaUJBY0dGeVlXMGdlMVpoYkdsa1ZIbHdaWE45SUdSaGRHRk5aWFJ5YVdNZ1ZHaGxJR1JoZEdFZ2RHOGdjSEp2WTJWemN5NWNiaUFxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J0WlhSb2IyUWdRU0J0WlhSb2IyUWdiMllnWkdsdFpXNXphVzl1WVd4cGRIa2djbVZrZFdOMGFXOXVMbHh1SUNvZ1FIQmhjbUZ0SUc5d2RHbHZibk1nTFNCclpYa3RkbUZzZFdVZ2NHRnBjbk5jYmlBcUlFQndZWEpoYlNCeVpYUjFjbTVFYVhOMFlXNWpaVTFoZEhKcGVGeHVJQ29nUUhKbGRIVnliaUI3VUhKdmJXbHpaVHhKVW1Wa2RXTmxSR2x0Wlc1emFXOXVZV3hwZEhsU1pYTjFiSFErZlNCU1pYTjFiSFJwYm1jZ1pXMWlaV1JrYVc1bklHRnVaQ0JrYVhOMFlXNWpaU0J0WVhSeWFYZ3VYRzRnS2k5Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1NWSmxaSFZqWlVScGJXVnVjMmx2Ym1Gc2FYUjVVbVZ6ZFd4MElIdGNiaUFnWkdsemRHRnVZMlU2SUUxaGRISnBlRHRjYmlBZ1pXMWlaV1JrYVc1bk9pQk5ZWFJ5YVhnN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJqY21WaGRHVkVhVzFsYm5OcGJtRnNhWFI1VW1Wa2RXTnBibWRYYjNKclpYSW9aR0YwWVUxbGRISnBZem9nVm1Gc2FXUlVlWEJsY3l3Z2JXVjBhRzlrT2lCemRISnBibWNzWEc0Z0lDQWdJQ0J2Y0hScGIyNXpQem9nWVc1NUtUb2dVSEp2YldselpUeEpVbVZrZFdObFJHbHRaVzV6YVc5dVlXeHBkSGxTWlhOMWJIUStJSHRjYmx4dUlDQnlaWFIxY200Z2JtVjNJRkJ5YjIxcGMyVW9ablZ1WTNScGIyNG9jbVZ6YjJ4MlpTa2dlMXh1SUNBZ0lHTnZibk4wSUhkdmNtdGxjaUE5SUc1bGR5QlhiM0pyWlhJb2JtVjNJRlZTVENnbkxpOWthVzFsYm5OcGIyNWhiR2wwZVMxeVpXUjFZMlZ5Snl3Z2FXMXdiM0owTG0xbGRHRXVkWEpzS1NrN1hHNGdJQ0FnZDI5eWEyVnlMbkJ2YzNSTlpYTnpZV2RsS0h0Y2JpQWdJQ0FnSUdOdmJIVnRia1JoZEdFNklHUmhkR0ZOWlhSeWFXTXVaR0YwWVN4Y2JpQWdJQ0FnSUcxbGRHaHZaRG9nYldWMGFHOWtMRnh1SUNBZ0lDQWdiV1ZoYzNWeVpUb2daR0YwWVUxbGRISnBZeTV0WlhSeWFXTXNYRzRnSUNBZ0lDQnZjSFJwYjI1ek9pQnZjSFJwYjI1ekxGeHVJQ0FnSUgwcE8xeHVJQ0FnSUhkdmNtdGxjaTV2Ym0xbGMzTmhaMlVnUFNBb2UyUmhkR0U2SUh0a2FYTjBZVzVqWlN3Z1pXMWlaV1JrYVc1bmZYMHBJRDArSUh0Y2JpQWdJQ0FnY21WemIyeDJaU2g3WkdsemRHRnVZMlU2SUdScGMzUmhibU5sTENCbGJXSmxaR1JwYm1jNklHVnRZbVZrWkdsdVozMHBPMXh1SUNBZ0lIMDdYRzRnSUgwcE8xeHVmVnh1SWwxOSIsImltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgKiBhcyBzaGEyNTYgZnJvbSAnZmFzdC1zaGEyNTYnO1xuLyoqXG4gKiBGb3IgY29sdW1ucyBvZiBzdHJpbmcgdHlwZS4gQ2hlY2tzIHdoZXRoZXIgY29sdW1uIGNvbnRhaW5zIGVtcHR5IHZhbHVlcyBhbmQgcmVtb3ZlcyBjb3JyZXNwb25kaW5nIHJvd3MgaW4gY2FzZSB1c2VyIHNlbGVjdHMgdG8gcmVtb3ZlLlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUVtcHR5U3RyaW5nUm93cyh0YWJsZSwgY29sKSB7XG4gICAgY29uc3QgY2F0cyA9IGNvbC5jYXRlZ29yaWVzO1xuICAgIGNvbnN0IGVtcHR5UmF3SW5kID0gY2F0cy5tYXAoKHZhbCwgaW5kKSA9PiAhdmFsID8gaW5kIDogbnVsbCkuZmlsdGVyKChpdCkgPT4gaXQgIT09IG51bGwpO1xuICAgIGNvbnN0IHJhd0RhdGEgPSBbLi4uY29sLmdldFJhd0RhdGEoKV07XG4gICAgY29uc3QgZW1wdHlSYXdzSW5kZXhlcyA9IFtdO1xuICAgIGxldCByZW1vdmVkUm93c0NvdW50ZXIgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFibGUucm93Q291bnQ7IGkrKykge1xuICAgICAgICBpZiAoZW1wdHlSYXdJbmQuaW5jbHVkZXMocmF3RGF0YVtpXSkpIHtcbiAgICAgICAgICAgIHRhYmxlLnJvd3MucmVtb3ZlQXQoaSAtIHJlbW92ZWRSb3dzQ291bnRlcik7XG4gICAgICAgICAgICBlbXB0eVJhd3NJbmRleGVzLnB1c2goaSk7XG4gICAgICAgICAgICByZW1vdmVkUm93c0NvdW50ZXIgKz0gMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZW1wdHlSYXdzSW5kZXhlcztcbn1cbmV4cG9ydCBmdW5jdGlvbiBoYXNoRGF0YUZyYW1lKHRhYmxlLCBuYW1lcykge1xuICAgIG5hbWVzICE9PSBudWxsICYmIG5hbWVzICE9PSB2b2lkIDAgPyBuYW1lcyA6IChuYW1lcyA9IHRhYmxlLmNvbHVtbnMubmFtZXMoKSk7XG4gICAgY29uc3QgaGFzaGVyID0gbmV3IHNoYTI1Ni5IYXNoKCk7XG4gICAgY29uc3Qgb3JkZXIgPSB0YWJsZS5nZXRTb3J0ZWRPcmRlcihuYW1lcyk7XG4gICAgY29uc3QgZW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuICAgIGZvciAoY29uc3QgbmFtZSBvZiBuYW1lcykge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSB0YWJsZS5jb2x1bW5zLmJ5TmFtZShuYW1lKTtcbiAgICAgICAgY29uc3QgZGF0YUFycmF5ID0gY29sdW1uLmdldFJhd0RhdGEoKTtcbiAgICAgICAgY29uc3QgaXNTdHJpbmcgPSBjb2x1bW4udHlwZSA9PSBERy5UWVBFLlNUUklORztcbiAgICAgICAgY29uc3QgY2F0cyA9IGNvbHVtbi5jYXRlZ29yaWVzO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGFBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGlzU3RyaW5nKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGNhdHNbZGF0YUFycmF5W29yZGVyW2ldXV07XG4gICAgICAgICAgICAgICAgaGFzaGVyLnVwZGF0ZShlbmNvZGVyLmVuY29kZShkYXRhKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gZGF0YUFycmF5W29yZGVyW2ldXTtcbiAgICAgICAgICAgICAgICBoYXNoZXIudXBkYXRlKFVpbnQ4QXJyYXkuZnJvbShbZGF0YV0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaGFzaGVyLmRpZ2VzdCgpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWkdGMFlXWnlZVzFsTFhWMGFXeHpMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaVpHRjBZV1p5WVcxbExYVjBhV3h6TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMRTlCUVU4c1MwRkJTeXhGUVVGRkxFMUJRVTBzYVVKQlFXbENMRU5CUVVNN1FVRkRkRU1zVDBGQlR5eExRVUZMTEUxQlFVMHNUVUZCVFN4aFFVRmhMRU5CUVVNN1FVRkRkRU03T3p0SFFVZEhPMEZCUTBnc1RVRkJUU3hWUVVGVkxIRkNRVUZ4UWl4RFFVRkRMRXRCUVcxQ0xFVkJRVVVzUjBGQll6dEpRVU4yUlN4TlFVRk5MRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zVlVGQlZTeERRVUZETzBsQlF6VkNMRTFCUVUwc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVXNTMEZCU3l4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNeFJpeE5RVUZOTEU5QlFVOHNSMEZCUnl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETEVOQlFVTTdTVUZEZEVNc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4RlFVRkZMRU5CUVVNN1NVRkROVUlzU1VGQlNTeHJRa0ZCYTBJc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRE0wSXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3VVVGRGRrTXNTVUZCU1N4WFFVRlhMRU5CUVVNc1VVRkJVU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZPMWxCUTNCRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1IwRkJSeXhyUWtGQmEwSXNRMEZCUXl4RFFVRkRPMWxCUXpWRExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU42UWl4clFrRkJhMElzU1VGQlNTeERRVUZETEVOQlFVTTdVMEZEZWtJN1MwRkRSanRKUVVORUxFOUJRVThzWjBKQlFXZENMRU5CUVVNN1FVRkRNVUlzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4aFFVRmhMRU5CUVVNc1MwRkJiVUlzUlVGQlJTeExRVUZuUWp0SlFVTnFSU3hMUVVGTExHRkJRVXdzUzBGQlN5eGpRVUZNTEV0QlFVc3NTVUZCVEN4TFFVRkxMRWRCUVVzc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUXp0SlFVTm9ReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRKUVVOcVF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4TFFVRkxMRU5CUVVNc1kwRkJZeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlF6RkRMRTFCUVUwc1QwRkJUeXhIUVVGSExFbEJRVWtzVjBGQlZ5eEZRVUZGTEVOQlFVTTdTVUZEYkVNc1MwRkJTeXhOUVVGTkxFbEJRVWtzU1VGQlNTeExRVUZMTEVWQlFVVTdVVUZEZUVJc1RVRkJUU3hOUVVGTkxFZEJRVWNzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRE1VTXNUVUZCVFN4VFFVRlRMRWRCUVVjc1RVRkJUU3hEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzFGQlEzUkRMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVsQlFVa3NSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU03VVVGREwwTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1RVRkJUU3hEUVVGRExGVkJRVlVzUTBGQlF6dFJRVU12UWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NVMEZCVXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFpRVU42UXl4SlFVRkpMRkZCUVZFc1JVRkJSVHRuUWtGRFdpeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRM1pETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMkZCUTNKRE8ybENRVUZOTzJkQ1FVTk1MRTFCUVUwc1NVRkJTU3hIUVVGSExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRGFrTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yRkJRM2hETzFOQlEwWTdTMEZEUmp0SlFVTkVMRTlCUVU4c1RVRkJUU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzBGQlEzcENMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1YVcxd2IzSjBJQ29nWVhNZ2MyaGhNalUySUdaeWIyMGdKMlpoYzNRdGMyaGhNalUySnp0Y2JpOHFLbHh1SUNvZ1JtOXlJR052YkhWdGJuTWdiMllnYzNSeWFXNW5JSFI1Y0dVdUlFTm9aV05yY3lCM2FHVjBhR1Z5SUdOdmJIVnRiaUJqYjI1MFlXbHVjeUJsYlhCMGVTQjJZV3gxWlhNZ1lXNWtJSEpsYlc5MlpYTWdZMjl5Y21WemNHOXVaR2x1WnlCeWIzZHpJR2x1SUdOaGMyVWdkWE5sY2lCelpXeGxZM1J6SUhSdklISmxiVzkyWlM1Y2JpQXFYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCeVpXMXZkbVZGYlhCMGVWTjBjbWx1WjFKdmQzTW9kR0ZpYkdVNklFUkhMa1JoZEdGR2NtRnRaU3dnWTI5c09pQkVSeTVEYjJ4MWJXNHBPaUJ1ZFcxaVpYSmJYU0I3WEc0Z0lHTnZibk4wSUdOaGRITWdQU0JqYjJ3dVkyRjBaV2R2Y21sbGN6dGNiaUFnWTI5dWMzUWdaVzF3ZEhsU1lYZEpibVFnUFNCallYUnpMbTFoY0Nnb2RtRnNMQ0JwYm1RcElEMCtJQ0YyWVd3Z1B5QnBibVFnT2lCdWRXeHNLUzVtYVd4MFpYSW9LR2wwS1NBOVBpQnBkQ0FoUFQwZ2JuVnNiQ2s3WEc0Z0lHTnZibk4wSUhKaGQwUmhkR0VnUFNCYkxpNHVZMjlzTG1kbGRGSmhkMFJoZEdFb0tWMDdYRzRnSUdOdmJuTjBJR1Z0Y0hSNVVtRjNjMGx1WkdWNFpYTWdQU0JiWFR0Y2JpQWdiR1YwSUhKbGJXOTJaV1JTYjNkelEyOTFiblJsY2lBOUlEQTdYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2RHRmliR1V1Y205M1EyOTFiblE3SUdrckt5a2dlMXh1SUNBZ0lHbG1JQ2hsYlhCMGVWSmhkMGx1WkM1cGJtTnNkV1JsY3loeVlYZEVZWFJoVzJsZEtTa2dlMXh1SUNBZ0lDQWdkR0ZpYkdVdWNtOTNjeTV5WlcxdmRtVkJkQ2hwSUMwZ2NtVnRiM1psWkZKdmQzTkRiM1Z1ZEdWeUtUdGNiaUFnSUNBZ0lHVnRjSFI1VW1GM2MwbHVaR1Y0WlhNdWNIVnphQ2hwS1R0Y2JpQWdJQ0FnSUhKbGJXOTJaV1JTYjNkelEyOTFiblJsY2lBclBTQXhPMXh1SUNBZ0lIMWNiaUFnZlZ4dUlDQnlaWFIxY200Z1pXMXdkSGxTWVhkelNXNWtaWGhsY3p0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2hoYzJoRVlYUmhSbkpoYldVb2RHRmliR1U2SUVSSExrUmhkR0ZHY21GdFpTd2dibUZ0WlhNL09pQnpkSEpwYm1kYlhTazZJRlZwYm5RNFFYSnlZWGtnZTF4dUlDQnVZVzFsY3lBL1B6MGdkR0ZpYkdVdVkyOXNkVzF1Y3k1dVlXMWxjeWdwTzF4dUlDQmpiMjV6ZENCb1lYTm9aWElnUFNCdVpYY2djMmhoTWpVMkxraGhjMmdvS1R0Y2JpQWdZMjl1YzNRZ2IzSmtaWElnUFNCMFlXSnNaUzVuWlhSVGIzSjBaV1JQY21SbGNpaHVZVzFsY3lrN1hHNGdJR052Ym5OMElHVnVZMjlrWlhJZ1BTQnVaWGNnVkdWNGRFVnVZMjlrWlhJb0tUdGNiaUFnWm05eUlDaGpiMjV6ZENCdVlXMWxJRzltSUc1aGJXVnpLU0I3WEc0Z0lDQWdZMjl1YzNRZ1kyOXNkVzF1SUQwZ2RHRmliR1V1WTI5c2RXMXVjeTVpZVU1aGJXVW9ibUZ0WlNrN1hHNGdJQ0FnWTI5dWMzUWdaR0YwWVVGeWNtRjVJRDBnWTI5c2RXMXVMbWRsZEZKaGQwUmhkR0VvS1R0Y2JpQWdJQ0JqYjI1emRDQnBjMU4wY21sdVp5QTlJR052YkhWdGJpNTBlWEJsSUQwOUlFUkhMbFJaVUVVdVUxUlNTVTVITzF4dUlDQWdJR052Ym5OMElHTmhkSE1nUFNCamIyeDFiVzR1WTJGMFpXZHZjbWxsY3p0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUdSaGRHRkJjbkpoZVM1c1pXNW5kR2c3SUdrckt5a2dlMXh1SUNBZ0lDQWdhV1lnS0dselUzUnlhVzVuS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdSaGRHRWdQU0JqWVhSelcyUmhkR0ZCY25KaGVWdHZjbVJsY2x0cFhWMWRPMXh1SUNBZ0lDQWdJQ0JvWVhOb1pYSXVkWEJrWVhSbEtHVnVZMjlrWlhJdVpXNWpiMlJsS0dSaGRHRXBLVHRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHUmhkR0VnUFNCa1lYUmhRWEp5WVhsYmIzSmtaWEpiYVYxZE8xeHVJQ0FnSUNBZ0lDQm9ZWE5vWlhJdWRYQmtZWFJsS0ZWcGJuUTRRWEp5WVhrdVpuSnZiU2hiWkdGMFlWMHBLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUgxY2JpQWdjbVYwZFhKdUlHaGhjMmhsY2k1a2FXZGxjM1FvS1R0Y2JuMWNiaUpkZlE9PSIsIi8qKlxuICogR2VuZXJhdGVzIHNpbmdsZSByYW5kb20gZmxvYXQgZnJvbSAwIHRvIHJhbmdlLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7bnVtYmVyfSByYW5nZSBNYXggZ2VuZXJhdGluZyB2YWx1ZS5cbiAqIEByZXR1cm4ge251bWJlcn0gQSByYW5kb20gZmxvYXQgZ2VuZXJhdGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmFuZG9tRmxvYXQocmFuZ2UpIHtcbiAgICByZXR1cm4gTWF0aC5yYW5kb20oKSAqIHJhbmdlO1xufVxuLyoqXG4gKiBHZW5lcmF0ZXMgc2luZ2xlIHJhbmRvbSBpbnRlZ2VyIGZyb20gMCB0byByYW5nZS5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge251bWJlcn0gcmFuZ2UgTWF4IGdlbmVyYXRpbmcgdmFsdWUuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IEEgcmFuZG9tIGludGVnZXIgZ2VuZXJhdGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmFuZG9tSW50KHJhbmdlKSB7XG4gICAgcmV0dXJuIE1hdGguZmxvb3IocmFuZG9tRmxvYXQocmFuZ2UpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWNtRnVaRzl0TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2ljbUZ1Wkc5dExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCT3pzN096czdSMEZOUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hYUVVGWExFTkJRVU1zUzBGQllUdEpRVU4yUXl4UFFVRlBMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eExRVUZMTEVOQlFVTTdRVUZETDBJc1EwRkJRenRCUVVWRU96czdPenM3UjBGTlJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4VFFVRlRMRU5CUVVNc1MwRkJZVHRKUVVOeVF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEZUVNc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtseHVJQ29nUjJWdVpYSmhkR1Z6SUhOcGJtZHNaU0J5WVc1a2IyMGdabXh2WVhRZ1puSnZiU0F3SUhSdklISmhibWRsTGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCeVlXNW5aU0JOWVhnZ1oyVnVaWEpoZEdsdVp5QjJZV3gxWlM1Y2JpQXFJRUJ5WlhSMWNtNGdlMjUxYldKbGNuMGdRU0J5WVc1a2IyMGdabXh2WVhRZ1oyVnVaWEpoZEdWa0xseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY21GdVpHOXRSbXh2WVhRb2NtRnVaMlU2SUc1MWJXSmxjaWs2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCTllYUm9MbkpoYm1SdmJTZ3BJQ29nY21GdVoyVTdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1IyVnVaWEpoZEdWeklITnBibWRzWlNCeVlXNWtiMjBnYVc1MFpXZGxjaUJtY205dElEQWdkRzhnY21GdVoyVXVYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJSEpoYm1kbElFMWhlQ0JuWlc1bGNtRjBhVzVuSUhaaGJIVmxMbHh1SUNvZ1FISmxkSFZ5YmlCN2JuVnRZbVZ5ZlNCQklISmhibVJ2YlNCcGJuUmxaMlZ5SUdkbGJtVnlZWFJsWkM1Y2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEpoYm1SdmJVbHVkQ2h5WVc1blpUb2diblZ0WW1WeUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJRTFoZEdndVpteHZiM0lvY21GdVpHOXRSbXh2WVhRb2NtRnVaMlVwS1R0Y2JuMWNiaUpkZlE9PSIsImltcG9ydCB7IHJhbmRvbUludCB9IGZyb20gJy4vcmFuZG9tJztcbmV4cG9ydCBjb25zdCBzaW1pbGFyaXR5TWV0cmljID0ge1xuICAgICdUYW5pbW90byc6IHRhbmltb3RvU2ltaWxhcml0eSxcbiAgICAnRGljZSc6IGRpY2VTaW1pbGFyaXR5LFxuICAgICdBc3ltbWV0cmljJzogYXN5bW1ldHJpY1NpbWlsYXJpdHksXG4gICAgJ0JyYXVuLUJsYW5xdWV0JzogYnJhdW5CbGFucXVldFNpbWlsYXJpdHksXG4gICAgJ0Nvc2luZSc6IGNvc2luZVNpbWlsYXJpdHksXG4gICAgJ0t1bGN6eW5za2knOiBrdWxjenluc2tpU2ltaWxhcml0eSxcbiAgICAnTWMtQ29ubmF1Z2hleSc6IG1jQ29ubmF1Z2hleVNpbWlsYXJpdHksXG4gICAgJ1JvZ290LUdvbGRiZXJnJzogcm9nb3RHb2xkYmVyZ1NpbWlsYXJpdHksXG4gICAgJ1J1c3NlbCc6IHJ1c3NlbFNpbWlsYXJpdHksXG4gICAgJ1Nva2FsJzogc29rYWxTaW1pbGFyaXR5LFxuICAgICdIYW1taW5nJzogaGFtbWluZ1NpbWlsYXJpdHksXG4gICAgJ0V1Y2xpZGVhbic6IGV1Y2xpZGVhblNpbWlsYXJpdHksXG59O1xuZXhwb3J0IGNvbnN0IGRpc3RhbmNlTWV0cmljcyA9IHtcbiAgICAnVGFuaW1vdG8nOiB0YW5pbW90b0Rpc3RhbmNlLFxuICAgICdEaWNlJzogZGljZURpc3RhbmNlLFxuICAgICdBc3ltbWV0cmljJzogYXN5bW1ldHJpY0Rpc3RhbmNlLFxuICAgICdCcmF1bi1CbGFucXVldCc6IGJyYXVuQmxhbnF1ZXREaXN0YW5jZSxcbiAgICAnQ29zaW5lJzogY29zaW5lRGlzdGFuY2UsXG4gICAgJ0t1bGN6eW5za2knOiBrdWxjenluc2tpRGlzdGFuY2UsXG4gICAgJ01jLUNvbm5hdWdoZXknOiBtY0Nvbm5hdWdoZXlEaXN0YW5jZSxcbiAgICAnUm9nb3QtR29sZGJlcmcnOiByb2dvdEdvbGRiZXJnRGlzdGFuY2UsXG4gICAgJ1J1c3NlbCc6IHJ1c3NlbERpc3RhbmNlLFxuICAgICdTb2thbCc6IHNva2FsRGlzdGFuY2UsXG4gICAgJ0hhbW1pbmcnOiBoYW1taW5nRGlzdGFuY2UsXG4gICAgJ0V1Y2xpZGVhbic6IGV1Y2xpZGVhbkRpc3RhbmNlLFxufTtcbmV4cG9ydCBjb25zdCBDSEVNX1NJTUlMQVJJVFlfTUVUUklDUyA9IFsnVGFuaW1vdG8nLCAnRGljZScsICdDb3NpbmUnLCAnSGFtbWluZycsICdFdWNsaWRlYW4nXTtcbmV4cG9ydCBmdW5jdGlvbiB0YW5pbW90b1NpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCk7XG4gICAgaWYgKHRvdGFsID09IDApXG4gICAgICAgIHJldHVybiAxLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiBjb21tb24gLyAodG90YWwgLSBjb21tb24pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHRhbmltb3RvRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KHRhbmltb3RvU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZGljZVNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCk7XG4gICAgaWYgKHRvdGFsID09IDApXG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiAyICogY29tbW9uIC8gdG90YWw7XG59XG5leHBvcnQgZnVuY3Rpb24gZGljZURpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShkaWNlU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gY29zaW5lU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgdG90YWwgPSB4LnRydWVDb3VudCgpICogeS50cnVlQ291bnQoKTtcbiAgICBpZiAodG90YWwgPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIGNvbW1vbiAvIE1hdGguc3FydCh0b3RhbCk7XG59XG5leHBvcnQgZnVuY3Rpb24gY29zaW5lRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KGNvc2luZVNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGV1Y2xpZGVhblNpbWlsYXJpdHkoeCwgeSkge1xuICAgIHJldHVybiBnZXRTaW1pbGFyaXR5RnJvbURpc3RhbmNlKGV1Y2xpZGVhbkRpc3RhbmNlKHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBldWNsaWRlYW5EaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIE1hdGguc3FydCh4LnRydWVDb3VudCgpICsgeS50cnVlQ291bnQoKSAtIDIgKiB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGhhbW1pbmdTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0U2ltaWxhcml0eUZyb21EaXN0YW5jZShoYW1taW5nRGlzdGFuY2UoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGhhbW1pbmdEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIHgudHJ1ZUNvdW50KCkgKyB5LnRydWVDb3VudCgpIC0gMiAqIHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBzb2thbFNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCk7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiBjb21tb24gLyAoMiAqIHRvdGFsIC0gMyAqIGNvbW1vbik7XG59XG5leHBvcnQgZnVuY3Rpb24gc29rYWxEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoc29rYWxTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBrdWxjenluc2tpU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgdG90YWwgPSB4LnRydWVDb3VudCgpICsgeS50cnVlQ291bnQoKTtcbiAgICBjb25zdCB0b3RhbFByb2QgPSB4LnRydWVDb3VudCgpICogeS50cnVlQ291bnQoKTtcbiAgICBpZiAodG90YWxQcm9kID09IDApXG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiAoY29tbW9uICogdG90YWwpIC8gKDIgKiB0b3RhbFByb2QpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGt1bGN6eW5za2lEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoa3VsY3p5bnNraVNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG1jQ29ubmF1Z2hleVNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCk7XG4gICAgY29uc3QgdG90YWxQcm9kID0geC50cnVlQ291bnQoKSAqIHkudHJ1ZUNvdW50KCk7XG4gICAgaWYgKHRvdGFsUHJvZCA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gKGNvbW1vbiAqIHRvdGFsIC0gdG90YWxQcm9kKSAvIHRvdGFsUHJvZDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBtY0Nvbm5hdWdoZXlEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkobWNDb25uYXVnaGV5U2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gYXN5bW1ldHJpY1NpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IG1pbiA9IE1hdGgubWluKHgudHJ1ZUNvdW50KCksIHkudHJ1ZUNvdW50KCkpO1xuICAgIGlmIChtaW4gPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIGNvbW1vbiAvIG1pbjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBhc3ltbWV0cmljRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KGFzeW1tZXRyaWNTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBicmF1bkJsYW5xdWV0U2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgbWF4ID0gTWF0aC5tYXgoeC50cnVlQ291bnQoKSwgeS50cnVlQ291bnQoKSk7XG4gICAgaWYgKG1heCA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gY29tbW9uIC8gbWF4O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGJyYXVuQmxhbnF1ZXREaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoYnJhdW5CbGFucXVldFNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJ1c3NlbFNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGlmICh4Lmxlbmd0aCA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gY29tbW9uIC8geC5sZW5ndGg7XG59XG5leHBvcnQgZnVuY3Rpb24gcnVzc2VsRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KHJ1c3NlbFNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJvZ290R29sZGJlcmdTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgY29uc3QgdG90YWwgPSB4LmNvdW50Qml0cyh0cnVlKSArIHkuY291bnRCaXRzKHRydWUpO1xuICAgIGNvbnN0IGxlbiA9IHgubGVuZ3RoO1xuICAgIGNvbnN0IGRpZmYgPSBsZW4gLSB0b3RhbCArIGNvbW1vbjtcbiAgICBpZiAoKGNvbW1vbiA9PSBsZW4pIHx8IChkaWZmID09IGxlbikpXG4gICAgICAgIHJldHVybiAxLjA7XG4gICAgZWxzZVxuICAgICAgICByZXR1cm4gY29tbW9uIC8gdG90YWwgKyBkaWZmIC8gKDIgKiBsZW4gLSB0b3RhbCk7XG59XG5leHBvcnQgZnVuY3Rpb24gcm9nb3RHb2xkYmVyZ0Rpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShyb2dvdEdvbGRiZXJnU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2ltaWxhcml0eUZyb21EaXN0YW5jZShkaXN0YW5jZSkge1xuICAgIHJldHVybiAxIC8gKDEgKyBkaXN0YW5jZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShzaW1pbGFyaXR5KSB7XG4gICAgcmV0dXJuIDEgLyBzaW1pbGFyaXR5IC0gMTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXZlcnNlU3Vic2V0KGxlbmd0aCwgbiwgZGlzdCkge1xuICAgIGZ1bmN0aW9uIG1heEJ5KHZhbHVlcywgb3JkZXJCeSkge1xuICAgICAgICBsZXQgbWF4VmFsdWUgPSBudWxsO1xuICAgICAgICBsZXQgbWF4T3JkZXJCeSA9IG51bGw7XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB2YWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRPcmRlckJ5ID0gb3JkZXJCeShlbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChtYXhPcmRlckJ5ID09IG51bGwgfHwgZWxlbWVudE9yZGVyQnkgPiBtYXhPcmRlckJ5KSB7XG4gICAgICAgICAgICAgICAgbWF4VmFsdWUgPSBlbGVtZW50O1xuICAgICAgICAgICAgICAgIG1heE9yZGVyQnkgPSBlbGVtZW50T3JkZXJCeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF4VmFsdWU7XG4gICAgfVxuICAgIGNvbnN0IHN1YnNldCA9IFtyYW5kb21JbnQobGVuZ3RoIC0gMSldO1xuICAgIGNvbnN0IGNvbXBsZW1lbnQgPSBuZXcgU2V0KCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuICAgICAgICBpZiAoIXN1YnNldC5pbmNsdWRlcyhpKSlcbiAgICAgICAgICAgIGNvbXBsZW1lbnQuYWRkKGkpO1xuICAgIH1cbiAgICB3aGlsZSAoc3Vic2V0Lmxlbmd0aCA8IG4pIHtcbiAgICAgICAgY29uc3QgaWR4ID0gbWF4QnkoY29tcGxlbWVudC52YWx1ZXMoKSwgKGkpID0+IE1hdGgubWluLmFwcGx5KE1hdGgsIHN1YnNldC5tYXAoZnVuY3Rpb24gKHZhbCwgaW5kZXgpIHtcbiAgICAgICAgICAgIHJldHVybiBkaXN0KGksIHZhbCk7XG4gICAgICAgIH0pKSk7XG4gICAgICAgIGlmIChpZHggIT0gbnVsbCkge1xuICAgICAgICAgICAgc3Vic2V0LnB1c2goaWR4KTtcbiAgICAgICAgICAgIGNvbXBsZW1lbnQuZGVsZXRlKGlkeCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN1YnNldDtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWMybHRhV3hoY21sMGVTMXRaWFJ5YVdOekxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpYzJsdGFXeGhjbWwwZVMxdFpYUnlhV056TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVTkJMRTlCUVU4c1JVRkJReXhUUVVGVExFVkJRVU1zVFVGQlRTeFZRVUZWTEVOQlFVTTdRVUZGYmtNc1RVRkJUU3hEUVVGRExFMUJRVTBzWjBKQlFXZENMRWRCUVRKRU8wbEJRM1JHTEZWQlFWVXNSVUZCUlN4clFrRkJhMEk3U1VGRE9VSXNUVUZCVFN4RlFVRkZMR05CUVdNN1NVRkRkRUlzV1VGQldTeEZRVUZGTEc5Q1FVRnZRanRKUVVOc1F5eG5Ra0ZCWjBJc1JVRkJSU3gxUWtGQmRVSTdTVUZEZWtNc1VVRkJVU3hGUVVGRkxHZENRVUZuUWp0SlFVTXhRaXhaUVVGWkxFVkJRVVVzYjBKQlFXOUNPMGxCUTJ4RExHVkJRV1VzUlVGQlJTeHpRa0ZCYzBJN1NVRkRka01zWjBKQlFXZENMRVZCUVVVc2RVSkJRWFZDTzBsQlEzcERMRkZCUVZFc1JVRkJSU3huUWtGQlowSTdTVUZETVVJc1QwRkJUeXhGUVVGRkxHVkJRV1U3U1VGRGVFSXNVMEZCVXl4RlFVRkZMR2xDUVVGcFFqdEpRVU0xUWl4WFFVRlhMRVZCUVVVc2JVSkJRVzFDTzBOQlEycERMRU5CUVVNN1FVRkZSaXhOUVVGTkxFTkJRVU1zVFVGQlRTeGxRVUZsTEVkQlFUSkVPMGxCUTNKR0xGVkJRVlVzUlVGQlJTeG5Ra0ZCWjBJN1NVRkROVUlzVFVGQlRTeEZRVUZGTEZsQlFWazdTVUZEY0VJc1dVRkJXU3hGUVVGRkxHdENRVUZyUWp0SlFVTm9ReXhuUWtGQlowSXNSVUZCUlN4eFFrRkJjVUk3U1VGRGRrTXNVVUZCVVN4RlFVRkZMR05CUVdNN1NVRkRlRUlzV1VGQldTeEZRVUZGTEd0Q1FVRnJRanRKUVVOb1F5eGxRVUZsTEVWQlFVVXNiMEpCUVc5Q08wbEJRM0pETEdkQ1FVRm5RaXhGUVVGRkxIRkNRVUZ4UWp0SlFVTjJReXhSUVVGUkxFVkJRVVVzWTBGQll6dEpRVU40UWl4UFFVRlBMRVZCUVVVc1lVRkJZVHRKUVVOMFFpeFRRVUZUTEVWQlFVVXNaVUZCWlR0SlFVTXhRaXhYUVVGWExFVkJRVVVzYVVKQlFXbENPME5CUXk5Q0xFTkJRVU03UVVGRlJpeE5RVUZOTEVOQlFVTXNUVUZCVFN4MVFrRkJkVUlzUjBGQlJ5eERRVUZETEZWQlFWVXNSVUZCUlN4TlFVRk5MRVZCUVVVc1VVRkJVU3hGUVVGRkxGTkJRVk1zUlVGQlJTeFhRVUZYTEVOQlFVTXNRMEZCUXp0QlFVVTVSaXhOUVVGTkxGVkJRVlVzYTBKQlFXdENMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRGVrUXNUVUZCVFN4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenRKUVVNMVF5eEpRVUZKTEV0QlFVc3NTVUZCU1N4RFFVRkRPMUZCUTFvc1QwRkJUeXhIUVVGSExFTkJRVU03U1VGRFlpeE5RVUZOTEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRek5ETEU5QlFVOHNUVUZCVFN4SFFVRkhMRU5CUVVNc1MwRkJTeXhIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETzBGQlEyNURMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzWjBKQlFXZENMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRGRrUXNUMEZCVHl4NVFrRkJlVUlzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTTNSQ3hEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdOQlFXTXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVOeVJDeE5RVUZOTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPMGxCUXpWRExFbEJRVWtzUzBGQlN5eEpRVUZKTEVOQlFVTTdVVUZEV2l4UFFVRlBMRWRCUVVjc1EwRkJRenRKUVVOaUxFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRNME1zVDBGQlR5eERRVUZETEVkQlFVY3NUVUZCVFN4SFFVRkhMRXRCUVVzc1EwRkJRenRCUVVNMVFpeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMRmxCUVZrc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU51UkN4UFFVRlBMSGxDUVVGNVFpeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU42UkN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHZENRVUZuUWl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRM1pFTEUxQlFVMHNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1NVRkROVU1zU1VGQlNTeExRVUZMTEVsQlFVa3NRMEZCUXp0UlFVTmFMRTlCUVU4c1IwRkJSeXhEUVVGRE8wbEJRMklzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNelF5eFBRVUZQTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBGQlEyNURMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzWTBGQll5eERRVUZETEVOQlFWY3NSVUZCUlN4RFFVRlhPMGxCUTNKRUxFOUJRVThzZVVKQlFYbENMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE0wUXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3h0UWtGQmJVSXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVNeFJDeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6VkVMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzYVVKQlFXbENMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRGVFUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEhRVUZETEVOQlFVTXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOc1JpeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR2xDUVVGcFFpeERRVUZETEVOQlFWY3NSVUZCUlN4RFFVRlhPMGxCUTNoRUxFOUJRVThzZVVKQlFYbENMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpGRUxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNaVUZCWlN4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRM1JFTEU5QlFVOHNRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4RFFVRkRMRWRCUVVNc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU4yUlN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHVkJRV1VzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTjBSQ3hOUVVGTkxFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETzBsQlF6VkRMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETTBNc1QwRkJUeXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NTMEZCU3l4SFFVRkhMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU16UXl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHRkJRV0VzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTndSQ3hQUVVGUExIbENRVUY1UWl4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXhSQ3hEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEc5Q1FVRnZRaXhEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlF6TkVMRTFCUVUwc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03U1VGRE5VTXNUVUZCVFN4VFFVRlRMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenRKUVVOb1JDeEpRVUZKTEZOQlFWTXNTVUZCU1N4RFFVRkRPMUZCUTJoQ0xFOUJRVThzUjBGQlJ5eERRVUZETzBsQlEySXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU16UXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hIUVVGSExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRk5CUVZNc1EwRkJReXhEUVVGRE8wRkJRelZETEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc2EwSkJRV3RDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRla1FzVDBGQlR5eDVRa0ZCZVVJc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU12UkN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxITkNRVUZ6UWl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRemRFTEUxQlFVMHNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1NVRkROVU1zVFVGQlRTeFRRVUZUTEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0SlFVTm9SQ3hKUVVGSkxGTkJRVk1zU1VGQlNTeERRVUZETzFGQlEyaENMRTlCUVU4c1IwRkJSeXhEUVVGRE8wbEJRMklzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNelF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4SFFVRkhMRXRCUVVzc1IwRkJSeXhUUVVGVExFTkJRVU1zUjBGQlJ5eFRRVUZUTEVOQlFVTTdRVUZEYkVRc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeHZRa0ZCYjBJc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU16UkN4UFFVRlBMSGxDUVVGNVFpeERRVUZETEhOQ1FVRnpRaXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTJwRkxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNiMEpCUVc5Q0xFTkJRVU1zUTBGQlZ5eEZRVUZGTEVOQlFWYzdTVUZETTBRc1RVRkJUU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRia1FzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXp0UlFVTldMRTlCUVU4c1IwRkJSeXhEUVVGRE8wbEJRMklzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNelF5eFBRVUZQTEUxQlFVMHNSMEZCUnl4SFFVRkhMRU5CUVVNN1FVRkRkRUlzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4clFrRkJhMElzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTjZSQ3hQUVVGUExIbENRVUY1UWl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJReTlFTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc2RVSkJRWFZDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRPVVFzVFVGQlRTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRGJrUXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJRenRSUVVOV0xFOUJRVThzUjBGQlJ5eERRVUZETzBsQlEySXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU16UXl4UFFVRlBMRTFCUVUwc1IwRkJSeXhIUVVGSExFTkJRVU03UVVGRGRFSXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3h4UWtGQmNVSXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVNMVJDeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRExIVkNRVUYxUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEyeEZMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzWjBKQlFXZENMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRGRrUXNTVUZCU1N4RFFVRkRMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU03VVVGRFppeFBRVUZQTEVkQlFVY3NRMEZCUXp0SlFVTmlMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETTBNc1QwRkJUeXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXp0QlFVTXpRaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdOQlFXTXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVOeVJDeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6TkVMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzZFVKQlFYVkNMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRE9VUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU16UXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTVUZEY0VRc1RVRkJUU3hIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXp0SlFVTnlRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEhRVUZITEVkQlFVY3NTMEZCU3l4SFFVRkhMRTFCUVUwc1EwRkJRenRKUVVOc1F5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeEpRVUZKTEVkQlFVY3NRMEZCUXp0UlFVRkZMRTlCUVU4c1IwRkJSeXhEUVVGRE96dFJRVU0xUXl4UFFVRlBMRTFCUVUwc1IwRkJSeXhMUVVGTExFZEJRVWNzU1VGQlNTeEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRWRCUVVjc1IwRkJSeXhMUVVGTExFTkJRVU1zUTBGQlF6dEJRVU40UkN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxIRkNRVUZ4UWl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRelZFTEU5QlFVOHNlVUpCUVhsQ0xFTkJRVU1zZFVKQlFYVkNMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYkVVc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeDVRa0ZCZVVJc1EwRkJReXhSUVVGblFqdEpRVU40UkN4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRkxFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTXNRMEZCUXp0QlFVTTNRaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEhsQ1FVRjVRaXhEUVVGRExGVkJRV3RDTzBsQlF6RkVMRTlCUVU4c1EwRkJReXhIUVVGSExGVkJRVlVzUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZETlVJc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeG5Ra0ZCWjBJc1EwRkJReXhOUVVGakxFVkJRVVVzUTBGQlV5eEZRVUZGTEVsQlFYZERPMGxCUTJ4SExGTkJRVk1zUzBGQlN5eERRVUZETEUxQlFXZERMRVZCUVVVc1QwRkJPRUk3VVVGRE4wVXNTVUZCU1N4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRM0JDTEVsQlFVa3NWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJRenRSUVVWMFFpeExRVUZMTEUxQlFVMHNUMEZCVHl4SlFVRkpMRTFCUVUwc1JVRkJSVHRaUVVNMVFpeE5RVUZOTEdOQlFXTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03V1VGRGVFTXNTVUZCU1N4VlFVRlZMRWxCUVVrc1NVRkJTU3hKUVVGSkxHTkJRV01zUjBGQlJ5eFZRVUZWTEVWQlFVVTdaMEpCUTNKRUxGRkJRVkVzUjBGQlJ5eFBRVUZQTEVOQlFVTTdaMEpCUTI1Q0xGVkJRVlVzUjBGQlJ5eGpRVUZqTEVOQlFVTTdZVUZETjBJN1UwRkRSanRSUVVORUxFOUJRVThzVVVGQlVTeERRVUZETzBsQlEyeENMRU5CUVVNN1NVRkZSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU4yUXl4TlFVRk5MRlZCUVZVc1IwRkJSeXhKUVVGSkxFZEJRVWNzUlVGQlJTeERRVUZETzBsQlJUZENMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVU3VVVGREwwSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzSkNMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTMEZEY2tJN1NVRkZSQ3hQUVVGUExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RlFVRkZPMUZCUTNoQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEV0QlFVc3NRMEZEWml4VlFVRlZMRU5CUVVNc1RVRkJUU3hGUVVFNFFpeEZRVU12UXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hGUVVGRkxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNWVUZCVXl4SFFVRkhMRVZCUVVVc1MwRkJTenRaUVVONFJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4RFFVRkRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGRFSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMUFzU1VGQlNTeEhRVUZITEVsQlFVa3NTVUZCU1N4RlFVRkZPMWxCUTJZc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTnFRaXhWUVVGVkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMU5CUTNoQ08wdEJRMFk3U1VGRFJDeFBRVUZQTEUxQlFVMHNRMEZCUXp0QlFVTm9RaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElFSnBkRUZ5Y21GNUlHWnliMjBnSnk0dlltbDBMV0Z5Y21GNUp6dGNibWx0Y0c5eWRDQjdjbUZ1Wkc5dFNXNTBmU0JtY205dElDY3VMM0poYm1SdmJTYzdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnphVzFwYkdGeWFYUjVUV1YwY21sak9pQjdXMjVoYldVNklITjBjbWx1WjEwNklDaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcElEMCtJRzUxYldKbGNuMGdQU0I3WEc0Z0lDZFVZVzVwYlc5MGJ5YzZJSFJoYm1sdGIzUnZVMmx0YVd4aGNtbDBlU3hjYmlBZ0owUnBZMlVuT2lCa2FXTmxVMmx0YVd4aGNtbDBlU3hjYmlBZ0owRnplVzF0WlhSeWFXTW5PaUJoYzNsdGJXVjBjbWxqVTJsdGFXeGhjbWwwZVN4Y2JpQWdKMEp5WVhWdUxVSnNZVzV4ZFdWMEp6b2dZbkpoZFc1Q2JHRnVjWFZsZEZOcGJXbHNZWEpwZEhrc1hHNGdJQ2REYjNOcGJtVW5PaUJqYjNOcGJtVlRhVzFwYkdGeWFYUjVMRnh1SUNBblMzVnNZM3A1Ym5OcmFTYzZJR3QxYkdONmVXNXphMmxUYVcxcGJHRnlhWFI1TEZ4dUlDQW5UV010UTI5dWJtRjFaMmhsZVNjNklHMWpRMjl1Ym1GMVoyaGxlVk5wYldsc1lYSnBkSGtzWEc0Z0lDZFNiMmR2ZEMxSGIyeGtZbVZ5WnljNklISnZaMjkwUjI5c1pHSmxjbWRUYVcxcGJHRnlhWFI1TEZ4dUlDQW5VblZ6YzJWc0p6b2djblZ6YzJWc1UybHRhV3hoY21sMGVTeGNiaUFnSjFOdmEyRnNKem9nYzI5cllXeFRhVzFwYkdGeWFYUjVMRnh1SUNBblNHRnRiV2x1WnljNklHaGhiVzFwYm1kVGFXMXBiR0Z5YVhSNUxGeHVJQ0FuUlhWamJHbGtaV0Z1SnpvZ1pYVmpiR2xrWldGdVUybHRhV3hoY21sMGVTeGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JrYVhOMFlXNWpaVTFsZEhKcFkzTTZJSHRiYm1GdFpUb2djM1J5YVc1blhUb2dLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTa2dQVDRnYm5WdFltVnlmU0E5SUh0Y2JpQWdKMVJoYm1sdGIzUnZKem9nZEdGdWFXMXZkRzlFYVhOMFlXNWpaU3hjYmlBZ0owUnBZMlVuT2lCa2FXTmxSR2x6ZEdGdVkyVXNYRzRnSUNkQmMzbHRiV1YwY21sakp6b2dZWE41YlcxbGRISnBZMFJwYzNSaGJtTmxMRnh1SUNBblFuSmhkVzR0UW14aGJuRjFaWFFuT2lCaWNtRjFia0pzWVc1eGRXVjBSR2x6ZEdGdVkyVXNYRzRnSUNkRGIzTnBibVVuT2lCamIzTnBibVZFYVhOMFlXNWpaU3hjYmlBZ0owdDFiR042ZVc1emEya25PaUJyZFd4amVubHVjMnRwUkdsemRHRnVZMlVzWEc0Z0lDZE5ZeTFEYjI1dVlYVm5hR1Y1SnpvZ2JXTkRiMjV1WVhWbmFHVjVSR2x6ZEdGdVkyVXNYRzRnSUNkU2IyZHZkQzFIYjJ4a1ltVnlaeWM2SUhKdloyOTBSMjlzWkdKbGNtZEVhWE4wWVc1alpTeGNiaUFnSjFKMWMzTmxiQ2M2SUhKMWMzTmxiRVJwYzNSaGJtTmxMRnh1SUNBblUyOXJZV3duT2lCemIydGhiRVJwYzNSaGJtTmxMRnh1SUNBblNHRnRiV2x1WnljNklHaGhiVzFwYm1kRWFYTjBZVzVqWlN4Y2JpQWdKMFYxWTJ4cFpHVmhiaWM2SUdWMVkyeHBaR1ZoYmtScGMzUmhibU5sTEZ4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElFTklSVTFmVTBsTlNVeEJVa2xVV1Y5TlJWUlNTVU5USUQwZ1d5ZFVZVzVwYlc5MGJ5Y3NJQ2RFYVdObEp5d2dKME52YzJsdVpTY3NJQ2RJWVcxdGFXNW5KeXdnSjBWMVkyeHBaR1ZoYmlkZE8xeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdkR0Z1YVcxdmRHOVRhVzFwYkdGeWFYUjVLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUdOdmJuTjBJSFJ2ZEdGc0lEMGdlQzUwY25WbFEyOTFiblFvS1NBcklIa3VkSEoxWlVOdmRXNTBLQ2s3WEc0Z0lHbG1JQ2gwYjNSaGJDQTlQU0F3S1Z4dUlDQWdJSEpsZEhWeWJpQXhMakE3WEc0Z0lHTnZibk4wSUdOdmJXMXZiaUE5SUhndVlXNWtWMmwwYUVOdmRXNTBRbWwwY3loNUxDQjBjblZsS1R0Y2JpQWdjbVYwZFhKdUlHTnZiVzF2YmlBdklDaDBiM1JoYkNBdElHTnZiVzF2YmlrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUIwWVc1cGJXOTBiMFJwYzNSaGJtTmxLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUJuWlhSRWFYTjBZVzVqWlVaeWIyMVRhVzFwYkdGeWFYUjVLSFJoYm1sdGIzUnZVMmx0YVd4aGNtbDBlU2g0TENCNUtTazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCa2FXTmxVMmx0YVd4aGNtbDBlU2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BPaUJ1ZFcxaVpYSWdlMXh1SUNCamIyNXpkQ0IwYjNSaGJDQTlJSGd1ZEhKMVpVTnZkVzUwS0NrZ0t5QjVMblJ5ZFdWRGIzVnVkQ2dwTzF4dUlDQnBaaUFvZEc5MFlXd2dQVDBnTUNsY2JpQWdJQ0J5WlhSMWNtNGdNQzR3TzF4dUlDQmpiMjV6ZENCamIyMXRiMjRnUFNCNExtRnVaRmRwZEdoRGIzVnVkRUpwZEhNb2VTd2dkSEoxWlNrN1hHNGdJSEpsZEhWeWJpQXlJQ29nWTI5dGJXOXVJQzhnZEc5MFlXdzdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCa2FXTmxSR2x6ZEdGdVkyVW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJR2RsZEVScGMzUmhibU5sUm5KdmJWTnBiV2xzWVhKcGRIa29aR2xqWlZOcGJXbHNZWEpwZEhrb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZMjl6YVc1bFUybHRhV3hoY21sMGVTaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcE9pQnVkVzFpWlhJZ2UxeHVJQ0JqYjI1emRDQjBiM1JoYkNBOUlIZ3VkSEoxWlVOdmRXNTBLQ2tnS2lCNUxuUnlkV1ZEYjNWdWRDZ3BPMXh1SUNCcFppQW9kRzkwWVd3Z1BUMGdNQ2xjYmlBZ0lDQnlaWFIxY200Z01DNHdPMXh1SUNCamIyNXpkQ0JqYjIxdGIyNGdQU0I0TG1GdVpGZHBkR2hEYjNWdWRFSnBkSE1vZVN3Z2RISjFaU2s3WEc0Z0lISmxkSFZ5YmlCamIyMXRiMjRnTHlCTllYUm9Mbk54Y25Rb2RHOTBZV3dwTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZMjl6YVc1bFJHbHpkR0Z1WTJVb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdjbVYwZFhKdUlHZGxkRVJwYzNSaGJtTmxSbkp2YlZOcGJXbHNZWEpwZEhrb1kyOXphVzVsVTJsdGFXeGhjbWwwZVNoNExDQjVLU2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmxkV05zYVdSbFlXNVRhVzFwYkdGeWFYUjVLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUJuWlhSVGFXMXBiR0Z5YVhSNVJuSnZiVVJwYzNSaGJtTmxLR1YxWTJ4cFpHVmhia1JwYzNSaGJtTmxLSGdzSUhrcEtUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdWMVkyeHBaR1ZoYmtScGMzUmhibU5sS0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCTllYUm9Mbk54Y25Rb2VDNTBjblZsUTI5MWJuUW9LU0FySUhrdWRISjFaVU52ZFc1MEtDa2dMU0F5S25ndVlXNWtWMmwwYUVOdmRXNTBRbWwwY3loNUxDQjBjblZsS1NrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJvWVcxdGFXNW5VMmx0YVd4aGNtbDBlU2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BPaUJ1ZFcxaVpYSWdlMXh1SUNCeVpYUjFjbTRnWjJWMFUybHRhV3hoY21sMGVVWnliMjFFYVhOMFlXNWpaU2hvWVcxdGFXNW5SR2x6ZEdGdVkyVW9lQ3dnZVNrcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYUdGdGJXbHVaMFJwYzNSaGJtTmxLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUI0TG5SeWRXVkRiM1Z1ZENncElDc2dlUzUwY25WbFEyOTFiblFvS1NBdElESXFlQzVoYm1SWGFYUm9RMjkxYm5SQ2FYUnpLSGtzSUhSeWRXVXBPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2MyOXJZV3hUYVcxcGJHRnlhWFI1S0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lHTnZibk4wSUhSdmRHRnNJRDBnZUM1MGNuVmxRMjkxYm5Rb0tTQXJJSGt1ZEhKMVpVTnZkVzUwS0NrN1hHNGdJR052Ym5OMElHTnZiVzF2YmlBOUlIZ3VZVzVrVjJsMGFFTnZkVzUwUW1sMGN5aDVMQ0IwY25WbEtUdGNiaUFnY21WMGRYSnVJR052YlcxdmJpQXZJQ2d5SUNvZ2RHOTBZV3dnTFNBeklDb2dZMjl0Ylc5dUtUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhOdmEyRnNSR2x6ZEdGdVkyVW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJR2RsZEVScGMzUmhibU5sUm5KdmJWTnBiV2xzWVhKcGRIa29jMjlyWVd4VGFXMXBiR0Z5YVhSNUtIZ3NJSGtwS1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR3QxYkdONmVXNXphMmxUYVcxcGJHRnlhWFI1S0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lHTnZibk4wSUhSdmRHRnNJRDBnZUM1MGNuVmxRMjkxYm5Rb0tTQXJJSGt1ZEhKMVpVTnZkVzUwS0NrN1hHNGdJR052Ym5OMElIUnZkR0ZzVUhKdlpDQTlJSGd1ZEhKMVpVTnZkVzUwS0NrZ0tpQjVMblJ5ZFdWRGIzVnVkQ2dwTzF4dUlDQnBaaUFvZEc5MFlXeFFjbTlrSUQwOUlEQXBYRzRnSUNBZ2NtVjBkWEp1SURBdU1EdGNiaUFnWTI5dWMzUWdZMjl0Ylc5dUlEMGdlQzVoYm1SWGFYUm9RMjkxYm5SQ2FYUnpLSGtzSUhSeWRXVXBPMXh1SUNCeVpYUjFjbTRnS0dOdmJXMXZiaUFxSUhSdmRHRnNLU0F2SUNneUlDb2dkRzkwWVd4UWNtOWtLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHdDFiR042ZVc1emEybEVhWE4wWVc1alpTaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcE9pQnVkVzFpWlhJZ2UxeHVJQ0J5WlhSMWNtNGdaMlYwUkdsemRHRnVZMlZHY205dFUybHRhV3hoY21sMGVTaHJkV3hqZW5sdWMydHBVMmx0YVd4aGNtbDBlU2g0TENCNUtTazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCdFkwTnZibTVoZFdkb1pYbFRhVzFwYkdGeWFYUjVLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUdOdmJuTjBJSFJ2ZEdGc0lEMGdlQzUwY25WbFEyOTFiblFvS1NBcklIa3VkSEoxWlVOdmRXNTBLQ2s3WEc0Z0lHTnZibk4wSUhSdmRHRnNVSEp2WkNBOUlIZ3VkSEoxWlVOdmRXNTBLQ2tnS2lCNUxuUnlkV1ZEYjNWdWRDZ3BPMXh1SUNCcFppQW9kRzkwWVd4UWNtOWtJRDA5SURBcFhHNGdJQ0FnY21WMGRYSnVJREF1TUR0Y2JpQWdZMjl1YzNRZ1kyOXRiVzl1SUQwZ2VDNWhibVJYYVhSb1EyOTFiblJDYVhSektIa3NJSFJ5ZFdVcE8xeHVJQ0J5WlhSMWNtNGdLR052YlcxdmJpQXFJSFJ2ZEdGc0lDMGdkRzkwWVd4UWNtOWtLU0F2SUhSdmRHRnNVSEp2WkR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRzFqUTI5dWJtRjFaMmhsZVVScGMzUmhibU5sS0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCblpYUkVhWE4wWVc1alpVWnliMjFUYVcxcGJHRnlhWFI1S0cxalEyOXVibUYxWjJobGVWTnBiV2xzWVhKcGRIa29lQ3dnZVNrcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWVhONWJXMWxkSEpwWTFOcGJXbHNZWEpwZEhrb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdZMjl1YzNRZ2JXbHVJRDBnVFdGMGFDNXRhVzRvZUM1MGNuVmxRMjkxYm5Rb0tTd2dlUzUwY25WbFEyOTFiblFvS1NrN1hHNGdJR2xtSUNodGFXNGdQVDBnTUNsY2JpQWdJQ0J5WlhSMWNtNGdNQzR3TzF4dUlDQmpiMjV6ZENCamIyMXRiMjRnUFNCNExtRnVaRmRwZEdoRGIzVnVkRUpwZEhNb2VTd2dkSEoxWlNrN1hHNGdJSEpsZEhWeWJpQmpiMjF0YjI0Z0x5QnRhVzQ3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmhjM2x0YldWMGNtbGpSR2x6ZEdGdVkyVW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJR2RsZEVScGMzUmhibU5sUm5KdmJWTnBiV2xzWVhKcGRIa29ZWE41YlcxbGRISnBZMU5wYldsc1lYSnBkSGtvZUN3Z2VTa3BPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1luSmhkVzVDYkdGdWNYVmxkRk5wYldsc1lYSnBkSGtvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ1kyOXVjM1FnYldGNElEMGdUV0YwYUM1dFlYZ29lQzUwY25WbFEyOTFiblFvS1N3Z2VTNTBjblZsUTI5MWJuUW9LU2s3WEc0Z0lHbG1JQ2h0WVhnZ1BUMGdNQ2xjYmlBZ0lDQnlaWFIxY200Z01DNHdPMXh1SUNCamIyNXpkQ0JqYjIxdGIyNGdQU0I0TG1GdVpGZHBkR2hEYjNWdWRFSnBkSE1vZVN3Z2RISjFaU2s3WEc0Z0lISmxkSFZ5YmlCamIyMXRiMjRnTHlCdFlYZzdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCaWNtRjFia0pzWVc1eGRXVjBSR2x6ZEdGdVkyVW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJR2RsZEVScGMzUmhibU5sUm5KdmJWTnBiV2xzWVhKcGRIa29ZbkpoZFc1Q2JHRnVjWFZsZEZOcGJXbHNZWEpwZEhrb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjblZ6YzJWc1UybHRhV3hoY21sMGVTaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcE9pQnVkVzFpWlhJZ2UxeHVJQ0JwWmlBb2VDNXNaVzVuZEdnZ1BUMGdNQ2xjYmlBZ0lDQnlaWFIxY200Z01DNHdPMXh1SUNCamIyNXpkQ0JqYjIxdGIyNGdQU0I0TG1GdVpGZHBkR2hEYjNWdWRFSnBkSE1vZVN3Z2RISjFaU2s3WEc0Z0lISmxkSFZ5YmlCamIyMXRiMjRnTHlCNExteGxibWQwYUR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEoxYzNObGJFUnBjM1JoYm1ObEtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJSEpsZEhWeWJpQm5aWFJFYVhOMFlXNWpaVVp5YjIxVGFXMXBiR0Z5YVhSNUtISjFjM05sYkZOcGJXbHNZWEpwZEhrb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjbTluYjNSSGIyeGtZbVZ5WjFOcGJXbHNZWEpwZEhrb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdZMjl1YzNRZ1kyOXRiVzl1SUQwZ2VDNWhibVJYYVhSb1EyOTFiblJDYVhSektIa3NJSFJ5ZFdVcE8xeHVJQ0JqYjI1emRDQjBiM1JoYkNBOUlIZ3VZMjkxYm5SQ2FYUnpLSFJ5ZFdVcElDc2dlUzVqYjNWdWRFSnBkSE1vZEhKMVpTazdYRzRnSUdOdmJuTjBJR3hsYmlBOUlIZ3ViR1Z1WjNSb08xeHVJQ0JqYjI1emRDQmthV1ptSUQwZ2JHVnVJQzBnZEc5MFlXd2dLeUJqYjIxdGIyNDdYRzRnSUdsbUlDZ29ZMjl0Ylc5dUlEMDlJR3hsYmlrZ2ZId2dLR1JwWm1ZZ1BUMGdiR1Z1S1NrZ2NtVjBkWEp1SURFdU1EdGNiaUFnWld4elpTQnlaWFIxY200Z1kyOXRiVzl1SUM4Z2RHOTBZV3dnS3lCa2FXWm1JQzhnS0RJZ0tpQnNaVzRnTFNCMGIzUmhiQ2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnliMmR2ZEVkdmJHUmlaWEpuUkdsemRHRnVZMlVvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ2NtVjBkWEp1SUdkbGRFUnBjM1JoYm1ObFJuSnZiVk5wYldsc1lYSnBkSGtvY205bmIzUkhiMnhrWW1WeVoxTnBiV2xzWVhKcGRIa29lQ3dnZVNrcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWjJWMFUybHRhV3hoY21sMGVVWnliMjFFYVhOMFlXNWpaU2hrYVhOMFlXNWpaVG9nYm5WdFltVnlLU0I3WEc0Z0lISmxkSFZ5YmlBeElDOGdLQ0F4SUNzZ1pHbHpkR0Z1WTJVcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWjJWMFJHbHpkR0Z1WTJWR2NtOXRVMmx0YVd4aGNtbDBlU2h6YVcxcGJHRnlhWFI1T2lCdWRXMWlaWElwSUh0Y2JpQWdjbVYwZFhKdUlERWdMeUJ6YVcxcGJHRnlhWFI1SUMwZ01UdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRFUnBkbVZ5YzJWVGRXSnpaWFFvYkdWdVozUm9PaUJ1ZFcxaVpYSXNJRzQ2SUc1MWJXSmxjaXdnWkdsemREb2dLR2t4T2lCdWRXMWlaWElzSUdreU9pQnVkVzFpWlhJcElEMCtJRzUxYldKbGNpa2dlMXh1SUNCbWRXNWpkR2x2YmlCdFlYaENlU2gyWVd4MVpYTTZJRWwwWlhKaFlteGxTWFJsY21GMGIzSThiblZ0WW1WeVBpd2diM0prWlhKQ2VUb2dLR2s2SUc1MWJXSmxjaWtnUFQ0Z2JuVnRZbVZ5S1NCN1hHNGdJQ0FnYkdWMElHMWhlRlpoYkhWbElEMGdiblZzYkR0Y2JpQWdJQ0JzWlhRZ2JXRjRUM0prWlhKQ2VTQTlJRzUxYkd3N1hHNWNiaUFnSUNCbWIzSWdLR052Ym5OMElHVnNaVzFsYm5RZ2IyWWdkbUZzZFdWektTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCbGJHVnRaVzUwVDNKa1pYSkNlU0E5SUc5eVpHVnlRbmtvWld4bGJXVnVkQ2s3WEc0Z0lDQWdJQ0JwWmlBb2JXRjRUM0prWlhKQ2VTQTlQU0J1ZFd4c0lIeDhJR1ZzWlcxbGJuUlBjbVJsY2tKNUlENGdiV0Y0VDNKa1pYSkNlU2tnZTF4dUlDQWdJQ0FnSUNCdFlYaFdZV3gxWlNBOUlHVnNaVzFsYm5RN1hHNGdJQ0FnSUNBZ0lHMWhlRTl5WkdWeVFua2dQU0JsYkdWdFpXNTBUM0prWlhKQ2VUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJRzFoZUZaaGJIVmxPMXh1SUNCOVhHNWNiaUFnWTI5dWMzUWdjM1ZpYzJWMElEMGdXM0poYm1SdmJVbHVkQ2hzWlc1bmRHZ2dMU0F4S1YwN1hHNGdJR052Ym5OMElHTnZiWEJzWlcxbGJuUWdQU0J1WlhjZ1UyVjBLQ2s3WEc1Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JzWlc1bmRHZzdJQ3NyYVNrZ2UxeHVJQ0FnSUdsbUlDZ2hjM1ZpYzJWMExtbHVZMngxWkdWektHa3BLVnh1SUNBZ0lDQWdZMjl0Y0d4bGJXVnVkQzVoWkdRb2FTazdYRzRnSUgxY2JseHVJQ0IzYUdsc1pTQW9jM1ZpYzJWMExteGxibWQwYUNBOElHNHBJSHRjYmlBZ0lDQmpiMjV6ZENCcFpIZ2dQU0J0WVhoQ2VTaGNiaUFnSUNBZ0lHTnZiWEJzWlcxbGJuUXVkbUZzZFdWektDa2dZWE1nU1hSbGNtRmliR1ZKZEdWeVlYUnZjanh1ZFcxaVpYSStMRnh1SUNBZ0lDQWdLR2twSUQwK0lFMWhkR2d1YldsdUxtRndjR3g1S0UxaGRHZ3NJSE4xWW5ObGRDNXRZWEFvWm5WdVkzUnBiMjRvZG1Gc0xDQnBibVJsZUNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1pHbHpkQ2hwTENCMllXd3BPMXh1SUNBZ0lDQWdmU2twS1R0Y2JpQWdJQ0JwWmlBb2FXUjRJQ0U5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJSE4xWW5ObGRDNXdkWE5vS0dsa2VDazdYRzRnSUNBZ0lDQmpiMjF3YkdWdFpXNTBMbVJsYkdWMFpTaHBaSGdwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdjM1ZpYzJWME8xeHVmVnh1SWwxOSIsIi8qKlxuICogRGVub3RlcyBhIHZlY3RvciBvZiBmbG9hdGluZyBwb2l0IHZhbHVlcy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgVmVjdG9yXG4gKiBAZXh0ZW5kcyB7RmxvYXQzMkFycmF5fVxuICovXG5leHBvcnQgY2xhc3MgVmVjdG9yIGV4dGVuZHMgRmxvYXQzMkFycmF5IHtcbn1cbi8qKlxuICogRGVub3RlcyBhIHR3by1kaW1lbnNpb25hbCBtYXRyaXguXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIE1hdHJpeFxuICogQGV4dGVuZHMge0FycmF5PFZlY3Rvcj59XG4gKi9cbmV4cG9ydCBjbGFzcyBNYXRyaXggZXh0ZW5kcyBBcnJheSB7XG59XG4vKipcbiAqIERlbm90ZXMgY2FydGVzaWFuIGNvb3JkaW5hdGVzLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBDb29yZGluYXRlc1xuICogQGV4dGVuZHMge01hdHJpeH1cbiAqL1xuZXhwb3J0IGNsYXNzIENvb3JkaW5hdGVzIGV4dGVuZHMgTWF0cml4IHtcbn1cbi8qKlxuICogRGVub3RlcyBhbiBhcnJheSBvZiBhcmJpdHJhcnktdHlwZWQgdmVjdG9ycy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgVmVjdG9yc1xuICogQGV4dGVuZHMge0FycmF5PGFueT59XG4gKi9cbmV4cG9ydCBjbGFzcyBWZWN0b3JzIGV4dGVuZHMgQXJyYXkge1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZEhsd1pTMWtaV05zWVhKaGRHbHZibk11YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SjBlWEJsTFdSbFkyeGhjbUYwYVc5dWN5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVRzN096czdPMGRCVFVjN1FVRkRTQ3hOUVVGTkxFOUJRVThzVFVGQlR5eFRRVUZSTEZsQlFWazdRMEZCUnp0QlFVVXpRenM3T3pzN08wZEJUVWM3UVVGRFNDeE5RVUZOTEU5QlFVOHNUVUZCVHl4VFFVRlJMRXRCUVdFN1EwRkJSenRCUVVVMVF6czdPenM3TzBkQlRVYzdRVUZEU0N4TlFVRk5MRTlCUVU4c1YwRkJXU3hUUVVGUkxFMUJRVTA3UTBGQlJ6dEJRVVV4UXpzN096czdPMGRCVFVjN1FVRkRTQ3hOUVVGTkxFOUJRVThzVDBGQlVTeFRRVUZSTEV0QlFWVTdRMEZCUnlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLbHh1SUNvZ1JHVnViM1JsY3lCaElIWmxZM1J2Y2lCdlppQm1iRzloZEdsdVp5QndiMmwwSUhaaGJIVmxjeTVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQVkyeGhjM01nVm1WamRHOXlYRzRnS2lCQVpYaDBaVzVrY3lCN1JteHZZWFF6TWtGeWNtRjVmVnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVm1WamRHOXlJR1Y0ZEdWdVpITWdSbXh2WVhRek1rRnljbUY1SUh0OVhHNWNiaThxS2x4dUlDb2dSR1Z1YjNSbGN5QmhJSFIzYnkxa2FXMWxibk5wYjI1aGJDQnRZWFJ5YVhndVhHNGdLbHh1SUNvZ1FHVjRjRzl5ZEZ4dUlDb2dRR05zWVhOeklFMWhkSEpwZUZ4dUlDb2dRR1Y0ZEdWdVpITWdlMEZ5Y21GNVBGWmxZM1J2Y2o1OVhHNGdLaTljYm1WNGNHOXlkQ0JqYkdGemN5Qk5ZWFJ5YVhnZ1pYaDBaVzVrY3lCQmNuSmhlVHhXWldOMGIzSStJSHQ5WEc1Y2JpOHFLbHh1SUNvZ1JHVnViM1JsY3lCallYSjBaWE5wWVc0Z1kyOXZjbVJwYm1GMFpYTXVYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUdOc1lYTnpJRU52YjNKa2FXNWhkR1Z6WEc0Z0tpQkFaWGgwWlc1a2N5QjdUV0YwY21sNGZWeHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdRMjl2Y21ScGJtRjBaWE1nWlhoMFpXNWtjeUJOWVhSeWFYZ2dlMzFjYmx4dUx5b3FYRzRnS2lCRVpXNXZkR1Z6SUdGdUlHRnljbUY1SUc5bUlHRnlZbWwwY21GeWVTMTBlWEJsWkNCMlpXTjBiM0p6TGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQmpiR0Z6Y3lCV1pXTjBiM0p6WEc0Z0tpQkFaWGgwWlc1a2N5QjdRWEp5WVhrOFlXNTVQbjFjYmlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUZabFkzUnZjbk1nWlhoMFpXNWtjeUJCY25KaGVUeGhibmsrSUh0OVhHNWNiaThxS2x4dUlDb2dSR1Z1YjNSbGN5QmhJR1JwWTNScGIyNWhjbmtnWTI5dWRHRnBibWx1WnlCbWRXNWpkR2x2YmlCdmNIUnBiMjV6TGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQjBlWEJsSUU5d2RHbHZibk5jYmlBcUwxeHVaWGh3YjNKMElIUjVjR1VnVDNCMGFXOXVjeUE5SUh0YmJtRnRaVG9nYzNSeWFXNW5YVG9nWVc1NWZUdGNibHh1THlvcVhHNGdLaUJFWlc1dmRHVnpJR04xYzNSdmJTQmthWE4wWVc1alpTQnRaWFJ5YVdNZ1ltVjBkMlZsYmlCMGFHVWdkSGR2SUdkcGRtVnVJSFpsWTNSdmNuTXVYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUhSNWNHVWdSR2x6ZEdGdVkyVk5aWFJ5YVdOY2JpQXFJRUJ3WVhKaGJTQjdZVzU1ZlNCMk1TQlVhR1VnWm1seWMzUWdkbVZqZEc5eUxseHVJQ29nUUhCaGNtRnRJSHRoYm5sOUlIWXlJRlJvWlNCelpXTnZibVFnZG1WamRHOXlMbHh1SUNvZ1FISmxkSFZ5YmlCN2JuVnRZbVZ5ZlNCRWFYTjBZVzVqWlNCaVpYUjNaV1Z1SUhSb1pYTmxJSFIzYnlCMlpXTjBiM0p6TGx4dUlDb3ZYRzVsZUhCdmNuUWdkSGx3WlNCRWFYTjBZVzVqWlUxbGRISnBZeUE5SUNoMk1Ub2dZVzU1TENCMk1qb2dZVzU1S1NBOVBpQW9iblZ0WW1WeUtUdGNibHh1THlvcVhHNGdLaUJFWlc1dmRHVnpJR0VnYzJsdGNHeGxJSE4wY21sdVp5QjBieUJ6ZEhKcGJtY2daR2xqZEdsdmJtRnllUzVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQWRIbHdaU0JUZEhKcGJtZEVhV04wYVc5dVlYSjVYRzRnS2k5Y2JtVjRjRzl5ZENCMGVYQmxJRk4wY21sdVowUnBZM1JwYjI1aGNua2dQU0I3VzJ0bGVUb2djM1J5YVc1blhUb2djM1J5YVc1bmZUdGNiaUpkZlE9PSIsImltcG9ydCB7IFZlY3RvciB9IGZyb20gJy4vdHlwZS1kZWNsYXJhdGlvbnMnO1xuaW1wb3J0IHsgcmFuZG9tRmxvYXQsIHJhbmRvbUludCB9IGZyb20gJy4vcmFuZG9tJztcbi8qKlxuICogQXNzZXJ0cyBhIGNvbmRpdGlvbiBieSB0aHJvd2luZyBhbiBFcnJvci5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtjb25kaXRpb249ZmFsc2VdIENvbmRpdGlvbiB0byBhc3NlcnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2U9J0Fzc2VydGlvbiBlcnJvci4nXSBNZXNzYWdlIHRvIG91dHB1dC5cbiAqIEB0aHJvd3Mge0Vycm9yfVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0KGNvbmRpdGlvbiA9IGZhbHNlLCBtZXNzYWdlID0gJ0Fzc2VydGlvbiBlcnJvci4nKSB7XG4gICAgaWYgKCFjb25kaXRpb24pXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbn1cbi8qKlxuICogQ3JlYXRlcyBuZXcgdHdvLWRpbWVuc2lvbmFsIGFycmF5IGFuZCBmaWxscyBpdCB3aXRoIHRoZSB2YWx1ZSBnaXZlbi5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gZGltZW5zaW9uMSBUaGUgZmlyc3QgZGltZW5zaW9uIG9mIHRoZSBjb29yZGluYXRlcyAobnVtYmVyIG9mIHJvd3MpLlxuICogQHBhcmFtIHtudW1iZXJ9IGRpbWVuc2lvbjIgVGhlIHNlY29uZCBkaW1lbnNpb24gb2YgdGhlIGNvb3JkaW5hdGVzIChudW1iZXIgb2YgY29sdW1ucykuXG4gKiBAcGFyYW0ge251bWJlcn0gW2ZpbGw9MF0gQSB2YWx1ZSB0byBmaWxsIHRoZSBjb29yZGluYXRlcyB3aXRoLlxuICogQHJldHVybiB7Q29vcmRpbmF0ZXN9IEEgdHdvLWRpbWVuc2lvbmFsIGZpbGxlZCB3aXRoIHRoZSB2YWx1ZSBnaXZlbi5cbiAqIEB0b2RvIE1pZ2h0IGJlIHNsb3cgc2luY2UgdXNlZCBBcnJheS5tYXAuIFByb2JhYmx5IG5lZWRzIHBlcmZvcm1hbmNlIHJldmlzaW9uLlxuICovXG5mdW5jdGlvbiBpbml0Q29vcmRpbmF0ZXMoZGltZW5zaW9uMSwgZGltZW5zaW9uMiwgZmlsbCA9IDApIHtcbiAgICByZXR1cm4gbmV3IEFycmF5KGRpbWVuc2lvbjEpLmZpbGwoZmlsbCkubWFwKCgpID0+IChuZXcgVmVjdG9yKGRpbWVuc2lvbjIpLmZpbGwoZmlsbCkpKTtcbn1cbi8qKlxuICogVHJhbnNwb3NlIG1hdHJpeC5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge01hdHJpeH0gbWF0cml4IFRoZSBtYXRyaXggdG8gYmUgdHJhbnNwb3NlZC5cbiAqIEByZXR1cm4ge01hdHJpeH0gVHJhbnNwb3NlZCBtYXRyaXguXG4gKiBAdG9kbyBNaWdodCBiZSBzbG93IHNpbmNlIHVzZWQgQXJyYXkubWFwLiBQcm9iYWJseSBuZWVkcyBwZXJmb3JtYW5jZSByZXZpc2lvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zcG9zZU1hdHJpeChtYXRyaXgpIHtcbiAgICByZXR1cm4gbmV3IEFycmF5KG1hdHJpeFswXS5sZW5ndGgpLmZpbGwoMClcbiAgICAgICAgLm1hcCgoXywgaSkgPT4gKG5ldyBWZWN0b3IobWF0cml4Lmxlbmd0aCkuZmlsbCgwKS5tYXAoKF8sIGopID0+IChtYXRyaXhbal1baV0pKSkpO1xufVxuLyoqXG4gKiBBZGRzIHR3byB2ZWN0b3JzIHdpdGggdGhlIHNlY29uZCBvbmUgdG8gYmUgbXVsdGlwbGllZCBieSB0aGUgZ2l2ZW4gcmF0aW8uXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtWZWN0b3J9IHAgVGhlIGZpcnN0IHZlY3RvciB0byBhZGQuXG4gKiBAcGFyYW0ge1ZlY3Rvcn0gcSBUaGUgc2Vjb25kIHZlY3RvciB0byBhZGQuXG4gKiBAcGFyYW0ge251bWJlcn0gW211bHRpcGxpZXI9MV0gQSBtdWx0aXBsaWVyIHRvIGJlIHVzZWQgYmVmb3JlIHRoZSBzZWNvbmQgdmVjdG9yIGlzIGFkZGVkLlxuICogQHJldHVybiB7VmVjdG9yfSBOZXcgdmVjdG9yIGNvbnRhaW5lZCB0aGUgcmVzdWx0IG9mIG9wZXJhdGlvbiBwK211bHRpcGxpZXIqcS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlY3RvckFkZChwLCBxLCBtdWx0aXBsaWVyID0gMSkge1xuICAgIGNvbnN0IG5JdGVtcyA9IHAubGVuZ3RoO1xuICAgIGFzc2VydChuSXRlbXMgPT0gcS5sZW5ndGgsICdWZWN0b3IgbGVuZ3RocyBkbyBub3QgbWF0Y2guJyk7XG4gICAgY29uc3QgdG90YWwgPSBuZXcgVmVjdG9yKG5JdGVtcyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwLmxlbmd0aDsgKytpKVxuICAgICAgICB0b3RhbFtpXSA9IHBbaV0gKyBtdWx0aXBsaWVyICogcVtpXTtcbiAgICByZXR1cm4gdG90YWw7XG59XG4vKipcbiAqIFN1bXMgdGhlIHZlY3RvcidzIGl0ZW1zLlxuICpcbiAqIEBwYXJhbSB7VmVjdG9yfSB2IFRoZSB2ZWN0b3IgdG8gYmUgc3VtbWVkLlxuICogQHJldHVybiB7bnVtYmVyfSBUaGUgdmVjdG9yJ3MgaXRlbXMgc3VtLlxuICovXG5mdW5jdGlvbiBpdGVtc1N1bSh2KSB7XG4gICAgbGV0IHRvdGFsID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHYubGVuZ3RoOyArK2kpXG4gICAgICAgIHRvdGFsICs9IHZbaV07XG4gICAgcmV0dXJuIHRvdGFsO1xufVxuLyoqXG4gKiBTdXFhcmVzIHRoZSB2ZWN0b3IncyBpdGVtcy5cbiAqXG4gKiBAcGFyYW0ge1ZlY3Rvcn0gdiBUaGUgdmVjdG9yIHRvIHNxdWFyZS5cbiAqIEByZXR1cm4ge1ZlY3Rvcn0gQSBuZXcgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG9yaWdpbmFsJ3MgaXRlbXMgc3F1YXJlZC5cbiAqL1xuZnVuY3Rpb24gdmVjdG9yU3F1YXJlKHYpIHtcbiAgICBjb25zdCBuSXRlbXMgPSB2Lmxlbmd0aDtcbiAgICBjb25zdCB0b3RhbCA9IG5ldyBWZWN0b3Iobkl0ZW1zKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHYubGVuZ3RoOyArK2kpXG4gICAgICAgIHRvdGFsW2ldID0gdltpXSAqIHZbaV07XG4gICAgcmV0dXJuIHRvdGFsO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHZlY3Rvckxlbmd0aCh2KSB7XG4gICAgbGV0IHNxclN1bSA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKVxuICAgICAgICBzcXJTdW0gKz0gdltpXSAqIHZbaV07XG4gICAgcmV0dXJuIE1hdGguc3FydChzcXJTdW0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHZlY3RvckRvdFByb2R1Y3QodjEsIHYyKSB7XG4gICAgaWYgKHYxLmxlbmd0aCAhPSB2Mi5sZW5ndGgpXG4gICAgICAgIHRocm93IEVycm9yKCdUaGUgZGltZW5zaW9uYWxpdHkgb2YgdGhlIHZlY3RvcnMgbXVzdCBtYXRjaCcpO1xuICAgIGxldCBwcm9kID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHYxLmxlbmd0aDsgaSsrKVxuICAgICAgICBwcm9kICs9IHYxW2ldICogdjJbaV07XG4gICAgcmV0dXJuIHByb2Q7XG59XG4vKipcbiAqIENyZWF0ZXMgYSBtYXRyaXggZmlsbGVkIHdpdGggcmFuZG9tIGZsb2F0aW5nIHBvaW50IHZhbHVlcy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge251bWJlcn0gZGltZW5zaW9uMSBUaGUgZmlyc3QgZGltZW5zaW9uIG9mIHRoZSBtYXRyaXguXG4gKiBAcGFyYW0ge251bWJlcn0gZGltZW5zaW9uMiBUaGUgc2Vjb25kIGRpbWVuc2lvbiBvZiB0aGUgbWF0cml4LlxuICogQHBhcmFtIHtudW1iZXJ9IFtzY2FsZT0xLl0gTWF4IHZhbHVlIGdpdmVuIGJ5IHJhbmRvbSBnZW5lcmF0b3IuXG4gKiBAcmV0dXJuIHtNYXRyaXh9IEEgbmV3IG1hdHJpeCBmaWxsZWQgd2l0aCByYW5kb20gZmxvYXRpbmcgcG9pbnQgIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbGxSYW5kb21NYXRyaXgoZGltZW5zaW9uMSwgZGltZW5zaW9uMiwgc2NhbGUgPSAxLikge1xuICAgIGNvbnN0IG1hdHJpeCA9IGluaXRDb29yZGluYXRlcyhkaW1lbnNpb24xLCBkaW1lbnNpb24yKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRpbWVuc2lvbjE7ICsraSkge1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGRpbWVuc2lvbjI7ICsrailcbiAgICAgICAgICAgIG1hdHJpeFtpXVtqXSA9IHJhbmRvbUZsb2F0KHNjYWxlKTtcbiAgICB9XG4gICAgcmV0dXJuIG1hdHJpeDtcbn1cbi8qKlxuICogQ2FsY3VsYXRlcyBFdWNsaWRlYW4gZGlzdGFuY2UgYmV0d2VlbiB0d28gdmVjdG9ycy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge1ZlY3Rvcn0gcCBUaGUgZmlyc3QgdmVjdG9yLlxuICogQHBhcmFtIHtWZWN0b3J9IHEgVGhlIHNlY29uZCB2ZWN0b3IuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IEV1Y2xpZGVhbiBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBnaXZlbiB2ZWN0b3JzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlRXVjbGlkZWFuRGlzdGFuY2UocCwgcSkge1xuICAgIGNvbnN0IGRpZmYgPSB2ZWN0b3JBZGQocCwgcSwgLTEpO1xuICAgIGNvbnN0IHNxZGlmZiA9IHZlY3RvclNxdWFyZShkaWZmKTtcbiAgICBjb25zdCBzcWRpZmZTdW1tID0gaXRlbXNTdW0oc3FkaWZmKTtcbiAgICByZXR1cm4gTWF0aC5zcXJ0KHNxZGlmZlN1bW0pO1xufVxuLyoqXG4gKiBDcmVhdGVzIGEgZGlzdGFuY2UgbWF0cml4IHVzaW5nIGEgY3VzdG9tIGRpc3RhbmNlIGZ1bmN0aW9uLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7VmVjdG9yc30gZGF0YSBJbnB1dCB2ZWN0b3JzIHRvIGNhbGN1bGF0ZSBkaXN0YW5jZXMuXG4gKiBAcGFyYW0ge0Rpc3RhbmNlTWV0cmljfSBkaXN0YW5jZSBDdXN0b20gZGlzdGFuY2UgZnVuY3Rpb24uXG4gKiBAcmV0dXJuIHtNYXRyaXh9IENhbGN1bGF0ZWQgY3VzdG9tIGRpc3RhbmNlIG1hdHJpeC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGNEaXN0YW5jZU1hdHJpeChkYXRhLCBkaXN0YW5jZSkge1xuICAgIGNvbnN0IG5JdGVtcyA9IGRhdGEubGVuZ3RoO1xuICAgIGNvbnN0IG1hdHJpeCA9IGluaXRDb29yZGluYXRlcyhuSXRlbXMsIG5JdGVtcywgMCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuSXRlbXM7ICsraSkge1xuICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCBuSXRlbXM7ICsraikge1xuICAgICAgICAgICAgY29uc3QgZCA9IChkYXRhW2ldID09IG51bGwpIHx8IChkYXRhW2pdID09IG51bGwpID8gMCA6IGRpc3RhbmNlKGRhdGFbaV0sIGRhdGFbal0pO1xuICAgICAgICAgICAgbWF0cml4W2ldW2pdID0gbWF0cml4W2pdW2ldID0gZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWF0cml4O1xufVxuLyoqIEdlbmVyYXRlcyBhcnJheSBmcm9tIGEgcmFuZ2UgW2JlZ2luOyBlbmRdIG9yIFtiZWdpbjsgZW5kKSBpZiBlbmRFeGNsdXNpdmUuICoqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlblJhbmdlKGJlZ2luLCBlbmQsIGVuZEV4Y2x1c2l2ZSA9IGZhbHNlKSB7XG4gICAgY29uc3Qgbkl0ZW1zID0gZW5kIC0gYmVnaW4gKyAoZW5kRXhjbHVzaXZlID8gMCA6IDEpO1xuICAgIGNvbnN0IHNlcmllcyA9IG5ldyBJbnQzMkFycmF5KG5JdGVtcyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuSXRlbXM7ICsraSlcbiAgICAgICAgc2VyaWVzW2ldID0gYmVnaW4gKyBpO1xuICAgIHJldHVybiBzZXJpZXM7XG59XG4vKipcbiAqIFJldHVybnMgb3JkZXIgb2YgdmFsdWVzIGFzIGlmIHRoZXkgYXJlIHNvcnRlZC5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge2FueVtdfSB2YWx1ZXMgSW5wdXQgYXJyYXkuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtyZXZlcnNlPWZhbHNlXSBXaGV0aGVyIHRvIHJldHVybiByZXZlcnNlZCBvcmRlci5cbiAqIEByZXR1cm4ge251bWJlcltdfSBUaGUgb3JkZXIgY29tcHV0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcmdTb3J0KHZhbHVlcywgcmV2ZXJzZSA9IGZhbHNlKSB7XG4gICAgY29uc3Qgc29ydGZuID0gcmV2ZXJzZSA/IChhLCBiKSA9PiAoYlswXSAtIGFbMF0pIDogKGEsIGIpID0+IChhWzBdIC0gYlswXSk7XG4gICAgY29uc3QgZGVjb3IgPSAodiwgaSkgPT4gW3YsIGldOyAvLyBzZXQgaW5kZXggdG8gdmFsdWVcbiAgICBjb25zdCB1bmRlY29yID0gKGEpID0+IGFbMV07IC8vIGxlYXZlIG9ubHkgaW5kZXhcbiAgICBjb25zdCBfYXJnc29ydCA9IChhcnIpID0+IGFyci5tYXAoZGVjb3IpLnNvcnQoc29ydGZuKS5tYXAodW5kZWNvcik7XG4gICAgcmV0dXJuIF9hcmdzb3J0KHZhbHVlcyk7XG59XG4vKipcbiAqIFJldHVybnMgdGhlIGluZGV4ZXMgb2YgdGhlIG1vc3QgZGl2ZXJzZSBvYmplY3RzIGFjY29yZGluZyB0byB0aGUgZGlzdCBmdW5jdGlvblxuICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aCB0b3RhbCBudW1iZXIgb2Ygb2JqZWN0c1xuICogQHBhcmFtIHtudW1iZXJ9IG4gbnVtYmVyIG9mIGRpdmVyc2UgZWxlbWVudHMgdG8gZmluZFxuICogQHBhcmFtIHsoaTE6IG51bWJlciwgaTI6IG51bWJlcikgPT4gbnVtYmVyfSBkaXN0IGEgZnVuY3Rpb24gd2hpY2ggY2FsY3VsYXRlcyBkaXN0YW5jZSBiZXR3ZWVuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHdvIG9iamVjdHMgdXNpbmcgdGhlaXIgaW5kZXhlc1xuICogQHJldHVybnMge251bWJlcltdfSBUaGUgaW5kZXhlcyBvZiB0aGUgbW9zdCBkaXZlcnNlIG9iamVjdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERpdmVyc2VTdWJzZXQobGVuZ3RoLCBuLCBkaXN0KSB7XG4gICAgZnVuY3Rpb24gbWF4QnkodmFsdWVzLCBvcmRlckJ5KSB7XG4gICAgICAgIGxldCBtYXhWYWx1ZSA9IG51bGw7XG4gICAgICAgIGxldCBtYXhPcmRlckJ5ID0gbnVsbDtcbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHZhbHVlcykge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudE9yZGVyQnkgPSBvcmRlckJ5KGVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKG1heE9yZGVyQnkgPT0gbnVsbCB8fCBlbGVtZW50T3JkZXJCeSA+IG1heE9yZGVyQnkpIHtcbiAgICAgICAgICAgICAgICBtYXhWYWx1ZSA9IGVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgbWF4T3JkZXJCeSA9IGVsZW1lbnRPcmRlckJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXhWYWx1ZTtcbiAgICB9XG4gICAgY29uc3Qgc3Vic2V0ID0gW3JhbmRvbUludChsZW5ndGggLSAxKV07XG4gICAgY29uc3QgY29tcGxlbWVudCA9IG5ldyBTZXQoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7XG4gICAgICAgIGlmICghc3Vic2V0LmluY2x1ZGVzKGkpKVxuICAgICAgICAgICAgY29tcGxlbWVudC5hZGQoaSk7XG4gICAgfVxuICAgIHdoaWxlIChzdWJzZXQubGVuZ3RoIDwgbikge1xuICAgICAgICBjb25zdCBpZHggPSBtYXhCeShjb21wbGVtZW50LnZhbHVlcygpLCAoaSkgPT4gTWF0aC5taW4uYXBwbHkoTWF0aCwgc3Vic2V0Lm1hcChmdW5jdGlvbiAodmFsLCBpbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuIGRpc3QoaSwgdmFsKTtcbiAgICAgICAgfSkpKTtcbiAgICAgICAgaWYgKGlkeCkge1xuICAgICAgICAgICAgc3Vic2V0LnB1c2goaWR4KTtcbiAgICAgICAgICAgIGNvbXBsZW1lbnQuZGVsZXRlKGlkeCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN1YnNldDtcbn1cbi8qKlxuICogUmV0dXJucyBub3JtYWxpemVkIHZlY3RvclxuICogQHBhcmFtIHtWZWN0b3J9IGRhdGEgbnVtZXJpY2FsIGFycmF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemUoZGF0YSkge1xuICAgIGxldCBtZWFuID0gMDtcbiAgICBsZXQgc3RkID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyArK2kpXG4gICAgICAgIG1lYW4gKz0gZGF0YVtpXTtcbiAgICBtZWFuIC89IGRhdGEubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsraSlcbiAgICAgICAgc3RkICs9IChkYXRhW2ldIC0gbWVhbikgKiAoZGF0YVtpXSAtIG1lYW4pO1xuICAgIHN0ZCA9IE1hdGguc3FydChzdGQgLyBkYXRhLmxlbmd0aCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgKytpKVxuICAgICAgICBkYXRhW2ldID0gKGRhdGFbaV0gLSBtZWFuKSAvIHN0ZDtcbiAgICByZXR1cm4gZGF0YTtcbn1cbi8qKlxuICogRmluZHMgc2V0IGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gbGlzdHMuXG4gKiBAcGFyYW0ge2FueVtdfSBhIFRoZSBmaXJzdCBsaXN0LlxuICogQHBhcmFtIHthbnlbXX0gYiBUaGUgc2Vjb25kIGxpc3QuXG4gKiBAcmV0dXJuIHthbnlbXX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldERpZmZlcmVuY2UoYSwgYikge1xuICAgIGNvbnN0IGJTZXQgPSBuZXcgU2V0KGIpO1xuICAgIHJldHVybiBBcnJheS5mcm9tKG5ldyBTZXQoYS5maWx0ZXIoKHgpID0+ICFiU2V0Lmhhcyh4KSkpLnZhbHVlcygpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRtVmpkRzl5TFc5d1pYSmhkR2x2Ym5NdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUoyWldOMGIzSXRiM0JsY21GMGFXOXVjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeFBRVUZQTEVWQlFWTXNUVUZCVFN4RlFVRjFReXhOUVVGTkxIRkNRVUZ4UWl4RFFVRkRPMEZCUTNwR0xFOUJRVThzUlVGQlF5eFhRVUZYTEVWQlFVVXNVMEZCVXl4RlFVRkRMRTFCUVUwc1ZVRkJWU3hEUVVGRE8wRkJSV2hFT3pzN096czdPMGRCVDBjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzVFVGQlRTeERRVUZETEZsQlFYRkNMRXRCUVVzc1JVRkJSU3hWUVVGclFpeHJRa0ZCYTBJN1NVRkRja1lzU1VGQlNTeERRVUZETEZOQlFWTTdVVUZEV2l4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBGQlF6ZENMRU5CUVVNN1FVRkZSRHM3T3pzN096czdSMEZSUnp0QlFVTklMRk5CUVZNc1pVRkJaU3hEUVVGRExGVkJRV3RDTEVWQlFVVXNWVUZCYTBJc1JVRkJSU3hQUVVGbExFTkJRVU03U1VGREwwVXNUMEZCVHl4SlFVRkpMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVONlJpeERRVUZETzBGQlJVUTdPenM3T3pzN1IwRlBSenRCUVVOSUxFMUJRVTBzVlVGQlZTeGxRVUZsTEVOQlFVTXNUVUZCWXp0SlFVTTFReXhQUVVGUExFbEJRVWtzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMU5CUTNaRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRM1JHTEVOQlFVTTdRVUZGUkRzN096czdPenM3UjBGUlJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4VFFVRlRMRU5CUVVNc1EwRkJVeXhGUVVGRkxFTkJRVk1zUlVGQlJTeGhRVUZ4UWl4RFFVRkRPMGxCUTNCRkxFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkZlRUlzVFVGQlRTeERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxEaENRVUU0UWl4RFFVRkRMRU5CUVVNN1NVRkZNMFFzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRmFrTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRE8xRkJReTlDTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVYwUXl4UFFVRlBMRXRCUVVzc1EwRkJRenRCUVVObUxFTkJRVU03UVVGRlJEczdPenM3UjBGTFJ6dEJRVU5JTEZOQlFWTXNVVUZCVVN4RFFVRkRMRU5CUVZNN1NVRkRla0lzU1VGQlNTeExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUldRc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETzFGQlF5OUNMRXRCUVVzc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGYUVJc1QwRkJUeXhMUVVGTExFTkJRVU03UVVGRFppeERRVUZETzBGQlJVUTdPenM3TzBkQlMwYzdRVUZEU0N4VFFVRlRMRmxCUVZrc1EwRkJReXhEUVVGVE8wbEJRemRDTEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU03U1VGRGVFSXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTVUZGYWtNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETzFGQlF5OUNMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJYcENMRTlCUVU4c1MwRkJTeXhEUVVGRE8wRkJRMllzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4WlFVRlpMRU5CUVVNc1EwRkJVenRKUVVOd1F5eEpRVUZKTEUxQlFVMHNSMEZCVnl4RFFVRkRMRU5CUVVNN1NVRkRka0lzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCVnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZPMUZCUTNaRExFMUJRVTBzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzaENMRTlCUVU4c1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVTXpRaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdkQ1FVRm5RaXhEUVVGRExFVkJRVlVzUlVGQlJTeEZRVUZWTzBsQlEzSkVMRWxCUVVrc1JVRkJSU3hEUVVGRExFMUJRVTBzU1VGQlNTeEZRVUZGTEVOQlFVTXNUVUZCVFR0UlFVTjRRaXhOUVVGTkxFdEJRVXNzUTBGQlF5dzRRMEZCT0VNc1EwRkJReXhEUVVGRE8wbEJRemxFTEVsQlFVa3NTVUZCU1N4SFFVRlhMRU5CUVVNc1EwRkJRenRKUVVOeVFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRlhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVN1VVRkRlRU1zU1VGQlNTeEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEZUVJc1QwRkJUeXhKUVVGSkxFTkJRVU03UVVGRFpDeERRVUZETzBGQlJVUTdPenM3T3pzN08wZEJVVWM3UVVGRFNDeE5RVUZOTEZWQlFWVXNaMEpCUVdkQ0xFTkJRVU1zVlVGQmEwSXNSVUZCUlN4VlFVRnJRaXhGUVVGRkxGRkJRV2RDTEVWQlFVVTdTVUZEZWtZc1RVRkJUU3hOUVVGTkxFZEJRVWNzWlVGQlpTeERRVUZETEZWQlFWVXNSVUZCUlN4VlFVRlZMRU5CUVVNc1EwRkJRenRKUVVWMlJDeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVlVGQlZTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZPMUZCUTI1RExFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhWUVVGVkxFVkJRVVVzUlVGQlJTeERRVUZETzFsQlEycERMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4WFFVRlhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UzBGRGNrTTdTVUZEUkN4UFFVRlBMRTFCUVUwc1EwRkJRenRCUVVOb1FpeERRVUZETzBGQlJVUTdPenM3T3pzN1IwRlBSenRCUVVOSUxFMUJRVTBzVlVGQlZTd3dRa0ZCTUVJc1EwRkJReXhEUVVGVExFVkJRVVVzUTBGQlV6dEpRVU0zUkN4TlFVRk5MRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMnBETEUxQlFVMHNUVUZCVFN4SFFVRkhMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU5zUXl4TlFVRk5MRlZCUVZVc1IwRkJSeXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTVUZEY0VNc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMEZCUXk5Q0xFTkJRVU03UVVGRlJEczdPenM3T3p0SFFVOUhPMEZCUTBnc1RVRkJUU3hWUVVGVkxHdENRVUZyUWl4RFFVRkRMRWxCUVdFc1JVRkJSU3hSUVVGM1FqdEpRVU40UlN4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETzBsQlF6TkNMRTFCUVUwc1RVRkJUU3hIUVVGSExHVkJRV1VzUTBGQlF5eE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSV3hFTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVN1VVRkRMMElzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVN1dVRkRia01zVFVGQlRTeERRVUZETEVkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTXhSaXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRUUVVOcVF6dExRVU5HTzBsQlEwUXNUMEZCVHl4TlFVRk5MRU5CUVVNN1FVRkRhRUlzUTBGQlF6dEJRVVZFTEd0R1FVRnJSanRCUVVOc1JpeE5RVUZOTEZWQlFWVXNVVUZCVVN4RFFVRkRMRXRCUVdFc1JVRkJSU3hIUVVGWExFVkJRVVVzV1VGQldTeEhRVUZITEV0QlFVczdTVUZEZGtVc1RVRkJUU3hOUVVGTkxFZEJRVWNzUjBGQlJ5eEhRVUZITEV0QlFVc3NSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOd1JDeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEpRVVYwUXl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NUVUZCVFN4RlFVRkZMRVZCUVVVc1EwRkJRenRSUVVNM1FpeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVVY0UWl4UFFVRlBMRTFCUVUwc1EwRkJRenRCUVVOb1FpeERRVUZETzBGQlJVUTdPenM3T3pzN1IwRlBSenRCUVVOSUxFMUJRVTBzVlVGQlZTeFBRVUZQTEVOQlFVTXNUVUZCWVN4RlFVRkZMRTlCUVU4c1IwRkJSeXhMUVVGTE8wbEJRM0JFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZSTEVWQlFVVXNRMEZCVVN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRlJMRVZCUVVVc1EwRkJVU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjJSeXhOUVVGTkxFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVMHNSVUZCUlN4RFFVRlRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc2NVSkJRWEZDTzBsQlEyeEZMRTFCUVUwc1QwRkJUeXhIUVVGSExFTkJRVU1zUTBGQlVTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eHRRa0ZCYlVJN1NVRkRka1FzVFVGQlRTeFJRVUZSTEVkQlFVY3NRMEZCUXl4SFFVRlZMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVNeFJTeFBRVUZQTEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVNeFFpeERRVUZETzBGQlJVUTdPenM3T3pzN1IwRlBSenRCUVVOSUxFMUJRVTBzVlVGQlZTeG5Ra0ZCWjBJc1EwRkJReXhOUVVGakxFVkJRVVVzUTBGQlV5eEZRVUZGTEVsQlFYZERPMGxCUTJ4SExGTkJRVk1zUzBGQlN5eERRVUZETEUxQlFXZERMRVZCUVVVc1QwRkJPRUk3VVVGRE4wVXNTVUZCU1N4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRM0JDTEVsQlFVa3NWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJRenRSUVVWMFFpeExRVUZMTEUxQlFVMHNUMEZCVHl4SlFVRkpMRTFCUVUwc1JVRkJSVHRaUVVNMVFpeE5RVUZOTEdOQlFXTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03V1VGRGVFTXNTVUZCU1N4VlFVRlZMRWxCUVVrc1NVRkJTU3hKUVVGSkxHTkJRV01zUjBGQlJ5eFZRVUZWTEVWQlFVVTdaMEpCUTNKRUxGRkJRVkVzUjBGQlJ5eFBRVUZQTEVOQlFVTTdaMEpCUTI1Q0xGVkJRVlVzUjBGQlJ5eGpRVUZqTEVOQlFVTTdZVUZETjBJN1UwRkRSanRSUVVORUxFOUJRVThzVVVGQlVTeERRVUZETzBsQlEyeENMRU5CUVVNN1NVRkZSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU4yUXl4TlFVRk5MRlZCUVZVc1IwRkJSeXhKUVVGSkxFZEJRVWNzUlVGQlJTeERRVUZETzBsQlJUZENMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVU3VVVGREwwSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzSkNMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTMEZEY2tJN1NVRkZSQ3hQUVVGUExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RlFVRkZPMUZCUTNoQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEV0QlFVc3NRMEZEWml4VlFVRlZMRU5CUVVNc1RVRkJUU3hGUVVFNFFpeEZRVU12UXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hGUVVGRkxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNWVUZCVXl4SFFVRkhMRVZCUVVVc1MwRkJTenRaUVVONFJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4RFFVRkRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGRFSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMUFzU1VGQlNTeEhRVUZITEVWQlFVVTdXVUZEVUN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEycENMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVMEZEZUVJN1MwRkRSanRKUVVORUxFOUJRVThzVFVGQlRTeERRVUZETzBGQlEyaENMRU5CUVVNN1FVRkZSRHM3TzBkQlIwYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1UwRkJVeXhEUVVGRExFbEJRVms3U1VGRGNFTXNTVUZCU1N4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRMklzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUlZvc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETzFGQlEyeERMRWxCUVVrc1NVRkJTU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGYkVJc1NVRkJTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZGY0VJc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETzFGQlEyeERMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVVM1F5eEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMGxCUlc1RExFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVWQlFVVXNRMEZCUXp0UlFVTnNReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRPMGxCUlc1RExFOUJRVThzU1VGQlNTeERRVUZETzBGQlEyUXNRMEZCUXp0QlFVVkVPenM3T3p0SFFVdEhPMEZCUTBnc1RVRkJUU3hWUVVGVkxHRkJRV0VzUTBGQlF5eERRVUZSTEVWQlFVVXNRMEZCVVR0SlFVTTVReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVONFFpeFBRVUZQTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUTNKRkxFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZTAxaGRISnBlQ3dnVm1WamRHOXlMQ0JEYjI5eVpHbHVZWFJsY3l3Z1ZtVmpkRzl5Y3l3Z1JHbHpkR0Z1WTJWTlpYUnlhV045SUdaeWIyMGdKeTR2ZEhsd1pTMWtaV05zWVhKaGRHbHZibk1uTzF4dWFXMXdiM0owSUh0eVlXNWtiMjFHYkc5aGRDd2djbUZ1Wkc5dFNXNTBmU0JtY205dElDY3VMM0poYm1SdmJTYzdYRzVjYmk4cUtseHVJQ29nUVhOelpYSjBjeUJoSUdOdmJtUnBkR2x2YmlCaWVTQjBhSEp2ZDJsdVp5QmhiaUJGY25KdmNpNWNiaUFxWEc0Z0tpQkFaWGh3YjNKMFhHNGdLaUJBY0dGeVlXMGdlMkp2YjJ4bFlXNTlJRnRqYjI1a2FYUnBiMjQ5Wm1Gc2MyVmRJRU52Ym1ScGRHbHZiaUIwYnlCaGMzTmxjblF1WEc0Z0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cyMWxjM05oWjJVOUowRnpjMlZ5ZEdsdmJpQmxjbkp2Y2k0blhTQk5aWE56WVdkbElIUnZJRzkxZEhCMWRDNWNiaUFxSUVCMGFISnZkM01nZTBWeWNtOXlmVnh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1lYTnpaWEowS0dOdmJtUnBkR2x2YmpvZ1ltOXZiR1ZoYmlBOUlHWmhiSE5sTENCdFpYTnpZV2RsT2lCemRISnBibWNnUFNBblFYTnpaWEowYVc5dUlHVnljbTl5TGljcElIdGNiaUFnYVdZZ0tDRmpiMjVrYVhScGIyNHBYRzRnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0cxbGMzTmhaMlVwTzF4dWZWeHVYRzR2S2lwY2JpQXFJRU55WldGMFpYTWdibVYzSUhSM2J5MWthVzFsYm5OcGIyNWhiQ0JoY25KaGVTQmhibVFnWm1sc2JITWdhWFFnZDJsMGFDQjBhR1VnZG1Gc2RXVWdaMmwyWlc0dVhHNGdLbHh1SUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUdScGJXVnVjMmx2YmpFZ1ZHaGxJR1pwY25OMElHUnBiV1Z1YzJsdmJpQnZaaUIwYUdVZ1kyOXZjbVJwYm1GMFpYTWdLRzUxYldKbGNpQnZaaUJ5YjNkektTNWNiaUFxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JrYVcxbGJuTnBiMjR5SUZSb1pTQnpaV052Ym1RZ1pHbHRaVzV6YVc5dUlHOW1JSFJvWlNCamIyOXlaR2x1WVhSbGN5QW9iblZ0WW1WeUlHOW1JR052YkhWdGJuTXBMbHh1SUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUZ0bWFXeHNQVEJkSUVFZ2RtRnNkV1VnZEc4Z1ptbHNiQ0IwYUdVZ1kyOXZjbVJwYm1GMFpYTWdkMmwwYUM1Y2JpQXFJRUJ5WlhSMWNtNGdlME52YjNKa2FXNWhkR1Z6ZlNCQklIUjNieTFrYVcxbGJuTnBiMjVoYkNCbWFXeHNaV1FnZDJsMGFDQjBhR1VnZG1Gc2RXVWdaMmwyWlc0dVhHNGdLaUJBZEc5a2J5Qk5hV2RvZENCaVpTQnpiRzkzSUhOcGJtTmxJSFZ6WldRZ1FYSnlZWGt1YldGd0xpQlFjbTlpWVdKc2VTQnVaV1ZrY3lCd1pYSm1iM0p0WVc1alpTQnlaWFpwYzJsdmJpNWNiaUFxTDF4dVpuVnVZM1JwYjI0Z2FXNXBkRU52YjNKa2FXNWhkR1Z6S0dScGJXVnVjMmx2YmpFNklHNTFiV0psY2l3Z1pHbHRaVzV6YVc5dU1qb2diblZ0WW1WeUxDQm1hV3hzT2lCdWRXMWlaWElnUFNBd0tUb2dRMjl2Y21ScGJtRjBaWE1nZTF4dUlDQnlaWFIxY200Z2JtVjNJRUZ5Y21GNUtHUnBiV1Z1YzJsdmJqRXBMbVpwYkd3b1ptbHNiQ2t1YldGd0tDZ3BJRDArSUNodVpYY2dWbVZqZEc5eUtHUnBiV1Z1YzJsdmJqSXBMbVpwYkd3b1ptbHNiQ2twS1R0Y2JuMWNibHh1THlvcVhHNGdLaUJVY21GdWMzQnZjMlVnYldGMGNtbDRMbHh1SUNwY2JpQXFJRUJsZUhCdmNuUmNiaUFxSUVCd1lYSmhiU0I3VFdGMGNtbDRmU0J0WVhSeWFYZ2dWR2hsSUcxaGRISnBlQ0IwYnlCaVpTQjBjbUZ1YzNCdmMyVmtMbHh1SUNvZ1FISmxkSFZ5YmlCN1RXRjBjbWw0ZlNCVWNtRnVjM0J2YzJWa0lHMWhkSEpwZUM1Y2JpQXFJRUIwYjJSdklFMXBaMmgwSUdKbElITnNiM2NnYzJsdVkyVWdkWE5sWkNCQmNuSmhlUzV0WVhBdUlGQnliMkpoWW14NUlHNWxaV1J6SUhCbGNtWnZjbTFoYm1ObElISmxkbWx6YVc5dUxseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnZEhKaGJuTndiM05sVFdGMGNtbDRLRzFoZEhKcGVEb2dUV0YwY21sNEtUb2dUV0YwY21sNElIdGNiaUFnY21WMGRYSnVJRzVsZHlCQmNuSmhlU2h0WVhSeWFYaGJNRjB1YkdWdVozUm9LUzVtYVd4c0tEQXBYRzRnSUNBZ0xtMWhjQ2dvWHl3Z2FTa2dQVDRnS0c1bGR5QldaV04wYjNJb2JXRjBjbWw0TG14bGJtZDBhQ2t1Wm1sc2JDZ3dLUzV0WVhBb0tGOHNJR29wSUQwK0lDaHRZWFJ5YVhoYmFsMWJhVjBwS1NrcE8xeHVmVnh1WEc0dktpcGNiaUFxSUVGa1pITWdkSGR2SUhabFkzUnZjbk1nZDJsMGFDQjBhR1VnYzJWamIyNWtJRzl1WlNCMGJ5QmlaU0J0ZFd4MGFYQnNhV1ZrSUdKNUlIUm9aU0JuYVhabGJpQnlZWFJwYnk1Y2JpQXFYRzRnS2lCQVpYaHdiM0owWEc0Z0tpQkFjR0Z5WVcwZ2UxWmxZM1J2Y24wZ2NDQlVhR1VnWm1seWMzUWdkbVZqZEc5eUlIUnZJR0ZrWkM1Y2JpQXFJRUJ3WVhKaGJTQjdWbVZqZEc5eWZTQnhJRlJvWlNCelpXTnZibVFnZG1WamRHOXlJSFJ2SUdGa1pDNWNiaUFxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JiYlhWc2RHbHdiR2xsY2oweFhTQkJJRzExYkhScGNHeHBaWElnZEc4Z1ltVWdkWE5sWkNCaVpXWnZjbVVnZEdobElITmxZMjl1WkNCMlpXTjBiM0lnYVhNZ1lXUmtaV1F1WEc0Z0tpQkFjbVYwZFhKdUlIdFdaV04wYjNKOUlFNWxkeUIyWldOMGIzSWdZMjl1ZEdGcGJtVmtJSFJvWlNCeVpYTjFiSFFnYjJZZ2IzQmxjbUYwYVc5dUlIQXJiWFZzZEdsd2JHbGxjaXB4TGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdkbVZqZEc5eVFXUmtLSEE2SUZabFkzUnZjaXdnY1RvZ1ZtVmpkRzl5TENCdGRXeDBhWEJzYVdWeU9pQnVkVzFpWlhJZ1BTQXhLVG9nVm1WamRHOXlJSHRjYmlBZ1kyOXVjM1FnYmtsMFpXMXpJRDBnY0M1c1pXNW5kR2c3WEc1Y2JpQWdZWE56WlhKMEtHNUpkR1Z0Y3lBOVBTQnhMbXhsYm1kMGFDd2dKMVpsWTNSdmNpQnNaVzVuZEdoeklHUnZJRzV2ZENCdFlYUmphQzRuS1R0Y2JseHVJQ0JqYjI1emRDQjBiM1JoYkNBOUlHNWxkeUJXWldOMGIzSW9ia2wwWlcxektUdGNibHh1SUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElIQXViR1Z1WjNSb095QXJLMmtwWEc0Z0lDQWdkRzkwWVd4YmFWMGdQU0J3VzJsZElDc2diWFZzZEdsd2JHbGxjaUFxSUhGYmFWMDdYRzVjYmlBZ2NtVjBkWEp1SUhSdmRHRnNPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlGTjFiWE1nZEdobElIWmxZM1J2Y2lkeklHbDBaVzF6TGx4dUlDcGNiaUFxSUVCd1lYSmhiU0I3Vm1WamRHOXlmU0IySUZSb1pTQjJaV04wYjNJZ2RHOGdZbVVnYzNWdGJXVmtMbHh1SUNvZ1FISmxkSFZ5YmlCN2JuVnRZbVZ5ZlNCVWFHVWdkbVZqZEc5eUozTWdhWFJsYlhNZ2MzVnRMbHh1SUNvdlhHNW1kVzVqZEdsdmJpQnBkR1Z0YzFOMWJTaDJPaUJXWldOMGIzSXBPaUJ1ZFcxaVpYSWdlMXh1SUNCc1pYUWdkRzkwWVd3Z1BTQXdPMXh1WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dkaTVzWlc1bmRHZzdJQ3NyYVNsY2JpQWdJQ0IwYjNSaGJDQXJQU0IyVzJsZE8xeHVYRzRnSUhKbGRIVnliaUIwYjNSaGJEdGNibjFjYmx4dUx5b3FYRzRnS2lCVGRYRmhjbVZ6SUhSb1pTQjJaV04wYjNJbmN5QnBkR1Z0Y3k1Y2JpQXFYRzRnS2lCQWNHRnlZVzBnZTFabFkzUnZjbjBnZGlCVWFHVWdkbVZqZEc5eUlIUnZJSE54ZFdGeVpTNWNiaUFxSUVCeVpYUjFjbTRnZTFabFkzUnZjbjBnUVNCdVpYY2dkbVZqZEc5eUlHTnZiblJoYVc1cGJtY2dkR2hsSUc5eWFXZHBibUZzSjNNZ2FYUmxiWE1nYzNGMVlYSmxaQzVjYmlBcUwxeHVablZ1WTNScGIyNGdkbVZqZEc5eVUzRjFZWEpsS0hZNklGWmxZM1J2Y2lrNklGWmxZM1J2Y2lCN1hHNGdJR052Ym5OMElHNUpkR1Z0Y3lBOUlIWXViR1Z1WjNSb08xeHVJQ0JqYjI1emRDQjBiM1JoYkNBOUlHNWxkeUJXWldOMGIzSW9ia2wwWlcxektUdGNibHh1SUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElIWXViR1Z1WjNSb095QXJLMmtwWEc0Z0lDQWdkRzkwWVd4YmFWMGdQU0IyVzJsZElDb2dkbHRwWFR0Y2JseHVJQ0J5WlhSMWNtNGdkRzkwWVd3N1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUIyWldOMGIzSk1aVzVuZEdnb2Rqb2dWbVZqZEc5eUtUb2diblZ0WW1WeUlIdGNiaUFnYkdWMElITnhjbE4xYlRvZ2JuVnRZbVZ5SUQwZ01EdGNiaUFnWm05eUlDaHNaWFFnYVRvZ2JuVnRZbVZ5SUQwZ01Ec2dhU0E4SUhZdWJHVnVaM1JvT3lCcEt5c3BYRzRnSUNBZ2MzRnlVM1Z0SUNzOUlIWmJhVjBnS2lCMlcybGRPMXh1SUNCeVpYUjFjbTRnVFdGMGFDNXpjWEowS0hOeGNsTjFiU2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQjJaV04wYjNKRWIzUlFjbTlrZFdOMEtIWXhPaUJXWldOMGIzSXNJSFl5T2lCV1pXTjBiM0lwT2lCdWRXMWlaWElnZTF4dUlDQnBaaUFvZGpFdWJHVnVaM1JvSUNFOUlIWXlMbXhsYm1kMGFDbGNiaUFnSUNCMGFISnZkeUJGY25KdmNpZ25WR2hsSUdScGJXVnVjMmx2Ym1Gc2FYUjVJRzltSUhSb1pTQjJaV04wYjNKeklHMTFjM1FnYldGMFkyZ25LVHRjYmlBZ2JHVjBJSEJ5YjJRNklHNTFiV0psY2lBOUlEQTdYRzRnSUdadmNpQW9iR1YwSUdrNklHNTFiV0psY2lBOUlEQTdJR2tnUENCMk1TNXNaVzVuZEdnN0lHa3JLeWxjYmlBZ0lDQndjbTlrSUNzOUlIWXhXMmxkSUNvZ2RqSmJhVjA3WEc0Z0lISmxkSFZ5YmlCd2NtOWtPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFTnlaV0YwWlhNZ1lTQnRZWFJ5YVhnZ1ptbHNiR1ZrSUhkcGRHZ2djbUZ1Wkc5dElHWnNiMkYwYVc1bklIQnZhVzUwSUhaaGJIVmxjeTVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnWkdsdFpXNXphVzl1TVNCVWFHVWdabWx5YzNRZ1pHbHRaVzV6YVc5dUlHOW1JSFJvWlNCdFlYUnlhWGd1WEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1pHbHRaVzV6YVc5dU1pQlVhR1VnYzJWamIyNWtJR1JwYldWdWMybHZiaUJ2WmlCMGFHVWdiV0YwY21sNExseHVJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRnR6WTJGc1pUMHhMbDBnVFdGNElIWmhiSFZsSUdkcGRtVnVJR0o1SUhKaGJtUnZiU0JuWlc1bGNtRjBiM0l1WEc0Z0tpQkFjbVYwZFhKdUlIdE5ZWFJ5YVhoOUlFRWdibVYzSUcxaGRISnBlQ0JtYVd4c1pXUWdkMmwwYUNCeVlXNWtiMjBnWm14dllYUnBibWNnY0c5cGJuUWdJSFpoYkhWbGN5NWNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdacGJHeFNZVzVrYjIxTllYUnlhWGdvWkdsdFpXNXphVzl1TVRvZ2JuVnRZbVZ5TENCa2FXMWxibk5wYjI0eU9pQnVkVzFpWlhJc0lITmpZV3hsT2lCdWRXMWlaWElnUFNBeExpazZJRTFoZEhKcGVDQjdYRzRnSUdOdmJuTjBJRzFoZEhKcGVDQTlJR2x1YVhSRGIyOXlaR2x1WVhSbGN5aGthVzFsYm5OcGIyNHhMQ0JrYVcxbGJuTnBiMjR5S1R0Y2JseHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUdScGJXVnVjMmx2YmpFN0lDc3JhU2tnZTF4dUlDQWdJR1p2Y2lBb2JHVjBJR29nUFNBd095QnFJRHdnWkdsdFpXNXphVzl1TWpzZ0t5dHFLVnh1SUNBZ0lDQWdiV0YwY21sNFcybGRXMnBkSUQwZ2NtRnVaRzl0Um14dllYUW9jMk5oYkdVcE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCdFlYUnlhWGc3WEc1OVhHNWNiaThxS2x4dUlDb2dRMkZzWTNWc1lYUmxjeUJGZFdOc2FXUmxZVzRnWkdsemRHRnVZMlVnWW1WMGQyVmxiaUIwZDI4Z2RtVmpkRzl5Y3k1Y2JpQXFYRzRnS2lCQVpYaHdiM0owWEc0Z0tpQkFjR0Z5WVcwZ2UxWmxZM1J2Y24wZ2NDQlVhR1VnWm1seWMzUWdkbVZqZEc5eUxseHVJQ29nUUhCaGNtRnRJSHRXWldOMGIzSjlJSEVnVkdobElITmxZMjl1WkNCMlpXTjBiM0l1WEc0Z0tpQkFjbVYwZFhKdUlIdHVkVzFpWlhKOUlFVjFZMnhwWkdWaGJpQmthWE4wWVc1alpTQmlaWFIzWldWdUlIUm9aU0JuYVhabGJpQjJaV04wYjNKekxseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWTJGc1kzVnNZWFJsUlhWamJHbGtaV0Z1UkdsemRHRnVZMlVvY0RvZ1ZtVmpkRzl5TENCeE9pQldaV04wYjNJcE9pQnVkVzFpWlhJZ2UxeHVJQ0JqYjI1emRDQmthV1ptSUQwZ2RtVmpkRzl5UVdSa0tIQXNJSEVzSUMweEtUdGNiaUFnWTI5dWMzUWdjM0ZrYVdabUlEMGdkbVZqZEc5eVUzRjFZWEpsS0dScFptWXBPMXh1SUNCamIyNXpkQ0J6Y1dScFptWlRkVzF0SUQwZ2FYUmxiWE5UZFcwb2MzRmthV1ptS1R0Y2JpQWdjbVYwZFhKdUlFMWhkR2d1YzNGeWRDaHpjV1JwWm1aVGRXMXRLVHRjYm4xY2JseHVMeW9xWEc0Z0tpQkRjbVZoZEdWeklHRWdaR2x6ZEdGdVkyVWdiV0YwY21sNElIVnphVzVuSUdFZ1kzVnpkRzl0SUdScGMzUmhibU5sSUdaMWJtTjBhVzl1TGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQndZWEpoYlNCN1ZtVmpkRzl5YzMwZ1pHRjBZU0JKYm5CMWRDQjJaV04wYjNKeklIUnZJR05oYkdOMWJHRjBaU0JrYVhOMFlXNWpaWE11WEc0Z0tpQkFjR0Z5WVcwZ2UwUnBjM1JoYm1ObFRXVjBjbWxqZlNCa2FYTjBZVzVqWlNCRGRYTjBiMjBnWkdsemRHRnVZMlVnWm5WdVkzUnBiMjR1WEc0Z0tpQkFjbVYwZFhKdUlIdE5ZWFJ5YVhoOUlFTmhiR04xYkdGMFpXUWdZM1Z6ZEc5dElHUnBjM1JoYm1ObElHMWhkSEpwZUM1Y2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR05oYkdORWFYTjBZVzVqWlUxaGRISnBlQ2hrWVhSaE9pQldaV04wYjNKekxDQmthWE4wWVc1alpUb2dSR2x6ZEdGdVkyVk5aWFJ5YVdNcE9pQk5ZWFJ5YVhnZ2UxeHVJQ0JqYjI1emRDQnVTWFJsYlhNZ1BTQmtZWFJoTG14bGJtZDBhRHRjYmlBZ1kyOXVjM1FnYldGMGNtbDRJRDBnYVc1cGRFTnZiM0prYVc1aGRHVnpLRzVKZEdWdGN5d2dia2wwWlcxekxDQXdLVHRjYmx4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJRzVKZEdWdGN6c2dLeXRwS1NCN1hHNGdJQ0FnWm05eUlDaHNaWFFnYWlBOUlHa2dLeUF4T3lCcUlEd2dia2wwWlcxek95QXJLMm9wSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR1E2SUc1MWJXSmxjaUE5SUNoa1lYUmhXMmxkSUQwOUlHNTFiR3dwSUh4OElDaGtZWFJoVzJwZElEMDlJRzUxYkd3cElEOGdNQ0E2SUdScGMzUmhibU5sS0dSaGRHRmJhVjBzSUdSaGRHRmJhbDBwTzF4dUlDQWdJQ0FnYldGMGNtbDRXMmxkVzJwZElEMGdiV0YwY21sNFcycGRXMmxkSUQwZ1pEdGNiaUFnSUNCOVhHNGdJSDFjYmlBZ2NtVjBkWEp1SUcxaGRISnBlRHRjYm4xY2JseHVMeW9xSUVkbGJtVnlZWFJsY3lCaGNuSmhlU0JtY205dElHRWdjbUZ1WjJVZ1cySmxaMmx1T3lCbGJtUmRJRzl5SUZ0aVpXZHBianNnWlc1a0tTQnBaaUJsYm1SRmVHTnNkWE5wZG1VdUlDb3FMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2RsYmxKaGJtZGxLR0psWjJsdU9pQnVkVzFpWlhJc0lHVnVaRG9nYm5WdFltVnlMQ0JsYm1SRmVHTnNkWE5wZG1VZ1BTQm1ZV3h6WlNrNklFbHVkRE15UVhKeVlYa2dlMXh1SUNCamIyNXpkQ0J1U1hSbGJYTWdQU0JsYm1RZ0xTQmlaV2RwYmlBcklDaGxibVJGZUdOc2RYTnBkbVVnUHlBd0lEb2dNU2s3WEc0Z0lHTnZibk4wSUhObGNtbGxjeUE5SUc1bGR5QkpiblF6TWtGeWNtRjVLRzVKZEdWdGN5azdYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnVTWFJsYlhNN0lDc3JhU2xjYmlBZ0lDQnpaWEpwWlhOYmFWMGdQU0JpWldkcGJpQXJJR2s3WEc1Y2JpQWdjbVYwZFhKdUlITmxjbWxsY3p0Y2JuMWNibHh1THlvcVhHNGdLaUJTWlhSMWNtNXpJRzl5WkdWeUlHOW1JSFpoYkhWbGN5QmhjeUJwWmlCMGFHVjVJR0Z5WlNCemIzSjBaV1F1WEc0Z0tseHVJQ29nUUdWNGNHOXlkRnh1SUNvZ1FIQmhjbUZ0SUh0aGJubGJYWDBnZG1Gc2RXVnpJRWx1Y0hWMElHRnljbUY1TGx4dUlDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQmJjbVYyWlhKelpUMW1ZV3h6WlYwZ1YyaGxkR2hsY2lCMGJ5QnlaWFIxY200Z2NtVjJaWEp6WldRZ2IzSmtaWEl1WEc0Z0tpQkFjbVYwZFhKdUlIdHVkVzFpWlhKYlhYMGdWR2hsSUc5eVpHVnlJR052YlhCMWRHVmtMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1lYSm5VMjl5ZENoMllXeDFaWE02SUdGdWVWdGRMQ0J5WlhabGNuTmxJRDBnWm1Gc2MyVXBPaUJ1ZFcxaVpYSmJYU0I3WEc0Z0lHTnZibk4wSUhOdmNuUm1iaUE5SUhKbGRtVnljMlVnUHlBb1lUb2dZVzU1VzEwc0lHSTZJR0Z1ZVZ0ZEtTQTlQaUFvWWxzd1hTQXRJR0ZiTUYwcElEb2dLR0U2SUdGdWVWdGRMQ0JpT2lCaGJubGJYU2tnUFQ0Z0tHRmJNRjBnTFNCaVd6QmRLVHRjYmlBZ1kyOXVjM1FnWkdWamIzSWdQU0FvZGpvZ1lXNTVMQ0JwT2lCdWRXMWlaWElwSUQwK0lGdDJMQ0JwWFRzZ0x5OGdjMlYwSUdsdVpHVjRJSFJ2SUhaaGJIVmxYRzRnSUdOdmJuTjBJSFZ1WkdWamIzSWdQU0FvWVRvZ1lXNTVXMTBwSUQwK0lHRmJNVjA3SUM4dklHeGxZWFpsSUc5dWJIa2dhVzVrWlhoY2JpQWdZMjl1YzNRZ1gyRnlaM052Y25RZ1BTQW9ZWEp5T2lCaGJubGJYU2tnUFQ0Z1lYSnlMbTFoY0Noa1pXTnZjaWt1YzI5eWRDaHpiM0owWm00cExtMWhjQ2gxYm1SbFkyOXlLVHRjYmlBZ2NtVjBkWEp1SUY5aGNtZHpiM0owS0haaGJIVmxjeWs3WEc1OVhHNWNiaThxS2x4dUlDb2dVbVYwZFhKdWN5QjBhR1VnYVc1a1pYaGxjeUJ2WmlCMGFHVWdiVzl6ZENCa2FYWmxjbk5sSUc5aWFtVmpkSE1nWVdOamIzSmthVzVuSUhSdklIUm9aU0JrYVhOMElHWjFibU4wYVc5dVhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdiR1Z1WjNSb0lIUnZkR0ZzSUc1MWJXSmxjaUJ2WmlCdlltcGxZM1J6WEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ2JpQnVkVzFpWlhJZ2IyWWdaR2wyWlhKelpTQmxiR1Z0Wlc1MGN5QjBieUJtYVc1a1hHNGdLaUJBY0dGeVlXMGdleWhwTVRvZ2JuVnRZbVZ5TENCcE1qb2diblZ0WW1WeUtTQTlQaUJ1ZFcxaVpYSjlJR1JwYzNRZ1lTQm1kVzVqZEdsdmJpQjNhR2xqYUNCallXeGpkV3hoZEdWeklHUnBjM1JoYm1ObElHSmxkSGRsWlc1Y2JpQXFJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGQyOGdiMkpxWldOMGN5QjFjMmx1WnlCMGFHVnBjaUJwYm1SbGVHVnpYRzRnS2lCQWNtVjBkWEp1Y3lCN2JuVnRZbVZ5VzExOUlGUm9aU0JwYm1SbGVHVnpJRzltSUhSb1pTQnRiM04wSUdScGRtVnljMlVnYjJKcVpXTjBjMXh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1oyVjBSR2wyWlhKelpWTjFZbk5sZENoc1pXNW5kR2c2SUc1MWJXSmxjaXdnYmpvZ2JuVnRZbVZ5TENCa2FYTjBPaUFvYVRFNklHNTFiV0psY2l3Z2FUSTZJRzUxYldKbGNpa2dQVDRnYm5WdFltVnlLVG9nYm5WdFltVnlXMTBnZTF4dUlDQm1kVzVqZEdsdmJpQnRZWGhDZVNoMllXeDFaWE02SUVsMFpYSmhZbXhsU1hSbGNtRjBiM0k4Ym5WdFltVnlQaXdnYjNKa1pYSkNlVG9nS0drNklHNTFiV0psY2lrZ1BUNGdiblZ0WW1WeUtTQjdYRzRnSUNBZ2JHVjBJRzFoZUZaaGJIVmxJRDBnYm5Wc2JEdGNiaUFnSUNCc1pYUWdiV0Y0VDNKa1pYSkNlU0E5SUc1MWJHdzdYRzVjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR1ZzWlcxbGJuUWdiMllnZG1Gc2RXVnpLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmxiR1Z0Wlc1MFQzSmtaWEpDZVNBOUlHOXlaR1Z5UW5rb1pXeGxiV1Z1ZENrN1hHNGdJQ0FnSUNCcFppQW9iV0Y0VDNKa1pYSkNlU0E5UFNCdWRXeHNJSHg4SUdWc1pXMWxiblJQY21SbGNrSjVJRDRnYldGNFQzSmtaWEpDZVNrZ2UxeHVJQ0FnSUNBZ0lDQnRZWGhXWVd4MVpTQTlJR1ZzWlcxbGJuUTdYRzRnSUNBZ0lDQWdJRzFoZUU5eVpHVnlRbmtnUFNCbGJHVnRaVzUwVDNKa1pYSkNlVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUcxaGVGWmhiSFZsTzF4dUlDQjlYRzVjYmlBZ1kyOXVjM1FnYzNWaWMyVjBJRDBnVzNKaGJtUnZiVWx1ZENoc1pXNW5kR2dnTFNBeEtWMDdYRzRnSUdOdmJuTjBJR052YlhCc1pXMWxiblFnUFNCdVpYY2dVMlYwS0NrN1hHNWNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCc1pXNW5kR2c3SUNzcmFTa2dlMXh1SUNBZ0lHbG1JQ2doYzNWaWMyVjBMbWx1WTJ4MVpHVnpLR2twS1Z4dUlDQWdJQ0FnWTI5dGNHeGxiV1Z1ZEM1aFpHUW9hU2s3WEc0Z0lIMWNibHh1SUNCM2FHbHNaU0FvYzNWaWMyVjBMbXhsYm1kMGFDQThJRzRwSUh0Y2JpQWdJQ0JqYjI1emRDQnBaSGdnUFNCdFlYaENlU2hjYmlBZ0lDQWdJR052YlhCc1pXMWxiblF1ZG1Gc2RXVnpLQ2tnWVhNZ1NYUmxjbUZpYkdWSmRHVnlZWFJ2Y2p4dWRXMWlaWEkrTEZ4dUlDQWdJQ0FnS0drcElEMCtJRTFoZEdndWJXbHVMbUZ3Y0d4NUtFMWhkR2dzSUhOMVluTmxkQzV0WVhBb1puVnVZM1JwYjI0b2RtRnNMQ0JwYm1SbGVDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdaR2x6ZENocExDQjJZV3dwTzF4dUlDQWdJQ0FnZlNrcEtUdGNiaUFnSUNCcFppQW9hV1I0S1NCN1hHNGdJQ0FnSUNCemRXSnpaWFF1Y0hWemFDaHBaSGdwTzF4dUlDQWdJQ0FnWTI5dGNHeGxiV1Z1ZEM1a1pXeGxkR1VvYVdSNEtUdGNiaUFnSUNCOVhHNGdJSDFjYmlBZ2NtVjBkWEp1SUhOMVluTmxkRHRjYm4xY2JseHVMeW9xWEc0Z0tpQlNaWFIxY201eklHNXZjbTFoYkdsNlpXUWdkbVZqZEc5eVhHNGdLaUJBY0dGeVlXMGdlMVpsWTNSdmNuMGdaR0YwWVNCdWRXMWxjbWxqWVd3Z1lYSnlZWGxjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHNXZjbTFoYkdsNlpTaGtZWFJoT2lCV1pXTjBiM0lwT2lCV1pXTjBiM0lnZTF4dUlDQnNaWFFnYldWaGJpQTlJREE3WEc0Z0lHeGxkQ0J6ZEdRZ1BTQXdPMXh1WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2daR0YwWVM1c1pXNW5kR2c3SUNzcmFTbGNiaUFnSUNCdFpXRnVJQ3M5SUdSaGRHRmJhVjA3WEc1Y2JpQWdiV1ZoYmlBdlBTQmtZWFJoTG14bGJtZDBhRHRjYmx4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR1JoZEdFdWJHVnVaM1JvT3lBcksya3BYRzRnSUNBZ2MzUmtJQ3M5SUNoa1lYUmhXMmxkSUMwZ2JXVmhiaWtnS2lBb1pHRjBZVnRwWFNBdElHMWxZVzRwTzF4dVhHNGdJSE4wWkNBOUlFMWhkR2d1YzNGeWRDaHpkR1FnTHlCa1lYUmhMbXhsYm1kMGFDazdYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQmtZWFJoTG14bGJtZDBhRHNnS3l0cEtWeHVJQ0FnSUdSaGRHRmJhVjBnUFNBb1pHRjBZVnRwWFNBdElHMWxZVzRwSUM4Z2MzUmtPMXh1WEc0Z0lISmxkSFZ5YmlCa1lYUmhPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFWnBibVJ6SUhObGRDQmthV1ptWlhKbGJtTmxJR0psZEhkbFpXNGdkSGR2SUd4cGMzUnpMbHh1SUNvZ1FIQmhjbUZ0SUh0aGJubGJYWDBnWVNCVWFHVWdabWx5YzNRZ2JHbHpkQzVjYmlBcUlFQndZWEpoYlNCN1lXNTVXMTE5SUdJZ1ZHaGxJSE5sWTI5dVpDQnNhWE4wTGx4dUlDb2dRSEpsZEhWeWJpQjdZVzU1VzExOVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ6WlhSRWFXWm1aWEpsYm1ObEtHRTZJR0Z1ZVZ0ZExDQmlPaUJoYm5sYlhTazZJR0Z1ZVZ0ZElIdGNiaUFnWTI5dWMzUWdZbE5sZENBOUlHNWxkeUJUWlhRb1lpazdYRzRnSUhKbGRIVnliaUJCY25KaGVTNW1jbTl0S0c1bGR5QlRaWFFvWVM1bWFXeDBaWElvS0hncElEMCtJQ0ZpVTJWMExtaGhjeWg0S1NrcExuWmhiSFZsY3lncEtUdGNibjFjYmlKZGZRPT0iLCIoZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnkpIHtcbiAgICAvLyBIYWNrIHRvIG1ha2UgYWxsIGV4cG9ydHMgb2YgdGhpcyBtb2R1bGUgc2hhMjU2IGZ1bmN0aW9uIG9iamVjdCBwcm9wZXJ0aWVzLlxuICAgIHZhciBleHBvcnRzID0ge307XG4gICAgZmFjdG9yeShleHBvcnRzKTtcbiAgICB2YXIgc2hhMjU2ID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG4gICAgZm9yICh2YXIgayBpbiBleHBvcnRzKSB7XG4gICAgICAgIHNoYTI1NltrXSA9IGV4cG9ydHNba107XG4gICAgfVxuICAgICAgICBcbiAgICBpZiAodHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZS5leHBvcnRzID09PSAnb2JqZWN0Jykge1xuICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHNoYTI1NjtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xuICAgICAgICBkZWZpbmUoZnVuY3Rpb24oKSB7IHJldHVybiBzaGEyNTY7IH0pOyBcbiAgICB9IGVsc2Uge1xuICAgICAgICByb290LnNoYTI1NiA9IHNoYTI1NjtcbiAgICB9XG59KSh0aGlzLCBmdW5jdGlvbihleHBvcnRzKSB7XG5cInVzZSBzdHJpY3RcIjtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG4vLyBTSEEtMjU2ICgrIEhNQUMgYW5kIFBCS0RGMikgZm9yIEphdmFTY3JpcHQuXG4vL1xuLy8gV3JpdHRlbiBpbiAyMDE0LTIwMTYgYnkgRG1pdHJ5IENoZXN0bnlraC5cbi8vIFB1YmxpYyBkb21haW4sIG5vIHdhcnJhbnR5LlxuLy9cbi8vIEZ1bmN0aW9ucyAoYWNjZXB0IGFuZCByZXR1cm4gVWludDhBcnJheXMpOlxuLy9cbi8vICAgc2hhMjU2KG1lc3NhZ2UpIC0+IGhhc2hcbi8vICAgc2hhMjU2LmhtYWMoa2V5LCBtZXNzYWdlKSAtPiBtYWNcbi8vICAgc2hhMjU2LnBia2RmMihwYXNzd29yZCwgc2FsdCwgcm91bmRzLCBka0xlbikgLT4gZGtcbi8vXG4vLyAgQ2xhc3Nlczpcbi8vXG4vLyAgIG5ldyBzaGEyNTYuSGFzaCgpXG4vLyAgIG5ldyBzaGEyNTYuSE1BQyhrZXkpXG4vL1xuZXhwb3J0cy5kaWdlc3RMZW5ndGggPSAzMjtcbmV4cG9ydHMuYmxvY2tTaXplID0gNjQ7XG4vLyBTSEEtMjU2IGNvbnN0YW50c1xudmFyIEsgPSBuZXcgVWludDMyQXJyYXkoW1xuICAgIDB4NDI4YTJmOTgsIDB4NzEzNzQ0OTEsIDB4YjVjMGZiY2YsIDB4ZTliNWRiYTUsIDB4Mzk1NmMyNWIsXG4gICAgMHg1OWYxMTFmMSwgMHg5MjNmODJhNCwgMHhhYjFjNWVkNSwgMHhkODA3YWE5OCwgMHgxMjgzNWIwMSxcbiAgICAweDI0MzE4NWJlLCAweDU1MGM3ZGMzLCAweDcyYmU1ZDc0LCAweDgwZGViMWZlLCAweDliZGMwNmE3LFxuICAgIDB4YzE5YmYxNzQsIDB4ZTQ5YjY5YzEsIDB4ZWZiZTQ3ODYsIDB4MGZjMTlkYzYsIDB4MjQwY2ExY2MsXG4gICAgMHgyZGU5MmM2ZiwgMHg0YTc0ODRhYSwgMHg1Y2IwYTlkYywgMHg3NmY5ODhkYSwgMHg5ODNlNTE1MixcbiAgICAweGE4MzFjNjZkLCAweGIwMDMyN2M4LCAweGJmNTk3ZmM3LCAweGM2ZTAwYmYzLCAweGQ1YTc5MTQ3LFxuICAgIDB4MDZjYTYzNTEsIDB4MTQyOTI5NjcsIDB4MjdiNzBhODUsIDB4MmUxYjIxMzgsIDB4NGQyYzZkZmMsXG4gICAgMHg1MzM4MGQxMywgMHg2NTBhNzM1NCwgMHg3NjZhMGFiYiwgMHg4MWMyYzkyZSwgMHg5MjcyMmM4NSxcbiAgICAweGEyYmZlOGExLCAweGE4MWE2NjRiLCAweGMyNGI4YjcwLCAweGM3NmM1MWEzLCAweGQxOTJlODE5LFxuICAgIDB4ZDY5OTA2MjQsIDB4ZjQwZTM1ODUsIDB4MTA2YWEwNzAsIDB4MTlhNGMxMTYsIDB4MWUzNzZjMDgsXG4gICAgMHgyNzQ4Nzc0YywgMHgzNGIwYmNiNSwgMHgzOTFjMGNiMywgMHg0ZWQ4YWE0YSwgMHg1YjljY2E0ZixcbiAgICAweDY4MmU2ZmYzLCAweDc0OGY4MmVlLCAweDc4YTU2MzZmLCAweDg0Yzg3ODE0LCAweDhjYzcwMjA4LFxuICAgIDB4OTBiZWZmZmEsIDB4YTQ1MDZjZWIsIDB4YmVmOWEzZjcsIDB4YzY3MTc4ZjJcbl0pO1xuZnVuY3Rpb24gaGFzaEJsb2Nrcyh3LCB2LCBwLCBwb3MsIGxlbikge1xuICAgIHZhciBhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCB1LCBpLCBqLCB0MSwgdDI7XG4gICAgd2hpbGUgKGxlbiA+PSA2NCkge1xuICAgICAgICBhID0gdlswXTtcbiAgICAgICAgYiA9IHZbMV07XG4gICAgICAgIGMgPSB2WzJdO1xuICAgICAgICBkID0gdlszXTtcbiAgICAgICAgZSA9IHZbNF07XG4gICAgICAgIGYgPSB2WzVdO1xuICAgICAgICBnID0gdls2XTtcbiAgICAgICAgaCA9IHZbN107XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7XG4gICAgICAgICAgICBqID0gcG9zICsgaSAqIDQ7XG4gICAgICAgICAgICB3W2ldID0gKCgocFtqXSAmIDB4ZmYpIDw8IDI0KSB8ICgocFtqICsgMV0gJiAweGZmKSA8PCAxNikgfFxuICAgICAgICAgICAgICAgICgocFtqICsgMl0gJiAweGZmKSA8PCA4KSB8IChwW2ogKyAzXSAmIDB4ZmYpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGkgPSAxNjsgaSA8IDY0OyBpKyspIHtcbiAgICAgICAgICAgIHUgPSB3W2kgLSAyXTtcbiAgICAgICAgICAgIHQxID0gKHUgPj4+IDE3IHwgdSA8PCAoMzIgLSAxNykpIF4gKHUgPj4+IDE5IHwgdSA8PCAoMzIgLSAxOSkpIF4gKHUgPj4+IDEwKTtcbiAgICAgICAgICAgIHUgPSB3W2kgLSAxNV07XG4gICAgICAgICAgICB0MiA9ICh1ID4+PiA3IHwgdSA8PCAoMzIgLSA3KSkgXiAodSA+Pj4gMTggfCB1IDw8ICgzMiAtIDE4KSkgXiAodSA+Pj4gMyk7XG4gICAgICAgICAgICB3W2ldID0gKHQxICsgd1tpIC0gN10gfCAwKSArICh0MiArIHdbaSAtIDE2XSB8IDApO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCA2NDsgaSsrKSB7XG4gICAgICAgICAgICB0MSA9ICgoKCgoZSA+Pj4gNiB8IGUgPDwgKDMyIC0gNikpIF4gKGUgPj4+IDExIHwgZSA8PCAoMzIgLSAxMSkpIF5cbiAgICAgICAgICAgICAgICAoZSA+Pj4gMjUgfCBlIDw8ICgzMiAtIDI1KSkpICsgKChlICYgZikgXiAofmUgJiBnKSkpIHwgMCkgK1xuICAgICAgICAgICAgICAgICgoaCArICgoS1tpXSArIHdbaV0pIHwgMCkpIHwgMCkpIHwgMDtcbiAgICAgICAgICAgIHQyID0gKCgoYSA+Pj4gMiB8IGEgPDwgKDMyIC0gMikpIF4gKGEgPj4+IDEzIHwgYSA8PCAoMzIgLSAxMykpIF5cbiAgICAgICAgICAgICAgICAoYSA+Pj4gMjIgfCBhIDw8ICgzMiAtIDIyKSkpICsgKChhICYgYikgXiAoYSAmIGMpIF4gKGIgJiBjKSkpIHwgMDtcbiAgICAgICAgICAgIGggPSBnO1xuICAgICAgICAgICAgZyA9IGY7XG4gICAgICAgICAgICBmID0gZTtcbiAgICAgICAgICAgIGUgPSAoZCArIHQxKSB8IDA7XG4gICAgICAgICAgICBkID0gYztcbiAgICAgICAgICAgIGMgPSBiO1xuICAgICAgICAgICAgYiA9IGE7XG4gICAgICAgICAgICBhID0gKHQxICsgdDIpIHwgMDtcbiAgICAgICAgfVxuICAgICAgICB2WzBdICs9IGE7XG4gICAgICAgIHZbMV0gKz0gYjtcbiAgICAgICAgdlsyXSArPSBjO1xuICAgICAgICB2WzNdICs9IGQ7XG4gICAgICAgIHZbNF0gKz0gZTtcbiAgICAgICAgdls1XSArPSBmO1xuICAgICAgICB2WzZdICs9IGc7XG4gICAgICAgIHZbN10gKz0gaDtcbiAgICAgICAgcG9zICs9IDY0O1xuICAgICAgICBsZW4gLT0gNjQ7XG4gICAgfVxuICAgIHJldHVybiBwb3M7XG59XG4vLyBIYXNoIGltcGxlbWVudHMgU0hBMjU2IGhhc2ggYWxnb3JpdGhtLlxudmFyIEhhc2ggPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gSGFzaCgpIHtcbiAgICAgICAgdGhpcy5kaWdlc3RMZW5ndGggPSBleHBvcnRzLmRpZ2VzdExlbmd0aDtcbiAgICAgICAgdGhpcy5ibG9ja1NpemUgPSBleHBvcnRzLmJsb2NrU2l6ZTtcbiAgICAgICAgLy8gTm90ZTogSW50MzJBcnJheSBpcyB1c2VkIGluc3RlYWQgb2YgVWludDMyQXJyYXkgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuXG4gICAgICAgIHRoaXMuc3RhdGUgPSBuZXcgSW50MzJBcnJheSg4KTsgLy8gaGFzaCBzdGF0ZVxuICAgICAgICB0aGlzLnRlbXAgPSBuZXcgSW50MzJBcnJheSg2NCk7IC8vIHRlbXBvcmFyeSBzdGF0ZVxuICAgICAgICB0aGlzLmJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KDEyOCk7IC8vIGJ1ZmZlciBmb3IgZGF0YSB0byBoYXNoXG4gICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDsgLy8gbnVtYmVyIG9mIGJ5dGVzIGluIGJ1ZmZlclxuICAgICAgICB0aGlzLmJ5dGVzSGFzaGVkID0gMDsgLy8gbnVtYmVyIG9mIHRvdGFsIGJ5dGVzIGhhc2hlZFxuICAgICAgICB0aGlzLmZpbmlzaGVkID0gZmFsc2U7IC8vIGluZGljYXRlcyB3aGV0aGVyIHRoZSBoYXNoIHdhcyBmaW5hbGl6ZWRcbiAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgIH1cbiAgICAvLyBSZXNldHMgaGFzaCBzdGF0ZSBtYWtpbmcgaXQgcG9zc2libGVcbiAgICAvLyB0byByZS11c2UgdGhpcyBpbnN0YW5jZSB0byBoYXNoIG90aGVyIGRhdGEuXG4gICAgSGFzaC5wcm90b3R5cGUucmVzZXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuc3RhdGVbMF0gPSAweDZhMDllNjY3O1xuICAgICAgICB0aGlzLnN0YXRlWzFdID0gMHhiYjY3YWU4NTtcbiAgICAgICAgdGhpcy5zdGF0ZVsyXSA9IDB4M2M2ZWYzNzI7XG4gICAgICAgIHRoaXMuc3RhdGVbM10gPSAweGE1NGZmNTNhO1xuICAgICAgICB0aGlzLnN0YXRlWzRdID0gMHg1MTBlNTI3ZjtcbiAgICAgICAgdGhpcy5zdGF0ZVs1XSA9IDB4OWIwNTY4OGM7XG4gICAgICAgIHRoaXMuc3RhdGVbNl0gPSAweDFmODNkOWFiO1xuICAgICAgICB0aGlzLnN0YXRlWzddID0gMHg1YmUwY2QxOTtcbiAgICAgICAgdGhpcy5idWZmZXJMZW5ndGggPSAwO1xuICAgICAgICB0aGlzLmJ5dGVzSGFzaGVkID0gMDtcbiAgICAgICAgdGhpcy5maW5pc2hlZCA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIC8vIENsZWFucyBpbnRlcm5hbCBidWZmZXJzIGFuZCByZS1pbml0aWFsaXplcyBoYXNoIHN0YXRlLlxuICAgIEhhc2gucHJvdG90eXBlLmNsZWFuID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuYnVmZmVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltpXSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnRlbXAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMudGVtcFtpXSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgIH07XG4gICAgLy8gVXBkYXRlcyBoYXNoIHN0YXRlIHdpdGggdGhlIGdpdmVuIGRhdGEuXG4gICAgLy9cbiAgICAvLyBPcHRpb25hbGx5LCBsZW5ndGggb2YgdGhlIGRhdGEgY2FuIGJlIHNwZWNpZmllZCB0byBoYXNoXG4gICAgLy8gZmV3ZXIgYnl0ZXMgdGhhbiBkYXRhLmxlbmd0aC5cbiAgICAvL1xuICAgIC8vIFRocm93cyBlcnJvciB3aGVuIHRyeWluZyB0byB1cGRhdGUgYWxyZWFkeSBmaW5hbGl6ZWQgaGFzaDpcbiAgICAvLyBpbnN0YW5jZSBtdXN0IGJlIHJlc2V0IHRvIHVzZSBpdCBhZ2Fpbi5cbiAgICBIYXNoLnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAoZGF0YSwgZGF0YUxlbmd0aCkge1xuICAgICAgICBpZiAoZGF0YUxlbmd0aCA9PT0gdm9pZCAwKSB7IGRhdGFMZW5ndGggPSBkYXRhLmxlbmd0aDsgfVxuICAgICAgICBpZiAodGhpcy5maW5pc2hlZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiU0hBMjU2OiBjYW4ndCB1cGRhdGUgYmVjYXVzZSBoYXNoIHdhcyBmaW5pc2hlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRhdGFQb3MgPSAwO1xuICAgICAgICB0aGlzLmJ5dGVzSGFzaGVkICs9IGRhdGFMZW5ndGg7XG4gICAgICAgIGlmICh0aGlzLmJ1ZmZlckxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHdoaWxlICh0aGlzLmJ1ZmZlckxlbmd0aCA8IDY0ICYmIGRhdGFMZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbdGhpcy5idWZmZXJMZW5ndGgrK10gPSBkYXRhW2RhdGFQb3MrK107XG4gICAgICAgICAgICAgICAgZGF0YUxlbmd0aC0tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuYnVmZmVyTGVuZ3RoID09PSA2NCkge1xuICAgICAgICAgICAgICAgIGhhc2hCbG9ja3ModGhpcy50ZW1wLCB0aGlzLnN0YXRlLCB0aGlzLmJ1ZmZlciwgMCwgNjQpO1xuICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YUxlbmd0aCA+PSA2NCkge1xuICAgICAgICAgICAgZGF0YVBvcyA9IGhhc2hCbG9ja3ModGhpcy50ZW1wLCB0aGlzLnN0YXRlLCBkYXRhLCBkYXRhUG9zLCBkYXRhTGVuZ3RoKTtcbiAgICAgICAgICAgIGRhdGFMZW5ndGggJT0gNjQ7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKGRhdGFMZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlckxlbmd0aCsrXSA9IGRhdGFbZGF0YVBvcysrXTtcbiAgICAgICAgICAgIGRhdGFMZW5ndGgtLTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIC8vIEZpbmFsaXplcyBoYXNoIHN0YXRlIGFuZCBwdXRzIGhhc2ggaW50byBvdXQuXG4gICAgLy9cbiAgICAvLyBJZiBoYXNoIHdhcyBhbHJlYWR5IGZpbmFsaXplZCwgcHV0cyB0aGUgc2FtZSB2YWx1ZS5cbiAgICBIYXNoLnByb3RvdHlwZS5maW5pc2ggPSBmdW5jdGlvbiAob3V0KSB7XG4gICAgICAgIGlmICghdGhpcy5maW5pc2hlZCkge1xuICAgICAgICAgICAgdmFyIGJ5dGVzSGFzaGVkID0gdGhpcy5ieXRlc0hhc2hlZDtcbiAgICAgICAgICAgIHZhciBsZWZ0ID0gdGhpcy5idWZmZXJMZW5ndGg7XG4gICAgICAgICAgICB2YXIgYml0TGVuSGkgPSAoYnl0ZXNIYXNoZWQgLyAweDIwMDAwMDAwKSB8IDA7XG4gICAgICAgICAgICB2YXIgYml0TGVuTG8gPSBieXRlc0hhc2hlZCA8PCAzO1xuICAgICAgICAgICAgdmFyIHBhZExlbmd0aCA9IChieXRlc0hhc2hlZCAlIDY0IDwgNTYpID8gNjQgOiAxMjg7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltsZWZ0XSA9IDB4ODA7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gbGVmdCArIDE7IGkgPCBwYWRMZW5ndGggLSA4OyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltpXSA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltwYWRMZW5ndGggLSA4XSA9IChiaXRMZW5IaSA+Pj4gMjQpICYgMHhmZjtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BhZExlbmd0aCAtIDddID0gKGJpdExlbkhpID4+PiAxNikgJiAweGZmO1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbcGFkTGVuZ3RoIC0gNl0gPSAoYml0TGVuSGkgPj4+IDgpICYgMHhmZjtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BhZExlbmd0aCAtIDVdID0gKGJpdExlbkhpID4+PiAwKSAmIDB4ZmY7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltwYWRMZW5ndGggLSA0XSA9IChiaXRMZW5MbyA+Pj4gMjQpICYgMHhmZjtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BhZExlbmd0aCAtIDNdID0gKGJpdExlbkxvID4+PiAxNikgJiAweGZmO1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbcGFkTGVuZ3RoIC0gMl0gPSAoYml0TGVuTG8gPj4+IDgpICYgMHhmZjtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BhZExlbmd0aCAtIDFdID0gKGJpdExlbkxvID4+PiAwKSAmIDB4ZmY7XG4gICAgICAgICAgICBoYXNoQmxvY2tzKHRoaXMudGVtcCwgdGhpcy5zdGF0ZSwgdGhpcy5idWZmZXIsIDAsIHBhZExlbmd0aCk7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDg7IGkrKykge1xuICAgICAgICAgICAgb3V0W2kgKiA0ICsgMF0gPSAodGhpcy5zdGF0ZVtpXSA+Pj4gMjQpICYgMHhmZjtcbiAgICAgICAgICAgIG91dFtpICogNCArIDFdID0gKHRoaXMuc3RhdGVbaV0gPj4+IDE2KSAmIDB4ZmY7XG4gICAgICAgICAgICBvdXRbaSAqIDQgKyAyXSA9ICh0aGlzLnN0YXRlW2ldID4+PiA4KSAmIDB4ZmY7XG4gICAgICAgICAgICBvdXRbaSAqIDQgKyAzXSA9ICh0aGlzLnN0YXRlW2ldID4+PiAwKSAmIDB4ZmY7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICAvLyBSZXR1cm5zIHRoZSBmaW5hbCBoYXNoIGRpZ2VzdC5cbiAgICBIYXNoLnByb3RvdHlwZS5kaWdlc3QgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBvdXQgPSBuZXcgVWludDhBcnJheSh0aGlzLmRpZ2VzdExlbmd0aCk7XG4gICAgICAgIHRoaXMuZmluaXNoKG91dCk7XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgfTtcbiAgICAvLyBJbnRlcm5hbCBmdW5jdGlvbiBmb3IgdXNlIGluIEhNQUMgZm9yIG9wdGltaXphdGlvbi5cbiAgICBIYXNoLnByb3RvdHlwZS5fc2F2ZVN0YXRlID0gZnVuY3Rpb24gKG91dCkge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc3RhdGUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIG91dFtpXSA9IHRoaXMuc3RhdGVbaV07XG4gICAgICAgIH1cbiAgICB9O1xuICAgIC8vIEludGVybmFsIGZ1bmN0aW9uIGZvciB1c2UgaW4gSE1BQyBmb3Igb3B0aW1pemF0aW9uLlxuICAgIEhhc2gucHJvdG90eXBlLl9yZXN0b3JlU3RhdGUgPSBmdW5jdGlvbiAoZnJvbSwgYnl0ZXNIYXNoZWQpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnN0YXRlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlW2ldID0gZnJvbVtpXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJ5dGVzSGFzaGVkID0gYnl0ZXNIYXNoZWQ7XG4gICAgICAgIHRoaXMuZmluaXNoZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5idWZmZXJMZW5ndGggPSAwO1xuICAgIH07XG4gICAgcmV0dXJuIEhhc2g7XG59KCkpO1xuZXhwb3J0cy5IYXNoID0gSGFzaDtcbi8vIEhNQUMgaW1wbGVtZW50cyBITUFDLVNIQTI1NiBtZXNzYWdlIGF1dGhlbnRpY2F0aW9uIGFsZ29yaXRobS5cbnZhciBITUFDID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEhNQUMoa2V5KSB7XG4gICAgICAgIHRoaXMuaW5uZXIgPSBuZXcgSGFzaCgpO1xuICAgICAgICB0aGlzLm91dGVyID0gbmV3IEhhc2goKTtcbiAgICAgICAgdGhpcy5ibG9ja1NpemUgPSB0aGlzLmlubmVyLmJsb2NrU2l6ZTtcbiAgICAgICAgdGhpcy5kaWdlc3RMZW5ndGggPSB0aGlzLmlubmVyLmRpZ2VzdExlbmd0aDtcbiAgICAgICAgdmFyIHBhZCA9IG5ldyBVaW50OEFycmF5KHRoaXMuYmxvY2tTaXplKTtcbiAgICAgICAgaWYgKGtleS5sZW5ndGggPiB0aGlzLmJsb2NrU2l6ZSkge1xuICAgICAgICAgICAgKG5ldyBIYXNoKCkpLnVwZGF0ZShrZXkpLmZpbmlzaChwYWQpLmNsZWFuKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHBhZFtpXSA9IGtleVtpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhZC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgcGFkW2ldIF49IDB4MzY7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbm5lci51cGRhdGUocGFkKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHBhZFtpXSBePSAweDM2IF4gMHg1YztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm91dGVyLnVwZGF0ZShwYWQpO1xuICAgICAgICB0aGlzLmlzdGF0ZSA9IG5ldyBVaW50MzJBcnJheSg4KTtcbiAgICAgICAgdGhpcy5vc3RhdGUgPSBuZXcgVWludDMyQXJyYXkoOCk7XG4gICAgICAgIHRoaXMuaW5uZXIuX3NhdmVTdGF0ZSh0aGlzLmlzdGF0ZSk7XG4gICAgICAgIHRoaXMub3V0ZXIuX3NhdmVTdGF0ZSh0aGlzLm9zdGF0ZSk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBwYWRbaV0gPSAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJldHVybnMgSE1BQyBzdGF0ZSB0byB0aGUgc3RhdGUgaW5pdGlhbGl6ZWQgd2l0aCBrZXlcbiAgICAvLyB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIHJ1biBITUFDIG92ZXIgdGhlIG90aGVyIGRhdGEgd2l0aCB0aGUgc2FtZVxuICAgIC8vIGtleSB3aXRob3V0IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgIEhNQUMucHJvdG90eXBlLnJlc2V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmlubmVyLl9yZXN0b3JlU3RhdGUodGhpcy5pc3RhdGUsIHRoaXMuaW5uZXIuYmxvY2tTaXplKTtcbiAgICAgICAgdGhpcy5vdXRlci5fcmVzdG9yZVN0YXRlKHRoaXMub3N0YXRlLCB0aGlzLm91dGVyLmJsb2NrU2l6ZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgLy8gQ2xlYW5zIEhNQUMgc3RhdGUuXG4gICAgSE1BQy5wcm90b3R5cGUuY2xlYW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5pc3RhdGUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMub3N0YXRlW2ldID0gdGhpcy5pc3RhdGVbaV0gPSAwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5uZXIuY2xlYW4oKTtcbiAgICAgICAgdGhpcy5vdXRlci5jbGVhbigpO1xuICAgIH07XG4gICAgLy8gVXBkYXRlcyBzdGF0ZSB3aXRoIHByb3ZpZGVkIGRhdGEuXG4gICAgSE1BQy5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgdGhpcy5pbm5lci51cGRhdGUoZGF0YSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgLy8gRmluYWxpemVzIEhNQUMgYW5kIHB1dHMgdGhlIHJlc3VsdCBpbiBvdXQuXG4gICAgSE1BQy5wcm90b3R5cGUuZmluaXNoID0gZnVuY3Rpb24gKG91dCkge1xuICAgICAgICBpZiAodGhpcy5vdXRlci5maW5pc2hlZCkge1xuICAgICAgICAgICAgdGhpcy5vdXRlci5maW5pc2gob3V0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5uZXIuZmluaXNoKG91dCk7XG4gICAgICAgICAgICB0aGlzLm91dGVyLnVwZGF0ZShvdXQsIHRoaXMuZGlnZXN0TGVuZ3RoKS5maW5pc2gob3V0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIC8vIFJldHVybnMgbWVzc2FnZSBhdXRoZW50aWNhdGlvbiBjb2RlLlxuICAgIEhNQUMucHJvdG90eXBlLmRpZ2VzdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIG91dCA9IG5ldyBVaW50OEFycmF5KHRoaXMuZGlnZXN0TGVuZ3RoKTtcbiAgICAgICAgdGhpcy5maW5pc2gob3V0KTtcbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICB9O1xuICAgIHJldHVybiBITUFDO1xufSgpKTtcbmV4cG9ydHMuSE1BQyA9IEhNQUM7XG4vLyBSZXR1cm5zIFNIQTI1NiBoYXNoIG9mIGRhdGEuXG5mdW5jdGlvbiBoYXNoKGRhdGEpIHtcbiAgICB2YXIgaCA9IChuZXcgSGFzaCgpKS51cGRhdGUoZGF0YSk7XG4gICAgdmFyIGRpZ2VzdCA9IGguZGlnZXN0KCk7XG4gICAgaC5jbGVhbigpO1xuICAgIHJldHVybiBkaWdlc3Q7XG59XG5leHBvcnRzLmhhc2ggPSBoYXNoO1xuLy8gRnVuY3Rpb24gaGFzaCBpcyBib3RoIGF2YWlsYWJsZSBhcyBtb2R1bGUuaGFzaCBhbmQgYXMgZGVmYXVsdCBleHBvcnQuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGhhc2g7XG4vLyBSZXR1cm5zIEhNQUMtU0hBMjU2IG9mIGRhdGEgdW5kZXIgdGhlIGtleS5cbmZ1bmN0aW9uIGhtYWMoa2V5LCBkYXRhKSB7XG4gICAgdmFyIGggPSAobmV3IEhNQUMoa2V5KSkudXBkYXRlKGRhdGEpO1xuICAgIHZhciBkaWdlc3QgPSBoLmRpZ2VzdCgpO1xuICAgIGguY2xlYW4oKTtcbiAgICByZXR1cm4gZGlnZXN0O1xufVxuZXhwb3J0cy5obWFjID0gaG1hYztcbi8vIEZpbGxzIGhrZGYgYnVmZmVyIGxpa2UgdGhpczpcbi8vIFQoMSkgPSBITUFDLUhhc2goUFJLLCBUKDApIHwgaW5mbyB8IDB4MDEpXG5mdW5jdGlvbiBmaWxsQnVmZmVyKGJ1ZmZlciwgaG1hYywgaW5mbywgY291bnRlcikge1xuICAgIC8vIENvdW50ZXIgaXMgYSBieXRlIHZhbHVlOiBjaGVjayBpZiBpdCBvdmVyZmxvd2VkLlxuICAgIHZhciBudW0gPSBjb3VudGVyWzBdO1xuICAgIGlmIChudW0gPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaGtkZjogY2Fubm90IGV4cGFuZCBtb3JlXCIpO1xuICAgIH1cbiAgICAvLyBQcmVwYXJlIEhNQUMgaW5zdGFuY2UgZm9yIG5ldyBkYXRhIHdpdGggb2xkIGtleS5cbiAgICBobWFjLnJlc2V0KCk7XG4gICAgLy8gSGFzaCBpbiBwcmV2aW91cyBvdXRwdXQgaWYgaXQgd2FzIGdlbmVyYXRlZFxuICAgIC8vIChpLmUuIGNvdW50ZXIgaXMgZ3JlYXRlciB0aGFuIDEpLlxuICAgIGlmIChudW0gPiAxKSB7XG4gICAgICAgIGhtYWMudXBkYXRlKGJ1ZmZlcik7XG4gICAgfVxuICAgIC8vIEhhc2ggaW4gaW5mbyBpZiBpdCBleGlzdHMuXG4gICAgaWYgKGluZm8pIHtcbiAgICAgICAgaG1hYy51cGRhdGUoaW5mbyk7XG4gICAgfVxuICAgIC8vIEhhc2ggaW4gdGhlIGNvdW50ZXIuXG4gICAgaG1hYy51cGRhdGUoY291bnRlcik7XG4gICAgLy8gT3V0cHV0IHJlc3VsdCB0byBidWZmZXIgYW5kIGNsZWFuIEhNQUMgaW5zdGFuY2UuXG4gICAgaG1hYy5maW5pc2goYnVmZmVyKTtcbiAgICAvLyBJbmNyZW1lbnQgY291bnRlciBpbnNpZGUgdHlwZWQgYXJyYXksIHRoaXMgd29ya3MgcHJvcGVybHkuXG4gICAgY291bnRlclswXSsrO1xufVxudmFyIGhrZGZTYWx0ID0gbmV3IFVpbnQ4QXJyYXkoZXhwb3J0cy5kaWdlc3RMZW5ndGgpOyAvLyBGaWxsZWQgd2l0aCB6ZXJvZXMuXG5mdW5jdGlvbiBoa2RmKGtleSwgc2FsdCwgaW5mbywgbGVuZ3RoKSB7XG4gICAgaWYgKHNhbHQgPT09IHZvaWQgMCkgeyBzYWx0ID0gaGtkZlNhbHQ7IH1cbiAgICBpZiAobGVuZ3RoID09PSB2b2lkIDApIHsgbGVuZ3RoID0gMzI7IH1cbiAgICB2YXIgY291bnRlciA9IG5ldyBVaW50OEFycmF5KFsxXSk7XG4gICAgLy8gSEtERi1FeHRyYWN0IHVzZXMgc2FsdCBhcyBITUFDIGtleSwgYW5kIGtleSBhcyBkYXRhLlxuICAgIHZhciBva20gPSBobWFjKHNhbHQsIGtleSk7XG4gICAgLy8gSW5pdGlhbGl6ZSBITUFDIGZvciBleHBhbmRpbmcgd2l0aCBleHRyYWN0ZWQga2V5LlxuICAgIC8vIEVuc3VyZSBubyBjb2xsaXNpb25zIHdpdGggYGhtYWNgIGZ1bmN0aW9uLlxuICAgIHZhciBobWFjXyA9IG5ldyBITUFDKG9rbSk7XG4gICAgLy8gQWxsb2NhdGUgYnVmZmVyLlxuICAgIHZhciBidWZmZXIgPSBuZXcgVWludDhBcnJheShobWFjXy5kaWdlc3RMZW5ndGgpO1xuICAgIHZhciBidWZwb3MgPSBidWZmZXIubGVuZ3RoO1xuICAgIHZhciBvdXQgPSBuZXcgVWludDhBcnJheShsZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGJ1ZnBvcyA9PT0gYnVmZmVyLmxlbmd0aCkge1xuICAgICAgICAgICAgZmlsbEJ1ZmZlcihidWZmZXIsIGhtYWNfLCBpbmZvLCBjb3VudGVyKTtcbiAgICAgICAgICAgIGJ1ZnBvcyA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgb3V0W2ldID0gYnVmZmVyW2J1ZnBvcysrXTtcbiAgICB9XG4gICAgaG1hY18uY2xlYW4oKTtcbiAgICBidWZmZXIuZmlsbCgwKTtcbiAgICBjb3VudGVyLmZpbGwoMCk7XG4gICAgcmV0dXJuIG91dDtcbn1cbmV4cG9ydHMuaGtkZiA9IGhrZGY7XG4vLyBEZXJpdmVzIGEga2V5IGZyb20gcGFzc3dvcmQgYW5kIHNhbHQgdXNpbmcgUEJLREYyLUhNQUMtU0hBMjU2XG4vLyB3aXRoIHRoZSBnaXZlbiBudW1iZXIgb2YgaXRlcmF0aW9ucy5cbi8vXG4vLyBUaGUgbnVtYmVyIG9mIGJ5dGVzIHJldHVybmVkIGlzIGVxdWFsIHRvIGRrTGVuLlxuLy9cbi8vIChGb3IgYmV0dGVyIHNlY3VyaXR5LCBhdm9pZCBka0xlbiBncmVhdGVyIHRoYW4gaGFzaCBsZW5ndGggLSAzMiBieXRlcykuXG5mdW5jdGlvbiBwYmtkZjIocGFzc3dvcmQsIHNhbHQsIGl0ZXJhdGlvbnMsIGRrTGVuKSB7XG4gICAgdmFyIHByZiA9IG5ldyBITUFDKHBhc3N3b3JkKTtcbiAgICB2YXIgbGVuID0gcHJmLmRpZ2VzdExlbmd0aDtcbiAgICB2YXIgY3RyID0gbmV3IFVpbnQ4QXJyYXkoNCk7XG4gICAgdmFyIHQgPSBuZXcgVWludDhBcnJheShsZW4pO1xuICAgIHZhciB1ID0gbmV3IFVpbnQ4QXJyYXkobGVuKTtcbiAgICB2YXIgZGsgPSBuZXcgVWludDhBcnJheShka0xlbik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgKiBsZW4gPCBka0xlbjsgaSsrKSB7XG4gICAgICAgIHZhciBjID0gaSArIDE7XG4gICAgICAgIGN0clswXSA9IChjID4+PiAyNCkgJiAweGZmO1xuICAgICAgICBjdHJbMV0gPSAoYyA+Pj4gMTYpICYgMHhmZjtcbiAgICAgICAgY3RyWzJdID0gKGMgPj4+IDgpICYgMHhmZjtcbiAgICAgICAgY3RyWzNdID0gKGMgPj4+IDApICYgMHhmZjtcbiAgICAgICAgcHJmLnJlc2V0KCk7XG4gICAgICAgIHByZi51cGRhdGUoc2FsdCk7XG4gICAgICAgIHByZi51cGRhdGUoY3RyKTtcbiAgICAgICAgcHJmLmZpbmlzaCh1KTtcbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsZW47IGorKykge1xuICAgICAgICAgICAgdFtqXSA9IHVbal07XG4gICAgICAgIH1cbiAgICAgICAgZm9yICh2YXIgaiA9IDI7IGogPD0gaXRlcmF0aW9uczsgaisrKSB7XG4gICAgICAgICAgICBwcmYucmVzZXQoKTtcbiAgICAgICAgICAgIHByZi51cGRhdGUodSkuZmluaXNoKHUpO1xuICAgICAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBsZW47IGsrKykge1xuICAgICAgICAgICAgICAgIHRba10gXj0gdVtrXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGxlbiAmJiBpICogbGVuICsgaiA8IGRrTGVuOyBqKyspIHtcbiAgICAgICAgICAgIGRrW2kgKiBsZW4gKyBqXSA9IHRbal07XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICB0W2ldID0gdVtpXSA9IDA7XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNDsgaSsrKSB7XG4gICAgICAgIGN0cltpXSA9IDA7XG4gICAgfVxuICAgIHByZi5jbGVhbigpO1xuICAgIHJldHVybiBkaztcbn1cbmV4cG9ydHMucGJrZGYyID0gcGJrZGYyO1xufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbmNvbnN0IHBlcSA9IG5ldyBVaW50MzJBcnJheSgweDEwMDAwKTtcbmNvbnN0IG15ZXJzXzMyID0gKGEsIGIpID0+IHtcbiAgY29uc3QgbiA9IGEubGVuZ3RoO1xuICBjb25zdCBtID0gYi5sZW5ndGg7XG4gIGNvbnN0IGxzdCA9IDEgPDwgKG4gLSAxKTtcbiAgbGV0IHB2ID0gLTE7XG4gIGxldCBtdiA9IDA7XG4gIGxldCBzYyA9IG47XG4gIGxldCBpID0gbjtcbiAgd2hpbGUgKGktLSkge1xuICAgIHBlcVthLmNoYXJDb2RlQXQoaSldIHw9IDEgPDwgaTtcbiAgfVxuICBmb3IgKGkgPSAwOyBpIDwgbTsgaSsrKSB7XG4gICAgbGV0IGVxID0gcGVxW2IuY2hhckNvZGVBdChpKV07XG4gICAgY29uc3QgeHYgPSBlcSB8IG12O1xuICAgIGVxIHw9ICgoZXEgJiBwdikgKyBwdikgXiBwdjtcbiAgICBtdiB8PSB+KGVxIHwgcHYpO1xuICAgIHB2ICY9IGVxO1xuICAgIGlmIChtdiAmIGxzdCkge1xuICAgICAgc2MrKztcbiAgICB9XG4gICAgaWYgKHB2ICYgbHN0KSB7XG4gICAgICBzYy0tO1xuICAgIH1cbiAgICBtdiA9IChtdiA8PCAxKSB8IDE7XG4gICAgcHYgPSAocHYgPDwgMSkgfCB+KHh2IHwgbXYpO1xuICAgIG12ICY9IHh2O1xuICB9XG4gIGkgPSBuO1xuICB3aGlsZSAoaS0tKSB7XG4gICAgcGVxW2EuY2hhckNvZGVBdChpKV0gPSAwO1xuICB9XG4gIHJldHVybiBzYztcbn07XG5cbmNvbnN0IG15ZXJzX3ggPSAoYSwgYikgPT4ge1xuICBjb25zdCBuID0gYS5sZW5ndGg7XG4gIGNvbnN0IG0gPSBiLmxlbmd0aDtcbiAgY29uc3QgbWhjID0gW107XG4gIGNvbnN0IHBoYyA9IFtdO1xuICBjb25zdCBoc2l6ZSA9IE1hdGguY2VpbChuIC8gMzIpO1xuICBjb25zdCB2c2l6ZSA9IE1hdGguY2VpbChtIC8gMzIpO1xuICBsZXQgc2NvcmUgPSBtO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGhzaXplOyBpKyspIHtcbiAgICBwaGNbaV0gPSAtMTtcbiAgICBtaGNbaV0gPSAwO1xuICB9XG4gIGxldCBqID0gMDtcbiAgZm9yICg7IGogPCB2c2l6ZSAtIDE7IGorKykge1xuICAgIGxldCBtdiA9IDA7XG4gICAgbGV0IHB2ID0gLTE7XG4gICAgY29uc3Qgc3RhcnQgPSBqICogMzI7XG4gICAgY29uc3QgZW5kID0gTWF0aC5taW4oMzIsIG0pICsgc3RhcnQ7XG4gICAgZm9yIChsZXQgayA9IHN0YXJ0OyBrIDwgZW5kOyBrKyspIHtcbiAgICAgIHBlcVtiLmNoYXJDb2RlQXQoayldIHw9IDEgPDwgaztcbiAgICB9XG4gICAgc2NvcmUgPSBtO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgICBjb25zdCBlcSA9IHBlcVthLmNoYXJDb2RlQXQoaSldO1xuICAgICAgY29uc3QgcGIgPSAocGhjWyhpIC8gMzIpIHwgMF0gPj4+IGkpICYgMTtcbiAgICAgIGNvbnN0IG1iID0gKG1oY1soaSAvIDMyKSB8IDBdID4+PiBpKSAmIDE7XG4gICAgICBjb25zdCB4diA9IGVxIHwgbXY7XG4gICAgICBjb25zdCB4aCA9ICgoKChlcSB8IG1iKSAmIHB2KSArIHB2KSBeIHB2KSB8IGVxIHwgbWI7XG4gICAgICBsZXQgcGggPSBtdiB8IH4oeGggfCBwdik7XG4gICAgICBsZXQgbWggPSBwdiAmIHhoO1xuICAgICAgaWYgKChwaCA+Pj4gMzEpIF4gcGIpIHtcbiAgICAgICAgcGhjWyhpIC8gMzIpIHwgMF0gXj0gMSA8PCBpO1xuICAgICAgfVxuICAgICAgaWYgKChtaCA+Pj4gMzEpIF4gbWIpIHtcbiAgICAgICAgbWhjWyhpIC8gMzIpIHwgMF0gXj0gMSA8PCBpO1xuICAgICAgfVxuICAgICAgcGggPSAocGggPDwgMSkgfCBwYjtcbiAgICAgIG1oID0gKG1oIDw8IDEpIHwgbWI7XG4gICAgICBwdiA9IG1oIHwgfih4diB8IHBoKTtcbiAgICAgIG12ID0gcGggJiB4djtcbiAgICB9XG4gICAgZm9yIChsZXQgayA9IHN0YXJ0OyBrIDwgZW5kOyBrKyspIHtcbiAgICAgIHBlcVtiLmNoYXJDb2RlQXQoayldID0gMDtcbiAgICB9XG4gIH1cbiAgbGV0IG12ID0gMDtcbiAgbGV0IHB2ID0gLTE7XG4gIGNvbnN0IHN0YXJ0ID0gaiAqIDMyO1xuICBjb25zdCBlbmQgPSBNYXRoLm1pbigzMiwgbSAtIHN0YXJ0KSArIHN0YXJ0O1xuICBmb3IgKGxldCBrID0gc3RhcnQ7IGsgPCBlbmQ7IGsrKykge1xuICAgIHBlcVtiLmNoYXJDb2RlQXQoayldIHw9IDEgPDwgaztcbiAgfVxuICBzY29yZSA9IG07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgY29uc3QgZXEgPSBwZXFbYS5jaGFyQ29kZUF0KGkpXTtcbiAgICBjb25zdCBwYiA9IChwaGNbKGkgLyAzMikgfCAwXSA+Pj4gaSkgJiAxO1xuICAgIGNvbnN0IG1iID0gKG1oY1soaSAvIDMyKSB8IDBdID4+PiBpKSAmIDE7XG4gICAgY29uc3QgeHYgPSBlcSB8IG12O1xuICAgIGNvbnN0IHhoID0gKCgoKGVxIHwgbWIpICYgcHYpICsgcHYpIF4gcHYpIHwgZXEgfCBtYjtcbiAgICBsZXQgcGggPSBtdiB8IH4oeGggfCBwdik7XG4gICAgbGV0IG1oID0gcHYgJiB4aDtcbiAgICBzY29yZSArPSAocGggPj4+IChtIC0gMSkpICYgMTtcbiAgICBzY29yZSAtPSAobWggPj4+IChtIC0gMSkpICYgMTtcbiAgICBpZiAoKHBoID4+PiAzMSkgXiBwYikge1xuICAgICAgcGhjWyhpIC8gMzIpIHwgMF0gXj0gMSA8PCBpO1xuICAgIH1cbiAgICBpZiAoKG1oID4+PiAzMSkgXiBtYikge1xuICAgICAgbWhjWyhpIC8gMzIpIHwgMF0gXj0gMSA8PCBpO1xuICAgIH1cbiAgICBwaCA9IChwaCA8PCAxKSB8IHBiO1xuICAgIG1oID0gKG1oIDw8IDEpIHwgbWI7XG4gICAgcHYgPSBtaCB8IH4oeHYgfCBwaCk7XG4gICAgbXYgPSBwaCAmIHh2O1xuICB9XG4gIGZvciAobGV0IGsgPSBzdGFydDsgayA8IGVuZDsgaysrKSB7XG4gICAgcGVxW2IuY2hhckNvZGVBdChrKV0gPSAwO1xuICB9XG4gIHJldHVybiBzY29yZTtcbn07XG5cbmNvbnN0IGRpc3RhbmNlID0gKGEsIGIpID0+IHtcbiAgaWYgKGEubGVuZ3RoID4gYi5sZW5ndGgpIHtcbiAgICBjb25zdCB0bXAgPSBiO1xuICAgIGIgPSBhO1xuICAgIGEgPSB0bXA7XG4gIH1cbiAgaWYgKGEubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGIubGVuZ3RoO1xuICB9XG4gIGlmIChhLmxlbmd0aCA8PSAzMikge1xuICAgIHJldHVybiBteWVyc18zMihhLCBiKTtcbiAgfVxuICByZXR1cm4gbXllcnNfeChhLCBiKTtcbn07XG5cbmNvbnN0IGNsb3Nlc3QgPSAoc3RyLCBhcnIpID0+IHtcbiAgbGV0IG1pbl9kaXN0YW5jZSA9IEluZmluaXR5O1xuICBsZXQgbWluX2luZGV4ID0gMDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBkaXN0ID0gZGlzdGFuY2Uoc3RyLCBhcnJbaV0pO1xuICAgIGlmIChkaXN0IDwgbWluX2Rpc3RhbmNlKSB7XG4gICAgICBtaW5fZGlzdGFuY2UgPSBkaXN0O1xuICAgICAgbWluX2luZGV4ID0gaTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFyclttaW5faW5kZXhdO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGNsb3Nlc3QsIGRpc3RhbmNlXG59XG4iLCJcInVzZSBzdHJpY3RcIjtcbi8vIFJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZ2Vla3Nmb3JnZWVrcy5vcmcvamFyby1hbmQtamFyby13aW5rbGVyLXNpbWlsYXJpdHkvXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmphcm9XaW5rbGVyID0gZXhwb3J0cy5qYXJvID0gdm9pZCAwO1xuLyoqXG4gKlxuICogQHBhcmFtIHN0cjEgU3RyaW5nIDEgZm9yIGNvbXBhcmVcbiAqIEBwYXJhbSBzdHIyIFN0cmluZyAyIGZvciBjb21wYXJlXG4gKiBAcGFyYW0gb3B0aW9ucyB0byBjb250cm9sIGNhc2Ugc2Vuc2l0aXZlIG9yIG5vdFxuICovXG5mdW5jdGlvbiBqYXJvKHN0cjEsIHN0cjIsIG9wdGlvbnMpIHtcbiAgICAvLyBFeGl0IGVhcmx5IGlmIGVpdGhlciBhcmUgZW1wdHkuXG4gICAgaWYgKHN0cjEubGVuZ3RoID09PSAwIHx8IHN0cjIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICAvLyBDb252ZXJ0IHRvIHVwcGVyIGlmIGNhc2Utc2Vuc2l0aXZlIGlzIGZhbHNlLlxuICAgIGlmIChvcHRpb25zICYmICFvcHRpb25zLmNhc2VTZW5zaXRpdmUpIHtcbiAgICAgICAgc3RyMSA9IHN0cjEudG9VcHBlckNhc2UoKTtcbiAgICAgICAgc3RyMiA9IHN0cjIudG9VcHBlckNhc2UoKTtcbiAgICB9XG4gICAgLy8gRXhhY3QgbWF0Y2hcbiAgICBpZiAoc3RyMSA9PT0gc3RyMikge1xuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgLy8gTnVtYmVyIG9mIG1hdGNoZXNcbiAgICB2YXIgbSA9IDA7XG4gICAgLy8gTGVuZ3RoIG9mIHR3byBTdHJpbmdzXG4gICAgdmFyIGxlbjEgPSBzdHIxLmxlbmd0aDtcbiAgICB2YXIgbGVuMiA9IHN0cjIubGVuZ3RoO1xuICAgIC8vIE1heGltdW0gZGlzdGFuY2VcbiAgICB2YXIgd2luZG93ID0gTWF0aC5mbG9vcihNYXRoLm1heChsZW4xLCBsZW4yKSAvIDIpIC0gMTtcbiAgICAvLyBIYXNoIGZvciBtYXRjaGVzXG4gICAgdmFyIHN0cjFIYXNoID0gbmV3IEFycmF5KGxlbjEpO1xuICAgIHZhciBzdHIySGFzaCA9IG5ldyBBcnJheShsZW4yKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjE7IGkrKykge1xuICAgICAgICBmb3IgKHZhciBqID0gTWF0aC5tYXgoMCwgaSAtIHdpbmRvdyk7IGogPD0gTWF0aC5taW4obGVuMiwgaSArIHdpbmRvdyArIDEpOyBqKyspIHtcbiAgICAgICAgICAgIGlmICghc3RyMUhhc2hbaV0gJiYgIXN0cjJIYXNoW2pdICYmIHN0cjFbaV0gPT09IHN0cjJbal0pIHtcbiAgICAgICAgICAgICAgICArK207XG4gICAgICAgICAgICAgICAgc3RyMUhhc2hbaV0gPSBzdHIySGFzaFtqXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRXhpdCBlYXJseSBpZiBubyBtYXRjaGVzIHdlcmUgZm91bmQuXG4gICAgaWYgKG0gPT09IDApIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIC8vIENvdW50IHRoZSB0cmFuc3Bvc2l0aW9ucy5cbiAgICB2YXIgdCA9IDA7XG4gICAgdmFyIHBvaW50ID0gMDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjE7IGkrKykge1xuICAgICAgICBpZiAoc3RyMUhhc2hbaV0pIHtcbiAgICAgICAgICAgIHdoaWxlICghc3RyMkhhc2hbcG9pbnRdKSB7XG4gICAgICAgICAgICAgICAgcG9pbnQrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzdHIxLmNoYXJBdChpKSAhPT0gc3RyMi5jaGFyQXQocG9pbnQrKykpIHtcbiAgICAgICAgICAgICAgICB0Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdCAvPSAyO1xuICAgIHJldHVybiAobSAvIGxlbjEgKyBtIC8gbGVuMiArIChtIC0gdCkgLyBtKSAvIDM7XG59XG5leHBvcnRzLmphcm8gPSBqYXJvO1xuLyoqXG4gKlxuICogQHBhcmFtIHN0cjEgU3RyaW5nIDEgZm9yIGNvbXBhcmVcbiAqIEBwYXJhbSBzdHIyIFN0cmluZyAyIGZvciBjb21wYXJlXG4gKiBAcGFyYW0gb3B0aW9ucyB0byBjb250cm9sIGNhc2Ugc2Vuc2l0aXZlIG9yIG5vdFxuICovXG5mdW5jdGlvbiBqYXJvV2lua2xlcihzdHIxLCBzdHIyLCBvcHRpb25zKSB7XG4gICAgLy8gSmFybyBEaXN0YW5jZVxuICAgIHZhciBqYXJvRGlzdCA9IGphcm8oc3RyMSwgc3RyMiwgb3B0aW9ucyk7XG4gICAgLy8gU2FtZSBwcmVmaXggbGVuZ3RoLCBtYXhpdW0gaXMgNFxuICAgIHZhciBwcmVmaXggPSAwO1xuICAgIGlmIChqYXJvRGlzdCA+IDAuNykge1xuICAgICAgICB2YXIgbWluSW5kZXggPSBNYXRoLm1pbihzdHIxLmxlbmd0aCwgc3RyMi5sZW5ndGgpO1xuICAgICAgICB2YXIgaSA9IDA7XG4gICAgICAgIHdoaWxlIChzdHIxW2ldID09PSBzdHIyW2ldICYmIGkgPCA0ICYmIGkgPCBtaW5JbmRleCkge1xuICAgICAgICAgICAgKytwcmVmaXg7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgamFyb0Rpc3QgKz0gMC4xICogcHJlZml4ICogKDEgLSBqYXJvRGlzdCk7XG4gICAgfVxuICAgIHJldHVybiBqYXJvRGlzdDtcbn1cbmV4cG9ydHMuamFyb1dpbmtsZXIgPSBqYXJvV2lua2xlcjtcbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5jb25zdCBWMjAwMF9BVE9NX05BTUVfUE9TID0gMzE7XG5leHBvcnQgZnVuY3Rpb24gZ2V0RmluZ2VycHJpbnRzKG1vbHMsIG1vbm9tZXJzKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgbW9kID0geWllbGQgZ3Jvay5mdW5jdGlvbnMuY2FsbCgnQ2hlbTpnZXRSZEtpdE1vZHVsZScpO1xuICAgICAgICBjb25zdCBmcHMgPSBbXTtcbiAgICAgICAgbGV0IGRpY3QgPSBuZXcgTWFwKCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW9ub21lcnMubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICBkaWN0LnNldChtb25vbWVyc1tpXSwgYFIke01hdGgucG93KDEwLCAoaSArIDEpKX1gKTtcbiAgICAgICAgbW9scyA9IGNoYW5nZVRvVjMwMDAobW9scywgZGljdCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW9scy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgbW9sID0gbW9kLmdldF9tb2wobW9sc1tpXSk7XG4gICAgICAgICAgICBjb25zdCBmcCA9IG1vbC5nZXRfcGF0dGVybl9mcF9hc191aW50OGFycmF5KCk7XG4gICAgICAgICAgICBmcHMucHVzaChmcCk7XG4gICAgICAgICAgICBtb2wgPT09IG51bGwgfHwgbW9sID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtb2wuZGVsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZwcztcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNoYW5nZVRvVjMwMDAobW9scywgZGljdCkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW9scy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgY3VyUG9zID0gMDtcbiAgICAgICAgbGV0IGVuZFBvcyA9IDA7XG4gICAgICAgIGxldCBtb2xWMzAwMCA9IGBcbiAgICBEYXRhZ3JvayBtYWNyb21vbGVjdWxlIGhhbmRsZXJcblxuICAwICAwICAwICAwICAwICAwICAgICAgICAgICAgOTk5IFYzMDAwXG5NICBWMzAgQkVHSU4gQ1RBQlxuYDtcbiAgICAgICAgY29uc3QgbW9sID0gbW9sc1tpXTtcbiAgICAgICAgY3VyUG9zID0gbW9sLmluZGV4T2YoJ1xcbicsIGN1clBvcykgKyAxO1xuICAgICAgICBjdXJQb3MgPSBtb2wuaW5kZXhPZignXFxuJywgY3VyUG9zKSArIDE7XG4gICAgICAgIGN1clBvcyA9IG1vbC5pbmRleE9mKCdcXG4nLCBjdXJQb3MpICsgMTtcbiAgICAgICAgY29uc3QgYXRvbU1vbm9tZXJDb3VudHMgPSBwYXJzZUludChtb2wuc3Vic3RyaW5nKGN1clBvcywgY3VyUG9zICsgMykpO1xuICAgICAgICBjb25zdCBib25kTW9ub21lckNvdW50cyA9IHBhcnNlSW50KG1vbC5zdWJzdHJpbmcoY3VyUG9zICsgMywgY3VyUG9zICsgNikpO1xuICAgICAgICBtb2xWMzAwMCArPSBgTSAgVjMwIENPVU5UUyAke2F0b21Nb25vbWVyQ291bnRzfSAke2JvbmRNb25vbWVyQ291bnRzfSAwIDAgMFxcbmA7XG4gICAgICAgIG1vbFYzMDAwICs9ICdNICBWMzAgQkVHSU4gQVRPTVxcbic7XG4gICAgICAgIGZvciAobGV0IGF0b21Sb3dJID0gMDsgYXRvbVJvd0kgPCBhdG9tTW9ub21lckNvdW50czsgYXRvbVJvd0krKykge1xuICAgICAgICAgICAgY3VyUG9zID0gbW9sLmluZGV4T2YoJ1xcbicsIGN1clBvcykgKyAxICsgVjIwMDBfQVRPTV9OQU1FX1BPUztcbiAgICAgICAgICAgIGVuZFBvcyA9IG1vbC5pbmRleE9mKCcgJywgY3VyUG9zKTtcbiAgICAgICAgICAgIGNvbnN0IG1vbm9tZXJOYW1lID0gbW9sLnN1YnN0cmluZyhjdXJQb3MsIGVuZFBvcyk7XG4gICAgICAgICAgICBtb2xWMzAwMCArPSBgTSAgVjMwICR7YXRvbVJvd0kgKyAxfSAke2RpY3QuZ2V0KG1vbm9tZXJOYW1lKX0gMC4wMDAgMC4wMDAgMCAwXFxuYDtcbiAgICAgICAgfVxuICAgICAgICBtb2xWMzAwMCArPSAnTSAgVjMwIEVORCBBVE9NXFxuJztcbiAgICAgICAgbW9sVjMwMDAgKz0gJ00gIFYzMCBCRUdJTiBCT05EXFxuJztcbiAgICAgICAgZm9yIChsZXQgYm9uZFJvd0kgPSAwOyBib25kUm93SSA8IGJvbmRNb25vbWVyQ291bnRzOyBib25kUm93SSsrKSB7XG4gICAgICAgICAgICBjdXJQb3MgPSBtb2wuaW5kZXhPZignXFxuJywgY3VyUG9zKSArIDE7XG4gICAgICAgICAgICBjb25zdCBmaXJzdE1vbm9tZXIgPSBwYXJzZUludChtb2wuc3Vic3RyaW5nKGN1clBvcywgY3VyUG9zICsgMykudHJpbSgpKTtcbiAgICAgICAgICAgIGNvbnN0IHNlY29uZE1vbm9tZXIgPSBwYXJzZUludChtb2wuc3Vic3RyaW5nKGN1clBvcyArIDMsIGN1clBvcyArIDYpLnRyaW0oKSk7XG4gICAgICAgICAgICBjb25zdCBvcmRlciA9IHBhcnNlSW50KG1vbC5zdWJzdHJpbmcoY3VyUG9zICsgNiwgY3VyUG9zICsgOSkudHJpbSgpKTtcbiAgICAgICAgICAgIG1vbFYzMDAwICs9IGBNICBWMzAgJHtib25kUm93SSArIDF9ICR7b3JkZXJ9ICR7Zmlyc3RNb25vbWVyfSAke3NlY29uZE1vbm9tZXJ9XFxuYDtcbiAgICAgICAgfVxuICAgICAgICBtb2xWMzAwMCArPSAnTSAgVjMwIEVORCBCT05EXFxuJztcbiAgICAgICAgbW9sVjMwMDAgKz0gJ00gIFYzMCBFTkQgQ1RBQlxcbic7XG4gICAgICAgIG1vbFYzMDAwICs9ICdNICBFTkQnO1xuICAgICAgICBjb25zb2xlLmxvZyhtb2xWMzAwMCk7XG4gICAgICAgIG1vbHNbaV0gPSBtb2xWMzAwMDtcbiAgICB9XG4gICAgcmV0dXJuIG1vbHM7XG59XG4iLCJleHBvcnQgY29uc3QganNvblNkZk1vbm9tZXJMaWJEaWN0ID0ge1xuICAgICdtb25vbWVyVHlwZSc6IG51bGwsXG4gICAgJ3NtaWxlcyc6IG51bGwsXG4gICAgJ25hbWUnOiAnTW9ub21lck5hbWUnLFxuICAgICdhdXRob3InOiBudWxsLFxuICAgICdtb2xmaWxlJzogJ21vbGVjdWxlJyxcbiAgICAnbmF0dXJhbEFuYWxvZyc6ICdNb25vbWVyTmF0dXJhbEFuYWxvZ0NvZGUnLFxuICAgICdyZ3JvdXBzJzogJ01vbm9tZXJDYXBzJyxcbiAgICAnY3JlYXRlRGF0ZSc6IG51bGwsXG4gICAgJ2lkJzogbnVsbCxcbiAgICAncG9seW1lclR5cGUnOiAnTW9ub21lclR5cGUnLFxuICAgICdzeW1ib2wnOiAnTW9ub21lckNvZGUnXG59O1xuZXhwb3J0IGNvbnN0IFJHUk9VUF9GSUVMRCA9ICdyZ3JvdXBzJztcbmV4cG9ydCBjb25zdCBDQVBfR1JPVVBfU01JTEVTID0gJ2NhcEdyb3VwU21pbGVzJztcbmV4cG9ydCBjb25zdCBSR1JPVVBfQUxURVJfSUQgPSAnYWx0ZXJuYXRlSWQnO1xuZXhwb3J0IGNvbnN0IENBUF9HUk9VUF9OQU1FID0gJ2NhcEdyb3VwTmFtZSc7XG5leHBvcnQgY29uc3QgUkdST1VQX0xBQkVMID0gJ2xhYmVsJztcbmV4cG9ydCBjb25zdCBNT05PTUVSX1NZTUJPTCA9ICdzeW1ib2wnO1xuZXhwb3J0IGNvbnN0IFNERl9NT05PTUVSX05BTUUgPSAnTW9ub21lck5hbWUnO1xuLy8gcmFuZ2Ugb2YgaGV4IG51YmVycyB1c2VkIGluIFBlcFNlYSBsaWJyYXJ5IHRvIGVuZG9kZSBtb25vbWVyc1xuZXhwb3J0IGNvbnN0IE1PTk9NRVJfRU5DT0RFX01JTiA9IDB4MTAwO1xuZXhwb3J0IGNvbnN0IE1PTk9NRVJfRU5DT0RFX01BWCA9IDB4NDBBO1xuIiwiY2xhc3MgQ2VsbCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSAwO1xuICAgICAgICB0aGlzLnBhcmVudEkgPSAwO1xuICAgICAgICB0aGlzLnBhcmVudEogPSAwO1xuICAgIH1cbn1cbjtcbmV4cG9ydCBjbGFzcyBBbGlnbmVkIHtcbiAgICBjb25zdHJ1Y3RvcihzZXExXywgc2VxMl8sIHNjb3JlXykge1xuICAgICAgICB0aGlzLnNlcTEgPSBzZXExXztcbiAgICAgICAgdGhpcy5zZXEyID0gc2VxMl87XG4gICAgICAgIHRoaXMuc2NvcmUgPSBzY29yZV87XG4gICAgfVxufVxuO1xuZXhwb3J0IGNsYXNzIFNlcXVlbmNlQWxpZ25tZW50IHtcbiAgICBjb25zdHJ1Y3RvcihzZXExXywgc2VxMl8sIGdhcF8sIGFsaWduR3JpZF8gPSBcIlwiKSB7XG4gICAgICAgIHRoaXMuc2VxMSA9ICcnO1xuICAgICAgICB0aGlzLnNlcTIgPSAnJztcbiAgICAgICAgdGhpcy5nYXAgPSAxO1xuICAgICAgICB0aGlzLmxlbjEgPSAwO1xuICAgICAgICB0aGlzLmxlbjIgPSAwO1xuICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICB0aGlzLmFsaWduR3JpZCA9IFtdO1xuICAgICAgICB0aGlzLnNjb3JlcyA9IFtdO1xuICAgICAgICB0aGlzLmRwR3JpZCA9IFtdO1xuICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0ge307XG4gICAgICAgIHRoaXMuQkxPU1VNNDUgPSBbWzUsIC0yLCAtMSwgLTIsIC0xLCAtMSwgLTEsIDAsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0xLCAxLCAwLCAtMiwgLTIsIDAsIC0xLCAtMSwgMCwgLTVdLFxuICAgICAgICAgICAgWy0yLCA3LCAwLCAtMSwgLTMsIDEsIDAsIC0yLCAwLCAtMywgLTIsIDMsIC0xLCAtMiwgLTIsIC0xLCAtMSwgLTIsIC0xLCAtMiwgLTEsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDAsIDYsIDIsIC0yLCAwLCAwLCAwLCAxLCAtMiwgLTMsIDAsIC0yLCAtMiwgLTIsIDEsIDAsIC00LCAtMiwgLTMsIDQsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0xLCAyLCA3LCAtMywgMCwgMiwgLTEsIDAsIC00LCAtMywgMCwgLTMsIC00LCAtMSwgMCwgLTEsIC00LCAtMiwgLTMsIDUsIDEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0zLCAtMiwgLTMsIDEyLCAtMywgLTMsIC0zLCAtMywgLTMsIC0yLCAtMywgLTIsIC0yLCAtNCwgLTEsIC0xLCAtNSwgLTMsIC0xLCAtMiwgLTMsIC0yLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDEsIDAsIDAsIC0zLCA2LCAyLCAtMiwgMSwgLTIsIC0yLCAxLCAwLCAtNCwgLTEsIDAsIC0xLCAtMiwgLTEsIC0zLCAwLCA0LCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAwLCAwLCAyLCAtMywgMiwgNiwgLTIsIDAsIC0zLCAtMiwgMSwgLTIsIC0zLCAwLCAwLCAtMSwgLTMsIC0yLCAtMywgMSwgNCwgLTEsIC01XSxcbiAgICAgICAgICAgIFswLCAtMiwgMCwgLTEsIC0zLCAtMiwgLTIsIDcsIC0yLCAtNCwgLTMsIC0yLCAtMiwgLTMsIC0yLCAwLCAtMiwgLTIsIC0zLCAtMywgLTEsIC0yLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAwLCAxLCAwLCAtMywgMSwgMCwgLTIsIDEwLCAtMywgLTIsIC0xLCAwLCAtMiwgLTIsIC0xLCAtMiwgLTMsIDIsIC0zLCAwLCAwLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTIsIC00LCAtMywgLTIsIC0zLCAtNCwgLTMsIDUsIDIsIC0zLCAyLCAwLCAtMiwgLTIsIC0xLCAtMiwgMCwgMywgLTMsIC0zLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTMsIC0zLCAtMiwgLTIsIC0yLCAtMywgLTIsIDIsIDUsIC0zLCAyLCAxLCAtMywgLTMsIC0xLCAtMiwgMCwgMSwgLTMsIC0yLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAzLCAwLCAwLCAtMywgMSwgMSwgLTIsIC0xLCAtMywgLTMsIDUsIC0xLCAtMywgLTEsIC0xLCAtMSwgLTIsIC0xLCAtMiwgMCwgMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTEsIC0yLCAtMywgLTIsIDAsIC0yLCAtMiwgMCwgMiwgMiwgLTEsIDYsIDAsIC0yLCAtMiwgLTEsIC0yLCAwLCAxLCAtMiwgLTEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0yLCAtMiwgLTQsIC0yLCAtNCwgLTMsIC0zLCAtMiwgMCwgMSwgLTMsIDAsIDgsIC0zLCAtMiwgLTEsIDEsIDMsIDAsIC0zLCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0yLCAtMSwgLTQsIC0xLCAwLCAtMiwgLTIsIC0yLCAtMywgLTEsIC0yLCAtMywgOSwgLTEsIC0xLCAtMywgLTMsIC0zLCAtMiwgLTEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMSwgLTEsIDEsIDAsIC0xLCAwLCAwLCAwLCAtMSwgLTIsIC0zLCAtMSwgLTIsIC0yLCAtMSwgNCwgMiwgLTQsIC0yLCAtMSwgMCwgMCwgMCwgLTVdLFxuICAgICAgICAgICAgWzAsIC0xLCAwLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAyLCA1LCAtMywgLTEsIDAsIDAsIC0xLCAwLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0yLCAtNCwgLTQsIC01LCAtMiwgLTMsIC0yLCAtMywgLTIsIC0yLCAtMiwgLTIsIDEsIC0zLCAtNCwgLTMsIDE1LCAzLCAtMywgLTQsIC0yLCAtMiwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMSwgLTIsIC0yLCAtMywgLTEsIC0yLCAtMywgMiwgMCwgMCwgLTEsIDAsIDMsIC0zLCAtMiwgLTEsIDMsIDgsIC0xLCAtMiwgLTIsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTIsIC0zLCAtMywgLTEsIC0zLCAtMywgLTMsIC0zLCAzLCAxLCAtMiwgMSwgMCwgLTMsIC0xLCAwLCAtMywgLTEsIDUsIC0zLCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTEsIDQsIDUsIC0yLCAwLCAxLCAtMSwgMCwgLTMsIC0zLCAwLCAtMiwgLTMsIC0yLCAwLCAwLCAtNCwgLTIsIC0zLCA0LCAyLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAwLCAwLCAxLCAtMywgNCwgNCwgLTIsIDAsIC0zLCAtMiwgMSwgLTEsIC0zLCAtMSwgMCwgLTEsIC0yLCAtMiwgLTMsIDIsIDQsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTEsIC0xLCAtMSwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAwLCAwLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAxXV07XG4gICAgICAgIHRoaXMuQkxPU1VNNTAgPSBbWzUsIC0yLCAtMSwgLTIsIC0xLCAtMSwgLTEsIDAsIC0yLCAtMSwgLTIsIC0xLCAtMSwgLTMsIC0xLCAxLCAwLCAtMywgLTIsIDAsIC0yLCAtMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMiwgNywgLTEsIC0yLCAtNCwgMSwgMCwgLTMsIDAsIC00LCAtMywgMywgLTIsIC0zLCAtMywgLTEsIC0xLCAtMywgLTEsIC0zLCAtMSwgMCwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTEsIDcsIDIsIC0yLCAwLCAwLCAwLCAxLCAtMywgLTQsIDAsIC0yLCAtNCwgLTIsIDEsIDAsIC00LCAtMiwgLTMsIDQsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0yLCAyLCA4LCAtNCwgMCwgMiwgLTEsIC0xLCAtNCwgLTQsIC0xLCAtNCwgLTUsIC0xLCAwLCAtMSwgLTUsIC0zLCAtNCwgNSwgMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTQsIC0yLCAtNCwgMTMsIC0zLCAtMywgLTMsIC0zLCAtMiwgLTIsIC0zLCAtMiwgLTIsIC00LCAtMSwgLTEsIC01LCAtMywgLTEsIC0zLCAtMywgLTIsIC01XSxcbiAgICAgICAgICAgIFstMSwgMSwgMCwgMCwgLTMsIDcsIDIsIC0yLCAxLCAtMywgLTIsIDIsIDAsIC00LCAtMSwgMCwgLTEsIC0xLCAtMSwgLTMsIDAsIDQsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDAsIDAsIDIsIC0zLCAyLCA2LCAtMywgMCwgLTQsIC0zLCAxLCAtMiwgLTMsIC0xLCAtMSwgLTEsIC0zLCAtMiwgLTMsIDEsIDUsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTMsIDAsIC0xLCAtMywgLTIsIC0zLCA4LCAtMiwgLTQsIC00LCAtMiwgLTMsIC00LCAtMiwgMCwgLTIsIC0zLCAtMywgLTQsIC0xLCAtMiwgLTIsIC01XSxcbiAgICAgICAgICAgIFstMiwgMCwgMSwgLTEsIC0zLCAxLCAwLCAtMiwgMTAsIC00LCAtMywgMCwgLTEsIC0xLCAtMiwgLTEsIC0yLCAtMywgMiwgLTQsIDAsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC00LCAtMywgLTQsIC0yLCAtMywgLTQsIC00LCAtNCwgNSwgMiwgLTMsIDIsIDAsIC0zLCAtMywgLTEsIC0zLCAtMSwgNCwgLTQsIC0zLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTQsIC00LCAtMiwgLTIsIC0zLCAtNCwgLTMsIDIsIDUsIC0zLCAzLCAxLCAtNCwgLTMsIC0xLCAtMiwgLTEsIDEsIC00LCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgMywgMCwgLTEsIC0zLCAyLCAxLCAtMiwgMCwgLTMsIC0zLCA2LCAtMiwgLTQsIC0xLCAwLCAtMSwgLTMsIC0yLCAtMywgMCwgMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0yLCAtNCwgLTIsIDAsIC0yLCAtMywgLTEsIDIsIDMsIC0yLCA3LCAwLCAtMywgLTIsIC0xLCAtMSwgMCwgMSwgLTMsIC0xLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0zLCAtMywgLTQsIC01LCAtMiwgLTQsIC0zLCAtNCwgLTEsIDAsIDEsIC00LCAwLCA4LCAtNCwgLTMsIC0yLCAxLCA0LCAtMSwgLTQsIC00LCAtMiwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTIsIC0xLCAtNCwgLTEsIC0xLCAtMiwgLTIsIC0zLCAtNCwgLTEsIC0zLCAtNCwgMTAsIC0xLCAtMSwgLTQsIC0zLCAtMywgLTIsIC0xLCAtMiwgLTVdLFxuICAgICAgICAgICAgWzEsIC0xLCAxLCAwLCAtMSwgMCwgLTEsIDAsIC0xLCAtMywgLTMsIDAsIC0yLCAtMywgLTEsIDUsIDIsIC00LCAtMiwgLTIsIDAsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTEsIDAsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTEsIDIsIDUsIC0zLCAtMiwgMCwgMCwgLTEsIDAsIC01XSxcbiAgICAgICAgICAgIFstMywgLTMsIC00LCAtNSwgLTUsIC0xLCAtMywgLTMsIC0zLCAtMywgLTIsIC0zLCAtMSwgMSwgLTQsIC00LCAtMywgMTUsIDIsIC0zLCAtNSwgLTIsIC0zLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0xLCAtMiwgLTMsIC0zLCAtMSwgLTIsIC0zLCAyLCAtMSwgLTEsIC0yLCAwLCA0LCAtMywgLTIsIC0yLCAyLCA4LCAtMSwgLTMsIC0yLCAtMSwgLTVdLFxuICAgICAgICAgICAgWzAsIC0zLCAtMywgLTQsIC0xLCAtMywgLTMsIC00LCAtNCwgNCwgMSwgLTMsIDEsIC0xLCAtMywgLTIsIDAsIC0zLCAtMSwgNSwgLTQsIC0zLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMSwgNCwgNSwgLTMsIDAsIDEsIC0xLCAwLCAtNCwgLTQsIDAsIC0zLCAtNCwgLTIsIDAsIDAsIC01LCAtMywgLTQsIDUsIDIsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDAsIDAsIDEsIC0zLCA0LCA1LCAtMiwgMCwgLTMsIC0zLCAxLCAtMSwgLTQsIC0xLCAwLCAtMSwgLTIsIC0yLCAtMywgMiwgNSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTEsIC0xLCAtMSwgLTIsIC0xLCAtMSwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0yLCAtMSwgMCwgLTMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgMV1dO1xuICAgICAgICB0aGlzLkJMT1NVTTYyID0gW1s0LCAtMSwgLTIsIC0yLCAwLCAtMSwgLTEsIDAsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0xLCAxLCAwLCAtMywgLTIsIDAsIC0yLCAtMSwgMCwgLTRdLFxuICAgICAgICAgICAgWy0xLCA1LCAwLCAtMiwgLTMsIDEsIDAsIC0yLCAwLCAtMywgLTIsIDIsIC0xLCAtMywgLTIsIC0xLCAtMSwgLTMsIC0yLCAtMywgLTEsIDAsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTIsIDAsIDYsIDEsIC0zLCAwLCAwLCAwLCAxLCAtMywgLTMsIDAsIC0yLCAtMywgLTIsIDEsIDAsIC00LCAtMiwgLTMsIDMsIDAsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTIsIC0yLCAxLCA2LCAtMywgMCwgMiwgLTEsIC0xLCAtMywgLTQsIC0xLCAtMywgLTMsIC0xLCAwLCAtMSwgLTQsIC0zLCAtMywgNCwgMSwgLTEsIC00XSxcbiAgICAgICAgICAgIFswLCAtMywgLTMsIC0zLCA5LCAtMywgLTQsIC0zLCAtMywgLTEsIC0xLCAtMywgLTEsIC0yLCAtMywgLTEsIC0xLCAtMiwgLTIsIC0xLCAtMywgLTMsIC0yLCAtNF0sXG4gICAgICAgICAgICBbLTEsIDEsIDAsIDAsIC0zLCA1LCAyLCAtMiwgMCwgLTMsIC0yLCAxLCAwLCAtMywgLTEsIDAsIC0xLCAtMiwgLTEsIC0yLCAwLCAzLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0xLCAwLCAwLCAyLCAtNCwgMiwgNSwgLTIsIDAsIC0zLCAtMywgMSwgLTIsIC0zLCAtMSwgMCwgLTEsIC0zLCAtMiwgLTIsIDEsIDQsIC0xLCAtNF0sXG4gICAgICAgICAgICBbMCwgLTIsIDAsIC0xLCAtMywgLTIsIC0yLCA2LCAtMiwgLTQsIC00LCAtMiwgLTMsIC0zLCAtMiwgMCwgLTIsIC0yLCAtMywgLTMsIC0xLCAtMiwgLTEsIC00XSxcbiAgICAgICAgICAgIFstMiwgMCwgMSwgLTEsIC0zLCAwLCAwLCAtMiwgOCwgLTMsIC0zLCAtMSwgLTIsIC0xLCAtMiwgLTEsIC0yLCAtMiwgMiwgLTMsIDAsIDAsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTEsIC0zLCAtMywgLTMsIC0xLCAtMywgLTMsIC00LCAtMywgNCwgMiwgLTMsIDEsIDAsIC0zLCAtMiwgLTEsIC0zLCAtMSwgMywgLTMsIC0zLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTMsIC00LCAtMSwgLTIsIC0zLCAtNCwgLTMsIDIsIDQsIC0yLCAyLCAwLCAtMywgLTIsIC0xLCAtMiwgLTEsIDEsIC00LCAtMywgLTEsIC00XSxcbiAgICAgICAgICAgIFstMSwgMiwgMCwgLTEsIC0zLCAxLCAxLCAtMiwgLTEsIC0zLCAtMiwgNSwgLTEsIC0zLCAtMSwgMCwgLTEsIC0zLCAtMiwgLTIsIDAsIDEsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTEsIC0xLCAtMiwgLTMsIC0xLCAwLCAtMiwgLTMsIC0yLCAxLCAyLCAtMSwgNSwgMCwgLTIsIC0xLCAtMSwgLTEsIC0xLCAxLCAtMywgLTEsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTIsIC0zLCAtMywgLTMsIC0yLCAtMywgLTMsIC0zLCAtMSwgMCwgMCwgLTMsIDAsIDYsIC00LCAtMiwgLTIsIDEsIDMsIC0xLCAtMywgLTMsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTEsIC0zLCAtMSwgLTEsIC0yLCAtMiwgLTMsIC0zLCAtMSwgLTIsIC00LCA3LCAtMSwgLTEsIC00LCAtMywgLTIsIC0yLCAtMSwgLTIsIC00XSxcbiAgICAgICAgICAgIFsxLCAtMSwgMSwgMCwgLTEsIDAsIDAsIDAsIC0xLCAtMiwgLTIsIDAsIC0xLCAtMiwgLTEsIDQsIDEsIC0zLCAtMiwgLTIsIDAsIDAsIDAsIC00XSxcbiAgICAgICAgICAgIFswLCAtMSwgMCwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMSwgMSwgNSwgLTIsIC0yLCAwLCAtMSwgLTEsIDAsIC00XSxcbiAgICAgICAgICAgIFstMywgLTMsIC00LCAtNCwgLTIsIC0yLCAtMywgLTIsIC0yLCAtMywgLTIsIC0zLCAtMSwgMSwgLTQsIC0zLCAtMiwgMTEsIDIsIC0zLCAtNCwgLTMsIC0yLCAtNF0sXG4gICAgICAgICAgICBbLTIsIC0yLCAtMiwgLTMsIC0yLCAtMSwgLTIsIC0zLCAyLCAtMSwgLTEsIC0yLCAtMSwgMywgLTMsIC0yLCAtMiwgMiwgNywgLTEsIC0zLCAtMiwgLTEsIC00XSxcbiAgICAgICAgICAgIFswLCAtMywgLTMsIC0zLCAtMSwgLTIsIC0yLCAtMywgLTMsIDMsIDEsIC0yLCAxLCAtMSwgLTIsIC0yLCAwLCAtMywgLTEsIDQsIC0zLCAtMiwgLTEsIC00XSxcbiAgICAgICAgICAgIFstMiwgLTEsIDMsIDQsIC0zLCAwLCAxLCAtMSwgMCwgLTMsIC00LCAwLCAtMywgLTMsIC0yLCAwLCAtMSwgLTQsIC0zLCAtMywgNCwgMSwgLTEsIC00XSxcbiAgICAgICAgICAgIFstMSwgMCwgMCwgMSwgLTMsIDMsIDQsIC0yLCAwLCAtMywgLTMsIDEsIC0xLCAtMywgLTEsIDAsIC0xLCAtMywgLTIsIC0yLCAxLCA0LCAtMSwgLTRdLFxuICAgICAgICAgICAgWzAsIC0xLCAtMSwgLTEsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMiwgMCwgMCwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgMV1dO1xuICAgICAgICB0aGlzLkJMT1NVTTgwID0gW1s3LCAtMywgLTMsIC0zLCAtMSwgLTIsIC0yLCAwLCAtMywgLTMsIC0zLCAtMSwgLTIsIC00LCAtMSwgMiwgMCwgLTUsIC00LCAtMSwgLTMsIC0yLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0zLCA5LCAtMSwgLTMsIC02LCAxLCAtMSwgLTQsIDAsIC01LCAtNCwgMywgLTMsIC01LCAtMywgLTIsIC0yLCAtNSwgLTQsIC00LCAtMiwgMCwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMywgLTEsIDksIDIsIC01LCAwLCAtMSwgLTEsIDEsIC02LCAtNiwgMCwgLTQsIC02LCAtNCwgMSwgMCwgLTcsIC00LCAtNSwgNSwgLTEsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTMsIC0zLCAyLCAxMCwgLTcsIC0xLCAyLCAtMywgLTIsIC03LCAtNywgLTIsIC02LCAtNiwgLTMsIC0xLCAtMiwgLTgsIC02LCAtNiwgNiwgMSwgLTMsIC04XSxcbiAgICAgICAgICAgIFstMSwgLTYsIC01LCAtNywgMTMsIC01LCAtNywgLTYsIC03LCAtMiwgLTMsIC02LCAtMywgLTQsIC02LCAtMiwgLTIsIC01LCAtNSwgLTIsIC02LCAtNywgLTQsIC04XSxcbiAgICAgICAgICAgIFstMiwgMSwgMCwgLTEsIC01LCA5LCAzLCAtNCwgMSwgLTUsIC00LCAyLCAtMSwgLTUsIC0zLCAtMSwgLTEsIC00LCAtMywgLTQsIC0xLCA1LCAtMiwgLThdLFxuICAgICAgICAgICAgWy0yLCAtMSwgLTEsIDIsIC03LCAzLCA4LCAtNCwgMCwgLTYsIC02LCAxLCAtNCwgLTYsIC0yLCAtMSwgLTIsIC02LCAtNSwgLTQsIDEsIDYsIC0yLCAtOF0sXG4gICAgICAgICAgICBbMCwgLTQsIC0xLCAtMywgLTYsIC00LCAtNCwgOSwgLTQsIC03LCAtNywgLTMsIC01LCAtNiwgLTUsIC0xLCAtMywgLTYsIC02LCAtNiwgLTIsIC00LCAtMywgLThdLFxuICAgICAgICAgICAgWy0zLCAwLCAxLCAtMiwgLTcsIDEsIDAsIC00LCAxMiwgLTYsIC01LCAtMSwgLTQsIC0yLCAtNCwgLTIsIC0zLCAtNCwgMywgLTUsIC0xLCAwLCAtMiwgLThdLFxuICAgICAgICAgICAgWy0zLCAtNSwgLTYsIC03LCAtMiwgLTUsIC02LCAtNywgLTYsIDcsIDIsIC01LCAyLCAtMSwgLTUsIC00LCAtMiwgLTUsIC0zLCA0LCAtNiwgLTYsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTMsIC00LCAtNiwgLTcsIC0zLCAtNCwgLTYsIC03LCAtNSwgMiwgNiwgLTQsIDMsIDAsIC01LCAtNCwgLTMsIC00LCAtMiwgMSwgLTcsIC01LCAtMiwgLThdLFxuICAgICAgICAgICAgWy0xLCAzLCAwLCAtMiwgLTYsIDIsIDEsIC0zLCAtMSwgLTUsIC00LCA4LCAtMywgLTUsIC0yLCAtMSwgLTEsIC02LCAtNCwgLTQsIC0xLCAxLCAtMiwgLThdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTQsIC02LCAtMywgLTEsIC00LCAtNSwgLTQsIDIsIDMsIC0zLCA5LCAwLCAtNCwgLTMsIC0xLCAtMywgLTMsIDEsIC01LCAtMywgLTIsIC04XSxcbiAgICAgICAgICAgIFstNCwgLTUsIC02LCAtNiwgLTQsIC01LCAtNiwgLTYsIC0yLCAtMSwgMCwgLTUsIDAsIDEwLCAtNiwgLTQsIC00LCAwLCA0LCAtMiwgLTYsIC02LCAtMywgLThdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTQsIC0zLCAtNiwgLTMsIC0yLCAtNSwgLTQsIC01LCAtNSwgLTIsIC00LCAtNiwgMTIsIC0yLCAtMywgLTcsIC02LCAtNCwgLTQsIC0yLCAtMywgLThdLFxuICAgICAgICAgICAgWzIsIC0yLCAxLCAtMSwgLTIsIC0xLCAtMSwgLTEsIC0yLCAtNCwgLTQsIC0xLCAtMywgLTQsIC0yLCA3LCAyLCAtNiwgLTMsIC0zLCAwLCAtMSwgLTEsIC04XSxcbiAgICAgICAgICAgIFswLCAtMiwgMCwgLTIsIC0yLCAtMSwgLTIsIC0zLCAtMywgLTIsIC0zLCAtMSwgLTEsIC00LCAtMywgMiwgOCwgLTUsIC0zLCAwLCAtMSwgLTIsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTUsIC01LCAtNywgLTgsIC01LCAtNCwgLTYsIC02LCAtNCwgLTUsIC00LCAtNiwgLTMsIDAsIC03LCAtNiwgLTUsIDE2LCAzLCAtNSwgLTgsIC01LCAtNSwgLThdLFxuICAgICAgICAgICAgWy00LCAtNCwgLTQsIC02LCAtNSwgLTMsIC01LCAtNiwgMywgLTMsIC0yLCAtNCwgLTMsIDQsIC02LCAtMywgLTMsIDMsIDExLCAtMywgLTUsIC00LCAtMywgLThdLFxuICAgICAgICAgICAgWy0xLCAtNCwgLTUsIC02LCAtMiwgLTQsIC00LCAtNiwgLTUsIDQsIDEsIC00LCAxLCAtMiwgLTQsIC0zLCAwLCAtNSwgLTMsIDcsIC02LCAtNCwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMywgLTIsIDUsIDYsIC02LCAtMSwgMSwgLTIsIC0xLCAtNiwgLTcsIC0xLCAtNSwgLTYsIC00LCAwLCAtMSwgLTgsIC01LCAtNiwgNiwgMCwgLTMsIC04XSxcbiAgICAgICAgICAgIFstMiwgMCwgLTEsIDEsIC03LCA1LCA2LCAtNCwgMCwgLTYsIC01LCAxLCAtMywgLTYsIC0yLCAtMSwgLTIsIC01LCAtNCwgLTQsIDAsIDYsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTMsIC00LCAtMiwgLTIsIC0zLCAtMiwgLTIsIC0yLCAtMiwgLTIsIC0zLCAtMywgLTEsIC0xLCAtNSwgLTMsIC0yLCAtMywgLTEsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAxXV07XG4gICAgICAgIHRoaXMuQkxPU1VNOTAgPSBbWzUsIC0yLCAtMiwgLTMsIC0xLCAtMSwgLTEsIDAsIC0yLCAtMiwgLTIsIC0xLCAtMiwgLTMsIC0xLCAxLCAwLCAtNCwgLTMsIC0xLCAtMiwgLTEsIC0xLCAtNl0sXG4gICAgICAgICAgICBbLTIsIDYsIC0xLCAtMywgLTUsIDEsIC0xLCAtMywgMCwgLTQsIC0zLCAyLCAtMiwgLTQsIC0zLCAtMSwgLTIsIC00LCAtMywgLTMsIC0yLCAwLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0yLCAtMSwgNywgMSwgLTQsIDAsIC0xLCAtMSwgMCwgLTQsIC00LCAwLCAtMywgLTQsIC0zLCAwLCAwLCAtNSwgLTMsIC00LCA0LCAtMSwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMywgLTMsIDEsIDcsIC01LCAtMSwgMSwgLTIsIC0yLCAtNSwgLTUsIC0xLCAtNCwgLTUsIC0zLCAtMSwgLTIsIC02LCAtNCwgLTUsIDQsIDAsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTEsIC01LCAtNCwgLTUsIDksIC00LCAtNiwgLTQsIC01LCAtMiwgLTIsIC00LCAtMiwgLTMsIC00LCAtMiwgLTIsIC00LCAtNCwgLTIsIC00LCAtNSwgLTMsIC02XSxcbiAgICAgICAgICAgIFstMSwgMSwgMCwgLTEsIC00LCA3LCAyLCAtMywgMSwgLTQsIC0zLCAxLCAwLCAtNCwgLTIsIC0xLCAtMSwgLTMsIC0zLCAtMywgLTEsIDQsIC0xLCAtNl0sXG4gICAgICAgICAgICBbLTEsIC0xLCAtMSwgMSwgLTYsIDIsIDYsIC0zLCAtMSwgLTQsIC00LCAwLCAtMywgLTUsIC0yLCAtMSwgLTEsIC01LCAtNCwgLTMsIDAsIDQsIC0yLCAtNl0sXG4gICAgICAgICAgICBbMCwgLTMsIC0xLCAtMiwgLTQsIC0zLCAtMywgNiwgLTMsIC01LCAtNSwgLTIsIC00LCAtNSwgLTMsIC0xLCAtMywgLTQsIC01LCAtNSwgLTIsIC0zLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0yLCAwLCAwLCAtMiwgLTUsIDEsIC0xLCAtMywgOCwgLTQsIC00LCAtMSwgLTMsIC0yLCAtMywgLTIsIC0yLCAtMywgMSwgLTQsIC0xLCAwLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0yLCAtNCwgLTQsIC01LCAtMiwgLTQsIC00LCAtNSwgLTQsIDUsIDEsIC00LCAxLCAtMSwgLTQsIC0zLCAtMSwgLTQsIC0yLCAzLCAtNSwgLTQsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTIsIC0zLCAtNCwgLTUsIC0yLCAtMywgLTQsIC01LCAtNCwgMSwgNSwgLTMsIDIsIDAsIC00LCAtMywgLTIsIC0zLCAtMiwgMCwgLTUsIC00LCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0xLCAyLCAwLCAtMSwgLTQsIDEsIDAsIC0yLCAtMSwgLTQsIC0zLCA2LCAtMiwgLTQsIC0yLCAtMSwgLTEsIC01LCAtMywgLTMsIC0xLCAxLCAtMSwgLTZdLFxuICAgICAgICAgICAgWy0yLCAtMiwgLTMsIC00LCAtMiwgMCwgLTMsIC00LCAtMywgMSwgMiwgLTIsIDcsIC0xLCAtMywgLTIsIC0xLCAtMiwgLTIsIDAsIC00LCAtMiwgLTEsIC02XSxcbiAgICAgICAgICAgIFstMywgLTQsIC00LCAtNSwgLTMsIC00LCAtNSwgLTUsIC0yLCAtMSwgMCwgLTQsIC0xLCA3LCAtNCwgLTMsIC0zLCAwLCAzLCAtMiwgLTQsIC00LCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTMsIC0zLCAtNCwgLTIsIC0yLCAtMywgLTMsIC00LCAtNCwgLTIsIC0zLCAtNCwgOCwgLTIsIC0yLCAtNSwgLTQsIC0zLCAtMywgLTIsIC0yLCAtNl0sXG4gICAgICAgICAgICBbMSwgLTEsIDAsIC0xLCAtMiwgLTEsIC0xLCAtMSwgLTIsIC0zLCAtMywgLTEsIC0yLCAtMywgLTIsIDUsIDEsIC00LCAtMywgLTIsIDAsIC0xLCAtMSwgLTZdLFxuICAgICAgICAgICAgWzAsIC0yLCAwLCAtMiwgLTIsIC0xLCAtMSwgLTMsIC0yLCAtMSwgLTIsIC0xLCAtMSwgLTMsIC0yLCAxLCA2LCAtNCwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtNl0sXG4gICAgICAgICAgICBbLTQsIC00LCAtNSwgLTYsIC00LCAtMywgLTUsIC00LCAtMywgLTQsIC0zLCAtNSwgLTIsIDAsIC01LCAtNCwgLTQsIDExLCAyLCAtMywgLTYsIC00LCAtMywgLTZdLFxuICAgICAgICAgICAgWy0zLCAtMywgLTMsIC00LCAtNCwgLTMsIC00LCAtNSwgMSwgLTIsIC0yLCAtMywgLTIsIDMsIC00LCAtMywgLTIsIDIsIDgsIC0zLCAtNCwgLTMsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTEsIC0zLCAtNCwgLTUsIC0yLCAtMywgLTMsIC01LCAtNCwgMywgMCwgLTMsIDAsIC0yLCAtMywgLTIsIC0xLCAtMywgLTMsIDUsIC00LCAtMywgLTIsIC02XSxcbiAgICAgICAgICAgIFstMiwgLTIsIDQsIDQsIC00LCAtMSwgMCwgLTIsIC0xLCAtNSwgLTUsIC0xLCAtNCwgLTQsIC0zLCAwLCAtMSwgLTYsIC00LCAtNCwgNCwgMCwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMSwgMCwgLTEsIDAsIC01LCA0LCA0LCAtMywgMCwgLTQsIC00LCAxLCAtMiwgLTQsIC0yLCAtMSwgLTEsIC00LCAtMywgLTMsIDAsIDQsIC0xLCAtNl0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTIsIC0zLCAtMSwgLTIsIC0yLCAtMiwgLTIsIC0yLCAtMSwgLTEsIC0yLCAtMiwgLTEsIC0xLCAtMywgLTIsIC0yLCAtMiwgLTEsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAxXV07XG4gICAgICAgIHRoaXMuTlVDTEVPVElERVMgPSBbWzEsIC0xLCAtMSwgLTFdLFxuICAgICAgICAgICAgWy0xLCAxLCAtMSwgLTFdLFxuICAgICAgICAgICAgWy0xLCAtMSwgMSwgLTFdLFxuICAgICAgICAgICAgWy0xLCAtMSwgLTEsIDFdXTtcbiAgICAgICAgdGhpcy5QQU0zMCA9IFtbNiwgLTcsIC00LCAtMywgLTYsIC00LCAtMiwgLTIsIC03LCAtNSwgLTYsIC03LCAtNSwgLTgsIC0yLCAwLCAtMSwgLTEzLCAtOCwgLTIsIC0zLCAtMywgLTMsIC0xN10sXG4gICAgICAgICAgICBbLTcsIDgsIC02LCAtMTAsIC04LCAtMiwgLTksIC05LCAtMiwgLTUsIC04LCAwLCAtNCwgLTksIC00LCAtMywgLTYsIC0yLCAtMTAsIC04LCAtNywgLTQsIC02LCAtMTddLFxuICAgICAgICAgICAgWy00LCAtNiwgOCwgMiwgLTExLCAtMywgLTIsIC0zLCAwLCAtNSwgLTcsIC0xLCAtOSwgLTksIC02LCAwLCAtMiwgLTgsIC00LCAtOCwgNiwgLTMsIC0zLCAtMTddLFxuICAgICAgICAgICAgWy0zLCAtMTAsIDIsIDgsIC0xNCwgLTIsIDIsIC0zLCAtNCwgLTcsIC0xMiwgLTQsIC0xMSwgLTE1LCAtOCwgLTQsIC01LCAtMTUsIC0xMSwgLTgsIDYsIDEsIC01LCAtMTddLFxuICAgICAgICAgICAgWy02LCAtOCwgLTExLCAtMTQsIDEwLCAtMTQsIC0xNCwgLTksIC03LCAtNiwgLTE1LCAtMTQsIC0xMywgLTEzLCAtOCwgLTMsIC04LCAtMTUsIC00LCAtNiwgLTEyLCAtMTQsIC05LCAtMTddLFxuICAgICAgICAgICAgWy00LCAtMiwgLTMsIC0yLCAtMTQsIDgsIDEsIC03LCAxLCAtOCwgLTUsIC0zLCAtNCwgLTEzLCAtMywgLTUsIC01LCAtMTMsIC0xMiwgLTcsIC0zLCA2LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstMiwgLTksIC0yLCAyLCAtMTQsIDEsIDgsIC00LCAtNSwgLTUsIC05LCAtNCwgLTcsIC0xNCwgLTUsIC00LCAtNiwgLTE3LCAtOCwgLTYsIDEsIDYsIC01LCAtMTddLFxuICAgICAgICAgICAgWy0yLCAtOSwgLTMsIC0zLCAtOSwgLTcsIC00LCA2LCAtOSwgLTExLCAtMTAsIC03LCAtOCwgLTksIC02LCAtMiwgLTYsIC0xNSwgLTE0LCAtNSwgLTMsIC01LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstNywgLTIsIDAsIC00LCAtNywgMSwgLTUsIC05LCA5LCAtOSwgLTYsIC02LCAtMTAsIC02LCAtNCwgLTYsIC03LCAtNywgLTMsIC02LCAtMSwgLTEsIC01LCAtMTddLFxuICAgICAgICAgICAgWy01LCAtNSwgLTUsIC03LCAtNiwgLTgsIC01LCAtMTEsIC05LCA4LCAtMSwgLTYsIC0xLCAtMiwgLTgsIC03LCAtMiwgLTE0LCAtNiwgMiwgLTYsIC02LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstNiwgLTgsIC03LCAtMTIsIC0xNSwgLTUsIC05LCAtMTAsIC02LCAtMSwgNywgLTgsIDEsIC0zLCAtNywgLTgsIC03LCAtNiwgLTcsIC0yLCAtOSwgLTcsIC02LCAtMTddLFxuICAgICAgICAgICAgWy03LCAwLCAtMSwgLTQsIC0xNCwgLTMsIC00LCAtNywgLTYsIC02LCAtOCwgNywgLTIsIC0xNCwgLTYsIC00LCAtMywgLTEyLCAtOSwgLTksIC0yLCAtNCwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTUsIC00LCAtOSwgLTExLCAtMTMsIC00LCAtNywgLTgsIC0xMCwgLTEsIDEsIC0yLCAxMSwgLTQsIC04LCAtNSwgLTQsIC0xMywgLTExLCAtMSwgLTEwLCAtNSwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTgsIC05LCAtOSwgLTE1LCAtMTMsIC0xMywgLTE0LCAtOSwgLTYsIC0yLCAtMywgLTE0LCAtNCwgOSwgLTEwLCAtNiwgLTksIC00LCAyLCAtOCwgLTEwLCAtMTMsIC04LCAtMTddLFxuICAgICAgICAgICAgWy0yLCAtNCwgLTYsIC04LCAtOCwgLTMsIC01LCAtNiwgLTQsIC04LCAtNywgLTYsIC04LCAtMTAsIDgsIC0yLCAtNCwgLTE0LCAtMTMsIC02LCAtNywgLTQsIC01LCAtMTddLFxuICAgICAgICAgICAgWzAsIC0zLCAwLCAtNCwgLTMsIC01LCAtNCwgLTIsIC02LCAtNywgLTgsIC00LCAtNSwgLTYsIC0yLCA2LCAwLCAtNSwgLTcsIC02LCAtMSwgLTUsIC0zLCAtMTddLFxuICAgICAgICAgICAgWy0xLCAtNiwgLTIsIC01LCAtOCwgLTUsIC02LCAtNiwgLTcsIC0yLCAtNywgLTMsIC00LCAtOSwgLTQsIDAsIDcsIC0xMywgLTYsIC0zLCAtMywgLTYsIC00LCAtMTddLFxuICAgICAgICAgICAgWy0xMywgLTIsIC04LCAtMTUsIC0xNSwgLTEzLCAtMTcsIC0xNSwgLTcsIC0xNCwgLTYsIC0xMiwgLTEzLCAtNCwgLTE0LCAtNSwgLTEzLCAxMywgLTUsIC0xNSwgLTEwLCAtMTQsIC0xMSwgLTE3XSxcbiAgICAgICAgICAgIFstOCwgLTEwLCAtNCwgLTExLCAtNCwgLTEyLCAtOCwgLTE0LCAtMywgLTYsIC03LCAtOSwgLTExLCAyLCAtMTMsIC03LCAtNiwgLTUsIDEwLCAtNywgLTYsIC05LCAtNywgLTE3XSxcbiAgICAgICAgICAgIFstMiwgLTgsIC04LCAtOCwgLTYsIC03LCAtNiwgLTUsIC02LCAyLCAtMiwgLTksIC0xLCAtOCwgLTYsIC02LCAtMywgLTE1LCAtNywgNywgLTgsIC02LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstMywgLTcsIDYsIDYsIC0xMiwgLTMsIDEsIC0zLCAtMSwgLTYsIC05LCAtMiwgLTEwLCAtMTAsIC03LCAtMSwgLTMsIC0xMCwgLTYsIC04LCA2LCAwLCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstMywgLTQsIC0zLCAxLCAtMTQsIDYsIDYsIC01LCAtMSwgLTYsIC03LCAtNCwgLTUsIC0xMywgLTQsIC01LCAtNiwgLTE0LCAtOSwgLTYsIDAsIDYsIC01LCAtMTddLFxuICAgICAgICAgICAgWy0zLCAtNiwgLTMsIC01LCAtOSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNiwgLTUsIC01LCAtOCwgLTUsIC0zLCAtNCwgLTExLCAtNywgLTUsIC01LCAtNSwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIDFdXTtcbiAgICAgICAgdGhpcy5QQU03MCA9IFtbNSwgLTQsIC0yLCAtMSwgLTQsIC0yLCAtMSwgMCwgLTQsIC0yLCAtNCwgLTQsIC0zLCAtNiwgMCwgMSwgMSwgLTksIC01LCAtMSwgLTEsIC0xLCAtMiwgLTExXSxcbiAgICAgICAgICAgIFstNCwgOCwgLTMsIC02LCAtNSwgMCwgLTUsIC02LCAwLCAtMywgLTYsIDIsIC0yLCAtNywgLTIsIC0xLCAtNCwgMCwgLTcsIC01LCAtNCwgLTIsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy0yLCAtMywgNiwgMywgLTcsIC0xLCAwLCAtMSwgMSwgLTMsIC01LCAwLCAtNSwgLTYsIC0zLCAxLCAwLCAtNiwgLTMsIC01LCA1LCAtMSwgLTIsIC0xMV0sXG4gICAgICAgICAgICBbLTEsIC02LCAzLCA2LCAtOSwgMCwgMywgLTEsIC0xLCAtNSwgLTgsIC0yLCAtNywgLTEwLCAtNCwgLTEsIC0yLCAtMTAsIC03LCAtNSwgNSwgMiwgLTMsIC0xMV0sXG4gICAgICAgICAgICBbLTQsIC01LCAtNywgLTksIDksIC05LCAtOSwgLTYsIC01LCAtNCwgLTEwLCAtOSwgLTksIC04LCAtNSwgLTEsIC01LCAtMTEsIC0yLCAtNCwgLTgsIC05LCAtNiwgLTExXSxcbiAgICAgICAgICAgIFstMiwgMCwgLTEsIDAsIC05LCA3LCAyLCAtNCwgMiwgLTUsIC0zLCAtMSwgLTIsIC05LCAtMSwgLTMsIC0zLCAtOCwgLTgsIC00LCAtMSwgNSwgLTIsIC0xMV0sXG4gICAgICAgICAgICBbLTEsIC01LCAwLCAzLCAtOSwgMiwgNiwgLTIsIC0yLCAtNCwgLTYsIC0yLCAtNCwgLTksIC0zLCAtMiwgLTMsIC0xMSwgLTYsIC00LCAyLCA1LCAtMywgLTExXSxcbiAgICAgICAgICAgIFswLCAtNiwgLTEsIC0xLCAtNiwgLTQsIC0yLCA2LCAtNiwgLTYsIC03LCAtNSwgLTYsIC03LCAtMywgMCwgLTMsIC0xMCwgLTksIC0zLCAtMSwgLTMsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy00LCAwLCAxLCAtMSwgLTUsIDIsIC0yLCAtNiwgOCwgLTYsIC00LCAtMywgLTYsIC00LCAtMiwgLTMsIC00LCAtNSwgLTEsIC00LCAwLCAxLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstMiwgLTMsIC0zLCAtNSwgLTQsIC01LCAtNCwgLTYsIC02LCA3LCAxLCAtNCwgMSwgMCwgLTUsIC00LCAtMSwgLTksIC00LCAzLCAtNCwgLTQsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy00LCAtNiwgLTUsIC04LCAtMTAsIC0zLCAtNiwgLTcsIC00LCAxLCA2LCAtNSwgMiwgLTEsIC01LCAtNiwgLTQsIC00LCAtNCwgMCwgLTYsIC00LCAtNCwgLTExXSxcbiAgICAgICAgICAgIFstNCwgMiwgMCwgLTIsIC05LCAtMSwgLTIsIC01LCAtMywgLTQsIC01LCA2LCAwLCAtOSwgLTQsIC0yLCAtMSwgLTcsIC03LCAtNiwgLTEsIC0yLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstMywgLTIsIC01LCAtNywgLTksIC0yLCAtNCwgLTYsIC02LCAxLCAyLCAwLCAxMCwgLTIsIC01LCAtMywgLTIsIC04LCAtNywgMCwgLTYsIC0zLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstNiwgLTcsIC02LCAtMTAsIC04LCAtOSwgLTksIC03LCAtNCwgMCwgLTEsIC05LCAtMiwgOCwgLTcsIC00LCAtNiwgLTIsIDQsIC01LCAtNywgLTksIC01LCAtMTFdLFxuICAgICAgICAgICAgWzAsIC0yLCAtMywgLTQsIC01LCAtMSwgLTMsIC0zLCAtMiwgLTUsIC01LCAtNCwgLTUsIC03LCA3LCAwLCAtMiwgLTksIC05LCAtMywgLTQsIC0yLCAtMywgLTExXSxcbiAgICAgICAgICAgIFsxLCAtMSwgMSwgLTEsIC0xLCAtMywgLTIsIDAsIC0zLCAtNCwgLTYsIC0yLCAtMywgLTQsIDAsIDUsIDIsIC0zLCAtNSwgLTMsIDAsIC0yLCAtMSwgLTExXSxcbiAgICAgICAgICAgIFsxLCAtNCwgMCwgLTIsIC01LCAtMywgLTMsIC0zLCAtNCwgLTEsIC00LCAtMSwgLTIsIC02LCAtMiwgMiwgNiwgLTgsIC00LCAtMSwgLTEsIC0zLCAtMiwgLTExXSxcbiAgICAgICAgICAgIFstOSwgMCwgLTYsIC0xMCwgLTExLCAtOCwgLTExLCAtMTAsIC01LCAtOSwgLTQsIC03LCAtOCwgLTIsIC05LCAtMywgLTgsIDEzLCAtMywgLTEwLCAtNywgLTEwLCAtNywgLTExXSxcbiAgICAgICAgICAgIFstNSwgLTcsIC0zLCAtNywgLTIsIC04LCAtNiwgLTksIC0xLCAtNCwgLTQsIC03LCAtNywgNCwgLTksIC01LCAtNCwgLTMsIDksIC01LCAtNCwgLTcsIC01LCAtMTFdLFxuICAgICAgICAgICAgWy0xLCAtNSwgLTUsIC01LCAtNCwgLTQsIC00LCAtMywgLTQsIDMsIDAsIC02LCAwLCAtNSwgLTMsIC0zLCAtMSwgLTEwLCAtNSwgNiwgLTUsIC00LCAtMiwgLTExXSxcbiAgICAgICAgICAgIFstMSwgLTQsIDUsIDUsIC04LCAtMSwgMiwgLTEsIDAsIC00LCAtNiwgLTEsIC02LCAtNywgLTQsIDAsIC0xLCAtNywgLTQsIC01LCA1LCAxLCAtMiwgLTExXSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0xLCAyLCAtOSwgNSwgNSwgLTMsIDEsIC00LCAtNCwgLTIsIC0zLCAtOSwgLTIsIC0yLCAtMywgLTEwLCAtNywgLTQsIDEsIDUsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTIsIC0zLCAtNiwgLTIsIC0zLCAtMywgLTMsIC0zLCAtNCwgLTMsIC0zLCAtNSwgLTMsIC0xLCAtMiwgLTcsIC01LCAtMiwgLTIsIC0zLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgMV1dO1xuICAgICAgICB0aGlzLlBBTTI1MCA9IFtbMiwgLTIsIDAsIDAsIC0yLCAwLCAwLCAxLCAtMSwgLTEsIC0yLCAtMSwgLTEsIC0zLCAxLCAxLCAxLCAtNiwgLTMsIDAsIDAsIDAsIDAsIC04XSxcbiAgICAgICAgICAgIFstMiwgNiwgMCwgLTEsIC00LCAxLCAtMSwgLTMsIDIsIC0yLCAtMywgMywgMCwgLTQsIDAsIDAsIC0xLCAyLCAtNCwgLTIsIC0xLCAwLCAtMSwgLThdLFxuICAgICAgICAgICAgWzAsIDAsIDIsIDIsIC00LCAxLCAxLCAwLCAyLCAtMiwgLTMsIDEsIC0yLCAtMywgMCwgMSwgMCwgLTQsIC0yLCAtMiwgMiwgMSwgMCwgLThdLFxuICAgICAgICAgICAgWzAsIC0xLCAyLCA0LCAtNSwgMiwgMywgMSwgMSwgLTIsIC00LCAwLCAtMywgLTYsIC0xLCAwLCAwLCAtNywgLTQsIC0yLCAzLCAzLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0yLCAtNCwgLTQsIC01LCAxMiwgLTUsIC01LCAtMywgLTMsIC0yLCAtNiwgLTUsIC01LCAtNCwgLTMsIDAsIC0yLCAtOCwgMCwgLTIsIC00LCAtNSwgLTMsIC04XSxcbiAgICAgICAgICAgIFswLCAxLCAxLCAyLCAtNSwgNCwgMiwgLTEsIDMsIC0yLCAtMiwgMSwgLTEsIC01LCAwLCAtMSwgLTEsIC01LCAtNCwgLTIsIDEsIDMsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMCwgLTEsIDEsIDMsIC01LCAyLCA0LCAwLCAxLCAtMiwgLTMsIDAsIC0yLCAtNSwgLTEsIDAsIDAsIC03LCAtNCwgLTIsIDMsIDMsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMSwgLTMsIDAsIDEsIC0zLCAtMSwgMCwgNSwgLTIsIC0zLCAtNCwgLTIsIC0zLCAtNSwgMCwgMSwgMCwgLTcsIC01LCAtMSwgMCwgMCwgLTEsIC04XSxcbiAgICAgICAgICAgIFstMSwgMiwgMiwgMSwgLTMsIDMsIDEsIC0yLCA2LCAtMiwgLTIsIDAsIC0yLCAtMiwgMCwgLTEsIC0xLCAtMywgMCwgLTIsIDEsIDIsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTIsIC0yLCAtMiwgLTIsIC0zLCAtMiwgNSwgMiwgLTIsIDIsIDEsIC0yLCAtMSwgMCwgLTUsIC0xLCA0LCAtMiwgLTIsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTIsIC0zLCAtMywgLTQsIC02LCAtMiwgLTMsIC00LCAtMiwgMiwgNiwgLTMsIDQsIDIsIC0zLCAtMywgLTIsIC0yLCAtMSwgMiwgLTMsIC0zLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0xLCAzLCAxLCAwLCAtNSwgMSwgMCwgLTIsIDAsIC0yLCAtMywgNSwgMCwgLTUsIC0xLCAwLCAwLCAtMywgLTQsIC0yLCAxLCAwLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0xLCAwLCAtMiwgLTMsIC01LCAtMSwgLTIsIC0zLCAtMiwgMiwgNCwgMCwgNiwgMCwgLTIsIC0yLCAtMSwgLTQsIC0yLCAyLCAtMiwgLTIsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTMsIC00LCAtMywgLTYsIC00LCAtNSwgLTUsIC01LCAtMiwgMSwgMiwgLTUsIDAsIDksIC01LCAtMywgLTMsIDAsIDcsIC0xLCAtNCwgLTUsIC0yLCAtOF0sXG4gICAgICAgICAgICBbMSwgMCwgMCwgLTEsIC0zLCAwLCAtMSwgMCwgMCwgLTIsIC0zLCAtMSwgLTIsIC01LCA2LCAxLCAwLCAtNiwgLTUsIC0xLCAtMSwgMCwgLTEsIC04XSxcbiAgICAgICAgICAgIFsxLCAwLCAxLCAwLCAwLCAtMSwgMCwgMSwgLTEsIC0xLCAtMywgMCwgLTIsIC0zLCAxLCAyLCAxLCAtMiwgLTMsIC0xLCAwLCAwLCAwLCAtOF0sXG4gICAgICAgICAgICBbMSwgLTEsIDAsIDAsIC0yLCAtMSwgMCwgMCwgLTEsIDAsIC0yLCAwLCAtMSwgLTMsIDAsIDEsIDMsIC01LCAtMywgMCwgMCwgLTEsIDAsIC04XSxcbiAgICAgICAgICAgIFstNiwgMiwgLTQsIC03LCAtOCwgLTUsIC03LCAtNywgLTMsIC01LCAtMiwgLTMsIC00LCAwLCAtNiwgLTIsIC01LCAxNywgMCwgLTYsIC01LCAtNiwgLTQsIC04XSxcbiAgICAgICAgICAgIFstMywgLTQsIC0yLCAtNCwgMCwgLTQsIC00LCAtNSwgMCwgLTEsIC0xLCAtNCwgLTIsIDcsIC01LCAtMywgLTMsIDAsIDEwLCAtMiwgLTMsIC00LCAtMiwgLThdLFxuICAgICAgICAgICAgWzAsIC0yLCAtMiwgLTIsIC0yLCAtMiwgLTIsIC0xLCAtMiwgNCwgMiwgLTIsIDIsIC0xLCAtMSwgLTEsIDAsIC02LCAtMiwgNCwgLTIsIC0yLCAtMSwgLThdLFxuICAgICAgICAgICAgWzAsIC0xLCAyLCAzLCAtNCwgMSwgMywgMCwgMSwgLTIsIC0zLCAxLCAtMiwgLTQsIC0xLCAwLCAwLCAtNSwgLTMsIC0yLCAzLCAyLCAtMSwgLThdLFxuICAgICAgICAgICAgWzAsIDAsIDEsIDMsIC01LCAzLCAzLCAwLCAyLCAtMiwgLTMsIDAsIC0yLCAtNSwgMCwgMCwgLTEsIC02LCAtNCwgLTIsIDIsIDMsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMCwgLTEsIDAsIC0xLCAtMywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTEsIDAsIDAsIC00LCAtMiwgLTEsIC0xLCAtMSwgLTEsIC04XSxcbiAgICAgICAgICAgIFstOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIDFdXTtcbiAgICAgICAgdGhpcy5TQ0hORUlERVIgPSBbWzExLjYsIC0yLjcsIDkuNywgLTEuNywgLTIuNywgLTYuNCwgLTMuOSwgLTUuNiwgNS4xLCAtNS4wLCAzLjYsIC00LjIsIC02LjMsIC0xMy4wLCAtNy4xLCAtMTEuNSwgMC40LCAtNi4wLCAtMS45LCAtNS4zLCAtOC41LCAtMTEuMiwgLTguOSwgLTEwLjgsIDIuMSwgMC4wLCAxLjQsIDAuMiwgLTEwLjIsIC0xMy41LCAtMTMuMCwgLTEyLjUsIC0yLjYsIC04LjUsIC01LjAsIC04LjEsIC02LjMsIC05LjksIC03LjUsIC05LjAsIC03LjEsIC0xMC4yLCAtOC4yLCAtOS4yLCAtOC4yLCAtMTIuNSwgLTExLjEsIC0xMS40LCAtNTAuMCwgLTE0LjgsIC01MC4wLCAtMTMuOCwgLTcuMywgLTEwLjEsIC04LjQsIC05LjEsIC01MC4wLCAtMTMuMCwgLTEzLjUsIC0xMi40LCAtMTAuNywgLTE4LjEsIC0xMS44LCAtMTcuMixdLFxuICAgICAgICAgICAgWy0yLjcsIDEzLjAsIC0zLjMsIDEwLjksIC0zLjUsIC0wLjQsIC0zLjMsIC0xLjgsIC01LjQsIDQuNiwgLTUuNSwgMy4wLCAtMTAuMiwgLTcuOSwgLTkuOSwgLTkuNiwgLTUuMCwgMC41LCAtNS41LCAtMS4wLCAtMTAuMywgLTguMSwgLTkuNCwgLTkuNiwgLTguMSwgLTUuMCwgLTcuMywgLTYuMywgLTEzLjQsIC0xMS4zLCAtMTQuNCwgLTEyLjksIC02LjMsIDAuOCwgLTYuNCwgLTEuMSwgLTcuNCwgLTUuMCwgLTYuMiwgLTYuNSwgLTUuNiwgLTEuNiwgLTQuNywgLTMuMCwgLTEwLjgsIC04LjcsIC0xMS45LCAtMTAuMCwgLTUwLjAsIC02LjIsIC01MC4wLCAtNy41LCAtNi4zLCAtNC4zLCAtNi4yLCAtNS40LCAtNTAuMCwgLTcuMCwgLTE2LjMsIC04LjIsIC0xMy4yLCAtMTIuMywgLTEzLjEsIC0xMy4zLF0sXG4gICAgICAgICAgICBbOS43LCAtMy4zLCAxMS42LCAtMi44LCAtNC41LCAtNi43LCAtMy4xLCAtNi45LCAzLjMsIC01LjUsIDQuOCwgLTUuMSwgLTguOSwgLTEzLjIsIC01LjcsIC0xMi42LCAtMS41LCAtNi4xLCAtMC42LCAtNi4xLCAtMTAuMCwgLTExLjgsIC04LjYsIC0xMS45LCAxLjIsIDAuNSwgMi4yLCAwLjEsIC0xMS44LCAtMTQuMCwgLTExLjksIC0xMy40LCAtNC45LCAtOS4xLCAtMy40LCAtOC45LCAtOC4wLCAtMTAuMCwgLTcuMiwgLTEwLjAsIC05LjEsIC0xMC4yLCAtNy4xLCAtOS45LCAtMTAuMSwgLTEzLjAsIC0xMC42LCAtMTIuNywgLTUwLjAsIC0xNC45LCAtNTAuMCwgLTE0LjQsIC04LjksIC0xMC44LCAtOC45LCAtMTAuNCwgLTUwLjAsIC0xMy4xLCAtMTEuOCwgLTEzLjAsIC0xMi40LCAtMTkuNCwgLTExLjUsIC0xNy44LF0sXG4gICAgICAgICAgICBbLTEuNywgMTAuOSwgLTIuOCwgMTIuOSwgLTIuNywgLTIuMiwgLTIuOCwgMC4yLCAtNC44LCAyLjksIC01LjIsIDUuMiwgLTkuMSwgLTkuNSwgLTkuMCwgLTcuMCwgLTQuMCwgLTEuMCwgLTUuMCwgMS4wLCAtOS4wLCAtOC44LCAtOC45LCAtNy43LCAtNy4wLCAtNi44LCAtNy4xLCAtNC4zLCAtMTIuNCwgLTEyLjksIC0xMy45LCAtMTAuMCwgLTQuOSwgLTAuNywgLTUuNiwgMS40LCAtNi4wLCAtNi41LCAtNi4yLCAtNC44LCAtNS4xLCAtMy4yLCAtNS4wLCAtMS4yLCAtOS44LCAtOS45LCAtMTEuMywgLTguMiwgLTUwLjAsIC03LjYsIC01MC4wLCAtNS4xLCAtNS41LCAtNS44LCAtNS45LCAtNC4yLCAtNTAuMCwgLTguMywgLTE1LjUsIC01LjksIC0xMS42LCAtMTQuMiwgLTEyLjAsIC0xMS42LF0sXG4gICAgICAgICAgICBbLTIuNywgLTMuNSwgLTQuNSwgLTIuNywgMTEuNywgOS4wLCAxMC42LCA5LjYsIC0zLjIsIC0wLjcsIC01LjEsIC0wLjQsIDAuNywgLTQuNiwgLTAuNCwgLTMuNiwgLTQuOCwgLTguOSwgLTYuNSwgLTcuOCwgLTEuNCwgLTQuMSwgLTIuOSwgLTMuMywgLTguMCwgLTkuMSwgLTguMCwgLTguMiwgLTYuMCwgLTkuMywgLTcuNywgLTguNSwgLTYuNCwgLTEwLjEsIC03LjUsIC04LjYsIDIuOCwgLTAuNywgMC45LCAwLjEsIC01LjksIC03LjMsIC02LjUsIC02LjUsIC0wLjQsIC0zLjksIC0yLjYsIC0zLjEsIC01MC4wLCAtMTQuNiwgLTUwLjAsIC0xMi42LCAyLjksIDAuMSwgMS44LCAxLjAsIC01MC4wLCAtOS4yLCAtMTMuNiwgLTcuNywgLTQuOCwgLTEyLjIsIC02LjIsIC0xMS4wLF0sXG4gICAgICAgICAgICBbLTYuNCwgLTAuNCwgLTYuNywgLTIuMiwgOS4wLCAxMi4zLCA5LjgsIDkuNiwgLTcuMSwgMi40LCAtNy4yLCAwLjMsIC0yLjksIC0xLjIsIC0zLjAsIC0zLjMsIC03LjYsIC02LjcsIC04LjEsIC03LjksIC00LjksIC0xLjksIC00LjUsIC0zLjgsIC05LjUsIC03LjgsIC05LjMsIC04LjksIC05LjQsIC03LjEsIC05LjAsIC05LjAsIC05LjQsIC03LjUsIC05LjMsIC05LjIsIC0wLjcsIDIuNiwgMC4yLCAtMC4xLCAtOC4wLCAtNC42LCAtNy43LCAtNi4xLCAtMy42LCAtMS4wLCAtNC4xLCAtMy4xLCAtNTAuMCwgLTExLjYsIC01MC4wLCAtMTEuNiwgMC4yLCAyLjMsIDAuNCwgMC41LCAtNTAuMCwgLTYuNSwgLTE1LjMsIC03LjgsIC04LjQsIC05LjUsIC04LjMsIC0xMS4xLF0sXG4gICAgICAgICAgICBbLTMuOSwgLTMuMywgLTMuMSwgLTIuOCwgMTAuNiwgOS44LCAxMi4yLCA5LjgsIC00LjksIDAuMSwgLTMuNiwgLTAuMiwgLTEuNywgLTQuMSwgMC45LCAtMy41LCAtNS45LCAtOC45LCAtNS42LCAtOC41LCAtMy45LCAtMy45LCAtMi4yLCAtNC41LCAtNy4zLCAtNy41LCAtNi40LCAtOC41LCAtNy4xLCAtOC4yLCAtNi43LCAtNy44LCAtNy45LCAtOS4xLCAtNy4xLCAtOS40LCAwLjksIC0wLjIsIDIuNSwgLTAuMywgLTYuOSwgLTYuNSwgLTUuNSwgLTYuOCwgLTEuNywgLTMuNCwgLTEuNywgLTIuOCwgLTUwLjAsIC0xMy4wLCAtNTAuMCwgLTExLjUsIDEuNSwgMC43LCAyLjcsIDAuNiwgLTUwLjAsIC04LjksIC0xMi4xLCAtNy40LCAtNi4xLCAtMTEuNSwgLTUuNCwgLTEwLjQsXSxcbiAgICAgICAgICAgIFstNS42LCAtMS44LCAtNi45LCAwLjIsIDkuNiwgOS42LCA5LjgsIDExLjYsIC02LjYsIDAuOSwgLTcuMiwgMi41LCAtMi4zLCAtMy40LCAtMi4zLCAtMC42LCAtNi41LCAtOC4yLCAtOC4wLCAtNi4zLCAtMy43LCAtMy41LCAtMy45LCAtMS42LCAtOS45LCAtOC45LCAtOS42LCAtNy4wLCAtOC42LCAtOC45LCAtOC44LCAtNi44LCAtOC42LCAtOC4yLCAtOC44LCAtNi44LCAwLjMsIDAuMSwgMC4yLCAyLjQsIC03LjQsIC02LjIsIC02LjksIC00LjQsIC0yLjksIC0yLjksIC0zLjUsIC0wLjksIC01MC4wLCAtMTIuMiwgLTUwLjAsIC0xMC4xLCAxLjIsIDAuNiwgMS4yLCAyLjQsIC01MC4wLCAtNy42LCAtMTYuMSwgLTUuOCwgLTcuMiwgLTEwLjgsIC03LjQsIC05LjAsXSxcbiAgICAgICAgICAgIFs1LjEsIC01LjQsIDMuMywgLTQuOCwgLTMuMiwgLTcuMSwgLTQuOSwgLTYuNiwgMTMuMywgLTIuOCwgMTEuMiwgLTEuOSwgLTUuNywgLTEyLjUsIC03LjIsIC0xMS42LCAtMC43LCAtNC44LCAtMy4xLCAtNC4zLCAtMTAuMCwgLTExLjYsIC04LjgsIC0xMS43LCAxMC41LCA3LjcsIDkuMSwgOC41LCAtOS44LCAtMTIuNywgLTExLjcsIC0xMS44LCAtNi4zLCAtMTEuNCwgLTguOCwgLTExLjAsIC03LjUsIC0xMC4zLCAtOC4zLCAtOS45LCAtMS45LCAtNi43LCAtNC4xLCAtNi40LCAtNy45LCAtMTIuNSwgLTExLjQsIC0xMS43LCAtNTAuMCwgLTE0LjAsIC01MC4wLCAtMTMuMiwgLTguNSwgLTEwLjQsIC05LjEsIC05LjYsIC01MC4wLCAtOS44LCAtNy43LCAtOC44LCAtMTAuMywgLTE3LjksIC0xMS44LCAtMTYuMCxdLFxuICAgICAgICAgICAgWy01LjAsIDQuNiwgLTUuNSwgMi45LCAtMC43LCAyLjQsIDAuMSwgMC45LCAtMi44LCAxMi44LCAtMi42LCAxMS4wLCAtOC40LCAtNi4zLCAtOC4zLCAtNy43LCAtNi4xLCAtMi45LCAtNi41LCAtNC4yLCAtOC41LCAtNS45LCAtNy41LCAtNy43LCAtNS41LCAtMi40LCAtNS41LCAtNC4xLCAtMTIuOSwgLTEwLjMsIC0xMi43LCAtMTEuMywgLTcuNCwgLTMuMSwgLTcuNCwgLTQuOSwgLTQuNCwgLTEuOCwgLTMuNSwgLTMuNSwgLTEuNiwgMy4wLCAtMC44LCAwLjksIC04LjQsIC02LjMsIC05LjYsIC03LjMsIC01MC4wLCAtOS4wLCAtNTAuMCwgLTkuNywgLTIuMywgLTAuMiwgLTEuMiwgLTEuNSwgLTUwLjAsIC0wLjcsIC0xMy4zLCAtMi4wLCAtMTEuOCwgLTExLjksIC0xMi4zLCAtMTIuNyxdLFxuICAgICAgICAgICAgWzMuNiwgLTUuNSwgNC44LCAtNS4yLCAtNS4xLCAtNy4yLCAtMy42LCAtNy4yLCAxMS4yLCAtMi42LCAxMy40LCAtMi4xLCAtNy43LCAtMTIuNSwgLTUuMywgLTExLjksIC0yLjIsIC00LjQsIC0xLjksIC00LjgsIC0xMC4yLCAtMTEuNSwgLTguMSwgLTEyLjAsIDkuMywgOC4yLCAxMC4wLCA4LjAsIC0xMC44LCAtMTEuOSwgLTEwLjcsIC0xMi40LCAtOC4yLCAtMTEuOCwgLTYuOSwgLTExLjUsIC04LjQsIC05LjksIC03LjEsIC0xMC42LCAtNC43LCAtNi44LCAtMS4yLCAtNy4wLCAtOS44LCAtMTEuNiwgLTkuNiwgLTEyLjEsIC01MC4wLCAtMTQuMSwgLTUwLjAsIC0xMi43LCAtMTAuMCwgLTEwLjgsIC04LjgsIC0xMC41LCAtNTAuMCwgLTkuMiwgLTQuMiwgLTkuMywgLTExLjAsIC0xOC4yLCAtMTEuMSwgLTE2LjEsXSxcbiAgICAgICAgICAgIFstNC4yLCAzLjAsIC01LjEsIDUuMiwgLTAuNCwgMC4zLCAtMC4yLCAyLjUsIC0xLjksIDExLjAsIC0yLjEsIDEzLjIsIC03LjYsIC04LjUsIC04LjAsIC01LjMsIC01LjYsIC00LjUsIC02LjgsIC0yLjQsIC03LjgsIC03LjksIC03LjksIC02LjIsIC01LjcsIC01LjEsIC01LjQsIC0yLjEsIC0xMi40LCAtMTIuMywgLTEzLjEsIC0xMC4xLCAtNi42LCAtNC40LCAtNi45LCAtMi42LCAtMy42LCAtMy44LCAtMy43LCAtMi4wLCAtMS40LCAwLjgsIC0wLjksIDMuMCwgLTguMiwgLTguMSwgLTkuMiwgLTUuOCwgLTUwLjAsIC0xMC4xLCAtNTAuMCwgLTcuNCwgLTEuNywgLTIuMCwgLTEuNSwgLTAuNSwgLTUwLjAsIC0yLjEsIC0xMi42LCAtMC40LCAtMTEuNiwgLTEzLjksIC0xMS40LCAtMTEuMSxdLFxuICAgICAgICAgICAgWy02LjMsIC0xMC4yLCAtOC45LCAtOS4xLCAwLjcsIC0yLjksIC0xLjcsIC0yLjMsIC01LjcsIC04LjQsIC03LjcsIC03LjYsIDEzLjIsIDkuNiwgMy41LCA5LjcsIC04LjcsIC0xMi40LCAtMTAuNywgLTEwLjcsIC03LjgsIC0xMC4yLCAtOC44LCAtOS42LCAtOS41LCAtMTEuOSwgLTEwLjksIC0xMC41LCAyLjMsIC0wLjQsIC0wLjIsIC0wLjMsIC05LjcsIC0xNS41LCAtMTEuNCwgLTEzLjcsIC0zLjAsIC02LjQsIC00LjEsIC01LjQsIC05LjYsIC0xMS45LCAtMTAuNSwgLTExLjgsIDYuMiwgMy4zLCAzLjcsIDMuNiwgLTUwLjAsIC0xMy42LCAtNTAuMCwgLTExLjksIC01LjYsIC04LjgsIC03LjIsIC04LjksIC01MC4wLCAtMTIuNCwgLTE0LjEsIC0xMS42LCAyLjgsIC02LjQsIDAuNSwgLTUuMixdLFxuICAgICAgICAgICAgWy0xMy4wLCAtNy45LCAtMTMuMiwgLTkuNSwgLTQuNiwgLTEuMiwgLTQuMSwgLTMuNCwgLTEyLjUsIC02LjMsIC0xMi41LCAtOC41LCA5LjYsIDEyLjcsIDAuMiwgMTAuNSwgLTEyLjQsIC0xMS42LCAtMTMuMiwgLTEyLjAsIC0xMi40LCAtMTAuMSwgLTExLjYsIC0xMi4wLCAtMTUuMSwgLTEzLjEsIC0xNC4zLCAtMTMuNCwgLTEuNCwgMS40LCAtMS42LCAtMC41LCAtMTQuOSwgLTE0LjMsIC0xNS4yLCAtMTYuOCwgLTcuNywgLTQuNywgLTYuMywgLTYuNiwgLTE0LjYsIC0xMC44LCAtMTIuOCwgLTEzLjAsIDIuMywgNi4wLCAyLjUsIDMuNiwgLTUwLjAsIC0xMS4yLCAtNTAuMCwgLTExLjksIC0xMC41LCAtOS4yLCAtMTAuNSwgLTEwLjUsIC01MC4wLCAtMTAuMywgLTE2LjIsIC0xMS4zLCAtMS43LCAtMy43LCAtMi41LCAtNS40LF0sXG4gICAgICAgICAgICBbLTcuMSwgLTkuOSwgLTUuNywgLTkuMCwgLTAuNCwgLTMuMCwgMC45LCAtMi4zLCAtNy4yLCAtOC4zLCAtNS4zLCAtOC4wLCAzLjUsIDAuMiwgMTQuMywgMS4wLCAtNy4zLCAtMTEuMiwgLTYuOSwgLTkuNywgLTguNSwgLTEwLjIsIC03LjcsIC05LjgsIC0xMC4wLCAtMTAuNCwgLTguNCwgLTEwLjIsIDEuMCwgLTAuNiwgMS43LCAtMC41LCAtMTEuMSwgLTE0LjgsIC05LjcsIC0xNC41LCAtMy43LCAtNS44LCAtMy4xLCAtNS42LCAtMTAuNCwgLTExLjUsIC04LjIsIC0xMS4xLCAwLjYsIC0xLjYsIDEuNiwgLTEuMSwgLTUwLjAsIC0xMi40LCAtNTAuMCwgLTExLjUsIC01LjUsIC04LjAsIC00LjksIC03LjIsIC01MC4wLCAtMTIuNCwgLTEwLjMsIC0xMS42LCAwLjcsIC02LjgsIDIuNCwgLTYuMCxdLFxuICAgICAgICAgICAgWy0xMS41LCAtOS42LCAtMTIuNiwgLTcuMCwgLTMuNiwgLTMuMywgLTMuNSwgLTAuNiwgLTExLjYsIC03LjcsIC0xMS45LCAtNS4zLCA5LjcsIDEwLjUsIDEuMCwgMTIuNiwgLTEyLjAsIC0xMi4yLCAtMTIuNSwgLTkuNywgLTExLjEsIC0xMS4yLCAtMTEuOSwgLTkuNCwgLTEyLjksIC0xNC4zLCAtMTQuMCwgLTExLjksIC0xLjAsIC0wLjQsIC0xLjYsIDEuMiwgLTEzLjksIC0xNS40LCAtMTMuNywgLTEyLjYsIC02LjIsIC02LjcsIC02LjMsIC00LjQsIC0xMy4wLCAtMTIuMiwgLTEzLjAsIC0xMC40LCAyLjksIDMuOCwgMi41LCA1LjgsIC01MC4wLCAtMTIuNSwgLTUwLjAsIC0xMC4yLCAtOS42LCAtOS43LCAtOS42LCAtOC4zLCAtNTAuMCwgLTExLjYsIC0xNS40LCAtOS40LCAtMS4xLCAtNS40LCAtMS42LCAtMy4zLF0sXG4gICAgICAgICAgICBbMC40LCAtNS4wLCAtMS41LCAtNC4wLCAtNC44LCAtNy42LCAtNS45LCAtNi41LCAtMC43LCAtNi4xLCAtMi4yLCAtNS42LCAtOC43LCAtMTIuNCwgLTcuMywgLTEyLjAsIDEyLjgsIDIuMywgMTAuMiwgMy4wLCAwLjAsIC0zLjQsIC0wLjcsIC0zLjIsIDIuNSwgLTAuOCwgMC45LCAwLjIsIC0zLjAsIC03LjIsIC01LjcsIC02LjEsIC0wLjIsIC02LjYsIC0xLjgsIC02LjAsIC01LjMsIC04LjIsIC01LjcsIC03LjYsIC02LjcsIC05LjYsIC03LjUsIC05LjMsIC03LjEsIC0xMC41LCAtOS42LCAtOS40LCAtNTAuMCwgLTguMSwgLTUwLjAsIC03LjIsIC00LjMsIC02LjgsIC01LjcsIC02LjMsIC01MC4wLCAtOS41LCAtOS42LCAtOC45LCAtNi4yLCAtMTIuOCwgLTYuOCwgLTExLjgsXSxcbiAgICAgICAgICAgIFstNi4wLCAwLjUsIC02LjEsIC0xLjAsIC04LjksIC02LjcsIC04LjksIC04LjIsIC00LjgsIC0yLjksIC00LjQsIC00LjUsIC0xMi40LCAtMTEuNiwgLTExLjIsIC0xMi4yLCAyLjMsIDE0LjYsIDEuOSwgMTIuOSwgLTUuNSwgLTIuNiwgLTQuMSwgLTQuNywgLTEuMiwgMy4wLCAtMS4xLCAxLjYsIC04LjAsIC00LjcsIC04LjcsIC02LjAsIC04LjIsIC00LjcsIC03LjgsIC02LjcsIC0xMC4wLCAtOC4zLCAtOC45LCAtOS45LCAtMTAuOCwgLTcuMSwgLTEwLjAsIC05LjIsIC0xMS42LCAtMTAuMSwgLTEyLjMsIC0xMS45LCAtNTAuMCwgMi4yLCAtNTAuMCwgMC45LCAtNy45LCAtNS45LCAtNy40LCAtNi45LCAtNTAuMCwgLTQuNiwgLTExLjYsIC01LjYsIC05LjcsIC01LjksIC05LjksIC03LjMsXSxcbiAgICAgICAgICAgIFstMS45LCAtNS41LCAtMC42LCAtNS4wLCAtNi41LCAtOC4xLCAtNS42LCAtOC4wLCAtMy4xLCAtNi41LCAtMS45LCAtNi44LCAtMTAuNywgLTEzLjIsIC02LjksIC0xMi41LCAxMC4yLCAxLjksIDExLjksIDIuMSwgLTIuMywgLTQuMSwgLTAuNSwgLTQuNiwgLTAuMSwgLTAuOSwgMi40LCAtMC44LCAtNS4xLCAtNi45LCAtNC44LCAtNi43LCAtMi4zLCAtNy4xLCAtMC44LCAtNy4yLCAtNy4yLCAtOC4wLCAtNS42LCAtOC41LCAtOS40LCAtOS43LCAtNy4yLCAtOS44LCAtOS4yLCAtMTEuMSwgLTkuNSwgLTEwLjcsIC01MC4wLCAtOC43LCAtNTAuMCwgLTguNiwgLTYuMSwgLTcuNSwgLTUuNSwgLTcuNywgLTUwLjAsIC0xMC40LCAtNy43LCAtMTAuMCwgLTcuMywgLTEzLjYsIC02LjQsIC0xMy4zLF0sXG4gICAgICAgICAgICBbLTUuMywgLTEuMCwgLTYuMSwgMS4wLCAtNy44LCAtNy45LCAtOC41LCAtNi4zLCAtNC4zLCAtNC4yLCAtNC44LCAtMi40LCAtMTAuNywgLTEyLjAsIC05LjcsIC05LjcsIDMuMCwgMTIuOSwgMi4xLCAxNC43LCAtNC45LCAtMy44LCAtNC4wLCAtMi40LCAtMS4wLCAwLjgsIC0xLjMsIDMuNCwgLTcuNiwgLTUuNywgLTguMSwgLTMuNSwgLTYuOCwgLTUuOCwgLTcuMiwgLTQuMiwgLTguOSwgLTEwLjIsIC04LjQsIC04LjIsIC05LjksIC04LjQsIC05LjcsIC02LjQsIC0xMS4xLCAtMTEuMSwgLTExLjgsIC0xMC4wLCAtNTAuMCwgMC40LCAtNTAuMCwgMi42LCAtNy4yLCAtNy4wLCAtNy40LCAtNS4xLCAtNTAuMCwgLTUuNywgLTkuOCwgLTMuMiwgLTguNCwgLTcuNCwgLTguOSwgLTUuOSxdLFxuICAgICAgICAgICAgWy04LjUsIC0xMC4zLCAtMTAuMCwgLTkuMCwgLTEuNCwgLTQuOSwgLTMuOSwgLTMuNywgLTEwLjAsIC04LjUsIC0xMC4yLCAtNy44LCAtNy44LCAtMTIuNCwgLTguNSwgLTExLjEsIDAuMCwgLTUuNSwgLTIuMywgLTQuOSwgMTIuNiwgMTAuMCwgMTEuMSwgMTAuNSwgLTYuMCwgLTguMywgLTYuOSwgLTcuNSwgLTIuMiwgLTcuNCwgLTUuMywgLTUuOSwgLTguOSwgLTEyLjUsIC05LjQsIC0xMS42LCAtMC43LCAtMy45LCAtMi4zLCAtMy4wLCAtOS4xLCAtOS44LCAtOS4yLCAtOS41LCAtNS42LCAtOS4wLCAtOC4wLCAtOC41LCAtNTAuMCwgLTE1LjMsIC01MC4wLCAtMTQuMSwgMi4zLCAtMS40LCAwLjMsIC0wLjUsIC01MC4wLCAtMTMuNiwgLTE0LjMsIC0xMS41LCAtNS4zLCAtMTMuNywgLTYuMSwgLTEyLjcsXSxcbiAgICAgICAgICAgIFstMTEuMiwgLTguMSwgLTExLjgsIC04LjgsIC00LjEsIC0xLjksIC0zLjksIC0zLjUsIC0xMS42LCAtNS45LCAtMTEuNSwgLTcuOSwgLTEwLjIsIC0xMC4xLCAtMTAuMiwgLTExLjIsIC0zLjQsIC0yLjYsIC00LjEsIC0zLjgsIDEwLjAsIDEzLjEsIDEwLjcsIDEwLjYsIC04LjEsIC01LjIsIC04LjAsIC02LjcsIC02LjEsIC0zLjcsIC03LjUsIC01LjYsIC0xMS4xLCAtMTAuMywgLTEwLjYsIC0xMS45LCAtMy4yLCAtMS4wLCAtMi4yLCAtMi44LCAtMTAuNSwgLTguMSwgLTkuNCwgLTkuNSwgLTguMywgLTYuOSwgLTkuNCwgLTguOCwgLTUwLjAsIC0xMS4zLCAtNTAuMCwgLTEyLjgsIC0wLjYsIDIuMiwgLTAuMywgMC4xLCAtNTAuMCwgLTEwLjEsIC0xNy41LCAtMTEuMSwgLTguNiwgLTkuOSwgLTguNiwgLTExLjksXSxcbiAgICAgICAgICAgIFstOC45LCAtOS40LCAtOC42LCAtOC45LCAtMi45LCAtNC41LCAtMi4yLCAtMy45LCAtOC44LCAtNy41LCAtOC4xLCAtNy45LCAtOC44LCAtMTEuNiwgLTcuNywgLTExLjksIC0wLjcsIC00LjEsIC0wLjUsIC00LjAsIDExLjEsIDEwLjcsIDEzLjIsIDEwLjQsIC01LjcsIC01LjgsIC0zLjUsIC02LjEsIC0zLjYsIC02LjUsIC0zLjMsIC01LjUsIC05LjQsIC0xMS4wLCAtOC43LCAtMTEuMiwgLTEuOCwgLTIuNywgMC43LCAtMy4wLCAtOS4xLCAtOC4yLCAtNy4zLCAtOS40LCAtNy4yLCAtOC4yLCAtNy4yLCAtOC4yLCAtNTAuMCwgLTEzLjIsIC01MC4wLCAtMTMuMywgMC41LCAtMC45LCAxLjgsIC0wLjYsIC01MC4wLCAtMTEuNCwgLTExLjEsIC0xMC41LCAtNi4xLCAtMTIuOSwgLTUuMCwgLTExLjksXSxcbiAgICAgICAgICAgIFstMTAuOCwgLTkuNiwgLTExLjksIC03LjcsIC0zLjMsIC0zLjgsIC00LjUsIC0xLjYsIC0xMS43LCAtNy43LCAtMTIuMCwgLTYuMiwgLTkuNiwgLTEyLjAsIC05LjgsIC05LjQsIC0zLjIsIC00LjcsIC00LjYsIC0yLjQsIDEwLjUsIDEwLjYsIDEwLjQsIDEyLjYsIC04LjIsIC03LjksIC05LjAsIC00LjcsIC02LjEsIC02LjAsIC03LjUsIC0yLjksIC0xMC45LCAtMTIuMiwgLTExLjIsIC0xMC45LCAtMi40LCAtMi45LCAtMi43LCAtMC45LCAtMTAuNCwgLTkuNywgLTEwLjIsIC04LjAsIC04LjQsIC05LjEsIC05LjMsIC02LjUsIC01MC4wLCAtMTMuMywgLTUwLjAsIC0xMS4wLCAtMC4wLCAtMC40LCAtMC40LCAyLjMsIC01MC4wLCAtMTAuOSwgLTE3LjIsIC04LjMsIC04LjMsIC0xMi43LCAtNy44LCAtOS4zLF0sXG4gICAgICAgICAgICBbMi4xLCAtOC4xLCAxLjIsIC03LjAsIC04LjAsIC05LjUsIC03LjMsIC05LjksIDEwLjUsIC01LjUsIDkuMywgLTUuNywgLTkuNSwgLTE1LjEsIC0xMC4wLCAtMTIuOSwgMi41LCAtMS4yLCAtMC4xLCAtMS4wLCAtNi4wLCAtOC4xLCAtNS43LCAtOC4yLCAxMy44LCAxMS4zLCAxMS44LCAxMi4xLCAtNi4wLCAtOS4xLCAtOS4wLCAtOS41LCAtOC45LCAtMTMuNCwgLTEwLjAsIC0xMy4xLCAtOS45LCAtMTEuNywgLTkuOCwgLTEyLjgsIC01LjksIC05LjQsIC02LjUsIC04LjEsIC0xMC43LCAtMTQuMCwgLTEzLjMsIC0xMy45LCAtNTAuMCwgLTExLjksIC01MC4wLCAtOS43LCAtOC45LCAtMTAuOCwgLTkuMCwgLTExLjEsIC01MC4wLCAtNi41LCAtNS4zLCAtNi4zLCAtMTAuNSwgLTE2LjIsIC0xMC40LCAtMTUuMixdLFxuICAgICAgICAgICAgWzAuMCwgLTUuMCwgMC41LCAtNi44LCAtOS4xLCAtNy44LCAtNy41LCAtOC45LCA3LjcsIC0yLjQsIDguMiwgLTUuMSwgLTExLjksIC0xMy4xLCAtMTAuNCwgLTE0LjMsIC0wLjgsIDMuMCwgLTAuOSwgMC44LCAtOC4zLCAtNS4yLCAtNS44LCAtNy45LCAxMS4zLCAxNS4wLCAxMS4yLCAxMi44LCAtOS43LCAtNS4zLCAtOS4yLCAtNy44LCAtMTEuNywgLTEwLjYsIC0xMC4xLCAtMTIuMiwgLTExLjcsIC04LjgsIC04LjksIC0xMS44LCAtOS4zLCAtNS4wLCAtOC4wLCAtOC4yLCAtMTMuNiwgLTExLjQsIC0xMi44LCAtMTMuMCwgLTUwLjAsIC03LjIsIC01MC4wLCAtOC40LCAtMTEuMCwgLTcuNywgLTguNywgLTEwLjIsIC01MC4wLCAtMS41LCAtNy4xLCAtNC45LCAtMTEuMiwgLTExLjYsIC0xMS42LCAtMTUuMCxdLFxuICAgICAgICAgICAgWzEuNCwgLTcuMywgMi4yLCAtNy4xLCAtOC4wLCAtOS4zLCAtNi40LCAtOS42LCA5LjEsIC01LjUsIDEwLjAsIC01LjQsIC0xMC45LCAtMTQuMywgLTguNCwgLTE0LjAsIDAuOSwgLTEuMSwgMi40LCAtMS4zLCAtNi45LCAtOC4wLCAtMy41LCAtOS4wLCAxMS44LCAxMS4yLCAxMy40LCAxMS40LCAtNy4zLCAtOC44LCAtNi41LCAtOC41LCAtMTAuMCwgLTEyLjUsIC03LjgsIC0xMi41LCAtOS42LCAtMTEuMCwgLTcuMSwgLTEwLjcsIC03LjksIC04LjAsIC00LjMsIC05LjQsIC0xMS40LCAtMTIuMywgLTEwLjksIC0xMi45LCAtNTAuMCwgLTExLjgsIC01MC4wLCAtMTEuMiwgLTkuNCwgLTkuOCwgLTcuMywgLTEwLjUsIC01MC4wLCAtNi4yLCAtMi4yLCAtNi43LCAtOS44LCAtMTUuMiwgLTguNSwgLTE0LjksXSxcbiAgICAgICAgICAgIFswLjIsIC02LjMsIDAuMSwgLTQuMywgLTguMiwgLTguOSwgLTguNSwgLTcuMCwgOC41LCAtNC4xLCA4LjAsIC0yLjEsIC0xMC41LCAtMTMuNCwgLTEwLjIsIC0xMS45LCAwLjIsIDEuNiwgLTAuOCwgMy40LCAtNy41LCAtNi43LCAtNi4xLCAtNC43LCAxMi4xLCAxMi44LCAxMS40LCAxNC43LCAtOC43LCAtNy40LCAtOS40LCAtNS4zLCAtOS45LCAtMTEuOCwgLTEwLjUsIC0xMC4zLCAtOS45LCAtMTAuMSwgLTkuMywgLTkuMywgLTguMSwgLTcuMiwgLTguMCwgLTUuMiwgLTEyLjAsIC0xMi4xLCAtMTIuNiwgLTEwLjksIC01MC4wLCAtNy45LCAtNTAuMCwgLTUuMywgLTkuMywgLTguOCwgLTguOSwgLTcuMCwgLTUwLjAsIC0zLjYsIC03LjEsIC0xLjIsIC0xMC4yLCAtMTIuNywgLTkuOSwgLTExLjAsXSxcbiAgICAgICAgICAgIFstMTAuMiwgLTEzLjQsIC0xMS44LCAtMTIuNCwgLTYuMCwgLTkuNCwgLTcuMSwgLTguNiwgLTkuOCwgLTEyLjksIC0xMC44LCAtMTIuNCwgMi4zLCAtMS40LCAxLjAsIC0xLjAsIC0zLjAsIC04LjAsIC01LjEsIC03LjYsIC0yLjIsIC02LjEsIC0zLjYsIC02LjEsIC02LjAsIC05LjcsIC03LjMsIC04LjcsIDExLjIsIDcuOSwgOC45LCA4LjEsIC0xMi4xLCAtMTcuNCwgLTEzLjIsIC0xNi44LCAtNi4zLCAtOS41LCAtNy41LCAtOC44LCAtMTIuNywgLTE1LjIsIC0xMy4xLCAtMTQuMiwgMC4wLCAtMy4xLCAtMS44LCAtMy4xLCAtNTAuMCwgLTEwLjcsIC01MC4wLCAtOS4zLCAtNC42LCAtOC45LCAtNS45LCAtOC4zLCAtNTAuMCwgLTEyLjgsIC05LjYsIC0xMC42LCA5LjUsIC0zLjIsIDguMiwgLTIuOCxdLFxuICAgICAgICAgICAgWy0xMy41LCAtMTEuMywgLTE0LjAsIC0xMi45LCAtOS4zLCAtNy4xLCAtOC4yLCAtOC45LCAtMTIuNywgLTEwLjMsIC0xMS45LCAtMTIuMywgLTAuNCwgMS40LCAtMC42LCAtMC40LCAtNy4yLCAtNC43LCAtNi45LCAtNS43LCAtNy40LCAtMy43LCAtNi41LCAtNi4wLCAtOS4xLCAtNS4zLCAtOC44LCAtNy40LCA3LjksIDExLjksIDcuOCwgOS4zLCAtMTUuMiwgLTE1LjEsIC0xNC42LCAtMTcuMiwgLTkuNywgLTcuMywgLTguMiwgLTkuMiwgLTE1LjAsIC0xMi44LCAtMTQuMSwgLTE0LjksIC0yLjgsIDAuMiwgLTIuOSwgLTIuMywgLTUwLjAsIC03LjQsIC01MC4wLCAtOC43LCAtOS40LCAtNy4zLCAtOS40LCAtOS40LCAtNTAuMCwgLTguMCwgLTExLjksIC05LjcsIDYuNSwgMC41LCA2LjQsIC0xLjgsXSxcbiAgICAgICAgICAgIFstMTMuMCwgLTE0LjQsIC0xMS45LCAtMTMuOSwgLTcuNywgLTkuMCwgLTYuNywgLTguOCwgLTExLjcsIC0xMi43LCAtMTAuNywgLTEzLjEsIC0wLjIsIC0xLjYsIDEuNywgLTEuNiwgLTUuNywgLTguNywgLTQuOCwgLTguMSwgLTUuMywgLTcuNSwgLTMuMywgLTcuNSwgLTkuMCwgLTkuMiwgLTYuNSwgLTkuNCwgOC45LCA3LjgsIDEwLjEsIDcuOCwgLTE0LjMsIC0xNy43LCAtMTMuMCwgLTE3LjgsIC04LjAsIC05LjQsIC02LjIsIC05LjIsIC0xNS4xLCAtMTQuOSwgLTEyLjIsIC0xNC45LCAtMS44LCAtMy4yLCAtMC44LCAtMy4yLCAtNTAuMCwgLTEwLjgsIC01MC4wLCAtOS45LCAtNy4zLCAtOS42LCAtNi40LCAtOS40LCAtNTAuMCwgLTEyLjMsIC04LjcsIC0xMS4zLCA3LjYsIC0zLjMsIDguNywgLTIuOSxdLFxuICAgICAgICAgICAgWy0xMi41LCAtMTIuOSwgLTEzLjQsIC0xMC4wLCAtOC41LCAtOS4wLCAtNy44LCAtNi44LCAtMTEuOCwgLTExLjMsIC0xMi40LCAtMTAuMSwgLTAuMywgLTAuNSwgLTAuNSwgMS4yLCAtNi4xLCAtNi4wLCAtNi43LCAtMy41LCAtNS45LCAtNS42LCAtNS41LCAtMi45LCAtOS41LCAtNy44LCAtOC41LCAtNS4zLCA4LjEsIDkuMywgNy44LCAxMS44LCAtMTQuNCwgLTE1LjcsIC0xNC41LCAtMTQuNiwgLTguNCwgLTguNywgLTcuOSwgLTcuMSwgLTE0LjMsIC0xMy44LCAtMTMuOCwgLTEyLjMsIC0yLjQsIC0yLjIsIC0yLjksIC0wLjIsIC01MC4wLCAtOC45LCAtNTAuMCwgLTcuMSwgLTguMSwgLTkuMSwgLTguNywgLTYuNiwgLTUwLjAsIC05LjcsIC0xMS40LCAtOC4wLCA2LjgsIC0xLjgsIDYuOSwgMC40LF0sXG4gICAgICAgICAgICBbLTIuNiwgLTYuMywgLTQuOSwgLTQuOSwgLTYuNCwgLTkuNCwgLTcuOSwgLTguNiwgLTYuMywgLTcuNCwgLTguMiwgLTYuNiwgLTkuNywgLTE0LjksIC0xMS4xLCAtMTMuOSwgLTAuMiwgLTguMiwgLTIuMywgLTYuOCwgLTguOSwgLTExLjEsIC05LjQsIC0xMC45LCAtOC45LCAtMTEuNywgLTEwLjAsIC05LjksIC0xMi4xLCAtMTUuMiwgLTE0LjMsIC0xNC40LCAxMS4xLCAyLjksIDkuMiwgMy41LCAtMy4wLCAtNy4wLCAtNC4zLCAtNi4yLCAtMi4yLCAtNi42LCAtMy43LCAtNS43LCAtNi4wLCAtMTAuNCwgLTguNiwgLTkuNSwgLTUwLjAsIC0xNS41LCAtNTAuMCwgLTEzLjksIC03LjgsIC0xMC41LCAtOC43LCAtOS42LCAtNTAuMCwgLTE2LjUsIC0xNy4xLCAtMTQuOCwgLTEyLjEsIC0xOC45LCAtMTIuNCwgLTE3LjQsXSxcbiAgICAgICAgICAgIFstOC41LCAwLjgsIC05LjEsIC0wLjcsIC0xMC4xLCAtNy41LCAtOS4xLCAtOC4yLCAtMTEuNCwgLTMuMSwgLTExLjgsIC00LjQsIC0xNS41LCAtMTQuMywgLTE0LjgsIC0xNS40LCAtNi42LCAtNC43LCAtNy4xLCAtNS44LCAtMTIuNSwgLTEwLjMsIC0xMS4wLCAtMTIuMiwgLTEzLjQsIC0xMC42LCAtMTIuNSwgLTExLjgsIC0xNy40LCAtMTUuMSwgLTE3LjcsIC0xNS43LCAyLjksIDEyLjUsIDMuMSwgMTAuMywgLTcuNywgLTUuMiwgLTYuMiwgLTcuMywgLTUuNCwgLTEuNywgLTUuNCwgLTMuNywgLTExLjYsIC05LjEsIC0xMy4wLCAtMTAuOCwgLTUwLjAsIC0xMC4zLCAtNTAuMCwgLTExLjIsIC05LjgsIC04LjMsIC05LjEsIC05LjcsIC01MC4wLCAtMTIuNywgLTIwLjYsIC0xMy4xLCAtMTYuMCwgLTE2LjYsIC0xNy4wLCAtMTguNCxdLFxuICAgICAgICAgICAgWy01LjAsIC02LjQsIC0zLjQsIC01LjYsIC03LjUsIC05LjMsIC03LjEsIC04LjgsIC04LjgsIC03LjQsIC02LjksIC02LjksIC0xMS40LCAtMTUuMiwgLTkuNywgLTEzLjcsIC0xLjgsIC03LjgsIC0wLjgsIC03LjIsIC05LjQsIC0xMC42LCAtOC43LCAtMTEuMiwgLTEwLjAsIC0xMC4xLCAtNy44LCAtMTAuNSwgLTEzLjIsIC0xNC42LCAtMTMuMCwgLTE0LjUsIDkuMiwgMy4xLCAxMC44LCAzLjAsIC00LjUsIC02LjcsIC0yLjcsIC02LjcsIC01LjAsIC02LjgsIC0yLjUsIC02LjcsIC03LjUsIC0xMC40LCAtNy40LCAtMTAuMiwgLTUwLjAsIC0xNS41LCAtNTAuMCwgLTE0LjIsIC04LjksIC0xMC4yLCAtOC41LCAtMTAuMCwgLTUwLjAsIC0xNS42LCAtMTUuMywgLTE1LjUsIC0xMy4wLCAtMTguOCwgLTEyLjYsIC0xOC4zLF0sXG4gICAgICAgICAgICBbLTguMSwgLTEuMSwgLTguOSwgMS40LCAtOC42LCAtOS4yLCAtOS40LCAtNi44LCAtMTEuMCwgLTQuOSwgLTExLjUsIC0yLjYsIC0xMy43LCAtMTYuOCwgLTE0LjUsIC0xMi42LCAtNi4wLCAtNi43LCAtNy4yLCAtNC4yLCAtMTEuNiwgLTExLjksIC0xMS4yLCAtMTAuOSwgLTEzLjEsIC0xMi4yLCAtMTIuNSwgLTEwLjMsIC0xNi44LCAtMTcuMiwgLTE3LjgsIC0xNC42LCAzLjUsIDEwLjMsIDMuMCwgMTIuNCwgLTYuOSwgLTcuNSwgLTYuOCwgLTQuOSwgLTUuNCwgLTQuMiwgLTUuNCwgLTEuMywgLTEwLjgsIC0xMS41LCAtMTIuNCwgLTguMiwgLTUwLjAsIC0xMi41LCAtNTAuMCwgLTguOSwgLTkuMiwgLTEwLjAsIC05LjQsIC03LjksIC01MC4wLCAtMTQuMywgLTE5LjksIC0xMS40LCAtMTYuMiwgLTE5LjIsIC0xNS44LCAtMTUuOSxdLFxuICAgICAgICAgICAgWy02LjMsIC03LjQsIC04LjAsIC02LjAsIDIuOCwgLTAuNywgMC45LCAwLjMsIC03LjUsIC00LjQsIC04LjQsIC0zLjYsIC0zLjAsIC03LjcsIC0zLjcsIC02LjIsIC01LjMsIC0xMC4wLCAtNy4yLCAtOC45LCAtMC43LCAtMy4yLCAtMS44LCAtMi40LCAtOS45LCAtMTEuNywgLTkuNiwgLTkuOSwgLTYuMywgLTkuNywgLTguMCwgLTguNCwgLTMuMCwgLTcuNywgLTQuNSwgLTYuOSwgMTEuMywgOC4yLCA5LjQsIDkuMSwgLTEuMCwgLTMuMywgLTEuOCwgLTIuNCwgMS41LCAtMi4xLCAtMC40LCAtMS4xLCAtNTAuMCwgLTE0LjUsIC01MC4wLCAtMTIuOSwgMi44LCAtMC4wLCAxLjQsIDAuNywgLTUwLjAsIC04LjcsIC0xNC4xLCAtNy41LCAtNS4yLCAtMTIuNSwgLTYuNSwgLTEwLjcsXSxcbiAgICAgICAgICAgIFstOS45LCAtNS4wLCAtMTAuMCwgLTYuNSwgLTAuNywgMi42LCAtMC4yLCAwLjEsIC0xMC4zLCAtMS44LCAtOS45LCAtMy44LCAtNi40LCAtNC43LCAtNS44LCAtNi43LCAtOC4yLCAtOC4zLCAtOC4wLCAtMTAuMiwgLTMuOSwgLTEuMCwgLTIuNywgLTIuOSwgLTExLjcsIC04LjgsIC0xMS4wLCAtMTAuMSwgLTkuNSwgLTcuMywgLTkuNCwgLTguNywgLTcuMCwgLTUuMiwgLTYuNywgLTcuNSwgOC4yLCAxMS42LCA4LjgsIDkuMSwgLTMuNywgLTAuOSwgLTMuMSwgLTMuMCwgLTIuMCwgMS4yLCAtMi4zLCAtMS4zLCAtNTAuMCwgLTEyLjEsIC01MC4wLCAtMTIuNiwgMC4xLCAyLjUsIDAuNywgMC42LCAtNTAuMCwgLTYuMCwgLTE0LjgsIC03LjUsIC04LjYsIC05LjQsIC04LjUsIC0xMS4yLF0sXG4gICAgICAgICAgICBbLTcuNSwgLTYuMiwgLTcuMiwgLTYuMiwgMC45LCAwLjIsIDIuNSwgMC4yLCAtOC4zLCAtMy41LCAtNy4xLCAtMy43LCAtNC4xLCAtNi4zLCAtMy4xLCAtNi4zLCAtNS43LCAtOC45LCAtNS42LCAtOC40LCAtMi4zLCAtMi4yLCAwLjcsIC0yLjcsIC05LjgsIC04LjksIC03LjEsIC05LjMsIC03LjUsIC04LjIsIC02LjIsIC03LjksIC00LjMsIC02LjIsIC0yLjcsIC02LjgsIDkuNCwgOC44LCAxMi4xLCA4LjgsIC0yLjEsIC0yLjAsIDAuMSwgLTIuNCwgMC4wLCAtMS4xLCAxLjMsIC0wLjgsIC01MC4wLCAtMTEuOSwgLTUwLjAsIC0xMi42LCAxLjIsIDAuNywgMy41LCAwLjgsIC01MC4wLCAtNy4xLCAtMTIuNCwgLTcuMSwgLTcuMSwgLTEwLjYsIC01LjAsIC0xMC42LF0sXG4gICAgICAgICAgICBbLTkuMCwgLTYuNSwgLTEwLjAsIC00LjgsIDAuMSwgLTAuMSwgLTAuMywgMi40LCAtOS45LCAtMy41LCAtMTAuNiwgLTIuMCwgLTUuNCwgLTYuNiwgLTUuNiwgLTQuNCwgLTcuNiwgLTkuOSwgLTguNSwgLTguMiwgLTMuMCwgLTIuOCwgLTMuMCwgLTAuOSwgLTEyLjgsIC0xMS44LCAtMTAuNywgLTkuMywgLTguOCwgLTkuMiwgLTkuMiwgLTcuMSwgLTYuMiwgLTcuMywgLTYuNywgLTQuOSwgOS4xLCA5LjEsIDguOCwgMTEuMiwgLTMuMSwgLTMuMCwgLTMuMywgLTEuMCwgLTEuMSwgLTEuNCwgLTIuMCwgMS4yLCAtNTAuMCwgLTEyLjgsIC01MC4wLCAtMTAuOSwgMC44LCAwLjUsIDAuNywgMi4zLCAtNTAuMCwgLTcuNSwgLTE2LjUsIC01LjksIC03LjgsIC0xMS4xLCAtNy44LCAtOS4wLF0sXG4gICAgICAgICAgICBbLTcuMSwgLTUuNiwgLTkuMSwgLTUuMSwgLTUuOSwgLTguMCwgLTYuOSwgLTcuNCwgLTEuOSwgLTEuNiwgLTQuNywgLTEuNCwgLTkuNiwgLTE0LjYsIC0xMC40LCAtMTMuMCwgLTYuNywgLTEwLjgsIC05LjQsIC05LjksIC05LjEsIC0xMC41LCAtOS4xLCAtMTAuNCwgLTUuOSwgLTkuMywgLTcuOSwgLTguMSwgLTEyLjcsIC0xNS4wLCAtMTUuMSwgLTE0LjMsIC0yLjIsIC01LjQsIC01LjAsIC01LjQsIC0xLjAsIC0zLjcsIC0yLjEsIC0zLjEsIDEyLjgsIDkuNiwgMTEuMSwgMTAuMSwgLTQuOCwgLTkuNCwgLTguMSwgLTguNiwgLTUwLjAsIC0xOC4zLCAtNTAuMCwgLTE1LjQsIC01LjksIC03LjUsIC02LjYsIC03LjEsIC01MC4wLCAtOS41LCAtMTEuNywgLTguNCwgLTEyLjUsIC0xNy4zLCAtMTMuMiwgLTE1LjQsXSxcbiAgICAgICAgICAgIFstMTAuMiwgLTEuNiwgLTEwLjIsIC0zLjIsIC03LjMsIC00LjYsIC02LjUsIC02LjIsIC02LjcsIDMuMCwgLTYuOCwgMC44LCAtMTEuOSwgLTEwLjgsIC0xMS41LCAtMTIuMiwgLTkuNiwgLTcuMSwgLTkuNywgLTguNCwgLTkuOCwgLTguMSwgLTguMiwgLTkuNywgLTkuNCwgLTUuMCwgLTguMCwgLTcuMiwgLTE1LjIsIC0xMi44LCAtMTQuOSwgLTEzLjgsIC02LjYsIC0xLjcsIC02LjgsIC00LjIsIC0zLjMsIC0wLjksIC0yLjAsIC0zLjAsIDkuNiwgMTIuOCwgOS43LCAxMC41LCAtOC41LCAtNS42LCAtOS4zLCAtNy44LCAtNTAuMCwgLTEyLjcsIC01MC4wLCAtMTMuOCwgLTYuOCwgLTUuMSwgLTUuMywgLTYuNSwgLTUwLjAsIC00LjEsIC0xMi44LCAtNS44LCAtMTQuNCwgLTE0LjEsIC0xMy42LCAtMTQuOCxdLFxuICAgICAgICAgICAgWy04LjIsIC00LjcsIC03LjEsIC01LjAsIC02LjUsIC03LjcsIC01LjUsIC02LjksIC00LjEsIC0wLjgsIC0xLjIsIC0wLjksIC0xMC41LCAtMTIuOCwgLTguMiwgLTEzLjAsIC03LjUsIC0xMC4wLCAtNy4yLCAtOS43LCAtOS4yLCAtOS40LCAtNy4zLCAtMTAuMiwgLTYuNSwgLTguMCwgLTQuMywgLTguMCwgLTEzLjEsIC0xNC4xLCAtMTIuMiwgLTEzLjgsIC0zLjcsIC01LjQsIC0yLjUsIC01LjQsIC0xLjgsIC0zLjEsIDAuMSwgLTMuMywgMTEuMSwgOS43LCAxMi45LCA5LjgsIC01LjUsIC04LjEsIC01LjQsIC03LjgsIC01MC4wLCAtMTYuNCwgLTUwLjAsIC0xNC44LCAtNS45LCAtNy4xLCAtNC43LCAtNy4yLCAtNTAuMCwgLTguNCwgLTYuNCwgLTguMSwgLTEyLjEsIC0xNi4yLCAtMTAuMywgLTE1LjgsXSxcbiAgICAgICAgICAgIFstOS4yLCAtMy4wLCAtOS45LCAtMS4yLCAtNi41LCAtNi4xLCAtNi44LCAtNC40LCAtNi40LCAwLjksIC03LjAsIDMuMCwgLTExLjgsIC0xMy4wLCAtMTEuMSwgLTEwLjQsIC05LjMsIC05LjIsIC05LjgsIC02LjQsIC05LjUsIC05LjUsIC05LjQsIC04LjAsIC04LjEsIC04LjIsIC05LjQsIC01LjIsIC0xNC4yLCAtMTQuOSwgLTE0LjksIC0xMi4zLCAtNS43LCAtMy43LCAtNi43LCAtMS4zLCAtMi40LCAtMy4wLCAtMi40LCAtMS4wLCAxMC4xLCAxMC41LCA5LjgsIDEzLjEsIC03LjIsIC04LjAsIC04LjQsIC01LjAsIC01MC4wLCAtMTQuNywgLTUwLjAsIC0xMS40LCAtNi4zLCAtNi43LCAtNS44LCAtNS4wLCAtNTAuMCwgLTYuMSwgLTEzLjQsIC0zLjYsIC0xMy4wLCAtMTYuMCwgLTEzLjcsIC0xMy4zLF0sXG4gICAgICAgICAgICBbLTguMiwgLTEwLjgsIC0xMC4xLCAtOS44LCAtMC40LCAtMy42LCAtMS43LCAtMi45LCAtNy45LCAtOC40LCAtOS44LCAtOC4yLCA2LjIsIDIuMywgMC42LCAyLjksIC03LjEsIC0xMS42LCAtOS4yLCAtMTEuMSwgLTUuNiwgLTguMywgLTcuMiwgLTguNCwgLTEwLjcsIC0xMy42LCAtMTEuNCwgLTEyLjAsIDAuMCwgLTIuOCwgLTEuOCwgLTIuNCwgLTYuMCwgLTExLjYsIC03LjUsIC0xMC44LCAxLjUsIC0yLjAsIDAuMCwgLTEuMSwgLTQuOCwgLTguNSwgLTUuNSwgLTcuMiwgMTEuOSwgOC42LCAxMC4wLCA5LjAsIC01MC4wLCAtMTQuMiwgLTUwLjAsIC0xMi44LCAtNC4xLCAtNy40LCAtNS43LCAtNi41LCAtNTAuMCwgLTExLjAsIC0xNC4zLCAtOS45LCAxLjQsIC03LjksIC0wLjcsIC02LjgsXSxcbiAgICAgICAgICAgIFstMTIuNSwgLTguNywgLTEzLjAsIC05LjksIC0zLjksIC0xLjAsIC0zLjQsIC0yLjksIC0xMi41LCAtNi4zLCAtMTEuNiwgLTguMSwgMy4zLCA2LjAsIC0xLjYsIDMuOCwgLTEwLjUsIC0xMC4xLCAtMTEuMSwgLTExLjEsIC05LjAsIC02LjksIC04LjIsIC05LjEsIC0xNC4wLCAtMTEuNCwgLTEyLjMsIC0xMi4xLCAtMy4xLCAwLjIsIC0zLjIsIC0yLjIsIC0xMC40LCAtOS4xLCAtMTAuNCwgLTExLjUsIC0yLjEsIDEuMiwgLTEuMSwgLTEuNCwgLTkuNCwgLTUuNiwgLTguMSwgLTguMCwgOC42LCAxMi40LCA4LjYsIDkuNSwgLTUwLjAsIC0xMC40LCAtNTAuMCwgLTExLjYsIC03LjIsIC01LjcsIC03LjUsIC03LjQsIC01MC4wLCAtOC42LCAtMTUuNywgLTkuNywgLTMuMCwgLTMuNywgLTMuMiwgLTUuOSxdLFxuICAgICAgICAgICAgWy0xMS4xLCAtMTEuOSwgLTEwLjYsIC0xMS4zLCAtMi42LCAtNC4xLCAtMS43LCAtMy41LCAtMTEuNCwgLTkuNiwgLTkuNiwgLTkuMiwgMy43LCAyLjUsIDEuNiwgMi41LCAtOS42LCAtMTIuMywgLTkuNSwgLTExLjgsIC04LjAsIC05LjQsIC03LjIsIC05LjMsIC0xMy4zLCAtMTIuOCwgLTEwLjksIC0xMi42LCAtMS44LCAtMi45LCAtMC44LCAtMi45LCAtOC42LCAtMTMuMCwgLTcuNCwgLTEyLjQsIC0wLjQsIC0yLjMsIDEuMywgLTIuMCwgLTguMSwgLTkuMywgLTUuNCwgLTguNCwgMTAuMCwgOC42LCAxMS40LCA4LjksIC01MC4wLCAtMTMuNywgLTUwLjAsIC0xMy4yLCAtNi4xLCAtOC4xLCAtNS41LCAtNy41LCAtNTAuMCwgLTExLjMsIC0xMi43LCAtMTAuMSwgLTEuNiwgLTcuOCwgLTAuMywgLTcuMixdLFxuICAgICAgICAgICAgWy0xMS40LCAtMTAuMCwgLTEyLjcsIC04LjIsIC0zLjEsIC0zLjEsIC0yLjgsIC0wLjksIC0xMS43LCAtNy4zLCAtMTIuMSwgLTUuOCwgMy42LCAzLjYsIC0xLjEsIDUuOCwgLTkuNCwgLTExLjksIC0xMC43LCAtMTAuMCwgLTguNSwgLTguOCwgLTguMiwgLTYuNSwgLTEzLjksIC0xMy4wLCAtMTIuOSwgLTEwLjksIC0zLjEsIC0yLjMsIC0zLjIsIC0wLjIsIC05LjUsIC0xMC44LCAtMTAuMiwgLTguMiwgLTEuMSwgLTEuMywgLTAuOCwgMS4yLCAtOC42LCAtNy44LCAtNy44LCAtNS4wLCA5LjAsIDkuNSwgOC45LCAxMi4wLCAtNTAuMCwgLTEzLjAsIC01MC4wLCAtMTAuMywgLTYuMiwgLTcuMCwgLTcuMSwgLTUuNCwgLTUwLjAsIC05LjMsIC0xNC4wLCAtOC4yLCAtMi40LCAtNi4zLCAtMi40LCAtMy45LF0sXG4gICAgICAgICAgICBbLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMzMuMywgLTUwLjAsIDMwLjYsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMjkuMiwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsXSxcbiAgICAgICAgICAgIFstMTQuOCwgLTYuMiwgLTE0LjksIC03LjYsIC0xNC42LCAtMTEuNiwgLTEzLjAsIC0xMi4yLCAtMTQuMCwgLTkuMCwgLTE0LjEsIC0xMC4xLCAtMTMuNiwgLTExLjIsIC0xMi40LCAtMTIuNSwgLTguMSwgMi4yLCAtOC43LCAwLjQsIC0xNS4zLCAtMTEuMywgLTEzLjIsIC0xMy4zLCAtMTEuOSwgLTcuMiwgLTExLjgsIC03LjksIC0xMC43LCAtNy40LCAtMTAuOCwgLTguOSwgLTE1LjUsIC0xMC4zLCAtMTUuNSwgLTEyLjUsIC0xNC41LCAtMTIuMSwgLTExLjksIC0xMi44LCAtMTguMywgLTEyLjcsIC0xNi40LCAtMTQuNywgLTE0LjIsIC0xMC40LCAtMTMuNywgLTEzLjAsIC01MC4wLCAxNS4xLCAtNTAuMCwgMTMuMywgLTkuOSwgLTUuOCwgLTguOSwgLTcuNiwgLTUwLjAsIC0xLjUsIC03LjgsIC0zLjAsIC04LjEsIDMuNiwgLTkuNCwgMi4wLF0sXG4gICAgICAgICAgICBbLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMzAuNiwgLTUwLjAsIDM1LjIsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMjguNSwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsXSxcbiAgICAgICAgICAgIFstMTMuOCwgLTcuNSwgLTE0LjQsIC01LjEsIC0xMi42LCAtMTEuNiwgLTExLjUsIC0xMC4xLCAtMTMuMiwgLTkuNywgLTEyLjcsIC03LjQsIC0xMS45LCAtMTEuOSwgLTExLjUsIC0xMC4yLCAtNy4yLCAwLjksIC04LjYsIDIuNiwgLTE0LjEsIC0xMi44LCAtMTMuMywgLTExLjAsIC05LjcsIC04LjQsIC0xMS4yLCAtNS4zLCAtOS4zLCAtOC43LCAtOS45LCAtNy4xLCAtMTMuOSwgLTExLjIsIC0xNC4yLCAtOC45LCAtMTIuOSwgLTEyLjYsIC0xMi42LCAtMTAuOSwgLTE1LjQsIC0xMy44LCAtMTQuOCwgLTExLjQsIC0xMi44LCAtMTEuNiwgLTEzLjIsIC0xMC4zLCAtNTAuMCwgMTMuMywgLTUwLjAsIDE1LjIsIC04LjYsIC03LjAsIC04LjQsIC00LjgsIC01MC4wLCAtMy4wLCAtNy4xLCAtMC4xLCAtNy4zLCAyLjMsIC04LjcsIDMuOSxdLFxuICAgICAgICAgICAgWy03LjMsIC02LjMsIC04LjksIC01LjUsIDIuOSwgMC4yLCAxLjUsIDEuMiwgLTguNSwgLTIuMywgLTEwLjAsIC0xLjcsIC01LjYsIC0xMC41LCAtNS41LCAtOS42LCAtNC4zLCAtNy45LCAtNi4xLCAtNy4yLCAyLjMsIC0wLjYsIDAuNSwgLTAuMCwgLTguOSwgLTExLjAsIC05LjQsIC05LjMsIC00LjYsIC05LjQsIC03LjMsIC04LjEsIC03LjgsIC05LjgsIC04LjksIC05LjIsIDIuOCwgMC4xLCAxLjIsIDAuOCwgLTUuOSwgLTYuOCwgLTUuOSwgLTYuMywgLTQuMSwgLTcuMiwgLTYuMSwgLTYuMiwgLTUwLjAsIC05LjksIC01MC4wLCAtOC42LCAxMi41LCA5LjQsIDExLjAsIDkuOCwgLTUwLjAsIC00LjgsIC04LjcsIC0zLjUsIC0wLjAsIC04LjYsIC0yLjEsIC03LjAsXSxcbiAgICAgICAgICAgIFstMTAuMSwgLTQuMywgLTEwLjgsIC01LjgsIDAuMSwgMi4zLCAwLjcsIDAuNiwgLTEwLjQsIC0wLjIsIC0xMC44LCAtMi4wLCAtOC44LCAtOS4yLCAtOC4wLCAtOS43LCAtNi44LCAtNS45LCAtNy41LCAtNy4wLCAtMS40LCAyLjIsIC0wLjksIC0wLjQsIC0xMC44LCAtNy43LCAtOS44LCAtOC44LCAtOC45LCAtNy4zLCAtOS42LCAtOS4xLCAtMTAuNSwgLTguMywgLTEwLjIsIC0xMC4wLCAtMC4wLCAyLjUsIDAuNywgMC41LCAtNy41LCAtNS4xLCAtNy4xLCAtNi43LCAtNy40LCAtNS43LCAtOC4xLCAtNy4wLCAtNTAuMCwgLTUuOCwgLTUwLjAsIC03LjAsIDkuNCwgMTIuNywgMTAuMSwgMTAuMCwgLTUwLjAsIC0xLjUsIC0xMS4zLCAtMy4zLCAtNS40LCAtNC4yLCAtNS42LCAtNi44LF0sXG4gICAgICAgICAgICBbLTguNCwgLTYuMiwgLTguOSwgLTUuOSwgMS44LCAwLjQsIDIuNywgMS4yLCAtOS4xLCAtMS4yLCAtOC44LCAtMS41LCAtNy4yLCAtMTAuNSwgLTQuOSwgLTkuNiwgLTUuNywgLTcuNCwgLTUuNSwgLTcuNCwgMC4zLCAtMC4zLCAxLjgsIC0wLjQsIC05LjAsIC04LjcsIC03LjMsIC04LjksIC01LjksIC05LjQsIC02LjQsIC04LjcsIC04LjcsIC05LjEsIC04LjUsIC05LjQsIDEuNCwgMC43LCAzLjUsIDAuNywgLTYuNiwgLTUuMywgLTQuNywgLTUuOCwgLTUuNywgLTcuNSwgLTUuNSwgLTcuMSwgLTUwLjAsIC04LjksIC01MC4wLCAtOC40LCAxMS4wLCAxMC4xLCAxMy4yLCAxMC4yLCAtNTAuMCwgLTQuMiwgLTYuMSwgLTMuNiwgLTMuNSwgLTguNCwgLTEuMiwgLTYuOCxdLFxuICAgICAgICAgICAgWy05LjEsIC01LjQsIC0xMC40LCAtNC4yLCAxLjAsIDAuNSwgMC42LCAyLjQsIC05LjYsIC0xLjUsIC0xMC41LCAtMC41LCAtOC45LCAtMTAuNSwgLTcuMiwgLTguMywgLTYuMywgLTYuOSwgLTcuNywgLTUuMSwgLTAuNSwgMC4xLCAtMC42LCAyLjMsIC0xMS4xLCAtMTAuMiwgLTEwLjUsIC03LjAsIC04LjMsIC05LjQsIC05LjQsIC02LjYsIC05LjYsIC05LjcsIC0xMC4wLCAtNy45LCAwLjcsIDAuNiwgMC44LCAyLjMsIC03LjEsIC02LjUsIC03LjIsIC01LjAsIC02LjUsIC03LjQsIC03LjUsIC01LjQsIC01MC4wLCAtNy42LCAtNTAuMCwgLTQuOCwgOS44LCAxMC4wLCAxMC4yLCAxMi4xLCAtNTAuMCwgLTMuMSwgLTExLjQsIC0wLjcsIC00LjYsIC02LjYsIC00LjksIC0zLjksXSxcbiAgICAgICAgICAgIFstNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAyOS4yLCAtNTAuMCwgMjguNSwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAzMy4zLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCxdLFxuICAgICAgICAgICAgWy0xMy4wLCAtNy4wLCAtMTMuMSwgLTguMywgLTkuMiwgLTYuNSwgLTguOSwgLTcuNiwgLTkuOCwgLTAuNywgLTkuMiwgLTIuMSwgLTEyLjQsIC0xMC4zLCAtMTIuNCwgLTExLjYsIC05LjUsIC00LjYsIC0xMC40LCAtNS43LCAtMTMuNiwgLTEwLjEsIC0xMS40LCAtMTAuOSwgLTYuNSwgLTEuNSwgLTYuMiwgLTMuNiwgLTEyLjgsIC04LjAsIC0xMi4zLCAtOS43LCAtMTYuNSwgLTEyLjcsIC0xNS42LCAtMTQuMywgLTguNywgLTYuMCwgLTcuMSwgLTcuNSwgLTkuNSwgLTQuMSwgLTguNCwgLTYuMSwgLTExLjAsIC04LjYsIC0xMS4zLCAtOS4zLCAtNTAuMCwgLTEuNSwgLTUwLjAsIC0zLjAsIC00LjgsIC0xLjUsIC00LjIsIC0zLjEsIC01MC4wLCAxNi40LCAtNS4xLCAxNC4yLCAtMTAuMSwgLTQuMywgLTEwLjAsIC01LjQsXSxcbiAgICAgICAgICAgIFstMTMuNSwgLTE2LjMsIC0xMS44LCAtMTUuNSwgLTEzLjYsIC0xNS4zLCAtMTIuMSwgLTE2LjEsIC03LjcsIC0xMy4zLCAtNC4yLCAtMTIuNiwgLTE0LjEsIC0xNi4yLCAtMTAuMywgLTE1LjQsIC05LjYsIC0xMS42LCAtNy43LCAtOS44LCAtMTQuMywgLTE3LjUsIC0xMS4xLCAtMTcuMiwgLTUuMywgLTcuMSwgLTIuMiwgLTcuMSwgLTkuNiwgLTExLjksIC04LjcsIC0xMS40LCAtMTcuMSwgLTIwLjYsIC0xNS4zLCAtMTkuOSwgLTE0LjEsIC0xNC44LCAtMTIuNCwgLTE2LjUsIC0xMS43LCAtMTIuOCwgLTYuNCwgLTEzLjQsIC0xNC4zLCAtMTUuNywgLTEyLjcsIC0xNC4wLCAtNTAuMCwgLTcuOCwgLTUwLjAsIC03LjEsIC04LjcsIC0xMS4zLCAtNi4xLCAtMTEuNCwgLTUwLjAsIC01LjEsIDE4LjYsIC00LjgsIC04LjYsIC04LjEsIC00LjUsIC03LjMsXSxcbiAgICAgICAgICAgIFstMTIuNCwgLTguMiwgLTEzLjAsIC01LjksIC03LjcsIC03LjgsIC03LjQsIC01LjgsIC04LjgsIC0yLjAsIC05LjMsIC0wLjQsIC0xMS42LCAtMTEuMywgLTExLjYsIC05LjQsIC04LjksIC01LjYsIC0xMC4wLCAtMy4yLCAtMTEuNSwgLTExLjEsIC0xMC41LCAtOC4zLCAtNi4zLCAtNC45LCAtNi43LCAtMS4yLCAtMTAuNiwgLTkuNywgLTExLjMsIC04LjAsIC0xNC44LCAtMTMuMSwgLTE1LjUsIC0xMS40LCAtNy41LCAtNy41LCAtNy4xLCAtNS45LCAtOC40LCAtNS44LCAtOC4xLCAtMy42LCAtOS45LCAtOS43LCAtMTAuMSwgLTguMiwgLTUwLjAsIC0zLjAsIC01MC4wLCAtMC4xLCAtMy41LCAtMy4zLCAtMy42LCAtMC43LCAtNTAuMCwgMTQuMiwgLTQuOCwgMTYuNCwgLTguOSwgLTUuOCwgLTguOSwgLTMuNCxdLFxuICAgICAgICAgICAgWy0xMC43LCAtMTMuMiwgLTEyLjQsIC0xMS42LCAtNC44LCAtOC40LCAtNi4xLCAtNy4yLCAtMTAuMywgLTExLjgsIC0xMS4wLCAtMTEuNiwgMi44LCAtMS43LCAwLjcsIC0xLjEsIC02LjIsIC05LjcsIC03LjMsIC04LjQsIC01LjMsIC04LjYsIC02LjEsIC04LjMsIC0xMC41LCAtMTEuMiwgLTkuOCwgLTEwLjIsIDkuNSwgNi41LCA3LjYsIDYuOCwgLTEyLjEsIC0xNi4wLCAtMTMuMCwgLTE2LjIsIC01LjIsIC04LjYsIC03LjEsIC03LjgsIC0xMi41LCAtMTQuNCwgLTEyLjEsIC0xMy4wLCAxLjQsIC0zLjAsIC0xLjYsIC0yLjQsIC01MC4wLCAtOC4xLCAtNTAuMCwgLTcuMywgLTAuMCwgLTUuNCwgLTMuNSwgLTQuNiwgLTUwLjAsIC0xMC4xLCAtOC42LCAtOC45LCAxMy4yLCAtMC45LCA5LjcsIC0wLjMsXSxcbiAgICAgICAgICAgIFstMTguMSwgLTEyLjMsIC0xOS40LCAtMTQuMiwgLTEyLjIsIC05LjUsIC0xMS41LCAtMTAuOCwgLTE3LjksIC0xMS45LCAtMTguMiwgLTEzLjksIC02LjQsIC0zLjcsIC02LjgsIC01LjQsIC0xMi44LCAtNS45LCAtMTMuNiwgLTcuNCwgLTEzLjcsIC05LjksIC0xMi45LCAtMTIuNywgLTE2LjIsIC0xMS42LCAtMTUuMiwgLTEyLjcsIC0zLjIsIDAuNSwgLTMuMywgLTEuOCwgLTE4LjksIC0xNi42LCAtMTguOCwgLTE5LjIsIC0xMi41LCAtOS40LCAtMTAuNiwgLTExLjEsIC0xNy4zLCAtMTQuMSwgLTE2LjIsIC0xNi4wLCAtNy45LCAtMy43LCAtNy44LCAtNi4zLCAtNTAuMCwgMy42LCAtNTAuMCwgMi4zLCAtOC42LCAtNC4yLCAtOC40LCAtNi42LCAtNTAuMCwgLTQuMywgLTguMSwgLTUuOCwgLTAuOSwgMTQuMiwgLTEuOCwgMTEuNixdLFxuICAgICAgICAgICAgWy0xMS44LCAtMTMuMSwgLTExLjUsIC0xMi4wLCAtNi4yLCAtOC4zLCAtNS40LCAtNy40LCAtMTEuOCwgLTEyLjMsIC0xMS4xLCAtMTEuNCwgMC41LCAtMi41LCAyLjQsIC0xLjYsIC02LjgsIC05LjksIC02LjQsIC04LjksIC02LjEsIC04LjYsIC01LjAsIC03LjgsIC0xMC40LCAtMTEuNiwgLTguNSwgLTkuOSwgOC4yLCA2LjQsIDguNywgNi45LCAtMTIuNCwgLTE3LjAsIC0xMi42LCAtMTUuOCwgLTYuNSwgLTguNSwgLTUuMCwgLTcuOCwgLTEzLjIsIC0xMy42LCAtMTAuMywgLTEzLjcsIC0wLjcsIC0zLjIsIC0wLjMsIC0yLjQsIC01MC4wLCAtOS40LCAtNTAuMCwgLTguNywgLTIuMSwgLTUuNiwgLTEuMiwgLTQuOSwgLTUwLjAsIC0xMC4wLCAtNC41LCAtOC45LCA5LjcsIC0xLjgsIDExLjMsIC0wLjksXSxcbiAgICAgICAgICAgIFstMTcuMiwgLTEzLjMsIC0xNy44LCAtMTEuNiwgLTExLjAsIC0xMS4xLCAtMTAuNCwgLTkuMCwgLTE2LjAsIC0xMi43LCAtMTYuMSwgLTExLjEsIC01LjIsIC01LjQsIC02LjAsIC0zLjMsIC0xMS44LCAtNy4zLCAtMTMuMywgLTUuOSwgLTEyLjcsIC0xMS45LCAtMTEuOSwgLTkuMywgLTE1LjIsIC0xNS4wLCAtMTQuOSwgLTExLjAsIC0yLjgsIC0xLjgsIC0yLjksIDAuNCwgLTE3LjQsIC0xOC40LCAtMTguMywgLTE1LjksIC0xMC43LCAtMTEuMiwgLTEwLjYsIC05LjAsIC0xNS40LCAtMTQuOCwgLTE1LjgsIC0xMy4zLCAtNi44LCAtNS45LCAtNy4yLCAtMy45LCAtNTAuMCwgMi4wLCAtNTAuMCwgMy45LCAtNy4wLCAtNi44LCAtNi44LCAtMy45LCAtNTAuMCwgLTUuNCwgLTcuMywgLTMuNCwgLTAuMywgMTEuNiwgLTAuOSwgMTQuMSxdXTtcbiAgICAgICAgdGhpcy5UUkFOUyA9IFtbNSwgMCwgMCwgNF0sXG4gICAgICAgICAgICBbMCwgNSwgNCwgMF0sXG4gICAgICAgICAgICBbMCwgNCwgNSwgMF0sXG4gICAgICAgICAgICBbNCwgMCwgMCwgNV1dO1xuICAgICAgICB0aGlzLkNPTkJMTyA9IHsgJ0EnOiAwLCAnUic6IDEsICdOJzogMiwgJ0QnOiAzLCAnQyc6IDQsICdRJzogNSwgJ0UnOiA2LCAnRyc6IDcsICdIJzogOCwgJ0knOiA5LCAnTCc6IDEwLCAnSyc6IDExLCAnTSc6IDEyLCAnRic6IDEzLCAnUCc6IDE0LCAnUyc6IDE1LCAnVCc6IDE2LCAnVyc6IDE3LCAnWSc6IDE4LCAnVic6IDE5LCAnQic6IDIwLCAnWic6IDIxLCAnWCc6IDIyLCAnKic6IDIzIH07XG4gICAgICAgIHRoaXMuQ09OTlVDTCA9IHsgJ0EnOiAwLCAnVCc6IDEsICdDJzogMiwgJ0cnOiAzIH07XG4gICAgICAgIHRoaXMuQ09OU0NITiA9IHsgJ0FBQSc6IDAsICdBQUMnOiAxLCAnQUFHJzogMiwgJ0FBVCc6IDMsICdBQ0EnOiA0LCAnQUNDJzogNSwgJ0FDRyc6IDYsICdBQ1QnOiA3LCAnQUdBJzogOCwgJ0FHQyc6IDksICdBR0cnOiAxMCwgJ0FHVCc6IDExLCAnQVRBJzogMTIsICdBVEMnOiAxMywgJ0FURyc6IDE0LCAnQVRUJzogMTUsICdDQUEnOiAxNiwgJ0NBQyc6IDE3LCAnQ0FHJzogMTgsICdDQVQnOiAxOSwgJ0NDQSc6IDIwLCAnQ0NDJzogMjEsICdDQ0cnOiAyMiwgJ0NDVCc6IDIzLCAnQ0dBJzogMjQsICdDR0MnOiAyNSwgJ0NHRyc6IDI2LCAnQ0dUJzogMjcsICdDVEEnOiAyOCwgJ0NUQyc6IDI5LCAnQ1RHJzogMzAsICdDVFQnOiAzMSwgJ0dBQSc6IDMyLCAnR0FDJzogMzMsICdHQUcnOiAzNCwgJ0dBVCc6IDM1LCAnR0NBJzogMzYsICdHQ0MnOiAzNywgJ0dDRyc6IDM4LCAnR0NUJzogMzksICdHR0EnOiA0MCwgJ0dHQyc6IDQxLCAnR0dHJzogNDIsICdHR1QnOiA0MywgJ0dUQSc6IDQ0LCAnR1RDJzogNDUsICdHVEcnOiA0NiwgJ0dUVCc6IDQ3LCAnVEFBJzogNDgsICdUQUMnOiA0OSwgJ1RBRyc6IDUwLCAnVEFUJzogNTEsICdUQ0EnOiA1MiwgJ1RDQyc6IDUzLCAnVENHJzogNTQsICdUQ1QnOiA1NSwgJ1RHQSc6IDU2LCAnVEdDJzogNTcsICdUR0cnOiA1OCwgJ1RHVCc6IDU5LCAnVFRBJzogNjAsICdUVEMnOiA2MSwgJ1RURyc6IDYyLCAnVFRUJzogNjMgfTtcbiAgICAgICAgdGhpcy5zZXRNZXRob2QoYWxpZ25HcmlkXyk7XG4gICAgICAgIHRoaXMuc2V0U2VxdWVuY2VzKHNlcTFfLCBzZXEyXyk7XG4gICAgICAgIHRoaXMuc2V0R2FwKGdhcF8pO1xuICAgIH1cbiAgICBmaWxsTmVlZGxlbWFuKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSB0aGlzLmxlbjE7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bMF0udmFsdWUgPSAtaSAqIHRoaXMuZ2FwO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bMF0ucGFyZW50SSA9IGkgLSAxO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bMF0ucGFyZW50SiA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5sZW4yOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkWzBdW2ldLnZhbHVlID0gLWkgKiB0aGlzLmdhcDtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkWzBdW2ldLnBhcmVudEkgPSAwO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbMF1baV0ucGFyZW50SiA9IGkgLSAxO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZpbGxPbmUoaSwgaikge1xuICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZSA9IE1hdGgubWF4KHRoaXMuZHBHcmlkW2kgLSAxXVtqIC0gMV0udmFsdWUgKyB0aGlzLnNjb3Jlc1tpIC0gMV1baiAtIDFdLCBNYXRoLm1heCh0aGlzLmRwR3JpZFtpIC0gMV1bal0udmFsdWUgLSB0aGlzLmdhcCwgdGhpcy5kcEdyaWRbaV1baiAtIDFdLnZhbHVlIC0gdGhpcy5nYXApKTtcbiAgICAgICAgaWYgKHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlID09IHRoaXMuZHBHcmlkW2kgLSAxXVtqIC0gMV0udmFsdWUgKyB0aGlzLnNjb3Jlc1tpIC0gMV1baiAtIDFdKSB7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRJID0gaSAtIDE7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKID0gaiAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5kcEdyaWRbaV1bal0udmFsdWUgPT0gdGhpcy5kcEdyaWRbaSAtIDFdW2pdLnZhbHVlIC0gdGhpcy5nYXApIHtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEkgPSBpIC0gMTtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEogPSBqO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SSA9IGk7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKID0gaiAtIDE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ3JpZEZyb21OYW1lKHBhdGgpIHtcbiAgICAgICAgc3dpdGNoIChwYXRoKSB7XG4gICAgICAgICAgICBjYXNlICdCTE9TVU00NSc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLkJMT1NVTTQ1O1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQkxPU1VNNTAnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5CTE9TVU01MDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0JMT1NVTTYyJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuQkxPU1VNNjI7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OQkxPO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdCTE9TVU04MCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLkJMT1NVTTgwO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQkxPU1VNOTAnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5CTE9TVU05MDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1BBTTMwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuUEFNMzA7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OQkxPO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdQQU03MCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLlBBTTcwO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnUEFNMjUwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuUEFNMjUwO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnTlVDTEVPVElERVMnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5OVUNMRU9USURFUztcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05OVUNMO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdUUkFOUyc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLlRSQU5TO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTk5VQ0w7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1NDSE5FSURFUic6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLlNDSE5FSURFUjtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05TQ0hOO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWxsU2NvcmVzKCk7XG4gICAgfVxuICAgIGNvbnN0cnVjdFJlc3VsdChpLCBqKSB7XG4gICAgICAgIGxldCByZXMxID0gXCJcIiwgcmVzMiA9IFwiXCIsIGdhcFMgPSBcIlwiO1xuICAgICAgICBsZXQgdG90YWwgPSB0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0ZXA7IGkrKykge1xuICAgICAgICAgICAgZ2FwUyArPSAnfCc7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKGkgPiAwIHx8IGogPiAwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SSA9PSBpKSB7XG4gICAgICAgICAgICAgICAgcmVzMSA9IGdhcFMgKyByZXMxO1xuICAgICAgICAgICAgICAgIHJlczIgPSB0aGlzLnNlcTIuc3Vic3RyKChqIC0gMSkgKiB0aGlzLnN0ZXAsIHRoaXMuc3RlcCkgKyByZXMyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SiA9PSBqKSB7XG4gICAgICAgICAgICAgICAgcmVzMiA9IGdhcFMgKyByZXMyO1xuICAgICAgICAgICAgICAgIHJlczEgPSB0aGlzLnNlcTEuc3Vic3RyKChpIC0gMSkgKiB0aGlzLnN0ZXAsIHRoaXMuc3RlcCkgKyByZXMxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGkgLSAxID49IDApXG4gICAgICAgICAgICAgICAgICAgIHJlczEgPSB0aGlzLnNlcTEuc3Vic3RyKChpIC0gMSkgKiB0aGlzLnN0ZXAsIHRoaXMuc3RlcCkgKyByZXMxO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgcmVzMSA9IGdhcFMgKyByZXMxO1xuICAgICAgICAgICAgICAgIGlmIChqIC0gMSA+PSAwKVxuICAgICAgICAgICAgICAgICAgICByZXMyID0gdGhpcy5zZXEyLnN1YnN0cigoaiAtIDEpICogdGhpcy5zdGVwLCB0aGlzLnN0ZXApICsgcmVzMjtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIHJlczIgPSBnYXBTICsgcmVzMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCB0ZW1wSSA9IGk7XG4gICAgICAgICAgICBpID0gdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50STtcbiAgICAgICAgICAgIGogPSB0aGlzLmRwR3JpZFt0ZW1wSV1bal0ucGFyZW50SjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEFsaWduZWQocmVzMSwgcmVzMiwgdG90YWwpO1xuICAgIH1cbiAgICBmaWxsU2NvcmVzKCkge1xuICAgICAgICB0aGlzLnNjb3JlcyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuMTsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLnNjb3Jlcy5wdXNoKFtdKTtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5sZW4yOyBqKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNjb3Jlc1tpXS5wdXNoKHRoaXMuYWxpZ25HcmlkW3RoaXMuY29ubmVjdGlvbnNbdGhpcy5zZXExLnN1YnN0cihpICogdGhpcy5zdGVwLCB0aGlzLnN0ZXApXV1bdGhpcy5jb25uZWN0aW9uc1t0aGlzLnNlcTIuc3Vic3RyKGogKiB0aGlzLnN0ZXAsIHRoaXMuc3RlcCldXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdHlwZVJlYygpIHtcbiAgICAgICAgaWYgKC9bQVRHQ10qLy50ZXN0KHRoaXMuc2VxMSkgJiYgL1tBVEdDXSovLnRlc3QodGhpcy5zZXEyKSlcbiAgICAgICAgICAgIHJldHVybiBcIk5VQ0xFT1RJREVTXCI7XG4gICAgICAgIGlmICgvW0FSTkRDUUVHSElMS01GUFNUV1lWQlpYKl0qLy50ZXN0KHRoaXMuc2VxMSkgJiYgL1tBUk5EQ1FFR0hJTEtNRlBTVFdZVkJaWCpdKi8udGVzdCh0aGlzLnNlcTIpKVxuICAgICAgICAgICAgcmV0dXJuIFwiQkxPU1VNNjJcIjtcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJDYW4ndCByZWNvZ25pemUgc2VxdWVuY2UgdHlwZVwiKTtcbiAgICB9XG4gICAgbmVlZGxlbWFuV3VuY2goKSB7XG4gICAgICAgIHRoaXMuZHBHcmlkID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW4xICsgMTsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgcm93ID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMubGVuMiArIDE7IGorKylcbiAgICAgICAgICAgICAgICByb3cucHVzaChuZXcgQ2VsbCgpKTtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkLnB1c2gocm93KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZpbGxOZWVkbGVtYW4oKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5sZW4xOyBpKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAxOyBqIDw9IHRoaXMubGVuMjsgaisrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxsT25lKGksIGopO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdFJlc3VsdCh0aGlzLmxlbjEsIHRoaXMubGVuMik7XG4gICAgfVxuICAgIHNtaXRoV2F0ZXJtYW4oKSB7XG4gICAgICAgIHRoaXMuZHBHcmlkID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW4xICsgMTsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgcm93ID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMubGVuMiArIDE7IGorKylcbiAgICAgICAgICAgICAgICByb3cucHVzaChuZXcgQ2VsbCgpKTtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkLnB1c2gocm93KTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgYmVzdFZhbCA9IDA7XG4gICAgICAgIGxldCBiZXN0SSA9IDAsIGJlc3RKID0gMDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5sZW4xOyBpKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAxOyBqIDw9IHRoaXMubGVuMjsgaisrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxsT25lKGksIGopO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZSA8PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlID0gMDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEogPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLmRwR3JpZFt0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRJXVt0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKXS52YWx1ZSA9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEkgPSAwO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlID4gYmVzdFZhbCkge1xuICAgICAgICAgICAgICAgICAgICBiZXN0VmFsID0gdGhpcy5kcEdyaWRbaV1bal0udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RJID0gaTtcbiAgICAgICAgICAgICAgICAgICAgYmVzdEogPSBqO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3RSZXN1bHQoYmVzdEksIGJlc3RKKTtcbiAgICB9XG4gICAgc2V0U2VxdWVuY2VzKHNlcTFfLCBzZXEyXykge1xuICAgICAgICB0aGlzLnNlcTEgPSBzZXExXztcbiAgICAgICAgdGhpcy5zZXEyID0gc2VxMl87XG4gICAgICAgIHRoaXMubGVuMSA9IHRoaXMuc2VxMS5sZW5ndGggLyB0aGlzLnN0ZXA7XG4gICAgICAgIHRoaXMubGVuMiA9IHRoaXMuc2VxMi5sZW5ndGggLyB0aGlzLnN0ZXA7XG4gICAgICAgIHRoaXMuZmlsbFNjb3JlcygpO1xuICAgIH1cbiAgICBzZXRHYXAoZ2FwXykge1xuICAgICAgICB0aGlzLmdhcCA9IGdhcF87XG4gICAgfVxuICAgIHNldE1ldGhvZChhbGlnbkdyaWRfID0gXCJcIikge1xuICAgICAgICBpZiAoYWxpZ25HcmlkXyA9PSBcIkFVVE9cIikge1xuICAgICAgICAgICAgYWxpZ25HcmlkXyA9IHRoaXMudHlwZVJlYygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ3JpZEZyb21OYW1lKGFsaWduR3JpZF8pO1xuICAgIH1cbn1cbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5leHBvcnQgZnVuY3Rpb24gZ2V0TWFjcm9Nb2wobW9ub21lcnMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gW107XG4gICAgICAgIGNvbnN0IG1vZHVsZVJka2l0ID0geWllbGQgZ3Jvay5mdW5jdGlvbnMuY2FsbCgnQ2hlbTpnZXRSZEtpdE1vZHVsZScpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vbm9tZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1vbm9tZXJzW2ldLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbW9sID0gbW9kdWxlUmRraXQuZ2V0X21vbChtb25vbWVyc1tpXVtqXVsnbW9sZmlsZSddKTtcbiAgICAgICAgICAgICAgICBjb25zdCBhID0gbW9sLmdldF92M0ttb2xibG9jaygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGljZXMgPSBnZXRJbmRpY2VzKG1vbm9tZXJzW2ldW2pdLCBhKTtcbiAgICAgICAgICAgICAgICBtb25vbWVyc1tpXVtqXVsnaW5kaWNlcyddID0gaW5kaWNlcztcbiAgICAgICAgICAgICAgICBtb25vbWVyc1tpXVtqXVsnbW9sZmlsZSddID0geWllbGQgcm90YXRlQmFja2JvbmVWMzAwMChhLCBpbmRpY2VzKTtcbiAgICAgICAgICAgICAgICBtb2wgPT09IG51bGwgfHwgbW9sID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtb2wuZGVsZXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHQucHVzaChsaW5rVjMwMDAobW9ub21lcnNbaV0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZ2V0SW5kaWNlcyhtb25vbWVyLCBtb2xWMzAwMCkge1xuICAgIGNvbnN0IG1vbGZpbGUgPSBtb25vbWVyW1wibW9sZmlsZVwiXTtcbiAgICBsZXQgaW5kZXhTdGFydCA9IG1vbGZpbGUuaW5kZXhPZignTSAgUkdQJywgMCkgKyA4O1xuICAgIGxldCBpbmRleEVuZCA9IG1vbGZpbGUuaW5kZXhPZignXFxuJywgaW5kZXhTdGFydCk7XG4gICAgY29uc3QgaW5kaWNlc0RhdGEgPSBtb2xmaWxlLnN1YnN0cmluZyhpbmRleFN0YXJ0LCBpbmRleEVuZCkucmVwbGFjZUFsbCgnICAnLCAnICcpLnJlcGxhY2VBbGwoJyAgJywgJyAnKTtcbiAgICBsZXQgcGFyc2VkRGF0YSA9IGluZGljZXNEYXRhLnNwbGl0KCcgJyk7XG4gICAgY29uc3QgcmVtRmlyc3QgPSBwYXJzZWREYXRhWzJdID09ICcxJyA/IHBhcnNlSW50KHBhcnNlZERhdGFbMV0pIDogcGFyc2VJbnQocGFyc2VkRGF0YVszXSk7XG4gICAgY29uc3QgcmVtTGFzdCA9IHBhcnNlZERhdGFbMl0gPT0gJzInID8gcGFyc2VJbnQocGFyc2VkRGF0YVsxXSkgOiBwYXJzZUludChwYXJzZWREYXRhWzNdKTtcbiAgICBjb25zdCBudW1iZXJzID0gZXh0cmFjdEF0b21zQm9uZHNOdW1iZXJzVjMwMDAobW9sVjMwMDApO1xuICAgIGxldCBpbmRleEJvbmRzID0gbW9sVjMwMDAuaW5kZXhPZignTSAgVjMwIEJFR0lOIEJPTkQnKTsgLy8gVjMwMDAgaW5kZXggZm9yIGJvbmRzXG4gICAgaW5kZXhCb25kcyA9IG1vbFYzMDAwLmluZGV4T2YoJ1xcbicsIGluZGV4Qm9uZHMpO1xuICAgIGluZGV4U3RhcnQgPSBpbmRleEJvbmRzO1xuICAgIGluZGV4RW5kID0gaW5kZXhCb25kcztcbiAgICBsZXQgZmlyc3QgPSAwO1xuICAgIGxldCBsYXN0ID0gMDtcbiAgICBsZXQgcmVtQm9uZEZpcnN0ID0gMDtcbiAgICBsZXQgcmVtQm9uZExhc3QgPSAwO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgbnVtYmVycy5uYm9uZDsgaisrKSB7XG4gICAgICAgIGlmIChmaXJzdCA9PSAwIHx8IGxhc3QgPT0gMCkge1xuICAgICAgICAgICAgaW5kZXhTdGFydCA9IG1vbFYzMDAwLmluZGV4T2YoJ1YzMCcsIGluZGV4U3RhcnQpICsgNDtcbiAgICAgICAgICAgIGluZGV4RW5kID0gbW9sVjMwMDAuaW5kZXhPZignXFxuJywgaW5kZXhTdGFydCk7XG4gICAgICAgICAgICBjb25zdCBib25kRGF0YSA9IG1vbFYzMDAwLnN1YnN0cmluZyhpbmRleFN0YXJ0LCBpbmRleEVuZCkucmVwbGFjZUFsbCgnICAnLCAnICcpLnJlcGxhY2VBbGwoJyAgJywgJyAnKTtcbiAgICAgICAgICAgIHBhcnNlZERhdGEgPSBib25kRGF0YS5zcGxpdCgnICcpO1xuICAgICAgICAgICAgaWYgKHBhcnNlSW50KHBhcnNlZERhdGFbMl0pID09IHJlbUZpcnN0KSB7XG4gICAgICAgICAgICAgICAgZmlyc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzNdKTtcbiAgICAgICAgICAgICAgICByZW1Cb25kRmlyc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHBhcnNlSW50KHBhcnNlZERhdGFbM10pID09IHJlbUZpcnN0KSB7XG4gICAgICAgICAgICAgICAgZmlyc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzJdKTtcbiAgICAgICAgICAgICAgICByZW1Cb25kRmlyc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHBhcnNlSW50KHBhcnNlZERhdGFbMl0pID09IHJlbUxhc3QpIHtcbiAgICAgICAgICAgICAgICBsYXN0ID0gcGFyc2VJbnQocGFyc2VkRGF0YVszXSk7XG4gICAgICAgICAgICAgICAgcmVtQm9uZExhc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHBhcnNlSW50KHBhcnNlZERhdGFbM10pID09IHJlbUxhc3QpIHtcbiAgICAgICAgICAgICAgICBsYXN0ID0gcGFyc2VJbnQocGFyc2VkRGF0YVsyXSk7XG4gICAgICAgICAgICAgICAgcmVtQm9uZExhc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBmaXJzdCwgbGFzdCwgcmVtRmlyc3QsIHJlbUxhc3QsIHJlbUJvbmRGaXJzdCwgcmVtQm9uZExhc3QgfTtcbn1cbmZ1bmN0aW9uIHJvdGF0ZUJhY2tib25lVjMwMDAobW9sQmxvY2ssIGluZGljZXMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBjb29yZGluYXRlcyA9IGV4dHJhY3RBdG9tRGF0YVYzMDAwKG1vbEJsb2NrKTtcbiAgICAgICAgY29uc3QgbmF0b20gPSBjb29yZGluYXRlcy5hdG9tSW5kZXgubGVuZ3RoO1xuICAgICAgICBjb25zdCBmaXJzdCA9IGluZGljZXNbJ2ZpcnN0J107XG4gICAgICAgIGNvbnN0IGxhc3QgPSBpbmRpY2VzWydsYXN0J107XG4gICAgICAgIGNvbnN0IHhDZW50ZXIgPSAoY29vcmRpbmF0ZXMueFtsYXN0XSArIGNvb3JkaW5hdGVzLnhbZmlyc3RdKSAvIDI7XG4gICAgICAgIGNvbnN0IHlDZW50ZXIgPSAoY29vcmRpbmF0ZXMueVtsYXN0XSArIGNvb3JkaW5hdGVzLnlbZmlyc3RdKSAvIDI7XG4gICAgICAgIC8vcGxhY2UgdG8gY2VudGVyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmF0b207IGkrKykge1xuICAgICAgICAgICAgY29vcmRpbmF0ZXMueFtpXSAtPSB4Q2VudGVyO1xuICAgICAgICAgICAgY29vcmRpbmF0ZXMueVtpXSAtPSB5Q2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIGxldCBhbmdsZSA9IDA7XG4gICAgICAgIGlmIChjb29yZGluYXRlcy54W2ZpcnN0XSA9PSAwKVxuICAgICAgICAgICAgYW5nbGUgPSBjb29yZGluYXRlcy55W2ZpcnN0XSA+IGNvb3JkaW5hdGVzLnlbbGFzdF0gPyBNYXRoLlBJIC8gMiA6IDMgKiBNYXRoLlBJIC8gMjtcbiAgICAgICAgZWxzZSBpZiAoY29vcmRpbmF0ZXMueVtmaXJzdF0gPT0gMClcbiAgICAgICAgICAgIGFuZ2xlID0gY29vcmRpbmF0ZXMueFtmaXJzdF0gPiBjb29yZGluYXRlcy54W2xhc3RdID8gTWF0aC5QSSA6IDA7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGVyaXZhdGl2ZSA9IGNvb3JkaW5hdGVzLnlbZmlyc3RdIC8gY29vcmRpbmF0ZXMueFtmaXJzdF07XG4gICAgICAgICAgICBpZiAoY29vcmRpbmF0ZXMueFtmaXJzdF0gPCBjb29yZGluYXRlcy54W2xhc3RdKVxuICAgICAgICAgICAgICAgIGFuZ2xlID0gZGVyaXZhdGl2ZSA+IDAgPyBNYXRoLlBJIC0gTWF0aC5hdGFuKGRlcml2YXRpdmUpIDogTWF0aC5hdGFuKGRlcml2YXRpdmUpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGFuZ2xlID0gZGVyaXZhdGl2ZSA+IDAgPyBNYXRoLmF0YW4oZGVyaXZhdGl2ZSkgOiBNYXRoLlBJIC0gTWF0aC5hdGFuKGRlcml2YXRpdmUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvcyA9IE1hdGguY29zKGFuZ2xlKTtcbiAgICAgICAgY29uc3Qgc2luID0gTWF0aC5zaW4oYW5nbGUpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5hdG9tOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHhBZGQgPSBjb29yZGluYXRlcy54W2ldO1xuICAgICAgICAgICAgY29vcmRpbmF0ZXMueFtpXSA9IHhBZGQgKiBjb3MgLSBjb29yZGluYXRlcy55W2ldICogc2luO1xuICAgICAgICAgICAgY29vcmRpbmF0ZXMueVtpXSA9IHhBZGQgKiBzaW4gKyBjb29yZGluYXRlcy55W2ldICogY29zO1xuICAgICAgICB9XG4gICAgICAgIC8vcGxhY2UgdG8gcmlnaHRcbiAgICAgICAgY29uc3QgeFNoaWZ0ID0gY29vcmRpbmF0ZXMueFtmaXJzdF07XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmF0b207IGkrKylcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzLnhbaV0gLT0geFNoaWZ0O1xuICAgICAgICAvL3Jld3JpdGUgbW9sQmxvY2tcbiAgICAgICAgbGV0IGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignTSAgVjMwIEJFR0lOIEFUT00nKTsgLy8gVjMwMDAgaW5kZXggZm9yIGF0b21zIGNvb3JkaW5hdGVzXG4gICAgICAgIGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignXFxuJywgaW5kZXgpO1xuICAgICAgICBsZXQgaW5kZXhFbmQgPSBpbmRleDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuYXRvbTsgaSsrKSB7XG4gICAgICAgICAgICBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJ1YzMCcsIGluZGV4KSArIDQ7XG4gICAgICAgICAgICBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJyAnLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgaW5kZXggPSBtb2xCbG9jay5pbmRleE9mKCcgJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgIGluZGV4RW5kID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KSArIDE7XG4gICAgICAgICAgICBpbmRleEVuZCA9IG1vbEJsb2NrLmluZGV4T2YoJyAnLCBpbmRleEVuZCk7XG4gICAgICAgICAgICBtb2xCbG9jayA9IG1vbEJsb2NrLnNsaWNlKDAsIGluZGV4KSArXG4gICAgICAgICAgICAgICAgY29vcmRpbmF0ZXMueFtpXSArICcgJyArIGNvb3JkaW5hdGVzLnlbaV0gK1xuICAgICAgICAgICAgICAgIG1vbEJsb2NrLnNsaWNlKGluZGV4RW5kKTtcbiAgICAgICAgICAgIGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignXFxuJywgaW5kZXgpICsgMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbW9sQmxvY2s7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBleHRyYWN0QXRvbURhdGFWMzAwMChtb2xCbG9jaykge1xuICAgIGNvbnN0IG51bWJlcnMgPSBleHRyYWN0QXRvbXNCb25kc051bWJlcnNWMzAwMChtb2xCbG9jayk7XG4gICAgbGV0IGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignTSAgVjMwIEJFR0lOIEFUT00nKTsgLy8gVjMwMDAgaW5kZXggZm9yIGF0b21zIGNvb3JkaW5hdGVzXG4gICAgaW5kZXggPSBtb2xCbG9jay5pbmRleE9mKCdcXG4nLCBpbmRleCk7XG4gICAgbGV0IGluZGV4RW5kID0gaW5kZXg7XG4gICAgY29uc3QgaW5kZXhlcyA9IEFycmF5KG51bWJlcnMubmF0b20pO1xuICAgIGNvbnN0IHR5cGVzID0gQXJyYXkobnVtYmVycy5uYXRvbSk7XG4gICAgY29uc3QgeCA9IEFycmF5KG51bWJlcnMubmF0b20pO1xuICAgIGNvbnN0IHkgPSBBcnJheShudW1iZXJzLm5hdG9tKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bWJlcnMubmF0b207IGkrKykge1xuICAgICAgICBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJ1YzMCcsIGluZGV4KSArIDQ7XG4gICAgICAgIGluZGV4RW5kID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgaW5kZXhlc1tpXSA9IHBhcnNlSW50KG1vbEJsb2NrLnN1YnN0cmluZyhpbmRleCwgaW5kZXhFbmQpKTtcbiAgICAgICAgaW5kZXggPSBpbmRleEVuZCArIDE7XG4gICAgICAgIGluZGV4RW5kID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgdHlwZXNbaV0gPSBtb2xCbG9jay5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKTtcbiAgICAgICAgaW5kZXggPSBpbmRleEVuZCArIDE7XG4gICAgICAgIGluZGV4RW5kID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgeFtpXSA9IHBhcnNlRmxvYXQobW9sQmxvY2suc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgICAgICBpbmRleCA9IGluZGV4RW5kICsgMTtcbiAgICAgICAgaW5kZXhFbmQgPSBtb2xCbG9jay5pbmRleE9mKCcgJywgaW5kZXgpO1xuICAgICAgICB5W2ldID0gcGFyc2VGbG9hdChtb2xCbG9jay5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSk7XG4gICAgICAgIGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignXFxuJywgaW5kZXgpICsgMTtcbiAgICB9XG4gICAgcmV0dXJuIHsgYXRvbUluZGV4OiBpbmRleGVzLCBhdG9tVHlwZTogdHlwZXMsIHg6IHgsIHk6IHkgfTtcbn1cbmZ1bmN0aW9uIGxpbmtWMzAwMChtb25vbWVycykge1xuICAgIGxldCBtYWNyb01vbEJsb2NrID0gJ1xcbkRhdGFncm9rIG1hY3JvbW9sZWN1bGUgaGFuZGxlclxcblxcbic7XG4gICAgbWFjcm9Nb2xCbG9jayArPSAnICAwICAwICAwICAwICAwICAwICAgICAgICAgICAgOTk5IFYzMDAwXFxuJztcbiAgICBtYWNyb01vbEJsb2NrICs9ICdNICBWMzAgQkVHSU4gQ1RBQlxcbic7XG4gICAgbGV0IGF0b21CbG9jayA9ICcnO1xuICAgIGxldCBib25kQmxvY2sgPSAnJztcbiAgICBsZXQgY29sbGVjdGlvbkJsb2NrID0gJyc7XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IFtdO1xuICAgIGxldCBuYXRvbSA9IDA7XG4gICAgbGV0IG5ib25kID0gMDtcbiAgICBsZXQgeFNoaWZ0ID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vbm9tZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxldCBtb2xmaWxlID0gbW9ub21lcnNbaV1bJ21vbGZpbGUnXTtcbiAgICAgICAgY29uc3QgZmlyc3QgPSBtb25vbWVyc1tpXVsnaW5kaWNlcyddWydmaXJzdCddO1xuICAgICAgICBjb25zdCBsYXN0ID0gbW9ub21lcnNbaV1bJ2luZGljZXMnXVsnbGFzdCddO1xuICAgICAgICBjb25zdCByZW1GaXJzdCA9IG1vbm9tZXJzW2ldWydpbmRpY2VzJ11bJ3JlbUZpcnN0J107XG4gICAgICAgIGNvbnN0IHJlbUxhc3QgPSBtb25vbWVyc1tpXVsnaW5kaWNlcyddWydyZW1MYXN0J107XG4gICAgICAgIGNvbnN0IHJlbUJvbmRGaXJzdCA9IG1vbm9tZXJzW2ldWydpbmRpY2VzJ11bJ3JlbUJvbmRGaXJzdCddO1xuICAgICAgICBjb25zdCByZW1Cb25kTGFzdCA9IG1vbm9tZXJzW2ldWydpbmRpY2VzJ11bJ3JlbUJvbmRMYXN0J107XG4gICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnJlcGxhY2VBbGwoJygtXFxuTSAgVjMwICcsICcoJylcbiAgICAgICAgICAgIC5yZXBsYWNlQWxsKCctXFxuTSAgVjMwICcsICcnKS5yZXBsYWNlQWxsKCcgKScsICcpJyk7XG4gICAgICAgIGNvbnN0IG51bWJlcnMgPSBleHRyYWN0QXRvbXNCb25kc051bWJlcnNWMzAwMChtb2xmaWxlKTtcbiAgICAgICAgY29uc3QgY29vcmRpbmF0ZXMgPSBleHRyYWN0QXRvbURhdGFWMzAwMChtb2xmaWxlKTtcbiAgICAgICAgbGV0IGluZGV4QXRvbXMgPSBtb2xmaWxlLmluZGV4T2YoJ00gIFYzMCBCRUdJTiBBVE9NJyk7IC8vIFYzMDAwIGluZGV4IGZvciBhdG9tcyBjb29yZGluYXRlc1xuICAgICAgICBpbmRleEF0b21zID0gbW9sZmlsZS5pbmRleE9mKCdcXG4nLCBpbmRleEF0b21zKTtcbiAgICAgICAgbGV0IGluZGV4ID0gaW5kZXhBdG9tcztcbiAgICAgICAgbGV0IGluZGV4RW5kID0gaW5kZXhBdG9tcztcbiAgICAgICAgY29uc3QgdG90YWxTaGlmdCA9IHhTaGlmdCAtIGNvb3JkaW5hdGVzLnhbZmlyc3QgLSAxXTtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBudW1iZXJzLm5hdG9tOyBqKyspIHtcbiAgICAgICAgICAgIGlmIChjb29yZGluYXRlcy5hdG9tSW5kZXhbal0gIT0gcmVtRmlyc3QgJiYgY29vcmRpbmF0ZXMuYXRvbUluZGV4W2pdICE9IHJlbUxhc3QpIHsgLy98fCBpID09IDApIHtcbiAgICAgICAgICAgICAgICAvL3Jld3JpdGUgYXRvbSBudW1iZXJcbiAgICAgICAgICAgICAgICBpbmRleCA9IG1vbGZpbGUuaW5kZXhPZignVjMwJywgaW5kZXgpICsgNDtcbiAgICAgICAgICAgICAgICBpbmRleEVuZCA9IG1vbGZpbGUuaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgICAgICAgICBsZXQgYXRvbU51bWJlciA9IHBhcnNlSW50KG1vbGZpbGUuc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgICAgICAgICAgICAgIGF0b21OdW1iZXIgPSAoYXRvbU51bWJlciA+IHJlbUZpcnN0ICYmIGF0b21OdW1iZXIgPiByZW1MYXN0KSA/IGF0b21OdW1iZXIgLSAyIDpcbiAgICAgICAgICAgICAgICAgICAgKGF0b21OdW1iZXIgPiByZW1GaXJzdCB8fCBhdG9tTnVtYmVyID4gcmVtTGFzdCkgPyBhdG9tTnVtYmVyIC0gMSA6IGF0b21OdW1iZXI7XG4gICAgICAgICAgICAgICAgYXRvbU51bWJlciArPSBuYXRvbTtcbiAgICAgICAgICAgICAgICBtb2xmaWxlID0gbW9sZmlsZS5zbGljZSgwLCBpbmRleCkgKyBhdG9tTnVtYmVyICsgbW9sZmlsZS5zbGljZShpbmRleEVuZCk7XG4gICAgICAgICAgICAgICAgLy9yZXdyaXRlIGNvb3JkaW5hdGVzXG4gICAgICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCcgJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgICAgICBpbmRleEVuZCA9IG1vbGZpbGUuaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgICAgICAgICBsZXQgY29vcmRpbmF0ZSA9IE1hdGgucm91bmQoMTAwMDAgKiAocGFyc2VGbG9hdChtb2xmaWxlLnN1YnN0cmluZyhpbmRleCwgaW5kZXhFbmQpKSArIHRvdGFsU2hpZnQpKSAvIDEwMDAwO1xuICAgICAgICAgICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnNsaWNlKDAsIGluZGV4KSArIGNvb3JkaW5hdGUgKyBtb2xmaWxlLnNsaWNlKGluZGV4RW5kKTtcbiAgICAgICAgICAgICAgICBpbmRleCA9IG1vbGZpbGUuaW5kZXhPZignICcsIGluZGV4KSArIDE7XG4gICAgICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgY29vcmRpbmF0ZSA9IE1hdGgucm91bmQoMTAwMDAgKiAocGFyc2VGbG9hdChtb2xmaWxlLnN1YnN0cmluZyhpbmRleCwgaW5kZXhFbmQpKSkpIC8gMTAwMDA7XG4gICAgICAgICAgICAgICAgbW9sZmlsZSA9IG1vbGZpbGUuc2xpY2UoMCwgaW5kZXgpICsgY29vcmRpbmF0ZSArIG1vbGZpbGUuc2xpY2UoaW5kZXhFbmQpO1xuICAgICAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCdcXG4nLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJ00gIFYzMCcsIGluZGV4KSAtIDE7XG4gICAgICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJ1xcbicsIGluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgbW9sZmlsZSA9IG1vbGZpbGUuc2xpY2UoMCwgaW5kZXgpICsgbW9sZmlsZS5zbGljZShpbmRleEVuZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXhBdG9tc0VuZCA9IG1vbGZpbGUuaW5kZXhPZignTSAgVjMwIEVORCBBVE9NJyk7XG4gICAgICAgIGF0b21CbG9jayArPSBtb2xmaWxlLnN1YnN0cmluZyhpbmRleEF0b21zICsgMSwgaW5kZXhBdG9tc0VuZCk7XG4gICAgICAgIGxldCBpbmRleEJvbmRzID0gbW9sZmlsZS5pbmRleE9mKCdNICBWMzAgQkVHSU4gQk9ORCcpOyAvLyBWMzAwMCBpbmRleCBmb3IgYm9uZHNcbiAgICAgICAgaW5kZXhCb25kcyA9IG1vbGZpbGUuaW5kZXhPZignXFxuJywgaW5kZXhCb25kcyk7XG4gICAgICAgIGluZGV4ID0gaW5kZXhCb25kcztcbiAgICAgICAgaW5kZXhFbmQgPSBpbmRleEJvbmRzO1xuICAgICAgICBsZXQgYm9uZE51bWJlciA9IDA7XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbnVtYmVycy5uYm9uZDsgaisrKSB7XG4gICAgICAgICAgICAvL3Jld3JpdGUgYm9uZCBudW1iZXJcbiAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCdWMzAnLCBpbmRleCkgKyA0O1xuICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgICAgICBib25kTnVtYmVyID0gcGFyc2VJbnQobW9sZmlsZS5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSk7XG4gICAgICAgICAgICBpZiAoYm9uZE51bWJlciA9PSByZW1Cb25kRmlyc3QgfHwgYm9uZE51bWJlciA9PSByZW1Cb25kTGFzdCkge1xuICAgICAgICAgICAgICAgIGluZGV4RW5kID0gbW9sZmlsZS5pbmRleE9mKCdcXG4nLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgICAgIGluZGV4IC09IDc7XG4gICAgICAgICAgICAgICAgbW9sZmlsZSA9IG1vbGZpbGUuc2xpY2UoMCwgaW5kZXgpICsgbW9sZmlsZS5zbGljZShpbmRleEVuZCk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBib25kTnVtYmVyID0gKGJvbmROdW1iZXIgPiByZW1Cb25kRmlyc3QgJiYgYm9uZE51bWJlciA+IHJlbUJvbmRMYXN0KSA/IGJvbmROdW1iZXIgLSAyIDpcbiAgICAgICAgICAgICAgICAoYm9uZE51bWJlciA+IHJlbUJvbmRGaXJzdCB8fCBib25kTnVtYmVyID4gcmVtQm9uZExhc3QpID8gYm9uZE51bWJlciAtIDEgOiBib25kTnVtYmVyO1xuICAgICAgICAgICAgYm9uZE51bWJlciArPSBuYm9uZDtcbiAgICAgICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnNsaWNlKDAsIGluZGV4KSArIGJvbmROdW1iZXIgKyBtb2xmaWxlLnNsaWNlKGluZGV4RW5kKTtcbiAgICAgICAgICAgIC8vcmV3cml0ZSBhdG9tIHBhaXIgaW4gYm9uZFxuICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgICAgICBsZXQgYXRvbU51bWJlciA9IHBhcnNlSW50KG1vbGZpbGUuc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgICAgICAgICAgYXRvbU51bWJlciA9IChhdG9tTnVtYmVyID4gcmVtRmlyc3QgJiYgYXRvbU51bWJlciA+IHJlbUxhc3QpID8gYXRvbU51bWJlciAtIDIgOlxuICAgICAgICAgICAgICAgIChhdG9tTnVtYmVyID4gcmVtRmlyc3QgfHwgYXRvbU51bWJlciA+IHJlbUxhc3QpID8gYXRvbU51bWJlciAtIDEgOiBhdG9tTnVtYmVyO1xuICAgICAgICAgICAgYXRvbU51bWJlciArPSBuYXRvbTtcbiAgICAgICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnNsaWNlKDAsIGluZGV4KSArIGF0b21OdW1iZXIgKyBtb2xmaWxlLnNsaWNlKGluZGV4RW5kKTtcbiAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCcgJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgIGluZGV4RW5kID0gTWF0aC5taW4obW9sZmlsZS5pbmRleE9mKCdcXG4nLCBpbmRleCksIG1vbGZpbGUuaW5kZXhPZignICcsIGluZGV4KSk7XG4gICAgICAgICAgICBhdG9tTnVtYmVyID0gcGFyc2VJbnQobW9sZmlsZS5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSk7XG4gICAgICAgICAgICBhdG9tTnVtYmVyID0gKGF0b21OdW1iZXIgPiByZW1GaXJzdCAmJiBhdG9tTnVtYmVyID4gcmVtTGFzdCkgPyBhdG9tTnVtYmVyIC0gMiA6XG4gICAgICAgICAgICAgICAgKGF0b21OdW1iZXIgPiByZW1GaXJzdCB8fCBhdG9tTnVtYmVyID4gcmVtTGFzdCkgPyBhdG9tTnVtYmVyIC0gMSA6IGF0b21OdW1iZXI7XG4gICAgICAgICAgICBhdG9tTnVtYmVyICs9IG5hdG9tO1xuICAgICAgICAgICAgbW9sZmlsZSA9IG1vbGZpbGUuc2xpY2UoMCwgaW5kZXgpICsgYXRvbU51bWJlciArIG1vbGZpbGUuc2xpY2UoaW5kZXhFbmQpO1xuICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJ1xcbicsIGluZGV4KSArIDE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXhCb25kRW5kID0gbW9sZmlsZS5pbmRleE9mKCdNICBWMzAgRU5EIEJPTkQnKTtcbiAgICAgICAgYm9uZEJsb2NrICs9IG1vbGZpbGUuc3Vic3RyaW5nKGluZGV4Qm9uZHMgKyAxLCBpbmRleEJvbmRFbmQpO1xuICAgICAgICAvL2xldCBpbmRleENvbGxlY3Rpb24gPSBtb2xmaWxlLmluZGV4T2YoJ00gIFYzMCBNRExWMzAvU1RFQUJTIEFUT01TPSgnKTsgLy8gVjMwMDAgaW5kZXggZm9yIGNvbGxlY3Rpb25zXG4gICAgICAgIC8vIHdoaWxlIChpbmRleENvbGxlY3Rpb24gIT0gLTEpIHtcbiAgICAgICAgLy8gICBpbmRleENvbGxlY3Rpb24gKz0gMjg7XG4gICAgICAgIC8vICAgY29uc3QgY29sbGVjdGlvbkVuZCA9IG1vbGZpbGUuaW5kZXhPZignKScsIGluZGV4Q29sbGVjdGlvbik7XG4gICAgICAgIC8vICAgY29uc3QgY29sbGVjdGlvbkVudHJpZXMgPSBtb2xmaWxlLnN1YnN0cmluZyhpbmRleENvbGxlY3Rpb24sIGNvbGxlY3Rpb25FbmQpLnNwbGl0KCcgJykuc2xpY2UoMSk7XG4gICAgICAgIC8vICAgY29sbGVjdGlvbkVudHJpZXMuZm9yRWFjaCgoZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIC8vICAgICBjb2xsZWN0aW9uLnB1c2gocGFyc2VJbnQoZSkgKyBuYXRvbSk7XG4gICAgICAgIC8vICAgfSk7XG4gICAgICAgIC8vICAgaW5kZXhDb2xsZWN0aW9uID0gY29sbGVjdGlvbkVuZDtcbiAgICAgICAgLy8gICBpbmRleENvbGxlY3Rpb24gPSBtb2xmaWxlLmluZGV4T2YoJ00gIFYzMCBNRExWMzAvU1RFQUJTIEFUT01TPSgnLCBpbmRleENvbGxlY3Rpb24pO1xuICAgICAgICAvLyB9XG4gICAgICAgIG5hdG9tICs9IG51bWJlcnMubmF0b20gLSAyO1xuICAgICAgICBuYm9uZCArPSBudW1iZXJzLm5ib25kIC0gMjtcbiAgICAgICAgeFNoaWZ0ICs9IGNvb3JkaW5hdGVzLnhbbGFzdF0gLSBjb29yZGluYXRlcy54W2ZpcnN0XSArIDE7XG4gICAgICAgIGlmIChpID09IG1vbm9tZXJzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIG5hdG9tKys7XG4gICAgICAgICAgICBjb25zdCBzaGlmdCA9IHhTaGlmdCArIDAuMjtcbiAgICAgICAgICAgIGF0b21CbG9jayArPSAnTSAgVjMwICcgKyBuYXRvbSArICcgTyAnICsgc2hpZnQgKyAnIDAgMC4wMDAwMDAgMFxcbic7XG4gICAgICAgIH1cbiAgICAgICAgbmJvbmQrKztcbiAgICAgICAgaWYgKGkgPT0gbW9ub21lcnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgY29uc3QgcmlnaHRUZXJtaW5hbCA9IChsYXN0ID4gcmVtRmlyc3QgJiYgbGFzdCA+IHJlbUxhc3QpID8gbGFzdCArIG5hdG9tIC0gKG51bWJlcnMubmF0b20gLSAyKSAtIDMgOlxuICAgICAgICAgICAgICAgIChsYXN0ID4gcmVtRmlyc3QgfHwgbGFzdCA+IHJlbUxhc3QpID8gbGFzdCArIG5hdG9tIC0gKG51bWJlcnMubmF0b20gLSAyKSAtIDIgOlxuICAgICAgICAgICAgICAgICAgICBsYXN0ICsgbmF0b20gLSAobnVtYmVycy5uYXRvbSAtIDIpIC0gMTtcbiAgICAgICAgICAgIGJvbmRCbG9jayArPSAnTSAgVjMwICcgKyBuYm9uZCArICcgMSAnICsgcmlnaHRUZXJtaW5hbCArICcgJyArIG5hdG9tICsgJ1xcbic7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCByaWdodFRlcm1pbmFsID0gKGxhc3QgPiByZW1GaXJzdCAmJiBsYXN0ID4gcmVtTGFzdCkgPyBsYXN0ICsgbmF0b20gLSAobnVtYmVycy5uYXRvbSAtIDIpIC0gMiA6XG4gICAgICAgICAgICAgICAgKGxhc3QgPiByZW1GaXJzdCB8fCBsYXN0ID4gcmVtTGFzdCkgPyBsYXN0ICsgbmF0b20gLSAobnVtYmVycy5uYXRvbSAtIDIpIC0gMSA6XG4gICAgICAgICAgICAgICAgICAgIGxhc3QgKyBuYXRvbSAtIChudW1iZXJzLm5hdG9tIC0gMik7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gbW9ub21lcnNbaSArIDFdWydpbmRpY2VzJ107XG4gICAgICAgICAgICBjb25zdCBuZXh0Rmlyc3QgPSBuZXh0WydmaXJzdCddO1xuICAgICAgICAgICAgY29uc3QgbmV4dFJlbUZpcnN0ID0gbmV4dFsncmVtRmlyc3QnXTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRSZW1MYXN0ID0gbmV4dFsncmVtTGFzdCddO1xuICAgICAgICAgICAgY29uc3QgbGVmdFRlcm1pbmFsID0gKG5leHRGaXJzdCA+IG5leHRSZW1GaXJzdCAmJiBuZXh0Rmlyc3QgPiBuZXh0UmVtTGFzdCkgPyBuZXh0Rmlyc3QgKyBuYXRvbSAtIDIgOlxuICAgICAgICAgICAgICAgIChuZXh0Rmlyc3QgPiBuZXh0UmVtRmlyc3QgfHwgbmV4dEZpcnN0ID4gbmV4dFJlbUxhc3QpID8gbmV4dEZpcnN0ICsgbmF0b20gLSAxIDpcbiAgICAgICAgICAgICAgICAgICAgbmV4dEZpcnN0ICsgbmF0b207XG4gICAgICAgICAgICBib25kQmxvY2sgKz0gJ00gIFYzMCAnICsgbmJvbmQgKyAnIDEgJyArIHJpZ2h0VGVybWluYWwgKyAnICcgKyBsZWZ0VGVybWluYWwgKyAnXFxuJztcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBjb25zdCBlbnRyaWVzID0gNDtcbiAgICAvLyBjb25zdCBjb2xsTnVtYmVyID0gTWF0aC5jZWlsKGNvbGxlY3Rpb24ubGVuZ3RoIC8gZW50cmllcyk7XG4gICAgLy8gY29sbGVjdGlvbkJsb2NrICs9ICdNICBWMzAgTURMVjMwL1NURUFCUyBBVE9NUz0oJyArIGNvbGxlY3Rpb24ubGVuZ3RoICsgJyAtXFxuJztcbiAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IGNvbGxOdW1iZXI7IGkrKykge1xuICAgIC8vICAgY29sbGVjdGlvbkJsb2NrICs9ICdNICBWMzAgJztcbiAgICAvLyAgIGNvbnN0IGVudHJpZXNDdXJyZW50ID0gaSArIDEgPT0gY29sbE51bWJlciA/IGNvbGxlY3Rpb24ubGVuZ3RoIC0gKGNvbGxOdW1iZXIgLSAxKSplbnRyaWVzIDogZW50cmllcztcbiAgICAvLyAgIGZvciAobGV0IGogPSAwOyBqIDwgZW50cmllc0N1cnJlbnQ7IGorKykge1xuICAgIC8vICAgICBjb2xsZWN0aW9uQmxvY2sgKz0gKGogKyAxID09IGVudHJpZXNDdXJyZW50KSA/XG4gICAgLy8gICAgICAgKGkgPT0gY29sbE51bWJlciAtIDEgPyBjb2xsZWN0aW9uW2VudHJpZXMqaSArIGpdICsgJylcXG4nIDogY29sbGVjdGlvbltlbnRyaWVzKmkgKyBqXSArICcgLVxcbicpIDpcbiAgICAvLyAgICAgICBjb2xsZWN0aW9uW2VudHJpZXMqaSArIGpdICsgJyAnO1xuICAgIC8vICAgfVxuICAgIC8vIH1cbiAgICAvL2dlbmVyYXRlIGZpbGVcbiAgICBtYWNyb01vbEJsb2NrICs9ICdNICBWMzAgQ09VTlRTICcgKyBuYXRvbSArICcgJyArIG5ib25kICsgJyAwIDAgMFxcbic7XG4gICAgbWFjcm9Nb2xCbG9jayArPSAnTSAgVjMwIEJFR0lOIEFUT01cXG4nO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gYXRvbUJsb2NrO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gJ00gIFYzMCBFTkQgQVRPTVxcbic7XG4gICAgbWFjcm9Nb2xCbG9jayArPSAnTSAgVjMwIEJFR0lOIEJPTkRcXG4nO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gYm9uZEJsb2NrO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gJ00gIFYzMCBFTkQgQk9ORFxcbic7XG4gICAgLy9tYWNyb01vbEJsb2NrICs9ICdNICBWMzAgQkVHSU4gQ09MTEVDVElPTlxcbic7XG4gICAgLy9tYWNyb01vbEJsb2NrICs9IGNvbGxlY3Rpb25CbG9jaztcbiAgICAvL21hY3JvTW9sQmxvY2sgKz0gJ00gIFYzMCBFTkQgQ09MTEVDVElPTlxcbic7XG4gICAgbWFjcm9Nb2xCbG9jayArPSAnTSAgVjMwIEVORCBDVEFCXFxuJztcbiAgICBtYWNyb01vbEJsb2NrICs9ICdNICBFTkRcXG4nO1xuICAgIHJldHVybiBtYWNyb01vbEJsb2NrO1xufVxuZnVuY3Rpb24gZXh0cmFjdEF0b21zQm9uZHNOdW1iZXJzVjMwMDAobW9sQmxvY2spIHtcbiAgICBtb2xCbG9jayA9IG1vbEJsb2NrLnJlcGxhY2VBbGwoJ1xccicsICcnKTsgLy9lcXVhbGl6ZSBvbGQgYW5kIG5ldyBzZGYgc3RhbmRhcmRzXG4gICAgbGV0IGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignQ09VTlRTJykgKyA3OyAvLyBWMzAwMCBpbmRleCBmb3IgYXRvbXMgYW5kIGJvbmRzIG51bWJlclxuICAgIGxldCBpbmRleEVuZCA9IG1vbEJsb2NrLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgY29uc3QgYXRvbXNOdW1iZXIgPSBwYXJzZUludChtb2xCbG9jay5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSk7XG4gICAgaW5kZXggPSBpbmRleEVuZCArIDE7XG4gICAgaW5kZXhFbmQgPSBtb2xCbG9jay5pbmRleE9mKCcgJywgaW5kZXgpO1xuICAgIGNvbnN0IGJvbmRzTnVtYmVyID0gcGFyc2VJbnQobW9sQmxvY2suc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgIHJldHVybiB7IG5hdG9tOiBhdG9tc051bWJlciwgbmJvbmQ6IGJvbmRzTnVtYmVyIH07XG59XG4iLCJpbXBvcnQgKiBhcyBDIGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgeyBBbWlub2FjaWRzUGFsZXR0ZXMgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvYW1pbm9hY2lkcyc7XG5pbXBvcnQgeyBOdWNsZW90aWRlc1BhbGV0dGVzIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL251Y2xlb3RpZGVzJztcbmltcG9ydCB7IFVua25vd25TZXFQYWxldHRlcyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91bmtub3duJztcbmltcG9ydCB7IFdlYkxvZ28gfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdmlld2Vycy93ZWItbG9nbyc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0IHsgcHJpbnRMZWZ0T3JDZW50ZXJlZCwgRHJhd1N0eWxlIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL2NlbGwtcmVuZGVyZXInO1xuaW1wb3J0IHsgVW5pdHNIYW5kbGVyIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL3VuaXRzLWhhbmRsZXInO1xuY29uc3QgdW5kZWZpbmVkQ29sb3IgPSAncmdiKDEwMCwxMDAsMTAwKSc7XG5jb25zdCBtb25vbWVyVG9TaG9ydEZ1bmN0aW9uID0gV2ViTG9nby5tb25vbWVyVG9TaG9ydDtcbmNvbnN0IGdhcFJlbmRlcmVyID0gNTtcbmZ1bmN0aW9uIGdldFBhbGV0dGVCeVR5cGUocGFsZXR0ZVR5cGUpIHtcbiAgICBzd2l0Y2ggKHBhbGV0dGVUeXBlKSB7XG4gICAgICAgIGNhc2UgJ1BUJzpcbiAgICAgICAgICAgIHJldHVybiBBbWlub2FjaWRzUGFsZXR0ZXMuR3Jva0dyb3VwcztcbiAgICAgICAgY2FzZSAnTlQnOlxuICAgICAgICAgICAgcmV0dXJuIE51Y2xlb3RpZGVzUGFsZXR0ZXMuQ2hyb21hdG9ncmFtO1xuICAgICAgICBjYXNlICdETkEnOlxuICAgICAgICAgICAgcmV0dXJuIE51Y2xlb3RpZGVzUGFsZXR0ZXMuQ2hyb21hdG9ncmFtO1xuICAgICAgICBjYXNlICdSTkEnOlxuICAgICAgICAgICAgcmV0dXJuIE51Y2xlb3RpZGVzUGFsZXR0ZXMuQ2hyb21hdG9ncmFtO1xuICAgICAgICAvLyBvdGhlclxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIFVua25vd25TZXFQYWxldHRlcy5Db2xvcjtcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRVcGRhdGVkV2lkdGgoZ3JpZCwgZywgeCwgdykge1xuICAgIHJldHVybiBncmlkID8gTWF0aC5taW4oZ3JpZC5jYW52YXMud2lkdGggLSB4LCB3KSA6IGcuY2FudmFzLndpZHRoIC0geDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZXNzU2VxdWVuY2Uoc3ViUGFydHMpIHtcbiAgICBjb25zdCBzaW1wbGlmaWVkID0gIXN1YlBhcnRzLnNvbWUoKGFtaW5vLCBpbmRleCkgPT4gYW1pbm8ubGVuZ3RoID4gMSAmJlxuICAgICAgICBpbmRleCAhPSAwICYmXG4gICAgICAgIGluZGV4ICE9IHN1YlBhcnRzLmxlbmd0aCAtIDEpO1xuICAgIGNvbnN0IHRleHQgPSBbXTtcbiAgICBjb25zdCBnYXAgPSBzaW1wbGlmaWVkID8gJycgOiAnICc7XG4gICAgc3ViUGFydHMuZm9yRWFjaCgoYW1pbm8sIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChpbmRleCA8IHN1YlBhcnRzLmxlbmd0aClcbiAgICAgICAgICAgIGFtaW5vICs9IGAke2FtaW5vID8gJycgOiAnLSd9JHtnYXB9YDtcbiAgICAgICAgdGV4dC5wdXNoKGFtaW5vKTtcbiAgICB9KTtcbiAgICByZXR1cm4gW3RleHQsIHNpbXBsaWZpZWRdO1xufVxuZXhwb3J0IGNsYXNzIE1hY3JvbW9sZWN1bGVTZXF1ZW5jZUNlbGxSZW5kZXJlciBleHRlbmRzIERHLkdyaWRDZWxsUmVuZGVyZXIge1xuICAgIGdldCBuYW1lKCkgeyByZXR1cm4gJ3NlcXVlbmNlJzsgfVxuICAgIGdldCBjZWxsVHlwZSgpIHsgcmV0dXJuICdzZXF1ZW5jZSc7IH1cbiAgICBnZXQgZGVmYXVsdEhlaWdodCgpIHsgcmV0dXJuIDMwOyB9XG4gICAgZ2V0IGRlZmF1bHRXaWR0aCgpIHsgcmV0dXJuIDIzMDsgfVxuICAgIG9uTW91c2VNb3ZlKGdyaWRDZWxsLCBlKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAoZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFsaWduZWQpICE9PSAnU0VRLk1TQScpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtYXhMZW5ndGhXb3Jkc1N1bSA9IGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXBbJ2Jpby1zdW0tbWF4TGVuZ3RoV29yZHMnXTtcbiAgICAgICAgY29uc3QgbWF4SW5kZXggPSBncmlkQ2VsbC5jZWxsLmNvbHVtbi50ZW1wWydiaW8tbWF4SW5kZXgnXTtcbiAgICAgICAgY29uc3QgYXJnc1ggPSBlLm9mZnNldFggLSBncmlkQ2VsbC5ncmlkQ29sdW1uLmxlZnQgKyAoZ3JpZENlbGwuZ3JpZENvbHVtbi5sZWZ0IC0gZ3JpZENlbGwuYm91bmRzLngpO1xuICAgICAgICBsZXQgbGVmdCA9IDA7XG4gICAgICAgIGxldCByaWdodCA9IG1heEluZGV4O1xuICAgICAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICAgICAgbWF4TGVuZ3RoV29yZHNTdW1bbWF4SW5kZXggKyAxXSA9IGFyZ3NYICsgMTtcbiAgICAgICAgbGV0IG1pZCA9IDA7XG4gICAgICAgIGlmIChhcmdzWCA+IG1heExlbmd0aFdvcmRzU3VtWzBdKSB7XG4gICAgICAgICAgICB3aGlsZSAoIWZvdW5kKSB7XG4gICAgICAgICAgICAgICAgbWlkID0gTWF0aC5mbG9vcigocmlnaHQgKyBsZWZ0KSAvIDIpO1xuICAgICAgICAgICAgICAgIGlmIChhcmdzWCA+PSBtYXhMZW5ndGhXb3Jkc1N1bVttaWRdICYmIGFyZ3NYIDw9IG1heExlbmd0aFdvcmRzU3VtW21pZCArIDFdKSB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSBtaWQ7XG4gICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnc1ggPCBtYXhMZW5ndGhXb3Jkc1N1bVttaWRdKSB7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gbWlkIC0gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnc1ggPiBtYXhMZW5ndGhXb3Jkc1N1bVttaWQgKyAxXSkge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gbWlkICsgMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGxlZnQgPT0gcmlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsZWZ0ID0gKGFyZ3NYID49IG1heExlbmd0aFdvcmRzU3VtW2xlZnRdKSA/IGxlZnQgKyAxIDogbGVmdDtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gKF9hID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKCdzZXBhcmF0b3InKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJyc7XG4gICAgICAgIGNvbnN0IHNwbGl0dGVyRnVuYyA9IFdlYkxvZ28uZ2V0U3BsaXR0ZXIoJ3NlcGFyYXRvcicsIHNlcGFyYXRvcik7XG4gICAgICAgIGNvbnN0IHN1YlBhcnRzID0gc3BsaXR0ZXJGdW5jKGdyaWRDZWxsLmNlbGwudmFsdWUpO1xuICAgICAgICAoKCgoX2MgPSAoX2IgPSBzdWJQYXJ0c1tsZWZ0XSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmxlbmd0aCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMCkgPiAwKSkgPyB1aS50b29sdGlwLnNob3codWkuZGl2KHN1YlBhcnRzW2xlZnRdKSwgZS54ICsgMTYsIGUueSArIDE2KSA6IHVpLnRvb2x0aXAuaGlkZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDZWxsIHJlbmRlcmVyIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IGcgQ2FudmFzIHJlbmRlcmluZyBjb250ZXh0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IHggY29vcmRpbmF0ZSBvbiB0aGUgY2FudmFzLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IHkgY29vcmRpbmF0ZSBvbiB0aGUgY2FudmFzLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3IHdpZHRoIG9mIHRoZSBjZWxsLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBoIGhlaWdodCBvZiB0aGUgY2VsbC5cbiAgICAgKiBAcGFyYW0ge0RHLkdyaWRDZWxsfSBncmlkQ2VsbCBHcmlkIGNlbGwuXG4gICAgICogQHBhcmFtIHtERy5HcmlkQ2VsbFN0eWxlfSBjZWxsU3R5bGUgQ2VsbCBzdHlsZS5cbiAgICAgKiBAbWVtYmVyb2YgQWxpZ25lZFNlcXVlbmNlQ2VsbFJlbmRlcmVyXG4gICAgICovXG4gICAgcmVuZGVyKGcsIHgsIHksIHcsIGgsIGdyaWRDZWxsLCBjZWxsU3R5bGUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBncmlkID0gZ3JpZENlbGwuZ3JpZFJvdyAhPT0gLTEgPyBncmlkQ2VsbC5ncmlkIDogbnVsbDtcbiAgICAgICAgY29uc3QgY2VsbCA9IGdyaWRDZWxsLmNlbGw7XG4gICAgICAgIGNvbnN0IHBhbGV0dGVUeXBlID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKEMuVEFHUy5BTFBIQUJFVCk7XG4gICAgICAgIGNvbnN0IG1pbkRpc3RhbmNlUmVuZGVyZXIgPSA1MDtcbiAgICAgICAgdyA9IGdldFVwZGF0ZWRXaWR0aChncmlkLCBnLCB4LCB3KTtcbiAgICAgICAgZy5zYXZlKCk7XG4gICAgICAgIGcuYmVnaW5QYXRoKCk7XG4gICAgICAgIGcucmVjdCh4LCB5LCB3LCBoKTtcbiAgICAgICAgZy5jbGlwKCk7XG4gICAgICAgIGcuZm9udCA9ICcxMnB4IG1vbm9zcGFjZSc7XG4gICAgICAgIGcudGV4dEJhc2VsaW5lID0gJ3RvcCc7XG4gICAgICAgIC8vVE9ETzogY2FuIHRoaXMgYmUgcmVwbGFjZWQvbWVyZ2VkIHdpdGggc3BsaXRTZXF1ZW5jZT9cbiAgICAgICAgY29uc3QgdW5pdHMgPSBncmlkQ2VsbC5jZWxsLmNvbHVtbi5nZXRUYWcoREcuVEFHUy5VTklUUyk7XG4gICAgICAgIGNvbnN0IHBhbGV0dGUgPSBnZXRQYWxldHRlQnlUeXBlKHBhbGV0dGVUeXBlKTtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gKF9hID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKCdzZXBhcmF0b3InKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJyc7XG4gICAgICAgIGNvbnN0IHNwbGl0TGltaXQgPSBncmlkQ2VsbC5ib3VuZHMud2lkdGggLyA1O1xuICAgICAgICBjb25zdCBzcGxpdHRlckZ1bmMgPSBXZWJMb2dvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXBhcmF0b3IsIGdyaWRDZWxsLmJvdW5kcy53aWR0aCAvIDUpO1xuICAgICAgICBjb25zdCBtYXhMZW5ndGhPZk1vbm9tZXIgPSA4O1xuICAgICAgICBsZXQgbWF4TGVuZ3RoV29yZHMgPSB7fTtcbiAgICAgICAgaWYgKGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldFRhZygnLmNhbGN1bGF0ZWRDZWxsUmVuZGVyJykgIT09IHNwbGl0TGltaXQudG9TdHJpbmcoKSkge1xuICAgICAgICAgICAgbGV0IHNhbXBsZXMgPSAwO1xuICAgICAgICAgICAgd2hpbGUgKHNhbXBsZXMgPCBNYXRoLm1pbihncmlkQ2VsbC5jZWxsLmNvbHVtbi5sZW5ndGgsIDEwMCkpIHtcbiAgICAgICAgICAgICAgICBsZXQgY29sdW1uID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0KHNhbXBsZXMpO1xuICAgICAgICAgICAgICAgIGxldCBzdWJQYXJ0cyA9IHNwbGl0dGVyRnVuYyhjb2x1bW4pO1xuICAgICAgICAgICAgICAgIHN1YlBhcnRzLmZvckVhY2goKGFtaW5vLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBsZXQgdGV4dFNpemUgPSBtb25vbWVyVG9TaG9ydEZ1bmN0aW9uKGFtaW5vLCBtYXhMZW5ndGhPZk1vbm9tZXIpLmxlbmd0aCAqIDcgKyBnYXBSZW5kZXJlcjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRleHRTaXplID4gKChfYSA9IG1heExlbmd0aFdvcmRzW2luZGV4XSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heExlbmd0aFdvcmRzW2luZGV4XSA9IHRleHRTaXplO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA+ICgoX2IgPSBtYXhMZW5ndGhXb3Jkc1snYmlvLW1heEluZGV4J10pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhMZW5ndGhXb3Jkc1snYmlvLW1heEluZGV4J10gPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHNhbXBsZXMgKz0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBtaW5MZW5ndGggPSAzICogNztcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IG1heExlbmd0aFdvcmRzWydiaW8tbWF4SW5kZXgnXTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1heExlbmd0aFdvcmRzW2ldIDwgbWluTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIG1heExlbmd0aFdvcmRzW2ldID0gbWluTGVuZ3RoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBtYXhMZW5ndGhXb3JkU3VtID0ge307XG4gICAgICAgICAgICBtYXhMZW5ndGhXb3JkU3VtWzBdID0gbWF4TGVuZ3RoV29yZHNbMF07XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBtYXhMZW5ndGhXb3Jkc1snYmlvLW1heEluZGV4J107IGkrKykge1xuICAgICAgICAgICAgICAgIG1heExlbmd0aFdvcmRTdW1baV0gPSBtYXhMZW5ndGhXb3JkU3VtW2kgLSAxXSArIG1heExlbmd0aFdvcmRzW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZ3JpZENlbGwuY2VsbC5jb2x1bW4udGVtcCA9IHtcbiAgICAgICAgICAgICAgICAnYmlvLXN1bS1tYXhMZW5ndGhXb3Jkcyc6IG1heExlbmd0aFdvcmRTdW0sXG4gICAgICAgICAgICAgICAgJ2Jpby1tYXhJbmRleCc6IG1heExlbmd0aFdvcmRzWydiaW8tbWF4SW5kZXgnXSxcbiAgICAgICAgICAgICAgICAnYmlvLW1heExlbmd0aFdvcmRzJzogbWF4TGVuZ3RoV29yZHNcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBncmlkQ2VsbC5jZWxsLmNvbHVtbi5zZXRUYWcoJy5jYWxjdWxhdGVkQ2VsbFJlbmRlcicsIHNwbGl0TGltaXQudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBtYXhMZW5ndGhXb3JkcyA9IGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXBbJ2Jpby1tYXhMZW5ndGhXb3JkcyddO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN1YlBhcnRzID0gc3BsaXR0ZXJGdW5jKGNlbGwudmFsdWUpO1xuICAgICAgICBsZXQgeDEgPSB4O1xuICAgICAgICBsZXQgY29sb3IgPSB1bmRlZmluZWRDb2xvcjtcbiAgICAgICAgbGV0IGRyYXdTdHlsZSA9IERyYXdTdHlsZS5jbGFzc2ljO1xuICAgICAgICBpZiAoZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKCdhbGlnbmVkJykuaW5jbHVkZXMoJ01TQScpICYmIGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldFRhZygndW5pdHMnKSA9PT0gJ3NlcGFyYXRvcicpIHtcbiAgICAgICAgICAgIGRyYXdTdHlsZSA9IERyYXdTdHlsZS5NU0E7XG4gICAgICAgIH1cbiAgICAgICAgc3ViUGFydHMuZXZlcnkoKGFtaW5vLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29sb3IgPSBwYWxldHRlLmdldChhbWlubyk7XG4gICAgICAgICAgICBnLmZpbGxTdHlsZSA9IHVuZGVmaW5lZENvbG9yO1xuICAgICAgICAgICAgbGV0IGxhc3QgPSBpbmRleCA9PT0gc3ViUGFydHMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIHgxID0gcHJpbnRMZWZ0T3JDZW50ZXJlZCh4MSwgeSwgdywgaCwgZywgbW9ub21lclRvU2hvcnRGdW5jdGlvbihhbWlubywgbWF4TGVuZ3RoT2ZNb25vbWVyKSwgY29sb3IsIDAsIHRydWUsIDEuMCwgc2VwYXJhdG9yLCBsYXN0LCBkcmF3U3R5bGUsIG1heExlbmd0aFdvcmRzLCBpbmRleCwgZ3JpZENlbGwpO1xuICAgICAgICAgICAgcmV0dXJuIHgxIC0gbWluRGlzdGFuY2VSZW5kZXJlciAtIGdyaWRDZWxsLmdyaWRDb2x1bW4ubGVmdCArIChncmlkQ2VsbC5ncmlkQ29sdW1uLmxlZnQgLSBncmlkQ2VsbC5ib3VuZHMueCkgPD0gZ3JpZENlbGwuYm91bmRzLndpZHRoO1xuICAgICAgICB9KTtcbiAgICAgICAgZy5yZXN0b3JlKCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTW9ub21lckNlbGxSZW5kZXJlciBleHRlbmRzIERHLkdyaWRDZWxsUmVuZGVyZXIge1xuICAgIGdldCBuYW1lKCkgeyByZXR1cm4gQy5TRU1fVFlQRVMuTU9OT01FUjsgfVxuICAgIGdldCBjZWxsVHlwZSgpIHsgcmV0dXJuIEMuU0VNX1RZUEVTLk1PTk9NRVI7IH1cbiAgICBnZXQgZGVmYXVsdEhlaWdodCgpIHsgcmV0dXJuIDE1OyB9XG4gICAgZ2V0IGRlZmF1bHRXaWR0aCgpIHsgcmV0dXJuIDMwOyB9XG4gICAgLyoqXG4gICAgICogQ2VsbCByZW5kZXJlciBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfSBnIENhbnZhcyByZW5kZXJpbmcgY29udGV4dC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCB4IGNvb3JkaW5hdGUgb24gdGhlIGNhbnZhcy5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSB5IGNvb3JkaW5hdGUgb24gdGhlIGNhbnZhcy5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdyB3aWR0aCBvZiB0aGUgY2VsbC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gaCBoZWlnaHQgb2YgdGhlIGNlbGwuXG4gICAgICogQHBhcmFtIHtERy5HcmlkQ2VsbH0gZ3JpZENlbGwgR3JpZCBjZWxsLlxuICAgICAqIEBwYXJhbSB7REcuR3JpZENlbGxTdHlsZX0gY2VsbFN0eWxlIENlbGwgc3R5bGUuXG4gICAgICovXG4gICAgcmVuZGVyKGcsIHgsIHksIHcsIGgsIGdyaWRDZWxsLCBfY2VsbFN0eWxlKSB7XG4gICAgICAgIGcuZm9udCA9IGAxMnB4IG1vbm9zcGFjZWA7XG4gICAgICAgIGcudGV4dEJhc2VsaW5lID0gJ21pZGRsZSc7XG4gICAgICAgIGcudGV4dEFsaWduID0gJ2NlbnRlcic7XG4gICAgICAgIGNvbnN0IHBhbGV0dGUgPSBnZXRQYWxldHRlQnlUeXBlKGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldFRhZyhDLlRBR1MuQUxQSEFCRVQpKTtcbiAgICAgICAgY29uc3QgcyA9IGdyaWRDZWxsLmNlbGwudmFsdWUgfHwgJy0nO1xuICAgICAgICBjb25zdCBjb2xvciA9IHBhbGV0dGUuZ2V0KHMpO1xuICAgICAgICBnLmZpbGxTdHlsZSA9IGNvbG9yO1xuICAgICAgICBnLmZpbGxUZXh0KHMsIHggKyAodyAvIDIpLCB5IC0gKGggLyAyKSwgdyk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIE1hY3JvbW9sZWN1bGVEaWZmZXJlbmNlQ2VsbFJlbmRlcmVyIGV4dGVuZHMgREcuR3JpZENlbGxSZW5kZXJlciB7XG4gICAgZ2V0IG5hbWUoKSB7IHJldHVybiAnTWFjcm9tb2xlY3VsZURpZmZlcmVuY2VDUic7IH1cbiAgICBnZXQgY2VsbFR5cGUoKSB7IHJldHVybiBDLlNFTV9UWVBFUy5NQUNST01PTEVDVUxFX0RJRkZFUkVOQ0U7IH1cbiAgICBnZXQgZGVmYXVsdEhlaWdodCgpIHsgcmV0dXJuIDMwOyB9XG4gICAgZ2V0IGRlZmF1bHRXaWR0aCgpIHsgcmV0dXJuIDIzMDsgfVxuICAgIC8qKlxuICAgICAqIENlbGwgcmVuZGVyZXIgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRH0gZyBDYW52YXMgcmVuZGVyaW5nIGNvbnRleHQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggeCBjb29yZGluYXRlIG9uIHRoZSBjYW52YXMuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgeSBjb29yZGluYXRlIG9uIHRoZSBjYW52YXMuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHcgd2lkdGggb2YgdGhlIGNlbGwuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGggaGVpZ2h0IG9mIHRoZSBjZWxsLlxuICAgICAqIEBwYXJhbSB7REcuR3JpZENlbGx9IGdyaWRDZWxsIEdyaWQgY2VsbC5cbiAgICAgKiBAcGFyYW0ge0RHLkdyaWRDZWxsU3R5bGV9IGNlbGxTdHlsZSBDZWxsIHN0eWxlLlxuICAgICAqIEBtZW1iZXJvZiBBbGlnbmVkU2VxdWVuY2VEaWZmZXJlbmNlQ2VsbFJlbmRlcmVyXG4gICAgICovXG4gICAgcmVuZGVyKGcsIHgsIHksIHcsIGgsIGdyaWRDZWxsLCBjZWxsU3R5bGUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBncmlkID0gZ3JpZENlbGwuZ3JpZDtcbiAgICAgICAgY29uc3QgY2VsbCA9IGdyaWRDZWxsLmNlbGw7XG4gICAgICAgIHcgPSBnZXRVcGRhdGVkV2lkdGgoZ3JpZCwgZywgdywgeCk7XG4gICAgICAgIGcuc2F2ZSgpO1xuICAgICAgICBnLmJlZ2luUGF0aCgpO1xuICAgICAgICBnLnJlY3QoeCwgeSwgdywgaCk7XG4gICAgICAgIGcuY2xpcCgpO1xuICAgICAgICBnLmZvbnQgPSAnMTJweCBtb25vc3BhY2UnO1xuICAgICAgICBnLnRleHRCYXNlbGluZSA9ICd0b3AnO1xuICAgICAgICBjb25zdCBzID0gKF9hID0gY2VsbC52YWx1ZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJyc7XG4gICAgICAgIC8vVE9ETzogY2FuIHRoaXMgYmUgcmVwbGFjZWQvbWVyZ2VkIHdpdGggc3BsaXRTZXF1ZW5jZT9cbiAgICAgICAgY29uc3QgW3MxLCBzMl0gPSBzLnNwbGl0KCcjJyk7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IGdyaWRDZWxsLnRhYmxlQ29sdW1uLnRhZ3NbQy5UQUdTLlNFUEFSQVRPUl07XG4gICAgICAgIGNvbnN0IHVuaXRzID0gZ3JpZENlbGwudGFibGVDb2x1bW4udGFnc1tERy5UQUdTLlVOSVRTXTtcbiAgICAgICAgY29uc3Qgc3BsaXR0ZXIgPSBXZWJMb2dvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXBhcmF0b3IpO1xuICAgICAgICBjb25zdCBzdWJQYXJ0czEgPSBzcGxpdHRlcihzMSk7XG4gICAgICAgIGNvbnN0IHN1YlBhcnRzMiA9IHNwbGl0dGVyKHMyKTtcbiAgICAgICAgY29uc3QgW3RleHRdID0gcHJvY2Vzc1NlcXVlbmNlKHN1YlBhcnRzMSk7XG4gICAgICAgIGNvbnN0IHRleHRTaXplID0gZy5tZWFzdXJlVGV4dCh0ZXh0LmpvaW4oJycpKTtcbiAgICAgICAgbGV0IHVwZGF0ZWRYID0gTWF0aC5tYXgoeCwgeCArICh3IC0gKHRleHRTaXplLndpZHRoICsgc3ViUGFydHMxLmxlbmd0aCAqIDQpKSAvIDIpO1xuICAgICAgICAvLyAyOCBpcyB0aGUgaGVpZ2h0IG9mIHRoZSB0d28gc3Vic3RpdHV0aW9ucyBvbiB0b3Agb2YgZWFjaCBvdGhlciArIHNwYWNlXG4gICAgICAgIGNvbnN0IHVwZGF0ZWRZID0gTWF0aC5tYXgoeSwgeSArIChoIC0gMjgpIC8gMik7XG4gICAgICAgIGxldCBwYWxldHRlID0gVW5rbm93blNlcVBhbGV0dGVzLkNvbG9yO1xuICAgICAgICBpZiAodW5pdHMgIT0gJ0hFTE0nKVxuICAgICAgICAgICAgcGFsZXR0ZSA9IGdldFBhbGV0dGVCeVR5cGUodW5pdHMuc3Vic3RyaW5nKHVuaXRzLmxlbmd0aCAtIDIpKTtcbiAgICAgICAgY29uc3QgdlNoaWZ0ID0gNztcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdWJQYXJ0czEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGFtaW5vMSA9IHN1YlBhcnRzMVtpXTtcbiAgICAgICAgICAgIGNvbnN0IGFtaW5vMiA9IHN1YlBhcnRzMltpXTtcbiAgICAgICAgICAgIGNvbnN0IGNvbG9yMSA9IHBhbGV0dGUuZ2V0KGFtaW5vMSk7XG4gICAgICAgICAgICBpZiAoYW1pbm8xICE9IGFtaW5vMikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbG9yMiA9IHBhbGV0dGUuZ2V0KGFtaW5vMik7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3ViWDAgPSBwcmludExlZnRPckNlbnRlcmVkKHVwZGF0ZWRYLCB1cGRhdGVkWSAtIHZTaGlmdCwgdywgaCwgZywgYW1pbm8xLCBjb2xvcjEsIDAsIHRydWUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN1YlgxID0gcHJpbnRMZWZ0T3JDZW50ZXJlZCh1cGRhdGVkWCwgdXBkYXRlZFkgKyB2U2hpZnQsIHcsIGgsIGcsIGFtaW5vMiwgY29sb3IyLCAwLCB0cnVlKTtcbiAgICAgICAgICAgICAgICB1cGRhdGVkWCA9IE1hdGgubWF4KHN1YlgxLCBzdWJYMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgdXBkYXRlZFggPSBwcmludExlZnRPckNlbnRlcmVkKHVwZGF0ZWRYLCB1cGRhdGVkWSwgdywgaCwgZywgYW1pbm8xLCBjb2xvcjEsIDAsIHRydWUsIDAuNSk7XG4gICAgICAgICAgICB1cGRhdGVkWCArPSA0O1xuICAgICAgICB9XG4gICAgICAgIGcucmVzdG9yZSgpO1xuICAgIH1cbn1cbiIsImV4cG9ydCB2YXIgQ09MVU1OU19OQU1FUztcbihmdW5jdGlvbiAoQ09MVU1OU19OQU1FUykge1xuICAgIENPTFVNTlNfTkFNRVNbXCJTUExJVF9DT0xcIl0gPSBcIn5zcGxpdFwiO1xuICAgIENPTFVNTlNfTkFNRVNbXCJBQ1RJVklUWVwiXSA9IFwifmFjdGl2aXR5XCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIkFDVElWSVRZX1NDQUxFRFwiXSA9IFwiYWN0aXZpdHlfc2NhbGVkXCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIkFMSUdORURfU0VRVUVOQ0VcIl0gPSBcIn5hbGlnbmVkX3NlcXVlbmNlXCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIkFNSU5PX0FDSURfUkVTSURVRVwiXSA9IFwiQUFSXCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIlBPU0lUSU9OXCJdID0gXCJQb3NcIjtcbiAgICBDT0xVTU5TX05BTUVTW1wiUF9WQUxVRVwiXSA9IFwicFZhbHVlXCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIk1FQU5fRElGRkVSRU5DRVwiXSA9IFwiTWVhbiBkaWZmZXJlbmNlXCI7XG59KShDT0xVTU5TX05BTUVTIHx8IChDT0xVTU5TX05BTUVTID0ge30pKTtcbmV4cG9ydCB2YXIgVEFHUztcbihmdW5jdGlvbiAoVEFHUykge1xuICAgIFRBR1NbXCJBQVJcIl0gPSBcIkFBUlwiO1xuICAgIFRBR1NbXCJQT1NJVElPTlwiXSA9IFwiUG9zXCI7XG4gICAgVEFHU1tcIlNFUEFSQVRPUlwiXSA9IFwic2VwYXJhdG9yXCI7XG4gICAgVEFHU1tcIlNFTEVDVElPTlwiXSA9IFwic2VsZWN0aW9uXCI7XG4gICAgVEFHU1tcIkFMUEhBQkVUXCJdID0gXCJhbHBoYWJldFwiO1xuICAgIFRBR1NbXCJBTElHTkVEXCJdID0gXCJhbGlnbmVkXCI7XG59KShUQUdTIHx8IChUQUdTID0ge30pKTtcbmV4cG9ydCB2YXIgU0VNX1RZUEVTO1xuKGZ1bmN0aW9uIChTRU1fVFlQRVMpIHtcbiAgICBTRU1fVFlQRVNbXCJNT05PTUVSXCJdID0gXCJNb25vbWVyXCI7XG4gICAgU0VNX1RZUEVTW1wiTUFDUk9NT0xFQ1VMRV9ESUZGRVJFTkNFXCJdID0gXCJNYWNyb21vbGVjdWxlRGlmZmVyZW5jZVwiO1xuICAgIFNFTV9UWVBFU1tcIkFDVElWSVRZXCJdID0gXCJhY3Rpdml0eVwiO1xuICAgIFNFTV9UWVBFU1tcIkFDVElWSVRZX1NDQUxFRFwiXSA9IFwiYWN0aXZpdHlTY2FsZWRcIjtcbiAgICBTRU1fVFlQRVNbXCJNQUNST01PTEVDVUxFXCJdID0gXCJNYWNyb21vbGVjdWxlXCI7XG59KShTRU1fVFlQRVMgfHwgKFNFTV9UWVBFUyA9IHt9KSk7XG5leHBvcnQgY29uc3QgTVNBID0gJ01TQSc7XG5leHBvcnQgY29uc3QgU1RBVFMgPSAnc3RhdHMnO1xuZXhwb3J0IGNvbnN0IEVNQkVERElOR19TVEFUVVMgPSAnZW1iZWRkaW5nU3RhdHVzJztcbmV4cG9ydCBjb25zdCBQRVBUSURFU19BTkFMWVNJUyA9ICdpc1BlcHRpZGVzQW5hbHlzaXMnO1xuZXhwb3J0IHZhciBGTEFHUztcbihmdW5jdGlvbiAoRkxBR1MpIHtcbiAgICBGTEFHU1tcIkNFTExfQ0hBTkdJTkdcIl0gPSBcImlzQ2VsbENoYW5naW5nXCI7XG59KShGTEFHUyB8fCAoRkxBR1MgPSB7fSkpO1xuZXhwb3J0IGNvbnN0IGFhckdyb3VwcyA9IHtcbiAgICAnUic6ICdQQycsICdIJzogJ1BDJywgJ0snOiAnUEMnLFxuICAgICdEJzogJ05DJywgJ0UnOiAnTkMnLFxuICAgICdTJzogJ1UnLCAnVCc6ICdVJywgJ04nOiAnVScsICdRJzogJ1UnLFxuICAgICdDJzogJ1NDJywgJ1UnOiAnU0MnLCAnRyc6ICdTQycsICdQJzogJ1NDJyxcbiAgICAnQSc6ICdIJywgJ1YnOiAnSCcsICdJJzogJ0gnLCAnTCc6ICdIJywgJ00nOiAnSCcsICdGJzogJ0gnLCAnWSc6ICdIJywgJ1cnOiAnSCcsXG4gICAgJy0nOiAnLScsXG59O1xuZXhwb3J0IGNvbnN0IGdyb3VwRGVzY3JpcHRpb24gPSB7XG4gICAgJ1BDJzogeyAnZGVzY3JpcHRpb24nOiAnUG9zaXRpdmUgQW1pbm8gQWNpZHMsIHdpdGggRWxlY3RyaWNhbGx5IENoYXJnZWQgU2lkZSBDaGFpbnMnLCAnYW1pbm9BY2lkcyc6IFsnUicsICdIJywgJ0snXSB9LFxuICAgICdOQyc6IHsgJ2Rlc2NyaXB0aW9uJzogJ05lZ2F0aXZlIEFtaW5vIEFjaWRzLCB3aXRoIEVsZWN0cmljYWxseSBDaGFyZ2VkIFNpZGUgQ2hhaW5zJywgJ2FtaW5vQWNpZHMnOiBbJ0QnLCAnRSddIH0sXG4gICAgJ1UnOiB7ICdkZXNjcmlwdGlvbic6ICdBbWlubyBBY2lkcyB3aXRoIFBvbGFyIFVuY2hhcmdlZCBTaWRlIENoYWlucycsICdhbWlub0FjaWRzJzogWydTJywgJ1QnLCAnTicsICdRJ10gfSxcbiAgICAnU0MnOiB7ICdkZXNjcmlwdGlvbic6ICdTcGVjaWFsIENhc2VzJywgJ2FtaW5vQWNpZHMnOiBbJ0MnLCAnVScsICdHJywgJ1AnXSB9LFxuICAgICdIJzoge1xuICAgICAgICAnZGVzY3JpcHRpb24nOiAnQW1pbm8gQWNpZHMgd2l0aCBIeWRyb3Bob2JpYyBTaWRlIENoYWluJyxcbiAgICAgICAgJ2FtaW5vQWNpZHMnOiBbJ0EnLCAnVicsICdJJywgJ0wnLCAnTScsICdGJywgJ1knLCAnVyddLFxuICAgIH0sXG4gICAgJy0nOiB7ICdkZXNjcmlwdGlvbic6ICdVbmtub3duIEFtaW5vIEFjaWQnLCAnYW1pbm9BY2lkcyc6IFsnLSddIH0sXG59O1xuIiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgJCBmcm9tICdjYXNoLWRvbSc7XG5pbXBvcnQgeyBOb3RhdGlvbkNvbnZlcnRlciB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9ub3RhdGlvbi1jb252ZXJ0ZXInO1xubGV0IGNvbnZlcnREaWFsb2cgPSBudWxsO1xubGV0IGNvbnZlcnREaWFsb2dTdWJzID0gW107XG4vKipcbiAqIENvbnZlcnRzIG5vdGF0aW9ucyBvZiBhIE1hY3JvbW9sZWN1bGUgY29sdW1uXG4gKlxuICogQHBhcmFtIHtERy5jb2x1bW59IGNvbCBDb2x1bW4gd2l0aCAnTWFjcm9tb2xlY3VsZScgc2VtYW50aWMgdHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydChjb2wpIHtcbiAgICBjb25zdCBjb252ZXJ0ZXIgPSBuZXcgTm90YXRpb25Db252ZXJ0ZXIoY29sKTtcbiAgICBjb25zdCBjdXJyZW50Tm90YXRpb24gPSBjb252ZXJ0ZXIubm90YXRpb247XG4gICAgLy9UT0RPOiByZWFkIGFsbCBub3RhdGlvbnNcbiAgICBjb25zdCBub3RhdGlvbnMgPSBbXG4gICAgICAgIFwiZmFzdGFcIiAvKiBOT1RBVElPTi5GQVNUQSAqLyxcbiAgICAgICAgXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8sXG4gICAgICAgIFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi9cbiAgICBdO1xuICAgIGNvbnN0IHNlcGFyYXRvckFycmF5ID0gWyctJywgJy4nLCAnLyddO1xuICAgIGNvbnN0IGZpbHRlcmVkTm90YXRpb25zID0gbm90YXRpb25zLmZpbHRlcigoZSkgPT4gZSAhPT0gY3VycmVudE5vdGF0aW9uKTtcbiAgICBjb25zdCB0YXJnZXROb3RhdGlvbklucHV0ID0gdWkuY2hvaWNlSW5wdXQoJ0NvbnZlcnQgdG8nLCBmaWx0ZXJlZE5vdGF0aW9uc1swXSwgZmlsdGVyZWROb3RhdGlvbnMpO1xuICAgIGNvbnN0IHNlcGFyYXRvcklucHV0ID0gdWkuY2hvaWNlSW5wdXQoJ1NlcGFyYXRvcicsIHNlcGFyYXRvckFycmF5WzBdLCBzZXBhcmF0b3JBcnJheSk7XG4gICAgLy8gaGlkZSB0aGUgc2VwYXJhdG9yIGlucHV0IGZvciBub24tU0VQQVJBVE9SIHRhcmdldCBub3RhdGlvbnNcbiAgICBjb25zdCB0b2dnbGVTZXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgIGlmICh0YXJnZXROb3RhdGlvbklucHV0LnZhbHVlICE9PSBcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLylcbiAgICAgICAgICAgICQoc2VwYXJhdG9ySW5wdXQucm9vdCkuaGlkZSgpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICAkKHNlcGFyYXRvcklucHV0LnJvb3QpLnNob3coKTtcbiAgICB9O1xuICAgIC8vIHNldCBjb3JyZWN0IHZpc2liaWxpdHkgb24gaW5pdFxuICAgIHRvZ2dsZVNlcGFyYXRvcigpO1xuICAgIHRhcmdldE5vdGF0aW9uSW5wdXQub25DaGFuZ2VkKCgpID0+IHtcbiAgICAgICAgdG9nZ2xlU2VwYXJhdG9yKCk7XG4gICAgfSk7XG4gICAgaWYgKGNvbnZlcnREaWFsb2cgPT0gbnVsbCkge1xuICAgICAgICBjb252ZXJ0RGlhbG9nID0gdWkuZGlhbG9nKCdDb252ZXJ0IHNlcXVlbmNlIG5vdGF0aW9uJylcbiAgICAgICAgICAgIC5hZGQodWkuZGl2KFtcbiAgICAgICAgICAgIHVpLmRpdlRleHQoJ0N1cnJlbnQgbm90YXRpb246ICcgKyBjdXJyZW50Tm90YXRpb24sIHtcbiAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICAndGV4dC1hbGlnbic6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAnZm9udC13ZWlnaHQnOiAnYm9sZCcsXG4gICAgICAgICAgICAgICAgICAgICdmb250LXNpemUnOiAnMTRweCcsXG4gICAgICAgICAgICAgICAgICAgICdwYWRkaW5nJzogJzVweCcsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YXJnZXROb3RhdGlvbklucHV0LnJvb3QsXG4gICAgICAgICAgICBzZXBhcmF0b3JJbnB1dC5yb290XG4gICAgICAgIF0pKVxuICAgICAgICAgICAgLm9uT0soKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0Tm90YXRpb24gPSB0YXJnZXROb3RhdGlvbklucHV0LnZhbHVlO1xuICAgICAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gc2VwYXJhdG9ySW5wdXQudmFsdWU7XG4gICAgICAgICAgICB5aWVsZCBjb252ZXJ0RG8oY29sLCB0YXJnZXROb3RhdGlvbiwgc2VwYXJhdG9yKTtcbiAgICAgICAgfSkpXG4gICAgICAgICAgICAuc2hvdyh7IHg6IDM1MCwgeTogMTAwIH0pO1xuICAgICAgICBjb252ZXJ0RGlhbG9nU3Vicy5wdXNoKGNvbnZlcnREaWFsb2cub25DbG9zZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBjb252ZXJ0RGlhbG9nU3Vicy5mb3JFYWNoKChzKSA9PiB7IHMudW5zdWJzY3JpYmUoKTsgfSk7XG4gICAgICAgICAgICBjb252ZXJ0RGlhbG9nU3VicyA9IFtdO1xuICAgICAgICAgICAgY29udmVydERpYWxvZyA9IG51bGw7XG4gICAgICAgIH0pKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gY29udmVydERvKHNyY0NvbCwgdGFyZ2V0Tm90YXRpb24sIHNlcGFyYXRvcikge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnRlciA9IG5ldyBOb3RhdGlvbkNvbnZlcnRlcihzcmNDb2wpO1xuICAgICAgICBjb25zdCBuZXdDb2x1bW4gPSBjb252ZXJ0ZXIuY29udmVydCh0YXJnZXROb3RhdGlvbiwgc2VwYXJhdG9yKTtcbiAgICAgICAgc3JjQ29sLmRhdGFGcmFtZS5jb2x1bW5zLmFkZChuZXdDb2x1bW4pO1xuICAgICAgICAvLyBjYWxsIHRvIGNhbGN1bGF0ZSAnY2VsbC5yZW5kZXJlcicgdGFnXG4gICAgICAgIHlpZWxkIGdyb2suZGF0YS5kZXRlY3RTZW1hbnRpY1R5cGVzKHNyY0NvbC5kYXRhRnJhbWUpO1xuICAgICAgICByZXR1cm4gbmV3Q29sdW1uO1xuICAgIH0pO1xufVxuIiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgRmFzdGFGaWxlSGFuZGxlciB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9mYXN0YS1oYW5kbGVyJztcbi8vQHRzLWlnbm9yZVxuaW1wb3J0IEFpb2xpIGZyb20gJ0BiaW93YXNtL2Fpb2xpJztcbmltcG9ydCB7IEFsaWduZWRTZXF1ZW5jZUVuY29kZXIgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvc2VxdWVuY2UtZW5jb2Rlcic7XG5pbXBvcnQgeyBVbml0c0hhbmRsZXIgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvdW5pdHMtaGFuZGxlcic7XG4vKipcbiAqIENvbnZlcnRzIGFycmF5IG9mIHNlcXVlbmNlcyBpbnRvIHNpbXBsZSBmYXN0YSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtzdHJpbmdbXX0gc2VxdWVuY2VzIElucHV0IGxpc3Qgb2Ygc2VxdWVuY2VzLlxuICogQHJldHVybiB7c3RyaW5nfSBGYXN0YS1mb3JtYXR0ZWQgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBfc3RyaW5nc1RvRmFzdGEoc2VxdWVuY2VzKSB7XG4gICAgcmV0dXJuIHNlcXVlbmNlcy5yZWR1Y2UoKGEsIHYsIGkpID0+IGEgKyBgPnNhbXBsZSR7aSArIDF9XFxuJHt2fVxcbmAsICcnKTtcbn1cbi8qKlxuICogUnVucyBBaW9saSBlbnZpcm9ubWVudCB3aXRoIGthbGlnbiB0b29sLlxuICpcbiAqIEBwYXJhbSB7REcuQ29sdW1ufSBzcmNDb2wgQ29sdW1uIHdpdGggc2VxdWVuY2VzLlxuICogQHBhcmFtIHtib29sZWFufSBpc0FsaWduZWQgV2hldGhlciB0aGUgY29sdW1uIGlzIGFsaWduZWQuXG4gKiBAcGFyYW0ge3N0cmluZ30gdW5Vc2VkTmFtZVxuICogQHJldHVybiB7UHJvbWlzZTxERy5Db2x1bW4+fSBBbGlnbmVkIHNlcXVlbmNlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bkthbGlnbihzcmNDb2wsIGlzQWxpZ25lZCA9IGZhbHNlLCB1blVzZWROYW1lID0gJycpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBsZXQgc2VxdWVuY2VzID0gc3JjQ29sLnRvTGlzdCgpO1xuICAgICAgICBpZiAoaXNBbGlnbmVkKVxuICAgICAgICAgICAgc2VxdWVuY2VzID0gc2VxdWVuY2VzLm1hcCgodiwgXykgPT4gQWxpZ25lZFNlcXVlbmNlRW5jb2Rlci5jbGVhbih2KS5yZXBsYWNlKC9cXC0vZywgJycpKTtcbiAgICAgICAgY29uc3QgZmFzdGEgPSBfc3RyaW5nc1RvRmFzdGEoc2VxdWVuY2VzKTtcbiAgICAgICAgY29uc3QgQ0xJID0geWllbGQgbmV3IEFpb2xpKHtcbiAgICAgICAgICAgIHRvb2w6ICdrYWxpZ24nLFxuICAgICAgICAgICAgdmVyc2lvbjogJzMuMy4xJyxcbiAgICAgICAgICAgIHJlaW5pdDogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnNvbGUubG9nKFsnZmFzdGEubGVuZ3RoID0nLCBmYXN0YS5sZW5ndGhdKTtcbiAgICAgICAgeWllbGQgQ0xJLmZzLndyaXRlRmlsZSgnaW5wdXQuZmEnLCBmYXN0YSk7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IHlpZWxkIENMSS5leGVjKCdrYWxpZ24gaW5wdXQuZmEgLWYgZmFzdGEgLW8gcmVzdWx0LmZhc3RhJyk7XG4gICAgICAgIGNvbnNvbGUud2FybihvdXRwdXQpO1xuICAgICAgICBjb25zdCBidWYgPSB5aWVsZCBDTEkuY2F0KCdyZXN1bHQuZmFzdGEnKTtcbiAgICAgICAgaWYgKCFidWYpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGthbGlnbiBvdXRwdXQgbm8gcmVzdWx0YCk7XG4gICAgICAgIGNvbnN0IGZmaCA9IG5ldyBGYXN0YUZpbGVIYW5kbGVyKGJ1Zik7XG4gICAgICAgIGNvbnN0IGFsaWduZWQgPSBmZmguc2VxdWVuY2VzQXJyYXk7IC8vIGFycmF5IG9mIHNlcXVlbmNlcyBleHRyYWN0ZWQgZnJvbSBGQVNUQVxuICAgICAgICBjb25zdCB0Z3RDb2wgPSBERy5Db2x1bW4uZnJvbVN0cmluZ3ModW5Vc2VkTmFtZSwgYWxpZ25lZCk7XG4gICAgICAgIC8vIHVuaXRzXG4gICAgICAgIGNvbnN0IHNyY1VuaXRzID0gc3JjQ29sLmdldFRhZyhERy5UQUdTLlVOSVRTKTtcbiAgICAgICAgLy9hbGlnbmVkXG4gICAgICAgIGNvbnN0IHNyY0FsaWduZWQgPSBzcmNDb2wuZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFsaWduZWQpO1xuICAgICAgICBjb25zdCB0Z3RBbGlnbmVkID0gc3JjQWxpZ25lZCArICcuTVNBJztcbiAgICAgICAgLy9hbHBoYWJldFxuICAgICAgICBjb25zdCBzcmNBbHBoYWJldCA9IHNyY0NvbC5nZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXQpO1xuICAgICAgICB0Z3RDb2wuc2V0VGFnKERHLlRBR1MuVU5JVFMsIHNyY1VuaXRzKTtcbiAgICAgICAgdGd0Q29sLnNldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbGlnbmVkLCB0Z3RBbGlnbmVkKTtcbiAgICAgICAgdGd0Q29sLnNldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldCwgc3JjQWxwaGFiZXQpO1xuICAgICAgICB0Z3RDb2wuc2VtVHlwZSA9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRTtcbiAgICAgICAgcmV0dXJuIHRndENvbDtcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0ZXN0TVNBRW5vdWdoTWVtb3J5KGNvbCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHNlcXVlbmNlc0NvdW50ID0gY29sLmxlbmd0aDtcbiAgICAgICAgY29uc3QgZGVsdGEgPSBzZXF1ZW5jZXNDb3VudCAvIDEwMDtcbiAgICAgICAgZm9yIChsZXQgaSA9IGRlbHRhOyBpIDwgc2VxdWVuY2VzQ291bnQ7IGkgKz0gZGVsdGEpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgeWllbGQgcnVuS2FsaWduKERHLkNvbHVtbi5mcm9tU3RyaW5ncyhjb2wubmFtZSwgY29sLnRvTGlzdCgpLnNsaWNlKDAsIE1hdGgucm91bmQoaSkpKSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHJ1bkthbGlnbiBzdWNjZWVkZWQgb24gJHtpfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHJ1bkthbGlnbiBmYWlsZWQgb24gJHtpfSB3aXRoICcke2Vycm9yfSdgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufVxuIiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCB7IGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy9zaW1pbGFyaXR5LW1ldHJpY3MnO1xuaW1wb3J0IHsgQXZhaWxhYmxlTWV0cmljcyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL3R5cGVkLW1ldHJpY3MnO1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlzdGFuY2VzKGNvbCwgc2VxKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgc3RyaW5nQXJyYXkgPSBjb2wudG9MaXN0KCk7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlcyA9IG5ldyBBcnJheShzdHJpbmdBcnJheS5sZW5ndGgpLmZpbGwoMCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyaW5nQXJyYXkubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gc3RyaW5nQXJyYXlbaV0gPyBBdmFpbGFibGVNZXRyaWNzWydTdHJpbmcnXVsnTGV2ZW5zaHRlaW4nXShzdHJpbmdBcnJheVtpXSwgc2VxKSA6IG51bGw7XG4gICAgICAgICAgICBkaXN0YW5jZXNbaV0gPSBkaXN0YW5jZSA/IGRpc3RhbmNlIC8gTWF0aC5tYXgoc3RyaW5nQXJyYXlbaV0ubGVuZ3RoLCBzZXEubGVuZ3RoKSA6IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRpc3RhbmNlcztcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTaW1pbGFyaXRpZXNNYXJpeChkaW0sIHNlcUNvbCwgZGYsIGNvbE5hbWUsIHNpbUFycikge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGRpc3RhbmNlcyA9IG5ldyBBcnJheShzaW1BcnIubGVuZ3RoKS5maWxsKG51bGwpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSAhPSBkaW0gLSAxOyArK2kpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlcSA9IHNlcUNvbC5nZXQoaSk7XG4gICAgICAgICAgICBkZi5yb3dzLnJlbW92ZUF0KDAsIDEsIGZhbHNlKTtcbiAgICAgICAgICAgIGRpc3RhbmNlc1tpXSA9ICh5aWVsZCBnZXREaXN0YW5jZXMoZGYuY29sKGNvbE5hbWUpLCBzZXEpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRpc3RhbmNlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBkaXN0YW5jZXNbaV0ubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICBkaXN0YW5jZXNbaV1bal0gPSBnZXRTaW1pbGFyaXR5RnJvbURpc3RhbmNlKGRpc3RhbmNlc1tpXVtqXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzaW1BcnJbaV0gPSBERy5Db2x1bW4uZnJvbUxpc3QoREcuQ09MVU1OX1RZUEUuRkxPQVQsICdkaXN0YW5jZXMnLCBkaXN0YW5jZXNbaV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzaW1BcnI7XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9vbHRpcEVsZW1lbnQocGFyYW1zKSB7XG4gICAgY29uc3QgdG9vbHRpcEVsZW1lbnQgPSB1aS5kaXZIKFtdKTtcbiAgICBjb25zdCBjb2x1bW5OYW1lcyA9IHVpLmRpdlYoW1xuICAgICAgICB1aS5kaXZUZXh0KHBhcmFtcy5zZXFDb2wubmFtZSksXG4gICAgICAgIHVpLmRpdlRleHQocGFyYW1zLmFjdGl2aXR5Q29sLm5hbWUpLFxuICAgIF0pO1xuICAgIGNvbHVtbk5hbWVzLnN0eWxlLmZvbnRXZWlnaHQgPSAnYm9sZCc7XG4gICAgY29sdW1uTmFtZXMuc3R5bGUuZGlzcGxheSA9ICdmbGV4JztcbiAgICBjb2x1bW5OYW1lcy5zdHlsZS5qdXN0aWZ5Q29udGVudCA9ICdzcGFjZS1iZXR3ZWVuJztcbiAgICB0b29sdGlwRWxlbWVudC5hcHBlbmQoY29sdW1uTmFtZXMpO1xuICAgIHBhcmFtcy5saW5lLm1vbHMuZm9yRWFjaCgobW9sSWR4LCBpZHgpID0+IHtcbiAgICAgICAgY29uc3QgYWN0aXZpdHkgPSB1aS5kaXZUZXh0KHBhcmFtcy5hY3Rpdml0eUNvbC5nZXQobW9sSWR4KS50b0ZpeGVkKDIpKTtcbiAgICAgICAgYWN0aXZpdHkuc3R5bGUuZGlzcGxheSA9ICdmbGV4JztcbiAgICAgICAgYWN0aXZpdHkuc3R5bGUuanVzdGlmeUNvbnRlbnQgPSAnbGVmdCc7XG4gICAgICAgIGFjdGl2aXR5LnN0eWxlLnBhZGRpbmdMZWZ0ID0gJzMwcHgnO1xuICAgICAgICB0b29sdGlwRWxlbWVudC5hcHBlbmQodWkuZGl2VihbXG4gICAgICAgICAgICB1aS5kaXZUZXh0KHBhcmFtcy5zZXFDb2wuZ2V0KG1vbElkeCkpLFxuICAgICAgICAgICAgYWN0aXZpdHksXG4gICAgICAgIF0pKTtcbiAgICB9KTtcbiAgICByZXR1cm4gdG9vbHRpcEVsZW1lbnQ7XG59XG5mdW5jdGlvbiBtb2xlY3VsZUluZm8oZGYsIGlkeCwgc2VxQ29sTmFtZSkge1xuICAgIGxldCBkaWN0ID0ge307XG4gICAgZm9yIChsZXQgY29sIG9mIGRmLmNvbHVtbnMpIHtcbiAgICAgICAgaWYgKGNvbC5uYW1lICE9PSBzZXFDb2xOYW1lKSB7XG4gICAgICAgICAgICBkaWN0W2NvbC5uYW1lXSA9IGRmLmdldChjb2wubmFtZSwgaWR4KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdWkudGFibGVGcm9tTWFwKGRpY3QpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb3BQYW5lbEVsZW1lbnQocGFyYW1zKSB7XG4gICAgY29uc3QgcHJvcFBhbmVsID0gdWkuZGl2VihbXSk7XG4gICAgY29uc3QgY29sdW1uTmFtZXMgPSB1aS5kaXZIKFtcbiAgICAgICAgdWkuZGl2VGV4dChwYXJhbXMuc2VxQ29sLm5hbWUpLFxuICAgICAgICB1aS5kaXZUZXh0KHBhcmFtcy5hY3Rpdml0eUNvbC5uYW1lKSxcbiAgICBdKTtcbiAgICBjb2x1bW5OYW1lcy5zdHlsZS5mb250V2VpZ2h0ID0gJ2JvbGQnO1xuICAgIGNvbHVtbk5hbWVzLnN0eWxlLmp1c3RpZnlDb250ZW50ID0gJ3NwYWNlLWJldHdlZW4nO1xuICAgIHByb3BQYW5lbC5hcHBlbmQoY29sdW1uTmFtZXMpO1xuICAgIGNvbnN0IGhvc3RzID0gW107XG4gICAgcGFyYW1zLmxpbmUubW9scy5mb3JFYWNoKChtb2xJZHgsIGhvc3RJZHgpID0+IHtcbiAgICAgICAgY29uc3QgYWN0aXZpdHkgPSB1aS5kaXZUZXh0KHBhcmFtcy5hY3Rpdml0eUNvbC5nZXQobW9sSWR4KS50b0ZpeGVkKDIpKTtcbiAgICAgICAgYWN0aXZpdHkuc3R5bGUucGFkZGluZ0xlZnQgPSAnMTVweCc7XG4gICAgICAgIGFjdGl2aXR5LnN0eWxlLnBhZGRpbmdMZWZ0ID0gJzEwcHgnO1xuICAgICAgICBjb25zdCBtb2xIb3N0ID0gdWkuZGl2VGV4dChwYXJhbXMuc2VxQ29sLmdldChtb2xJZHgpKTtcbiAgICAgICAgaWYgKHBhcmFtcy5kZi5jdXJyZW50Um93SWR4ID09PSBtb2xJZHgpIHtcbiAgICAgICAgICAgIG1vbEhvc3Quc3R5bGUuYm9yZGVyID0gJ3NvbGlkIDFweCBsaWdodGdyZXknO1xuICAgICAgICB9XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICB1aS50b29sdGlwLmJpbmQobW9sSG9zdCwgKCkgPT4gbW9sZWN1bGVJbmZvKHBhcmFtcy5kZiwgbW9sSWR4LCBwYXJhbXMuc2VxQ29sLm5hbWUpKTtcbiAgICAgICAgbW9sSG9zdC5vbmNsaWNrID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb2JqID0gZ3Jvay5zaGVsbC5vO1xuICAgICAgICAgICAgbW9sSG9zdC5zdHlsZS5ib3JkZXIgPSAnc29saWQgMXB4IGxpZ2h0Z3JleSc7XG4gICAgICAgICAgICBwYXJhbXMuZGYuY3VycmVudFJvd0lkeCA9IG1vbElkeDtcbiAgICAgICAgICAgIGhvc3RzLmZvckVhY2goKGgsIGkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaSAhPT0gaG9zdElkeCkge1xuICAgICAgICAgICAgICAgICAgICBoLnN0eWxlLmJvcmRlciA9ICcnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgZ3Jvay5zaGVsbC5vID0gb2JqO1xuICAgICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgIH07XG4gICAgICAgIHByb3BQYW5lbC5hcHBlbmQodWkuZGl2SChbXG4gICAgICAgICAgICBtb2xIb3N0LFxuICAgICAgICAgICAgYWN0aXZpdHksXG4gICAgICAgIF0pKTtcbiAgICAgICAgaG9zdHMucHVzaChtb2xIb3N0KTtcbiAgICB9KTtcbiAgICBwcm9wUGFuZWwuYXBwZW5kKHVpLmRpdkgoW1xuICAgICAgICB1aS5kaXZUZXh0KGBDbGlmZjogYCwgeyBzdHlsZTogeyBmb250V2VpZ2h0OiAnYm9sZCcsIHBhZGRpbmdSaWdodDogJzVweCcgfSB9KSxcbiAgICAgICAgdWkuZGl2VGV4dChwYXJhbXMuc2FsaS50b0ZpeGVkKDIpKVxuICAgIF0pKTtcbiAgICByZXR1cm4gcHJvcFBhbmVsO1xufVxuIiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgcmVkdWNlRGltZW5zaW5hbGl0eVdpdGhOb3JtYWxpemF0aW9uIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvc2VxdWVuY2Utc3BhY2UnO1xuZXhwb3J0IGZ1bmN0aW9uIHNlcXVlbmNlU3BhY2Uoc3BhY2VQYXJhbXMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAvLyBjb2RlIGRlcHJlY2F0ZWQgc2luY2Ugc2VxQ29sIGlzIGVuY29kZWRcbiAgICAgICAgLyogICAgbGV0IHByZXBhcmVkRGF0YTogYW55O1xuICAgICAgICAgIGlmICghKHNwYWNlUGFyYW1zLnNlcUNvbCEudGFnc1tERy5UQUdTLlVOSVRTXSA9PT0gJ0hFTE0nKSkge1xuICAgICAgICAgICAgY29uc3Qgc2VwID0gc3BhY2VQYXJhbXMuc2VxQ29sLmdldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5zZXBhcmF0b3IpO1xuICAgICAgICAgICAgY29uc3Qgc2VwRmluYWwgPSBzZXAgPyBzZXAgPT09ICcuJyA/ICdcXFxcXFwuJyA6IHNlcCA6ICctJztcbiAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChzZXBGaW5hbCwgJ2cnKTtcbiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhBdmFpbGFibGVNZXRyaWNzWydTdHJpbmcnXSkuaW5jbHVkZXMoc3BhY2VQYXJhbXMuc2ltaWxhcml0eU1ldHJpYykpXG4gICAgICAgICAgICAgIHByZXBhcmVkRGF0YSA9IHNwYWNlUGFyYW1zLnNlcUNvbC50b0xpc3QoKS5tYXAoKHY6IHN0cmluZykgPT4gdi5yZXBsYWNlKHJlZ2V4LCAnJykpIGFzIHN0cmluZ1tdO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICBwcmVwYXJlZERhdGEgPSBzcGFjZVBhcmFtcy5zZXFDb2wudG9MaXN0KCkubWFwKCh2OiBzdHJpbmcpID0+IHYucmVwbGFjZShyZWdleCwgJycpKSBhcyBzdHJpbmdbXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJlcGFyZWREYXRhID0gc3BhY2VQYXJhbXMuc2VxQ29sLnRvTGlzdCgpO1xuICAgICAgICAgIH0gICovXG4gICAgICAgIGNvbnN0IHNlcXVlbmNlU3BhY2VSZXN1bHQgPSB5aWVsZCByZWR1Y2VEaW1lbnNpbmFsaXR5V2l0aE5vcm1hbGl6YXRpb24oc3BhY2VQYXJhbXMuc2VxQ29sLnRvTGlzdCgpLCBzcGFjZVBhcmFtcy5tZXRob2ROYW1lLCBzcGFjZVBhcmFtcy5zaW1pbGFyaXR5TWV0cmljLCBzcGFjZVBhcmFtcy5vcHRpb25zKTtcbiAgICAgICAgY29uc3QgY29scyA9IHNwYWNlUGFyYW1zLmVtYmVkQXhlc05hbWVzLm1hcCgobmFtZSwgaW5kZXgpID0+IERHLkNvbHVtbi5mcm9tRmxvYXQzMkFycmF5KG5hbWUsIHNlcXVlbmNlU3BhY2VSZXN1bHQuZW1iZWRkaW5nW2luZGV4XSkpO1xuICAgICAgICByZXR1cm4geyBkaXN0YW5jZTogc2VxdWVuY2VTcGFjZVJlc3VsdC5kaXN0YW5jZSwgY29vcmRpbmF0ZXM6IG5ldyBERy5Db2x1bW5MaXN0KGNvbHMpIH07XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RW1iZWRkaW5nQ29sc05hbWVzKGRmKSB7XG4gICAgY29uc3QgYXhlcyA9IFsnRW1iZWRfWCcsICdFbWJlZF9ZJ107XG4gICAgY29uc3QgY29sTmFtZUluZCA9IGRmLmNvbHVtbnMubmFtZXMoKS5maWx0ZXIoKGl0KSA9PiBpdC5pbmNsdWRlcyhheGVzWzBdKSkubGVuZ3RoICsgMTtcbiAgICByZXR1cm4gYXhlcy5tYXAoKGl0KSA9PiBgJHtpdH1fJHtjb2xOYW1lSW5kfWApO1xufVxuIiwiaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7IFdlYkxvZ28gfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdmlld2Vycy93ZWItbG9nbyc7XG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCB7IENBUF9HUk9VUF9OQU1FLCBDQVBfR1JPVVBfU01JTEVTLCBqc29uU2RmTW9ub21lckxpYkRpY3QsIE1PTk9NRVJfRU5DT0RFX01BWCwgTU9OT01FUl9FTkNPREVfTUlOLCBNT05PTUVSX1NZTUJPTCwgUkdST1VQX0FMVEVSX0lELCBSR1JPVVBfRklFTEQsIFJHUk9VUF9MQUJFTCwgU0RGX01PTk9NRVJfTkFNRSB9IGZyb20gJy4uL2NvbnN0JztcbmltcG9ydCB7IFVuaXRzSGFuZGxlciB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy91bml0cy1oYW5kbGVyJztcbmV4cG9ydCBjb25zdCBIRUxNX0NPUkVfTElCX0ZJTEVOQU1FID0gJy9zYW1wbGVzL0hFTE1Db3JlTGlicmFyeS5qc29uJztcbmV4cG9ydCBjb25zdCBIRUxNX0NPUkVfTElCX01PTk9NRVJfU1lNQk9MID0gJ3N5bWJvbCc7XG5leHBvcnQgY29uc3QgSEVMTV9DT1JFX0xJQl9NT0xGSUxFID0gJ21vbGZpbGUnO1xuZXhwb3J0IGNvbnN0IEhFTE1fQ09SRV9GSUVMRFMgPSBbJ3N5bWJvbCcsICdtb2xmaWxlJywgJ3Jncm91cHMnLCAnbmFtZSddO1xuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZU1vbm9tZXJzKGNvbCkge1xuICAgIGxldCBlbmNvZGVTeW1ib2wgPSBNT05PTUVSX0VOQ09ERV9NSU47XG4gICAgY29uc3QgbW9ub21lclN5bWJvbERpY3QgPSB7fTtcbiAgICBjb25zdCB1bml0cyA9IGNvbC50YWdzW0RHLlRBR1MuVU5JVFNdO1xuICAgIGNvbnN0IHNlcCA9IGNvbC5nZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1Muc2VwYXJhdG9yKTtcbiAgICBjb25zdCBzcGxpdHRlckZ1bmMgPSBXZWJMb2dvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXApO1xuICAgIGNvbnN0IGVuY29kZWRTdHJpbmdBcnJheSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGxldCBlbmNvZGVkTW9ub21lclN0ciA9ICcnO1xuICAgICAgICBjb25zdCBtb25vbWVycyA9IHNwbGl0dGVyRnVuYyhjb2wuZ2V0KGkpKTtcbiAgICAgICAgbW9ub21lcnMuZm9yRWFjaCgobSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFtb25vbWVyU3ltYm9sRGljdFttXSkge1xuICAgICAgICAgICAgICAgIGlmIChlbmNvZGVTeW1ib2wgPiBNT05PTUVSX0VOQ09ERV9NQVgpIHtcbiAgICAgICAgICAgICAgICAgICAgZ3Jvay5zaGVsbC5lcnJvcihgTm90IGVub3VnaCBzeW1ib2xzIHRvIGVuY29kZSBtb25vbWVyc2ApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbW9ub21lclN5bWJvbERpY3RbbV0gPSBlbmNvZGVTeW1ib2w7XG4gICAgICAgICAgICAgICAgZW5jb2RlU3ltYm9sKys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbmNvZGVkTW9ub21lclN0ciArPSBTdHJpbmcuZnJvbUNvZGVQb2ludChtb25vbWVyU3ltYm9sRGljdFttXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBlbmNvZGVkU3RyaW5nQXJyYXkucHVzaChlbmNvZGVkTW9ub21lclN0cik7XG4gICAgfVxuICAgIHJldHVybiBERy5Db2x1bW4uZnJvbVN0cmluZ3MoJ2VuY29kZWRNb2xlY3VsZXMnLCBlbmNvZGVkU3RyaW5nQXJyYXkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vbGZpbGVzRnJvbVNlcShjb2wsIG1vbm9tZXJzTGliT2JqZWN0KSB7XG4gICAgY29uc3QgdW5pdHMgPSBjb2wudGFnc1tERy5UQUdTLlVOSVRTXTtcbiAgICBjb25zdCBzZXAgPSBjb2wuZ2V0VGFnKCdzZXBhcmF0b3InKTtcbiAgICBjb25zdCBzcGxpdHRlckZ1bmMgPSBXZWJMb2dvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXApO1xuICAgIGNvbnN0IG1vbm9tZXJzRGljdCA9IGNyZWF0ZU1vbW9tZXJzTW9sRGljdChtb25vbWVyc0xpYk9iamVjdCk7XG4gICAgY29uc3QgbW9sRmlsZXMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbC5sZW5ndGg7ICsraSkge1xuICAgICAgICBjb25zdCBtYWNyb01vbGVjdWxlID0gY29sLmdldChpKTtcbiAgICAgICAgY29uc3QgbW9ub21lcnMgPSBzcGxpdHRlckZ1bmMobWFjcm9Nb2xlY3VsZSk7XG4gICAgICAgIGNvbnN0IG1vbEZpbGVzRm9yU2VxID0gW107XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbW9ub21lcnMubGVuZ3RoOyArK2opIHtcbiAgICAgICAgICAgIGlmIChtb25vbWVyc1tqXSkge1xuICAgICAgICAgICAgICAgIGlmICghbW9ub21lcnNEaWN0W21vbm9tZXJzW2pdXSkge1xuICAgICAgICAgICAgICAgICAgICBncm9rLnNoZWxsLndhcm5pbmcoYE1vbm9tZXIgJHttb25vbWVyc1tqXX0gaXMgbWlzc2luZyBpbiBIRUxNIGxpYnJhcnkuIFN0cnVjdHVyZSBjYW5ub3QgYmUgY3JlYXRlZGApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbW9sRmlsZXNGb3JTZXEucHVzaChKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG1vbm9tZXJzRGljdFttb25vbWVyc1tqXV0pKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbW9sRmlsZXMucHVzaChtb2xGaWxlc0ZvclNlcSk7XG4gICAgfVxuICAgIHJldHVybiBtb2xGaWxlcztcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb2xmaWxlc0Zyb21TaW5nbGVTZXEoY2VsbCwgbW9ub21lcnNMaWJPYmplY3QpIHtcbiAgICBjb25zdCB1bml0cyA9IGNlbGwuY29sdW1uLnRhZ3NbREcuVEFHUy5VTklUU107XG4gICAgY29uc3Qgc2VwID0gY2VsbC5jb2x1bW4uZ2V0VGFnKCdzZXBhcmF0b3InKTtcbiAgICBjb25zdCBzcGxpdHRlckZ1bmMgPSBXZWJMb2dvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXApO1xuICAgIGNvbnN0IG1vbm9tZXJzRGljdCA9IGNyZWF0ZU1vbW9tZXJzTW9sRGljdChtb25vbWVyc0xpYk9iamVjdCk7XG4gICAgY29uc3QgbW9sRmlsZXMgPSBbXTtcbiAgICBjb25zdCBtYWNyb01vbGVjdWxlID0gY2VsbC52YWx1ZTtcbiAgICBjb25zdCBtb25vbWVycyA9IHNwbGl0dGVyRnVuYyhtYWNyb01vbGVjdWxlKTtcbiAgICBjb25zdCBtb2xGaWxlc0ZvclNlcSA9IFtdO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgbW9ub21lcnMubGVuZ3RoOyArK2opIHtcbiAgICAgICAgaWYgKG1vbm9tZXJzW2pdKSB7XG4gICAgICAgICAgICBpZiAoIW1vbm9tZXJzRGljdFttb25vbWVyc1tqXV0pIHtcbiAgICAgICAgICAgICAgICBncm9rLnNoZWxsLndhcm5pbmcoYE1vbm9tZXIgJHttb25vbWVyc1tqXX0gaXMgbWlzc2luZyBpbiBIRUxNIGxpYnJhcnkuIFN0cnVjdHVyZSBjYW5ub3QgYmUgY3JlYXRlZGApO1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbW9sRmlsZXNGb3JTZXEucHVzaChKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG1vbm9tZXJzRGljdFttb25vbWVyc1tqXV0pKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbW9sRmlsZXMucHVzaChtb2xGaWxlc0ZvclNlcSk7XG4gICAgcmV0dXJuIG1vbEZpbGVzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1vbW9tZXJzTW9sRGljdChsaWIpIHtcbiAgICBjb25zdCBkaWN0ID0ge307XG4gICAgbGliLmZvckVhY2goKGl0KSA9PiB7XG4gICAgICAgIGlmIChpdFsncG9seW1lclR5cGUnXSA9PT0gJ1BFUFRJREUnKSB7XG4gICAgICAgICAgICBjb25zdCBtb25vbWVyT2JqZWN0ID0ge307XG4gICAgICAgICAgICBIRUxNX0NPUkVfRklFTERTLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgbW9ub21lck9iamVjdFtmaWVsZF0gPSBpdFtmaWVsZF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGRpY3RbaXRbSEVMTV9DT1JFX0xJQl9NT05PTUVSX1NZTUJPTF1dID0gbW9ub21lck9iamVjdDtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBkaWN0O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUpzb25Nb25vbWVyTGliRnJvbVNkZih0YWJsZSkge1xuICAgIGNvbnN0IHJlc3VsdExpYiA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFibGUucm93Q291bnQ7IGkrKykge1xuICAgICAgICBjb25zdCBtb25vbWVyID0ge307XG4gICAgICAgIE9iamVjdC5rZXlzKGpzb25TZGZNb25vbWVyTGliRGljdCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSBNT05PTUVSX1NZTUJPTCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vbm9tZXJTeW1ib2wgPSB0YWJsZS5nZXQoanNvblNkZk1vbm9tZXJMaWJEaWN0W2tleV0sIGkpO1xuICAgICAgICAgICAgICAgIG1vbm9tZXJba2V5XSA9IG1vbm9tZXJTeW1ib2wgPT09ICcuJyA/IHRhYmxlLmdldChTREZfTU9OT01FUl9OQU1FLCBpKSA6IG1vbm9tZXJTeW1ib2w7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChrZXkgPT09IFJHUk9VUF9GSUVMRCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJncm91cHMgPSB0YWJsZS5nZXQoanNvblNkZk1vbm9tZXJMaWJEaWN0W2tleV0sIGkpLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgICAgICBjb25zdCBqc29uUmdyb3VwcyA9IFtdO1xuICAgICAgICAgICAgICAgIHJncm91cHMuZm9yRWFjaCgoZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZ3JvdXAgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWx0QXRvbSA9IGcuc3Vic3RyaW5nKGcubGFzdEluZGV4T2YoJ10nKSArIDEpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByYWRpY2FsTnVtID0gZy5tYXRjaCgvXFxbUihcXGQrKVxcXS8pWzFdO1xuICAgICAgICAgICAgICAgICAgICByZ3JvdXBbQ0FQX0dST1VQX1NNSUxFU10gPSBhbHRBdG9tID09PSAnSCcgPyBgWyo6JHtyYWRpY2FsTnVtfV1bSF1gIDogYE9bKjoke3JhZGljYWxOdW19XWA7XG4gICAgICAgICAgICAgICAgICAgIHJncm91cFtSR1JPVVBfQUxURVJfSURdID0gYWx0QXRvbSA9PT0gJ0gnID8gYFIke3JhZGljYWxOdW19LUhgIDogYFIke3JhZGljYWxOdW19LU9IYDtcbiAgICAgICAgICAgICAgICAgICAgcmdyb3VwW0NBUF9HUk9VUF9OQU1FXSA9IGFsdEF0b20gPT09ICdIJyA/IGBIYCA6IGBPSGA7XG4gICAgICAgICAgICAgICAgICAgIHJncm91cFtSR1JPVVBfTEFCRUxdID0gYFIke3JhZGljYWxOdW19YDtcbiAgICAgICAgICAgICAgICAgICAganNvblJncm91cHMucHVzaChyZ3JvdXApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG1vbm9tZXJba2V5XSA9IGpzb25SZ3JvdXBzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGpzb25TZGZNb25vbWVyTGliRGljdFtrZXldKVxuICAgICAgICAgICAgICAgICAgICBtb25vbWVyW2tleV0gPSB0YWJsZS5nZXQoanNvblNkZk1vbm9tZXJMaWJEaWN0W2tleV0sIGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmVzdWx0TGliLnB1c2gobW9ub21lcik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRMaWI7XG59XG4iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgVmRSZWdpb25UeXBlIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3ZkLXJlZ2lvbnMnO1xuY29uc3QgdnJ0ID0gVmRSZWdpb25UeXBlO1xuLy8gUG9zaXRpb25zIG9mIHJlZ2lvbnMgZm9yIG51bWJlcmluZyBzY2hlbWVzXG4vLyBodHRwOi8vd3d3LmJpb2luZi5vcmcudWsvYWJzL2luZm8uaHRtbFxuLy8gY29uc3QgaW1ndFJlZ2lvbnM6IFZkUmVnaW9uW10gPSBbXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuRlIsICdGUjEnLCAnTGlnaHQnLCAxLCAnMScsICcyNicpLFxuLy8gICBuZXcgVmRSZWdpb24odnJ0LkZSLCAnRlIxJywgJ0hlYXZ5JywgMSwgJzEnLCAnMjYnKSxcbi8vXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuQ0RSLCAnQ0RSMScsICdMaWdodCcsIDIsICcyNycsICczOCcpLCAvLyAyNy0zMlxuLy8gICBuZXcgVmRSZWdpb24odnJ0LkNEUiwgJ0NEUjEnLCAnSGVhdnknLCAyLCAnMjcnLCAnMzgnKSwgLy8gMjctMzJcbi8vXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuRlIsICdGUjInLCAnTGlnaHQnLCAzLCAnMzknLCAnNTUnKSxcbi8vICAgbmV3IFZkUmVnaW9uKHZydC5GUiwgJ0ZSMicsICdIZWF2eScsIDMsICczOScsICc1NScpLFxuLy9cbi8vICAgbmV3IFZkUmVnaW9uKHZydC5DRFIsICdDRFIyJywgJ0xpZ2h0JywgNCwgJzU2JywgJzY1JyksXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuQ0RSLCAnQ0RSMicsICdIZWF2eScsIDQsICc1NicsICc2NScpLFxuLy9cbi8vICAgbmV3IFZkUmVnaW9uKHZydC5GUiwgJ0ZSMycsICdMaWdodCcsIDUsICc2NicsICcxMDQnKSxcbi8vICAgbmV3IFZkUmVnaW9uKHZydC5GUiwgJ0ZSMycsICdIZWF2eScsIDUsICc2NicsICcxMDQnKSxcbi8vXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuQ0RSLCAnQ0RSMycsICdMaWdodCcsIDYsICcxMDUnLCAnMTE3JyksXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuQ0RSLCAnQ0RSMycsICdIZWF2eScsIDYsICcxMDUnLCAnMTE3JyksXG4vL1xuLy8gICBuZXcgVmRSZWdpb24odnJ0LkZSLCAnRlI0JywgJ0xpZ2h0JywgNywgJzExOCcsIG51bGwvKjEyNyovKSxcbi8vICAgbmV3IFZkUmVnaW9uKHZydC5GUiwgJ0ZSNCcsICdIZWF2eScsIDcsICcxMTgnLCBudWxsLyoxMjgqLyksXG4vLyBdO1xuLyoqIFZpZXdlciB3aXRoIHRhYnMgYmFzZWQgb24gZGVzY3JpcHRpb24gb2YgY2hhaW4gcmVnaW9ucy5cbiAqICBVc2VkIHRvIGRlZmluZSByZWdpb25zIG9mIGFuIGltbXVub2dsb2J1bGluIExDLlxuICovXG5leHBvcnQgY2xhc3MgVmRSZWdpb25zVmlld2VyIGV4dGVuZHMgREcuSnNWaWV3ZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICAvLyBwcml2YXRlIHJlZ2lvbnNEZjogREcuRGF0YUZyYW1lO1xuICAgICAgICB0aGlzLnJlZ2lvbnNGZyA9IG51bGw7XG4gICAgICAgIC8vIHByaXZhdGUgcmVnaW9uc1RWOiBERy5UYWJsZVZpZXc7XG4gICAgICAgIHRoaXMucmVnaW9uc1Jvb3QgPSBudWxsO1xuICAgICAgICB0aGlzLmlzT3BlbmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMucGFuZWxOb2RlID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZWdpb25zID0gW107XG4gICAgICAgIC8vICNyZWdpb24gLS0gSGFuZGxlIGNvbnRyb2xzJyBldmVudHMgLS1cbiAgICAgICAgdGhpcy5yZXNpemluZyA9IGZhbHNlO1xuICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgIC8vI3JlZ2lvbiAtLSBWaWV3IC0tXG4gICAgICAgIHRoaXMuaG9zdCA9IG51bGw7XG4gICAgICAgIHRoaXMubWFpbkxheW91dCA9IG51bGw7XG4gICAgICAgIHRoaXMubG9nb3MgPSBbXTtcbiAgICAgICAgLy8gVG8gcHJldmVudCBhbWJpZ3VvdXMgbnVtYmVyaW5nIHNjaGVtZSBpbiBNTEJcbiAgICAgICAgdGhpcy5yZWdpb25UeXBlcyA9IHRoaXMuc3RyaW5nTGlzdCgncmVnaW9uVHlwZXMnLCBbdnJ0LkNEUl0sIHsgY2hvaWNlczogT2JqZWN0LnZhbHVlcyh2cnQpLmZpbHRlcigodCkgPT4gdCAhPSB2cnQuVW5rbm93bikgfSk7XG4gICAgICAgIHRoaXMuY2hhaW5zID0gdGhpcy5zdHJpbmdMaXN0KCdjaGFpbnMnLCBbJ0hlYXZ5JywgJ0xpZ2h0J10sIHsgY2hvaWNlczogWydIZWF2eScsICdMaWdodCddIH0pO1xuICAgICAgICB0aGlzLnNlcXVlbmNlQ29sdW1uTmFtZVBvc3RmaXggPSB0aGlzLnN0cmluZygnc2VxdWVuY2VDb2x1bW5OYW1lUG9zdGZpeCcsICdjaGFpbiBzZXF1ZW5jZScpO1xuICAgICAgICB0aGlzLnNraXBFbXB0eVBvc2l0aW9ucyA9IHRoaXMuYm9vbCgnc2tpcEVtcHR5UG9zaXRpb25zJywgZmFsc2UpO1xuICAgICAgICB0aGlzLnBvc2l0aW9uV2lkdGggPSB0aGlzLmZsb2F0KCdwb3NpdGlvbldpZHRoJywgMTYpO1xuICAgIH1cbiAgICBnZXQgZGYoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFGcmFtZTtcbiAgICB9XG4gICAgLy8gVE9ETzogLm9uVGFibGVBdHRhY2hlZCBpcyBub3QgY2FsbGluZyBvbiBkYXRhRnJhbWUgc2V0LCBvblByb3BlcnR5Q2hhbmdlZCAgYWxzbyBub3QgY2FsbGluZ1xuICAgIHNldERmKHZhbHVlLCByZWdpb25zKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKCdWZFJlZ2lvbnNWaWV3ZXIuc2V0RGYoKScpO1xuICAgICAgICAgICAgeWllbGQgdGhpcy5kZXN0cm95VmlldygpO1xuICAgICAgICAgICAgdGhpcy5yZWdpb25zID0gcmVnaW9ucztcbiAgICAgICAgICAgIHRoaXMuZGF0YUZyYW1lID0gdmFsdWU7XG4gICAgICAgICAgICB5aWVsZCB0aGlzLmJ1aWxkVmlldygpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgaW5pdCgpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIC8vI3JlZ2lvbiByZWdpb25zREYgd2l0aCBmaWx0ZXJcbiAgICAgICAgICAgIC8vIHRoaXMucmVnaW9uc0RmID0gREcuRGF0YUZyYW1lLmZyb21PYmplY3RzKHRoaXMucmVnaW9ucyk7XG4gICAgICAgICAgICAvLyB0aGlzLnJlZ2lvbnNEZi5yb3dzLmZpbHRlcigocm93KSA9PiByb3cubmFtZSA9PSAnQ0RSMScpO1xuICAgICAgICAgICAgLy8gLy8gVG8gYXZhaWxhYmxlIG9wdGlvbnMgL1xuICAgICAgICAgICAgLy8gdGhpcy5yZWdpb25zRmcgPSAoYXdhaXQgdGhpcy5yZWdpb25zRGYucGxvdC5mcm9tVHlwZShERy5WSUVXRVIuRklMVEVSUywge1xuICAgICAgICAgICAgLy8gICAvLyBjb2x1bW5OYW1lczogWyduYW1lJyxdLFxuICAgICAgICAgICAgLy8gICBzaG93RmlsdGVyQ291bnRzSW5kaWNhdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAvLyAgIHNob3dIZWFkZXI6IGZhbHNlLFxuICAgICAgICAgICAgLy8gICBzaG93U2VhcmNoQm94OiBmYWxzZSxcbiAgICAgICAgICAgIC8vICAgZmlsdGVyczogW1xuICAgICAgICAgICAgLy8gICAgIHt0eXBlOiBERy5GSUxURVJfVFlQRS5DQVRFR09SSUNBTCwgY29sdW1uOiAndHlwZScsIGxhYmVsOiAnUmVnaW9uIG5hbWUnLCBzaG93SGlzdG9ncmFtOiBmYWxzZX0sXG4gICAgICAgICAgICAvLyAgICAge3R5cGU6IERHLkZJTFRFUl9UWVBFLkNBVEVHT1JJQ0FMLCBjb2x1bW46ICduYW1lJywgbGFiZWw6ICdSZWdpb24gdHlwZScsIHNob3dIaXN0b2dyYW06IGZhbHNlfSxcbiAgICAgICAgICAgIC8vICAgXSxcbiAgICAgICAgICAgIC8vICAgdGl0bGU6ICdSZWdpb25zIGZpbHRlcicsXG4gICAgICAgICAgICAvLyAgIHNob3dUaXRsZTogdHJ1ZSxcbiAgICAgICAgICAgIC8vICAgZGVzY3JpcHRpb246ICdGaWx0ZXIgZm9yIHJlZ2lvbnMgb2YgbXVsdGlwbGUgYWxpZ25tZW50IGJ5IElNR1Qgbm9tZW5jbGF0dXJlJyxcbiAgICAgICAgICAgIC8vICAgc29tZVByb3BlcnR5OiAnSGVsbG8nLFxuICAgICAgICAgICAgLy8gfSkpIGFzIERHLkZpbHRlckdyb3VwO1xuICAgICAgICAgICAgLy8jZW5kcmVnaW9uIHJlZ2lvbnNERiB3aXRoIGZpbHRlclxuICAgICAgICAgICAgLy8gdGhpcy5tbGJWaWV3LmRvY2tNYW5hZ2VyLmRvY2sodGhpcy5yZWdpb25zRmcucm9vdCwgREcuRE9DS19UWVBFLkxFRlQsIHJvb3ROb2RlLCAnRmlsdGVyIHJlZ2lvbnMnLCAwLjIpO1xuICAgICAgICAgICAgdGhpcy5zdWJzLnB1c2godWkub25TaXplQ2hhbmdlZCh0aGlzLnJvb3QpLnN1YnNjcmliZSh0aGlzLnJvb3RPblNpemVDaGFuZ2VkLmJpbmQodGhpcykpKTtcbiAgICAgICAgICAgIC8vIHJ4anMuZnJvbUV2ZW50KHRoaXMucm9vdCwgJ21vdXNlbW92ZScpLnN1YnNjcmliZSh0aGlzLm9uTW91c2VNb3ZlUm9vdC5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgIHRoaXMucm9vdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm9uTW91c2VNb3ZlUm9vdC5iaW5kKHRoaXMpKTtcbiAgICAgICAgICAgIHlpZWxkIHRoaXMuYnVpbGRWaWV3KCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBvblRhYmxlQXR0YWNoZWQoKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICB5aWVsZCB0aGlzLmluaXQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG9uUHJvcGVydHlDaGFuZ2VkKHByb3BlcnR5KSB7XG4gICAgICAgIGNvbnN0IF9zdXBlciA9IE9iamVjdC5jcmVhdGUobnVsbCwge1xuICAgICAgICAgICAgb25Qcm9wZXJ0eUNoYW5nZWQ6IHsgZ2V0OiAoKSA9PiBzdXBlci5vblByb3BlcnR5Q2hhbmdlZCB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgX3N1cGVyLm9uUHJvcGVydHlDaGFuZ2VkLmNhbGwodGhpcywgcHJvcGVydHkpO1xuICAgICAgICAgICAgaWYgKHByb3BlcnR5KSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChwcm9wZXJ0eS5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3JlZ2lvblR5cGVzJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdjaGFpbnMnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NlcXVlbmNlQ29sdW1uTmFtZVBvc3RmaXgnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NraXBFbXB0eVBvc2l0aW9ucyc6XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmb3IgKGxldCBvcmRlckkgPSAwOyBvcmRlckkgPCB0aGlzLmxvZ29zLmxlbmd0aDsgb3JkZXJJKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgZm9yIChsZXQgY2hhaW5JID0gMDsgY2hhaW5JIDwgdGhpcy5jaGFpbnMubGVuZ3RoOyBjaGFpbkkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGNvbnN0IGNoYWluOiBzdHJpbmcgPSB0aGlzLmNoYWluc1tjaGFpbkldO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIHRoaXMubG9nb3Nbb3JkZXJJXVtjaGFpbl0uc2V0T3B0aW9ucyh7c2tpcEVtcHR5UG9zaXRpb25zOiB0aGlzLnNraXBFbXB0eVBvc2l0aW9uc30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLmNhbGNTaXplKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGlzLmRlc3Ryb3lWaWV3KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGlzLmJ1aWxkVmlldygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3Bvc2l0aW9uV2lkdGgnOlxuICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhpcy5kZXN0cm95VmlldygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhpcy5idWlsZFZpZXcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJlc2V0KCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgb3BlbihtbGJWaWV3KSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNPcGVuZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzT3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVsTm9kZSA9IG1sYlZpZXcuZG9ja01hbmFnZXIuZG9jayh0aGlzLnJvb3QsIERHLkRPQ0tfVFlQRS5UT1AsIG51bGwsICdSZWdpb25zJywgMC4yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHNob3cobWxiVmlldykge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcm9vdE9uU2l6ZUNoYW5nZWQoYXJncykge1xuICAgICAgICB0aGlzLmNhbGNTaXplKCk7XG4gICAgfVxuICAgIGRlc3Ryb3lWaWV3KCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgLy8gVE9ETzogVW5zdWJzY3JpYmUgZnJvbSBhbmQgcmVtb3ZlIGFsbCB2aWV3IGVsZW1lbnRzXG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBWZFJlZ2lvbnNWaWV3ZXIuZGVzdHJveVZpZXcoIG1haW5MYXlvdXQgPSAkeyF0aGlzLm1haW5MYXlvdXQgPyAnbm9uZScgOiAndmFsdWUnfSApYCk7XG4gICAgICAgICAgICBpZiAodGhpcy5tYWluTGF5b3V0ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnJvb3QucmVtb3ZlQ2hpbGQodGhpcy5ob3N0KTtcbiAgICAgICAgICAgICAgICB0aGlzLm1haW5MYXlvdXQucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0LnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuaG9zdCA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5tYWluTGF5b3V0ID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGJ1aWxkVmlldygpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1ZkUmVnaW9uc1ZpZXdlci5idWlsZFZpZXcoKSBzdGFydCcpO1xuICAgICAgICAgICAgY29uc3QgY29sTmFtZXMgPSBPYmplY3QuYXNzaWduKHt9LCAuLi50aGlzLmNoYWlucy5tYXAoKGNoYWluKSA9PiAoeyBbY2hhaW5dOiBgJHtjaGFpbn0gJHt0aGlzLnNlcXVlbmNlQ29sdW1uTmFtZVBvc3RmaXh9YCB9KSkpO1xuICAgICAgICAgICAgY29uc3QgcmVnaW9uc0ZpbHRlcmVkID0gdGhpcy5yZWdpb25zLmZpbHRlcigocikgPT4gdGhpcy5yZWdpb25UeXBlcy5pbmNsdWRlcyhyLnR5cGUpKTtcbiAgICAgICAgICAgIGNvbnN0IG9yZGVyTGlzdCA9IEFycmF5LmZyb20obmV3IFNldChyZWdpb25zRmlsdGVyZWQubWFwKChyKSA9PiByLm9yZGVyKSkpLnNvcnQoKTtcbiAgICAgICAgICAgIHRoaXMubG9nb3MgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IG9yZGVySSA9IDA7IG9yZGVySSA8IG9yZGVyTGlzdC5sZW5ndGg7IG9yZGVySSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVnaW9uQ2hhaW5zID0ge307XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGFpbiBvZiB0aGlzLmNoYWlucykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWdpb24gPSByZWdpb25zRmlsdGVyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKChyKSA9PiByLm9yZGVyID09IG9yZGVyTGlzdFtvcmRlckldICYmIHIuY2hhaW4gPT0gY2hhaW4pO1xuICAgICAgICAgICAgICAgICAgICByZWdpb25DaGFpbnNbY2hhaW5dID0gKHlpZWxkIHRoaXMuZGF0YUZyYW1lLnBsb3QuZnJvbVR5cGUoJ1dlYkxvZ28nLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXF1ZW5jZUNvbHVtbk5hbWU6IGNvbE5hbWVzW2NoYWluXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0UG9zaXRpb25OYW1lOiByZWdpb24ucG9zaXRpb25TdGFydE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRQb3NpdGlvbk5hbWU6IHJlZ2lvbi5wb3NpdGlvbkVuZE5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaXhXaWR0aDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNraXBFbXB0eVBvc2l0aW9uczogdGhpcy5za2lwRW1wdHlQb3NpdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbldpZHRoOiB0aGlzLnBvc2l0aW9uV2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gV2ViTG9nbyBjcmVhdGlvbiBmaXJlcyBvblJvb3RTaXplQ2hhbmdlZCBldmVudCBldmVuIGJlZm9yZSBjb250cm9sIGJlaW5nIGFkZGVkIHRvIHRoaXMubG9nb3NcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ29zW29yZGVySV0gPSByZWdpb25DaGFpbnM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB1aS50YWJsZUZyb21NYXAoKVxuICAgICAgICAgICAgLy8gREcuSHRtbFRhYmxlLmNyZWF0ZSgpXG4gICAgICAgICAgICB0aGlzLm1haW5MYXlvdXQgPSB1aS50YWJsZSh0aGlzLmNoYWlucywgKGNoYWluKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudHMgPSBbXG4gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgY2hhaW4gbGFiZWxcbiAgICAgICAgICAgICAgICAgICAgLi4uKG9yZGVyTGlzdC5sZW5ndGggPiAwID8gW3VpLmRpdihjaGFpbiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3JvdGF0ZSgtOTBkZWcpJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udDogJzEycHggUm9ib3RvLCBSb2JvdG8gTG9jYWwsIHNhbnMtc2VyaWYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzE2cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6ICcyNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogJzZweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSldIDogW10pLFxuICAgICAgICAgICAgICAgICAgICAvLyBMaXN0IHdpdGggY29udHJvbHMgZm9yIHJlZ2lvbnNcbiAgICAgICAgICAgICAgICAgICAgLi4uWy4uLkFycmF5KG9yZGVyTGlzdC5sZW5ndGgpLmtleXMoKV0ubWFwKChvcmRlckkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdsID0gdGhpcy5sb2dvc1tvcmRlckldW2NoYWluXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdsLnJvb3Quc3R5bGUuaGVpZ2h0ID0gJzEwMCUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzRGl2ID0gdWkuZGl2KFt3bC5yb290XSAvKmAke2NoYWlufSAke3JlZ2lvbnNGaWx0ZXJlZFtySV19YCovLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbkJvdHRvbTogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzRGl2O1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzO1xuICAgICAgICAgICAgfSwgWycnLCAuLi5bLi4uQXJyYXkob3JkZXJMaXN0Lmxlbmd0aCkua2V5cygpXS5tYXAoKG9yZGVySSkgPT4gcmVnaW9uc0ZpbHRlcmVkLmZpbmQoKHIpID0+IHIub3JkZXIgPT0gb3JkZXJMaXN0W29yZGVySV0gJiYgci5jaGFpbiA9PSB0aGlzLmNoYWluc1swXSkubmFtZSB8fCAnTmFtZScpXSk7XG4gICAgICAgICAgICB0aGlzLm1haW5MYXlvdXQuY2xhc3NOYW1lID0gJ21sYi12ZC1yZWdpb25zLXZpZXdlci10YWJsZTInO1xuICAgICAgICAgICAgLy8gdGhpcy5tYWluTGF5b3V0LnN0eWxlLmJhY2tncm91bmQgPSAnI0VFRUVGRic7XG4gICAgICAgICAgICAvLyB0aGlzLm1haW5MYXlvdXQuc3R5bGUuaGVpZ2h0ID0gJzEwMCUnO1xuICAgICAgICAgICAgLy8gdGhpcy5tYWluTGF5b3V0LnN0eWxlLmJvcmRlciA9ICcxcHggc29saWQgYmxhY2snO1xuICAgICAgICAgICAgY29uc3QgY29sb3IgPSBgI2ZmYmIke01hdGguY2VpbChNYXRoLnJhbmRvbSgpICogMjU1KS50b1N0cmluZygxNil9YDtcbiAgICAgICAgICAgIHRoaXMuaG9zdCA9IHVpLmJveCh0aGlzLm1haW5MYXlvdXQsIHsgLypzdHlsZToge2JhY2tncm91bmRDb2xvcjogY29sb3J9Ki99KTtcbiAgICAgICAgICAgIHRoaXMucm9vdC5hcHBlbmRDaGlsZCh0aGlzLmhvc3QpO1xuICAgICAgICAgICAgdGhpcy5yb290LnN0eWxlLm92ZXJmbG93WCA9ICdhdXRvJztcbiAgICAgICAgICAgIHRoaXMuY2FsY1NpemUoKTtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1ZkUmVnaW9uc1ZpZXdlci5idWlsZFZpZXcoKSBlbmQnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNhbGNTaXplKCkge1xuICAgICAgICBjb25zdCBsb2dvSGVpZ2h0ID0gKHRoaXMucm9vdC5jbGllbnRIZWlnaHQgLSA1NCkgLyB0aGlzLmNoYWlucy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IG1heEhlaWdodCA9IE1hdGgubWluKGxvZ29IZWlnaHQsIE1hdGgubWF4KC4uLnRoaXMubG9nb3MubWFwKCh3bERpY3QpID0+IE1hdGgubWF4KC4uLk9iamVjdC52YWx1ZXMod2xEaWN0KS5tYXAoKHdsKSA9PiB3bC5tYXhIZWlnaHQpKSkpKTtcbiAgICAgICAgZm9yIChsZXQgb3JkZXJJID0gMDsgb3JkZXJJIDwgdGhpcy5sb2dvcy5sZW5ndGg7IG9yZGVySSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBjaGFpbkkgPSAwOyBjaGFpbkkgPCB0aGlzLmNoYWlucy5sZW5ndGg7IGNoYWluSSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hhaW4gPSB0aGlzLmNoYWluc1tjaGFpbkldO1xuICAgICAgICAgICAgICAgIHRoaXMubG9nb3Nbb3JkZXJJXVtjaGFpbl0ucm9vdC5zdHlsZS5oZWlnaHQgPSBgJHttYXhIZWlnaHR9cHhgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vI2VuZHJlZ2lvbiAtLSBWaWV3IC0tXG4gICAgb25Nb3VzZU1vdmVSb290KGUpIHtcbiAgICAgICAgLy8gdWkudG9vbHRpcC5zaG93KCd0ZXh0JywgZS54ICsgOCwgZS55ICsgOCwpO1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhgb25Nb3VzZU1vdmVSb290LiggeDogJHtlLnh9LCB5OiAke2UueX0gKWApO1xuICAgIH1cbn1cbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7IGdldE1vbGZpbGVzRnJvbVNpbmdsZVNlcSB9IGZyb20gJy4uL3V0aWxzL3V0aWxzJztcbmltcG9ydCB7IGdldE1hY3JvTW9sIH0gZnJvbSAnLi4vdXRpbHMvYXRvbWljLXdvcmtzJztcbi8qKlxuICogM0QgcmVwcmVzZW50YXRpb24gd2lkZ2V0IG9mIG1hY3JvbW9sZWN1bGUuXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtERy5DZWxsfSBtYWNyb01vbGVjdWxlIG1hY3JvbW9sZWN1bGUgY2VsbC5cbiAqIEBwYXJhbSB7YW55W119IG1vbm9tZXJzTGliT2JqZWN0XG4gKiBAcmV0dXJuIHtQcm9taXNlPERHLldpZGdldD59IFdpZGdldC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcHJlc2VudGF0aW9uc1dpZGdldChtYWNyb01vbGVjdWxlLCBtb25vbWVyc0xpYk9iamVjdCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHBpID0gREcuVGFza0JhclByb2dyZXNzSW5kaWNhdG9yLmNyZWF0ZSgnQ3JlYXRpbmcgM0QgdmlldycpO1xuICAgICAgICBsZXQgd2lkZ2V0SG9zdDtcbiAgICAgICAgbGV0IG1vbEJsb2NrM0QgPSAnJztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXRvbWljQ29kZXMgPSBnZXRNb2xmaWxlc0Zyb21TaW5nbGVTZXEobWFjcm9Nb2xlY3VsZSwgbW9ub21lcnNMaWJPYmplY3QpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIGdldE1hY3JvTW9sKGF0b21pY0NvZGVzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtb2xCbG9jazJEID0gcmVzdWx0WzBdO1xuICAgICAgICAgICAgICAgIG1vbEJsb2NrM0QgPSAoeWllbGQgZ3Jvay5mdW5jdGlvbnMuY2FsbCgnQmlvOkVtYmVkJywgeyBtb2xCbG9jazJEIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBtb2xCbG9jazNEID0gbW9sQmxvY2szRC5yZXBsYWNlQWxsKCdcXFxcbicsICdcXG4nKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmdCbG9iID0gbmV3IEJsb2IoW21vbEJsb2NrM0RdLCB7IHR5cGU6ICd0ZXh0L3BsYWluJyB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBuZ2xIb3N0ID0gdWkuZGl2KFtdLCB7IGNsYXNzZXM6ICdkNC1uZ2wtdmlld2VyJywgaWQ6ICduZ2wtM2QtaG9zdCcgfSk7XG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhZ2UgPSBuZXcgTkdMLlN0YWdlKG5nbEhvc3QsIHsgYmFja2dyb3VuZENvbG9yOiAnd2hpdGUnIH0pO1xuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHN0YWdlLmxvYWRGaWxlKHN0cmluZ0Jsb2IsIHsgZXh0OiAnc2RmJyB9KS50aGVuKGZ1bmN0aW9uIChjb21wKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YWdlLnNldFNpemUoMzAwLCAzMDApO1xuICAgICAgICAgICAgICAgICAgICBjb21wLmFkZFJlcHJlc2VudGF0aW9uKCdiYWxsK3N0aWNrJyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbXAuYXV0b1ZpZXcoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBza2V0Y2ggPSBncm9rLmNoZW0uc3ZnTW9sKG1vbEJsb2NrM0QpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhbmVsID0gdWkuZGl2SChbc2tldGNoXSk7XG4gICAgICAgICAgICAgICAgd2lkZ2V0SG9zdCA9IHVpLmRpdihbcGFuZWwsIG5nbEhvc3RdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgd2lkZ2V0SG9zdCA9IHVpLmRpdlRleHQoJ0NvdWxkblxcJ3QgZ2V0IHBlcHRpZGUgc3RydWN0dXJlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHdpZGdldEhvc3QgPSB1aS5kaXZUZXh0KCdDb3VsZG5cXCd0IGdldCBwZXB0aWRlIHN0cnVjdHVyZScpO1xuICAgICAgICB9XG4gICAgICAgIHBpLmNsb3NlKCk7XG4gICAgICAgIHJldHVybiBuZXcgREcuV2lkZ2V0KHdpZGdldEhvc3QpO1xuICAgIH0pO1xufVxuIiwibW9kdWxlLmV4cG9ydHMgPSAkOyIsIm1vZHVsZS5leHBvcnRzID0gREc7IiwibW9kdWxlLmV4cG9ydHMgPSBncm9rOyIsIm1vZHVsZS5leHBvcnRzID0gcnhqczsiLCJtb2R1bGUuZXhwb3J0cyA9IHVpOyIsIm1vZHVsZS5leHBvcnRzID0gd3U7IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHQvLyBubyBtb2R1bGUuaWQgbmVlZGVkXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbi8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBfX3dlYnBhY2tfbW9kdWxlc19fO1xuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIi8vIFRoaXMgZnVuY3Rpb24gYWxsb3cgdG8gcmVmZXJlbmNlIGFzeW5jIGNodW5rc1xuX193ZWJwYWNrX3JlcXVpcmVfXy51ID0gKGNodW5rSWQpID0+IHtcblx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG5cdHJldHVybiBcIlwiICsgY2h1bmtJZCArIFwiLmpzXCI7XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18uZyA9IChmdW5jdGlvbigpIHtcblx0aWYgKHR5cGVvZiBnbG9iYWxUaGlzID09PSAnb2JqZWN0JykgcmV0dXJuIGdsb2JhbFRoaXM7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIHRoaXMgfHwgbmV3IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG5cdH0gY2F0Y2ggKGUpIHtcblx0XHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ29iamVjdCcpIHJldHVybiB3aW5kb3c7XG5cdH1cbn0pKCk7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsInZhciBzY3JpcHRVcmw7XG5pZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5nLmltcG9ydFNjcmlwdHMpIHNjcmlwdFVybCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5sb2NhdGlvbiArIFwiXCI7XG52YXIgZG9jdW1lbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmcuZG9jdW1lbnQ7XG5pZiAoIXNjcmlwdFVybCAmJiBkb2N1bWVudCkge1xuXHRpZiAoZG9jdW1lbnQuY3VycmVudFNjcmlwdClcblx0XHRzY3JpcHRVcmwgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0LnNyY1xuXHRpZiAoIXNjcmlwdFVybCkge1xuXHRcdHZhciBzY3JpcHRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzY3JpcHRcIik7XG5cdFx0aWYoc2NyaXB0cy5sZW5ndGgpIHNjcmlwdFVybCA9IHNjcmlwdHNbc2NyaXB0cy5sZW5ndGggLSAxXS5zcmNcblx0fVxufVxuLy8gV2hlbiBzdXBwb3J0aW5nIGJyb3dzZXJzIHdoZXJlIGFuIGF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgeW91IG11c3Qgc3BlY2lmeSBhbiBvdXRwdXQucHVibGljUGF0aCBtYW51YWxseSB2aWEgY29uZmlndXJhdGlvblxuLy8gb3IgcGFzcyBhbiBlbXB0eSBzdHJpbmcgKFwiXCIpIGFuZCBzZXQgdGhlIF9fd2VicGFja19wdWJsaWNfcGF0aF9fIHZhcmlhYmxlIGZyb20geW91ciBjb2RlIHRvIHVzZSB5b3VyIG93biBsb2dpYy5cbmlmICghc2NyaXB0VXJsKSB0aHJvdyBuZXcgRXJyb3IoXCJBdXRvbWF0aWMgcHVibGljUGF0aCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlclwiKTtcbnNjcmlwdFVybCA9IHNjcmlwdFVybC5yZXBsYWNlKC8jLiokLywgXCJcIikucmVwbGFjZSgvXFw/LiokLywgXCJcIikucmVwbGFjZSgvXFwvW15cXC9dKyQvLCBcIi9cIik7XG5fX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBzY3JpcHRVcmw7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5iID0gZG9jdW1lbnQuYmFzZVVSSSB8fCBzZWxmLmxvY2F0aW9uLmhyZWY7XG5cbi8vIG9iamVjdCB0byBzdG9yZSBsb2FkZWQgYW5kIGxvYWRpbmcgY2h1bmtzXG4vLyB1bmRlZmluZWQgPSBjaHVuayBub3QgbG9hZGVkLCBudWxsID0gY2h1bmsgcHJlbG9hZGVkL3ByZWZldGNoZWRcbi8vIFtyZXNvbHZlLCByZWplY3QsIFByb21pc2VdID0gY2h1bmsgbG9hZGluZywgMCA9IGNodW5rIGxvYWRlZFxudmFyIGluc3RhbGxlZENodW5rcyA9IHtcblx0XCJwYWNrYWdlXCI6IDBcbn07XG5cbi8vIG5vIGNodW5rIG9uIGRlbWFuZCBsb2FkaW5nXG5cbi8vIG5vIHByZWZldGNoaW5nXG5cbi8vIG5vIHByZWxvYWRlZFxuXG4vLyBubyBITVJcblxuLy8gbm8gSE1SIG1hbmlmZXN0XG5cbi8vIG5vIG9uIGNodW5rcyBsb2FkZWRcblxuLy8gbm8ganNvbnAgZnVuY3Rpb24iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbi8qIERvIG5vdCBjaGFuZ2UgdGhlc2UgaW1wb3J0IGxpbmVzIHRvIG1hdGNoIGV4dGVybmFsIG1vZHVsZXMgaW4gd2VicGFjayBjb25maWd1cmF0aW9uICovXG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuZXhwb3J0IGNvbnN0IF9wYWNrYWdlID0gbmV3IERHLlBhY2thZ2UoKTtcbmltcG9ydCB7IE1hY3JvbW9sZWN1bGVEaWZmZXJlbmNlQ2VsbFJlbmRlcmVyLCBNb25vbWVyQ2VsbFJlbmRlcmVyIH0gZnJvbSAnLi91dGlscy9jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7IFdlYkxvZ28gfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdmlld2Vycy93ZWItbG9nbyc7XG5pbXBvcnQgeyBWZFJlZ2lvbnNWaWV3ZXIgfSBmcm9tICcuL3ZpZXdlcnMvdmQtcmVnaW9ucy12aWV3ZXInO1xuaW1wb3J0IHsgcnVuS2FsaWduIH0gZnJvbSAnLi91dGlscy9tdWx0aXBsZS1zZXF1ZW5jZS1hbGlnbm1lbnQnO1xuaW1wb3J0IHsgU2VxdWVuY2VBbGlnbm1lbnQgfSBmcm9tICcuL3NlcV9hbGlnbic7XG5pbXBvcnQgeyBnZXRFbWJlZGRpbmdDb2xzTmFtZXMsIHNlcXVlbmNlU3BhY2UgfSBmcm9tICcuL3V0aWxzL3NlcXVlbmNlLXNwYWNlJztcbmltcG9ydCB7IGdldEFjdGl2aXR5Q2xpZmZzIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvdmlld2Vycy9hY3Rpdml0eS1jbGlmZnMnO1xuaW1wb3J0IHsgY3JlYXRlUHJvcFBhbmVsRWxlbWVudCwgY3JlYXRlVG9vbHRpcEVsZW1lbnQsIGdldFNpbWlsYXJpdGllc01hcml4IH0gZnJvbSAnLi91dGlscy9zZXF1ZW5jZS1hY3Rpdml0eS1jbGlmZnMnO1xuaW1wb3J0IHsgY3JlYXRlSnNvbk1vbm9tZXJMaWJGcm9tU2RmLCBlbmNvZGVNb25vbWVycywgZ2V0TW9sZmlsZXNGcm9tU2VxLCBIRUxNX0NPUkVfTElCX0ZJTEVOQU1FIH0gZnJvbSAnLi91dGlscy91dGlscyc7XG5pbXBvcnQgeyBnZXRNYWNyb01vbCB9IGZyb20gJy4vdXRpbHMvYXRvbWljLXdvcmtzJztcbmltcG9ydCB7IE1hY3JvbW9sZWN1bGVTZXF1ZW5jZUNlbGxSZW5kZXJlciB9IGZyb20gJy4vdXRpbHMvY2VsbC1yZW5kZXJlcic7XG5pbXBvcnQgeyBjb252ZXJ0IH0gZnJvbSAnLi91dGlscy9jb252ZXJ0JztcbmltcG9ydCB7IHJlcHJlc2VudGF0aW9uc1dpZGdldCB9IGZyb20gJy4vd2lkZ2V0cy9yZXByZXNlbnRhdGlvbnMnO1xuaW1wb3J0IHsgVW5pdHNIYW5kbGVyIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL3VuaXRzLWhhbmRsZXInO1xuaW1wb3J0IHsgRmFzdGFGaWxlSGFuZGxlciB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9mYXN0YS1oYW5kbGVyJztcbmltcG9ydCB7IHJlbW92ZUVtcHR5U3RyaW5nUm93cyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL2RhdGFmcmFtZS11dGlscyc7XG5pbXBvcnQgeyBzcGxpdEFsaWduZWRTZXF1ZW5jZXMgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvc3BsaXR0ZXInO1xuaW1wb3J0ICogYXMgQyBmcm9tICcuL3V0aWxzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRGaW5nZXJwcmludHMgfSBmcm9tICcuL2NhbGN1bGF0aW9ucy9maW5nZXJwcmludHMnO1xuLy90YWdzOiBpbml0XG5leHBvcnQgZnVuY3Rpb24gaW5pdEJpbygpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgIH0pO1xufVxuLy9uYW1lOiBmYXN0YVNlcXVlbmNlQ2VsbFJlbmRlcmVyXG4vL3RhZ3M6IGNlbGxSZW5kZXJlclxuLy9tZXRhLmNlbGxUeXBlOiBzZXF1ZW5jZVxuLy9tZXRhLmNvbHVtblRhZ3M6IHF1YWxpdHk9TWFjcm9tb2xlY3VsZSwgdW5pdHM9ZmFzdGFcbi8vb3V0cHV0OiBncmlkX2NlbGxfcmVuZGVyZXIgcmVzdWx0XG5leHBvcnQgZnVuY3Rpb24gZmFzdGFTZXF1ZW5jZUNlbGxSZW5kZXJlcigpIHtcbiAgICByZXR1cm4gbmV3IE1hY3JvbW9sZWN1bGVTZXF1ZW5jZUNlbGxSZW5kZXJlcigpO1xufVxuLy9uYW1lOiBzZXBhcmF0b3JTZXF1ZW5jZUNlbGxSZW5kZXJlclxuLy90YWdzOiBjZWxsUmVuZGVyZXJcbi8vbWV0YS5jZWxsVHlwZTogc2VxdWVuY2Vcbi8vbWV0YS5jb2x1bW5UYWdzOiBxdWFsaXR5PU1hY3JvbW9sZWN1bGUsIHVuaXRzPWZhc3RhXG4vL291dHB1dDogZ3JpZF9jZWxsX3JlbmRlcmVyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIHNlcGFyYXRvclNlcXVlbmNlQ2VsbFJlbmRlcmVyKCkge1xuICAgIHJldHVybiBuZXcgTWFjcm9tb2xlY3VsZVNlcXVlbmNlQ2VsbFJlbmRlcmVyKCk7XG59XG5mdW5jdGlvbiBjaGVja0lucHV0Q29sdW1uVWkoY29sLCBuYW1lLCBhbGxvd2VkTm90YXRpb25zID0gW10sIGFsbG93ZWRBbHBoYWJldHMgPSBbXSkge1xuICAgIGNvbnN0IFtyZXMsIG1zZ10gPSBjaGVja0lucHV0Q29sdW1uKGNvbCwgbmFtZSwgYWxsb3dlZE5vdGF0aW9ucywgYWxsb3dlZEFscGhhYmV0cyk7XG4gICAgaWYgKCFyZXMpXG4gICAgICAgIGdyb2suc2hlbGwud2FybmluZyhtc2cpO1xuICAgIHJldHVybiByZXM7XG59XG5leHBvcnQgZnVuY3Rpb24gY2hlY2tJbnB1dENvbHVtbihjb2wsIG5hbWUsIGFsbG93ZWROb3RhdGlvbnMgPSBbXSwgYWxsb3dlZEFscGhhYmV0cyA9IFtdKSB7XG4gICAgbGV0IHJlcyA9IHRydWU7XG4gICAgbGV0IG1zZyA9ICcnO1xuICAgIGNvbnN0IHVoID0gbmV3IFVuaXRzSGFuZGxlcihjb2wpO1xuICAgIGlmIChjb2wuc2VtVHlwZSAhPT0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFKSB7XG4gICAgICAgIGdyb2suc2hlbGwud2FybmluZyhuYW1lICsgJyBhbmFseXNpcyBpcyBhbGxvd2VkIGZvciBNYWNyb21vbGVjdWxlcyBzZW1hbnRpYyB0eXBlJyk7XG4gICAgICAgIHJlcyA9IGZhbHNlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3Qgbm90YXRpb24gPSB1aC5ub3RhdGlvbjtcbiAgICAgICAgaWYgKGFsbG93ZWROb3RhdGlvbnMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgIWFsbG93ZWROb3RhdGlvbnMuc29tZSgobikgPT4gbm90YXRpb24udG9VcHBlckNhc2UoKSA9PSAobi50b1VwcGVyQ2FzZSgpKSkpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vdGF0aW9uQWRkID0gYWxsb3dlZE5vdGF0aW9ucy5sZW5ndGggPT0gMCA/ICdhbnkgbm90YXRpb24nIDpcbiAgICAgICAgICAgICAgICAoYG5vdGF0aW9uJHthbGxvd2VkTm90YXRpb25zLmxlbmd0aCA+IDEgPyAncycgOiAnJ30gJHthbGxvd2VkTm90YXRpb25zLm1hcCgobikgPT4gYFwiJHtufVwiYCkuam9pbignLCAnKX0gYCk7XG4gICAgICAgICAgICBtc2cgPSBgJHtuYW1lfSArICcgYW5hbHlzaXMgaXMgYWxsb3dlZCBmb3IgTWFjcm9tb2xlY3VsZXMgd2l0aCBub3RhdGlvbiAke25vdGF0aW9uQWRkfS5gO1xuICAgICAgICAgICAgcmVzID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXVoLmlzSGVsbSgpKSB7XG4gICAgICAgICAgICAvLyBhbHBoYWJldCBpcyBub3Qgc3BlY2lmaWVkIGZvciAnaGVsbScgbm90YXRpb25cbiAgICAgICAgICAgIGNvbnN0IGFscGhhYmV0ID0gdWguYWxwaGFiZXQ7XG4gICAgICAgICAgICBpZiAoYWxsb3dlZEFscGhhYmV0cy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAgICAgIWFsbG93ZWRBbHBoYWJldHMuc29tZSgoYSkgPT4gYWxwaGFiZXQudG9VcHBlckNhc2UoKSA9PSAoYS50b1VwcGVyQ2FzZSgpKSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhbHBoYWJldEFkZCA9IGFsbG93ZWRBbHBoYWJldHMubGVuZ3RoID09IDAgPyAnYW55IGFscGhhYmV0JyA6XG4gICAgICAgICAgICAgICAgICAgIChgYWxwaGFiZXQke2FsbG93ZWRBbHBoYWJldHMubGVuZ3RoID4gMSA/ICdzJyA6ICcnfSAke2FsbG93ZWRBbHBoYWJldHMubWFwKChhKSA9PiBgXCIke2F9XCJgKS5qb2luKCcsICcpfS5gKTtcbiAgICAgICAgICAgICAgICBtc2cgPSBgJHtuYW1lfSArICcgYW5hbHlzaXMgaXMgYWxsb3dlZCBmb3IgTWFjcm9tb2xlY3VsZXMgd2l0aCBhbHBoYWJldCAke2FscGhhYmV0QWRkfS5gO1xuICAgICAgICAgICAgICAgIHJlcyA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbcmVzLCBtc2ddO1xufVxuLy9uYW1lOiBzZXF1ZW5jZUFsaWdubWVudFxuLy9pbnB1dDogc3RyaW5nIGFsaWduVHlwZSB7Y2hvaWNlczogWydMb2NhbCBhbGlnbm1lbnQnLCAnR2xvYmFsIGFsaWdubWVudCddfVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbi8vaW5wdXQ6IHN0cmluZyBhbGlnblRhYmxlIHtjaG9pY2VzOiBbJ0FVVE8nLCAnTlVDTEVPVElERVMnLCAnQkxPU1VNNDUnLCAnQkxPU1VNNTAnLCdCTE9TVU02MicsJ0JMT1NVTTgwJywnQkxPU1VNOTAnLCdQQU0zMCcsJ1BBTTcwJywnUEFNMjUwJywnU0NITkVJREVSJywnVFJBTlMnXX1cbi8vaW5wdXQ6IGRvdWJsZSBnYXBcbi8vaW5wdXQ6IHN0cmluZyBzZXExXG4vL2lucHV0OiBzdHJpbmcgc2VxMlxuLy9vdXRwdXQ6IG9iamVjdCByZXNcbmV4cG9ydCBmdW5jdGlvbiBzZXF1ZW5jZUFsaWdubWVudChhbGlnblR5cGUsIGFsaWduVGFibGUsIGdhcCwgc2VxMSwgc2VxMikge1xuICAgIGNvbnN0IHRvQWxpZ24gPSBuZXcgU2VxdWVuY2VBbGlnbm1lbnQoc2VxMSwgc2VxMiwgZ2FwLCBhbGlnblRhYmxlKTtcbiAgICBjb25zdCByZXMgPSBhbGlnblR5cGUgPT0gJ0xvY2FsIGFsaWdubWVudCcgPyB0b0FsaWduLnNtaXRoV2F0ZXJtYW4oKSA6IHRvQWxpZ24ubmVlZGxlbWFuV3VuY2goKTtcbiAgICByZXR1cm4gcmVzO1xufVxuLy9uYW1lOiBXZWJMb2dvXG4vL2Rlc2NyaXB0aW9uOiBXZWJMb2dvIHZpZXdlclxuLy90YWdzOiB2aWV3ZXIsIHBhbmVsXG4vL291dHB1dDogdmlld2VyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIHdlYkxvZ29WaWV3ZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBXZWJMb2dvKCk7XG59XG4vL25hbWU6IFZkUmVnaW9uc1xuLy9kZXNjcmlwdGlvbjogVi1Eb21haW4gcmVnaW9ucyB2aWV3ZXJcbi8vdGFnczogdmlld2VyLCBwYW5lbFxuLy9vdXRwdXQ6IHZpZXdlciByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiB2ZFJlZ2lvblZpZXdlcigpIHtcbiAgICByZXR1cm4gbmV3IFZkUmVnaW9uc1ZpZXdlcigpO1xufVxuLy90b3AtbWVudTogQmlvIHwgU2VxdWVuY2UgQWN0aXZpdHkgQ2xpZmZzLi4uXG4vL25hbWU6IFNlcXVlbmNlIEFjdGl2aXR5IENsaWZmc1xuLy9kZXNjcmlwdGlvbjogZGV0ZWN0IGFjdGl2aXR5IGNsaWZmc1xuLy9pbnB1dDogZGF0YWZyYW1lIHRhYmxlIFtJbnB1dCBkYXRhIHRhYmxlXVxuLy9pbnB1dDogY29sdW1uIG1hY3JvTW9sZWN1bGUge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG4vL2lucHV0OiBjb2x1bW4gYWN0aXZpdGllc1xuLy9pbnB1dDogZG91YmxlIHNpbWlsYXJpdHkgPSA4MCBbU2ltaWxhcml0eSBjdXRvZmZdXG4vL2lucHV0OiBzdHJpbmcgbWV0aG9kTmFtZSB7IGNob2ljZXM6W1wiVU1BUFwiLCBcInQtU05FXCIsIFwiU1BFXCJdIH1cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpdml0eUNsaWZmcyhkZiwgbWFjcm9Nb2xlY3VsZSwgYWN0aXZpdGllcywgc2ltaWxhcml0eSwgbWV0aG9kTmFtZSkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmICghY2hlY2tJbnB1dENvbHVtblVpKG1hY3JvTW9sZWN1bGUsICdBY3Rpdml0eSBDbGlmZnMnKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgZW5jb2RlZENvbCA9IGVuY29kZU1vbm9tZXJzKG1hY3JvTW9sZWN1bGUpO1xuICAgICAgICBpZiAoIWVuY29kZWRDb2wpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGF4ZXNOYW1lcyA9IGdldEVtYmVkZGluZ0NvbHNOYW1lcyhkZik7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAnU1BFJzogeyBjeWNsZXM6IDIwMDAsIGxhbWJkYTogMS4wLCBkbGFtYmRhOiAwLjAwMDUgfSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgdGFncyA9IHtcbiAgICAgICAgICAgICd1bml0cyc6IG1hY3JvTW9sZWN1bGUudGFnc1sndW5pdHMnXSxcbiAgICAgICAgICAgICdhbGlnbmVkJzogbWFjcm9Nb2xlY3VsZS50YWdzWydhbGlnbmVkJ10sXG4gICAgICAgICAgICAnc2VwYXJhdG9yJzogbWFjcm9Nb2xlY3VsZS50YWdzWydzZXBhcmF0b3InXSxcbiAgICAgICAgICAgICdhbHBoYWJldCc6IG1hY3JvTW9sZWN1bGUudGFnc1snYWxwaGFiZXQnXSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgc3AgPSB5aWVsZCBnZXRBY3Rpdml0eUNsaWZmcyhkZiwgbWFjcm9Nb2xlY3VsZSwgZW5jb2RlZENvbCwgYXhlc05hbWVzLCAnQWN0aXZpdHkgY2xpZmZzJywgYWN0aXZpdGllcywgc2ltaWxhcml0eSwgJ0xldmVuc2h0ZWluJywgbWV0aG9kTmFtZSwgREcuU0VNVFlQRS5NQUNST01PTEVDVUxFLCB0YWdzLCBzZXF1ZW5jZVNwYWNlLCBnZXRTaW1pbGFyaXRpZXNNYXJpeCwgY3JlYXRlVG9vbHRpcEVsZW1lbnQsIGNyZWF0ZVByb3BQYW5lbEVsZW1lbnQsIG9wdGlvbnNbbWV0aG9kTmFtZV0pO1xuICAgICAgICByZXR1cm4gc3A7XG4gICAgfSk7XG59XG4vL3RvcC1tZW51OiBCaW8gfCBTZXF1ZW5jZSBTcGFjZS4uLlxuLy9uYW1lOiBTZXF1ZW5jZSBTcGFjZVxuLy9pbnB1dDogZGF0YWZyYW1lIHRhYmxlXG4vL2lucHV0OiBjb2x1bW4gbWFjcm9Nb2xlY3VsZSB7IHNlbVR5cGU6IE1hY3JvbW9sZWN1bGUgfVxuLy9pbnB1dDogc3RyaW5nIG1ldGhvZE5hbWUgeyBjaG9pY2VzOltcIlVNQVBcIiwgXCJ0LVNORVwiLCBcIlNQRVwiXSB9XG4vL2lucHV0OiBzdHJpbmcgc2ltaWxhcml0eU1ldHJpYyB7IGNob2ljZXM6W1wiTGV2ZW5zaHRlaW5cIiwgXCJUYW5pbW90b1wiXSB9XG4vL2lucHV0OiBib29sIHBsb3RFbWJlZGRpbmdzID0gdHJ1ZVxuZXhwb3J0IGZ1bmN0aW9uIHNlcXVlbmNlU3BhY2VUb3BNZW51KHRhYmxlLCBtYWNyb01vbGVjdWxlLCBtZXRob2ROYW1lLCBzaW1pbGFyaXR5TWV0cmljID0gJ0xldmVuc2h0ZWluJywgcGxvdEVtYmVkZGluZ3MpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBpZiAoIWNoZWNrSW5wdXRDb2x1bW5VaShtYWNyb01vbGVjdWxlLCAnQWN0aXZpdHkgQ2xpZmZzJykpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGVuY29kZWRDb2wgPSBlbmNvZGVNb25vbWVycyhtYWNyb01vbGVjdWxlKTtcbiAgICAgICAgaWYgKCFlbmNvZGVkQ29sKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBlbWJlZENvbHNOYW1lcyA9IGdldEVtYmVkZGluZ0NvbHNOYW1lcyh0YWJsZSk7XG4gICAgICAgIGNvbnN0IHdpdGhvdXRFbXB0eVZhbHVlcyA9IERHLkRhdGFGcmFtZS5mcm9tQ29sdW1ucyhbZW5jb2RlZENvbF0pLmNsb25lKCk7XG4gICAgICAgIGNvbnN0IGVtcHR5VmFsc0lkeHMgPSByZW1vdmVFbXB0eVN0cmluZ1Jvd3Mod2l0aG91dEVtcHR5VmFsdWVzLCBlbmNvZGVkQ29sKTtcbiAgICAgICAgY29uc3QgY2hlbVNwYWNlUGFyYW1zID0ge1xuICAgICAgICAgICAgc2VxQ29sOiB3aXRob3V0RW1wdHlWYWx1ZXMuY29sKGVuY29kZWRDb2wubmFtZSksXG4gICAgICAgICAgICBtZXRob2ROYW1lOiBtZXRob2ROYW1lLFxuICAgICAgICAgICAgc2ltaWxhcml0eU1ldHJpYzogc2ltaWxhcml0eU1ldHJpYyxcbiAgICAgICAgICAgIGVtYmVkQXhlc05hbWVzOiBlbWJlZENvbHNOYW1lc1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBzZXF1ZW5jZVNwYWNlUmVzID0geWllbGQgc2VxdWVuY2VTcGFjZShjaGVtU3BhY2VQYXJhbXMpO1xuICAgICAgICBjb25zdCBlbWJlZGRpbmdzID0gc2VxdWVuY2VTcGFjZVJlcy5jb29yZGluYXRlcztcbiAgICAgICAgZm9yIChjb25zdCBjb2wgb2YgZW1iZWRkaW5ncykge1xuICAgICAgICAgICAgY29uc3QgbGlzdFZhbHVlcyA9IGNvbC50b0xpc3QoKTtcbiAgICAgICAgICAgIGVtcHR5VmFsc0lkeHMuZm9yRWFjaCgoaW5kKSA9PiBsaXN0VmFsdWVzLnNwbGljZShpbmQsIDAsIG51bGwpKTtcbiAgICAgICAgICAgIHRhYmxlLmNvbHVtbnMuYWRkKERHLkNvbHVtbi5mcm9tTGlzdCgnZG91YmxlJywgY29sLm5hbWUsIGxpc3RWYWx1ZXMpKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgc3A7XG4gICAgICAgIGlmIChwbG90RW1iZWRkaW5ncykge1xuICAgICAgICAgICAgZm9yIChjb25zdCB2IG9mIGdyb2suc2hlbGwudmlld3MpIHtcbiAgICAgICAgICAgICAgICBpZiAodi5uYW1lID09PSB0YWJsZS5uYW1lKVxuICAgICAgICAgICAgICAgICAgICBzcCA9IHYuc2NhdHRlclBsb3QoeyB4OiBlbWJlZENvbHNOYW1lc1swXSwgeTogZW1iZWRDb2xzTmFtZXNbMV0sIHRpdGxlOiAnU2VxdWVuY2Ugc3BhY2UnIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzcDtcbiAgICB9KTtcbn1cbjtcbi8vdG9wLW1lbnU6IEJpbyB8IFRvIEF0b21pYyBMZXZlbC4uLlxuLy9uYW1lOiBUbyBBdG9taWMgTGV2ZWxcbi8vZGVzY3JpcHRpb246IHJldHVybnMgbW9sZmlsZXMgZm9yIGVhY2ggbW9ub21lciBmcm9tIEhFTE0gbGlicmFyeVxuLy9pbnB1dDogZGF0YWZyYW1lIGRmIFtJbnB1dCBkYXRhIHRhYmxlXVxuLy9pbnB1dDogY29sdW1uIG1hY3JvTW9sZWN1bGUge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG5leHBvcnQgZnVuY3Rpb24gdG9BdG9taWNMZXZlbChkZiwgbWFjcm9Nb2xlY3VsZSkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmIChERy5GdW5jLmZpbmQoeyBwYWNrYWdlOiAnQ2hlbScsIG5hbWU6ICdnZXRSZEtpdE1vZHVsZScgfSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBncm9rLnNoZWxsLndhcm5pbmcoJ1RyYW5zZm9ybWF0aW9uIHRvIGF0b21pYyBsZXZlbCByZXF1aXJlcyBwYWNrYWdlIFwiQ2hlbVwiIGluc3RhbGxlZC4nKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNoZWNrSW5wdXRDb2x1bW5VaShtYWNyb01vbGVjdWxlLCAnVG8gQXRvbWljIExldmVsJykpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG1vbm9tZXJzTGliRmlsZSA9IHlpZWxkIF9wYWNrYWdlLmZpbGVzLnJlYWRBc1RleHQoSEVMTV9DT1JFX0xJQl9GSUxFTkFNRSk7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJzTGliT2JqZWN0ID0gSlNPTi5wYXJzZShtb25vbWVyc0xpYkZpbGUpO1xuICAgICAgICBjb25zdCBhdG9taWNDb2RlcyA9IGdldE1vbGZpbGVzRnJvbVNlcShtYWNyb01vbGVjdWxlLCBtb25vbWVyc0xpYk9iamVjdCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIGdldE1hY3JvTW9sKGF0b21pY0NvZGVzKTtcbiAgICAgICAgY29uc3QgY29sID0gREcuQ29sdW1uLmZyb21TdHJpbmdzKCdyZWdlbmVyYXRlZCcsIHJlc3VsdCk7XG4gICAgICAgIGNvbC5zZW1UeXBlID0gREcuU0VNVFlQRS5NT0xFQ1VMRTtcbiAgICAgICAgY29sLnRhZ3NbREcuVEFHUy5VTklUU10gPSAnbW9sYmxvY2snO1xuICAgICAgICBkZi5jb2x1bW5zLmFkZChjb2wsIHRydWUpO1xuICAgICAgICB5aWVsZCBncm9rLmRhdGEuZGV0ZWN0U2VtYW50aWNUeXBlcyhkZik7XG4gICAgfSk7XG59XG4vL3RvcC1tZW51OiBCaW8gfCBNU0EuLi5cbi8vbmFtZTogTVNBXG4vL2lucHV0OiBkYXRhZnJhbWUgdGFibGVcbi8vaW5wdXQ6IGNvbHVtbiBzZXF1ZW5jZSB7IHNlbVR5cGU6IE1hY3JvbW9sZWN1bGUsIHVuaXRzOiBbJ2Zhc3RhJ10sIGFscGhhYmV0OiBbJ0ROQScsICdSTkEnLCAnUFQnXSB9XG4vL291dHB1dDogY29sdW1uIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIG11bHRpcGxlU2VxdWVuY2VBbGlnbm1lbnRBbnkodGFibGUsIGNvbCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGZ1bmMgPSBERy5GdW5jLmZpbmQoeyBwYWNrYWdlOiAnQmlvJywgbmFtZTogJ211bHRpcGxlU2VxdWVuY2VBbGlnbm1lbnRBbnknIH0pWzBdO1xuICAgICAgICBpZiAoIWNoZWNrSW5wdXRDb2x1bW5VaShjb2wsICdNU0EnLCBbJ2Zhc3RhJ10sIFsnRE5BJywgJ1JOQScsICdQVCddKSlcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjb25zdCB1blVzZWROYW1lID0gdGFibGUuY29sdW1ucy5nZXRVbnVzZWROYW1lKGBtc2EoJHtjb2wubmFtZX0pYCk7XG4gICAgICAgIGNvbnN0IG1zYUNvbCA9IHlpZWxkIHJ1bkthbGlnbihjb2wsIGZhbHNlLCB1blVzZWROYW1lKTtcbiAgICAgICAgdGFibGUuY29sdW1ucy5hZGQobXNhQ29sKTtcbiAgICAgICAgLy8gVGhpcyBjYWxsIGlzIHJlcXVpcmVkIHRvIGVuYWJsZSBjZWxsIHJlbmRlcmVyIGFjdGl2YXRpb25cbiAgICAgICAgeWllbGQgZ3Jvay5kYXRhLmRldGVjdFNlbWFudGljVHlwZXModGFibGUpO1xuICAgICAgICAvLyBjb25zdCB0djogREcuVGFibGVWaWV3ID0gZ3Jvay5zaGVsbC50djtcbiAgICAgICAgLy8gdHYuZ3JpZC5pbnZhbGlkYXRlKCk7XG4gICAgICAgIHJldHVybiBtc2FDb2w7XG4gICAgfSk7XG59XG4vL25hbWU6IEJpbyB8IE1TQVxuLy90YWdzOiBiaW8sIHBhbmVsXG4vL2lucHV0OiBjb2x1bW4gc2VxdWVuY2UgeyBzZW1UeXBlOiBNYWNyb21vbGVjdWxlIH1cbi8vb3V0cHV0OiBjb2x1bW4gcmVzdWx0XG5leHBvcnQgZnVuY3Rpb24gcGFuZWxNU0EoY29sKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgcmV0dXJuIG11bHRpcGxlU2VxdWVuY2VBbGlnbm1lbnRBbnkoY29sLmRhdGFGcmFtZSwgY29sKTtcbiAgICB9KTtcbn1cbi8vbmFtZTogQ29tcG9zaXRpb24gQW5hbHlzaXNcbi8vdG9wLW1lbnU6IEJpbyB8IENvbXBvc2l0aW9uIEFuYWx5c2lzXG4vL291dHB1dDogdmlld2VyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvc2l0aW9uQW5hbHlzaXMoKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgLy8gSGlnaGVyIHByaW9yaXR5IGZvciBjb2x1bW5zIHdpdGggTVNBIGRhdGEgdG8gc2hvdyB3aXRoIFdlYkxvZ28uXG4gICAgICAgIGNvbnN0IHR2ID0gZ3Jvay5zaGVsbC50djtcbiAgICAgICAgY29uc3QgZGYgPSB0di5kYXRhRnJhbWU7XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCBjb2xMaXN0ID0gZGYuY29sdW1ucy50b0xpc3QoKS5maWx0ZXIoKGNvbCkgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbC5zZW1UeXBlICE9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSlcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBjb2xVSCA9IG5ldyBVbml0c0hhbmRsZXIoY29sKTtcbiAgICAgICAgICAgIC8vIFRPRE86IHByZXZlbnQgZm9yIGN5Y2xpYywgYnJhbmNoZWQgb3IgbXVsdGlwbGUgY2hhaW5zIGluIEhlbG1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IChjb2wpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICghY2hlY2tJbnB1dENvbHVtblVpKGNvbCwgJ0NvbXBvc2l0aW9uJykpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3Qgd2xWaWV3ZXIgPSB0di5hZGRWaWV3ZXIoJ1dlYkxvZ28nLCB7IHNlcXVlbmNlQ29sdW1uTmFtZTogY29sLm5hbWUgfSk7XG4gICAgICAgICAgICBncm9rLnNoZWxsLnR2LmRvY2tNYW5hZ2VyLmRvY2sod2xWaWV3ZXIsIERHLkRPQ0tfVFlQRS5ET1dOLCBudWxsLCAnQ29tcG9zaXRpb24gYW5hbHlzaXMnLCAwLjI1KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBjb2wgPSBudWxsO1xuICAgICAgICBpZiAoY29sTGlzdC5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgZ3Jvay5zaGVsbC5lcnJvcignQ3VycmVudCB0YWJsZSBkb2VzIG5vdCBjb250YWluIHNlcXVlbmNlcycpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGNvbExpc3QubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgY29uc3QgY29sTGlzdE5hbWVzID0gY29sTGlzdC5tYXAoKGNvbCkgPT4gY29sLm5hbWUpO1xuICAgICAgICAgICAgY29uc3QgY29sSW5wdXQgPSB1aS5jaG9pY2VJbnB1dCgnQ29sdW1uJywgY29sTGlzdE5hbWVzWzBdLCBjb2xMaXN0TmFtZXMpO1xuICAgICAgICAgICAgdWkuZGlhbG9nKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ1ItR3JvdXBzIEFuYWx5c2lzJyxcbiAgICAgICAgICAgICAgICBoZWxwVXJsOiAnL2hlbHAvZG9tYWlucy9iaW8vbWFjcm9tb2xlY3VsZXMubWQjY29tcG9zaXRpb24tYW5hbHlzaXMnXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5hZGQodWkuZGl2KFtcbiAgICAgICAgICAgICAgICBjb2xJbnB1dCxcbiAgICAgICAgICAgIF0pKVxuICAgICAgICAgICAgICAgIC5vbk9LKCgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sID0gKF9hID0gY29sTGlzdC5maW5kKChjb2wpID0+IGNvbC5uYW1lID09IGNvbElucHV0LnZhbHVlKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAoY29sKVxuICAgICAgICAgICAgICAgICAgICB5aWVsZCBoYW5kbGVyKGNvbCk7XG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAuc2hvdygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29sID0gY29sTGlzdFswXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvbClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgeWllbGQgaGFuZGxlcihjb2wpO1xuICAgIH0pO1xufVxuLy90b3AtbWVudTogQmlvIHwgU2RmIHRvIEpzb24gbGliLi4uXG4vL25hbWU6IHNkZlRvSnNvbkxpYlxuLy9pbnB1dDogZGF0YWZyYW1lIHRhYmxlXG5leHBvcnQgZnVuY3Rpb24gc2RmVG9Kc29uTGliKHRhYmxlKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QganNvbk1vbm9tZXJMaWJyYXJ5ID0gY3JlYXRlSnNvbk1vbm9tZXJMaWJGcm9tU2RmKHRhYmxlKTtcbiAgICB9KTtcbn1cbi8vbmFtZTogUmVwcmVzZW50YXRpb25zXG4vL3RhZ3M6IHBhbmVsLCB3aWRnZXRzXG4vL2lucHV0OiBjZWxsIG1hY3JvTW9sZWN1bGUge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG4vL291dHB1dDogd2lkZ2V0IHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIHBlcHRpZGVNb2xlY3VsZShtYWNyb01vbGVjdWxlKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgbW9ub21lcnNMaWJGaWxlID0geWllbGQgX3BhY2thZ2UuZmlsZXMucmVhZEFzVGV4dChIRUxNX0NPUkVfTElCX0ZJTEVOQU1FKTtcbiAgICAgICAgY29uc3QgbW9ub21lcnNMaWJPYmplY3QgPSBKU09OLnBhcnNlKG1vbm9tZXJzTGliRmlsZSk7XG4gICAgICAgIHJldHVybiByZXByZXNlbnRhdGlvbnNXaWRnZXQobWFjcm9Nb2xlY3VsZSwgbW9ub21lcnNMaWJPYmplY3QpO1xuICAgIH0pO1xufVxuLy9uYW1lOiBpbXBvcnRGYXN0YVxuLy9kZXNjcmlwdGlvbjogT3BlbnMgRkFTVEEgZmlsZVxuLy90YWdzOiBmaWxlLWhhbmRsZXJcbi8vbWV0YS5leHQ6IGZhc3RhLCBmbmEsIGZmbiwgZmFhLCBmcm4sIGZhLCBmc3Rcbi8vaW5wdXQ6IHN0cmluZyBmaWxlQ29udGVudFxuLy9vdXRwdXQ6IGxpc3QgdGFibGVzXG5leHBvcnQgZnVuY3Rpb24gaW1wb3J0RmFzdGEoZmlsZUNvbnRlbnQpIHtcbiAgICBjb25zdCBmZmggPSBuZXcgRmFzdGFGaWxlSGFuZGxlcihmaWxlQ29udGVudCk7XG4gICAgcmV0dXJuIGZmaC5pbXBvcnRGYXN0YSgpO1xufVxuLy9uYW1lOiBCaW8gfCBDb252ZXJ0IC4uLlxuLy9mcmllbmRseS1uYW1lOiBCaW8gfCBDb252ZXJ0XG4vL3RhZ3M6IHBhbmVsLCBiaW9cbi8vaW5wdXQ6IGNvbHVtbiBjb2wge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG5leHBvcnQgZnVuY3Rpb24gY29udmVydFBhbmVsKGNvbCkge1xuICAgIGNvbnZlcnQoY29sKTtcbn1cbi8vbmFtZTogbW9ub21lckNlbGxSZW5kZXJlclxuLy90YWdzOiBjZWxsUmVuZGVyZXJcbi8vbWV0YS5jZWxsVHlwZTogTW9ub21lclxuLy9vdXRwdXQ6IGdyaWRfY2VsbF9yZW5kZXJlciByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiBtb25vbWVyQ2VsbFJlbmRlcmVyKCkge1xuICAgIHJldHVybiBuZXcgTW9ub21lckNlbGxSZW5kZXJlcigpO1xufVxuLy9uYW1lOiBNYWNyb21vbGVjdWxlRGlmZmVyZW5jZUNlbGxSZW5kZXJlclxuLy90YWdzOiBjZWxsUmVuZGVyZXJcbi8vbWV0YS5jZWxsVHlwZTogTWFjcm9tb2xlY3VsZURpZmZlcmVuY2Vcbi8vbWV0YS5jb2x1bW5UYWdzOiBxdWFsaXR5PU1hY3JvbW9sZWN1bGVEaWZmZXJlbmNlXG4vL291dHB1dDogZ3JpZF9jZWxsX3JlbmRlcmVyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIG1hY3JvbW9sZWN1bGVEaWZmZXJlbmNlQ2VsbFJlbmRlcmVyKCkge1xuICAgIHJldHVybiBuZXcgTWFjcm9tb2xlY3VsZURpZmZlcmVuY2VDZWxsUmVuZGVyZXIoKTtcbn1cbi8vbmFtZTogdGVzdERldGVjdE1hY3JvbW9sZWN1bGVcbi8vaW5wdXQ6IHN0cmluZyBwYXRoIHtjaG9pY2VzOiBbJ0RlbW86RmlsZXMvJywgJ1N5c3RlbTpBcHBEYXRhLyddfVxuLy9vdXRwdXQ6IGRhdGFmcmFtZSByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiB0ZXN0RGV0ZWN0TWFjcm9tb2xlY3VsZShwYXRoKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgcGkgPSBERy5UYXNrQmFyUHJvZ3Jlc3NJbmRpY2F0b3IuY3JlYXRlKCdUZXN0IGRldGVjdE1hY3JvbW9sZWN1bGUuLi4nKTtcbiAgICAgICAgY29uc3QgZmlsZUxpc3QgPSB5aWVsZCBncm9rLmRhcGkuZmlsZXMubGlzdChwYXRoLCB0cnVlLCAnJyk7XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCBmaWxlTGlzdFRvVGVzdCA9IGZpbGVMaXN0LmZpbHRlcigoZmkpID0+IGZpLmZpbGVOYW1lLmVuZHNXaXRoKCcuY3N2JykpO1xuICAgICAgICBsZXQgcmVhZHlDb3VudCA9IDA7XG4gICAgICAgIGNvbnN0IHJlcyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGZpbGVJbmZvIG9mIGZpbGVMaXN0VG9UZXN0KSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNzdiA9IHlpZWxkIGdyb2suZGFwaS5maWxlcy5yZWFkQXNUZXh0KHBhdGggKyBmaWxlSW5mby5mdWxsUGF0aCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGYgPSBERy5EYXRhRnJhbWUuZnJvbUNzdihjc3YpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY29sIG9mIGRmLmNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VtVHlwZSA9IHlpZWxkIGdyb2suZnVuY3Rpb25zLmNhbGwoJ0JpbzpkZXRlY3RNYWNyb21vbGVjdWxlJywgeyBjb2w6IGNvbCB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbVR5cGUgPT09IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLndhcm4oYGZpbGU6ICR7ZmlsZUluZm8ucGF0aH0sIGNvbHVtbjogJHtjb2wubmFtZX0sIGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGBzZW1UeXBlOiAke3NlbVR5cGV9LCB1bml0czogJHtjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS53YXJuKCdmaWxlOiBcIicgKyBmaWxlSW5mby5wYXRoICsgJ1wiLCBzZW1UeXBlOiBcIicgKyBzZW1UeXBlICsgJ1wiLCAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgJ3VuaXRzOiBcIicgKyBjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpICsgJ1wiJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZTogZmlsZUluZm8ucGF0aCwgcmVzdWx0OiAnZGV0ZWN0ZWQnLCBjb2x1bW46IGNvbC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGB1bml0czogJHtjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpfWBcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUuZXJyb3IoJ2ZpbGU6ICcgKyBmaWxlSW5mby5wYXRoICsgJywgZXJyb3I6ICcgKyBleC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICByZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGZpbGU6IGZpbGVJbmZvLnBhdGgsIHJlc3VsdDogJ2Vycm9yJywgY29sdW1uOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogZXJyLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICByZWFkeUNvdW50ICs9IDE7XG4gICAgICAgICAgICAgICAgcGkudXBkYXRlKDEwMCAqIHJlYWR5Q291bnQgLyBmaWxlTGlzdFRvVGVzdC5sZW5ndGgsIGBUZXN0ICR7ZmlsZUluZm8uZmlsZU5hbWV9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZ3Jvay5zaGVsbC5pbmZvKCdUZXN0IERlbW86RmlsZXMgZm9yIGRldGVjdE1hY3JvbW9sZWN1bGUgZmluaXNoZWQuJyk7XG4gICAgICAgIHBpLmNsb3NlKCk7XG4gICAgICAgIGNvbnN0IHJlc0RmID0gREcuRGF0YUZyYW1lLmZyb21PYmplY3RzKHJlcyk7XG4gICAgICAgIHJlc0RmLm5hbWUgPSBgZGF0YXNldHNfZGV0ZWN0TWFjcm9tb2xlY3VsZV8ke3BhdGh9YDtcbiAgICAgICAgcmV0dXJuIHJlc0RmO1xuICAgIH0pO1xufVxuLy9uYW1lOiBCaW8gfCBTcGxpdCB0byBtb25vbWVyc1xuLy90YWdzOiBwYW5lbCwgYmlvXG4vL2lucHV0OiBjb2x1bW4gY29sIHtzZW1UeXBlOiBNYWNyb21vbGVjdWxlfVxuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0VG9Nb25vbWVycyhjb2wpIHtcbiAgICBpZiAoIWNvbC5nZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxpZ25lZCkuaW5jbHVkZXMoQy5NU0EpKVxuICAgICAgICByZXR1cm4gZ3Jvay5zaGVsbC5lcnJvcignU3BsaXR0aW5nIGlzIGFwcGxpY2FibGUgb25seSBmb3IgYWxpZ25lZCBzZXF1ZW5jZXMnKTtcbiAgICBjb25zdCB0ZW1wRGYgPSBzcGxpdEFsaWduZWRTZXF1ZW5jZXMoY29sKTtcbiAgICBjb25zdCBvcmlnaW5hbERmID0gY29sLmRhdGFGcmFtZTtcbiAgICBmb3IgKGNvbnN0IHRlbXBDb2wgb2YgdGVtcERmLmNvbHVtbnMpIHtcbiAgICAgICAgY29uc3QgbmV3Q29sID0gb3JpZ2luYWxEZi5jb2x1bW5zLmFkZCh0ZW1wQ29sKTtcbiAgICAgICAgbmV3Q29sLnNlbVR5cGUgPSBDLlNFTV9UWVBFUy5NT05PTUVSO1xuICAgICAgICBuZXdDb2wuc2V0VGFnKERHLlRBR1MuQ0VMTF9SRU5ERVJFUiwgQy5TRU1fVFlQRVMuTU9OT01FUik7XG4gICAgICAgIG5ld0NvbC5zZXRUYWcoQy5UQUdTLkFMUEhBQkVULCBjb2wuZ2V0VGFnKEMuVEFHUy5BTFBIQUJFVCkpO1xuICAgIH1cbiAgICBncm9rLnNoZWxsLnR2LmdyaWQuaW52YWxpZGF0ZSgpO1xufVxuLy9uYW1lOiBCaW86IGdldEhlbG1Nb25vbWVyc1xuLy9pbnB1dDogY29sdW1uIGNvbCB7c2VtVHlwZTogTWFjcm9tb2xlY3VsZX1cbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWxtTW9ub21lcnMoc2VxQ29sKSB7XG4gICAgY29uc3Qgc3RhdHMgPSBXZWJMb2dvLmdldFN0YXRzKHNlcUNvbCwgMSwgV2ViTG9nby5zcGxpdHRlckFzSGVsbSk7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHN0YXRzLmZyZXEpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG1hY3JvbW9sZWN1bGVzRmluZ2VycHJpbnRzKG1jb2wpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBncm9rLmZ1bmN0aW9ucy5jYWxsKCdDaGVtOmdldFJkS2l0TW9kdWxlJyk7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJzID0gZ2V0SGVsbU1vbm9tZXJzKG1jb2wpO1xuICAgICAgICBjb25zdCBtb2xzID0geWllbGQgZ3Jvay5mdW5jdGlvbnMuY2FsbCgnSEVMTTpnZXRNb2xGaWxlcycsIHsgbWNvbDogbWNvbCB9KTtcbiAgICAgICAgcmV0dXJuIGdldEZpbmdlcnByaW50cyhtb2xzLnRvTGlzdCgpLCBtb25vbWVycyk7XG4gICAgfSk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=
|
|
7434
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDOzs7Ozs7Ozs7Ozs7Ozs7OztBQ2pPSztBQUN6QyxrQ0FBa0MseURBQWM7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7O0FDM0JwQztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7QUMzQzhCO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLHVGQUFNLCtDQUErQyxLQUFLO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLFFBQVE7QUFDekIsa0JBQWtCLFFBQVE7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUM7QUFDekMsWUFBWSx1RkFBTSwwQ0FBMEMsWUFBWSw0QkFBNEIsSUFBSTtBQUN4RztBQUNBO0FBQ0E7QUFDQSw2Q0FBNkM7QUFDN0MsWUFBWSx1RkFBTSxnREFBZ0QsWUFBWSw2QkFBNkIsSUFBSTtBQUMvRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLFFBQVE7QUFDekIsa0JBQWtCLFFBQVE7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLFFBQVE7QUFDekIsa0JBQWtCLFFBQVE7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixRQUFRO0FBQ3pCLGtCQUFrQixVQUFVO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsWUFBWTtBQUNwQztBQUNBLFlBQVksdUZBQU0sdUNBQXVDLEtBQUssdUJBQXVCLFNBQVM7QUFDOUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsVUFBVTtBQUMzQixrQkFBa0IsUUFBUTtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixrQkFBa0I7QUFDMUM7QUFDQSxZQUFZLHVGQUFNLHVDQUF1QyxLQUFLLHFCQUFxQixNQUFNO0FBQ3pGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDMUpwQztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGNBQWM7QUFDdEM7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNnRDtBQUN6QztBQUNQO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQSwrQ0FBK0MsdUVBQTRCO0FBQzNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLGlDQUFpQyx5REFBYztBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDOzs7Ozs7Ozs7Ozs7Ozs7O0FDN0MzQztBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQSxDQUFDLDhCQUE4QjtBQUMvQjtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkIsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVywwQkFBMEI7QUFDckMsV0FBVyxRQUFRO0FBQ25CLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxTQUFTO0FBQ3BCLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkIsV0FBVyxTQUFTO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxRQUFRO0FBQ3BCO0FBQ08saU1BQWlNLCtCQUErQjtBQUN2TztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN6RUw7QUFDUztBQUMvQztBQUNPO0FBQ1A7QUFDQSxzQ0FBc0M7QUFDdEMsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQSxlQUFlLFFBQVE7QUFDdkIsZUFBZSxRQUFRO0FBQ3ZCO0FBQ0EsZ0JBQWdCLFFBQVE7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixnQkFBZ0I7QUFDaEM7QUFDQTtBQUNBLHFDQUFxQywrREFBcUI7QUFDMUQsNEJBQTRCLCtEQUFxQjtBQUNqRCw4QkFBOEIsa0VBQXdCO0FBQ3REO0FBQ0EsUUFBUSw4RUFBa0M7QUFDMUMsZ0JBQWdCLGtFQUF3QjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDOzs7Ozs7Ozs7Ozs7Ozs7OztBQzFERztBQUNDO0FBQy9DO0FBQ08sZ0NBQWdDLHdEQUFZO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QiwyRUFBNEI7QUFDekQ7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCLGtDQUFrQztBQUNsQyw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0EsZUFBZSxRQUFRO0FBQ3ZCLGVBQWUsUUFBUTtBQUN2QixnQkFBZ0Isa0JBQWtCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QiwrQkFBK0I7QUFDM0Q7QUFDQSw0Q0FBNEMseUZBQTZDO0FBQ3pGO0FBQ0E7QUFDQSxTQUFTO0FBQ1QseUJBQXlCLHVFQUEyQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsVUFBVTtBQUMxQjtBQUNBO0FBQ0EsOENBQThDO0FBQzlDLG1DQUFtQztBQUNuQywrQ0FBK0M7QUFDL0MsK0JBQStCO0FBQy9CO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQSx3Q0FBd0M7QUFDeEMseUVBQXlFO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLG9GQUF3QztBQUMvRDtBQUNBLDBCQUEwQixZQUFZLEVBQUUsR0FBRyxFQUFFLGFBQWE7QUFDMUQsU0FBUztBQUNULGtCQUFrQixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsUUFBUTtBQUNoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsUUFBUTtBQUN2QixlQUFlLGVBQWU7QUFDOUI7QUFDQSxnQkFBZ0IsU0FBUztBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsZUFBZTtBQUM5QixnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsZUFBZTtBQUM5QixnQkFBZ0IsWUFBWTtBQUM1QjtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIscUZBQXlDO0FBQ3RFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLGdDQUFnQztBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFFBQVE7QUFDdkIsZUFBZSxRQUFRO0FBQ3ZCLGVBQWUsZUFBZTtBQUM5QjtBQUNBLGdCQUFnQixXQUFXO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixxRkFBeUM7QUFDekQsZ0JBQWdCLHlGQUE2QztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsMkJBQTJCO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QixvRkFBd0M7QUFDckU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFVBQVU7QUFDekIsZUFBZSxlQUFlO0FBQzlCLGdCQUFnQiwwQkFBMEI7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3hOTDtBQUNRO0FBQ3ZDO0FBQ1AscUJBQXFCLDJFQUE0QjtBQUNqRDtBQUNBLHFCQUFxQiw2REFBbUI7QUFDeEM7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHdCQUF3QjtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQixtQkFBbUI7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDcEJMO0FBQ1E7QUFDOUM7QUFDTztBQUNQO0FBQ0E7QUFDQSx3Q0FBd0MsdURBQWE7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MsaUJBQWlCLGlCQUFpQixjQUFjO0FBQy9GLDRCQUE0QiwrQkFBK0I7QUFDM0Q7QUFDQSwrQ0FBK0MsaUJBQWlCLGlCQUFpQixjQUFjO0FBQy9GLDRCQUE0QiwrQkFBK0I7QUFDM0Q7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLGlCQUFpQixpQkFBaUIsY0FBYztBQUMvRiw0QkFBNEIsc0NBQXNDO0FBQ2xFO0FBQ0EsK0NBQStDLGlCQUFpQixpQkFBaUIsY0FBYztBQUMvRiw0QkFBNEIsc0NBQXNDO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixrRUFBd0I7QUFDcEQ7QUFDQSxzQkFBc0IsK0RBQWdCLFNBQVMsc0VBQXVCO0FBQ3RFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0VBQW9FLDRFQUE2QjtBQUNqRztBQUNBO0FBQ0EsbUJBQW1CLHVEQUFhO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQixtQkFBbUI7QUFDbkIscUJBQXFCO0FBQ3JCLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQsY0FBYztBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCLG9CQUFvQjtBQUNwQixlQUFlO0FBQ2YsY0FBYztBQUNkLGNBQWM7QUFDZCxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBLGdCQUFnQixjQUFjO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxpQkFBaUIsNkJBQTZCLFdBQVc7QUFDaEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsVUFBVTtBQUN6QixnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLDREQUFrQjtBQUM1Qyw0QkFBNEIsa0VBQXdCO0FBQ3BELHlCQUF5Qix1REFBYTtBQUN0Qyx5QkFBeUIsK0RBQXFCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFdBQVc7QUFDMUI7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxRQUFRO0FBQ3ZCLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFdBQVc7QUFDMUIsZUFBZSxXQUFXO0FBQzFCLGVBQWUsV0FBVztBQUMxQixnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsNERBQWtCO0FBQzVDLDRCQUE0QixrRUFBd0I7QUFDcEQseUJBQXlCLHVEQUFhO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7OztBQzNOM0M7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxvQ0FBb0M7QUFDckM7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0EsZUFBZSxjQUFjO0FBQzdCLGVBQWUsUUFBUTtBQUN2QixlQUFlLFFBQVE7QUFDdkIsZUFBZSxRQUFRO0FBQ3ZCLGVBQWUsUUFBUTtBQUN2QixlQUFlLFFBQVE7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQzdCM0MsaUJBQWlCLFNBQUksSUFBSSxTQUFJO0FBQzdCLDRCQUE0QiwrREFBK0QsaUJBQWlCO0FBQzVHO0FBQ0Esb0NBQW9DLE1BQU0sK0JBQStCLFlBQVk7QUFDckYsbUNBQW1DLE1BQU0sbUNBQW1DLFlBQVk7QUFDeEYsZ0NBQWdDO0FBQ2hDO0FBQ0EsS0FBSztBQUNMO0FBQzBDO0FBQ0o7QUFDQTtBQUNsQjtBQUNTO0FBQzRDO0FBQ3dCO0FBQ2xDO0FBQ0c7QUFDbEI7QUFDTTtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsd0NBQXdDO0FBQ3pDLFdBQVcsWUFBWTtBQUN2QixXQUFXLFFBQVE7QUFDbkIsWUFBWSxVQUFVO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBLGVBQWUsa0RBQVE7QUFDdkI7QUFDQSxvRUFBMEI7QUFDMUI7QUFDQTtBQUNPO0FBQ1Asd0NBQXdDLGlEQUFPO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUCxpQkFBaUI7QUFDakIsZUFBZSxRQUFRO0FBQ3ZCLGVBQWUsUUFBUTtBQUN2QixlQUFlLFFBQVE7QUFDdkIsZUFBZSxVQUFVO0FBQ3pCO0FBQ0EsK0JBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLHNCQUFzQixxREFBVztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxpREFBaUQ7QUFDNUQ7QUFDQSxXQUFXLG1EQUFtRDtBQUM5RDtBQUNBLFdBQVcsbURBQW1EO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4RUFBOEUsc0NBQXNDO0FBQ3BILGtGQUFrRixzQ0FBc0M7QUFDeEg7QUFDQTtBQUNBO0FBQ0EsZ0ZBQWdGLG9DQUFvQztBQUNwSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBGQUEwRixpQkFBaUI7QUFDM0csbUZBQW1GLHdEQUF3RDtBQUMzSTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLGdEQUFNO0FBQ2pDO0FBQ0EsMEJBQTBCLG1EQUFTO0FBQ25DO0FBQ0Esd0JBQXdCLGdEQUFNO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQiwrQkFBK0IsMkNBQWM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsK0NBQVE7QUFDN0M7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCLG9CQUFvQix5REFBZSxDQUFDLGdEQUFNLEVBQUUsZ0RBQU0sSUFBSSxRQUFRLElBQUksZ0RBQU0sSUFBSSxVQUFVO0FBQ3RGO0FBQ0E7QUFDQSxvQkFBb0IseURBQWU7QUFDbkM7QUFDQSxhQUFhO0FBQ2IsK0JBQStCLDJDQUFjO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQSxhQUFhO0FBQ2IsK0JBQStCLDBEQUFnQjtBQUMvQztBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsc0JBQXNCLGdCQUFnQix1QkFBdUI7QUFDeEYsNkJBQTZCLGtCQUFrQixrQkFBa0Isb0JBQW9CO0FBQ3JGO0FBQ0EsaUJBQWlCLGNBQWMsS0FBSyxVQUFVLFVBQVUsMEJBQTBCLFdBQVcsYUFBYTtBQUMxRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQsdURBQWE7QUFDOUQscURBQXFELDhFQUEyQjtBQUNoRjtBQUNBLHdDQUF3QywrREFBWTtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMERBQTBELFNBQVM7QUFDbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RCxlQUFlLE1BQU07QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CLFNBQVM7QUFDVDtBQUNBO0FBQ0EsMENBQTBDLGNBQWMsaUNBQWlDLGNBQWM7QUFDdkc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBLDBDQUEwQyxjQUFjO0FBQ3hELFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEIsU0FBUztBQUNUO0FBQ0Esb0NBQW9DLGlDQUFpQztBQUNyRSwwQ0FBMEMsY0FBYyxpQ0FBaUMsY0FBYztBQUN2RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyxjQUFjO0FBQ3hELFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMseUJBQXlCO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdURBQXVELFFBQVEsNklBQTZJO0FBQzVNO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MsK0RBQVk7QUFDNUM7QUFDQTtBQUNBLDJCQUEyQixvQkFBb0I7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0Isb0JBQW9CO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsb0JBQW9CO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyxjQUFjLDJCQUEyQixVQUFVO0FBQ3ZGO0FBQ0EsMkJBQTJCLG9CQUFvQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiwwREFBZ0I7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLGlEQUFPO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEVBQThFLG9CQUFvQjtBQUNsRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDRCQUE0QjtBQUNoRDtBQUNBO0FBQ0EsMkJBQTJCLG9CQUFvQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsb0JBQW9CO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZDQUE2QyxFQUFFLGdDQUFnQywyQkFBMkI7QUFDMUc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLE1BQU07QUFDM0M7QUFDQSxpREFBaUQsT0FBTztBQUN4RDtBQUNBO0FBQ0EsbURBQW1ELGFBQWE7QUFDaEU7QUFDQTtBQUNBO0FBQ0EsK0RBQStELE1BQU07QUFDckUsd0NBQXdDLE9BQU87QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseURBQXlELGNBQWM7QUFDdkU7QUFDQSx5REFBeUQsdUJBQXVCO0FBQ2hGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDLHVCQUF1QjtBQUNoRSx5Q0FBeUMsdUJBQXVCO0FBQ2hFLHlDQUF5Qyx1QkFBdUI7QUFDaEUseUNBQXlDLHVCQUF1QjtBQUNoRTtBQUNBLDJDQUEyQyxtQkFBbUI7QUFDOUQsMkNBQTJDLHlCQUF5QjtBQUNwRTtBQUNBO0FBQ0EsZUFBZSxXQUFXO0FBQzFCLGVBQWUsU0FBUztBQUN4QixnQkFBZ0IsWUFBWTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQiw0RUFBbUM7QUFDcEQsc0JBQXNCLHNFQUE2QjtBQUNuRDtBQUNBLGlCQUFpQiw4RUFBb0M7QUFDckQsc0JBQXNCLDBFQUFnQztBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQywyREFBaUIsSUFBSSwwRUFBZ0M7QUFDdEYsaUNBQWlDLHlEQUFnQixJQUFJLHNFQUE2QjtBQUNsRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLDhEQUF3QjtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtRUFBbUUsa0JBQWtCO0FBQ3JGLGVBQWUsV0FBVztBQUMxQixlQUFlLFFBQVE7QUFDdkIsZUFBZSxjQUFjO0FBQzdCLGlCQUFpQixhQUFhLHdCQUF3QjtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLG1GQUFNO0FBQ2hDLDhCQUE4QixtRkFBTTtBQUNwQyxlQUFlLGlHQUFnQixzQkFBc0IsNkZBQVksVUFBVSw2RkFBWTtBQUN2RjtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsY0FBYztBQUNoQyxtQkFBbUIsV0FBVztBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RCxrRUFBd0I7QUFDL0U7QUFDQSxxQ0FBcUMsdURBQWE7QUFDbEQ7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsS0FBSztBQUNwQixnQkFBZ0IsVUFBVTtBQUMxQjtBQUNBO0FBQ0Esb0JBQW9CLHlDQUFFO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1EQUFtRCxFQUFFO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsUUFBUTtBQUN2QixnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxRQUFRO0FBQ3ZCO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxRQUFRO0FBQ3ZCLGVBQWUsUUFBUTtBQUN2QjtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnREFBZ0QsT0FBTztBQUN2RDtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsa0VBQXdCO0FBQ3BELHlEQUF5RCxrRUFBd0IsQ0FBQztBQUNsRixpQ0FBaUMsdURBQWE7QUFDOUMscUNBQXFDLDhFQUEyQjtBQUNoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQix5Q0FBRTtBQUM1QjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCxNQUFNLFFBQVEsc0JBQXNCO0FBQ3pGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0MsSUFBSSxJQUFJO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUM3eEIzQyxpQkFBaUIsU0FBSSxJQUFJLFNBQUk7QUFDN0IsNEJBQTRCLCtEQUErRCxpQkFBaUI7QUFDNUc7QUFDQSxvQ0FBb0MsTUFBTSwrQkFBK0IsWUFBWTtBQUNyRixtQ0FBbUMsTUFBTSxtQ0FBbUMsWUFBWTtBQUN4RixnQ0FBZ0M7QUFDaEM7QUFDQSxLQUFLO0FBQ0w7QUFDNEU7QUFDeUI7QUFDOUY7QUFDUDtBQUNBLDhDQUE4QyxrSEFBaUMsR0FBRyx5Q0FBeUM7QUFDM0gsd0ZBQXdGLDBGQUFTO0FBQ2pHO0FBQ0EsS0FBSztBQUNMO0FBQ0EsMkNBQTJDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDbEJEO0FBQ1k7QUFDNkI7QUFDVTtBQUN0RjtBQUNQO0FBQ0EsNkJBQTZCLHVHQUEwQjtBQUN2RCxLQUFLO0FBQ0w7QUFDQSx1QkFBdUIseURBQVc7QUFDbEMsd0JBQXdCLGdFQUFXO0FBQ25DLEtBQUs7QUFDTDtBQUNBLG9CQUFvQixzR0FBMkI7QUFDL0MsZ0JBQWdCLGtHQUF1QjtBQUN2QyxzQkFBc0Isd0dBQTZCO0FBQ25ELDBCQUEwQiwrR0FBaUM7QUFDM0Qsa0JBQWtCLG9HQUF5QjtBQUMzQyxzQkFBc0Isd0dBQTZCO0FBQ25ELHlCQUF5Qiw4R0FBZ0M7QUFDekQsMEJBQTBCLCtHQUFpQztBQUMzRCxrQkFBa0Isb0dBQXlCO0FBQzNDLGlCQUFpQixtR0FBd0I7QUFDekMsS0FBSztBQUNMO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxJQUFJO0FBQ0U7QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQSxlQUFlLFFBQVE7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixnQkFBZ0I7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsb0JBQW9CO0FBQ25DLGdCQUFnQixVQUFVO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUM3RTNDLGlCQUFpQixTQUFJLElBQUksU0FBSTtBQUM3Qiw0QkFBNEIsK0RBQStELGlCQUFpQjtBQUM1RztBQUNBLG9DQUFvQyxNQUFNLCtCQUErQixZQUFZO0FBQ3JGLG1DQUFtQyxNQUFNLG1DQUFtQyxZQUFZO0FBQ3hGLGdDQUFnQztBQUNoQztBQUNBLEtBQUs7QUFDTDtBQUMwQztBQUNKO0FBQ0E7QUFDdUQ7QUFDUDtBQUN0RjtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxrRUFBd0I7QUFDM0Q7QUFDQSw4QkFBOEIsb0dBQXFCO0FBQ25ELGdCQUFnQix3QkFBd0I7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsNERBQWtCO0FBQzdDO0FBQ0Esc0JBQXNCLGtFQUF3QixFQUFFLDREQUFrQjtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsY0FBYztBQUN0Qyw0QkFBNEIsa0JBQWtCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGdCQUFnQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLDREQUFrQixtQkFBbUIsc0RBQXNEO0FBQ2hIO0FBQ0E7QUFDQSxxQkFBcUIsaUVBQXVCO0FBQzVDO0FBQ0Esa0NBQWtDLCtEQUFxQjtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxvSUFBb0k7QUFDdkssU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCwrQkFBK0IsbURBQVMsSUFBSSwyQkFBMkI7QUFDdkUsWUFBWSxxRUFBMkI7QUFDdkMsU0FBUztBQUNUO0FBQ0EsbUNBQW1DLHdEQUFjO0FBQ2pEO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IscUJBQU07QUFDMUI7QUFDQTtBQUNBLG9CQUFvQix5REFBZSxlQUFlLDBGQUEwRjtBQUM1STtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLDJDQUEyQztBQUN2RTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixVQUFVO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHNEQUFZO0FBQzVCLG9CQUFvQixvREFBVTtBQUM5QjtBQUNBLGlCQUFpQixpREFBTyxXQUFXLGtEQUFRO0FBQzNDLHVDQUF1QyxvREFBVTtBQUNqRCxJQUFJLHNEQUFZO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxrREFBUTtBQUNaLHlDQUF5QyxpR0FBaUc7QUFDMUk7QUFDQTtBQUNBLFFBQVEsc0RBQVk7QUFDcEIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGtCQUFrQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLE1BQU0sR0FBRyxRQUFRO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZUFBZTtBQUNuQztBQUNBO0FBQ0Esc0JBQXNCLDBEQUEwRDtBQUNoRjtBQUNBLG9CQUFvQiw2REFBbUI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNPO0FBQ1A7QUFDQSx3QkFBd0IsY0FBYztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ087QUFDUCxvQkFBb0IsYUFBYTtBQUNqQztBQUNBLDRCQUE0QixTQUFTO0FBQ3JDLHVDQUF1QywyR0FBeUI7QUFDaEU7QUFDQSxvQkFBb0Isb0VBQTBCO0FBQzlDO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBLDBCQUEwQixRQUFRLEdBQUcsV0FBVztBQUNoRDtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7OztBQ3pVcEM7QUFDUDtBQUNBLDBDQUEwQyw0S0FBMkM7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCw4QkFBOEIsUUFBUSx1QkFBdUI7QUFDN0Qsc0JBQXNCLDBDQUEwQztBQUNoRTtBQUNBLEtBQUs7QUFDTDtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNkTDtBQUNBO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLG9CQUFvQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBLHVCQUF1Qiw2Q0FBVztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDLHdEQUFjO0FBQ3REO0FBQ0Esd0JBQXdCLHNCQUFzQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7Ozs7Ozs7Ozs7Ozs7Ozs7QUM1QzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFlBQVksUUFBUTtBQUNwQjtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxRQUFRO0FBQ25CLFlBQVksUUFBUTtBQUNwQjtBQUNPO0FBQ1A7QUFDQTtBQUNBLDJDQUEyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDcEJOO0FBQzlCO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDQTtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ087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Ozs7Ozs7Ozs7O0FDcEVPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDUDtBQUNPO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDdEJQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCLHlCQUF5QjtBQUN6Qix5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixnQkFBZ0I7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZ0JBQWdCO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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LDREQUFlLGFBQWEsNERBQWU7QUFDakU7QUFDQSxJQUFJLHVFQUE2QjtBQUNqQztBQUNBO0FBQ0EscUJBQXFCO0FBQ2Q7QUFDUCxrQkFBa0IsMEZBQWdCLFlBQVksZ0dBQXNCO0FBQ3BFO0FBQ0E7QUFDTztBQUNQO0FBQ0EsUUFBUSw2REFBbUI7QUFDM0I7QUFDQSwyQkFBMkIsNkRBQW1CLHVCQUF1QixZQUFZO0FBQ2pGLGVBQWUsNEVBQWU7QUFDOUIsS0FBSztBQUNMIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BiaW93YXNtL2Fpb2xpL2Rpc3QvYWlvbGkuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9hbWlub2FjaWRzLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvbnVjbGVvdGlkZXMuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9zZXEtcGFsZXR0ZXMuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy9zZXF1ZW5jZS1lbmNvZGVyLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdW5rbm93bi5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL2NlbGwtcmVuZGVyZXIuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9mYXN0YS1oYW5kbGVyLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvbm90YXRpb24tY29udmVydGVyLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvc3BsaXR0ZXIuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy91bml0cy1oYW5kbGVyLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdmQtcmVnaW9ucy5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3ZpZXdlcnMvd2ViLWxvZ28uanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL3NlcXVlbmNlLXNwYWNlLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy90eXBlZC1tZXRyaWNzLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy92aWV3ZXJzL2FjdGl2aXR5LWNsaWZmcy5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy9tbC9zcmMvd29ya2Vycy9kaW1lbnNpb25hbGl0eS1yZWR1Y2luZy13b3JrZXItY3JlYXRvci5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvZGF0YWZyYW1lLXV0aWxzLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9AZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy9yYW5kb20uanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3NpbWlsYXJpdHktbWV0cmljcy5qcyIsIndlYnBhY2s6Ly9iaW8vLi9ub2RlX21vZHVsZXMvQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvdHlwZS1kZWNsYXJhdGlvbnMuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3ZlY3Rvci1vcGVyYXRpb25zLmpzIiwid2VicGFjazovL2Jpby8uL25vZGVfbW9kdWxlcy9mYXN0LXNoYTI1Ni9zaGEyNTYuanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL2Zhc3Rlc3QtbGV2ZW5zaHRlaW4vaW5kZXguanMiLCJ3ZWJwYWNrOi8vYmlvLy4vbm9kZV9tb2R1bGVzL2phcm8td2lua2xlci10eXBlc2NyaXB0L2xpYi9pbmRleC5qcyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvY2FsY3VsYXRpb25zL2ZpbmdlcnByaW50cy50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvY29uc3QudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3NlcV9hbGlnbi50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvdXRpbHMvYXRvbWljLXdvcmtzLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy91dGlscy9jZWxsLXJlbmRlcmVyLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy91dGlscy9jb25zdGFudHMudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3V0aWxzL2NvbnZlcnQudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3V0aWxzL211bHRpcGxlLXNlcXVlbmNlLWFsaWdubWVudC50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvdXRpbHMvc2VxdWVuY2UtYWN0aXZpdHktY2xpZmZzLnRzIiwid2VicGFjazovL2Jpby8uL3NyYy91dGlscy9zZXF1ZW5jZS1zcGFjZS50cyIsIndlYnBhY2s6Ly9iaW8vLi9zcmMvdXRpbHMvdXRpbHMudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3ZpZXdlcnMvdmQtcmVnaW9ucy12aWV3ZXIudHMiLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3dpZGdldHMvcmVwcmVzZW50YXRpb25zLnRzIiwid2VicGFjazovL2Jpby9leHRlcm5hbCB2YXIgXCIkXCIiLCJ3ZWJwYWNrOi8vYmlvL2V4dGVybmFsIHZhciBcIkRHXCIiLCJ3ZWJwYWNrOi8vYmlvL2V4dGVybmFsIHZhciBcImdyb2tcIiIsIndlYnBhY2s6Ly9iaW8vZXh0ZXJuYWwgdmFyIFwicnhqc1wiIiwid2VicGFjazovL2Jpby9leHRlcm5hbCB2YXIgXCJ1aVwiIiwid2VicGFjazovL2Jpby9leHRlcm5hbCB2YXIgXCJ3dVwiIiwid2VicGFjazovL2Jpby93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9iaW8vd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vYmlvL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9iaW8vd2VicGFjay9ydW50aW1lL2dldCBqYXZhc2NyaXB0IGNodW5rIGZpbGVuYW1lIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvZ2xvYmFsIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL2Jpby93ZWJwYWNrL3J1bnRpbWUvcHVibGljUGF0aCIsIndlYnBhY2s6Ly9iaW8vd2VicGFjay9ydW50aW1lL2pzb25wIGNodW5rIGxvYWRpbmciLCJ3ZWJwYWNrOi8vYmlvLy4vc3JjL3BhY2thZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnID8gbW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCkgOlxuICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoZmFjdG9yeSkgOlxuICAoZ2xvYmFsID0gZ2xvYmFsIHx8IHNlbGYsIGdsb2JhbC5BaW9saSA9IGZhY3RvcnkoKSk7XG59KHRoaXMsIChmdW5jdGlvbiAoKSB7ICd1c2Ugc3RyaWN0JztcblxuICB2YXIgbmFtZSA9IFwiQGJpb3dhc20vYWlvbGlcIjtcbiAgdmFyIHZlcnNpb24gPSBcIjIuNC4wLXJjMlwiO1xuICB2YXIgZGVzY3JpcHRpb24gPSBcIkEgZnJhbWV3b3JrIGZvciBidWlsZGluZyBXZWJBc3NlbWJseS1iYXNlZCBnZW5vbWljcyB0b29sc1wiO1xuICB2YXIgYnJvd3NlciA9IFwiZGlzdC9haW9saS5qc1wiO1xuICB2YXIgd29ya2VyID0gXCJkaXN0L2Fpb2xpLndvcmtlci5qc1wiO1xuICB2YXIgbWFpbiA9IFwiYWlvbGkuanNcIjtcbiAgdmFyIHJlcG9zaXRvcnkgPSB7XG4gIFx0dHlwZTogXCJnaXRcIixcbiAgXHR1cmw6IFwiZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9iaW93YXNtL2Fpb2xpLmdpdFwiXG4gIH07XG4gIHZhciBhdXRob3IgPSBcIlJvYmVydCBBYm91a2hhbGlsXCI7XG4gIHZhciBsaWNlbnNlID0gXCJNSVRcIjtcbiAgdmFyIGRlcGVuZGVuY2llcyA9IHtcbiAgXHRjb21saW5rOiBcIl40LjMuMVwiLFxuICBcdFwid2FzbS1mZWF0dXJlLWRldGVjdFwiOiBcIl4xLjIuMTFcIlxuICB9O1xuICB2YXIgZGV2RGVwZW5kZW5jaWVzID0ge1xuICBcdFwiQHJvbGx1cC9wbHVnaW4tY29tbW9uanNcIjogXCJeMTEuMC4xXCIsXG4gIFx0XCJAcm9sbHVwL3BsdWdpbi1qc29uXCI6IFwiXjQuMS4wXCIsXG4gIFx0XCJAcm9sbHVwL3BsdWdpbi1ub2RlLXJlc29sdmVcIjogXCJeNy4wLjBcIixcbiAgXHRjeXByZXNzOiBcIl44LjAuMFwiLFxuICBcdHJvbGx1cDogXCJeMS4yOS4wXCIsXG4gIFx0XCJyb2xsdXAtcGx1Z2luLXRlcnNlclwiOiBcIl43LjAuMlwiXG4gIH07XG4gIHZhciBzY3JpcHRzID0ge1xuICBcdGJ1aWxkOiBcInJvbGx1cCAtY1wiLFxuICBcdGRldjogXCJyb2xsdXAgLWMgLXdcIixcbiAgXHR0ZXN0OiBcImN5cHJlc3MgcnVuXCIsXG4gIFx0XCJ0ZXN0LW9wZW5cIjogXCJjeXByZXNzIG9wZW5cIlxuICB9O1xuICB2YXIgZmlsZXMgPSBbXG4gIFx0XCJkaXN0XCJcbiAgXTtcbiAgdmFyIHBrZyA9IHtcbiAgXHRuYW1lOiBuYW1lLFxuICBcdHZlcnNpb246IHZlcnNpb24sXG4gIFx0ZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLFxuICBcdGJyb3dzZXI6IGJyb3dzZXIsXG4gIFx0d29ya2VyOiB3b3JrZXIsXG4gIFx0bWFpbjogbWFpbixcbiAgXHRyZXBvc2l0b3J5OiByZXBvc2l0b3J5LFxuICBcdGF1dGhvcjogYXV0aG9yLFxuICBcdGxpY2Vuc2U6IGxpY2Vuc2UsXG4gIFx0ZGVwZW5kZW5jaWVzOiBkZXBlbmRlbmNpZXMsXG4gIFx0ZGV2RGVwZW5kZW5jaWVzOiBkZXZEZXBlbmRlbmNpZXMsXG4gIFx0c2NyaXB0czogc2NyaXB0cyxcbiAgXHRmaWxlczogZmlsZXNcbiAgfTtcblxuICAvKipcclxuICAgKiBDb3B5cmlnaHQgMjAxOSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxyXG4gICAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiAgICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gICAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gICAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICAgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiAgICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4gICAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gICAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuICAgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICAgKi9cclxuICBjb25zdCBwcm94eU1hcmtlciA9IFN5bWJvbChcIkNvbWxpbmsucHJveHlcIik7XHJcbiAgY29uc3QgY3JlYXRlRW5kcG9pbnQgPSBTeW1ib2woXCJDb21saW5rLmVuZHBvaW50XCIpO1xyXG4gIGNvbnN0IHJlbGVhc2VQcm94eSA9IFN5bWJvbChcIkNvbWxpbmsucmVsZWFzZVByb3h5XCIpO1xyXG4gIGNvbnN0IHRocm93TWFya2VyID0gU3ltYm9sKFwiQ29tbGluay50aHJvd25cIik7XHJcbiAgY29uc3QgaXNPYmplY3QgPSAodmFsKSA9PiAodHlwZW9mIHZhbCA9PT0gXCJvYmplY3RcIiAmJiB2YWwgIT09IG51bGwpIHx8IHR5cGVvZiB2YWwgPT09IFwiZnVuY3Rpb25cIjtcclxuICAvKipcclxuICAgKiBJbnRlcm5hbCB0cmFuc2ZlciBoYW5kbGUgdG8gaGFuZGxlIG9iamVjdHMgbWFya2VkIHRvIHByb3h5LlxyXG4gICAqL1xyXG4gIGNvbnN0IHByb3h5VHJhbnNmZXJIYW5kbGVyID0ge1xyXG4gICAgICBjYW5IYW5kbGU6ICh2YWwpID0+IGlzT2JqZWN0KHZhbCkgJiYgdmFsW3Byb3h5TWFya2VyXSxcclxuICAgICAgc2VyaWFsaXplKG9iaikge1xyXG4gICAgICAgICAgY29uc3QgeyBwb3J0MSwgcG9ydDIgfSA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpO1xyXG4gICAgICAgICAgZXhwb3NlKG9iaiwgcG9ydDEpO1xyXG4gICAgICAgICAgcmV0dXJuIFtwb3J0MiwgW3BvcnQyXV07XHJcbiAgICAgIH0sXHJcbiAgICAgIGRlc2VyaWFsaXplKHBvcnQpIHtcclxuICAgICAgICAgIHBvcnQuc3RhcnQoKTtcclxuICAgICAgICAgIHJldHVybiB3cmFwKHBvcnQpO1xyXG4gICAgICB9LFxyXG4gIH07XHJcbiAgLyoqXHJcbiAgICogSW50ZXJuYWwgdHJhbnNmZXIgaGFuZGxlciB0byBoYW5kbGUgdGhyb3duIGV4Y2VwdGlvbnMuXHJcbiAgICovXHJcbiAgY29uc3QgdGhyb3dUcmFuc2ZlckhhbmRsZXIgPSB7XHJcbiAgICAgIGNhbkhhbmRsZTogKHZhbHVlKSA9PiBpc09iamVjdCh2YWx1ZSkgJiYgdGhyb3dNYXJrZXIgaW4gdmFsdWUsXHJcbiAgICAgIHNlcmlhbGl6ZSh7IHZhbHVlIH0pIHtcclxuICAgICAgICAgIGxldCBzZXJpYWxpemVkO1xyXG4gICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRXJyb3IpIHtcclxuICAgICAgICAgICAgICBzZXJpYWxpemVkID0ge1xyXG4gICAgICAgICAgICAgICAgICBpc0Vycm9yOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogdmFsdWUubWVzc2FnZSxcclxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHZhbHVlLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICBzdGFjazogdmFsdWUuc3RhY2ssXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIHNlcmlhbGl6ZWQgPSB7IGlzRXJyb3I6IGZhbHNlLCB2YWx1ZSB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIFtzZXJpYWxpemVkLCBbXV07XHJcbiAgICAgIH0sXHJcbiAgICAgIGRlc2VyaWFsaXplKHNlcmlhbGl6ZWQpIHtcclxuICAgICAgICAgIGlmIChzZXJpYWxpemVkLmlzRXJyb3IpIHtcclxuICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuYXNzaWduKG5ldyBFcnJvcihzZXJpYWxpemVkLnZhbHVlLm1lc3NhZ2UpLCBzZXJpYWxpemVkLnZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRocm93IHNlcmlhbGl6ZWQudmFsdWU7XHJcbiAgICAgIH0sXHJcbiAgfTtcclxuICAvKipcclxuICAgKiBBbGxvd3MgY3VzdG9taXppbmcgdGhlIHNlcmlhbGl6YXRpb24gb2YgY2VydGFpbiB2YWx1ZXMuXHJcbiAgICovXHJcbiAgY29uc3QgdHJhbnNmZXJIYW5kbGVycyA9IG5ldyBNYXAoW1xyXG4gICAgICBbXCJwcm94eVwiLCBwcm94eVRyYW5zZmVySGFuZGxlcl0sXHJcbiAgICAgIFtcInRocm93XCIsIHRocm93VHJhbnNmZXJIYW5kbGVyXSxcclxuICBdKTtcclxuICBmdW5jdGlvbiBleHBvc2Uob2JqLCBlcCA9IHNlbGYpIHtcclxuICAgICAgZXAuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgZnVuY3Rpb24gY2FsbGJhY2soZXYpIHtcclxuICAgICAgICAgIGlmICghZXYgfHwgIWV2LmRhdGEpIHtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCB7IGlkLCB0eXBlLCBwYXRoIH0gPSBPYmplY3QuYXNzaWduKHsgcGF0aDogW10gfSwgZXYuZGF0YSk7XHJcbiAgICAgICAgICBjb25zdCBhcmd1bWVudExpc3QgPSAoZXYuZGF0YS5hcmd1bWVudExpc3QgfHwgW10pLm1hcChmcm9tV2lyZVZhbHVlKTtcclxuICAgICAgICAgIGxldCByZXR1cm5WYWx1ZTtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gcGF0aC5zbGljZSgwLCAtMSkucmVkdWNlKChvYmosIHByb3ApID0+IG9ialtwcm9wXSwgb2JqKTtcclxuICAgICAgICAgICAgICBjb25zdCByYXdWYWx1ZSA9IHBhdGgucmVkdWNlKChvYmosIHByb3ApID0+IG9ialtwcm9wXSwgb2JqKTtcclxuICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgY2FzZSBcIkdFVFwiIC8qIEdFVCAqLzpcclxuICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHJhd1ZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJTRVRcIiAvKiBTRVQgKi86XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50W3BhdGguc2xpY2UoLTEpWzBdXSA9IGZyb21XaXJlVmFsdWUoZXYuZGF0YS52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJBUFBMWVwiIC8qIEFQUExZICovOlxyXG4gICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gcmF3VmFsdWUuYXBwbHkocGFyZW50LCBhcmd1bWVudExpc3QpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJDT05TVFJVQ1RcIiAvKiBDT05TVFJVQ1QgKi86XHJcbiAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBuZXcgcmF3VmFsdWUoLi4uYXJndW1lbnRMaXN0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHByb3h5KHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICBjYXNlIFwiRU5EUE9JTlRcIiAvKiBFTkRQT0lOVCAqLzpcclxuICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHBvcnQxLCBwb3J0MiB9ID0gbmV3IE1lc3NhZ2VDaGFubmVsKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwb3NlKG9iaiwgcG9ydDIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlID0gdHJhbnNmZXIocG9ydDEsIFtwb3J0MV0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJSRUxFQVNFXCIgLyogUkVMRUFTRSAqLzpcclxuICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNhdGNoICh2YWx1ZSkge1xyXG4gICAgICAgICAgICAgIHJldHVyblZhbHVlID0geyB2YWx1ZSwgW3Rocm93TWFya2VyXTogMCB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHJldHVyblZhbHVlKVxyXG4gICAgICAgICAgICAgIC5jYXRjaCgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4geyB2YWx1ZSwgW3Rocm93TWFya2VyXTogMCB9O1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAudGhlbigocmV0dXJuVmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBbd2lyZVZhbHVlLCB0cmFuc2ZlcmFibGVzXSA9IHRvV2lyZVZhbHVlKHJldHVyblZhbHVlKTtcclxuICAgICAgICAgICAgICBlcC5wb3N0TWVzc2FnZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHdpcmVWYWx1ZSksIHsgaWQgfSksIHRyYW5zZmVyYWJsZXMpO1xyXG4gICAgICAgICAgICAgIGlmICh0eXBlID09PSBcIlJFTEVBU0VcIiAvKiBSRUxFQVNFICovKSB7XHJcbiAgICAgICAgICAgICAgICAgIC8vIGRldGFjaCBhbmQgZGVhY3RpdmUgYWZ0ZXIgc2VuZGluZyByZWxlYXNlIHJlc3BvbnNlIGFib3ZlLlxyXG4gICAgICAgICAgICAgICAgICBlcC5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBjYWxsYmFjayk7XHJcbiAgICAgICAgICAgICAgICAgIGNsb3NlRW5kUG9pbnQoZXApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGVwLnN0YXJ0KSB7XHJcbiAgICAgICAgICBlcC5zdGFydCgpO1xyXG4gICAgICB9XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGlzTWVzc2FnZVBvcnQoZW5kcG9pbnQpIHtcclxuICAgICAgcmV0dXJuIGVuZHBvaW50LmNvbnN0cnVjdG9yLm5hbWUgPT09IFwiTWVzc2FnZVBvcnRcIjtcclxuICB9XHJcbiAgZnVuY3Rpb24gY2xvc2VFbmRQb2ludChlbmRwb2ludCkge1xyXG4gICAgICBpZiAoaXNNZXNzYWdlUG9ydChlbmRwb2ludCkpXHJcbiAgICAgICAgICBlbmRwb2ludC5jbG9zZSgpO1xyXG4gIH1cclxuICBmdW5jdGlvbiB3cmFwKGVwLCB0YXJnZXQpIHtcclxuICAgICAgcmV0dXJuIGNyZWF0ZVByb3h5KGVwLCBbXSwgdGFyZ2V0KTtcclxuICB9XHJcbiAgZnVuY3Rpb24gdGhyb3dJZlByb3h5UmVsZWFzZWQoaXNSZWxlYXNlZCkge1xyXG4gICAgICBpZiAoaXNSZWxlYXNlZCkge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUHJveHkgaGFzIGJlZW4gcmVsZWFzZWQgYW5kIGlzIG5vdCB1c2VhYmxlXCIpO1xyXG4gICAgICB9XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGNyZWF0ZVByb3h5KGVwLCBwYXRoID0gW10sIHRhcmdldCA9IGZ1bmN0aW9uICgpIHsgfSkge1xyXG4gICAgICBsZXQgaXNQcm94eVJlbGVhc2VkID0gZmFsc2U7XHJcbiAgICAgIGNvbnN0IHByb3h5ID0gbmV3IFByb3h5KHRhcmdldCwge1xyXG4gICAgICAgICAgZ2V0KF90YXJnZXQsIHByb3ApIHtcclxuICAgICAgICAgICAgICB0aHJvd0lmUHJveHlSZWxlYXNlZChpc1Byb3h5UmVsZWFzZWQpO1xyXG4gICAgICAgICAgICAgIGlmIChwcm9wID09PSByZWxlYXNlUHJveHkpIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0UmVzcG9uc2VNZXNzYWdlKGVwLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJSRUxFQVNFXCIgLyogUkVMRUFTRSAqLyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBwYXRoLm1hcCgocCkgPT4gcC50b1N0cmluZygpKSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlRW5kUG9pbnQoZXApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzUHJveHlSZWxlYXNlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKHByb3AgPT09IFwidGhlblwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgdGhlbjogKCkgPT4gcHJveHkgfTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBjb25zdCByID0gcmVxdWVzdFJlc3BvbnNlTWVzc2FnZShlcCwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJHRVRcIiAvKiBHRVQgKi8sXHJcbiAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBwYXRoLm1hcCgocCkgPT4gcC50b1N0cmluZygpKSxcclxuICAgICAgICAgICAgICAgICAgfSkudGhlbihmcm9tV2lyZVZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHIudGhlbi5iaW5kKHIpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlUHJveHkoZXAsIFsuLi5wYXRoLCBwcm9wXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgc2V0KF90YXJnZXQsIHByb3AsIHJhd1ZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgdGhyb3dJZlByb3h5UmVsZWFzZWQoaXNQcm94eVJlbGVhc2VkKTtcclxuICAgICAgICAgICAgICAvLyBGSVhNRTogRVM2IFByb3h5IEhhbmRsZXIgYHNldGAgbWV0aG9kcyBhcmUgc3VwcG9zZWQgdG8gcmV0dXJuIGFcclxuICAgICAgICAgICAgICAvLyBib29sZWFuLiBUbyBzaG93IGdvb2Qgd2lsbCwgd2UgcmV0dXJuIHRydWUgYXN5bmNocm9ub3VzbHkgwq9cXF8o44OEKV8vwq9cclxuICAgICAgICAgICAgICBjb25zdCBbdmFsdWUsIHRyYW5zZmVyYWJsZXNdID0gdG9XaXJlVmFsdWUocmF3VmFsdWUpO1xyXG4gICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0UmVzcG9uc2VNZXNzYWdlKGVwLCB7XHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwiU0VUXCIgLyogU0VUICovLFxyXG4gICAgICAgICAgICAgICAgICBwYXRoOiBbLi4ucGF0aCwgcHJvcF0ubWFwKChwKSA9PiBwLnRvU3RyaW5nKCkpLFxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZSxcclxuICAgICAgICAgICAgICB9LCB0cmFuc2ZlcmFibGVzKS50aGVuKGZyb21XaXJlVmFsdWUpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGFwcGx5KF90YXJnZXQsIF90aGlzQXJnLCByYXdBcmd1bWVudExpc3QpIHtcclxuICAgICAgICAgICAgICB0aHJvd0lmUHJveHlSZWxlYXNlZChpc1Byb3h5UmVsZWFzZWQpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhc3QgPSBwYXRoW3BhdGgubGVuZ3RoIC0gMV07XHJcbiAgICAgICAgICAgICAgaWYgKGxhc3QgPT09IGNyZWF0ZUVuZHBvaW50KSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0UmVzcG9uc2VNZXNzYWdlKGVwLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcIkVORFBPSU5UXCIgLyogRU5EUE9JTlQgKi8sXHJcbiAgICAgICAgICAgICAgICAgIH0pLnRoZW4oZnJvbVdpcmVWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIC8vIFdlIGp1c3QgcHJldGVuZCB0aGF0IGBiaW5kKClgIGRpZG7igJl0IGhhcHBlbi5cclxuICAgICAgICAgICAgICBpZiAobGFzdCA9PT0gXCJiaW5kXCIpIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVByb3h5KGVwLCBwYXRoLnNsaWNlKDAsIC0xKSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGNvbnN0IFthcmd1bWVudExpc3QsIHRyYW5zZmVyYWJsZXNdID0gcHJvY2Vzc0FyZ3VtZW50cyhyYXdBcmd1bWVudExpc3QpO1xyXG4gICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0UmVzcG9uc2VNZXNzYWdlKGVwLCB7XHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwiQVBQTFlcIiAvKiBBUFBMWSAqLyxcclxuICAgICAgICAgICAgICAgICAgcGF0aDogcGF0aC5tYXAoKHApID0+IHAudG9TdHJpbmcoKSksXHJcbiAgICAgICAgICAgICAgICAgIGFyZ3VtZW50TGlzdCxcclxuICAgICAgICAgICAgICB9LCB0cmFuc2ZlcmFibGVzKS50aGVuKGZyb21XaXJlVmFsdWUpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGNvbnN0cnVjdChfdGFyZ2V0LCByYXdBcmd1bWVudExpc3QpIHtcclxuICAgICAgICAgICAgICB0aHJvd0lmUHJveHlSZWxlYXNlZChpc1Byb3h5UmVsZWFzZWQpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IFthcmd1bWVudExpc3QsIHRyYW5zZmVyYWJsZXNdID0gcHJvY2Vzc0FyZ3VtZW50cyhyYXdBcmd1bWVudExpc3QpO1xyXG4gICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0UmVzcG9uc2VNZXNzYWdlKGVwLCB7XHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwiQ09OU1RSVUNUXCIgLyogQ09OU1RSVUNUICovLFxyXG4gICAgICAgICAgICAgICAgICBwYXRoOiBwYXRoLm1hcCgocCkgPT4gcC50b1N0cmluZygpKSxcclxuICAgICAgICAgICAgICAgICAgYXJndW1lbnRMaXN0LFxyXG4gICAgICAgICAgICAgIH0sIHRyYW5zZmVyYWJsZXMpLnRoZW4oZnJvbVdpcmVWYWx1ZSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHByb3h5O1xyXG4gIH1cclxuICBmdW5jdGlvbiBteUZsYXQoYXJyKSB7XHJcbiAgICAgIHJldHVybiBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLCBhcnIpO1xyXG4gIH1cclxuICBmdW5jdGlvbiBwcm9jZXNzQXJndW1lbnRzKGFyZ3VtZW50TGlzdCkge1xyXG4gICAgICBjb25zdCBwcm9jZXNzZWQgPSBhcmd1bWVudExpc3QubWFwKHRvV2lyZVZhbHVlKTtcclxuICAgICAgcmV0dXJuIFtwcm9jZXNzZWQubWFwKCh2KSA9PiB2WzBdKSwgbXlGbGF0KHByb2Nlc3NlZC5tYXAoKHYpID0+IHZbMV0pKV07XHJcbiAgfVxyXG4gIGNvbnN0IHRyYW5zZmVyQ2FjaGUgPSBuZXcgV2Vha01hcCgpO1xyXG4gIGZ1bmN0aW9uIHRyYW5zZmVyKG9iaiwgdHJhbnNmZXJzKSB7XHJcbiAgICAgIHRyYW5zZmVyQ2FjaGUuc2V0KG9iaiwgdHJhbnNmZXJzKTtcclxuICAgICAgcmV0dXJuIG9iajtcclxuICB9XHJcbiAgZnVuY3Rpb24gcHJveHkob2JqKSB7XHJcbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKG9iaiwgeyBbcHJveHlNYXJrZXJdOiB0cnVlIH0pO1xyXG4gIH1cclxuICBmdW5jdGlvbiB0b1dpcmVWYWx1ZSh2YWx1ZSkge1xyXG4gICAgICBmb3IgKGNvbnN0IFtuYW1lLCBoYW5kbGVyXSBvZiB0cmFuc2ZlckhhbmRsZXJzKSB7XHJcbiAgICAgICAgICBpZiAoaGFuZGxlci5jYW5IYW5kbGUodmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgW3NlcmlhbGl6ZWRWYWx1ZSwgdHJhbnNmZXJhYmxlc10gPSBoYW5kbGVyLnNlcmlhbGl6ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJIQU5ETEVSXCIgLyogSEFORExFUiAqLyxcclxuICAgICAgICAgICAgICAgICAgICAgIG5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc2VyaWFsaXplZFZhbHVlLFxyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICB0cmFuc2ZlcmFibGVzLFxyXG4gICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgICB0eXBlOiBcIlJBV1wiIC8qIFJBVyAqLyxcclxuICAgICAgICAgICAgICB2YWx1ZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB0cmFuc2ZlckNhY2hlLmdldCh2YWx1ZSkgfHwgW10sXHJcbiAgICAgIF07XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIGZyb21XaXJlVmFsdWUodmFsdWUpIHtcclxuICAgICAgc3dpdGNoICh2YWx1ZS50eXBlKSB7XHJcbiAgICAgICAgICBjYXNlIFwiSEFORExFUlwiIC8qIEhBTkRMRVIgKi86XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRyYW5zZmVySGFuZGxlcnMuZ2V0KHZhbHVlLm5hbWUpLmRlc2VyaWFsaXplKHZhbHVlLnZhbHVlKTtcclxuICAgICAgICAgIGNhc2UgXCJSQVdcIiAvKiBSQVcgKi86XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnZhbHVlO1xyXG4gICAgICB9XHJcbiAgfVxyXG4gIGZ1bmN0aW9uIHJlcXVlc3RSZXNwb25zZU1lc3NhZ2UoZXAsIG1zZywgdHJhbnNmZXJzKSB7XHJcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaWQgPSBnZW5lcmF0ZVVVSUQoKTtcclxuICAgICAgICAgIGVwLmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGZ1bmN0aW9uIGwoZXYpIHtcclxuICAgICAgICAgICAgICBpZiAoIWV2LmRhdGEgfHwgIWV2LmRhdGEuaWQgfHwgZXYuZGF0YS5pZCAhPT0gaWQpIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBlcC5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBsKTtcclxuICAgICAgICAgICAgICByZXNvbHZlKGV2LmRhdGEpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBpZiAoZXAuc3RhcnQpIHtcclxuICAgICAgICAgICAgICBlcC5zdGFydCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZXAucG9zdE1lc3NhZ2UoT2JqZWN0LmFzc2lnbih7IGlkIH0sIG1zZyksIHRyYW5zZmVycyk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBmdW5jdGlvbiBnZW5lcmF0ZVVVSUQoKSB7XHJcbiAgICAgIHJldHVybiBuZXcgQXJyYXkoNClcclxuICAgICAgICAgIC5maWxsKDApXHJcbiAgICAgICAgICAubWFwKCgpID0+IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS50b1N0cmluZygxNikpXHJcbiAgICAgICAgICAuam9pbihcIi1cIik7XHJcbiAgfVxuICAvLyMgc291cmNlTWFwcGluZ1VSTD1jb21saW5rLm1qcy5tYXBcblxuICAvLyBDb25zdGFudHNcbiAgY29uc3QgVVJMX0NETl9ST09UID0gXCJodHRwczovL2Nkbi5iaW93YXNtLmNvbS92MlwiO1xuICBjb25zdCBDT05GSUdfREVGQVVMVFMgPSB7XG4gIFx0Ly8gQmlvd2FzbSBDRE4gVVJMc1xuICBcdHVybENETjogVVJMX0NETl9ST09ULFxuICBcdC8vIEdldCB0aGUgV29ya2VyIGNvZGUgY29ycmVzcG9uZGluZyB0byB0aGUgY3VycmVudCBBaW9saSB2ZXJzaW9uXG4gIFx0dXJsQWlvbGk6IGAke1VSTF9DRE5fUk9PVH0vYWlvbGkvJHtwa2cudmVyc2lvbn0vYWlvbGkud29ya2VyLmpzYCxcbiAgXHQvLyBXaGVyZSB3ZSBjYW4gZmluZCB0aGUgYmFzZSBiaW93YXNtIG1vZHVsZSAob25seSBtb2RpZnkgdGhpcyBmb3IgbG9jYWwgZGV2ZWxvcG1lbnQpXG4gIFx0dXJsQmFzZU1vZHVsZTogbnVsbCxcblxuICBcdC8vIEZvbGRlciB0byB1c2UgZm9yIG1vdW50aW5nIHRoZSBzaGFyZWQgZmlsZXN5c3RlbVxuICBcdGRpclNoYXJlZDogXCIvc2hhcmVkXCIsXG4gIFx0Ly8gRm9sZGVyIHRvIHVzZSBmb3IgbW91bnRpbmcgRmlsZS9CbG9iIG9iamVjdHMgdG8gdGhlIHZpcnR1YWwgZmlsZSBzeXN0ZW1cbiAgXHRkaXJNb3VudGVkOiBcIi9tbnRcIixcbiAgXHQvLyBGb2xkZXIgdG8gdXNlIGZvciBzeW1saW5rcyAoYmFzaWNhbGx5LCB3ZSBtYWtlIGEgc3ltbGluayB0byBlYWNoIGZpbGUgbW91bnRlZCBvbiBXT1JLRVJGU1xuICBcdC8vIHNvIHRoYXQgb3BlcmF0aW9ucyBsaWtlIFwic2FtdG9vbHMgaW5kZXhcIiBkb24ndCBjcmFzaCBkdWUgdG8gdGhlIHJlYWQtb25seSBuYXR1cmUgb2YgV09SS0VSUykuXG4gIFx0Ly8gQWxzbyBtb3VudCBVUkxzIGxhemlseSBpbiB0aGF0IGZvbGRlci5cbiAgXHRkaXJEYXRhOiBcIi9kYXRhXCIsXG4gIFx0Ly8gSW50ZXJsZWF2ZSBzdGRvdXQvc3RkZXJyLiBJZiBzZXQgdG8gZmFsc2UsIGAuZXhlYygpYCByZXR1cm5zIGFuIG9iamVjdCB7IFwic3Rkb3V0XCI6IDx0ZXh0PiwgXCJzdGRlcnJcIjogPHRleHQ+IH1cbiAgXHRwcmludEludGVybGVhdmVkOiB0cnVlLFxuXG4gIFx0Ly8gQ2FsbGJhY2sgZnVuY3Rpb24gdG8gcnVuIHdoZW5ldmVyIHdlIHJlY2VpdmUgYSBtZXNzYWdlIGZyb20gdGhlIFdlYldvcmtlciB3aXRoIHBheWxvYWQgeyB0eXBlOiBcImJpb3dhc21cIiwgdmFsdWU6IC4uLiB9LlxuICBcdC8vIFNlZSA8aHR0cHM6Ly9naXRodWIuY29tL2Jpb3dhc20vYmlvd2FzbS90cmVlL21haW4vdG9vbHMvYmh0c25lPiBmb3IgYW4gZXhhbXBsZSBvZiBob3cgdGhpcyBjYW4gYmUgdXNlZCB0byBzZW5kIHJlZ3VsYXIgdXBkYXRlc1xuICBcdC8vIGJhY2sgdG8gdGhlIG1haW4gdGhyZWFkIGJlZm9yZSBjYWxsTWFpbigpIGlzIGRvbmUgcnVubmluZy5cbiAgXHRjYWxsYmFjazogbnVsbCxcblxuICBcdC8vIERlYnVnZ2luZ1xuICBcdGRlYnVnOiBmYWxzZSxcbiAgXHRlbnY6IFwicHJkXCJcbiAgfTtcblxuICAvLyBDbGFzczogMSBvYmplY3QgPSAxIHdvcmtlcjsgdXNlciBjYW4gZGVjaWRlIGlmIHRoZXkgd2FudCB0b29scyBydW5uaW5nIGluIHNlcGFyYXRlIHRocmVhZHMgb3IgYWxsIG9mIHRoZW0gaW4gb25lXG4gIGNsYXNzIEFpb2xpXG4gIHtcbiAgXHRjb25zdHJ1Y3Rvcih0b29scywgY29uZmlnPXt9KVxuICBcdHtcbiAgXHRcdGlmKHRvb2xzID09IG51bGwpXG4gIFx0XHRcdHRocm93IFwiRXhwZWN0aW5nIGFycmF5IG9mIHRvb2xzIGFzIGlucHV0IHRvIEFpb2xpIGNvbnN0cnVjdG9yLlwiO1xuXG4gIFx0XHQvLyBQYXJzZSB1c2VyIGlucHV0XG4gIFx0XHRpZighQXJyYXkuaXNBcnJheSh0b29scykpXG4gIFx0XHRcdHRvb2xzID0gWyB0b29scyBdO1xuICBcdFx0Ly8gT3ZlcndyaXRlIGRlZmF1bHQgY29uZmlnIGlmIHNwZWNpZmllZFxuICBcdFx0Y29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgQ09ORklHX0RFRkFVTFRTLCBjb25maWcpO1xuICBcdFx0Ly8gRm9yIGNvbnZlbmllbmNlLCBzdXBwb3J0IFwiPHRvb2w+Lzx2ZXJzaW9uPlwiIG9yIFwiPHRvb2w+Lzxwcm9ncmFtPi88dmVyc2lvbj5cIiBpbnN0ZWFkIG9mIG9iamVjdCBjb25maWdcbiAgXHRcdHRvb2xzID0gdG9vbHMubWFwKHRoaXMuX3BhcnNlVG9vbCk7XG4gIFx0XHQvLyBJZiB0ZXN0aW5nIHdpdGggZGlmZmVyZW50IGVudmlyb25tZW50IGUuZy4gY2RuLXN0Zy5iaW93YXNtLmNvbVxuICBcdFx0aWYoY29uZmlnLmVudiAhPSBcInByZFwiKSB7XG4gIFx0XHRcdGNvbmZpZy51cmxDRE4gPSBjb25maWcudXJsQ0ROLnJlcGxhY2UoXCJjZG5cIiwgYGNkbi0ke2NvbmZpZy5lbnZ9YCk7XG4gIFx0XHRcdGNvbmZpZy51cmxBaW9saSA9IGNvbmZpZy51cmxBaW9saS5yZXBsYWNlKFwiY2RuXCIsIGBjZG4tJHtjb25maWcuZW52fWApO1xuICBcdFx0fVxuXG4gIFx0XHQvLyBBZGQgYmlvd2FzbSBiYXNlIG1vZHVsZSB0byBsaXN0IG9mIHRvb2xzIHRvIGluaXRpYWxpemUgKG5lZWQgdGhpcyBmb3IgdGhlIHNoYXJlZCB2aXJ0dWFsIGZpbGVzeXN0ZW0pXG4gIFx0XHR0b29scyA9IFt7XG4gIFx0XHRcdHRvb2w6IFwiYmFzZVwiLFxuICBcdFx0XHR2ZXJzaW9uOiBwa2cudmVyc2lvbixcbiAgXHRcdFx0dXJsUHJlZml4OiBjb25maWcudXJsQmFzZU1vZHVsZVxuICBcdFx0fSwgLi4udG9vbHNdO1xuXG4gIFx0XHQvLyBTZXQgc3RhdGVcbiAgXHRcdHRoaXMudG9vbHMgPSB0b29scztcbiAgXHRcdHRoaXMuY29uZmlnID0gY29uZmlnO1xuXG4gIFx0XHQvLyBIYW5kbGUgY2FsbGJhY2sgKGRlbGV0ZSBpdCBiZWNhdXNlIHdlIGNhbid0IHNlbmQgYSBmdW5jdGlvbiB0byB0aGUgV2ViV29ya2VyKVxuICBcdFx0aWYodGhpcy5jb25maWcuY2FsbGJhY2sgIT0gbnVsbClcbiAgXHRcdFx0dGhpcy5jYWxsYmFjayA9IHRoaXMuY29uZmlnLmNhbGxiYWNrO1xuICBcdFx0ZGVsZXRlIHRoaXMuY29uZmlnLmNhbGxiYWNrO1xuXG4gIFx0XHRyZXR1cm4gdGhpcy5pbml0KCk7XG4gIFx0fVxuXG4gIFx0Ly8gSW5pdGlhbGl6ZSB0aGUgV2ViV29ya2VyIGFuZCB0aGUgV2ViQXNzZW1ibHkgbW9kdWxlcyB3aXRoaW4gaXRcbiAgXHRhc3luYyBpbml0KCkge1xuICBcdFx0Ly8gTm90ZTogV2UgY2FuIG9ubHkgY3JlYXRlIGEgV2ViV29ya2VyIHVzaW5nIGEgVVJMIHRoYXQgaGFzIHRoZSBzYW1lIG9yaWdpbiBhcyB0aGUgYXBwIHJ1bm5pbmcgaXQsIGkuZS4gd2VcbiAgXHRcdC8vIGNhbid0IGRvIGBuZXcgV29ya2VyKFwiaHR0cHM6Ly9jZG4uYmlvd2FzbS5jb20vdjIvLi4uXCIpYCwgc28gaW5zdGVhZCB3ZSBuZWVkIHRvIGZldGNoIHRoZSBjb250ZW50cyBvZiB0aGF0XG4gIFx0XHQvLyBVUkwgZmlyc3QsIGFuZCB0aGVuIGNyZWF0ZSB0aGUgV2ViV29ya2VyLiBTZWUgPGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS82MDAxNTg5OD4uXG4gIFx0XHRjb25zdCBtb2R1bGVKUyA9IGF3YWl0IChhd2FpdCBmZXRjaCh0aGlzLmNvbmZpZy51cmxBaW9saSkpLnRleHQoKTtcbiAgXHRcdGNvbnN0IG1vZHVsZUJsb2IgPSBuZXcgQmxvYihbbW9kdWxlSlNdLCB7IHR5cGU6IFwiYXBwbGljYXRpb24vamF2YXNjcmlwdFwiIH0pO1xuXG4gIFx0XHQvLyBDcmVhdGUgdGhlIFdlYldvcmtlclxuICBcdFx0Y29uc3Qgd29ya2VyID0gbmV3IFdvcmtlcihVUkwuY3JlYXRlT2JqZWN0VVJMKG1vZHVsZUJsb2IpKTtcbiAgXHRcdC8vIExpc3RlbiBmb3IgXCJiaW93YXNtXCIgbWVzc2FnZXMgZnJvbSB0aGUgV2ViV29ya2VyXG4gIFx0XHRpZih0aGlzLmNhbGxiYWNrKVxuICBcdFx0XHR3b3JrZXIub25tZXNzYWdlID0gZSA9PiB7XG4gIFx0XHRcdFx0aWYoZS5kYXRhLnR5cGUgPT0gXCJiaW93YXNtXCIpXG4gIFx0XHRcdFx0XHR0aGlzLmNhbGxiYWNrKGUuZGF0YS52YWx1ZSk7XG4gIFx0XHRcdH07XG5cbiAgXHRcdGNvbnN0IGFpb2xpID0gd3JhcCh3b3JrZXIpO1xuICBcdFx0YWlvbGkudG9vbHMgPSB0aGlzLnRvb2xzO1xuICBcdFx0YWlvbGkuY29uZmlnID0gdGhpcy5jb25maWc7XG5cbiAgXHRcdC8vIEluaXRpYWxpemUgdGhlIHRvb2xzIGluc2lkZSB0aGUgV2ViV29ya2VyXG4gIFx0XHRhd2FpdCBhaW9saS5pbml0KCk7XG5cbiAgXHRcdHJldHVybiBhaW9saTtcbiAgXHR9XG5cbiAgXHQvLyBQYXJzZSBcIjx0b29sPi88dmVyc2lvbj5cIiBhbmQgXCI8dG9vbD4vPHByb2dyYW0+Lzx2ZXJzaW9uPlwiIGludG8geyBcInRvb2xcIjogPHRvb2w+LCBcInByb2dyYW1cIjogPHByb2dyYW0+LCBcInZlcnNpb25cIjogPHZlcnNpb24+IH1cbiAgXHRfcGFyc2VUb29sKHRvb2wpXG4gIFx0e1xuICBcdFx0Ly8gSWYgbm90IGEgc3RyaW5nLCBsZWF2ZSBpdCBhcyBpc1xuICBcdFx0aWYodHlwZW9mIHRvb2wgIT09IFwic3RyaW5nXCIpXG4gIFx0XHRcdHJldHVybiB0b29sO1xuXG4gIFx0XHQvLyBTdXBwb3J0IFwiPHRvb2w+Lzx2ZXJzaW9uPlwiIGFuZCBcIjx0b29sPi88cHJvZ3JhbT4vPHZlcnNpb24+XCJcbiAgXHRcdGNvbnN0IHRvb2xTcGxpdCA9IHRvb2wuc3BsaXQoXCIvXCIpO1xuICBcdFx0aWYodG9vbFNwbGl0Lmxlbmd0aCAhPSAyICYmIHRvb2xTcGxpdC5sZW5ndGggIT0gMylcbiAgXHRcdFx0dGhyb3cgXCJFeHBlY3RpbmcgJzx0b29sPi88dmVyc2lvbj4nIG9yICc8dG9vbD4vPHByb2dyYW0+Lzx2ZXJzaW9uPidcIjtcblxuICBcdFx0cmV0dXJuIHtcbiAgXHRcdFx0dG9vbDogdG9vbFNwbGl0WzBdLFxuICBcdFx0XHRwcm9ncmFtOiB0b29sU3BsaXQubGVuZ3RoID09IDMgPyB0b29sU3BsaXRbMV0gOiB0b29sU3BsaXRbMF0sXG4gIFx0XHRcdHZlcnNpb246IHRvb2xTcGxpdFt0b29sU3BsaXQubGVuZ3RoIC0gMV1cbiAgXHRcdH07XG4gIFx0fVxuICB9XG5cbiAgcmV0dXJuIEFpb2xpO1xuXG59KSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWlvbGkuanMubWFwXG4iLCJpbXBvcnQgeyBTZXFQYWxldHRlQmFzZSB9IGZyb20gJy4vc2VxLXBhbGV0dGVzJztcbmV4cG9ydCBjbGFzcyBBbWlub2FjaWRzUGFsZXR0ZXMgZXh0ZW5kcyBTZXFQYWxldHRlQmFzZSB7XG4gICAgc3RhdGljIGdldCBMZXNrKCkge1xuICAgICAgICBpZiAodGhpcy5sZXNrID09PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHRoaXMubGVzayA9IHRoaXMubWFrZVBhbGV0dGUoW1xuICAgICAgICAgICAgICAgIFtbJ0cnLCAnQScsICdTJywgJ1QnXSwgJ29yYW5nZSddLFxuICAgICAgICAgICAgICAgIFtbJ0MnLCAnVicsICdJJywgJ0wnLCAnUCcsICdGJywgJ1knLCAnTScsICdXJ10sICdhbGxfZ3JlZW4nXSxcbiAgICAgICAgICAgICAgICBbWydOJywgJ1EnLCAnSCddLCAnbWFnZW50YSddLFxuICAgICAgICAgICAgICAgIFtbJ0QnLCAnRSddLCAncmVkJ10sXG4gICAgICAgICAgICAgICAgW1snSycsICdSJ10sICdhbGxfYmx1ZSddLFxuICAgICAgICAgICAgXSwgZmFsc2UsIEFtaW5vYWNpZHNQYWxldHRlcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubGVzaztcbiAgICB9XG4gICAgc3RhdGljIGdldCBHcm9rR3JvdXBzKCkge1xuICAgICAgICBpZiAodGhpcy5ncm9rR3JvdXBzID09PSB2b2lkIDApIHtcbiAgICAgICAgICAgIHRoaXMuZ3Jva0dyb3VwcyA9IHRoaXMubWFrZVBhbGV0dGUoW1xuICAgICAgICAgICAgICAgIFtbJ0MnLCAnVSddLCAneWVsbG93J10sXG4gICAgICAgICAgICAgICAgW1snRycsICdQJ10sICdyZWQnXSxcbiAgICAgICAgICAgICAgICBbWydBJywgJ1YnLCAnSScsICdMJywgJ00nLCAnRicsICdZJywgJ1cnXSwgJ2FsbF9ncmVlbiddLFxuICAgICAgICAgICAgICAgIFtbJ1InLCAnSCcsICdLJ10sICdsaWdodF9ibHVlJ10sXG4gICAgICAgICAgICAgICAgW1snRCcsICdFJ10sICdkYXJrX2JsdWUnXSxcbiAgICAgICAgICAgICAgICBbWydTJywgJ1QnLCAnTicsICdRJ10sICdvcmFuZ2UnXSxcbiAgICAgICAgICAgIF0sIGZhbHNlLCBBbWlub2FjaWRzUGFsZXR0ZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmdyb2tHcm91cHM7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgUmFzTW9sKCkge1xuICAgICAgICBpZiAodGhpcy5yYXNNb2wgPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgdGhpcy5yYXNNb2wgPSBuZXcgQW1pbm9hY2lkc1BhbGV0dGVzKHtcbiAgICAgICAgICAgICAgICAvLyBodHRwOi8vYWNjZXMuZW5zLWx5b24uZnIvYmlvdGljL3Jhc3RvcC9oZWxwL2NvbG91ci5odG1cbiAgICAgICAgICAgICAgICAnRCc6ICcjRTYwQTBBJyxcbiAgICAgICAgICAgICAgICAnRSc6ICcjRTYwQTBBJyxcbiAgICAgICAgICAgICAgICAnQyc6ICcjRTZFNjAwJyxcbiAgICAgICAgICAgICAgICAnTSc6ICcjRTZFNjAwJyxcbiAgICAgICAgICAgICAgICAnSyc6ICcjMTQ1QUZGJyxcbiAgICAgICAgICAgICAgICAnUic6ICcjMTQ1QUZGJyxcbiAgICAgICAgICAgICAgICAnUyc6ICcjRkE5NjAwJyxcbiAgICAgICAgICAgICAgICAnVCc6ICcjRkE5NjAwJyxcbiAgICAgICAgICAgICAgICAnRic6ICcjMzIzMkFBJyxcbiAgICAgICAgICAgICAgICAnWSc6ICcjMzIzMkFBJyxcbiAgICAgICAgICAgICAgICAnTic6ICcjMDBEQ0RDJyxcbiAgICAgICAgICAgICAgICAnUSc6ICcjMDBEQ0RDJyxcbiAgICAgICAgICAgICAgICAnRyc6ICcjRUJFQkVCJyxcbiAgICAgICAgICAgICAgICAnTCc6ICcjMEY4MjBGJyxcbiAgICAgICAgICAgICAgICAnVic6ICcjMEY4MjBGJyxcbiAgICAgICAgICAgICAgICAnSSc6ICcjMEY4MjBGJyxcbiAgICAgICAgICAgICAgICAnQSc6ICcjQzhDOEM4JyxcbiAgICAgICAgICAgICAgICAnVyc6ICcjQjQ1QUI0JyxcbiAgICAgICAgICAgICAgICAnSCc6ICcjODI4MkQyJyxcbiAgICAgICAgICAgICAgICAnUCc6ICcjREM5NjgyJyxcbiAgICAgICAgICAgICAgICAnb3RoZXJzJzogJyNCRUEwNkUnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMucmFzTW9sO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBBbWlub2FjaWRzIHtcbiAgICBzdGF0aWMgZ2V0UGFsZXR0ZShzY2hlbWUgPSAnZ3JvaycpIHtcbiAgICAgICAgc3dpdGNoIChzY2hlbWUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2dyb2snOlxuICAgICAgICAgICAgICAgIHJldHVybiBBbWlub2FjaWRzUGFsZXR0ZXMuR3Jva0dyb3VwcztcbiAgICAgICAgICAgIGNhc2UgJ2xlc2snOlxuICAgICAgICAgICAgICAgIHJldHVybiBBbWlub2FjaWRzUGFsZXR0ZXMuTGVzaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDaGVtUGFsZXR0ZTogc2NoZW1lIFxcYCR7c2NoZW1lfVxcYCBkb2VzIG5vdCBleGlzdGApO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgZGl2aWRlZCBhbWlubyBhY2lkIHdpdGggaXRzIGNvbnRlbnQgaW4gdGhlIGJyYWNrZXQsIGlmIHRoZSBjb250ZW50IGlzIG51bWJlciwgdGhlbiBpdHMgb21pdHRlZFxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGMgcmF3IGFtaW5vXG4gICAgICogQHJldHVybiB7W3N0cmluZywgc3RyaW5nXX0gb3V0ZXIgYW5kIGlubmVyIGNvbnRlbnRcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0SW5uZXJPdXRlcihjKSB7XG4gICAgICAgIGxldCBpc0lubmVyID0gMDtcbiAgICAgICAgbGV0IGlubmVyID0gJyc7XG4gICAgICAgIGxldCBvdXRlciA9ICcnO1xuICAgICAgICBmb3IgKGNvbnN0IGNoYXIgb2YgYykge1xuICAgICAgICAgICAgaWYgKGNoYXIgPT0gJygnKVxuICAgICAgICAgICAgICAgIGlzSW5uZXIrKztcbiAgICAgICAgICAgIGVsc2UgaWYgKGNoYXIgPT0gJyknKVxuICAgICAgICAgICAgICAgIGlzSW5uZXItLTtcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzSW5uZXIpXG4gICAgICAgICAgICAgICAgaW5uZXIgKz0gY2hhcjtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBvdXRlciArPSBjaGFyO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhaXNOYU4ocGFyc2VJbnQoaW5uZXIpKSA/IFtvdXRlciwgJyddIDogW291dGVyLCBpbm5lcl07XG4gICAgfVxuICAgIHN0YXRpYyBnZXRDb2xvckFBUGl2b3QobW9ub21lciA9ICcnLCBzY2hlbWUgPSAnZ3JvaycpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIC8vY29uc3QgY2hlbVBhbGV0dGVJbnN0YW5jZSA9IEFBUGFsZXR0ZXMuR3Jva0dyb3VwcygpO1xuICAgICAgICBjb25zdCBjaGVtUGFsZXR0ZUluc3RhbmNlID0gdGhpcy5nZXRQYWxldHRlKHNjaGVtZSk7XG4gICAgICAgIGxldCBbb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXJdID0gdGhpcy5nZXRJbm5lck91dGVyKG1vbm9tZXIpO1xuICAgICAgICBvdXRlck1vbm9tZXIgPSAob3V0ZXJNb25vbWVyLmxlbmd0aCA+IDYgPyBgJHtvdXRlck1vbm9tZXIuc2xpY2UoMCwgMyl9Li4uYCA6IG91dGVyTW9ub21lcik7XG4gICAgICAgIGlubmVyTW9ub21lciA9IChpbm5lck1vbm9tZXIubGVuZ3RoID4gNiA/IGAke2lubmVyTW9ub21lci5zbGljZSgwLCAzKX0uLi5gIDogaW5uZXJNb25vbWVyKTtcbiAgICAgICAgaWYgKG1vbm9tZXIubGVuZ3RoID09IDEgfHwgbW9ub21lclsxXSA9PSAnKCcpIHtcbiAgICAgICAgICAgIGNvbnN0IGFtaW5vID0gKF9hID0gbW9ub21lclswXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgICAgICByZXR1cm4gYW1pbm8gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSA/XG4gICAgICAgICAgICAgICAgW2NoZW1QYWxldHRlSW5zdGFuY2UuZ2V0KGFtaW5vKSwgYW1pbm8sIGlubmVyTW9ub21lciwgMV0gOlxuICAgICAgICAgICAgICAgIFt0aGlzLnVuZGVmaW5lZENvbG9yLCBvdXRlck1vbm9tZXIsIGlubmVyTW9ub21lciwgMV07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1vbm9tZXJbMF0gPT0gJ2QnICYmIG1vbm9tZXJbMV0gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSkge1xuICAgICAgICAgICAgaWYgKG1vbm9tZXIubGVuZ3RoID09IDIgfHwgbW9ub21lclsyXSA9PSAnKCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhbWlubyA9IChfYiA9IG1vbm9tZXJbMV0pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBhbWlubyBpbiBjaGVtUGFsZXR0ZUluc3RhbmNlID9cbiAgICAgICAgICAgICAgICAgICAgW2NoZW1QYWxldHRlSW5zdGFuY2UuZ2V0KGFtaW5vKSwgYW1pbm8sIGlubmVyTW9ub21lciwgMl0gOlxuICAgICAgICAgICAgICAgICAgICBbdGhpcy51bmRlZmluZWRDb2xvciwgb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXIsIDJdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtb25vbWVyLnN1YnN0cmluZygwLCAzKSBpbiB0aGlzLkFBRnVsbE5hbWVzKSB7XG4gICAgICAgICAgICBpZiAobW9ub21lci5sZW5ndGggPT0gMyB8fCBtb25vbWVyWzNdID09ICcoJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFtaW5vID0gdGhpcy5BQUZ1bGxOYW1lc1ttb25vbWVyLnN1YnN0cmluZygwLCAzKV07XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFtaW5vIGluIGNoZW1QYWxldHRlSW5zdGFuY2UgP1xuICAgICAgICAgICAgICAgICAgICBbY2hlbVBhbGV0dGVJbnN0YW5jZS5nZXQoYW1pbm8pLCBhbWlubywgaW5uZXJNb25vbWVyLCAzXSA6XG4gICAgICAgICAgICAgICAgICAgIFt0aGlzLnVuZGVmaW5lZENvbG9yLCBvdXRlck1vbm9tZXIsIGlubmVyTW9ub21lciwgM107XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCgoX2MgPSBtb25vbWVyWzBdKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MudG9Mb3dlckNhc2UoKSkgPT0gbW9ub21lclswXSkge1xuICAgICAgICAgICAgaWYgKG1vbm9tZXIuc3Vic3RyaW5nKDEsIDMpIGluIHRoaXMuQUFGdWxsTmFtZXMpIHtcbiAgICAgICAgICAgICAgICBpZiAobW9ub21lci5sZW5ndGggPT0gNCB8fCBtb25vbWVyWzRdID09ICcoJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhbWlubyA9IHRoaXMuQUFGdWxsTmFtZXNbbW9ub21lci5zdWJzdHJpbmcoMSwgMyldO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYW1pbm8gaW4gY2hlbVBhbGV0dGVJbnN0YW5jZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlbVBhbGV0dGVJbnN0YW5jZS5nZXQoYW1pbm8pLCBhbWlubywgaW5uZXJNb25vbWVyLCA0XSA6XG4gICAgICAgICAgICAgICAgICAgICAgICBbdGhpcy51bmRlZmluZWRDb2xvciwgb3V0ZXJNb25vbWVyLCBpbm5lck1vbm9tZXIsIDRdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW3RoaXMudW5kZWZpbmVkQ29sb3IsIG91dGVyTW9ub21lciwgaW5uZXJNb25vbWVyLCAwXTtcbiAgICB9XG59XG5BbWlub2FjaWRzLlNlbVR5cGUgPSAnQW1pbm9hY2lkcyc7XG5BbWlub2FjaWRzLlNlbVR5cGVNdWx0aXBsZUFsaWdubWVudCA9ICdBbWlub2FjaWRzTXVsdGlwbGVBbGlnbm1lbnQnO1xuQW1pbm9hY2lkcy51bmRlZmluZWRDb2xvciA9ICdyZ2IoMTAwLDEwMCwxMDApJztcbkFtaW5vYWNpZHMuTmFtZXMgPSB7XG4gICAgJ0cnOiAnR2x5Y2luZScsXG4gICAgJ0wnOiAnTGV1Y2luZScsXG4gICAgJ1knOiAnVHlyb3NpbmUnLFxuICAgICdTJzogJ1NlcmluZScsXG4gICAgJ0UnOiAnR2x1dGFtaWMgYWNpZCcsXG4gICAgJ1EnOiAnR2x1dGFtaW5lJyxcbiAgICAnRCc6ICdBc3BhcnRpYyBhY2lkJyxcbiAgICAnTic6ICdBc3BhcmFnaW5lJyxcbiAgICAnRic6ICdQaGVueWxhbGFuaW5lJyxcbiAgICAnQSc6ICdBbGFuaW5lJyxcbiAgICAnSyc6ICdMeXNpbmUnLFxuICAgICdSJzogJ0FyZ2luaW5lJyxcbiAgICAnSCc6ICdIaXN0aWRpbmUnLFxuICAgICdDJzogJ0N5c3RlaW5lJyxcbiAgICAnVic6ICdWYWxpbmUnLFxuICAgICdQJzogJ1Byb2xpbmUnLFxuICAgICdXJzogJ1RyeXB0b3BoYW4nLFxuICAgICdJJzogJ0lzb2xldWNpbmUnLFxuICAgICdNJzogJ01ldGhpb25pbmUnLFxuICAgICdUJzogJ1RocmVvbmluZScsXG59O1xuQW1pbm9hY2lkcy5BQVNtaWxlcyA9IHtcbiAgICAnRyc6ICdOQ0MoPU8pTycsXG4gICAgJ0wnOiAnTltDQEhdKENDKEMpQylDKD1PKU8nLFxuICAgICdZJzogJ05DKENDMT1DQz1DKE8pQz1DMSlDKD1PKU8nLFxuICAgICdTJzogJ05DKENPKUMoPU8pTycsXG4gICAgJ0UnOiAnTltDQEBIXShDQ0MoTyk9TylDKD1PKU8nLFxuICAgICdRJzogJ05bQ0BASF0oQ0NDKE4pPU8pQyg9TylPJyxcbiAgICAnRCc6ICdOW0NAQEhdKENDKE8pPU8pQyg9TylPJyxcbiAgICAnTic6ICdOW0NAQEhdKENDKE4pPU8pQyg9TylPJyxcbiAgICAnRic6ICdOQyhDQzE9Q0M9Q0M9QzEpQyg9TylPJyxcbiAgICAnQSc6ICdOW0NASF0oQylDKD1PKU8nLFxuICAgICdLJzogJ05DKENDQ0NOKUMoPU8pTycsXG4gICAgJ1InOiAnTltDQEhdKENDQ05DKD1OKUMpQyg9TylPJyxcbiAgICAnSCc6ICdOQyhDQzE9Q049Q1tOXTEpQyg9TylPJyxcbiAgICAnQyc6ICdOW0NAQEhdKENTKUMoPU8pTycsXG4gICAgJ1YnOiAnTkMoQyhDKUMpQyg9TylPJyxcbiAgICAnUCc6ICdOKENDQzEpQzFDKD1PKU8nLFxuICAgICdXJzogJ05bQ0BASF0oQ2MxYzJjY2NjYzJuKFtIXSljMSlDKD1PKU8nLFxuICAgICdJJzogJ05bQ0BIXShbQ0BIXShDKUNDKUMoPU8pTycsXG4gICAgJ00nOiAnTkMoQ0NTQylDKD1PKU8nLFxuICAgICdUJzogJ05DKEMoTylDKUMoPU8pTycsXG59O1xuQW1pbm9hY2lkcy5BQVNtaWxlc1RydW5jYXRlZCA9IHtcbiAgICAnRyc6ICcqQyonLFxuICAgICdMJzogJ0NDKEMpQ1tDQEhdKCopKicsXG4gICAgJ1knOiAnQzE9Q0MoPUNDPUMxQ0MoKikqKU8nLFxuICAgICdTJzogJ09DQygqKUMqJyxcbiAgICAnRSc6ICcqW0NAQEhdKENDQyhPKT1PKSonLFxuICAgICdRJzogJypOW0NAQEhdKENDQyhOKT1PKSonLFxuICAgICdEJzogJypbQ0BASF0oQ0MoTyk9TykqJyxcbiAgICAnTic6ICcqW0NAQEhdKENDKE4pPU8pKicsXG4gICAgJ0YnOiAnQzE9Q0M9QyhDPUMxKUNDKCopKicsXG4gICAgJ0EnOiAnQ1tDQEhdKCopKicsXG4gICAgJ0snOiAnQyhDQ04pQ0MoKikqJyxcbiAgICAnUic6ICcqW0NASF0oQ0NDTkMoPU4pQykqJyxcbiAgICAnSCc6ICdDMT1DKE5DPU4xKUNDKCopKicsXG4gICAgJ0MnOiAnQyhbQ0BASF0oKikqKVMnLFxuICAgICdWJzogJ0NDKEMpQygqKSonLFxuICAgICdQJzogJ0MxQ0NOKCopQzEqJyxcbiAgICAnVyc6ICcqW0NAQEhdKENjMWMyY2NjY2MybihbSF0pYzEpKicsXG4gICAgJ0knOiAnQ0NbQ0BIXShDKVtDQEhdKCopKicsXG4gICAgJ00nOiAnQ1NDQ0MoKikqJyxcbiAgICAnVCc6ICdDQyhPKUMoKikqJyxcbn07XG4vKiogVE9ETzogRnVsbD9cbiAqL1xuQW1pbm9hY2lkcy5BQUZ1bGxOYW1lcyA9IHtcbiAgICAnQWxhJzogJ0EnLFxuICAgICdBcmcnOiAnUicsXG4gICAgJ0Fzbic6ICdOJyxcbiAgICAnQXNwJzogJ0QnLFxuICAgICdDeXMnOiAnQycsXG4gICAgJ0dsbic6ICdRJyxcbiAgICAnR2x1JzogJ0UnLFxuICAgICdHbHknOiAnRycsXG4gICAgJ0hpcyc6ICdIJyxcbiAgICAnSWxlJzogJ0knLFxuICAgICdMZXUnOiAnTCcsXG4gICAgJ0x5cyc6ICdLJyxcbiAgICAnTWV0JzogJ00nLFxuICAgICdQaGUnOiAnRicsXG4gICAgJ1Bybyc6ICdQJyxcbiAgICAnU2VyJzogJ1MnLFxuICAgICdUaHInOiAnVCcsXG4gICAgJ1RycCc6ICdXJyxcbiAgICAnVHlyJzogJ1knLFxuICAgICdWYWwnOiAnVicsXG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWVcxcGJtOWhZMmxrY3k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbUZ0YVc1dllXTnBaSE11ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlMwRXNUMEZCVHl4RlFVRmhMR05CUVdNc1JVRkJReXhOUVVGTkxHZENRVUZuUWl4RFFVRkRPMEZCUlRGRUxFMUJRVTBzVDBGQlR5eHJRa0ZCYlVJc1UwRkJVU3hqUVVGak8wbEJSemRETEUxQlFVMHNTMEZCU3l4SlFVRkpPMUZCUTNCQ0xFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NTMEZCU3l4TFFVRkxMRU5CUVVNc1JVRkJSVHRaUVVONFFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU03WjBKQlF6TkNMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hSUVVGUkxFTkJRVU03WjBKQlEyaERMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxGZEJRVmNzUTBGQlF6dG5Ra0ZETlVRc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1UwRkJVeXhEUVVGRE8yZENRVU0xUWl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEV0QlFVc3NRMEZCUXp0blFrRkRia0lzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4SFFVRkhMRU5CUVVNc1JVRkJSU3hWUVVGVkxFTkJRVU03WVVGRGVrSXNSVUZCUlN4TFFVRkxMRVZCUVVVc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXp0VFFVTXZRanRSUVVORUxFOUJRVThzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXp0SlFVTnVRaXhEUVVGRE8wbEJTVTBzVFVGQlRTeExRVUZMTEZWQlFWVTdVVUZETVVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVlVGQlZTeExRVUZMTEV0QlFVc3NRMEZCUXl4RlFVRkZPMWxCUXpsQ0xFbEJRVWtzUTBGQlF5eFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJRenRuUWtGRGFrTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUlVGQlJTeFJRVUZSTEVOQlFVTTdaMEpCUTNSQ0xFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1MwRkJTeXhEUVVGRE8yZENRVU51UWl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRmRCUVZjc1EwRkJRenRuUWtGRGRrUXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVWQlFVVXNXVUZCV1N4RFFVRkRPMmRDUVVNdlFpeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxGZEJRVmNzUTBGQlF6dG5Ra0ZEZWtJc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhGUVVGRkxGRkJRVkVzUTBGQlF6dGhRVU5xUXl4RlFVRkZMRXRCUVVzc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXl4RFFVRkRPMU5CUXk5Q08xRkJRMFFzVDBGQlR5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRPMGxCUTNwQ0xFTkJRVU03U1VGSlRTeE5RVUZOTEV0QlFVc3NUVUZCVFR0UlFVTjBRaXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEV0QlFVc3NTMEZCU3l4RFFVRkRMRVZCUVVVN1dVRkRNVUlzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4SlFVRkpMR3RDUVVGclFpeERRVUZETzJkQ1FVTnVReXg1UkVGQmVVUTdaMEpCUTNwRUxFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEVkQlFVY3NSVUZCUlN4VFFVRlRPMmRDUVVOa0xFZEJRVWNzUlVGQlJTeFRRVUZUTzJkQ1FVTmtMRWRCUVVjc1JVRkJSU3hUUVVGVE8yZENRVU5rTEZGQlFWRXNSVUZCUlN4VFFVRlRPMkZCUTNCQ0xFTkJRVU1zUTBGQlF6dFRRVU5LTzFGQlEwUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8wbEJRM0pDTEVOQlFVTTdRMEZEUmp0QlFVVkVMRTFCUVUwc1QwRkJUeXhWUVVGVk8wbEJjVWRrTEUxQlFVMHNRMEZCUXl4VlFVRlZMRU5CUVVNc1UwRkJhVUlzVFVGQlRUdFJRVU01UXl4UlFVRlJMRTFCUVUwc1JVRkJSVHRaUVVOb1FpeExRVUZMTEUxQlFVMDdaMEpCUTFRc1QwRkJUeXhyUWtGQmEwSXNRMEZCUXl4VlFVRlZMRU5CUVVNN1dVRkRka01zUzBGQlN5eE5RVUZOTzJkQ1FVTlVMRTlCUVU4c2EwSkJRV3RDTEVOQlFVTXNTVUZCU1N4RFFVRkRPMWxCUTJwRE8yZENRVU5GTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc2VVSkJRWGxDTEUxQlFVMHNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dFRRVU55UlR0SlFVTklMRU5CUVVNN1NVRkZSRHM3T3pzN1QwRkxSenRKUVVOSkxFMUJRVTBzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCVXp0UlFVTnVReXhKUVVGSkxFOUJRVThzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEYUVJc1NVRkJTU3hMUVVGTExFZEJRVWNzUlVGQlJTeERRVUZETzFGQlEyWXNTVUZCU1N4TFFVRkxMRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJSV1lzUzBGQlN5eE5RVUZOTEVsQlFVa3NTVUZCU1N4RFFVRkRMRVZCUVVVN1dVRkRjRUlzU1VGQlNTeEpRVUZKTEVsQlFVa3NSMEZCUnp0blFrRkRZaXhQUVVGUExFVkJRVVVzUTBGQlF6dHBRa0ZEVUN4SlFVRkpMRWxCUVVrc1NVRkJTU3hIUVVGSE8yZENRVU5zUWl4UFFVRlBMRVZCUVVVc1EwRkJRenRwUWtGRFVDeEpRVUZKTEU5QlFVODdaMEpCUTJRc1MwRkJTeXhKUVVGSkxFbEJRVWtzUTBGQlF6czdaMEpCUldRc1MwRkJTeXhKUVVGSkxFbEJRVWtzUTBGQlF6dFRRVU5xUWp0UlFVVkVMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0SlFVTm9SU3hEUVVGRE8wbEJSVTBzVFVGQlRTeERRVUZETEdWQlFXVXNRMEZCUXl4VlFVRnJRaXhGUVVGRkxFVkJRVVVzVTBGQmFVSXNUVUZCVFRzN1VVRkRla1VzYzBSQlFYTkVPMUZCUTNSRUxFMUJRVTBzYlVKQlFXMUNMRWRCUVVjc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVTndSQ3hKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTEZsQlFWa3NRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZETDBRc1dVRkJXU3hIUVVGSExFTkJRVU1zV1VGQldTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzV1VGQldTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkRNMFlzV1VGQldTeEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03VVVGRk0wWXNTVUZCU1N4UFFVRlBMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zU1VGQlNTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1IwRkJSeXhGUVVGRk8xbEJRelZETEUxQlFVMHNTMEZCU3l4SFFVRkhMRTFCUVVFc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5d3dRMEZCUlN4WFFVRlhMRVZCUVVjc1EwRkJRenRaUVVONlF5eFBRVUZQTEV0QlFVc3NTVUZCU1N4dFFrRkJiVUlzUTBGQlF5eERRVUZETzJkQ1FVTnVReXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeExRVUZMTEVWQlFVVXNXVUZCV1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlF6RkVMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV01zUlVGQlJTeFpRVUZaTEVWQlFVVXNXVUZCV1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xTkJRM2hFTzFGQlJVUXNTVUZCU1N4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUjBGQlJ5eEpRVUZKTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVVc1NVRkJTU3h0UWtGQmJVSXNSVUZCUlR0WlFVTXpSQ3hKUVVGSkxFOUJRVThzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4SlFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeEhRVUZITEVWQlFVVTdaMEpCUXpWRExFMUJRVTBzUzBGQlN5eEhRVUZITEUxQlFVRXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXd3UTBGQlJTeFhRVUZYTEVWQlFVY3NRMEZCUXp0blFrRkRla01zVDBGQlR5eExRVUZMTEVsQlFVa3NiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dHZRa0ZEYmtNc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUzBGQlN5eEZRVUZGTEZsQlFWa3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU14UkN4RFFVRkRMRWxCUVVrc1EwRkJReXhqUVVGakxFVkJRVVVzV1VGQldTeEZRVUZGTEZsQlFWa3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRoUVVONFJEdFRRVU5HTzFGQlJVUXNTVUZCU1N4UFFVRlBMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1YwRkJWeXhGUVVGRk8xbEJReTlETEVsQlFVa3NUMEZCVHl4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFbEJRVWtzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRWRCUVVjc1JVRkJSVHRuUWtGRE5VTXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFBRVUZQTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTjRSQ3hQUVVGUExFdEJRVXNzU1VGQlNTeHRRa0ZCYlVJc1EwRkJReXhEUVVGRE8yOUNRVU51UXl4RFFVRkRMRzFDUVVGdFFpeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hMUVVGTExFVkJRVVVzV1VGQldTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRekZFTEVOQlFVTXNTVUZCU1N4RFFVRkRMR05CUVdNc1JVRkJSU3haUVVGWkxFVkJRVVVzV1VGQldTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRPMkZCUTNoRU8xTkJRMFk3VVVGRlJDeEpRVUZKTEVOQlFVRXNUVUZCUVN4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExEQkRRVUZGTEZkQlFWY3NSVUZCUlN4TFFVRkpMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJUdFpRVU16UXl4SlFVRkpMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVU3WjBKQlF5OURMRWxCUVVrc1QwRkJUeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEVsQlFVa3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFZEJRVWNzUlVGQlJUdHZRa0ZETlVNc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMjlDUVVONFJDeFBRVUZQTEV0QlFVc3NTVUZCU1N4dFFrRkJiVUlzUTBGQlF5eERRVUZETzNkQ1FVTnVReXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeExRVUZMTEVWQlFVVXNXVUZCV1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03ZDBKQlF6RkVMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV01zUlVGQlJTeFpRVUZaTEVWQlFVVXNXVUZCV1N4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8ybENRVU40UkR0aFFVTkdPMU5CUTBZN1VVRkZSQ3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTXNSVUZCUlN4WlFVRlpMRVZCUVVVc1dVRkJXU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6bEVMRU5CUVVNN08wRkJjRXhsTEd0Q1FVRlBMRWRCUVZjc1dVRkJXU3hEUVVGRE8wRkJSUzlDTEcxRFFVRjNRaXhIUVVGWExEWkNRVUUyUWl4RFFVRkRPMEZCUlRGRkxIbENRVUZqTEVkQlFVY3NhMEpCUVd0Q0xFTkJRVU03UVVGRk4wSXNaMEpCUVVzc1IwRkJjVUk3U1VGRGRFTXNSMEZCUnl4RlFVRkZMRk5CUVZNN1NVRkRaQ3hIUVVGSExFVkJRVVVzVTBGQlV6dEpRVU5rTEVkQlFVY3NSVUZCUlN4VlFVRlZPMGxCUTJZc1IwRkJSeXhGUVVGRkxGRkJRVkU3U1VGRFlpeEhRVUZITEVWQlFVVXNaVUZCWlR0SlFVTndRaXhIUVVGSExFVkJRVVVzVjBGQlZ6dEpRVU5vUWl4SFFVRkhMRVZCUVVVc1pVRkJaVHRKUVVOd1FpeEhRVUZITEVWQlFVVXNXVUZCV1R0SlFVTnFRaXhIUVVGSExFVkJRVVVzWlVGQlpUdEpRVU53UWl4SFFVRkhMRVZCUVVVc1UwRkJVenRKUVVOa0xFZEJRVWNzUlVGQlJTeFJRVUZSTzBsQlEySXNSMEZCUnl4RlFVRkZMRlZCUVZVN1NVRkRaaXhIUVVGSExFVkJRVVVzVjBGQlZ6dEpRVU5vUWl4SFFVRkhMRVZCUVVVc1ZVRkJWVHRKUVVObUxFZEJRVWNzUlVGQlJTeFJRVUZSTzBsQlEySXNSMEZCUnl4RlFVRkZMRk5CUVZNN1NVRkRaQ3hIUVVGSExFVkJRVVVzV1VGQldUdEpRVU5xUWl4SFFVRkhMRVZCUVVVc1dVRkJXVHRKUVVOcVFpeEhRVUZITEVWQlFVVXNXVUZCV1R0SlFVTnFRaXhIUVVGSExFVkJRVVVzVjBGQlZ6dERRVU5xUWl4RFFVRkRPMEZCUlZrc2JVSkJRVkVzUjBGQmNVSTdTVUZEZWtNc1IwRkJSeXhGUVVGRkxGVkJRVlU3U1VGRFppeEhRVUZITEVWQlFVVXNjMEpCUVhOQ08wbEJRek5DTEVkQlFVY3NSVUZCUlN3eVFrRkJNa0k3U1VGRGFFTXNSMEZCUnl4RlFVRkZMR05CUVdNN1NVRkRia0lzUjBGQlJ5eEZRVUZGTEhsQ1FVRjVRanRKUVVNNVFpeEhRVUZITEVWQlFVVXNlVUpCUVhsQ08wbEJRemxDTEVkQlFVY3NSVUZCUlN4M1FrRkJkMEk3U1VGRE4wSXNSMEZCUnl4RlFVRkZMSGRDUVVGM1FqdEpRVU0zUWl4SFFVRkhMRVZCUVVVc2QwSkJRWGRDTzBsQlF6ZENMRWRCUVVjc1JVRkJSU3hwUWtGQmFVSTdTVUZEZEVJc1IwRkJSeXhGUVVGRkxHbENRVUZwUWp0SlFVTjBRaXhIUVVGSExFVkJRVVVzTUVKQlFUQkNPMGxCUXk5Q0xFZEJRVWNzUlVGQlJTeDNRa0ZCZDBJN1NVRkROMElzUjBGQlJ5eEZRVUZGTEcxQ1FVRnRRanRKUVVONFFpeEhRVUZITEVWQlFVVXNhVUpCUVdsQ08wbEJRM1JDTEVkQlFVY3NSVUZCUlN4cFFrRkJhVUk3U1VGRGRFSXNSMEZCUnl4RlFVRkZMRzlEUVVGdlF6dEpRVU42UXl4SFFVRkhMRVZCUVVVc01FSkJRVEJDTzBsQlF5OUNMRWRCUVVjc1JVRkJSU3huUWtGQlowSTdTVUZEY2tJc1IwRkJSeXhGUVVGRkxHbENRVUZwUWp0RFFVTjJRaXhEUVVGRE8wRkJSVmtzTkVKQlFXbENMRWRCUVhGQ08wbEJRMnhFTEVkQlFVY3NSVUZCUlN4TFFVRkxPMGxCUTFZc1IwRkJSeXhGUVVGRkxHbENRVUZwUWp0SlFVTjBRaXhIUVVGSExFVkJRVVVzYzBKQlFYTkNPMGxCUXpOQ0xFZEJRVWNzUlVGQlJTeFZRVUZWTzBsQlEyWXNSMEZCUnl4RlFVRkZMRzlDUVVGdlFqdEpRVU42UWl4SFFVRkhMRVZCUVVVc2NVSkJRWEZDTzBsQlF6RkNMRWRCUVVjc1JVRkJSU3h0UWtGQmJVSTdTVUZEZUVJc1IwRkJSeXhGUVVGRkxHMUNRVUZ0UWp0SlFVTjRRaXhIUVVGSExFVkJRVVVzY1VKQlFYRkNPMGxCUXpGQ0xFZEJRVWNzUlVGQlJTeFpRVUZaTzBsQlEycENMRWRCUVVjc1JVRkJSU3hqUVVGak8wbEJRMjVDTEVkQlFVY3NSVUZCUlN4eFFrRkJjVUk3U1VGRE1VSXNSMEZCUnl4RlFVRkZMRzFDUVVGdFFqdEpRVU40UWl4SFFVRkhMRVZCUVVVc1owSkJRV2RDTzBsQlEzSkNMRWRCUVVjc1JVRkJSU3haUVVGWk8wbEJRMnBDTEVkQlFVY3NSVUZCUlN4aFFVRmhPMGxCUTJ4Q0xFZEJRVWNzUlVGQlJTd3JRa0ZCSzBJN1NVRkRjRU1zUjBGQlJ5eEZRVUZGTEhGQ1FVRnhRanRKUVVNeFFpeEhRVUZITEVWQlFVVXNWMEZCVnp0SlFVTm9RaXhIUVVGSExFVkJRVVVzV1VGQldUdERRVU5zUWl4RFFVRkRPMEZCUlVZN1IwRkRSenRCUVVOWExITkNRVUZYTEVkQlFYRkNPMGxCUXpWRExFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dEpRVU5XTEV0QlFVc3NSVUZCUlN4SFFVRkhPMGxCUTFZc1MwRkJTeXhGUVVGRkxFZEJRVWM3U1VGRFZpeExRVUZMTEVWQlFVVXNSMEZCUnp0SlFVTldMRXRCUVVzc1JVRkJSU3hIUVVGSE8wbEJRMVlzUzBGQlN5eEZRVUZGTEVkQlFVYzdTVUZEVml4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1NVRkRWaXhMUVVGTExFVkJRVVVzUjBGQlJ6dEpRVU5XTEV0QlFVc3NSVUZCUlN4SFFVRkhPMGxCUTFZc1MwRkJTeXhGUVVGRkxFZEJRVWM3U1VGRFZpeExRVUZMTEVWQlFVVXNSMEZCUnp0SlFVTldMRXRCUVVzc1JVRkJSU3hIUVVGSE8wbEJRMVlzUzBGQlN5eEZRVUZGTEVkQlFVYzdTVUZEVml4TFFVRkxMRVZCUVVVc1IwRkJSenRKUVVOV0xFdEJRVXNzUlVGQlJTeEhRVUZITzBsQlExWXNTMEZCU3l4RlFVRkZMRWRCUVVjN1EwRkRXQ3hEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElDb2dZWE1nWjNKdmF5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaM0p2YXljN1hHNXBiWEJ2Y25RZ0tpQmhjeUIxYVNCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdmRXa25PMXh1YVcxd2IzSjBJQ29nWVhNZ1JFY2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMMlJuSnp0Y2JseHVhVzF3YjNKMElIdFRkSEpwYm1kRWFXTjBhVzl1WVhKNWZTQm1jbTl0SUNkQVpHRjBZV2R5YjJzdGJHbGljbUZ5YVdWekwzVjBhV3h6TDNOeVl5OTBlWEJsTFdSbFkyeGhjbUYwYVc5dWN5YzdYRzVwYlhCdmNuUWdlMU5sY1ZCaGJHVjBkR1VzSUZObGNWQmhiR1YwZEdWQ1lYTmxmU0JtY205dElDY3VMM05sY1Mxd1lXeGxkSFJsY3ljN1hHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhNZ1pYaDBaVzVrY3lCVFpYRlFZV3hsZEhSbFFtRnpaU0I3WEc0Z0lIQnlhWFpoZEdVZ2MzUmhkR2xqSUd4bGMyczZJRk5sY1ZCaGJHVjBkR1U3WEc1Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUWdUR1Z6YXlncE9pQlRaWEZRWVd4bGRIUmxJSHRjYmlBZ0lDQnBaaUFvZEdocGN5NXNaWE5ySUQwOVBTQjJiMmxrSURBcElIdGNiaUFnSUNBZ0lIUm9hWE11YkdWemF5QTlJSFJvYVhNdWJXRnJaVkJoYkdWMGRHVW9XMXh1SUNBZ0lDQWdJQ0JiV3lkSEp5d2dKMEVuTENBblV5Y3NJQ2RVSjEwc0lDZHZjbUZ1WjJVblhTeGNiaUFnSUNBZ0lDQWdXMXNuUXljc0lDZFdKeXdnSjBrbkxDQW5UQ2NzSUNkUUp5d2dKMFluTENBbldTY3NJQ2ROSnl3Z0oxY25YU3dnSjJGc2JGOW5jbVZsYmlkZExGeHVJQ0FnSUNBZ0lDQmJXeWRPSnl3Z0oxRW5MQ0FuU0NkZExDQW5iV0ZuWlc1MFlTZGRMRnh1SUNBZ0lDQWdJQ0JiV3lkRUp5d2dKMFVuWFN3Z0ozSmxaQ2RkTEZ4dUlDQWdJQ0FnSUNCYld5ZExKeXdnSjFJblhTd2dKMkZzYkY5aWJIVmxKMTBzWEc0Z0lDQWdJQ0JkTENCbVlXeHpaU3dnUVcxcGJtOWhZMmxrYzFCaGJHVjBkR1Z6S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YkdWemF6dGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdjM1JoZEdsaklHZHliMnRIY205MWNITTZJRk5sY1ZCaGJHVjBkR1U3WEc1Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUWdSM0p2YTBkeWIzVndjeWdwT2lCVFpYRlFZV3hsZEhSbElIdGNiaUFnSUNCcFppQW9kR2hwY3k1bmNtOXJSM0p2ZFhCeklEMDlQU0IyYjJsa0lEQXBJSHRjYmlBZ0lDQWdJSFJvYVhNdVozSnZhMGR5YjNWd2N5QTlJSFJvYVhNdWJXRnJaVkJoYkdWMGRHVW9XMXh1SUNBZ0lDQWdJQ0JiV3lkREp5d2dKMVVuWFN3Z0ozbGxiR3h2ZHlkZExGeHVJQ0FnSUNBZ0lDQmJXeWRISnl3Z0oxQW5YU3dnSjNKbFpDZGRMRnh1SUNBZ0lDQWdJQ0JiV3lkQkp5d2dKMVluTENBblNTY3NJQ2RNSnl3Z0owMG5MQ0FuUmljc0lDZFpKeXdnSjFjblhTd2dKMkZzYkY5bmNtVmxiaWRkTEZ4dUlDQWdJQ0FnSUNCYld5ZFNKeXdnSjBnbkxDQW5TeWRkTENBbmJHbG5hSFJmWW14MVpTZGRMRnh1SUNBZ0lDQWdJQ0JiV3lkRUp5d2dKMFVuWFN3Z0oyUmhjbXRmWW14MVpTZGRMRnh1SUNBZ0lDQWdJQ0JiV3lkVEp5d2dKMVFuTENBblRpY3NJQ2RSSjEwc0lDZHZjbUZ1WjJVblhTeGNiaUFnSUNBZ0lGMHNJR1poYkhObExDQkJiV2x1YjJGamFXUnpVR0ZzWlhSMFpYTXBPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NW5jbTlyUjNKdmRYQnpPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0J6ZEdGMGFXTWdjbUZ6VFc5c09pQlRaWEZRWVd4bGRIUmxPMXh1WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nWjJWMElGSmhjMDF2YkNncE9pQlRaWEZRWVd4bGRIUmxJSHRjYmlBZ0lDQnBaaUFvZEdocGN5NXlZWE5OYjJ3Z1BUMDlJSFp2YVdRZ01Da2dlMXh1SUNBZ0lDQWdkR2hwY3k1eVlYTk5iMndnUFNCdVpYY2dRVzFwYm05aFkybGtjMUJoYkdWMGRHVnpLSHRjYmlBZ0lDQWdJQ0FnTHk4Z2FIUjBjRG92TDJGalkyVnpMbVZ1Y3kxc2VXOXVMbVp5TDJKcGIzUnBZeTl5WVhOMGIzQXZhR1ZzY0M5amIyeHZkWEl1YUhSdFhHNGdJQ0FnSUNBZ0lDZEVKem9nSnlORk5qQkJNRUVuTENBdkx5QmhjM0FzSUdGemNHRnlkR2xqSUdGamFXUXNJR0Z6Y0Z4dUlDQWdJQ0FnSUNBblJTYzZJQ2NqUlRZd1FUQkJKeXdnTHk4Z1oyeDFMQ0JuYkhWMFlXMXBZeUJoWTJsa1hHNGdJQ0FnSUNBZ0lDZERKem9nSnlORk5rVTJNREFuTENBdkx5QmplWE1zSUdONWMzUmxhVzVsWEc0Z0lDQWdJQ0FnSUNkTkp6b2dKeU5GTmtVMk1EQW5MQ0F2THlCdFpYUXNJRzFsZEdocGIyNXBibVZjYmlBZ0lDQWdJQ0FnSjBzbk9pQW5JekUwTlVGR1JpY3NJQzh2SUd4NWN5d2diSGx6YVc1bFhHNGdJQ0FnSUNBZ0lDZFNKem9nSnlNeE5EVkJSa1luTENBdkx5QmhjbWNzSUdGeVoybHVhVzVsWEc0Z0lDQWdJQ0FnSUNkVEp6b2dKeU5HUVRrMk1EQW5MQ0F2THlCelpYSXNJSE5sY21sdVpWeHVJQ0FnSUNBZ0lDQW5WQ2M2SUNjalJrRTVOakF3Snl3Z0x5OGdkR2h5TENCMGFISmxiMjVwYm1WY2JpQWdJQ0FnSUNBZ0owWW5PaUFuSXpNeU16SkJRU2NzSUM4dklIQm9aU3dnY0dobGJubHNZV3hoYm1sdVpWeHVJQ0FnSUNBZ0lDQW5XU2M2SUNjak16SXpNa0ZCSnl3Z0x5OGdkSGx5TENCMGVYSnZjMmx1WlZ4dUlDQWdJQ0FnSUNBblRpYzZJQ2NqTURCRVEwUkRKeXdnTHk4Z1lYTnVMQ0JoYzNCaGNtRm5hVzVsWEc0Z0lDQWdJQ0FnSUNkUkp6b2dKeU13TUVSRFJFTW5MQ0F2THlCbmJHNHNJR2RzZFhSaGJXbHVaVnh1SUNBZ0lDQWdJQ0FuUnljNklDY2pSVUpGUWtWQ0p5d2dMeThnWjJ4NUxDQm5iSGxqYVc1bFhHNGdJQ0FnSUNBZ0lDZE1Kem9nSnlNd1JqZ3lNRVluTENBdkx5QnNaWFVzSUd4bGRXTnBibVZjYmlBZ0lDQWdJQ0FnSjFZbk9pQW5JekJHT0RJd1JpY3NJQzh2SUhaaGJDd2dkbUZzYVc1bFhHNGdJQ0FnSUNBZ0lDZEpKem9nSnlNd1JqZ3lNRVluTENBdkx5QnBiR1VzSUdsemIyeGxkV05wYm1WY2JpQWdJQ0FnSUNBZ0owRW5PaUFuSTBNNFF6aERPQ2NzSUM4dklHRnNZU3dnWVd4aGJtbHVaVnh1SUNBZ0lDQWdJQ0FuVnljNklDY2pRalExUVVJMEp5d2dMeThnZEhKd0xDQjBjbmx3ZEc5d2FHRnVYRzRnSUNBZ0lDQWdJQ2RJSnpvZ0p5TTRNamd5UkRJbkxDQXZMeUJvYVhNc0lHaHBjM1JwWkdsdVpWeHVJQ0FnSUNBZ0lDQW5VQ2M2SUNjalJFTTVOamd5Snl3Z0x5OGdjSEp2TENCd2NtOXNhVzVsWEc0Z0lDQWdJQ0FnSUNkdmRHaGxjbk1uT2lBbkkwSkZRVEEyUlNjc1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWNtRnpUVzlzTzF4dUlDQjlYRzU5WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJCYldsdWIyRmphV1J6SUh0Y2JpQWdjM1JoZEdsaklISmxZV1J2Ym14NUlGTmxiVlI1Y0dVNklITjBjbWx1WnlBOUlDZEJiV2x1YjJGamFXUnpKenRjYmx4dUlDQnpkR0YwYVdNZ2NtVmhaRzl1YkhrZ1UyVnRWSGx3WlUxMWJIUnBjR3hsUVd4cFoyNXRaVzUwT2lCemRISnBibWNnUFNBblFXMXBibTloWTJsa2MwMTFiSFJwY0d4bFFXeHBaMjV0Wlc1MEp6dGNibHh1SUNCemRHRjBhV01nZFc1a1pXWnBibVZrUTI5c2IzSWdQU0FuY21kaUtERXdNQ3d4TURBc01UQXdLU2M3WEc1Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCT1lXMWxjem9nVTNSeWFXNW5SR2xqZEdsdmJtRnllU0E5SUh0Y2JpQWdJQ0FuUnljNklDZEhiSGxqYVc1bEp5eGNiaUFnSUNBblRDYzZJQ2RNWlhWamFXNWxKeXhjYmlBZ0lDQW5XU2M2SUNkVWVYSnZjMmx1WlNjc1hHNGdJQ0FnSjFNbk9pQW5VMlZ5YVc1bEp5eGNiaUFnSUNBblJTYzZJQ2RIYkhWMFlXMXBZeUJoWTJsa0p5eGNiaUFnSUNBblVTYzZJQ2RIYkhWMFlXMXBibVVuTEZ4dUlDQWdJQ2RFSnpvZ0owRnpjR0Z5ZEdsaklHRmphV1FuTEZ4dUlDQWdJQ2RPSnpvZ0owRnpjR0Z5WVdkcGJtVW5MRnh1SUNBZ0lDZEdKem9nSjFCb1pXNTViR0ZzWVc1cGJtVW5MRnh1SUNBZ0lDZEJKem9nSjBGc1lXNXBibVVuTEZ4dUlDQWdJQ2RMSnpvZ0oweDVjMmx1WlNjc1hHNGdJQ0FnSjFJbk9pQW5RWEpuYVc1cGJtVW5MRnh1SUNBZ0lDZElKem9nSjBocGMzUnBaR2x1WlNjc1hHNGdJQ0FnSjBNbk9pQW5RM2x6ZEdWcGJtVW5MRnh1SUNBZ0lDZFdKem9nSjFaaGJHbHVaU2NzWEc0Z0lDQWdKMUFuT2lBblVISnZiR2x1WlNjc1hHNGdJQ0FnSjFjbk9pQW5WSEo1Y0hSdmNHaGhiaWNzWEc0Z0lDQWdKMGtuT2lBblNYTnZiR1YxWTJsdVpTY3NYRzRnSUNBZ0owMG5PaUFuVFdWMGFHbHZibWx1WlNjc1hHNGdJQ0FnSjFRbk9pQW5WR2h5Wlc5dWFXNWxKeXhjYmlBZ2ZUdGNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJRUZCVTIxcGJHVnpPaUJUZEhKcGJtZEVhV04wYVc5dVlYSjVJRDBnZTF4dUlDQWdJQ2RISnpvZ0owNURReWc5VHlsUEp5eGNiaUFnSUNBblRDYzZJQ2RPVzBOQVNGMG9RME1vUXlsREtVTW9QVThwVHljc1hHNGdJQ0FnSjFrbk9pQW5Ua01vUTBNeFBVTkRQVU1vVHlsRFBVTXhLVU1vUFU4cFR5Y3NYRzRnSUNBZ0oxTW5PaUFuVGtNb1EwOHBReWc5VHlsUEp5eGNiaUFnSUNBblJTYzZJQ2RPVzBOQVFFaGRLRU5EUXloUEtUMVBLVU1vUFU4cFR5Y3NYRzRnSUNBZ0oxRW5PaUFuVGx0RFFFQklYU2hEUTBNb1RpazlUeWxES0QxUEtVOG5MRnh1SUNBZ0lDZEVKem9nSjA1YlEwQkFTRjBvUTBNb1R5azlUeWxES0QxUEtVOG5MRnh1SUNBZ0lDZE9Kem9nSjA1YlEwQkFTRjBvUTBNb1RpazlUeWxES0QxUEtVOG5MRnh1SUNBZ0lDZEdKem9nSjA1REtFTkRNVDFEUXoxRFF6MURNU2xES0QxUEtVOG5MRnh1SUNBZ0lDZEJKem9nSjA1YlEwQklYU2hES1VNb1BVOHBUeWNzWEc0Z0lDQWdKMHNuT2lBblRrTW9RME5EUTA0cFF5ZzlUeWxQSnl4Y2JpQWdJQ0FuVWljNklDZE9XME5BU0Ywb1EwTkRUa01vUFU0cFF5bERLRDFQS1U4bkxGeHVJQ0FnSUNkSUp6b2dKMDVES0VORE1UMURUajFEVzA1ZE1TbERLRDFQS1U4bkxGeHVJQ0FnSUNkREp6b2dKMDViUTBCQVNGMG9RMU1wUXlnOVR5bFBKeXhjYmlBZ0lDQW5WaWM2SUNkT1F5aERLRU1wUXlsREtEMVBLVThuTEZ4dUlDQWdJQ2RRSnpvZ0owNG9RME5ETVNsRE1VTW9QVThwVHljc1hHNGdJQ0FnSjFjbk9pQW5UbHREUUVCSVhTaERZekZqTW1OalkyTmpNbTRvVzBoZEtXTXhLVU1vUFU4cFR5Y3NYRzRnSUNBZ0owa25PaUFuVGx0RFFFaGRLRnREUUVoZEtFTXBRME1wUXlnOVR5bFBKeXhjYmlBZ0lDQW5UU2M2SUNkT1F5aERRMU5ES1VNb1BVOHBUeWNzWEc0Z0lDQWdKMVFuT2lBblRrTW9ReWhQS1VNcFF5ZzlUeWxQSnl4Y2JpQWdmVHRjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUVGQlUyMXBiR1Z6VkhKMWJtTmhkR1ZrT2lCVGRISnBibWRFYVdOMGFXOXVZWEo1SUQwZ2UxeHVJQ0FnSUNkSEp6b2dKeXBES2ljc1hHNGdJQ0FnSjB3bk9pQW5RME1vUXlsRFcwTkFTRjBvS2lrcUp5eGNiaUFnSUNBbldTYzZJQ2RETVQxRFF5ZzlRME05UXpGRFF5Z3FLU29wVHljc1hHNGdJQ0FnSjFNbk9pQW5UME5ES0NvcFF5b25MRnh1SUNBZ0lDZEZKem9nSnlwYlEwQkFTRjBvUTBOREtFOHBQVThwS2ljc1hHNGdJQ0FnSjFFbk9pQW5LazViUTBCQVNGMG9RME5ES0U0cFBVOHBLaWNzWEc0Z0lDQWdKMFFuT2lBbktsdERRRUJJWFNoRFF5aFBLVDFQS1NvbkxGeHVJQ0FnSUNkT0p6b2dKeXBiUTBCQVNGMG9RME1vVGlrOVR5a3FKeXhjYmlBZ0lDQW5SaWM2SUNkRE1UMURRejFES0VNOVF6RXBRME1vS2lrcUp5eGNiaUFnSUNBblFTYzZJQ2REVzBOQVNGMG9LaWtxSnl4Y2JpQWdJQ0FuU3ljNklDZERLRU5EVGlsRFF5Z3FLU29uTEZ4dUlDQWdJQ2RTSnpvZ0p5cGJRMEJJWFNoRFEwTk9ReWc5VGlsREtTb25MRnh1SUNBZ0lDZElKem9nSjBNeFBVTW9Ua005VGpFcFEwTW9LaWtxSnl4Y2JpQWdJQ0FuUXljNklDZERLRnREUUVCSVhTZ3FLU29wVXljc1hHNGdJQ0FnSjFZbk9pQW5RME1vUXlsREtDb3BLaWNzWEc0Z0lDQWdKMUFuT2lBblF6RkRRMDRvS2lsRE1Tb25MRnh1SUNBZ0lDZFhKem9nSnlwYlEwQkFTRjBvUTJNeFl6SmpZMk5qWXpKdUtGdElYU2xqTVNrcUp5eGNiaUFnSUNBblNTYzZJQ2REUTF0RFFFaGRLRU1wVzBOQVNGMG9LaWtxSnl4Y2JpQWdJQ0FuVFNjNklDZERVME5EUXlncUtTb25MRnh1SUNBZ0lDZFVKem9nSjBOREtFOHBReWdxS1NvbkxGeHVJQ0I5TzF4dVhHNGdJQzhxS2lCVVQwUlBPaUJHZFd4c1AxeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCQlFVWjFiR3hPWVcxbGN6b2dVM1J5YVc1blJHbGpkR2x2Ym1GeWVTQTlJSHRjYmlBZ0lDQW5RV3hoSnpvZ0owRW5MRnh1SUNBZ0lDZEJjbWNuT2lBblVpY3NYRzRnSUNBZ0owRnpiaWM2SUNkT0p5eGNiaUFnSUNBblFYTndKem9nSjBRbkxGeHVJQ0FnSUNkRGVYTW5PaUFuUXljc1hHNGdJQ0FnSjBkc2JpYzZJQ2RSSnl4Y2JpQWdJQ0FuUjJ4MUp6b2dKMFVuTEZ4dUlDQWdJQ2RIYkhrbk9pQW5SeWNzWEc0Z0lDQWdKMGhwY3ljNklDZElKeXhjYmlBZ0lDQW5TV3hsSnpvZ0owa25MRnh1SUNBZ0lDZE1aWFVuT2lBblRDY3NYRzRnSUNBZ0oweDVjeWM2SUNkTEp5eGNiaUFnSUNBblRXVjBKem9nSjAwbkxGeHVJQ0FnSUNkUWFHVW5PaUFuUmljc1hHNGdJQ0FnSjFCeWJ5YzZJQ2RRSnl4Y2JpQWdJQ0FuVTJWeUp6b2dKMU1uTEZ4dUlDQWdJQ2RVYUhJbk9pQW5WQ2NzWEc0Z0lDQWdKMVJ5Y0NjNklDZFhKeXhjYmlBZ0lDQW5WSGx5SnpvZ0oxa25MRnh1SUNBZ0lDZFdZV3duT2lBblZpY3NYRzRnSUgwN1hHNWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5Qm5aWFJRWVd4bGRIUmxLSE5qYUdWdFpUb2djM1J5YVc1bklEMGdKMmR5YjJzbktUb2dVMlZ4VUdGc1pYUjBaU0I3WEc0Z0lDQWdjM2RwZEdOb0lDaHpZMmhsYldVcElIdGNiaUFnSUNCallYTmxJQ2RuY205ckp6cGNiaUFnSUNBZ0lISmxkSFZ5YmlCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhNdVIzSnZhMGR5YjNWd2N6dGNiaUFnSUNCallYTmxJQ2RzWlhOckp6cGNiaUFnSUNBZ0lISmxkSFZ5YmlCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhNdVRHVnphenRjYmlBZ0lDQmtaV1poZFd4ME9seHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0dCRGFHVnRVR0ZzWlhSMFpUb2djMk5vWlcxbElGeGNZQ1I3YzJOb1pXMWxmVnhjWUNCa2IyVnpJRzV2ZENCbGVHbHpkR0FwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCU1pYUjFjbTV6SUdScGRtbGtaV1FnWVcxcGJtOGdZV05wWkNCM2FYUm9JR2wwY3lCamIyNTBaVzUwSUdsdUlIUm9aU0JpY21GamEyVjBMQ0JwWmlCMGFHVWdZMjl1ZEdWdWRDQnBjeUJ1ZFcxaVpYSXNJSFJvWlc0Z2FYUnpJRzl0YVhSMFpXUmNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJR01nY21GM0lHRnRhVzV2WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMXR6ZEhKcGJtY3NJSE4wY21sdVoxMTlJRzkxZEdWeUlHRnVaQ0JwYm01bGNpQmpiMjUwWlc1MFhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUdkbGRFbHVibVZ5VDNWMFpYSW9Zem9nYzNSeWFXNW5LVG9nVzNOMGNtbHVaeXdnYzNSeWFXNW5YU0I3WEc0Z0lDQWdiR1YwSUdselNXNXVaWElnUFNBd08xeHVJQ0FnSUd4bGRDQnBibTVsY2lBOUlDY25PMXh1SUNBZ0lHeGxkQ0J2ZFhSbGNpQTlJQ2NuTzF4dVhHNGdJQ0FnWm05eUlDaGpiMjV6ZENCamFHRnlJRzltSUdNcElIdGNiaUFnSUNBZ0lHbG1JQ2hqYUdGeUlEMDlJQ2NvSnlsY2JpQWdJQ0FnSUNBZ2FYTkpibTVsY2lzck8xeHVJQ0FnSUNBZ1pXeHpaU0JwWmlBb1kyaGhjaUE5UFNBbktTY3BYRzRnSUNBZ0lDQWdJR2x6U1c1dVpYSXRMVHRjYmlBZ0lDQWdJR1ZzYzJVZ2FXWWdLR2x6U1c1dVpYSXBYRzRnSUNBZ0lDQWdJR2x1Ym1WeUlDczlJR05vWVhJN1hHNGdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJRzkxZEdWeUlDczlJR05vWVhJN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJQ0ZwYzA1aFRpaHdZWEp6WlVsdWRDaHBibTVsY2lrcElEOGdXMjkxZEdWeUxDQW5KMTBnT2lCYmIzVjBaWElzSUdsdWJtVnlYVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdaMlYwUTI5c2IzSkJRVkJwZG05MEtHMXZibTl0WlhJNklITjBjbWx1WnlBOUlDY25MQ0J6WTJobGJXVTZJQ2RuY205ckp5QTlJQ2RuY205ckp5azZJRnR6ZEhKcGJtY3NJSE4wY21sdVp5d2djM1J5YVc1bkxDQnVkVzFpWlhKZElIdGNiaUFnSUNBdkwyTnZibk4wSUdOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJVZ1BTQkJRVkJoYkdWMGRHVnpMa2R5YjJ0SGNtOTFjSE1vS1R0Y2JpQWdJQ0JqYjI1emRDQmphR1Z0VUdGc1pYUjBaVWx1YzNSaGJtTmxJRDBnZEdocGN5NW5aWFJRWVd4bGRIUmxLSE5qYUdWdFpTazdYRzRnSUNBZ2JHVjBJRnR2ZFhSbGNrMXZibTl0WlhJc0lHbHVibVZ5VFc5dWIyMWxjbDBnUFNCMGFHbHpMbWRsZEVsdWJtVnlUM1YwWlhJb2JXOXViMjFsY2lrN1hHNGdJQ0FnYjNWMFpYSk5iMjV2YldWeUlEMGdLRzkxZEdWeVRXOXViMjFsY2k1c1pXNW5kR2dnUGlBMklEOGdZQ1I3YjNWMFpYSk5iMjV2YldWeUxuTnNhV05sS0RBc0lETXBmUzR1TG1BZ09pQnZkWFJsY2sxdmJtOXRaWElwTzF4dUlDQWdJR2x1Ym1WeVRXOXViMjFsY2lBOUlDaHBibTVsY2sxdmJtOXRaWEl1YkdWdVozUm9JRDRnTmlBL0lHQWtlMmx1Ym1WeVRXOXViMjFsY2k1emJHbGpaU2d3TENBektYMHVMaTVnSURvZ2FXNXVaWEpOYjI1dmJXVnlLVHRjYmx4dUlDQWdJR2xtSUNodGIyNXZiV1Z5TG14bGJtZDBhQ0E5UFNBeElIeDhJRzF2Ym05dFpYSmJNVjBnUFQwZ0p5Z25LU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmhiV2x1YnlBOUlHMXZibTl0WlhKYk1GMC9MblJ2VlhCd1pYSkRZWE5sS0NraE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUdGdGFXNXZJR2x1SUdOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJVZ1AxeHVJQ0FnSUNBZ0lDQmJZMmhsYlZCaGJHVjBkR1ZKYm5OMFlXNWpaUzVuWlhRb1lXMXBibThwTENCaGJXbHVieXdnYVc1dVpYSk5iMjV2YldWeUxDQXhYU0E2WEc0Z0lDQWdJQ0FnSUZ0MGFHbHpMblZ1WkdWbWFXNWxaRU52Ykc5eUxDQnZkWFJsY2sxdmJtOXRaWElzSUdsdWJtVnlUVzl1YjIxbGNpd2dNVjA3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0cxdmJtOXRaWEpiTUYwZ1BUMGdKMlFuSUNZbUlHMXZibTl0WlhKYk1WMGhJR2x1SUdOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJVcElIdGNiaUFnSUNBZ0lHbG1JQ2h0YjI1dmJXVnlMbXhsYm1kMGFDQTlQU0F5SUh4OElHMXZibTl0WlhKYk1sMGdQVDBnSnlnbktTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHRnRhVzV2SUQwZ2JXOXViMjFsY2xzeFhUOHVkRzlWY0hCbGNrTmhjMlVvS1NFN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCaGJXbHVieUJwYmlCamFHVnRVR0ZzWlhSMFpVbHVjM1JoYm1ObElEOWNiaUFnSUNBZ0lDQWdJQ0JiWTJobGJWQmhiR1YwZEdWSmJuTjBZVzVqWlM1blpYUW9ZVzFwYm04cExDQmhiV2x1Ynl3Z2FXNXVaWEpOYjI1dmJXVnlMQ0F5WFNBNlhHNGdJQ0FnSUNBZ0lDQWdXM1JvYVhNdWRXNWtaV1pwYm1Wa1EyOXNiM0lzSUc5MWRHVnlUVzl1YjIxbGNpd2dhVzV1WlhKTmIyNXZiV1Z5TENBeVhUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9iVzl1YjIxbGNpNXpkV0p6ZEhKcGJtY29NQ3dnTXlrZ2FXNGdkR2hwY3k1QlFVWjFiR3hPWVcxbGN5a2dlMXh1SUNBZ0lDQWdhV1lnS0cxdmJtOXRaWEl1YkdWdVozUm9JRDA5SURNZ2ZId2diVzl1YjIxbGNsc3pYU0E5UFNBbktDY3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdZVzFwYm04Z1BTQjBhR2x6TGtGQlJuVnNiRTVoYldWelcyMXZibTl0WlhJdWMzVmljM1J5YVc1bktEQXNJRE1wWFR0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdGdGFXNXZJR2x1SUdOb1pXMVFZV3hsZEhSbFNXNXpkR0Z1WTJVZ1AxeHVJQ0FnSUNBZ0lDQWdJRnRqYUdWdFVHRnNaWFIwWlVsdWMzUmhibU5sTG1kbGRDaGhiV2x1Ynlrc0lHRnRhVzV2TENCcGJtNWxjazF2Ym05dFpYSXNJRE5kSURwY2JpQWdJQ0FnSUNBZ0lDQmJkR2hwY3k1MWJtUmxabWx1WldSRGIyeHZjaXdnYjNWMFpYSk5iMjV2YldWeUxDQnBibTVsY2sxdmJtOXRaWElzSUROZE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHRiMjV2YldWeVd6QmRQeTUwYjB4dmQyVnlRMkZ6WlNncElEMDlJRzF2Ym05dFpYSmJNRjBwSUh0Y2JpQWdJQ0FnSUdsbUlDaHRiMjV2YldWeUxuTjFZbk4wY21sdVp5Z3hMQ0F6S1NCcGJpQjBhR2x6TGtGQlJuVnNiRTVoYldWektTQjdYRzRnSUNBZ0lDQWdJR2xtSUNodGIyNXZiV1Z5TG14bGJtZDBhQ0E5UFNBMElIeDhJRzF2Ym05dFpYSmJORjBnUFQwZ0p5Z25LU0I3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWVcxcGJtOGdQU0IwYUdsekxrRkJSblZzYkU1aGJXVnpXMjF2Ym05dFpYSXVjM1ZpYzNSeWFXNW5LREVzSURNcFhUdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdZVzFwYm04Z2FXNGdZMmhsYlZCaGJHVjBkR1ZKYm5OMFlXNWpaU0EvWEc0Z0lDQWdJQ0FnSUNBZ0lDQmJZMmhsYlZCaGJHVjBkR1ZKYm5OMFlXNWpaUzVuWlhRb1lXMXBibThwTENCaGJXbHVieXdnYVc1dVpYSk5iMjV2YldWeUxDQTBYU0E2WEc0Z0lDQWdJQ0FnSUNBZ0lDQmJkR2hwY3k1MWJtUmxabWx1WldSRGIyeHZjaXdnYjNWMFpYSk5iMjV2YldWeUxDQnBibTVsY2sxdmJtOXRaWElzSURSZE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUZ0MGFHbHpMblZ1WkdWbWFXNWxaRU52Ykc5eUxDQnZkWFJsY2sxdmJtOXRaWElzSUdsdWJtVnlUVzl1YjIxbGNpd2dNRjA3WEc0Z0lIMWNibjFjYmlKZGZRPT0iLCJpbXBvcnQgeyBTZXFQYWxldHRlQmFzZSB9IGZyb20gJy4vc2VxLXBhbGV0dGVzJztcbmV4cG9ydCBjbGFzcyBOdWNsZW90aWRlc1BhbGV0dGVzIGV4dGVuZHMgU2VxUGFsZXR0ZUJhc2Uge1xuICAgIHN0YXRpYyBnZXQgQ2hyb21hdG9ncmFtKCkge1xuICAgICAgICBpZiAodGhpcy5jaHJvbWF0b2dyYW0gPT09IHZvaWQgMCkge1xuICAgICAgICAgICAgdGhpcy5jaHJvbWF0b2dyYW0gPSBuZXcgTnVjbGVvdGlkZXNQYWxldHRlcyh7XG4gICAgICAgICAgICAgICAgJ0EnOiAnZ3JlZW4nLFxuICAgICAgICAgICAgICAgICdDJzogJ2JsdWUnLFxuICAgICAgICAgICAgICAgICdHJzogJ2JsYWNrJyxcbiAgICAgICAgICAgICAgICAnVCc6ICdyZWQnLFxuICAgICAgICAgICAgICAgICdVJzogJ3JlZCcsXG4gICAgICAgICAgICAgICAgJ290aGVycyc6ICdncmF5JyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmNocm9tYXRvZ3JhbTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTnVjbGVvdGlkZXMge1xufVxuTnVjbGVvdGlkZXMuU2VtVHlwZSA9ICdOdWNsZW90aWRlcyc7XG5OdWNsZW90aWRlcy5TZW1UeXBlTXVsdGlwbGVBbGlnbm1lbnQgPSAnTnVjbGVvdGlkZXNNdWx0aXBsZUFsaWdubWVudCc7XG5OdWNsZW90aWRlcy5OYW1lcyA9IHtcbiAgICAnQSc6ICdBZGVuaW5lJyxcbiAgICAnQyc6ICdDeXRvc2luZScsXG4gICAgJ0cnOiAnR3VhbmluZScsXG4gICAgJ1QnOiAnVGh5bWluZScsXG4gICAgJ1UnOiAnVXJhY2lsJyxcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2liblZqYkdWdmRHbGtaWE11YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SnVkV05zWlc5MGFXUmxjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGTFFTeFBRVUZQTEVWQlFXRXNZMEZCWXl4RlFVRkRMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZGTVVRc1RVRkJUU3hQUVVGUExHMUNRVUZ2UWl4VFFVRlJMR05CUVdNN1NVRkhPVU1zVFVGQlRTeExRVUZMTEZsQlFWazdVVUZETlVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zV1VGQldTeExRVUZMTEV0QlFVc3NRMEZCUXl4RlFVRkZPMWxCUTJoRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NTVUZCU1N4dFFrRkJiVUlzUTBGQlF6dG5Ra0ZETVVNc1IwRkJSeXhGUVVGRkxFOUJRVTg3WjBKQlExb3NSMEZCUnl4RlFVRkZMRTFCUVUwN1owSkJRMWdzUjBGQlJ5eEZRVUZGTEU5QlFVODdaMEpCUTFvc1IwRkJSeXhGUVVGRkxFdEJRVXM3WjBKQlExWXNSMEZCUnl4RlFVRkZMRXRCUVVzN1owSkJRMVlzVVVGQlVTeEZRVUZGTEUxQlFVMDdZVUZEYWtJc1EwRkJReXhEUVVGRE8xTkJRMG83VVVGRFJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNN1NVRkRNMElzUTBGQlF6dERRVU5HTzBGQlJVUXNUVUZCVFN4UFFVRlBMRmRCUVZjN08wRkJRMDRzYlVKQlFVOHNSMEZCVnl4aFFVRmhMRU5CUVVNN1FVRkZhRU1zYjBOQlFYZENMRWRCUVZjc09FSkJRVGhDTEVOQlFVTTdRVUZGY0VVc2FVSkJRVXNzUjBGQmNVSTdTVUZEZEVNc1IwRkJSeXhGUVVGRkxGTkJRVk03U1VGRFpDeEhRVUZITEVWQlFVVXNWVUZCVlR0SlFVTm1MRWRCUVVjc1JVRkJSU3hUUVVGVE8wbEJRMlFzUjBGQlJ5eEZRVUZGTEZOQlFWTTdTVUZEWkN4SFFVRkhMRVZCUVVVc1VVRkJVVHREUVVOa0xFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnS2lCaGN5Qm5jbTlySUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5bmNtOXJKenRjYm1sdGNHOXlkQ0FxSUdGeklIVnBJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzkxYVNjN1hHNXBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1WEc1cGJYQnZjblFnZTFOMGNtbHVaMFJwWTNScGIyNWhjbmw5SUdaeWIyMGdKMEJrWVhSaFozSnZheTFzYVdKeVlYSnBaWE12ZFhScGJITXZjM0pqTDNSNWNHVXRaR1ZqYkdGeVlYUnBiMjV6Snp0Y2JtbHRjRzl5ZENCN1UyVnhVR0ZzWlhSMFpTd2dVMlZ4VUdGc1pYUjBaVUpoYzJWOUlHWnliMjBnSnk0dmMyVnhMWEJoYkdWMGRHVnpKenRjYmx4dVpYaHdiM0owSUdOc1lYTnpJRTUxWTJ4bGIzUnBaR1Z6VUdGc1pYUjBaWE1nWlhoMFpXNWtjeUJUWlhGUVlXeGxkSFJsUW1GelpTQjdYRzRnSUhCeWFYWmhkR1VnYzNSaGRHbGpJR05vY205dFlYUnZaM0poYlRvZ1UyVnhVR0ZzWlhSMFpUdGNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJR2RsZENCRGFISnZiV0YwYjJkeVlXMG9LVG9nVTJWeFVHRnNaWFIwWlNCN1hHNGdJQ0FnYVdZZ0tIUm9hWE11WTJoeWIyMWhkRzluY21GdElEMDlQU0IyYjJsa0lEQXBJSHRjYmlBZ0lDQWdJSFJvYVhNdVkyaHliMjFoZEc5bmNtRnRJRDBnYm1WM0lFNTFZMnhsYjNScFpHVnpVR0ZzWlhSMFpYTW9lMXh1SUNBZ0lDQWdJQ0FuUVNjNklDZG5jbVZsYmljc1hHNGdJQ0FnSUNBZ0lDZERKem9nSjJKc2RXVW5MRnh1SUNBZ0lDQWdJQ0FuUnljNklDZGliR0ZqYXljc0lDOHZJRzl5WVc1blpTQS9YRzRnSUNBZ0lDQWdJQ2RVSnpvZ0ozSmxaQ2NzWEc0Z0lDQWdJQ0FnSUNkVkp6b2dKM0psWkNjc1hHNGdJQ0FnSUNBZ0lDZHZkR2hsY25Nbk9pQW5aM0poZVNjc1hHNGdJQ0FnSUNCOUtUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVkyaHliMjFoZEc5bmNtRnRPMXh1SUNCOVhHNTlYRzVjYm1WNGNHOXlkQ0JqYkdGemN5Qk9kV05zWlc5MGFXUmxjeUI3WEc0Z0lITjBZWFJwWXlCeVpXRmtiMjVzZVNCVFpXMVVlWEJsT2lCemRISnBibWNnUFNBblRuVmpiR1Z2ZEdsa1pYTW5PMXh1WEc0Z0lITjBZWFJwWXlCeVpXRmtiMjVzZVNCVFpXMVVlWEJsVFhWc2RHbHdiR1ZCYkdsbmJtMWxiblE2SUhOMGNtbHVaeUE5SUNkT2RXTnNaVzkwYVdSbGMwMTFiSFJwY0d4bFFXeHBaMjV0Wlc1MEp6dGNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJRTVoYldWek9pQlRkSEpwYm1kRWFXTjBhVzl1WVhKNUlEMGdlMXh1SUNBZ0lDZEJKem9nSjBGa1pXNXBibVVuTEZ4dUlDQWdJQ2RESnpvZ0owTjVkRzl6YVc1bEp5eGNiaUFnSUNBblJ5YzZJQ2RIZFdGdWFXNWxKeXhjYmlBZ0lDQW5WQ2M2SUNkVWFIbHRhVzVsSnl4Y2JpQWdJQ0FuVlNjNklDZFZjbUZqYVd3bkxGeHVJQ0I5TzF4dWZWeHVJbDE5IiwiZXhwb3J0IGNsYXNzIFNlcVBhbGV0dGVCYXNlIHtcbiAgICBjb25zdHJ1Y3RvcihwYWxldHRlKSB7XG4gICAgICAgIHRoaXMuX3BhbGV0dGUgPSBwYWxldHRlO1xuICAgIH1cbiAgICBzdGF0aWMgbWFrZVBhbGV0dGUoZHQsIHNpbXBsaWZpZWQgPSBmYWxzZSwgUGFsZXR0ZVR5cGUgPSBTZXFQYWxldHRlQmFzZSkge1xuICAgICAgICBjb25zdCBwYWxldHRlID0ge307XG4gICAgICAgIGR0LmZvckVhY2goKGNwKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvYmpMaXN0ID0gY3BbMF07XG4gICAgICAgICAgICBjb25zdCBjb2xvdXIgPSBjcFsxXTtcbiAgICAgICAgICAgIG9iakxpc3QuZm9yRWFjaCgob2JqLCBpbmQpID0+IHtcbiAgICAgICAgICAgICAgICBwYWxldHRlW29ial0gPSB0aGlzLmNvbG91clBhbGV0dGVbY29sb3VyXVtzaW1wbGlmaWVkID8gMCA6IGluZF07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXcgUGFsZXR0ZVR5cGUocGFsZXR0ZSk7XG4gICAgfVxuICAgIGdldChtKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYWxldHRlW21dO1xuICAgIH1cbn1cblNlcVBhbGV0dGVCYXNlLnVuZGVmaW5lZENvbG9yID0gJ3JnYigxMDAsMTAwLDEwMCknO1xuLyoqIFBhbGV0dGUgd2l0aCBzaGFkZXMgb2YgcHJpbWFyeSBjb2xvcnMgKi9cblNlcVBhbGV0dGVCYXNlLmNvbG91clBhbGV0dGUgPSB7XG4gICAgJ29yYW5nZSc6IFsncmdiKDI1NSwxODcsMTIwKScsICdyZ2IoMjQ1LDE2NywxMDApJywgJ3JnYigyMzUsMTM3LDcwKScsICdyZ2IoMjA1LCAxMTEsIDcxKSddLFxuICAgICdhbGxfZ3JlZW4nOiBbJ3JnYig0NCwxNjAsNDQpJywgJ3JnYig3NCwxNjAsNzQpJywgJ3JnYigyMywxMDMsNTcpJywgJ3JnYigzMCwxMTAsOTYpJywgJ3JnYig2MCwxMzEsOTUpJyxcbiAgICAgICAgJ3JnYigyNCwxMTAsNzkpJywgJ3JnYigxNTIsMjIzLDEzOCknLCAncmdiKDE4MiwgMjIzLCAxMzgpJywgJ3JnYigxNTIsIDE5MywgMTM4KSddLFxuICAgICdhbGxfYmx1ZSc6IFsncmdiKDMxLDExOSwxODApJywgJ3JnYigyMywxOTAsMjA3KScsICdyZ2IoMTIyLCAxMDIsIDE4OSknLCAncmdiKDE1OCwyMTgsMjI5KScsICdyZ2IoMTQxLCAxMjQsIDIxNyknLFxuICAgICAgICAncmdiKDMxLCAxMjAsIDE1MCknXSxcbiAgICAnbWFnZW50YSc6IFsncmdiKDE2MiwxMDYsMTkyKScsICdyZ2IoMTk3LDE2NSwyMjQpJywgJ3JnYigyMDgsMTEzLDIxOCknXSxcbiAgICAncmVkJzogWydyZ2IoMjE0LDM5LDQwKScsICdyZ2IoMjU1LDE1MiwxNTApJ10sXG4gICAgJ3N0X2JsdWUnOiBbJ3JnYigyMywxOTAsMjA3KScsICdyZ2IoMTU4LDIxOCwyMjkpJywgJ3JnYigzMSwxMTksMTgwKSddLFxuICAgICdkYXJrX2JsdWUnOiBbJ3JnYigzMSwxMTksMTgwKScsICdyZ2IoMzEsIDEyMCwgMTUwKSddLFxuICAgICdsaWdodF9ibHVlJzogWydyZ2IoMjMsMTkwLDIwNyknLCAncmdiKDE1OCwyMTgsMjI5KScsICdyZ2IoMTA4LCAyMTgsIDIyOSknLCAncmdiKDIzLDE5MCwyMjcpJ10sXG4gICAgJ2xpbGFjX2JsdWUnOiBbJ3JnYigxMjQsMTAyLDIxMSknLCAncmdiKDE0OSwxMzQsMjE3KScsICdyZ2IoOTcsIDgxLCAxNTApJ10sXG4gICAgJ2RhcmtfZ3JlZW4nOiBbJ3JnYigyMywxMDMsNTcpJywgJ3JnYigzMCwxMTAsOTYpJywgJ3JnYig2MCwxMzEsOTUpJywgJ3JnYigyNCwxMTAsNzkpJ10sXG4gICAgJ2dyZWVuJzogWydyZ2IoNDQsMTYwLDQ0KScsICdyZ2IoNzQsMTYwLDc0KSddLFxuICAgICdsaWdodF9ncmVlbic6IFsncmdiKDE1MiwyMjMsMTM4KScsICdyZ2IoMTgyLCAyMjMsIDEzOCknLCAncmdiKDE1MiwgMTkzLCAxMzgpJ10sXG4gICAgJ3N0X2dyZWVuJzogWydyZ2IoNDQsMTYwLDQ0KScsICdyZ2IoMTUyLDIyMywxMzgpJywgJ3JnYigzOSwgMTc0LCA5NiknLCAncmdiKDc0LDE2MCw3NCknXSxcbiAgICAncGluayc6IFsncmdiKDI0NywxODIsMjEwKSddLFxuICAgICdicm93bic6IFsncmdiKDE0MCw4Niw3NSknLCAncmdiKDEwMiwgNjIsIDU0KSddLFxuICAgICdncmF5JzogWydyZ2IoMTI3LDEyNywxMjcpJywgJ3JnYigxOTksMTk5LDE5OSknLCAncmdiKDE5NiwxNTYsMTQ4KScsICdyZ2IoMjIyLCAyMjIsIDE4MCknXSxcbiAgICAneWVsbG93JzogWydyZ2IoMTg4LDE4OSwzNCknXSxcbiAgICAnd2hpdGUnOiBbJ3JnYigyMzAsMjMwLDIzMCknXSxcbn07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljMlZ4TFhCaGJHVjBkR1Z6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2ljMlZ4TFhCaGJHVjBkR1Z6TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFXbENRU3hOUVVGTkxFOUJRVThzWTBGQll6dEpRVEpEZWtJc1dVRkJXU3hQUVVGblF6dFJRVU14UXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hIUVVGSExFOUJRVThzUTBGQlF6dEpRVU14UWl4RFFVRkRPMGxCYkVKVExFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTXNSVUZCZDBJc1JVRkRia1FzVlVGQlZTeEhRVUZITEV0QlFVc3NSVUZCUlN4alFVRnhReXhqUVVGak8xRkJSWFpGTEUxQlFVMHNUMEZCVHl4SFFVRTRRaXhGUVVGRkxFTkJRVU03VVVGRE9VTXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTzFsQlEyaENMRTFCUVUwc1QwRkJUeXhIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTjBRaXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkRja0lzVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUlVGQlJUdG5Ra0ZETTBJc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEyeEZMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMHdzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEU0N4UFFVRlBMRWxCUVVrc1YwRkJWeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlEyeERMRU5CUVVNN1NVRlJUU3hIUVVGSExFTkJRVU1zUTBGQlV6dFJRVU5zUWl4UFFVRlBMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZETVVJc1EwRkJRenM3UVVGb1JHRXNOa0pCUVdNc1IwRkJSeXhyUWtGQmEwSXNRMEZCUXp0QlFVVnNSQ3cwUTBGQk5FTTdRVUZET1VJc05FSkJRV0VzUjBGQlowTTdTVUZEZWtRc1VVRkJVU3hGUVVGRkxFTkJRVU1zYTBKQlFXdENMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNhVUpCUVdsQ0xFVkJRVVVzYlVKQlFXMUNMRU5CUVVNN1NVRkRNVVlzVjBGQlZ5eEZRVUZGTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzWjBKQlFXZENMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNaMEpCUVdkQ0xFVkJRVVVzWjBKQlFXZENPMUZCUTNCSExHZENRVUZuUWl4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEc5Q1FVRnZRaXhGUVVGRkxHOUNRVUZ2UWl4RFFVRkRPMGxCUTI1R0xGVkJRVlVzUlVGQlJTeERRVUZETEdsQ1FVRnBRaXhGUVVGRkxHbENRVUZwUWl4RlFVRkZMRzlDUVVGdlFpeEZRVUZGTEd0Q1FVRnJRaXhGUVVGRkxHOUNRVUZ2UWp0UlFVTXZSeXh0UWtGQmJVSXNRMEZCUXp0SlFVTjBRaXhUUVVGVExFVkJRVVVzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4clFrRkJhMElzUTBGQlF6dEpRVU4yUlN4TFFVRkxMRVZCUVVVc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4clFrRkJhMElzUTBGQlF6dEpRVU0zUXl4VFFVRlRMRVZCUVVVc1EwRkJReXhwUWtGQmFVSXNSVUZCUlN4clFrRkJhMElzUlVGQlJTeHBRa0ZCYVVJc1EwRkJRenRKUVVOeVJTeFhRVUZYTEVWQlFVVXNRMEZCUXl4cFFrRkJhVUlzUlVGQlJTeHRRa0ZCYlVJc1EwRkJRenRKUVVOeVJDeFpRVUZaTEVWQlFVVXNRMEZCUXl4cFFrRkJhVUlzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3h2UWtGQmIwSXNSVUZCUlN4cFFrRkJhVUlzUTBGQlF6dEpRVU01Uml4WlFVRlpMRVZCUVVVc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4clFrRkJhMElzUlVGQlJTeHJRa0ZCYTBJc1EwRkJRenRKUVVNeFJTeFpRVUZaTEVWQlFVVXNRMEZCUXl4blFrRkJaMElzUlVGQlJTeG5Ra0ZCWjBJc1JVRkJSU3huUWtGQlowSXNSVUZCUlN4blFrRkJaMElzUTBGQlF6dEpRVU4wUml4UFFVRlBMRVZCUVVVc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4blFrRkJaMElzUTBGQlF6dEpRVU0zUXl4aFFVRmhMRVZCUVVVc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4dlFrRkJiMElzUlVGQlJTeHZRa0ZCYjBJc1EwRkJRenRKUVVNdlJTeFZRVUZWTEVWQlFVVXNRMEZCUXl4blFrRkJaMElzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4blFrRkJaMElzUTBGQlF6dEpRVU40Uml4TlFVRk5MRVZCUVVVc1EwRkJReXhyUWtGQmEwSXNRMEZCUXp0SlFVTTFRaXhQUVVGUExFVkJRVVVzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXp0SlFVTXZReXhOUVVGTkxFVkJRVVVzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4clFrRkJhMElzUlVGQlJTeHZRa0ZCYjBJc1EwRkJRenRKUVVNeFJpeFJRVUZSTEVWQlFVVXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF6dEpRVU0zUWl4UFFVRlBMRVZCUVVVc1EwRkJReXhyUWtGQmEwSXNRMEZCUXp0RFFVTTVRaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElDb2dZWE1nWjNKdmF5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaM0p2YXljN1hHNXBiWEJ2Y25RZ0tpQmhjeUIxYVNCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdmRXa25PMXh1YVcxd2IzSjBJQ29nWVhNZ1JFY2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMMlJuSnp0Y2JseHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQlRaWEZRWVd4bGRIUmxJSHRjYmlBZ0x5OGdWR2hsY21VZ1lYSmxJSFJ2YnlCdGRXTm9JSEJ5YjJKc1pXMGdkMmwwYUNCcGJtUmxlR1Z5SUhCeWIzQmxjblI1SUdsdUlIUjVjR1Z6WTNKcGNIUXVYRzRnSUM4dklDOHFLbHh1SUNBdkx5QWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdiU0JOYjI1dmJXVnlJR05vWVhKaFkzUmxjbHh1SUNBdkx5QWdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZDlJRU52Ykc5eVhHNGdJQzh2SUNBcUwxeHVJQ0F2THlCYmJUb2djM1J5YVc1blhUb2djM1J5YVc1bk8xeHVJQ0F2S2lvZ1RXOXViMjFsY2lCamIyeHZjbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2JTQk5iMjV2YldWeVhHNGdJQ0FxTDF4dUlDQm5aWFFvYlRvZ2MzUnlhVzVuS1RvZ2MzUnlhVzVuTzF4dWZWeHVYRzVsZUhCdmNuUWdZMnhoYzNNZ1UyVnhVR0ZzWlhSMFpVSmhjMlVnYVcxd2JHVnRaVzUwY3lCVFpYRlFZV3hsZEhSbElIdGNiaUFnY0hWaWJHbGpJSE4wWVhScFl5QjFibVJsWm1sdVpXUkRiMnh2Y2lBOUlDZHlaMklvTVRBd0xERXdNQ3d4TURBcEp6dGNibHh1SUNBdktpb2dVR0ZzWlhSMFpTQjNhWFJvSUhOb1lXUmxjeUJ2WmlCd2NtbHRZWEo1SUdOdmJHOXljeUFxTDF4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUdOdmJHOTFjbEJoYkdWMGRHVTZJSHNnVzJ0bGVUb2djM1J5YVc1blhUb2djM1J5YVc1blcxMGdmU0E5SUh0Y2JpQWdJQ0FuYjNKaGJtZGxKem9nV3lkeVoySW9NalUxTERFNE55d3hNakFwSnl3Z0ozSm5ZaWd5TkRVc01UWTNMREV3TUNrbkxDQW5jbWRpS0RJek5Td3hNemNzTnpBcEp5d2dKM0puWWlneU1EVXNJREV4TVN3Z056RXBKMTBzWEc0Z0lDQWdKMkZzYkY5bmNtVmxiaWM2SUZzbmNtZGlLRFEwTERFMk1DdzBOQ2tuTENBbmNtZGlLRGMwTERFMk1DdzNOQ2tuTENBbmNtZGlLREl6TERFd015dzFOeWtuTENBbmNtZGlLRE13TERFeE1DdzVOaWtuTENBbmNtZGlLRFl3TERFek1TdzVOU2tuTEZ4dUlDQWdJQ0FnSjNKbllpZ3lOQ3d4TVRBc056a3BKeXdnSjNKbllpZ3hOVElzTWpJekxERXpPQ2tuTENBbmNtZGlLREU0TWl3Z01qSXpMQ0F4TXpncEp5d2dKM0puWWlneE5USXNJREU1TXl3Z01UTTRLU2RkTEZ4dUlDQWdJQ2RoYkd4ZllteDFaU2M2SUZzbmNtZGlLRE14TERFeE9Td3hPREFwSnl3Z0ozSm5ZaWd5TXl3eE9UQXNNakEzS1Njc0lDZHlaMklvTVRJeUxDQXhNRElzSURFNE9Ta25MQ0FuY21kaUtERTFPQ3d5TVRnc01qSTVLU2NzSUNkeVoySW9NVFF4TENBeE1qUXNJREl4TnlrbkxGeHVJQ0FnSUNBZ0ozSm5ZaWd6TVN3Z01USXdMQ0F4TlRBcEoxMHNYRzRnSUNBZ0oyMWhaMlZ1ZEdFbk9pQmJKM0puWWlneE5qSXNNVEEyTERFNU1pa25MQ0FuY21kaUtERTVOeXd4TmpVc01qSTBLU2NzSUNkeVoySW9NakE0TERFeE15d3lNVGdwSjEwc1hHNGdJQ0FnSjNKbFpDYzZJRnNuY21kaUtESXhOQ3d6T1N3ME1Da25MQ0FuY21kaUtESTFOU3d4TlRJc01UVXdLU2RkTEZ4dUlDQWdJQ2R6ZEY5aWJIVmxKem9nV3lkeVoySW9Nak1zTVRrd0xESXdOeWtuTENBbmNtZGlLREUxT0N3eU1UZ3NNakk1S1Njc0lDZHlaMklvTXpFc01URTVMREU0TUNrblhTeGNiaUFnSUNBblpHRnlhMTlpYkhWbEp6b2dXeWR5WjJJb016RXNNVEU1TERFNE1Da25MQ0FuY21kaUtETXhMQ0F4TWpBc0lERTFNQ2tuWFN4Y2JpQWdJQ0FuYkdsbmFIUmZZbXgxWlNjNklGc25jbWRpS0RJekxERTVNQ3d5TURjcEp5d2dKM0puWWlneE5UZ3NNakU0TERJeU9Ta25MQ0FuY21kaUtERXdPQ3dnTWpFNExDQXlNamtwSnl3Z0ozSm5ZaWd5TXl3eE9UQXNNakkzS1NkZExGeHVJQ0FnSUNkc2FXeGhZMTlpYkhWbEp6b2dXeWR5WjJJb01USTBMREV3TWl3eU1URXBKeXdnSjNKbllpZ3hORGtzTVRNMExESXhOeWtuTENBbmNtZGlLRGszTENBNE1Td2dNVFV3S1NkZExGeHVJQ0FnSUNka1lYSnJYMmR5WldWdUp6b2dXeWR5WjJJb01qTXNNVEF6TERVM0tTY3NJQ2R5WjJJb016QXNNVEV3TERrMktTY3NJQ2R5WjJJb05qQXNNVE14TERrMUtTY3NJQ2R5WjJJb01qUXNNVEV3TERjNUtTZGRMRnh1SUNBZ0lDZG5jbVZsYmljNklGc25jbWRpS0RRMExERTJNQ3cwTkNrbkxDQW5jbWRpS0RjMExERTJNQ3czTkNrblhTeGNiaUFnSUNBbmJHbG5hSFJmWjNKbFpXNG5PaUJiSjNKbllpZ3hOVElzTWpJekxERXpPQ2tuTENBbmNtZGlLREU0TWl3Z01qSXpMQ0F4TXpncEp5d2dKM0puWWlneE5USXNJREU1TXl3Z01UTTRLU2RkTEZ4dUlDQWdJQ2R6ZEY5bmNtVmxiaWM2SUZzbmNtZGlLRFEwTERFMk1DdzBOQ2tuTENBbmNtZGlLREUxTWl3eU1qTXNNVE00S1Njc0lDZHlaMklvTXprc0lERTNOQ3dnT1RZcEp5d2dKM0puWWlnM05Dd3hOakFzTnpRcEoxMHNYRzRnSUNBZ0ozQnBibXNuT2lCYkozSm5ZaWd5TkRjc01UZ3lMREl4TUNrblhTeGNiaUFnSUNBblluSnZkMjRuT2lCYkozSm5ZaWd4TkRBc09EWXNOelVwSnl3Z0ozSm5ZaWd4TURJc0lEWXlMQ0ExTkNrblhTeGNiaUFnSUNBblozSmhlU2M2SUZzbmNtZGlLREV5Tnl3eE1qY3NNVEkzS1Njc0lDZHlaMklvTVRrNUxERTVPU3d4T1RrcEp5d2dKM0puWWlneE9UWXNNVFUyTERFME9Da25MQ0FuY21kaUtESXlNaXdnTWpJeUxDQXhPREFwSjEwc1hHNGdJQ0FnSjNsbGJHeHZkeWM2SUZzbmNtZGlLREU0T0N3eE9Ea3NNelFwSjEwc1hHNGdJQ0FnSjNkb2FYUmxKem9nV3lkeVoySW9Nak13TERJek1Dd3lNekFwSjEwc1hHNGdJSDA3WEc1Y2JpQWdjSEp2ZEdWamRHVmtJSE4wWVhScFl5QnRZV3RsVUdGc1pYUjBaU2hrZERvZ1czTjBjbWx1WjF0ZExDQnpkSEpwYm1kZFcxMHNYRzRnSUNBZ2MybHRjR3hwWm1sbFpDQTlJR1poYkhObExDQlFZV3hsZEhSbFZIbHdaVG9nZEhsd1pXOW1JRk5sY1ZCaGJHVjBkR1ZDWVhObElEMGdVMlZ4VUdGc1pYUjBaVUpoYzJWY2JpQWdLU0I3WEc0Z0lDQWdZMjl1YzNRZ2NHRnNaWFIwWlRvZ2V5QmJhMlY1T2lCemRISnBibWRkT2lCemRISnBibWNnZlNBOUlIdDlPMXh1SUNBZ0lHUjBMbVp2Y2tWaFkyZ29LR053S1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCdlltcE1hWE4wSUQwZ1kzQmJNRjA3WEc0Z0lDQWdJQ0JqYjI1emRDQmpiMnh2ZFhJZ1BTQmpjRnN4WFR0Y2JpQWdJQ0FnSUc5aWFreHBjM1F1Wm05eVJXRmphQ2dvYjJKcUxDQnBibVFwSUQwK0lIdGNiaUFnSUNBZ0lDQWdjR0ZzWlhSMFpWdHZZbXBkSUQwZ2RHaHBjeTVqYjJ4dmRYSlFZV3hsZEhSbFcyTnZiRzkxY2wxYmMybHRjR3hwWm1sbFpDQS9JREFnT2lCcGJtUmRPMXh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdmU2s3WEc0Z0lDQWdjbVYwZFhKdUlHNWxkeUJRWVd4bGRIUmxWSGx3WlNod1lXeGxkSFJsS1R0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ2NtVmhaRzl1YkhrZ1gzQmhiR1YwZEdVNklIc2dXMjA2SUhOMGNtbHVaMTA2SUhOMGNtbHVaeUI5TzF4dVhHNGdJR052Ym5OMGNuVmpkRzl5S0hCaGJHVjBkR1U2SUhzZ1cyMDZJSE4wY21sdVoxMDZJSE4wY21sdVp5QjlLU0I3WEc0Z0lDQWdkR2hwY3k1ZmNHRnNaWFIwWlNBOUlIQmhiR1YwZEdVN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1oyVjBLRzA2SUhOMGNtbHVaeWs2SUhOMGNtbHVaeUI3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WDNCaGJHVjBkR1ZiYlYwN1hHNGdJSDFjYm4xY2JpSmRmUT09IiwiaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvdmVjdG9yLW9wZXJhdGlvbnMnO1xuY2xhc3MgU2lkZUNoYWluU2NhbGVzIHtcbiAgICBzdGF0aWMgZ2V0QXZhaWxhYmxlU2NhbGVzKCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhpcy5zY2FsZXMpLm1hcCgoW2ssIF9dKSA9PiBrKTtcbiAgICB9XG4gICAgc3RhdGljIGdldFNjYWxlKG5hbWUpIHtcbiAgICAgICAgYXNzZXJ0KCEodGhpcy5zY2FsZXNbbmFtZV0gPT09IHVuZGVmaW5lZCksIGBTY2FsZSAnJHtuYW1lfScgd2FzIG5vdCBmb3VuZC5gKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NhbGVzW25hbWVdO1xuICAgIH1cbn1cblNpZGVDaGFpblNjYWxlcy5zY2FsZXMgPSB7XG4gICAgLy8gV2ltbGV5LVdoaXRlIGludGVyZmFjaWFsIGh5ZHJvcGhvYmljaXR5IHNjYWxlXG4gICAgJ1dpbWxleVdoaXRlJzoge1xuICAgICAgICAnLSc6IDAsXG4gICAgICAgICdBJzogMC4xNyxcbiAgICAgICAgJ0MnOiAtMC4yNCxcbiAgICAgICAgJ0QnOiAtMC4wNyxcbiAgICAgICAgJ0UnOiAtMC4wMSxcbiAgICAgICAgJ0YnOiAtMS4xMyxcbiAgICAgICAgJ0cnOiAwLjAxLFxuICAgICAgICAnSCc6IDAuMTcsXG4gICAgICAgICdJJzogLTAuMzEsXG4gICAgICAgICdLJzogMC45OSxcbiAgICAgICAgJ0wnOiAtMC41NixcbiAgICAgICAgJ00nOiAtMC4yMyxcbiAgICAgICAgJ04nOiAwLjQyLFxuICAgICAgICAnUCc6IDAuNDUsXG4gICAgICAgICdRJzogMC41OCxcbiAgICAgICAgJ1InOiAwLjgxLFxuICAgICAgICAnUyc6IDAuMTMsXG4gICAgICAgICdUJzogMC4xNCxcbiAgICAgICAgJ1YnOiAwLjA3LFxuICAgICAgICAnVyc6IC0xLjg1LFxuICAgICAgICAnWSc6IC0wLjk0LFxuICAgIH0sXG4gICAgJ2NhdGVnb3JpYWwnOiB7XG4gICAgICAgICctJzogMCxcbiAgICAgICAgJ0EnOiAxLFxuICAgICAgICAnQyc6IDIsXG4gICAgICAgICdEJzogMyxcbiAgICAgICAgJ0UnOiA0LFxuICAgICAgICAnRic6IDUsXG4gICAgICAgICdHJzogNixcbiAgICAgICAgJ0gnOiA3LFxuICAgICAgICAnSSc6IDgsXG4gICAgICAgICdLJzogOSxcbiAgICAgICAgJ0wnOiAxMCxcbiAgICAgICAgJ00nOiAxMSxcbiAgICAgICAgJ04nOiAxMixcbiAgICAgICAgJ1AnOiAxMyxcbiAgICAgICAgJ1EnOiAxNCxcbiAgICAgICAgJ1InOiAxNSxcbiAgICAgICAgJ1MnOiAxNixcbiAgICAgICAgJ1QnOiAxNyxcbiAgICAgICAgJ1YnOiAxOCxcbiAgICAgICAgJ1cnOiAxOSxcbiAgICAgICAgJ1knOiAyMCxcbiAgICB9LFxufTtcbi8qKlxuICogQ2xhc3MgdG8gY2F0ZWdvcmlhbCBlbmNvZGUvZGVjb2RlIGFsaWduZWQgYW1pbm8gYWNpZCByZXNpZHVlcyBzZXF1ZW5jZS5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgQWxpZ25lZFNlcXVlbmNlRW5jb2RlclxuICovXG5leHBvcnQgY2xhc3MgQWxpZ25lZFNlcXVlbmNlRW5jb2RlciB7XG4gICAgY29uc3RydWN0b3Ioc2NhbGUgPSAnY2F0ZWdvcmlhbCcpIHtcbiAgICAgICAgdGhpcy5hYTJudW0gPSBTaWRlQ2hhaW5TY2FsZXMuZ2V0U2NhbGUoc2NhbGUpO1xuICAgICAgICB0aGlzLm51bTJhYSA9IHt9O1xuICAgICAgICBPYmplY3QuZW50cmllcyh0aGlzLmFhMm51bSkuZm9yRWFjaCgoW2ssIHZdKSA9PiAodGhpcy5udW0yYWFbdl0gPSBrKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAgICogVHJ1bmNhdGUgTkgyIGFuZCAtQ09PSCB0ZXJtaW5hbHMgb2YgdGhlIGdpdmVuIHNlcXVlbmNlLlxuICAgICAgICpcbiAgICAgICAqIEBzdGF0aWNcbiAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZXEgVGhlIHNlcXVlbmNlIHByb3ZpZGVkLlxuICAgICAgICogQHJldHVybiB7c3RyaW5nfSBUcnVuY2F0ZWQgc2VxdWVuY2UuXG4gICAgICAgKiBAbWVtYmVyb2YgQWxpZ25lZFNlcXVlbmNlRW5jb2RlclxuICAgICAgICovXG4gICAgc3RhdGljIF90cnVuY2F0ZVNlcXVlbmNlKHNlcSkge1xuICAgICAgICBsZXQgc3RhcnQgPSAwO1xuICAgICAgICBsZXQgZW5kID0gc2VxLmxlbmd0aDtcbiAgICAgICAgY29uc3QgdGVybWluYSA9IFsnTkgyJywgJ0NPT0gnXTtcbiAgICAgICAgaWYgKHNlcS5zdGFydHNXaXRoKHRlcm1pbmFbMF0pKSB7XG4gICAgICAgICAgICBjb25zdCBsID0gdGVybWluYVswXS5sZW5ndGg7IC8vIEN1dCBvbmx5ICdOSDInIHdpdGhvdXQgZm9sbG93aW5nICctJy5cbiAgICAgICAgICAgIGFzc2VydChzZXFbbF0gPT0gJy0nLCBgV3Jvbmcgc2VxdWVuY2UgZm9ybWF0OiAke3Rlcm1pbmFbMF19IHdpdGhvdXQgZm9sbG93aW5nICctJyBpbiAnJHtzZXF9Jy5gKTtcbiAgICAgICAgICAgIHN0YXJ0ID0gbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2VxLmVuZHNXaXRoKHRlcm1pbmFbMV0pKSB7XG4gICAgICAgICAgICBjb25zdCBsID0gdGVybWluYVsxXS5sZW5ndGggKyAxOyAvLyBDdXQgYm90aCAnQ09PSCcgYW5kIHByZWNlbmRpbmcgJy0nLlxuICAgICAgICAgICAgYXNzZXJ0KHNlcVtlbmQgLSBsXSA9PSAnLScsIGBXcm9uZyBzZXF1ZW5jZSBmb3JtYXQ6ICR7dGVybWluYVsxXX0gd2l0aG91dCAnLScgcHJlY2VuZGluZyBpbiAnJHtzZXF9Jy5gKTtcbiAgICAgICAgICAgIGVuZCAtPSBsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZXEuc3Vic3RyaW5nKHN0YXJ0LCBlbmQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgICAqIEN1dHMgYXV4aWxpYXJ5IGRlZmlzZXMgYmVmb3JlIGEgcmVzaWR1ZS5cbiAgICAgICAqXG4gICAgICAgKiBAc3RhdGljXG4gICAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VxIFRoZSBzZXF1ZW5jZSB0byBwcm9jZXNzLlxuICAgICAgICogQHJldHVybiB7c3RyaW5nfSBQcm9jZXNzZWQgc2VxdWVuY2UuXG4gICAgICAgKiBAbWVtYmVyb2YgQWxpZ25lZFNlcXVlbmNlRW5jb2RlclxuICAgICAgICovXG4gICAgc3RhdGljIF9kcm9wRGVmaXNlcyhzZXEpIHtcbiAgICAgICAgcmV0dXJuIHNlcS5yZXBsYWNlKC8oLSkoW14tXSspL2csICckMicpO1xuICAgIH1cbiAgICAvKipcbiAgICAgICAqIFBlcmZvcm1zIHRydW5jYXRpb24gYW5kIGN1dHRpbmcgYXV4aWxpYXJ5IGRlZmlzZXMuXG4gICAgICAgKlxuICAgICAgICogQHN0YXRpY1xuICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHNlcXVlbmNlIFRoZSBzZXF1ZW5jZSB3b3JrIHVuZGVyIHByb2Nlc3MuXG4gICAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IFJlc3VsdCBvZiBjbGVhbmluZy5cbiAgICAgICAqIEBtZW1iZXJvZiBBbGlnbmVkU2VxdWVuY2VFbmNvZGVyXG4gICAgICAgKi9cbiAgICBzdGF0aWMgY2xlYW4oc2VxdWVuY2UpIHtcbiAgICAgICAgcmV0dXJuIEFsaWduZWRTZXF1ZW5jZUVuY29kZXIuX2Ryb3BEZWZpc2VzKEFsaWduZWRTZXF1ZW5jZUVuY29kZXIuX3RydW5jYXRlU2VxdWVuY2Uoc2VxdWVuY2UpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICAgKiBDYXRlZ29yaWFsIGVuY29kZSBvZiB0aGUgc2VxdWVuY2UgcHJvdmlkZWQuXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIHtzdHJpbmd9IHNlcXVlbmNlIFRoZSBzZXF1ZW5jZS5cbiAgICAgICAqIEByZXR1cm4ge251bWJlcltdfSBFbmNvZGVkIHZlY3Rvci5cbiAgICAgICAqIEBtZW1iZXJvZiBBbGlnbmVkU2VxdWVuY2VFbmNvZGVyXG4gICAgICAgKi9cbiAgICBlbmNvZGUoc2VxdWVuY2UpIHtcbiAgICAgICAgY29uc3Qgbkl0ZW1zID0gc2VxdWVuY2UubGVuZ3RoO1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBuZXcgQXJyYXkobkl0ZW1zKS5maWxsKDApO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5JdGVtczsgKytpKSB7XG4gICAgICAgICAgICBjb25zdCBjaGFyID0gc2VxdWVuY2VbaV07XG4gICAgICAgICAgICBhc3NlcnQoY2hhciBpbiB0aGlzLmFhMm51bSwgYFVua25vd24gY2hhciAnJHtjaGFyfScgZm91bmQgaW4gc2VxdWVuY2UgJyR7c2VxdWVuY2V9J2ApO1xuICAgICAgICAgICAgdmFsdWVzW2ldID0gdGhpcy5lbmNvZGVMZXR0dGVyKGNoYXIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgfVxuICAgIGVuY29kZUxldHR0ZXIobGV0dGVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFhMm51bVtsZXR0ZXJdO1xuICAgIH1cbiAgICAvKipcbiAgICAgICAqIERlY29kZSB0aGUgZW5jb2RlZCB2ZWN0b3IgaW50byB0aGUgc2VxdWVuY2UgYmFjay5cbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0ge251bWJlcltdfSB2YWx1ZSBUaGUgdmVjdG9yIGVuY29kZWQuXG4gICAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IERlY29kZWQgc2VxdWVuY2UuXG4gICAgICAgKiBAbWVtYmVyb2YgQWxpZ25lZFNlcXVlbmNlRW5jb2RlclxuICAgICAgICovXG4gICAgZGVjb2RlKHZhbHVlKSB7XG4gICAgICAgIGxldCBzID0gJyc7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvZGUgPSB2YWx1ZVtpXTtcbiAgICAgICAgICAgIGFzc2VydChjb2RlIGluIHRoaXMubnVtMmFhLCBgVW5rbm93biBjb2RlICcke2NvZGV9JyBmb3VuZCBpbiB2ZWN0b3IgJyR7dmFsdWV9J2ApO1xuICAgICAgICAgICAgcyArPSB0aGlzLm51bTJhYVtjb2RlXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcztcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljMlZ4ZFdWdVkyVXRaVzVqYjJSbGNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW5ObGNYVmxibU5sTFdWdVkyOWtaWEl1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUMEZCVHl4RlFVRkRMRTFCUVUwc1JVRkJReXhOUVVGTkxHbEVRVUZwUkN4RFFVRkRPMEZCUzNaRkxFMUJRVTBzWlVGQlpUdEpRVzFFYmtJc1RVRkJUU3hEUVVGRExHdENRVUZyUWp0UlFVTjJRaXhQUVVGUExFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjRSQ3hEUVVGRE8wbEJSVVFzVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4SlFVRlpPMUZCUXpGQ0xFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eFRRVUZUTEVOQlFVTXNSVUZCUlN4VlFVRlZMRWxCUVVrc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXp0UlFVTTNSU3hQUVVGUExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRNMElzUTBGQlF6czdRVUY2UkUwc2MwSkJRVTBzUjBGQk5rSTdTVUZEZUVNc1owUkJRV2RFTzBsQlEyaEVMR0ZCUVdFc1JVRkJSVHRSUVVOaUxFZEJRVWNzUlVGQlJTeERRVUZETzFGQlEwNHNSMEZCUnl4RlFVRkZMRWxCUVVrN1VVRkRWQ3hIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTzFGQlExWXNSMEZCUnl4RlFVRkZMRU5CUVVNc1NVRkJTVHRSUVVOV0xFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVazdVVUZEVml4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSk8xRkJRMVlzUjBGQlJ5eEZRVUZGTEVsQlFVazdVVUZEVkN4SFFVRkhMRVZCUVVVc1NVRkJTVHRSUVVOVUxFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVazdVVUZEVml4SFFVRkhMRVZCUVVVc1NVRkJTVHRSUVVOVUxFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVazdVVUZEVml4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSk8xRkJRMVlzUjBGQlJ5eEZRVUZGTEVsQlFVazdVVUZEVkN4SFFVRkhMRVZCUVVVc1NVRkJTVHRSUVVOVUxFZEJRVWNzUlVGQlJTeEpRVUZKTzFGQlExUXNSMEZCUnl4RlFVRkZMRWxCUVVrN1VVRkRWQ3hIUVVGSExFVkJRVVVzU1VGQlNUdFJRVU5VTEVkQlFVY3NSVUZCUlN4SlFVRkpPMUZCUTFRc1IwRkJSeXhGUVVGRkxFbEJRVWs3VVVGRFZDeEhRVUZITEVWQlFVVXNRMEZCUXl4SlFVRkpPMUZCUTFZc1IwRkJSeXhGUVVGRkxFTkJRVU1zU1VGQlNUdExRVU5ZTzBsQlEwUXNXVUZCV1N4RlFVRkZPMUZCUTFvc1IwRkJSeXhGUVVGRkxFTkJRVU03VVVGRFRpeEhRVUZITEVWQlFVVXNRMEZCUXp0UlFVTk9MRWRCUVVjc1JVRkJSU3hEUVVGRE8xRkJRMDRzUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZEVGl4SFFVRkhMRVZCUVVVc1EwRkJRenRSUVVOT0xFZEJRVWNzUlVGQlJTeERRVUZETzFGQlEwNHNSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRUaXhIUVVGSExFVkJRVVVzUTBGQlF6dFJRVU5PTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUTA0c1IwRkJSeXhGUVVGRkxFTkJRVU03VVVGRFRpeEhRVUZITEVWQlFVVXNSVUZCUlR0UlFVTlFMRWRCUVVjc1JVRkJSU3hGUVVGRk8xRkJRMUFzUjBGQlJ5eEZRVUZGTEVWQlFVVTdVVUZEVUN4SFFVRkhMRVZCUVVVc1JVRkJSVHRSUVVOUUxFZEJRVWNzUlVGQlJTeEZRVUZGTzFGQlExQXNSMEZCUnl4RlFVRkZMRVZCUVVVN1VVRkRVQ3hIUVVGSExFVkJRVVVzUlVGQlJUdFJRVU5RTEVkQlFVY3NSVUZCUlN4RlFVRkZPMUZCUTFBc1IwRkJSeXhGUVVGRkxFVkJRVVU3VVVGRFVDeEhRVUZITEVWQlFVVXNSVUZCUlR0UlFVTlFMRWRCUVVjc1JVRkJSU3hGUVVGRk8wdEJRMUk3UTBGRFJpeERRVUZETzBGQldVbzdPenM3TzBkQlMwYzdRVUZEU0N4TlFVRk5MRTlCUVU4c2MwSkJRWE5DTzBsQlNXcERMRmxCUVZrc1VVRkJaMElzV1VGQldUdFJRVU4wUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExHVkJRV1VzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRPVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4RlFVRkZMRU5CUVVNN1VVRkRha0lzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNoRkxFTkJRVU03U1VGRlJEczdPenM3T3p0VFFVOUxPMGxCUTB3c1RVRkJUU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRWRCUVZjN1VVRkRiRU1zU1VGQlNTeExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTJRc1NVRkJTU3hIUVVGSExFZEJRVWNzUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXp0UlFVTnlRaXhOUVVGTkxFOUJRVThzUjBGQlJ5eERRVUZETEV0QlFVc3NSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVWb1F5eEpRVUZKTEVkQlFVY3NRMEZCUXl4VlFVRlZMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVTdXVUZET1VJc1RVRkJUU3hEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExIZERRVUYzUXp0WlFVTnlSU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRWRCUVVjc1JVRkJSU3d3UWtGQk1FSXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXc0UWtGQk9FSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVOcVJ5eExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRPMU5CUTFnN1VVRkRSQ3hKUVVGSkxFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVU3V1VGRE5VSXNUVUZCVFN4RFFVRkRMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNSMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXh6UTBGQmMwTTdXVUZEY2tVc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVkQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1IwRkJSeXhGUVVGRkxEQkNRVUV3UWl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExDdENRVUVyUWl4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8xbEJRM1JITEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1UwRkRWanRSUVVORUxFOUJRVThzUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGJrTXNRMEZCUXp0SlFVVkVPenM3T3pzN08xTkJUMHM3U1VGRFRDeE5RVUZOTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWRCUVZjN1VVRkROMElzVDBGQlR5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMR0ZCUVdFc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU14UXl4RFFVRkRPMGxCUlVRN096czdPenM3VTBGUFN6dEpRVU5NTEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJaMEk3VVVGRE0wSXNUMEZCVHl4elFrRkJjMElzUTBGQlF5eFpRVUZaTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5xUnl4RFFVRkRPMGxCUlVRN096czdPenRUUVUxTE8wbEJRMFVzVFVGQlRTeERRVUZETEZGQlFXZENPMUZCUXpWQ0xFMUJRVTBzVFVGQlRTeEhRVUZITEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNN1VVRkRMMElzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUlhwRExFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVTdXVUZETDBJc1RVRkJUU3hKUVVGSkxFZEJRVWNzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUlhwQ0xFMUJRVTBzUTBGQlF5eEpRVUZKTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hwUWtGQmFVSXNTVUZCU1N4M1FrRkJkMElzVVVGQlVTeEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVVjBSaXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFRRVU4wUXp0UlFVTkVMRTlCUVU4c1RVRkJUU3hEUVVGRE8wbEJRMmhDTEVOQlFVTTdTVUZGVFN4aFFVRmhMRU5CUVVNc1RVRkJZenRSUVVOcVF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRE4wSXNRMEZCUXp0SlFVVkVPenM3T3pzN1UwRk5TenRKUVVORkxFMUJRVTBzUTBGQlF5eExRVUZsTzFGQlF6TkNMRWxCUVVrc1EwRkJReXhIUVVGWExFVkJRVVVzUTBGQlF6dFJRVVZ1UWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRTFCUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJUdFpRVU55UXl4TlFVRk5MRWxCUVVrc1IwRkJSeXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZGZEVJc1RVRkJUU3hEUVVGRExFbEJRVWtzU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMR2xDUVVGcFFpeEpRVUZKTEhOQ1FVRnpRaXhMUVVGTExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlJXcEdMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMU5CUTNoQ08xRkJRMFFzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEV0N4RFFVRkRPME5CUTBZaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2UyRnpjMlZ5ZEgwZ1puSnZiU0FuUUdSaGRHRm5jbTlyTFd4cFluSmhjbWxsY3k5MWRHbHNjeTl6Y21NdmRtVmpkRzl5TFc5d1pYSmhkR2x2Ym5Nbk8xeHVYRzUwZVhCbElGTnBaR1ZEYUdGcGJsTmpZV3hsSUQwZ2UxdHVZVzFsT2lCemRISnBibWRkT2lCdWRXMWlaWEo5TzF4dWRIbHdaU0JUYVdSbFEyaGhhVzVUWTJGc1pVTnZiR3hsWTNScGIyNGdQU0I3VzI1aGJXVTZJSE4wY21sdVoxMDZJRk5wWkdWRGFHRnBibE5qWVd4bGZUdGNibHh1WTJ4aGMzTWdVMmxrWlVOb1lXbHVVMk5oYkdWeklIdGNiaUFnYzNSaGRHbGpJSE5qWVd4bGN6b2dVMmxrWlVOb1lXbHVVMk5oYkdWRGIyeHNaV04wYVc5dUlEMGdlMXh1SUNBZ0lDOHZJRmRwYld4bGVTMVhhR2wwWlNCcGJuUmxjbVpoWTJsaGJDQm9lV1J5YjNCb2IySnBZMmwwZVNCelkyRnNaVnh1SUNBZ0lDZFhhVzFzWlhsWGFHbDBaU2M2SUh0Y2JpQWdJQ0FnSUNjdEp6b2dNQ3hjYmlBZ0lDQWdJQ2RCSnpvZ01DNHhOeXhjYmlBZ0lDQWdJQ2RESnpvZ0xUQXVNalFzWEc0Z0lDQWdJQ0FuUkNjNklDMHdMakEzTENBdkx5QkJjM0F0T2lBeExqSXpYRzRnSUNBZ0lDQW5SU2M2SUMwd0xqQXhMQ0F2THlCSGJIVXRPaUF5TGpBeVhHNGdJQ0FnSUNBblJpYzZJQzB4TGpFekxDQXZMMXh1SUNBZ0lDQWdKMGNuT2lBd0xqQXhMRnh1SUNBZ0lDQWdKMGduT2lBd0xqRTNMQ0F2THlCSWFYTXJPaUF3TGprMlhHNGdJQ0FnSUNBblNTYzZJQzB3TGpNeExGeHVJQ0FnSUNBZ0owc25PaUF3TGprNUxDQXZMeUJNZVhNclhHNGdJQ0FnSUNBblRDYzZJQzB3TGpVMkxGeHVJQ0FnSUNBZ0owMG5PaUF0TUM0eU15eGNiaUFnSUNBZ0lDZE9Kem9nTUM0ME1peGNiaUFnSUNBZ0lDZFFKem9nTUM0ME5TeGNiaUFnSUNBZ0lDZFJKem9nTUM0MU9DeGNiaUFnSUNBZ0lDZFNKem9nTUM0NE1Td2dMeThnUVhKbksxeHVJQ0FnSUNBZ0oxTW5PaUF3TGpFekxGeHVJQ0FnSUNBZ0oxUW5PaUF3TGpFMExGeHVJQ0FnSUNBZ0oxWW5PaUF3TGpBM0xGeHVJQ0FnSUNBZ0oxY25PaUF0TVM0NE5TeGNiaUFnSUNBZ0lDZFpKem9nTFRBdU9UUXNYRzRnSUNBZ2ZTeGNiaUFnSUNBblkyRjBaV2R2Y21saGJDYzZJSHRjYmlBZ0lDQWdJQ2N0SnpvZ01DeGNiaUFnSUNBZ0lDZEJKem9nTVN4Y2JpQWdJQ0FnSUNkREp6b2dNaXhjYmlBZ0lDQWdJQ2RFSnpvZ015eGNiaUFnSUNBZ0lDZEZKem9nTkN4Y2JpQWdJQ0FnSUNkR0p6b2dOU3hjYmlBZ0lDQWdJQ2RISnpvZ05peGNiaUFnSUNBZ0lDZElKem9nTnl4Y2JpQWdJQ0FnSUNkSkp6b2dPQ3hjYmlBZ0lDQWdJQ2RMSnpvZ09TeGNiaUFnSUNBZ0lDZE1Kem9nTVRBc1hHNGdJQ0FnSUNBblRTYzZJREV4TEZ4dUlDQWdJQ0FnSjA0bk9pQXhNaXhjYmlBZ0lDQWdJQ2RRSnpvZ01UTXNYRzRnSUNBZ0lDQW5VU2M2SURFMExGeHVJQ0FnSUNBZ0oxSW5PaUF4TlN4Y2JpQWdJQ0FnSUNkVEp6b2dNVFlzWEc0Z0lDQWdJQ0FuVkNjNklERTNMRnh1SUNBZ0lDQWdKMVluT2lBeE9DeGNiaUFnSUNBZ0lDZFhKem9nTVRrc1hHNGdJQ0FnSUNBbldTYzZJREl3TEZ4dUlDQWdJSDBzWEc0Z0lIMDdYRzVjYmlBZ2MzUmhkR2xqSUdkbGRFRjJZV2xzWVdKc1pWTmpZV3hsY3lncE9pQnpkSEpwYm1kYlhTQjdYRzRnSUNBZ2NtVjBkWEp1SUU5aWFtVmpkQzVsYm5SeWFXVnpLSFJvYVhNdWMyTmhiR1Z6S1M1dFlYQW9LRnRyTENCZlhTa2dQVDRnYXlrN1hHNGdJSDFjYmx4dUlDQnpkR0YwYVdNZ1oyVjBVMk5oYkdVb2JtRnRaVG9nYzNSeWFXNW5LVG9nVTJsa1pVTm9ZV2x1VTJOaGJHVWdlMXh1SUNBZ0lHRnpjMlZ5ZENnaEtIUm9hWE11YzJOaGJHVnpXMjVoYldWZElEMDlQU0IxYm1SbFptbHVaV1FwTENCZ1UyTmhiR1VnSnlSN2JtRnRaWDBuSUhkaGN5QnViM1FnWm05MWJtUXVZQ2s3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YzJOaGJHVnpXMjVoYldWZE8xeHVJQ0I5WEc1OVhHNWNiaThxS2x4dUlDb2dRMnhoYzNNZ2RHOGdZMkYwWldkdmNtbGhiQ0JsYm1OdlpHVXZaR1ZqYjJSbElHRnNhV2R1WldRZ1lXMXBibThnWVdOcFpDQnlaWE5wWkhWbGN5QnpaWEYxWlc1alpTNWNiaUFxWEc0Z0tpQkFaWGh3YjNKMFhHNGdLaUJBWTJ4aGMzTWdRV3hwWjI1bFpGTmxjWFZsYm1ObFJXNWpiMlJsY2x4dUlDb3ZYRzVsZUhCdmNuUWdZMnhoYzNNZ1FXeHBaMjVsWkZObGNYVmxibU5sUlc1amIyUmxjaUI3WEc0Z0lIQnliM1JsWTNSbFpDQmhZVEp1ZFcwNklGTnBaR1ZEYUdGcGJsTmpZV3hsTzF4dUlDQndjbTkwWldOMFpXUWdiblZ0TW1GaE9pQjdXMk52WkdVNklHNTFiV0psY2wwNklITjBjbWx1WjMwN1hHNWNiaUFnWTI5dWMzUnlkV04wYjNJb2MyTmhiR1U2SUhOMGNtbHVaeUE5SUNkallYUmxaMjl5YVdGc0p5a2dlMXh1SUNBZ0lIUm9hWE11WVdFeWJuVnRJRDBnVTJsa1pVTm9ZV2x1VTJOaGJHVnpMbWRsZEZOallXeGxLSE5qWVd4bEtUdGNiaUFnSUNCMGFHbHpMbTUxYlRKaFlTQTlJSHQ5TzF4dUlDQWdJRTlpYW1WamRDNWxiblJ5YVdWektIUm9hWE11WVdFeWJuVnRLUzVtYjNKRllXTm9LQ2hiYXl3Z2RsMHBJRDArSUNoMGFHbHpMbTUxYlRKaFlWdDJYU0E5SUdzcEtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdJQ0FxSUZSeWRXNWpZWFJsSUU1SU1pQmhibVFnTFVOUFQwZ2dkR1Z5YldsdVlXeHpJRzltSUhSb1pTQm5hWFpsYmlCelpYRjFaVzVqWlM1Y2JpQWdJQ0FnS2x4dUlDQWdJQ0FxSUVCemRHRjBhV05jYmlBZ0lDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdjMlZ4SUZSb1pTQnpaWEYxWlc1alpTQndjbTkyYVdSbFpDNWNiaUFnSUNBZ0tpQkFjbVYwZFhKdUlIdHpkSEpwYm1kOUlGUnlkVzVqWVhSbFpDQnpaWEYxWlc1alpTNWNiaUFnSUNBZ0tpQkFiV1Z0WW1WeWIyWWdRV3hwWjI1bFpGTmxjWFZsYm1ObFJXNWpiMlJsY2x4dUlDQWdJQ0FxTDF4dUlDQnpkR0YwYVdNZ1gzUnlkVzVqWVhSbFUyVnhkV1Z1WTJVb2MyVnhPaUJ6ZEhKcGJtY3BPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHeGxkQ0J6ZEdGeWRDQTlJREE3WEc0Z0lDQWdiR1YwSUdWdVpDQTlJSE5sY1M1c1pXNW5kR2c3WEc0Z0lDQWdZMjl1YzNRZ2RHVnliV2x1WVNBOUlGc25Ua2d5Snl3Z0owTlBUMGduWFR0Y2JseHVJQ0FnSUdsbUlDaHpaWEV1YzNSaGNuUnpWMmwwYUNoMFpYSnRhVzVoV3pCZEtTa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2JDQTlJSFJsY20xcGJtRmJNRjB1YkdWdVozUm9PeUF2THlCRGRYUWdiMjVzZVNBblRrZ3lKeUIzYVhSb2IzVjBJR1p2Ykd4dmQybHVaeUFuTFNjdVhHNGdJQ0FnSUNCaGMzTmxjblFvYzJWeFcyeGRJRDA5SUNjdEp5d2dZRmR5YjI1bklITmxjWFZsYm1ObElHWnZjbTFoZERvZ0pIdDBaWEp0YVc1aFd6QmRmU0IzYVhSb2IzVjBJR1p2Ykd4dmQybHVaeUFuTFNjZ2FXNGdKeVI3YzJWeGZTY3VZQ2s3WEc0Z0lDQWdJQ0J6ZEdGeWRDQTlJR3c3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2h6WlhFdVpXNWtjMWRwZEdnb2RHVnliV2x1WVZzeFhTa3BJSHRjYmlBZ0lDQWdJR052Ym5OMElHd2dQU0IwWlhKdGFXNWhXekZkTG14bGJtZDBhQ3N4T3lBdkx5QkRkWFFnWW05MGFDQW5RMDlQU0NjZ1lXNWtJSEJ5WldObGJtUnBibWNnSnkwbkxseHVJQ0FnSUNBZ1lYTnpaWEowS0hObGNWdGxibVF0YkYwZ1BUMGdKeTBuTENCZ1YzSnZibWNnYzJWeGRXVnVZMlVnWm05eWJXRjBPaUFrZTNSbGNtMXBibUZiTVYxOUlIZHBkR2h2ZFhRZ0p5MG5JSEJ5WldObGJtUnBibWNnYVc0Z0p5UjdjMlZ4ZlNjdVlDazdYRzRnSUNBZ0lDQmxibVFnTFQwZ2JEdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSE5sY1M1emRXSnpkSEpwYm1jb2MzUmhjblFzSUdWdVpDazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ0FnS2lCRGRYUnpJR0YxZUdsc2FXRnllU0JrWldacGMyVnpJR0psWm05eVpTQmhJSEpsYzJsa2RXVXVYRzRnSUNBZ0lDcGNiaUFnSUNBZ0tpQkFjM1JoZEdsalhHNGdJQ0FnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhObGNTQlVhR1VnYzJWeGRXVnVZMlVnZEc4Z2NISnZZMlZ6Y3k1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1SUh0emRISnBibWQ5SUZCeWIyTmxjM05sWkNCelpYRjFaVzVqWlM1Y2JpQWdJQ0FnS2lCQWJXVnRZbVZ5YjJZZ1FXeHBaMjVsWkZObGNYVmxibU5sUlc1amIyUmxjbHh1SUNBZ0lDQXFMMXh1SUNCemRHRjBhV01nWDJSeWIzQkVaV1pwYzJWektITmxjVG9nYzNSeWFXNW5LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQnlaWFIxY200Z2MyVnhMbkpsY0d4aFkyVW9MeWd0S1NoYlhpMWRLeWt2Wnl3Z0p5UXlKeWs3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNBZ0tpQlFaWEptYjNKdGN5QjBjblZ1WTJGMGFXOXVJR0Z1WkNCamRYUjBhVzVuSUdGMWVHbHNhV0Z5ZVNCa1pXWnBjMlZ6TGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhOMFlYUnBZMXh1SUNBZ0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnpaWEYxWlc1alpTQlVhR1VnYzJWeGRXVnVZMlVnZDI5eWF5QjFibVJsY2lCd2NtOWpaWE56TGx4dUlDQWdJQ0FxSUVCeVpYUjFjbTRnZTNOMGNtbHVaMzBnVW1WemRXeDBJRzltSUdOc1pXRnVhVzVuTGx4dUlDQWdJQ0FxSUVCdFpXMWlaWEp2WmlCQmJHbG5ibVZrVTJWeGRXVnVZMlZGYm1OdlpHVnlYRzRnSUNBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJqYkdWaGJpaHpaWEYxWlc1alpUb2djM1J5YVc1bktUb2djM1J5YVc1bklIdGNiaUFnSUNCeVpYUjFjbTRnUVd4cFoyNWxaRk5sY1hWbGJtTmxSVzVqYjJSbGNpNWZaSEp2Y0VSbFptbHpaWE1vUVd4cFoyNWxaRk5sY1hWbGJtTmxSVzVqYjJSbGNpNWZkSEoxYm1OaGRHVlRaWEYxWlc1alpTaHpaWEYxWlc1alpTa3BPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FnSUNvZ1EyRjBaV2R2Y21saGJDQmxibU52WkdVZ2IyWWdkR2hsSUhObGNYVmxibU5sSUhCeWIzWnBaR1ZrTGx4dUlDQWdJQ0FxWEc0Z0lDQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJSE5sY1hWbGJtTmxJRlJvWlNCelpYRjFaVzVqWlM1Y2JpQWdJQ0FnS2lCQWNtVjBkWEp1SUh0dWRXMWlaWEpiWFgwZ1JXNWpiMlJsWkNCMlpXTjBiM0l1WEc0Z0lDQWdJQ29nUUcxbGJXSmxjbTltSUVGc2FXZHVaV1JUWlhGMVpXNWpaVVZ1WTI5a1pYSmNiaUFnSUNBZ0tpOWNiaUFnY0hWaWJHbGpJR1Z1WTI5a1pTaHpaWEYxWlc1alpUb2djM1J5YVc1bktUb2diblZ0WW1WeVcxMGdlMXh1SUNBZ0lHTnZibk4wSUc1SmRHVnRjeUE5SUhObGNYVmxibU5sTG14bGJtZDBhRHRjYmlBZ0lDQmpiMjV6ZENCMllXeDFaWE1nUFNCdVpYY2dRWEp5WVhrb2JrbDBaVzF6S1M1bWFXeHNLREFwTzF4dVhHNGdJQ0FnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCdVNYUmxiWE03SUNzcmFTa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ1kyaGhjaUE5SUhObGNYVmxibU5sVzJsZE8xeHVYRzRnSUNBZ0lDQmhjM05sY25Rb1kyaGhjaUJwYmlCMGFHbHpMbUZoTW01MWJTd2dZRlZ1YTI1dmQyNGdZMmhoY2lBbkpIdGphR0Z5ZlNjZ1ptOTFibVFnYVc0Z2MyVnhkV1Z1WTJVZ0p5UjdjMlZ4ZFdWdVkyVjlKMkFwTzF4dVhHNGdJQ0FnSUNCMllXeDFaWE5iYVYwZ1BTQjBhR2x6TG1WdVkyOWtaVXhsZEhSMFpYSW9ZMmhoY2lrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQjJZV3gxWlhNN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1pXNWpiMlJsVEdWMGRIUmxjaWhzWlhSMFpYSTZJSE4wY21sdVp5azZJRzUxYldKbGNpQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVZV0V5Ym5WdFcyeGxkSFJsY2wwN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDQWdLaUJFWldOdlpHVWdkR2hsSUdWdVkyOWtaV1FnZG1WamRHOXlJR2x1ZEc4Z2RHaGxJSE5sY1hWbGJtTmxJR0poWTJzdVhHNGdJQ0FnSUNwY2JpQWdJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbHRkZlNCMllXeDFaU0JVYUdVZ2RtVmpkRzl5SUdWdVkyOWtaV1F1WEc0Z0lDQWdJQ29nUUhKbGRIVnliaUI3YzNSeWFXNW5mU0JFWldOdlpHVmtJSE5sY1hWbGJtTmxMbHh1SUNBZ0lDQXFJRUJ0WlcxaVpYSnZaaUJCYkdsbmJtVmtVMlZ4ZFdWdVkyVkZibU52WkdWeVhHNGdJQ0FnSUNvdlhHNGdJSEIxWW14cFl5QmtaV052WkdVb2RtRnNkV1U2SUc1MWJXSmxjbHRkS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0JzWlhRZ2N6b2djM1J5YVc1bklEMGdKeWM3WEc1Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUhaaGJIVmxMbXhsYm1kMGFEc2dLeXRwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JqYjJSbElEMGdkbUZzZFdWYmFWMDdYRzVjYmlBZ0lDQWdJR0Z6YzJWeWRDaGpiMlJsSUdsdUlIUm9hWE11Ym5WdE1tRmhMQ0JnVlc1cmJtOTNiaUJqYjJSbElDY2tlMk52WkdWOUp5Qm1iM1Z1WkNCcGJpQjJaV04wYjNJZ0p5UjdkbUZzZFdWOUoyQXBPMXh1WEc0Z0lDQWdJQ0J6SUNzOUlIUm9hWE11Ym5WdE1tRmhXMk52WkdWZE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdjenRjYmlBZ2ZWeHVmVnh1SWwxOSIsImV4cG9ydCBjbGFzcyBTdHJpbmdVdGlscyB7XG4gICAgc3RhdGljIGhhc2hDb2RlKHMpIHtcbiAgICAgICAgbGV0IGhhc2ggPSAwO1xuICAgICAgICBpZiAocy5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm4gaGFzaDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjaHIgPSBzLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgICAgICBoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBjaHI7XG4gICAgICAgICAgICBoYXNoIHw9IDA7IC8vIENvbnZlcnQgdG8gMzJiaXQgaW50ZWdlclxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoYXNoO1xuICAgIH1cbn1cbmltcG9ydCB7IFNlcVBhbGV0dGVCYXNlIH0gZnJvbSAnLi9zZXEtcGFsZXR0ZXMnO1xuZXhwb3J0IGNsYXNzIFVua25vd25TZXFQYWxldHRlIHtcbn1cbmV4cG9ydCBjbGFzcyBHcmF5QWxsUGFsZXR0ZSBleHRlbmRzIFVua25vd25TZXFQYWxldHRlIHtcbiAgICBnZXQobSkge1xuICAgICAgICByZXR1cm4gJyM2NjY2NjYnO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBVbmtub3duQ29sb3JQYWxldHRlIGV4dGVuZHMgVW5rbm93blNlcVBhbGV0dGUge1xuICAgIHN0YXRpYyBidWlsZFBhbGV0dGUoKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IFtdLmNvbmNhdCguLi5PYmplY3QudmFsdWVzKFNlcVBhbGV0dGVCYXNlLmNvbG91clBhbGV0dGUpKTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgZ2V0KG0pIHtcbiAgICAgICAgY29uc3QgaGFzaCA9IFN0cmluZ1V0aWxzLmhhc2hDb2RlKG0pO1xuICAgICAgICBjb25zdCBwSSA9IGhhc2ggJSBVbmtub3duQ29sb3JQYWxldHRlLnBhbGV0dGUubGVuZ3RoO1xuICAgICAgICByZXR1cm4gVW5rbm93bkNvbG9yUGFsZXR0ZS5wYWxldHRlW3BJXTtcbiAgICB9XG59XG5Vbmtub3duQ29sb3JQYWxldHRlLnBhbGV0dGUgPSBVbmtub3duQ29sb3JQYWxldHRlLmJ1aWxkUGFsZXR0ZSgpO1xuZXhwb3J0IGNsYXNzIFVua25vd25TZXFQYWxldHRlcyBleHRlbmRzIFNlcVBhbGV0dGVCYXNlIHtcbiAgICBzdGF0aWMgZ2V0IEdyYXkoKSB7XG4gICAgICAgIGlmICh0aGlzLmdyYXkgPT09IHZvaWQgMClcbiAgICAgICAgICAgIHRoaXMuZ3JheSA9IG5ldyBHcmF5QWxsUGFsZXR0ZSgpO1xuICAgICAgICByZXR1cm4gdGhpcy5ncmF5O1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IENvbG9yKCkge1xuICAgICAgICBpZiAodGhpcy5jb2xvciA9PT0gdm9pZCAwKVxuICAgICAgICAgICAgdGhpcy5jb2xvciA9IG5ldyBVbmtub3duQ29sb3JQYWxldHRlKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbG9yO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRXNXJibTkzYmk1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJblZ1YTI1dmQyNHVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCU1VFc1RVRkJUU3hQUVVGUExGZEJRVmM3U1VGRFppeE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVZNN1VVRkRPVUlzU1VGQlNTeEpRVUZKTEVkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUTNKQ0xFbEJRVWtzUTBGQlF5eERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRPMWxCUTJoQ0xFOUJRVThzU1VGQlNTeERRVUZETzFGQlEyUXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJWeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3V1VGRGVrTXNUVUZCVFN4SFFVRkhMRWRCUVZjc1EwRkJReXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTndReXhKUVVGSkxFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eEhRVUZITEVOQlFVTTdXVUZEYkVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETERKQ1FVRXlRanRUUVVOMlF6dFJRVU5FTEU5QlFVOHNTVUZCU1N4RFFVRkRPMGxCUTJRc1EwRkJRenREUVVOR08wRkJSVVFzVDBGQlR5eEZRVUZoTEdOQlFXTXNSVUZCUXl4TlFVRk5MR2RDUVVGblFpeERRVUZETzBGQlJURkVMRTFCUVUwc1QwRkJaMElzYVVKQlFXbENPME5CUlhSRE8wRkJSVVFzVFVGQlRTeFBRVUZQTEdOQlFXVXNVMEZCVVN4cFFrRkJhVUk3U1VGRE5VTXNSMEZCUnl4RFFVRkRMRU5CUVZNN1VVRkRiRUlzVDBGQlR5eFRRVUZUTEVOQlFVTTdTVUZEYmtJc1EwRkJRenREUVVOR08wRkJSMFFzVFVGQlRTeFBRVUZQTEcxQ1FVRnZRaXhUUVVGUkxHbENRVUZwUWp0SlFVZG9SQ3hOUVVGTkxFTkJRVU1zV1VGQldUdFJRVU42UWl4TlFVRk5MRWRCUVVjc1IwRkJTU3hGUVVGbExFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhqUVVGakxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTndSaXhQUVVGUExFZEJRVWNzUTBGQlF6dEpRVU5pTEVOQlFVTTdTVUZGVFN4SFFVRkhMRU5CUVVNc1EwRkJVenRSUVVOc1FpeE5RVUZOTEVsQlFVa3NSMEZCVnl4WFFVRlhMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6ZERMRTFCUVUwc1JVRkJSU3hIUVVGSExFbEJRVWtzUjBGQlJ5eHRRa0ZCYlVJc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETzFGQlEzSkVMRTlCUVU4c2JVSkJRVzFDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRM3BETEVOQlFVTTdPMEZCV0dFc01rSkJRVThzUjBGQllTeHRRa0ZCYlVJc1EwRkJReXhaUVVGWkxFVkJRVVVzUTBGQlF6dEJRV04yUlN4TlFVRk5MRTlCUVU4c2EwSkJRVzFDTEZOQlFWRXNZMEZCWXp0SlFVYzNReXhOUVVGTkxFdEJRVXNzU1VGQlNUdFJRVU53UWl4SlFVRkpMRWxCUVVrc1EwRkJReXhKUVVGSkxFdEJRVXNzUzBGQlN5eERRVUZETzFsQlEzUkNMRWxCUVVrc1EwRkJReXhKUVVGSkxFZEJRVWNzU1VGQlNTeGpRVUZqTEVWQlFVVXNRMEZCUXp0UlFVTnVReXhQUVVGUExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTTdTVUZEYmtJc1EwRkJRenRKUVVsTkxFMUJRVTBzUzBGQlN5eExRVUZMTzFGQlEzSkNMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUzBGQlN5eExRVUZMTEVOQlFVTTdXVUZEZGtJc1NVRkJTU3hEUVVGRExFdEJRVXNzUjBGQlJ5eEpRVUZKTEcxQ1FVRnRRaXhGUVVGRkxFTkJRVU03VVVGRGVrTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRE8wbEJRM0JDTEVOQlFVTTdRMEZEUmlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENBcUlHRnpJR2R5YjJzZ1puSnZiU0FuWkdGMFlXZHliMnN0WVhCcEwyZHliMnNuTzF4dWFXMXdiM0owSUNvZ1lYTWdkV2tnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDNWcEp6dGNibWx0Y0c5eWRDQXFJR0Z6SUVSSElHWnliMjBnSjJSaGRHRm5jbTlyTFdGd2FTOWtaeWM3WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJUZEhKcGJtZFZkR2xzY3lCN1hHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ2FHRnphRU52WkdVb2N6b2djM1J5YVc1bktUb2diblZ0WW1WeUlIdGNiaUFnSUNCc1pYUWdhR0Z6YURvZ2JuVnRZbVZ5SUQwZ01EdGNiaUFnSUNCcFppQW9jeTVzWlc1bmRHZ2dQVDA5SURBcFhHNGdJQ0FnSUNCeVpYUjFjbTRnYUdGemFEdGNiaUFnSUNCbWIzSWdLR3hsZENCcE9pQnVkVzFpWlhJZ1BTQXdPeUJwSUR3Z2N5NXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdZMmh5T2lCdWRXMWlaWElnUFNCekxtTm9ZWEpEYjJSbFFYUW9hU2s3WEc0Z0lDQWdJQ0JvWVhOb0lEMGdLQ2hvWVhOb0lEdzhJRFVwSUMwZ2FHRnphQ2tnS3lCamFISTdYRzRnSUNBZ0lDQm9ZWE5vSUh3OUlEQTdJQzh2SUVOdmJuWmxjblFnZEc4Z016SmlhWFFnYVc1MFpXZGxjbHh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnYUdGemFEdGNiaUFnZlZ4dWZWeHVYRzVwYlhCdmNuUWdlMU5sY1ZCaGJHVjBkR1VzSUZObGNWQmhiR1YwZEdWQ1lYTmxmU0JtY205dElDY3VMM05sY1Mxd1lXeGxkSFJsY3ljN1hHNWNibVY0Y0c5eWRDQmhZbk4wY21GamRDQmpiR0Z6Y3lCVmJtdHViM2R1VTJWeFVHRnNaWFIwWlNCcGJYQnNaVzFsYm5SeklGTmxjVkJoYkdWMGRHVWdlMXh1SUNCd2RXSnNhV01nWVdKemRISmhZM1FnWjJWMEtHMDZJSE4wY21sdVp5azZJSE4wY21sdVp6dGNibjFjYmx4dVpYaHdiM0owSUdOc1lYTnpJRWR5WVhsQmJHeFFZV3hsZEhSbElHVjRkR1Z1WkhNZ1ZXNXJibTkzYmxObGNWQmhiR1YwZEdVZ2UxeHVJQ0J3ZFdKc2FXTWdaMlYwS0cwNklITjBjbWx1WnlrNklITjBjbWx1WnlCN1hHNGdJQ0FnY21WMGRYSnVJQ2NqTmpZMk5qWTJKenRjYmlBZ2ZWeHVmVnh1WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJWYm10dWIzZHVRMjlzYjNKUVlXeGxkSFJsSUdWNGRHVnVaSE1nVlc1cmJtOTNibE5sY1ZCaGJHVjBkR1VnZTF4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUhCaGJHVjBkR1U2SUhOMGNtbHVaMXRkSUQwZ1ZXNXJibTkzYmtOdmJHOXlVR0ZzWlhSMFpTNWlkV2xzWkZCaGJHVjBkR1VvS1R0Y2JseHVJQ0J3Y21sMllYUmxJSE4wWVhScFl5QmlkV2xzWkZCaGJHVjBkR1VvS1RvZ2MzUnlhVzVuVzEwZ2UxeHVJQ0FnSUdOdmJuTjBJSEpsY3lBOUlDaGJYU0JoY3lCemRISnBibWRiWFNrdVkyOXVZMkYwS0M0dUxrOWlhbVZqZEM1MllXeDFaWE1vVTJWeFVHRnNaWFIwWlVKaGMyVXVZMjlzYjNWeVVHRnNaWFIwWlNrcE8xeHVJQ0FnSUhKbGRIVnliaUJ5WlhNN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1oyVjBLRzA2SUhOMGNtbHVaeWs2SUhOMGNtbHVaeUI3WEc0Z0lDQWdZMjl1YzNRZ2FHRnphRG9nYm5WdFltVnlJRDBnVTNSeWFXNW5WWFJwYkhNdWFHRnphRU52WkdVb2JTazdYRzRnSUNBZ1kyOXVjM1FnY0VrZ1BTQm9ZWE5vSUNVZ1ZXNXJibTkzYmtOdmJHOXlVR0ZzWlhSMFpTNXdZV3hsZEhSbExteGxibWQwYUR0Y2JpQWdJQ0J5WlhSMWNtNGdWVzVyYm05M2JrTnZiRzl5VUdGc1pYUjBaUzV3WVd4bGRIUmxXM0JKWFR0Y2JpQWdmVnh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVlc1cmJtOTNibE5sY1ZCaGJHVjBkR1Z6SUdWNGRHVnVaSE1nVTJWeFVHRnNaWFIwWlVKaGMyVWdlMXh1SUNCd2NtbDJZWFJsSUhOMFlYUnBZeUJuY21GNU9pQlRaWEZRWVd4bGRIUmxPMXh1WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nWjJWMElFZHlZWGtvS1RvZ1UyVnhVR0ZzWlhSMFpTQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdVozSmhlU0E5UFQwZ2RtOXBaQ0F3S1Z4dUlDQWdJQ0FnZEdocGN5NW5jbUY1SUQwZ2JtVjNJRWR5WVhsQmJHeFFZV3hsZEhSbEtDazdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVaM0poZVR0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ2MzUmhkR2xqSUdOdmJHOXlPaUJUWlhGUVlXeGxkSFJsTzF4dVhHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ1oyVjBJRU52Ykc5eUtDazZJRk5sY1ZCaGJHVjBkR1VnZTF4dUlDQWdJR2xtSUNoMGFHbHpMbU52Ykc5eUlEMDlQU0IyYjJsa0lEQXBYRzRnSUNBZ0lDQjBhR2x6TG1OdmJHOXlJRDBnYm1WM0lGVnVhMjV2ZDI1RGIyeHZjbEJoYkdWMGRHVW9LVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVqYjJ4dmNqdGNiaUFnZlZ4dWZWeHVJbDE5IiwiY29uc3QgdW5kZWZpbmVkQ29sb3IgPSAncmdiKDEwMCwxMDAsMTAwKSc7XG5jb25zdCBncmF5Q29sb3IgPSAnIzgwODA4MCc7XG5leHBvcnQgdmFyIERyYXdTdHlsZTtcbihmdW5jdGlvbiAoRHJhd1N0eWxlKSB7XG4gICAgRHJhd1N0eWxlW1wiTVNBXCJdID0gXCJNU0FcIjtcbiAgICBEcmF3U3R5bGVbXCJjbGFzc2ljXCJdID0gXCJjbGFzc2ljXCI7XG59KShEcmF3U3R5bGUgfHwgKERyYXdTdHlsZSA9IHt9KSk7XG4vKipcbiAqIEEgZnVuY3Rpb24gdGhhdCBwcmludHMgYSBzdHJpbmcgYWxpZ25lZCB0byBsZWZ0IG9yIGNlbnRlcmVkLlxuICpcbiAqIEBwYXJhbSB7bnVtYmVyfSB4IHggY29vcmRpbmF0ZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSB5IHkgY29vcmRpbmF0ZS5cbiAqIEBwYXJhbSB7bnVtYmVyfSB3IFdpZHRoLlxuICogQHBhcmFtIHtudW1iZXJ9IGggSGVpZ2h0LlxuICogQHBhcmFtIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IGcgQ2FudmFzIHJlbmRlcmluZyBjb250ZXh0LlxuICogQHBhcmFtIHtzdHJpbmd9IHMgU3RyaW5nIHRvIHByaW50LlxuICogQHBhcmFtIHtzdHJpbmd9IFtjb2xvcj11bmRlZmluZWRDb2xvcl0gU3RyaW5nIGNvbG9yLlxuICogQHBhcmFtIHtudW1iZXJ9IFtwaXZvdD0wXSBQaXJ2b3QuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtsZWZ0PWZhbHNlXSBJcyBsZWZ0IGFsaWduZWQuXG4gKiBAcGFyYW0ge251bWJlcn0gW3RyYW5zcGFyZW5jeVJhdGU9MC4wXSBUcmFuc3BhcmVuY3kgcmF0ZSB3aGVyZSAxLjAgaXMgZnVsbHkgdHJhbnNwYXJlbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSBbc2VwYXJhdG9yPScnXSBJcyBzZXBhcmF0b3IgZm9yIHNlcXVlbmNlLlxuICogQHBhcmFtIHtib29sZWFufSBbbGFzdD1mYWxzZV0gSXMgY2hlY2tlciBpZiBlbGVtZW50IGxhc3Qgb3Igbm90LlxuICogQHBhcmFtIGRyYXdTdHlsZSBJcyBkcmF3IHN0eWxlLiBNU0EgLSBmb3IgbXVsdGljaGFyU2VxLCBjbGFzc2ljIC0gZm9yIG90aGVyIHNlcS5cbiAqIEBwYXJhbSBtYXhXb3JkIElzIGFycmF5IG9mIG1heCB3b3JkcyBmb3IgZWFjaCBsaW5lLlxuICogQHBhcmFtIG1heFdvcmRJZHggSXMgaW5kZXggb2Ygd29yZCB3ZSBjdXJyZW50bHkgZHJhdy5cbiAqIEBwYXJhbSBncmlkQ2VsbCBJcyBncmlkIGNlbGwsIG5ldyBmb3IgdXBkYXRpbmcgZGF0YSBpbiBtYXhXb3JkIHdoaWxlIHJlbmRlcmluZy5cbiAqIEByZXR1cm4ge251bWJlcn0geCBjb29yZGluYXRlIHRvIHN0YXJ0IHByaW50aW5nIGF0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRMZWZ0T3JDZW50ZXJlZCh4LCB5LCB3LCBoLCBnLCBzLCBjb2xvciA9IHVuZGVmaW5lZENvbG9yLCBwaXZvdCA9IDAsIGxlZnQgPSBmYWxzZSwgdHJhbnNwYXJlbmN5UmF0ZSA9IDEuMCwgc2VwYXJhdG9yID0gJycsIGxhc3QgPSBmYWxzZSwgZHJhd1N0eWxlID0gRHJhd1N0eWxlLmNsYXNzaWMsIG1heFdvcmQgPSB7fSwgbWF4V29yZElkeCA9IDAsIGdyaWRDZWxsID0ge30pIHtcbiAgICB2YXIgX2E7XG4gICAgZy50ZXh0QWxpZ24gPSAnc3RhcnQnO1xuICAgIGNvbnN0IGNvbG9yUGFydCA9IHMuc3Vic3RyaW5nKDApO1xuICAgIGxldCBncmF5UGFydCA9IGxhc3QgPyAnJyA6IHNlcGFyYXRvcjtcbiAgICBpZiAoZHJhd1N0eWxlID09PSBEcmF3U3R5bGUuTVNBKSB7XG4gICAgICAgIGdyYXlQYXJ0ID0gJyc7XG4gICAgfVxuICAgIGxldCB0ZXh0U2l6ZSA9IGcubWVhc3VyZVRleHQoY29sb3JQYXJ0ICsgZ3JheVBhcnQpO1xuICAgIGNvbnN0IGluZGVudCA9IDU7XG4gICAgbGV0IG1heENvbG9yVGV4dFNpemUgPSBnLm1lYXN1cmVUZXh0KGNvbG9yUGFydCkud2lkdGg7XG4gICAgbGV0IGNvbG9yVGV4dFNpemUgPSBnLm1lYXN1cmVUZXh0KGNvbG9yUGFydCkud2lkdGg7XG4gICAgY29uc3QgZHkgPSAodGV4dFNpemUuZm9udEJvdW5kaW5nQm94QXNjZW50ICsgdGV4dFNpemUuZm9udEJvdW5kaW5nQm94RGVzY2VudCkgLyAyO1xuICAgIHRleHRTaXplID0gdGV4dFNpemUud2lkdGg7XG4gICAgaWYgKGRyYXdTdHlsZSA9PT0gRHJhd1N0eWxlLk1TQSkge1xuICAgICAgICBtYXhDb2xvclRleHRTaXplID0gbWF4V29yZFttYXhXb3JkSWR4XTtcbiAgICAgICAgdGV4dFNpemUgPSBtYXhXb3JkW21heFdvcmRJZHhdO1xuICAgICAgICBpZiAobWF4V29yZElkeCA+ICgoX2EgPSBtYXhXb3JkWydiaW8tbWF4SW5kZXgnXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCkpIHtcbiAgICAgICAgICAgIG1heFdvcmRbJ2Jpby1tYXhJbmRleCddID0gbWF4V29yZElkeDtcbiAgICAgICAgICAgIGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXAgPSBtYXhXb3JkO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRyYXcoZHgxLCBkeDIpIHtcbiAgICAgICAgZy5maWxsU3R5bGUgPSBjb2xvcjtcbiAgICAgICAgZy5nbG9iYWxBbHBoYSA9IHRyYW5zcGFyZW5jeVJhdGU7XG4gICAgICAgIGlmIChkcmF3U3R5bGUgPT09IERyYXdTdHlsZS5jbGFzc2ljKSB7XG4gICAgICAgICAgICBnLmZpbGxUZXh0KGNvbG9yUGFydCwgeCArIGR4MSwgeSArIGR5KTtcbiAgICAgICAgICAgIGcuZmlsbFN0eWxlID0gZ3JheUNvbG9yO1xuICAgICAgICAgICAgZy5maWxsVGV4dChncmF5UGFydCwgeCArIGR4MiwgeSArIGR5KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZHJhd1N0eWxlID09PSBEcmF3U3R5bGUuTVNBKSB7XG4gICAgICAgICAgICBnLmZpbGxTdHlsZSA9IGNvbG9yO1xuICAgICAgICAgICAgZy5maWxsVGV4dChjb2xvclBhcnQsIHggKyBkeDEgKyAoKG1heFdvcmRbbWF4V29yZElkeF0gLSBjb2xvclRleHRTaXplKSAvIDIpLCB5ICsgZHkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChsZWZ0IHx8IHRleHRTaXplID4gdykge1xuICAgICAgICBkcmF3KGluZGVudCwgaW5kZW50ICsgbWF4Q29sb3JUZXh0U2l6ZSk7XG4gICAgICAgIHJldHVybiB4ICsgbWF4Q29sb3JUZXh0U2l6ZSArIGcubWVhc3VyZVRleHQoZ3JheVBhcnQpLndpZHRoO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgZHggPSAodyAtIHRleHRTaXplKSAvIDI7XG4gICAgICAgIGRyYXcoZHgsIGR4ICsgbWF4Q29sb3JUZXh0U2l6ZSk7XG4gICAgICAgIHJldHVybiB4ICsgZHggKyBtYXhDb2xvclRleHRTaXplO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVkyVnNiQzF5Wlc1a1pYSmxjaTVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYkltTmxiR3d0Y21WdVpHVnlaWEl1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRXNUVUZCVFN4alFVRmpMRWRCUVVjc2EwSkJRV3RDTEVOQlFVTTdRVUZETVVNc1RVRkJUU3hUUVVGVExFZEJRVWNzVTBGQlV5eERRVUZETzBGQlJUVkNMRTFCUVUwc1EwRkJUaXhKUVVGWkxGTkJSMWc3UVVGSVJDeFhRVUZaTEZOQlFWTTdTVUZEYmtJc2QwSkJRVmNzUTBGQlFUdEpRVU5ZTEdkRFFVRnRRaXhEUVVGQk8wRkJRM0pDTEVOQlFVTXNSVUZJVnl4VFFVRlRMRXRCUVZRc1UwRkJVeXhSUVVkd1FqdEJRVVZFT3pzN096czdPenM3T3pzN096czdPenM3T3p0SFFXOUNSenRCUVVOSUxFMUJRVTBzVlVGQlZTeHRRa0ZCYlVJc1EwRkRha01zUTBGQlV5eEZRVUZGTEVOQlFWTXNSVUZCUlN4RFFVRlRMRVZCUVVVc1EwRkJVeXhGUVVNeFF5eERRVUV5UWl4RlFVRkZMRU5CUVZNc1JVRkJSU3hMUVVGTExFZEJRVWNzWTBGQll5eEZRVU01UkN4UlFVRm5RaXhEUVVGRExFVkJRVVVzU1VGQlNTeEhRVUZITEV0QlFVc3NSVUZCUlN4dFFrRkJNa0lzUjBGQlJ5eEZRVU12UkN4WlFVRnZRaXhGUVVGRkxFVkJRVVVzVDBGQlowSXNTMEZCU3l4RlFVRkZMRmxCUVhWQ0xGTkJRVk1zUTBGQlF5eFBRVUZQTEVWQlFVVXNWVUZCZFVNc1JVRkJSU3hGUVVGRkxHRkJRWEZDTEVOQlFVTXNSVUZCUlN4WFFVRm5RaXhGUVVGRk96dEpRVU01U3l4RFFVRkRMRU5CUVVNc1UwRkJVeXhIUVVGSExFOUJRVThzUTBGQlF6dEpRVU4wUWl4TlFVRk5MRk5CUVZNc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTJwRExFbEJRVWtzVVVGQlVTeEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTTdTVUZEY2tNc1NVRkJTU3hUUVVGVExFdEJRVXNzVTBGQlV5eERRVUZETEVkQlFVY3NSVUZCUlR0UlFVTXZRaXhSUVVGUkxFZEJRVWNzUlVGQlJTeERRVUZETzB0QlEyWTdTVUZGUkN4SlFVRkpMRkZCUVZFc1IwRkJVU3hEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEZOQlFWTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1EwRkJRenRKUVVONFJDeE5RVUZOTEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNN1NVRkZha0lzU1VGQlNTeG5Ra0ZCWjBJc1IwRkJSeXhEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJRenRKUVVOMFJDeEpRVUZKTEdGQlFXRXNSMEZCUnl4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXp0SlFVTnVSQ3hOUVVGTkxFVkJRVVVzUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4eFFrRkJjVUlzUjBGQlJ5eFJRVUZSTEVOQlFVTXNjMEpCUVhOQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZEYkVZc1VVRkJVU3hIUVVGSExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTTdTVUZETVVJc1NVRkJTU3hUUVVGVExFdEJRVXNzVTBGQlV5eERRVUZETEVkQlFVY3NSVUZCUlR0UlFVTXZRaXhuUWtGQlowSXNSMEZCUnl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03VVVGRGRrTXNVVUZCVVN4SFFVRkhMRTlCUVU4c1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU12UWl4SlFVRkpMRlZCUVZVc1IwRkJSeXhEUVVGRExFMUJRVUVzVDBGQlR5eERRVUZETEdOQlFXTXNRMEZCUXl4dFEwRkJTU3hEUVVGRExFTkJRVU1zUlVGQlJUdFpRVU12UXl4UFFVRlBMRU5CUVVNc1kwRkJZeXhEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETzFsQlEzSkRMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSMEZCUnl4UFFVRlBMRU5CUVVNN1UwRkRja003UzBGRFJqdEpRVVZFTEZOQlFWTXNTVUZCU1N4RFFVRkRMRWRCUVZjc1JVRkJSU3hIUVVGWE8xRkJRM0JETEVOQlFVTXNRMEZCUXl4VFFVRlRMRWRCUVVjc1MwRkJTeXhEUVVGRE8xRkJRM0JDTEVOQlFVTXNRMEZCUXl4WFFVRlhMRWRCUVVjc1owSkJRV2RDTEVOQlFVTTdVVUZEYWtNc1NVRkJTU3hUUVVGVExFdEJRVXNzVTBGQlV5eERRVUZETEU5QlFVOHNSVUZCUlR0WlFVTnVReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0WlFVTjJReXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEZOQlFWTXNRMEZCUXp0WlFVTjRRaXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0VFFVTjJRenRSUVVORUxFbEJRVWtzVTBGQlV5eExRVUZMTEZOQlFWTXNRMEZCUXl4SFFVRkhMRVZCUVVVN1dVRkRMMElzUTBGQlF5eERRVUZETEZOQlFWTXNSMEZCUnl4TFFVRkxMRU5CUVVNN1dVRkRjRUlzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJReXhIUVVGSExFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGSExHRkJRV0VzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF6dFRRVU4wUmp0SlFVTklMRU5CUVVNN1NVRkZSQ3hKUVVGSkxFbEJRVWtzU1VGQlNTeFJRVUZSTEVkQlFVY3NRMEZCUXl4RlFVRkZPMUZCUTNoQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNUVUZCVFN4SFFVRkhMR2RDUVVGblFpeERRVUZETEVOQlFVTTdVVUZEZUVNc1QwRkJUeXhEUVVGRExFZEJRVWNzWjBKQlFXZENMRWRCUVVjc1EwRkJReXhEUVVGRExGZEJRVmNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNN1MwRkZOMFE3VTBGQlRUdFJRVU5NTEUxQlFVMHNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTTVRaXhKUVVGSkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSMEZCUnl4blFrRkJaMElzUTBGQlF5eERRVUZETzFGQlEyaERMRTlCUVU4c1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJRenRMUVVOc1F6dEJRVU5JTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpqYjI1emRDQjFibVJsWm1sdVpXUkRiMnh2Y2lBOUlDZHlaMklvTVRBd0xERXdNQ3d4TURBcEp6dGNibU52Ym5OMElHZHlZWGxEYjJ4dmNpQTlJQ2NqT0RBNE1EZ3dKenRjYmx4dVpYaHdiM0owSUdWdWRXMGdSSEpoZDFOMGVXeGxJSHRjYmlBZ1RWTkJJRDBnSjAxVFFTY3NYRzRnSUdOc1lYTnphV01nUFNBblkyeGhjM05wWXljc1hHNTlYRzVjYmk4cUtseHVJQ29nUVNCbWRXNWpkR2x2YmlCMGFHRjBJSEJ5YVc1MGN5QmhJSE4wY21sdVp5QmhiR2xuYm1Wa0lIUnZJR3hsWm5RZ2IzSWdZMlZ1ZEdWeVpXUXVYRzRnS2x4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlIZ2dlQ0JqYjI5eVpHbHVZWFJsTGx4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlIa2dlU0JqYjI5eVpHbHVZWFJsTGx4dUlDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlIY2dWMmxrZEdndVhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdhQ0JJWldsbmFIUXVYRzRnS2lCQWNHRnlZVzBnZTBOaGJuWmhjMUpsYm1SbGNtbHVaME52Ym5SbGVIUXlSSDBnWnlCRFlXNTJZWE1nY21WdVpHVnlhVzVuSUdOdmJuUmxlSFF1WEc0Z0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2N5QlRkSEpwYm1jZ2RHOGdjSEpwYm5RdVhHNGdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdXMk52Ykc5eVBYVnVaR1ZtYVc1bFpFTnZiRzl5WFNCVGRISnBibWNnWTI5c2IzSXVYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnVzNCcGRtOTBQVEJkSUZCcGNuWnZkQzVjYmlBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1cyeGxablE5Wm1Gc2MyVmRJRWx6SUd4bFpuUWdZV3hwWjI1bFpDNWNiaUFxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JiZEhKaGJuTndZWEpsYm1ONVVtRjBaVDB3TGpCZElGUnlZVzV6Y0dGeVpXNWplU0J5WVhSbElIZG9aWEpsSURFdU1DQnBjeUJtZFd4c2VTQjBjbUZ1YzNCaGNtVnVkRnh1SUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUZ0elpYQmhjbUYwYjNJOUp5ZGRJRWx6SUhObGNHRnlZWFJ2Y2lCbWIzSWdjMlZ4ZFdWdVkyVXVYRzRnS2lCQWNHRnlZVzBnZTJKdmIyeGxZVzU5SUZ0c1lYTjBQV1poYkhObFhTQkpjeUJqYUdWamEyVnlJR2xtSUdWc1pXMWxiblFnYkdGemRDQnZjaUJ1YjNRdVhHNGdLaUJBY0dGeVlXMGdaSEpoZDFOMGVXeGxJRWx6SUdSeVlYY2djM1I1YkdVdUlFMVRRU0F0SUdadmNpQnRkV3gwYVdOb1lYSlRaWEVzSUdOc1lYTnphV01nTFNCbWIzSWdiM1JvWlhJZ2MyVnhMbHh1SUNvZ1FIQmhjbUZ0SUcxaGVGZHZjbVFnU1hNZ1lYSnlZWGtnYjJZZ2JXRjRJSGR2Y21SeklHWnZjaUJsWVdOb0lHeHBibVV1WEc0Z0tpQkFjR0Z5WVcwZ2JXRjRWMjl5WkVsa2VDQkpjeUJwYm1SbGVDQnZaaUIzYjNKa0lIZGxJR04xY25KbGJuUnNlU0JrY21GM0xseHVJQ29nUUhCaGNtRnRJR2R5YVdSRFpXeHNJRWx6SUdkeWFXUWdZMlZzYkN3Z2JtVjNJR1p2Y2lCMWNHUmhkR2x1WnlCa1lYUmhJR2x1SUcxaGVGZHZjbVFnZDJocGJHVWdjbVZ1WkdWeWFXNW5MbHh1SUNvZ1FISmxkSFZ5YmlCN2JuVnRZbVZ5ZlNCNElHTnZiM0prYVc1aGRHVWdkRzhnYzNSaGNuUWdjSEpwYm5ScGJtY2dZWFF1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQndjbWx1ZEV4bFpuUlBja05sYm5SbGNtVmtLRnh1SUNCNE9pQnVkVzFpWlhJc0lIazZJRzUxYldKbGNpd2dkem9nYm5WdFltVnlMQ0JvT2lCdWRXMWlaWElzWEc0Z0lHYzZJRU5oYm5aaGMxSmxibVJsY21sdVowTnZiblJsZUhReVJDd2djem9nYzNSeWFXNW5MQ0JqYjJ4dmNpQTlJSFZ1WkdWbWFXNWxaRU52Ykc5eUxGeHVJQ0J3YVhadmREb2diblZ0WW1WeUlEMGdNQ3dnYkdWbWRDQTlJR1poYkhObExDQjBjbUZ1YzNCaGNtVnVZM2xTWVhSbE9pQnVkVzFpWlhJZ1BTQXhMakFzWEc0Z0lITmxjR0Z5WVhSdmNqb2djM1J5YVc1bklEMGdKeWNzSUd4aGMzUTZJR0p2YjJ4bFlXNGdQU0JtWVd4elpTd2daSEpoZDFOMGVXeGxPaUJFY21GM1UzUjViR1VnUFNCRWNtRjNVM1I1YkdVdVkyeGhjM05wWXl3Z2JXRjRWMjl5WkRvZ2V5QmJhVzVrWlhnNklITjBjbWx1WjEwNklHNTFiV0psY2lCOUlEMGdlMzBzSUcxaGVGZHZjbVJKWkhnNklHNTFiV0psY2lBOUlEQXNJR2R5YVdSRFpXeHNPaUJoYm5rZ1BTQjdmU2s2SUc1MWJXSmxjaUI3WEc0Z0lHY3VkR1Y0ZEVGc2FXZHVJRDBnSjNOMFlYSjBKenRjYmlBZ1kyOXVjM1FnWTI5c2IzSlFZWEowSUQwZ2N5NXpkV0p6ZEhKcGJtY29NQ2s3WEc0Z0lHeGxkQ0JuY21GNVVHRnlkQ0E5SUd4aGMzUWdQeUFuSnlBNklITmxjR0Z5WVhSdmNqdGNiaUFnYVdZZ0tHUnlZWGRUZEhsc1pTQTlQVDBnUkhKaGQxTjBlV3hsTGsxVFFTa2dlMXh1SUNBZ0lHZHlZWGxRWVhKMElEMGdKeWM3WEc0Z0lIMWNibHh1SUNCc1pYUWdkR1Y0ZEZOcGVtVTZJR0Z1ZVNBOUlHY3ViV1ZoYzNWeVpWUmxlSFFvWTI5c2IzSlFZWEowSUNzZ1ozSmhlVkJoY25RcE8xeHVJQ0JqYjI1emRDQnBibVJsYm5RZ1BTQTFPMXh1WEc0Z0lHeGxkQ0J0WVhoRGIyeHZjbFJsZUhSVGFYcGxJRDBnWnk1dFpXRnpkWEpsVkdWNGRDaGpiMnh2Y2xCaGNuUXBMbmRwWkhSb08xeHVJQ0JzWlhRZ1kyOXNiM0pVWlhoMFUybDZaU0E5SUdjdWJXVmhjM1Z5WlZSbGVIUW9ZMjlzYjNKUVlYSjBLUzUzYVdSMGFEdGNiaUFnWTI5dWMzUWdaSGtnUFNBb2RHVjRkRk5wZW1VdVptOXVkRUp2ZFc1a2FXNW5RbTk0UVhOalpXNTBJQ3NnZEdWNGRGTnBlbVV1Wm05dWRFSnZkVzVrYVc1blFtOTRSR1Z6WTJWdWRDa2dMeUF5TzF4dUlDQjBaWGgwVTJsNlpTQTlJSFJsZUhSVGFYcGxMbmRwWkhSb08xeHVJQ0JwWmlBb1pISmhkMU4wZVd4bElEMDlQU0JFY21GM1UzUjViR1V1VFZOQktTQjdYRzRnSUNBZ2JXRjRRMjlzYjNKVVpYaDBVMmw2WlNBOUlHMWhlRmR2Y21SYmJXRjRWMjl5WkVsa2VGMDdYRzRnSUNBZ2RHVjRkRk5wZW1VZ1BTQnRZWGhYYjNKa1cyMWhlRmR2Y21SSlpIaGRPMXh1SUNBZ0lHbG1JQ2h0WVhoWGIzSmtTV1I0SUQ0Z0tHMWhlRmR2Y21SYkoySnBieTF0WVhoSmJtUmxlQ2RkSUQ4L0lEQXBLU0I3WEc0Z0lDQWdJQ0J0WVhoWGIzSmtXeWRpYVc4dGJXRjRTVzVrWlhnblhTQTlJRzFoZUZkdmNtUkpaSGc3WEc0Z0lDQWdJQ0JuY21sa1EyVnNiQzVqWld4c0xtTnZiSFZ0Ymk1MFpXMXdJRDBnYldGNFYyOXlaRHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JtZFc1amRHbHZiaUJrY21GM0tHUjRNVG9nYm5WdFltVnlMQ0JrZURJNklHNTFiV0psY2lrNklIWnZhV1FnZTF4dUlDQWdJR2N1Wm1sc2JGTjBlV3hsSUQwZ1kyOXNiM0k3WEc0Z0lDQWdaeTVuYkc5aVlXeEJiSEJvWVNBOUlIUnlZVzV6Y0dGeVpXNWplVkpoZEdVN1hHNGdJQ0FnYVdZZ0tHUnlZWGRUZEhsc1pTQTlQVDBnUkhKaGQxTjBlV3hsTG1Oc1lYTnphV01wSUh0Y2JpQWdJQ0FnSUdjdVptbHNiRlJsZUhRb1kyOXNiM0pRWVhKMExDQjRJQ3NnWkhneExDQjVJQ3NnWkhrcE8xeHVJQ0FnSUNBZ1p5NW1hV3hzVTNSNWJHVWdQU0JuY21GNVEyOXNiM0k3WEc0Z0lDQWdJQ0JuTG1acGJHeFVaWGgwS0dkeVlYbFFZWEowTENCNElDc2daSGd5TENCNUlDc2daSGtwTzF4dUlDQWdJSDFjYmlBZ0lDQnBaaUFvWkhKaGQxTjBlV3hsSUQwOVBTQkVjbUYzVTNSNWJHVXVUVk5CS1NCN1hHNGdJQ0FnSUNCbkxtWnBiR3hUZEhsc1pTQTlJR052Ykc5eU8xeHVJQ0FnSUNBZ1p5NW1hV3hzVkdWNGRDaGpiMnh2Y2xCaGNuUXNJSGdnS3lCa2VERWdLeUFvS0cxaGVGZHZjbVJiYldGNFYyOXlaRWxrZUYwZ0xTQmpiMnh2Y2xSbGVIUlRhWHBsS1NBdklESXBMQ0I1SUNzZ1pIa3BPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJR2xtSUNoc1pXWjBJSHg4SUhSbGVIUlRhWHBsSUQ0Z2R5a2dlMXh1SUNBZ0lHUnlZWGNvYVc1a1pXNTBMQ0JwYm1SbGJuUWdLeUJ0WVhoRGIyeHZjbFJsZUhSVGFYcGxLVHRjYmlBZ0lDQnlaWFIxY200Z2VDQXJJRzFoZUVOdmJHOXlWR1Y0ZEZOcGVtVWdLeUJuTG0xbFlYTjFjbVZVWlhoMEtHZHlZWGxRWVhKMEtTNTNhV1IwYUR0Y2JseHVJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lHTnZibk4wSUdSNElEMGdLSGNnTFNCMFpYaDBVMmw2WlNrZ0x5QXlPMXh1SUNBZ0lHUnlZWGNvWkhnc0lHUjRJQ3NnYldGNFEyOXNiM0pVWlhoMFUybDZaU2s3WEc0Z0lDQWdjbVYwZFhKdUlIZ2dLeUJrZUNBcklHMWhlRU52Ykc5eVZHVjRkRk5wZW1VN1hHNGdJSDFjYm4xY2JseHVJbDE5IiwiaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7IFVuaXRzSGFuZGxlciB9IGZyb20gJy4vdW5pdHMtaGFuZGxlcic7XG4vKiogQ2xhc3MgZm9yIHBhcnNpbmcgRkFTVEEgZmlsZXMgKi9cbmV4cG9ydCBjbGFzcyBGYXN0YUZpbGVIYW5kbGVyIHtcbiAgICBjb25zdHJ1Y3RvcihmaWxlQ29udGVudCkge1xuICAgICAgICB0aGlzLl9kZXNjcmlwdGlvbnNBcnJheSA9IFtdOyAvLyBwYXJzZWQgRkFTVEEgZGVzY3JpcHRpb25zXG4gICAgICAgIHRoaXMuX3NlcXVlbmNlc0FycmF5ID0gW107IC8vIHBhcnNlZCBGQVNUQSBzZXF1ZWNlc1xuICAgICAgICB0aGlzLl9maWxlQ29udGVudCA9IGZpbGVDb250ZW50O1xuICAgICAgICB0aGlzLnBhcnNlQ29sdW1ucygpO1xuICAgIH1cbiAgICAvLyBwcml2YXRlIF9jb2x1bW5zUGFyc2VkOiBib29sZWFuID0gZmFsc2U7XG4gICAgZ2V0IGRlc2NyaXB0aW9uc0FycmF5KCkgeyByZXR1cm4gdGhpcy5fZGVzY3JpcHRpb25zQXJyYXk7IH1cbiAgICBnZXQgc2VxdWVuY2VzQXJyYXkoKSB7IHJldHVybiB0aGlzLl9zZXF1ZW5jZXNBcnJheTsgfVxuICAgIC8qKlxuICAgICAqIEhlbHBlciBtZXRob2QgdG8gcGFyc2UgYSBtYWNyb21vbGVjdWxlIGZyb20gYSBGQVNUQSBmaWxlIChzdHJpbmcpXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RhcnRPZlNlcXVlbmNlICBpbmRleCBvZiBtYWNyb21vbGVjdWxlIHN1YnN0cmluZyBiZWdpbm5pbmdcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gZW5kT2ZTZXF1ZW5jZSAgaW5kZXggb2YgbWFjcm9tb2xlY3VsZSBzdWJzdHJpbmcgZW5kXG4gIFxuICAgICAqIEByZXR1cm4ge3N0cmluZ30gcGFyc2VkIG1hY3JvbW9sZWN1bGVcbiAgICAgKi9cbiAgICBwYXJzZU1hY3JvbW9sZWN1bGUoc3RhcnRPZlNlcXVlbmNlLCBlbmRPZlNlcXVlbmNlKSB7XG4gICAgICAgIGNvbnN0IHNlcSA9IHRoaXMuX2ZpbGVDb250ZW50LnNsaWNlKHN0YXJ0T2ZTZXF1ZW5jZSwgZW5kT2ZTZXF1ZW5jZSk7XG4gICAgICAgIGNvbnN0IHNlcUFycmF5ID0gc2VxLnNwbGl0KC9cXHMvKTtcbiAgICAgICAgcmV0dXJuIHNlcUFycmF5LmpvaW4oJycpO1xuICAgIH1cbiAgICAvKiogUGFyc2UgZGVzY3JpcHRpb25zIGFuZCBzZXF1ZW5jZXMgZnJvbSBhIEZBU1RBIHN0cmluZyAqL1xuICAgIHBhcnNlQ29sdW1ucygpIHtcbiAgICAgICAgY29uc3QgcmVnZXggPSAvXj4oLiopJC9nbTsgLy8gbWF0Y2ggJ2Rlc2NyaXB0aW9uJyBsaW5lcyBzdGFydGluZyB3aXRoID5cbiAgICAgICAgbGV0IHN0YXJ0T2ZTZXF1ZW5jZSA9IDA7XG4gICAgICAgIGxldCBtYXRjaDsgLy8gbWF0Y2guaW5kZXggaXMgdGhlIGJlZ2lubmluZyBvZiB0aGUgbWF0Y2hlZCBsaW5lXG4gICAgICAgIHdoaWxlIChtYXRjaCA9IHJlZ2V4LmV4ZWModGhpcy5fZmlsZUNvbnRlbnQpKSB7XG4gICAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuX2ZpbGVDb250ZW50LnN1YnN0cmluZyhtYXRjaC5pbmRleCArIDEsIHJlZ2V4Lmxhc3RJbmRleCk7XG4gICAgICAgICAgICB0aGlzLl9kZXNjcmlwdGlvbnNBcnJheS5wdXNoKGRlc2NyaXB0aW9uKTtcbiAgICAgICAgICAgIGlmIChzdGFydE9mU2VxdWVuY2UgIT09IDApXG4gICAgICAgICAgICAgICAgdGhpcy5fc2VxdWVuY2VzQXJyYXkucHVzaCh0aGlzLnBhcnNlTWFjcm9tb2xlY3VsZShzdGFydE9mU2VxdWVuY2UsIG1hdGNoLmluZGV4KSk7XG4gICAgICAgICAgICBzdGFydE9mU2VxdWVuY2UgPSByZWdleC5sYXN0SW5kZXggKyAxO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NlcXVlbmNlc0FycmF5LnB1c2godGhpcy5wYXJzZU1hY3JvbW9sZWN1bGUoc3RhcnRPZlNlcXVlbmNlLCAtMSkpO1xuICAgICAgICAvLyB0aGlzLl9jb2x1bW5zUGFyc2VkID0gdHJ1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRmlsZS1oYW5kbGVyIG1ldGhvZCBmb3IgaW1wb3J0IGFzIEZBU1RBXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtERy5EYXRhRnJhbWVbXX0gZGF0YWZyYW1lIHdpdGggcGFyc2VkIEZBU1RBIGNvbnRlbnRcbiAgICAgKi9cbiAgICBpbXBvcnRGYXN0YSgpIHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb25zQXJyYXlDb2wgPSBERy5Db2x1bW4uZnJvbVN0cmluZ3MoJ2Rlc2NyaXB0aW9uJywgdGhpcy5kZXNjcmlwdGlvbnNBcnJheSk7XG4gICAgICAgIGNvbnN0IHNlcXVlbmNlQ29sID0gREcuQ29sdW1uLmZyb21TdHJpbmdzKCdzZXF1ZW5jZScsIHRoaXMuc2VxdWVuY2VzQXJyYXkpO1xuICAgICAgICBzZXF1ZW5jZUNvbC5zZW1UeXBlID0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFO1xuICAgICAgICAvLyBoZXJlIHNob3VsZCBnbyB0aGUgY29kZSBmcm9tIHVuaXRzIGhhbmRsZXJcbiAgICAgICAgVW5pdHNIYW5kbGVyLnNldFVuaXRzVG9GYXN0YUNvbHVtbihzZXF1ZW5jZUNvbCk7XG4gICAgICAgIHJldHVybiBbREcuRGF0YUZyYW1lLmZyb21Db2x1bW5zKFtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbnNBcnJheUNvbCxcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZUNvbCxcbiAgICAgICAgICAgIF0pXTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2labUZ6ZEdFdGFHRnVaR3hsY2k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJbVpoYzNSaExXaGhibVJzWlhJdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJSMEVzVDBGQlR5eExRVUZMTEVWQlFVVXNUVUZCVFN4cFFrRkJhVUlzUTBGQlF6dEJRVVYwUXl4UFFVRlBMRVZCUVVNc1dVRkJXU3hGUVVGRExFMUJRVTBzYVVKQlFXbENMRU5CUVVNN1FVRkZOME1zYjBOQlFXOURPMEZCUTNCRExFMUJRVTBzVDBGQlR5eG5Ra0ZCWjBJN1NVRm5SVE5DTEZsQlFWa3NWMEZCYlVJN1VVRTVSSFpDTEhWQ1FVRnJRaXhIUVVGaExFVkJRVVVzUTBGQlF5eERRVUZETERSQ1FVRTBRanRSUVVNdlJDeHZRa0ZCWlN4SFFVRmhMRVZCUVVVc1EwRkJReXhEUVVGRExIZENRVUYzUWp0UlFUaEVPVVFzU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4WFFVRlhMRU5CUVVNN1VVRkRhRU1zU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4RFFVRkRPMGxCUTNSQ0xFTkJRVU03U1VFdlJFUXNNa05CUVRKRE8wbEJSVE5ETEVsQlFWY3NhVUpCUVdsQ0xFdEJRV1VzVDBGQlR5eEpRVUZKTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJUVkZMRWxCUVZjc1kwRkJZeXhMUVVGbExFOUJRVThzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZkRVU3T3pzN096czdUMEZQUnp0SlFVTkxMR3RDUVVGclFpeERRVU40UWl4bFFVRjFRaXhGUVVOMlFpeGhRVUZ4UWp0UlFVVnlRaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRXRCUVVzc1EwRkJReXhsUVVGbExFVkJRVVVzWVVGQllTeERRVUZETEVOQlFVTTdVVUZEY0VVc1RVRkJUU3hSUVVGUkxFZEJRVWNzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVOcVF5eFBRVUZQTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRE0wSXNRMEZCUXp0SlFVVkVMREpFUVVFeVJEdEpRVU51UkN4WlFVRlpPMUZCUTJ4Q0xFMUJRVTBzUzBGQlN5eEhRVUZITEZkQlFWY3NRMEZCUXl4RFFVRkRMRFJEUVVFMFF6dFJRVVYyUlN4SlFVRkpMR1ZCUVdVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGVFSXNTVUZCU1N4TFFVRkxMRU5CUVVNc1EwRkJReXh0UkVGQmJVUTdVVUZET1VRc1QwRkJUeXhMUVVGTExFZEJRVWNzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVU3V1VGRE5VTXNUVUZCVFN4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1IwRkJSeXhEUVVGRExFVkJRVVVzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMWxCUTJ4R0xFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTTdXVUZETVVNc1NVRkJTU3hsUVVGbExFdEJRVXNzUTBGQlF6dG5Ra0ZEZGtJc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEdWQlFXVXNSVUZCUlN4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU51Uml4bFFVRmxMRWRCUVVjc1MwRkJTeXhEUVVGRExGTkJRVk1zUjBGQlJ5eERRVUZETEVOQlFVTTdVMEZEZGtNN1VVRkRSQ3hKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNaVUZCWlN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVY0UlN3NFFrRkJPRUk3U1VGRGFFTXNRMEZCUXp0SlFVVkVPenM3TzA5QlNVYzdTVUZEU1N4WFFVRlhPMUZCUTJoQ0xFMUJRVTBzYjBKQlFXOUNMRWRCUVVjc1JVRkJSU3hEUVVGRExFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTXNZVUZCWVN4RlFVRkZMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4RFFVRkRPMUZCUXpGR0xFMUJRVTBzVjBGQlZ5eEhRVUZITEVWQlFVVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVGRExGVkJRVlVzUlVGQlJTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRU5CUVVNN1VVRkRNMFVzVjBGQlZ5eERRVUZETEU5QlFVOHNSMEZCUnl4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0VzUTBGQlF6dFJRVVV2UXl3MlEwRkJOa003VVVGRE4wTXNXVUZCV1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUldoRUxFOUJRVThzUTBGQlF5eEZRVUZGTEVOQlFVTXNVMEZCVXl4RFFVRkRMRmRCUVZjc1EwRkJRenRuUWtGREwwSXNiMEpCUVc5Q08yZENRVU53UWl4WFFVRlhPMkZCUTFvc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRFRpeERRVUZETzBOQlRVWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2S2lCRWJ5QnViM1FnWTJoaGJtZGxJSFJvWlhObElHbHRjRzl5ZENCc2FXNWxjeUIwYnlCdFlYUmphQ0JsZUhSbGNtNWhiQ0J0YjJSMWJHVnpJR2x1SUhkbFluQmhZMnNnWTI5dVptbG5kWEpoZEdsdmJpQXFMMXh1YVcxd2IzSjBJQ29nWVhNZ1ozSnZheUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2WjNKdmF5YzdYRzVwYlhCdmNuUWdLaUJoY3lCMWFTQm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZkV2tuTzF4dWFXMXdiM0owSUNvZ1lYTWdSRWNnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDJSbkp6dGNibHh1YVcxd2IzSjBJSHRWYm1sMGMwaGhibVJzWlhKOUlHWnliMjBnSnk0dmRXNXBkSE10YUdGdVpHeGxjaWM3WEc1Y2JpOHFLaUJEYkdGemN5Qm1iM0lnY0dGeWMybHVaeUJHUVZOVVFTQm1hV3hsY3lBcUwxeHVaWGh3YjNKMElHTnNZWE56SUVaaGMzUmhSbWxzWlVoaGJtUnNaWElnZTF4dUlDQndjbWwyWVhSbElGOW1hV3hsUTI5dWRHVnVkRG9nYzNSeWFXNW5PMXh1SUNCd2NtbDJZWFJsSUY5a1pYTmpjbWx3ZEdsdmJuTkJjbkpoZVRvZ2MzUnlhVzVuVzEwZ1BTQmJYVHNnTHk4Z2NHRnljMlZrSUVaQlUxUkJJR1JsYzJOeWFYQjBhVzl1YzF4dUlDQndjbWwyWVhSbElGOXpaWEYxWlc1alpYTkJjbkpoZVRvZ2MzUnlhVzVuVzEwZ1BTQmJYVHNnTHk4Z2NHRnljMlZrSUVaQlUxUkJJSE5sY1hWbFkyVnpYRzRnSUM4dklIQnlhWFpoZEdVZ1gyTnZiSFZ0Ym5OUVlYSnpaV1E2SUdKdmIyeGxZVzRnUFNCbVlXeHpaVHRjYmx4dUlDQndkV0pzYVdNZ1oyVjBJR1JsYzJOeWFYQjBhVzl1YzBGeWNtRjVLQ2s2SUhOMGNtbHVaMXRkSUhzZ2NtVjBkWEp1SUhSb2FYTXVYMlJsYzJOeWFYQjBhVzl1YzBGeWNtRjVPeUI5WEc1Y2JpQWdjSFZpYkdsaklHZGxkQ0J6WlhGMVpXNWpaWE5CY25KaGVTZ3BPaUJ6ZEhKcGJtZGJYU0I3SUhKbGRIVnliaUIwYUdsekxsOXpaWEYxWlc1alpYTkJjbkpoZVRzZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCSVpXeHdaWElnYldWMGFHOWtJSFJ2SUhCaGNuTmxJR0VnYldGamNtOXRiMnhsWTNWc1pTQm1jbTl0SUdFZ1JrRlRWRUVnWm1sc1pTQW9jM1J5YVc1bktWeHVJQ0FnS2x4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdjM1JoY25SUFpsTmxjWFZsYm1ObElDQnBibVJsZUNCdlppQnRZV055YjIxdmJHVmpkV3hsSUhOMVluTjBjbWx1WnlCaVpXZHBibTVwYm1kY2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJR1Z1WkU5bVUyVnhkV1Z1WTJVZ0lHbHVaR1Y0SUc5bUlHMWhZM0p2Ylc5c1pXTjFiR1VnYzNWaWMzUnlhVzVuSUdWdVpGeHVYRzRnSUNBcUlFQnlaWFIxY200Z2UzTjBjbWx1WjMwZ2NHRnljMlZrSUcxaFkzSnZiVzlzWldOMWJHVmNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdjR0Z5YzJWTllXTnliMjF2YkdWamRXeGxLRnh1SUNBZ0lITjBZWEowVDJaVFpYRjFaVzVqWlRvZ2JuVnRZbVZ5TEZ4dUlDQWdJR1Z1WkU5bVUyVnhkV1Z1WTJVNklHNTFiV0psY2x4dUlDQXBPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHTnZibk4wSUhObGNTQTlJSFJvYVhNdVgyWnBiR1ZEYjI1MFpXNTBMbk5zYVdObEtITjBZWEowVDJaVFpYRjFaVzVqWlN3Z1pXNWtUMlpUWlhGMVpXNWpaU2s3WEc0Z0lDQWdZMjl1YzNRZ2MyVnhRWEp5WVhrZ1BTQnpaWEV1YzNCc2FYUW9MMXhjY3k4cE8xeHVJQ0FnSUhKbGRIVnliaUJ6WlhGQmNuSmhlUzVxYjJsdUtDY25LVHRjYmlBZ2ZWeHVYRzRnSUM4cUtpQlFZWEp6WlNCa1pYTmpjbWx3ZEdsdmJuTWdZVzVrSUhObGNYVmxibU5sY3lCbWNtOXRJR0VnUmtGVFZFRWdjM1J5YVc1bklDb3ZYRzRnSUhCeWFYWmhkR1VnY0dGeWMyVkRiMngxYlc1ektDa2dlMXh1SUNBZ0lHTnZibk4wSUhKbFoyVjRJRDBnTDE0K0tDNHFLU1F2WjIwN0lDOHZJRzFoZEdOb0lDZGtaWE5qY21sd2RHbHZiaWNnYkdsdVpYTWdjM1JoY25ScGJtY2dkMmwwYUNBK1hHNWNiaUFnSUNCc1pYUWdjM1JoY25SUFpsTmxjWFZsYm1ObElEMGdNRHRjYmlBZ0lDQnNaWFFnYldGMFkyZzdJQzh2SUcxaGRHTm9MbWx1WkdWNElHbHpJSFJvWlNCaVpXZHBibTVwYm1jZ2IyWWdkR2hsSUcxaGRHTm9aV1FnYkdsdVpWeHVJQ0FnSUhkb2FXeGxJQ2h0WVhSamFDQTlJSEpsWjJWNExtVjRaV01vZEdocGN5NWZabWxzWlVOdmJuUmxiblFwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JrWlhOamNtbHdkR2x2YmlBOUlIUm9hWE11WDJacGJHVkRiMjUwWlc1MExuTjFZbk4wY21sdVp5aHRZWFJqYUM1cGJtUmxlQ0FySURFc0lISmxaMlY0TG14aGMzUkpibVJsZUNrN1hHNGdJQ0FnSUNCMGFHbHpMbDlrWlhOamNtbHdkR2x2Ym5OQmNuSmhlUzV3ZFhOb0tHUmxjMk55YVhCMGFXOXVLVHRjYmlBZ0lDQWdJR2xtSUNoemRHRnlkRTltVTJWeGRXVnVZMlVnSVQwOUlEQXBYRzRnSUNBZ0lDQWdJSFJvYVhNdVgzTmxjWFZsYm1ObGMwRnljbUY1TG5CMWMyZ29kR2hwY3k1d1lYSnpaVTFoWTNKdmJXOXNaV04xYkdVb2MzUmhjblJQWmxObGNYVmxibU5sTENCdFlYUmphQzVwYm1SbGVDa3BPMXh1SUNBZ0lDQWdjM1JoY25SUFpsTmxjWFZsYm1ObElEMGdjbVZuWlhndWJHRnpkRWx1WkdWNElDc2dNVHRjYmlBZ0lDQjlYRzRnSUNBZ2RHaHBjeTVmYzJWeGRXVnVZMlZ6UVhKeVlYa3VjSFZ6YUNoMGFHbHpMbkJoY25ObFRXRmpjbTl0YjJ4bFkzVnNaU2h6ZEdGeWRFOW1VMlZ4ZFdWdVkyVXNJQzB4S1NrN1hHNWNiaUFnSUNBdkx5QjBhR2x6TGw5amIyeDFiVzV6VUdGeWMyVmtJRDBnZEhKMVpUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJHYVd4bExXaGhibVJzWlhJZ2JXVjBhRzlrSUdadmNpQnBiWEJ2Y25RZ1lYTWdSa0ZUVkVGY2JpQWdJQ3BjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSRWN1UkdGMFlVWnlZVzFsVzExOUlHUmhkR0ZtY21GdFpTQjNhWFJvSUhCaGNuTmxaQ0JHUVZOVVFTQmpiMjUwWlc1MFhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2FXMXdiM0owUm1GemRHRW9LVG9nUkVjdVJHRjBZVVp5WVcxbElGdGRJSHRjYmlBZ0lDQmpiMjV6ZENCa1pYTmpjbWx3ZEdsdmJuTkJjbkpoZVVOdmJDQTlJRVJITGtOdmJIVnRiaTVtY205dFUzUnlhVzVuY3lnblpHVnpZM0pwY0hScGIyNG5MQ0IwYUdsekxtUmxjMk55YVhCMGFXOXVjMEZ5Y21GNUtUdGNiaUFnSUNCamIyNXpkQ0J6WlhGMVpXNWpaVU52YkNBOUlFUkhMa052YkhWdGJpNW1jbTl0VTNSeWFXNW5jeWduYzJWeGRXVnVZMlVuTENCMGFHbHpMbk5sY1hWbGJtTmxjMEZ5Y21GNUtUdGNiaUFnSUNCelpYRjFaVzVqWlVOdmJDNXpaVzFVZVhCbElEMGdSRWN1VTBWTlZGbFFSUzVOUVVOU1QwMVBURVZEVlV4Rk8xeHVYRzRnSUNBZ0x5OGdhR1Z5WlNCemFHOTFiR1FnWjI4Z2RHaGxJR052WkdVZ1puSnZiU0IxYm1sMGN5Qm9ZVzVrYkdWeVhHNGdJQ0FnVlc1cGRITklZVzVrYkdWeUxuTmxkRlZ1YVhSelZHOUdZWE4wWVVOdmJIVnRiaWh6WlhGMVpXNWpaVU52YkNrN1hHNWNiaUFnSUNCeVpYUjFjbTRnVzBSSExrUmhkR0ZHY21GdFpTNW1jbTl0UTI5c2RXMXVjeWhiWEc0Z0lDQWdJQ0JrWlhOamNtbHdkR2x2Ym5OQmNuSmhlVU52YkN4Y2JpQWdJQ0FnSUhObGNYVmxibU5sUTI5c0xGeHVJQ0FnSUYwcFhUdGNiaUFnZlZ4dVhHNGdJR052Ym5OMGNuVmpkRzl5S0dacGJHVkRiMjUwWlc1ME9pQnpkSEpwYm1jcElIdGNiaUFnSUNCMGFHbHpMbDltYVd4bFEyOXVkR1Z1ZENBOUlHWnBiR1ZEYjI1MFpXNTBPMXh1SUNBZ0lIUm9hWE11Y0dGeWMyVkRiMngxYlc1ektDazdYRzRnSUgxY2JuMWNiaUpkZlE9PSIsImltcG9ydCB7IFdlYkxvZ28gfSBmcm9tICcuLi92aWV3ZXJzL3dlYi1sb2dvJztcbmltcG9ydCB7IFVuaXRzSGFuZGxlciB9IGZyb20gJy4vdW5pdHMtaGFuZGxlcic7XG4vKiogQ2xhc3MgZm9yIGhhbmRsaW5nIGNvbnZlcnNpb24gb2Ygbm90YXRpb24gc3lzdGVtcyBpbiBNYWNyb21vbGVjdWxlIGNvbHVtbnMgKi9cbmV4cG9ydCBjbGFzcyBOb3RhdGlvbkNvbnZlcnRlciBleHRlbmRzIFVuaXRzSGFuZGxlciB7XG4gICAgY29uc3RydWN0b3IoY29sKSB7XG4gICAgICAgIHN1cGVyKGNvbCk7XG4gICAgICAgIHRoaXMuX3NwbGl0dGVyID0gbnVsbDtcbiAgICB9XG4gICAgZ2V0IHNwbGl0dGVyKCkge1xuICAgICAgICBpZiAodGhpcy5fc3BsaXR0ZXIgPT09IG51bGwpXG4gICAgICAgICAgICB0aGlzLl9zcGxpdHRlciA9IFdlYkxvZ28uZ2V0U3BsaXR0ZXJGb3JDb2x1bW4odGhpcy5jb2x1bW4pO1xuICAgICAgICByZXR1cm4gdGhpcy5fc3BsaXR0ZXI7XG4gICAgfVxuICAgIDtcbiAgICB0b0Zhc3RhKHRhcmdldE5vdGF0aW9uKSB7IHJldHVybiB0YXJnZXROb3RhdGlvbiA9PT0gXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovOyB9XG4gICAgdG9TZXBhcmF0b3IodGFyZ2V0Tm90YXRpb24pIHsgcmV0dXJuIHRhcmdldE5vdGF0aW9uID09PSBcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLzsgfVxuICAgIHRvSGVsbSh0YXJnZXROb3RhdGlvbikgeyByZXR1cm4gdGFyZ2V0Tm90YXRpb24gPT09IFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi87IH1cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0IGEgTWFjcm9tb2xlY3VsZSBjb2x1bW4gZnJvbSBGQVNUQSB0byBTRVBBUkFUT1Igbm90YXRpb25cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZXBhcmF0b3IgIEEgc3BlY2lmaWMgc2VwYXJhdG9yIHRvIGJlIHVzZWRcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZmFzdGFHYXBTeW1ib2wgIEdhcCBzeW1ib2wgaW4gRkFTVEEsICctJyBieSBkZWZhdWx0XG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufSAgICAgICAgQSBuZXcgY29sdW1uIGluIFNFUEFSQVRPUiBub3RhdGlvblxuICAgICAqL1xuICAgIGNvbnZlcnRGYXN0YVRvU2VwYXJhdG9yKHNlcGFyYXRvciwgZmFzdGFHYXBTeW1ib2wgPSBudWxsKSB7XG4gICAgICAgIGlmIChmYXN0YUdhcFN5bWJvbCA9PT0gbnVsbClcbiAgICAgICAgICAgIGZhc3RhR2FwU3ltYm9sID0gdGhpcy5kZWZhdWx0R2FwU3ltYm9sO1xuICAgICAgICBjb25zdCBuZXdDb2x1bW4gPSB0aGlzLmdldE5ld0NvbHVtbihcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLyk7XG4gICAgICAgIC8vIGFzc2lnbiB0aGUgdmFsdWVzIHRvIHRoZSBuZXdseSBjcmVhdGVkIGVtcHR5IGNvbHVtblxuICAgICAgICBuZXdDb2x1bW4uaW5pdCgoaWR4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmYXN0YVBvbHltZXIgPSB0aGlzLmNvbHVtbi5nZXQoaWR4KTtcbiAgICAgICAgICAgIGNvbnN0IGZhc3RhTW9ub21lcnNBcnJheSA9IHRoaXMuc3BsaXR0ZXIoZmFzdGFQb2x5bWVyKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmFzdGFNb25vbWVyc0FycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZhc3RhTW9ub21lcnNBcnJheVtpXSA9PT0gZmFzdGFHYXBTeW1ib2wpXG4gICAgICAgICAgICAgICAgICAgIGZhc3RhTW9ub21lcnNBcnJheVtpXSA9IFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LlNFUEFSQVRPUjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYXN0YU1vbm9tZXJzQXJyYXkuam9pbihzZXBhcmF0b3IpO1xuICAgICAgICB9KTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5zZXBhcmF0b3IsIHNlcGFyYXRvcik7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgd3JhcHBlciBzdHJpbmdzIGZvciBIRUxNLCBkZXBlbmRpbmcgb24gdGhlIHR5cGUgb2YgdGhlXG4gICAgICogbWFjcm9tb2xlY3VsZSAocGVwdGlkZSwgRE5BLCBSTkEpXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtzdHJpbmdbXX0gQXJyYXkgb2Ygd3JhcHBlcnNcbiAgICAgKi9cbiAgICBnZXRIZWxtV3JhcHBlcnMoKSB7XG4gICAgICAgIGNvbnN0IHByZWZpeCA9ICh0aGlzLmlzRG5hKCkpID8gJ0ROQTF7JyA6XG4gICAgICAgICAgICAodGhpcy5pc1JuYSgpKSA/ICdSTkExeycgOlxuICAgICAgICAgICAgICAgICh0aGlzLmlzUGVwdGlkZSgpKSA/ICdQRVBUSURFMXsnIDpcbiAgICAgICAgICAgICAgICAgICAgJ1Vua25vd24nOyAvLyB0aGlzIGNhc2Ugc2hvdWxkIGJlIGhhbmRsZWQgYXMgZXhjZXB0aW9uYWxcbiAgICAgICAgaWYgKHByZWZpeCA9PT0gJ1Vua25vd24nKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOZWl0aGVyIHBlcHRpZGUsIG5vciBudWNsZW90aWRlJyk7XG4gICAgICAgIGNvbnN0IHBvc3RmaXggPSAnfSQkJCc7XG4gICAgICAgIGNvbnN0IGxlZnRXcmFwcGVyID0gKHRoaXMuaXNEbmEoKSkgPyAnRCgnIDpcbiAgICAgICAgICAgICh0aGlzLmlzUm5hKCkpID8gJ1IoJyA6ICcnOyAvLyBubyB3cmFwcGVyIGZvciBwZXB0aWRlc1xuICAgICAgICBjb25zdCByaWdodFdyYXBwZXIgPSAodGhpcy5pc0RuYSgpIHx8IHRoaXMuaXNSbmEoKSkgPyAnKVAnIDogJyc7IC8vIG5vIHdyYXBwZXIgZm9yIHBlcHRpZGVzXG4gICAgICAgIHJldHVybiBbcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4XTtcbiAgICB9XG4gICAgLy8gQSBoZWxwZXIgZnVuY3Rpb24gZm9yIGNvbnZlcnRpbmcgc3RyaW5ncyB0byBIRUxNXG4gICAgY29udmVydFRvSGVsbUhlbHBlcihzb3VyY2VQb2x5bWVyLCBzb3VyY2VHYXBTeW1ib2wsIHByZWZpeCwgbGVmdFdyYXBwZXIsIHJpZ2h0V3JhcHBlciwgcG9zdGZpeCkge1xuICAgICAgICBjb25zdCBtb25vbWVyQXJyYXkgPSB0aGlzLnNwbGl0dGVyKHNvdXJjZVBvbHltZXIpO1xuICAgICAgICBjb25zdCBtb25vbWVySGVsbUFycmF5ID0gbW9ub21lckFycmF5Lm1hcCgobW0pID0+IHtcbiAgICAgICAgICAgIGlmIChtbSA9PT0gc291cmNlR2FwU3ltYm9sKVxuICAgICAgICAgICAgICAgIHJldHVybiBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5IRUxNO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHJldHVybiBgJHtsZWZ0V3JhcHBlcn0ke21tfSR7cmlnaHRXcmFwcGVyfWA7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gYCR7cHJlZml4fSR7bW9ub21lckhlbG1BcnJheS5qb2luKCcuJyl9JHtwb3N0Zml4fWA7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgYSBzdHJpbmcgd2l0aCBTRVBBUkFUT1IvRkFTVEEgbm90YXRpb24gdG8gSEVMTVxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNvdXJjZVBvbHltZXIgIEEgc3RyaW5nIHRvIGJlIGNvbnZlcnRlZFxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbH0gc291cmNlR2FwU3ltYm9sICBBbiBvcHRpb25hbCBnYXAgc3ltYm9sLCBzZXQgdG9cbiAgICAgKiBkZWZhdWx0IHZhbHVlcyAoJy0nIGZvciBGQVNUQSBhbmQgJycgZm9yIFNFUEFSQVRPUikgdW5sZXNzIHNwZWNpZmllZFxuICAgICAqIEByZXR1cm4ge3N0cmluZ30gIFRoZSB0YXJnZXQgSEVMTSBzdHJpbmdcbiAgICAgKi9cbiAgICBjb252ZXJ0U3RyaW5nVG9IZWxtKHNvdXJjZVBvbHltZXIsIHNvdXJjZUdhcFN5bWJvbCA9IG51bGwpIHtcbiAgICAgICAgaWYgKHNvdXJjZUdhcFN5bWJvbCA9PT0gbnVsbClcbiAgICAgICAgICAgIHNvdXJjZUdhcFN5bWJvbCA9IHRoaXMuZGVmYXVsdEdhcFN5bWJvbDtcbiAgICAgICAgY29uc3QgW3ByZWZpeCwgbGVmdFdyYXBwZXIsIHJpZ2h0V3JhcHBlciwgcG9zdGZpeF0gPSB0aGlzLmdldEhlbG1XcmFwcGVycygpO1xuICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9IZWxtSGVscGVyKHNvdXJjZVBvbHltZXIsIHNvdXJjZUdhcFN5bWJvbCwgcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29udmVydCBhIGNvbHVtbiB0byBIRUxNXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bGx9IHNvdXJjZUdhcFN5bWJvbFxuICAgICAqIEByZXR1cm4ge0RHLkNvbHVtbn1cbiAgICAgKi9cbiAgICBjb252ZXJ0VG9IZWxtKHNvdXJjZUdhcFN5bWJvbCA9IG51bGwpIHtcbiAgICAgICAgaWYgKHNvdXJjZUdhcFN5bWJvbCA9PT0gbnVsbClcbiAgICAgICAgICAgIHNvdXJjZUdhcFN5bWJvbCA9IHRoaXMuZGVmYXVsdEdhcFN5bWJvbDtcbiAgICAgICAgY29uc3QgW3ByZWZpeCwgbGVmdFdyYXBwZXIsIHJpZ2h0V3JhcHBlciwgcG9zdGZpeF0gPSB0aGlzLmdldEhlbG1XcmFwcGVycygpO1xuICAgICAgICBjb25zdCBuZXdDb2x1bW4gPSB0aGlzLmdldE5ld0NvbHVtbihcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovKTtcbiAgICAgICAgLy8gYXNzaWduIHRoZSB2YWx1ZXMgdG8gdGhlIGVtcHR5IGNvbHVtblxuICAgICAgICBuZXdDb2x1bW4uaW5pdCgoaWR4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzb3VyY2VQb2x5bWVyID0gdGhpcy5jb2x1bW4uZ2V0KGlkeCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9IZWxtSGVscGVyKHNvdXJjZVBvbHltZXIsIHNvdXJjZUdhcFN5bWJvbCwgcHJlZml4LCBsZWZ0V3JhcHBlciwgcmlnaHRXcmFwcGVyLCBwb3N0Zml4KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgU0VQQVJBVE9SIGNvbHVtbiB0byBGQVNUQSBub3RhdGlvblxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsfSBmYXN0YUdhcFN5bWJvbCBPcHRpb25hbCBnYXAgc3ltYm9sIGZvciBGQVNUQVxuICAgICAqIEByZXR1cm4ge0RHLkNvbHVtbn0gIENvbnZlcnRlZCBjb2x1bW5cbiAgICAgKi9cbiAgICBjb252ZXJ0U2VwYXJhdG9yVG9GYXN0YShmYXN0YUdhcFN5bWJvbCA9IG51bGwpIHtcbiAgICAgICAgaWYgKGZhc3RhR2FwU3ltYm9sID09PSBudWxsKVxuICAgICAgICAgICAgZmFzdGFHYXBTeW1ib2wgPSBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5GQVNUQTtcbiAgICAgICAgY29uc3QgbmV3Q29sdW1uID0gdGhpcy5nZXROZXdDb2x1bW4oXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovKTtcbiAgICAgICAgLy8gYXNzaWduIHRoZSB2YWx1ZXMgdG8gdGhlIGVtcHR5IGNvbHVtblxuICAgICAgICBuZXdDb2x1bW4uaW5pdCgoaWR4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZXBhcmF0b3JQb2x5bWVyID0gdGhpcy5jb2x1bW4uZ2V0KGlkeCk7XG4gICAgICAgICAgICAvLyBpdGVtcyBjYW4gYmUgbW9ub21lcnMgb3Igc2VwYXJhdG9yc1xuICAgICAgICAgICAgY29uc3Qgc2VwYXJhdG9ySXRlbXNBcnJheSA9IHRoaXMuc3BsaXR0ZXIoc2VwYXJhdG9yUG9seW1lcik7XG4gICAgICAgICAgICBjb25zdCBmYXN0YU1vbm9tZXJzQXJyYXkgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VwYXJhdG9ySXRlbXNBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBzZXBhcmF0b3JJdGVtc0FycmF5W2ldO1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBmYXN0YU1vbm9tZXJzQXJyYXkucHVzaChmYXN0YUdhcFN5bWJvbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGl0ZW0ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGUgY2FzZSBvZiBhIG11bHRpLWNoYXJhY3RlciBtb25vbWVyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vbm9tZXIgPSAnWycgKyBpdGVtICsgJ10nO1xuICAgICAgICAgICAgICAgICAgICBmYXN0YU1vbm9tZXJzQXJyYXkucHVzaChtb25vbWVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGZhc3RhTW9ub21lcnNBcnJheS5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYXN0YU1vbm9tZXJzQXJyYXkuam9pbignJyk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3Q29sdW1uO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiAgQ29udmVydCBIRUxNIGNvbHVtbiB0byBGQVNUQS9TRVBBUkFUT1JcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0Z3ROb3RhdGlvbiAgICBUYXJnZXQgbm90YXRpb246IEZBU1RBIG9yIFNFUEFSQVRPUlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0Z3RTZXBhcmF0b3IgICBPcHRpb25hbCB0YXJnZXQgc2VwYXJhdG9yIChmb3IgSEVMTSAtPlxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbH0gdGd0R2FwU3ltYm9sICAgT3B0aW9uYWwgdGFyZ2V0IGdhcCBzeW1ib2xcbiAgICAgKiBTRVBBUkFUT1IpXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufSBDb252ZXJ0ZWQgY29sdW1uXG4gICAgICovXG4gICAgY29udmVydEhlbG0odGd0Tm90YXRpb24sIHRndFNlcGFyYXRvciA9ICcnLCB0Z3RHYXBTeW1ib2wgPSBudWxsKSB7XG4gICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gbXVzdCBub3QgY29udGFpbiBjYWxscyBvZiBpc0RuYSgpIGFuZCBpc1JuYSgpLCBmb3JcbiAgICAgICAgLy8gc291cmNlIGhlbG0gY29sdW1ucyBtYXkgY29udGFpbiBSTkEsIEROQSBhbmQgUFQgYWNyb3NzIGRpZmZlcmVudCByb3dzXG4gICAgICAgIGlmICh0Z3RHYXBTeW1ib2wgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRndEdhcFN5bWJvbCA9ICh0aGlzLnRvRmFzdGEodGd0Tm90YXRpb24pKSA/XG4gICAgICAgICAgICAgICAgVW5pdHNIYW5kbGVyLl9kZWZhdWx0R2FwU3ltYm9sc0RpY3QuRkFTVEEgOlxuICAgICAgICAgICAgICAgIFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LlNFUEFSQVRPUjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy50b1NlcGFyYXRvcih0Z3ROb3RhdGlvbikgJiYgdGd0U2VwYXJhdG9yID09PSAnJylcbiAgICAgICAgICAgIHRndFNlcGFyYXRvciA9IHRoaXMuc2VwYXJhdG9yO1xuICAgICAgICBjb25zdCBoZWxtV3JhcHBlcnNSZSA9IC8oUlxcKHxEXFwofFxcKXxQKS9nO1xuICAgICAgICBjb25zdCBuZXdDb2x1bW4gPSB0aGlzLmdldE5ld0NvbHVtbih0Z3ROb3RhdGlvbik7XG4gICAgICAgIC8vIGFzc2lnbiB0aGUgdmFsdWVzIHRvIHRoZSBlbXB0eSBjb2x1bW5cbiAgICAgICAgbmV3Q29sdW1uLmluaXQoKGlkeCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaGVsbVBvbHltZXIgPSB0aGlzLmNvbHVtbi5nZXQoaWR4KTtcbiAgICAgICAgICAgIC8vIHdlIGNhbm5vdCB1c2UgaXNEbmEoKSBvciBpc1JuYSgpIGJlY2F1c2Ugc291cmNlIGhlbG0gY29sdW1ucyBjYW5cbiAgICAgICAgICAgIC8vIGNvbnRhaW4gRE5BLCBSTkEgYW5kIFBUIGluIGRpZmZlcmVudCBjZWxscywgc28gdGhlIGNvcnJlc3BvbmRpbmdcbiAgICAgICAgICAgIC8vIHRhZ3MgY2Fubm90IGJlIHNldCBmb3IgdGhlIHdob2xlIGNvbHVtblxuICAgICAgICAgICAgY29uc3QgaXNOdWNsZW90aWRlID0gaGVsbVBvbHltZXIuc3RhcnRzV2l0aCgnRE5BJykgfHwgaGVsbVBvbHltZXIuc3RhcnRzV2l0aCgnUk5BJyk7XG4gICAgICAgICAgICAvLyBpdGVtcyBjYW4gYmUgbW9ub21lcnMgb3IgaGVsbXNcbiAgICAgICAgICAgIGNvbnN0IGhlbG1JdGVtc0FycmF5ID0gdGhpcy5zcGxpdHRlcihoZWxtUG9seW1lcik7XG4gICAgICAgICAgICBjb25zdCB0Z3RNb25vbWVyc0FycmF5ID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGhlbG1JdGVtc0FycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBoZWxtSXRlbXNBcnJheVtpXTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOdWNsZW90aWRlKVxuICAgICAgICAgICAgICAgICAgICBpdGVtID0gaXRlbS5yZXBsYWNlKGhlbG1XcmFwcGVyc1JlLCAnJyk7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0gPT09IFVuaXRzSGFuZGxlci5fZGVmYXVsdEdhcFN5bWJvbHNEaWN0LkhFTE0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGd0TW9ub21lcnNBcnJheS5wdXNoKHRndEdhcFN5bWJvbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMudG9GYXN0YSh0Z3ROb3RhdGlvbikgJiYgaXRlbS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSBjYXNlIG9mIGEgbXVsdGktY2hhcmFjdGVyIG1vbm9tZXIgY29udmVydGVkIHRvIEZBU1RBXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vbm9tZXIgPSAnWycgKyBpdGVtICsgJ10nO1xuICAgICAgICAgICAgICAgICAgICB0Z3RNb25vbWVyc0FycmF5LnB1c2gobW9ub21lcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0Z3RNb25vbWVyc0FycmF5LnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRndE1vbm9tZXJzQXJyYXkuam9pbih0Z3RTZXBhcmF0b3IpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ld0NvbHVtbjtcbiAgICB9XG4gICAgY29udmVydEhlbG1Ub1NlcGFyYXRvcigpIHtcbiAgICAgICAgLy8gVE9ETzogaW1wbGVtZW50YXRpb3JldHVybiB0aGlzLmdldE5ld0NvbHVtbigpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXROZXdDb2x1bW4oXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8pO1xuICAgIH1cbiAgICAvKiogRGlzcGF0Y2hlciBtZXRob2QgZm9yIG5vdGF0aW9uIGNvbnZlcnNpb25cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Tk9UQVRJT059IHRndE5vdGF0aW9uICAgTm90YXRpb24gd2Ugd2FudCB0byBjb252ZXJ0IHRvXG4gICAgICogQHBhcmFtIHtzdHJpbmcgfCBudWxsfSB0Z3RTZXBhcmF0b3IgICBQb3NzaWJsZSBzZXBhcmF0b3JcbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59ICAgICAgICAgICAgICAgIENvbnZlcnRlZCBjb2x1bW5cbiAgICAgKi9cbiAgICBjb252ZXJ0KHRndE5vdGF0aW9uLCB0Z3RTZXBhcmF0b3IgPSBudWxsKSB7XG4gICAgICAgIC8vIHBvc3NpYmxlIGV4Y2VwdGlvbnNcbiAgICAgICAgaWYgKHRoaXMubm90YXRpb24gPT09IHRndE5vdGF0aW9uKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0Z3Qgbm90YXRpb24gaXMgaW52YWxpZCcpO1xuICAgICAgICBpZiAodGhpcy50b1NlcGFyYXRvcih0Z3ROb3RhdGlvbikgJiYgdGd0U2VwYXJhdG9yID09PSBudWxsKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd0Z3Qgc2VwYXJhdG9yIGlzIG5vdCBzcGVjaWZpZWQnKTtcbiAgICAgICAgaWYgKHRoaXMuaXNGYXN0YSgpICYmIHRoaXMudG9TZXBhcmF0b3IodGd0Tm90YXRpb24pICYmIHRndFNlcGFyYXRvciAhPT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRGYXN0YVRvU2VwYXJhdG9yKHRndFNlcGFyYXRvcik7XG4gICAgICAgIGVsc2UgaWYgKCh0aGlzLmlzRmFzdGEoKSB8fCB0aGlzLmlzU2VwYXJhdG9yKCkpICYmIHRoaXMudG9IZWxtKHRndE5vdGF0aW9uKSlcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRUb0hlbG0oKTtcbiAgICAgICAgZWxzZSBpZiAodGhpcy5pc1NlcGFyYXRvcigpICYmIHRoaXMudG9GYXN0YSh0Z3ROb3RhdGlvbikpXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0U2VwYXJhdG9yVG9GYXN0YSgpO1xuICAgICAgICBlbHNlIGlmICh0aGlzLmlzSGVsbSgpICYmIHRoaXMudG9GYXN0YSh0Z3ROb3RhdGlvbikpIC8vIHRoZSBjYXNlIG9mIEhFTE1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRIZWxtKHRndE5vdGF0aW9uKTtcbiAgICAgICAgZWxzZSAvLyB0aGlzLmlzSGVsbSgpICYmIHRoaXMudG9TZXBhcmF0b3IodGd0Tm90YXRpb24pXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0SGVsbSh0Z3ROb3RhdGlvbiwgdGd0U2VwYXJhdG9yKTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2libTkwWVhScGIyNHRZMjl1ZG1WeWRHVnlMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaWJtOTBZWFJwYjI0dFkyOXVkbVZ5ZEdWeUxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVWxCTEU5QlFVOHNSVUZCWlN4UFFVRlBMRVZCUVVNc1RVRkJUU3h4UWtGQmNVSXNRMEZCUXp0QlFVTXhSQ3hQUVVGUExFVkJRVU1zV1VGQldTeEZRVUZYTEUxQlFVMHNhVUpCUVdsQ0xFTkJRVU03UVVGRmRrUXNhVVpCUVdsR08wRkJRMnBHTEUxQlFVMHNUMEZCVHl4cFFrRkJhMElzVTBGQlVTeFpRVUZaTzBsQmExQnFSQ3haUVVGdFFpeEhRVUZqTzFGQlF5OUNMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRV3hRVEN4alFVRlRMRWRCUVhkQ0xFbEJRVWtzUTBGQlF6dEpRVzFRT1VNc1EwRkJRenRKUVd4UVJDeEpRVUZqTEZGQlFWRTdVVUZEY0VJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVTBGQlV5eExRVUZMTEVsQlFVazdXVUZEZWtJc1NVRkJTU3hEUVVGRExGTkJRVk1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUXpkRUxFOUJRVThzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXp0SlFVTjRRaXhEUVVGRE8wbEJRVUVzUTBGQlF6dEpRVVZMTEU5QlFVOHNRMEZCUXl4alFVRjNRaXhKUVVGaExFOUJRVThzWTBGQll5eHBRMEZCYlVJc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRmVFWXNWMEZCVnl4RFFVRkRMR05CUVhkQ0xFbEJRV0VzVDBGQlR5eGpRVUZqTEhsRFFVRjFRaXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVZvUnl4TlFVRk5MRU5CUVVNc1kwRkJkMElzU1VGQllTeFBRVUZQTEdOQlFXTXNLMEpCUVd0Q0xFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJUZEdPenM3T3pzN1QwRk5SenRKUVVOTExIVkNRVUYxUWl4RFFVRkRMRk5CUVdsQ0xFVkJRVVVzYVVKQlFXZERMRWxCUVVrN1VVRkRja1lzU1VGQlNTeGpRVUZqTEV0QlFVc3NTVUZCU1R0WlFVTjZRaXhqUVVGakxFZEJRVWNzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRE8xRkJSWHBETEUxQlFVMHNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhaUVVGWkxITkRRVUZ2UWl4RFFVRkRPMUZCUTNoRUxITkVRVUZ6UkR0UlFVTjBSQ3hUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNSMEZCVnl4RlFVRkZMRVZCUVVVN1dVRkROMElzVFVGQlRTeFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZETVVNc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFsQlEzWkVMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4clFrRkJhMElzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1owSkJRMnhFTEVsQlFVa3NhMEpCUVd0Q0xFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NZMEZCWXp0dlFrRkRNVU1zYTBKQlFXdENMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzV1VGQldTeERRVUZETEhOQ1FVRnpRaXhEUVVGRExGTkJRVk1zUTBGQlF6dGhRVU42UlR0WlFVTkVMRTlCUVU4c2EwSkJRV3RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJRelZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTBnc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU42UkN4UFFVRlBMRk5CUVZNc1EwRkJRenRKUVVOdVFpeERRVUZETzBsQlJVUTdPenM3TzA5QlMwYzdTVUZEU3l4bFFVRmxPMUZCUTNKQ0xFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMWxCUTNaRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzJkQ1FVTjRRaXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6dHZRa0ZEYUVNc1UwRkJVeXhEUVVGRExFTkJRVU1zTmtOQlFUWkRPMUZCUlRsRUxFbEJRVWtzVFVGQlRTeExRVUZMTEZOQlFWTTdXVUZEZEVJc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eHBRMEZCYVVNc1EwRkJReXhEUVVGRE8xRkJSWEpFTEUxQlFVMHNUMEZCVHl4SFFVRkhMRTFCUVUwc1EwRkJRenRSUVVOMlFpeE5RVUZOTEZkQlFWY3NSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVONlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExEQkNRVUV3UWp0UlFVTjRSQ3hOUVVGTkxGbEJRVmtzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVc1NVRkJTU3hKUVVGSkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl3d1FrRkJNRUk3VVVGRE0wWXNUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hYUVVGWExFVkJRVVVzV1VGQldTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTNSRUxFTkJRVU03U1VGRlJDeHRSRUZCYlVRN1NVRkRNME1zYlVKQlFXMUNMRU5CUTNwQ0xHRkJRWEZDTEVWQlEzSkNMR1ZCUVhWQ0xFVkJRM1pDTEUxQlFXTXNSVUZEWkN4WFFVRnRRaXhGUVVOdVFpeFpRVUZ2UWl4RlFVTndRaXhQUVVGbE8xRkJSV1lzVFVGQlRTeFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dFJRVU5zUkN4TlFVRk5MR2RDUVVGblFpeEhRVUZoTEZsQlFWa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGVkxFVkJRVVVzUlVGQlJUdFpRVU5xUlN4SlFVRkpMRVZCUVVVc1MwRkJTeXhsUVVGbE8yZENRVU40UWl4UFFVRlBMRmxCUVZrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4SlFVRkpMRU5CUVVNN08yZENRVVZvUkN4UFFVRlBMRWRCUVVjc1YwRkJWeXhIUVVGSExFVkJRVVVzUjBGQlJ5eFpRVUZaTEVWQlFVVXNRMEZCUXp0UlFVTm9SQ3hEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5JTEU5QlFVOHNSMEZCUnl4TlFVRk5MRWRCUVVjc1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFOUJRVThzUlVGQlJTeERRVUZETzBsQlF6VkVMRU5CUVVNN1NVRkZSRHM3T3pzN096dFBRVTlITzBsQlEwa3NiVUpCUVcxQ0xFTkJRM2hDTEdGQlFYRkNMRVZCUTNKQ0xHdENRVUZwUXl4SlFVRkpPMUZCUlhKRExFbEJRVWtzWlVGQlpTeExRVUZMTEVsQlFVazdXVUZETVVJc1pVRkJaU3hIUVVGSExFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJRenRSUVVNeFF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RlFVRkZMRmRCUVZjc1JVRkJSU3haUVVGWkxFVkJRVVVzVDBGQlR5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMR1ZCUVdVc1JVRkJSU3hEUVVGRE8xRkJRelZGTEU5QlFVOHNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVUZETEdGQlFXRXNSVUZCUlN4bFFVRmxMRVZCUVVVc1RVRkJUU3hGUVVGRkxGZEJRVmNzUlVGQlJTeFpRVUZaTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRPVWNzUTBGQlF6dEpRVVZFT3pzN096dFBRVXRITzBsQlEwc3NZVUZCWVN4RFFVRkRMR3RDUVVGcFF5eEpRVUZKTzFGQlEzcEVMRWxCUVVrc1pVRkJaU3hMUVVGTExFbEJRVWs3V1VGRE1VSXNaVUZCWlN4SFFVRkhMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXp0UlFVVXhReXhOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVUZGTEZkQlFWY3NSVUZCUlN4WlFVRlpMRVZCUVVVc1QwRkJUeXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEdWQlFXVXNSVUZCUlN4RFFVRkRPMUZCUlRWRkxFMUJRVTBzVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4WlFVRlpMRFJDUVVGbExFTkJRVU03VVVGRGJrUXNkME5CUVhkRE8xRkJRM2hETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGWExFVkJRVVVzUlVGQlJUdFpRVU0zUWl4TlFVRk5MR0ZCUVdFc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVNelF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eGhRVUZoTEVWQlFVVXNaVUZCWjBJc1JVRkJSU3hOUVVGTkxFVkJRVVVzVjBGQlZ5eEZRVUZGTEZsQlFWa3NSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVNdlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTklMRTlCUVU4c1UwRkJVeXhEUVVGRE8wbEJRMjVDTEVOQlFVTTdTVUZGUkRzN096czdUMEZMUnp0SlFVTkxMSFZDUVVGMVFpeERRVUZETEdsQ1FVRm5ReXhKUVVGSk8xRkJRMnhGTEVsQlFVa3NZMEZCWXl4TFFVRkxMRWxCUVVrN1dVRkRla0lzWTBGQll5eEhRVUZITEZsQlFWa3NRMEZCUXl4elFrRkJjMElzUTBGQlF5eExRVUZMTEVOQlFVTTdVVUZGTjBRc1RVRkJUU3hUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEZsQlFWa3NPRUpCUVdkQ0xFTkJRVU03VVVGRGNFUXNkME5CUVhkRE8xRkJRM2hETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGWExFVkJRVVVzUlVGQlJUdFpRVU0zUWl4TlFVRk5MR2RDUVVGblFpeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlF6bERMSE5EUVVGelF6dFpRVU4wUXl4TlFVRk5MRzFDUVVGdFFpeEhRVUZITEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXp0WlFVTTFSQ3hOUVVGTkxHdENRVUZyUWl4SFFVRmhMRVZCUVVVc1EwRkJRenRaUVVONFF5eExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzYlVKQlFXMUNMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTzJkQ1FVTnVSQ3hOUVVGTkxFbEJRVWtzUjBGQlJ5eHRRa0ZCYlVJc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEY0VNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeExRVUZMTEVOQlFVTXNSVUZCUlR0dlFrRkRja0lzYTBKQlFXdENMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV1VzUTBGQlF5eERRVUZETzJsQ1FVTXhRenR4UWtGQlRTeEpRVUZKTEVsQlFVa3NRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhGUVVGRk8yOUNRVU14UWl4M1EwRkJkME03YjBKQlEzaERMRTFCUVUwc1QwRkJUeXhIUVVGSExFZEJRVWNzUjBGQlJ5eEpRVUZKTEVkQlFVY3NSMEZCUnl4RFFVRkRPMjlDUVVOcVF5eHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdhVUpCUTJ4RE8zRkNRVUZOTzI5Q1FVTk1MR3RDUVVGclFpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRwUWtGREwwSTdZVUZEUmp0WlFVTkVMRTlCUVU4c2EwSkJRV3RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM0pETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTBnc1QwRkJUeXhUUVVGVExFTkJRVU03U1VGRGJrSXNRMEZCUXp0SlFVVkVPenM3T3pzN096dFBRVkZITzBsQlEwc3NWMEZCVnl4RFFVTnFRaXhYUVVGdFFpeEZRVU51UWl4bFFVRjFRaXhGUVVGRkxFVkJRM3BDTEdWQlFUaENMRWxCUVVrN1VVRkZiRU1zYlVWQlFXMUZPMUZCUTI1RkxIZEZRVUYzUlR0UlFVTjRSU3hKUVVGSkxGbEJRVmtzUzBGQlN5eEpRVUZKTEVWQlFVVTdXVUZEZWtJc1dVRkJXU3hIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4WFFVRjFRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTjBSQ3haUVVGWkxFTkJRVU1zYzBKQlFYTkNMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03WjBKQlF6TkRMRmxCUVZrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4VFFVRlRMRU5CUVVNN1UwRkRha1E3VVVGRlJDeEpRVUZKTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1YwRkJkVUlzUTBGQlF5eEpRVUZKTEZsQlFWa3NTMEZCU3l4RlFVRkZPMWxCUTJ4RkxGbEJRVmtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRPMUZCUldoRExFMUJRVTBzWTBGQll5eEhRVUZITEdsQ1FVRnBRaXhEUVVGRE8xRkJRM3BETEUxQlFVMHNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zVjBGQmRVSXNRMEZCUXl4RFFVRkRPMUZCUXpkRUxIZERRVUYzUXp0UlFVTjRReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNSMEZCVnl4RlFVRkZMRVZCUVVVN1dVRkROMElzVFVGQlRTeFhRVUZYTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZGZWtNc2JVVkJRVzFGTzFsQlEyNUZMRzFGUVVGdFJUdFpRVU51UlN3d1EwRkJNRU03V1VGRE1VTXNUVUZCVFN4WlFVRlpMRWRCUVVjc1YwRkJWeXhEUVVGRExGVkJRVlVzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4WFFVRlhMRU5CUVVNc1ZVRkJWU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFsQlJYQkdMR2xEUVVGcFF6dFpRVU5xUXl4TlFVRk5MR05CUVdNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMWxCUTJ4RUxFMUJRVTBzWjBKQlFXZENMRWRCUVdFc1JVRkJSU3hEUVVGRE8xbEJRM1JETEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eGpRVUZqTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRk8yZENRVU01UXl4SlFVRkpMRWxCUVVrc1IwRkJSeXhqUVVGakxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUXpkQ0xFbEJRVWtzV1VGQldUdHZRa0ZEWkN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eGpRVUZqTEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNN1owSkJRekZETEVsQlFVa3NTVUZCU1N4TFFVRkxMRmxCUVZrc1EwRkJReXh6UWtGQmMwSXNRMEZCUXl4SlFVRkpMRVZCUVVVN2IwSkJRM0pFTEdkQ1FVRm5RaXhEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZoTEVOQlFVTXNRMEZCUXp0cFFrRkRkRU03Y1VKQlFVMHNTVUZCU1N4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExGZEJRWFZDTEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hIUVVGSExFTkJRVU1zUlVGQlJUdHZRa0ZEYmtVc01rUkJRVEpFTzI5Q1FVTXpSQ3hOUVVGTkxFOUJRVThzUjBGQlJ5eEhRVUZITEVkQlFVY3NTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJRenR2UWtGRGFrTXNaMEpCUVdkQ0xFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMmxDUVVOb1F6dHhRa0ZCVFR0dlFrRkRUQ3huUWtGQlowSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03YVVKQlF6ZENPMkZCUTBZN1dVRkRSQ3hQUVVGUExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFJRVU0zUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOSUxFOUJRVThzVTBGQlV5eERRVUZETzBsQlEyNUNMRU5CUVVNN1NVRkZUeXh6UWtGQmMwSTdVVUZETlVJc2FVUkJRV2xFTzFGQlEycEVMRTlCUVU4c1NVRkJTU3hEUVVGRExGbEJRVmtzYzBOQlFXOUNMRU5CUVVNN1NVRkRMME1zUTBGQlF6dEpRVVZFT3pzN096dFBRVXRITzBsQlEwa3NUMEZCVHl4RFFVRkRMRmRCUVhGQ0xFVkJRVVVzWlVGQk9FSXNTVUZCU1R0UlFVTjBSU3h6UWtGQmMwSTdVVUZEZEVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVVVGQlVTeExRVUZMTEZkQlFWYzdXVUZETDBJc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eDVRa0ZCZVVJc1EwRkJReXhEUVVGRE8xRkJRemRETEVsQlFVa3NTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeFpRVUZaTEV0QlFVc3NTVUZCU1R0WlFVTjRSQ3hOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEdkRFFVRm5ReXhEUVVGRExFTkJRVU03VVVGRmNFUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFbEJRVWtzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3haUVVGWkxFdEJRVXNzU1VGQlNUdFpRVU14UlN4UFFVRlBMRWxCUVVrc1EwRkJReXgxUWtGQmRVSXNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRoUVVNdlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVjBGQlZ5eERRVUZETzFsQlEzcEZMRTlCUVU4c1NVRkJTU3hEUVVGRExHRkJRV0VzUlVGQlJTeERRVUZETzJGQlEzcENMRWxCUVVrc1NVRkJTU3hEUVVGRExGZEJRVmNzUlVGQlJTeEpRVUZKTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1YwRkJWeXhEUVVGRE8xbEJRM1JFTEU5QlFVOHNTVUZCU1N4RFFVRkRMSFZDUVVGMVFpeEZRVUZGTEVOQlFVTTdZVUZEYmtNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhYUVVGWExFTkJRVU1zUlVGQlJTeHRRa0ZCYlVJN1dVRkRkRVVzVDBGQlR5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRE8yRkJRMnhETEdsRVFVRnBSRHRaUVVOd1JDeFBRVUZQTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1YwRkJWeXhGUVVGRkxGbEJRV0VzUTBGQlF5eERRVUZETzBsQlEzaEVMRU5CUVVNN1EwRkxSaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUlFUnZJRzV2ZENCamFHRnVaMlVnZEdobGMyVWdhVzF3YjNKMElHeHBibVZ6SUhSdklHMWhkR05vSUdWNGRHVnlibUZzSUcxdlpIVnNaWE1nYVc0Z2QyVmljR0ZqYXlCamIyNW1hV2QxY21GMGFXOXVJQ292WEc1cGJYQnZjblFnS2lCaGN5Qm5jbTlySUdaeWIyMGdKMlJoZEdGbmNtOXJMV0Z3YVM5bmNtOXJKenRjYm1sdGNHOXlkQ0FxSUdGeklIVnBJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzkxYVNjN1hHNXBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1YVcxd2IzSjBJSHRUY0d4cGRIUmxja1oxYm1Nc0lGZGxZa3h2WjI5OUlHWnliMjBnSnk0dUwzWnBaWGRsY25NdmQyVmlMV3h2WjI4bk8xeHVhVzF3YjNKMElIdFZibWwwYzBoaGJtUnNaWElzSUU1UFZFRlVTVTlPZlNCbWNtOXRJQ2N1TDNWdWFYUnpMV2hoYm1Sc1pYSW5PMXh1WEc0dktpb2dRMnhoYzNNZ1ptOXlJR2hoYm1Sc2FXNW5JR052Ym5abGNuTnBiMjRnYjJZZ2JtOTBZWFJwYjI0Z2MzbHpkR1Z0Y3lCcGJpQk5ZV055YjIxdmJHVmpkV3hsSUdOdmJIVnRibk1nS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJPYjNSaGRHbHZia052Ym5abGNuUmxjaUJsZUhSbGJtUnpJRlZ1YVhSelNHRnVaR3hsY2lCN1hHNGdJSEJ5YVhaaGRHVWdYM053YkdsMGRHVnlPaUJUY0d4cGRIUmxja1oxYm1NZ2ZDQnVkV3hzSUQwZ2JuVnNiRHRjYmlBZ2NISnZkR1ZqZEdWa0lHZGxkQ0J6Y0d4cGRIUmxjaWdwT2lCVGNHeHBkSFJsY2taMWJtTWdlMXh1SUNBZ0lHbG1JQ2gwYUdsekxsOXpjR3hwZEhSbGNpQTlQVDBnYm5Wc2JDbGNiaUFnSUNBZ0lIUm9hWE11WDNOd2JHbDBkR1Z5SUQwZ1YyVmlURzluYnk1blpYUlRjR3hwZEhSbGNrWnZja052YkhWdGJpaDBhR2x6TG1OdmJIVnRiaWs3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WDNOd2JHbDBkR1Z5TzF4dUlDQjlPMXh1WEc0Z0lIQjFZbXhwWXlCMGIwWmhjM1JoS0hSaGNtZGxkRTV2ZEdGMGFXOXVPaUJPVDFSQlZFbFBUaWs2SUdKdmIyeGxZVzRnZXlCeVpYUjFjbTRnZEdGeVoyVjBUbTkwWVhScGIyNGdQVDA5SUU1UFZFRlVTVTlPTGtaQlUxUkJPeUI5WEc1Y2JpQWdjSFZpYkdsaklIUnZVMlZ3WVhKaGRHOXlLSFJoY21kbGRFNXZkR0YwYVc5dU9pQk9UMVJCVkVsUFRpazZJR0p2YjJ4bFlXNGdleUJ5WlhSMWNtNGdkR0Z5WjJWMFRtOTBZWFJwYjI0Z1BUMDlJRTVQVkVGVVNVOU9MbE5GVUVGU1FWUlBVanNnZlZ4dVhHNGdJSEIxWW14cFl5QjBiMGhsYkcwb2RHRnlaMlYwVG05MFlYUnBiMjQ2SUU1UFZFRlVTVTlPS1RvZ1ltOXZiR1ZoYmlCN0lISmxkSFZ5YmlCMFlYSm5aWFJPYjNSaGRHbHZiaUE5UFQwZ1RrOVVRVlJKVDA0dVNFVk1UVHNnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJEYjI1MlpYSjBJR0VnVFdGamNtOXRiMnhsWTNWc1pTQmpiMngxYlc0Z1puSnZiU0JHUVZOVVFTQjBieUJUUlZCQlVrRlVUMUlnYm05MFlYUnBiMjVjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhObGNHRnlZWFJ2Y2lBZ1FTQnpjR1ZqYVdacFl5QnpaWEJoY21GMGIzSWdkRzhnWW1VZ2RYTmxaRnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1ptRnpkR0ZIWVhCVGVXMWliMndnSUVkaGNDQnplVzFpYjJ3Z2FXNGdSa0ZUVkVFc0lDY3RKeUJpZVNCa1pXWmhkV3gwWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMFJITGtOdmJIVnRibjBnSUNBZ0lDQWdJRUVnYm1WM0lHTnZiSFZ0YmlCcGJpQlRSVkJCVWtGVVQxSWdibTkwWVhScGIyNWNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdZMjl1ZG1WeWRFWmhjM1JoVkc5VFpYQmhjbUYwYjNJb2MyVndZWEpoZEc5eU9pQnpkSEpwYm1jc0lHWmhjM1JoUjJGd1UzbHRZbTlzT2lCemRISnBibWNnZkNCdWRXeHNJRDBnYm5Wc2JDazZJRVJITGtOdmJIVnRiaUI3WEc0Z0lDQWdhV1lnS0daaGMzUmhSMkZ3VTNsdFltOXNJRDA5UFNCdWRXeHNLVnh1SUNBZ0lDQWdabUZ6ZEdGSFlYQlRlVzFpYjJ3Z1BTQjBhR2x6TG1SbFptRjFiSFJIWVhCVGVXMWliMnc3WEc1Y2JpQWdJQ0JqYjI1emRDQnVaWGREYjJ4MWJXNGdQU0IwYUdsekxtZGxkRTVsZDBOdmJIVnRiaWhPVDFSQlZFbFBUaTVUUlZCQlVrRlVUMUlwTzF4dUlDQWdJQzh2SUdGemMybG5iaUIwYUdVZ2RtRnNkV1Z6SUhSdklIUm9aU0J1Wlhkc2VTQmpjbVZoZEdWa0lHVnRjSFI1SUdOdmJIVnRibHh1SUNBZ0lHNWxkME52YkhWdGJpNXBibWwwS0NocFpIZzZJRzUxYldKbGNpa2dQVDRnZTF4dUlDQWdJQ0FnWTI5dWMzUWdabUZ6ZEdGUWIyeDViV1Z5SUQwZ2RHaHBjeTVqYjJ4MWJXNHVaMlYwS0dsa2VDazdYRzRnSUNBZ0lDQmpiMjV6ZENCbVlYTjBZVTF2Ym05dFpYSnpRWEp5WVhrZ1BTQjBhR2x6TG5Od2JHbDBkR1Z5S0daaGMzUmhVRzlzZVcxbGNpazdYRzRnSUNBZ0lDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR1poYzNSaFRXOXViMjFsY25OQmNuSmhlUzVzWlc1bmRHZzdJR2tyS3lrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvWm1GemRHRk5iMjV2YldWeWMwRnljbUY1VzJsZElEMDlQU0JtWVhOMFlVZGhjRk41YldKdmJDbGNiaUFnSUNBZ0lDQWdJQ0JtWVhOMFlVMXZibTl0WlhKelFYSnlZWGxiYVYwZ1BTQlZibWwwYzBoaGJtUnNaWEl1WDJSbFptRjFiSFJIWVhCVGVXMWliMnh6UkdsamRDNVRSVkJCVWtGVVQxSTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z1ptRnpkR0ZOYjI1dmJXVnljMEZ5Y21GNUxtcHZhVzRvYzJWd1lYSmhkRzl5S1R0Y2JpQWdJQ0I5S1R0Y2JpQWdJQ0J1WlhkRGIyeDFiVzR1YzJWMFZHRm5LRlZ1YVhSelNHRnVaR3hsY2k1VVFVZFRMbk5sY0dGeVlYUnZjaXdnYzJWd1lYSmhkRzl5S1R0Y2JpQWdJQ0J5WlhSMWNtNGdibVYzUTI5c2RXMXVPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVkbGRDQjBhR1VnZDNKaGNIQmxjaUJ6ZEhKcGJtZHpJR1p2Y2lCSVJVeE5MQ0JrWlhCbGJtUnBibWNnYjI0Z2RHaGxJSFI1Y0dVZ2IyWWdkR2hsWEc0Z0lDQXFJRzFoWTNKdmJXOXNaV04xYkdVZ0tIQmxjSFJwWkdVc0lFUk9RU3dnVWs1QktWeHVJQ0FnS2x4dUlDQWdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZGJYWDBnUVhKeVlYa2diMllnZDNKaGNIQmxjbk5jYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWjJWMFNHVnNiVmR5WVhCd1pYSnpLQ2s2SUhOMGNtbHVaMXRkSUh0Y2JpQWdJQ0JqYjI1emRDQndjbVZtYVhnZ1BTQW9kR2hwY3k1cGMwUnVZU2dwS1NBL0lDZEVUa0V4ZXljZ09seHVJQ0FnSUNBZ0tIUm9hWE11YVhOU2JtRW9LU2tnUHlBblVrNUJNWHNuSURwY2JpQWdJQ0FnSUNBZ0tIUm9hWE11YVhOUVpYQjBhV1JsS0NrcElEOGdKMUJGVUZSSlJFVXhleWNnT2x4dUlDQWdJQ0FnSUNBZ0lDZFZibXR1YjNkdUp6c2dMeThnZEdocGN5QmpZWE5sSUhOb2IzVnNaQ0JpWlNCb1lXNWtiR1ZrSUdGeklHVjRZMlZ3ZEdsdmJtRnNYRzVjYmlBZ0lDQnBaaUFvY0hKbFptbDRJRDA5UFNBblZXNXJibTkzYmljcFhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjA1bGFYUm9aWElnY0dWd2RHbGtaU3dnYm05eUlHNTFZMnhsYjNScFpHVW5LVHRjYmx4dUlDQWdJR052Ym5OMElIQnZjM1JtYVhnZ1BTQW5mU1FrSkNjN1hHNGdJQ0FnWTI5dWMzUWdiR1ZtZEZkeVlYQndaWElnUFNBb2RHaHBjeTVwYzBSdVlTZ3BLU0EvSUNkRUtDY2dPbHh1SUNBZ0lDQWdLSFJvYVhNdWFYTlNibUVvS1NrZ1B5QW5VaWduSURvZ0p5YzdJQzh2SUc1dklIZHlZWEJ3WlhJZ1ptOXlJSEJsY0hScFpHVnpYRzRnSUNBZ1kyOXVjM1FnY21sbmFIUlhjbUZ3Y0dWeUlEMGdLSFJvYVhNdWFYTkVibUVvS1NCOGZDQjBhR2x6TG1selVtNWhLQ2twSUQ4Z0p5bFFKeUE2SUNjbk95QXZMeUJ1YnlCM2NtRndjR1Z5SUdadmNpQndaWEIwYVdSbGMxeHVJQ0FnSUhKbGRIVnliaUJiY0hKbFptbDRMQ0JzWldaMFYzSmhjSEJsY2l3Z2NtbG5hSFJYY21Gd2NHVnlMQ0J3YjNOMFptbDRYVHRjYmlBZ2ZWeHVYRzRnSUM4dklFRWdhR1ZzY0dWeUlHWjFibU4wYVc5dUlHWnZjaUJqYjI1MlpYSjBhVzVuSUhOMGNtbHVaM01nZEc4Z1NFVk1UVnh1SUNCd2NtbDJZWFJsSUdOdmJuWmxjblJVYjBobGJHMUlaV3h3WlhJb1hHNGdJQ0FnYzI5MWNtTmxVRzlzZVcxbGNqb2djM1J5YVc1bkxGeHVJQ0FnSUhOdmRYSmpaVWRoY0ZONWJXSnZiRG9nYzNSeWFXNW5MRnh1SUNBZ0lIQnlaV1pwZURvZ2MzUnlhVzVuTEZ4dUlDQWdJR3hsWm5SWGNtRndjR1Z5T2lCemRISnBibWNzWEc0Z0lDQWdjbWxuYUhSWGNtRndjR1Z5T2lCemRISnBibWNzWEc0Z0lDQWdjRzl6ZEdacGVEb2djM1J5YVc1blhHNGdJQ2s2SUhOMGNtbHVaeUI3WEc0Z0lDQWdZMjl1YzNRZ2JXOXViMjFsY2tGeWNtRjVJRDBnZEdocGN5NXpjR3hwZEhSbGNpaHpiM1Z5WTJWUWIyeDViV1Z5S1R0Y2JpQWdJQ0JqYjI1emRDQnRiMjV2YldWeVNHVnNiVUZ5Y21GNU9pQnpkSEpwYm1kYlhTQTlJRzF2Ym05dFpYSkJjbkpoZVM1dFlYQW9LRzF0T2lCemRISnBibWNwSUQwK0lIdGNiaUFnSUNBZ0lHbG1JQ2h0YlNBOVBUMGdjMjkxY21ObFIyRndVM2x0WW05c0tWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1ZXNXBkSE5JWVc1a2JHVnlMbDlrWldaaGRXeDBSMkZ3VTNsdFltOXNjMFJwWTNRdVNFVk1UVHRjYmlBZ0lDQWdJR1ZzYzJWY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdBa2UyeGxablJYY21Gd2NHVnlmU1I3YlcxOUpIdHlhV2RvZEZkeVlYQndaWEo5WUR0Y2JpQWdJQ0I5S1R0Y2JpQWdJQ0J5WlhSMWNtNGdZQ1I3Y0hKbFptbDRmU1I3Ylc5dWIyMWxja2hsYkcxQmNuSmhlUzVxYjJsdUtDY3VKeWw5Skh0d2IzTjBabWw0ZldBN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRMjl1ZG1WeWRDQmhJSE4wY21sdVp5QjNhWFJvSUZORlVFRlNRVlJQVWk5R1FWTlVRU0J1YjNSaGRHbHZiaUIwYnlCSVJVeE5YRzRnSUNBcVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J6YjNWeVkyVlFiMng1YldWeUlDQkJJSE4wY21sdVp5QjBieUJpWlNCamIyNTJaWEowWldSY2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtY2dmQ0J1ZFd4c2ZTQnpiM1Z5WTJWSFlYQlRlVzFpYjJ3Z0lFRnVJRzl3ZEdsdmJtRnNJR2RoY0NCemVXMWliMndzSUhObGRDQjBiMXh1SUNBZ0tpQmtaV1poZFd4MElIWmhiSFZsY3lBb0p5MG5JR1p2Y2lCR1FWTlVRU0JoYm1RZ0p5Y2dabTl5SUZORlVFRlNRVlJQVWlrZ2RXNXNaWE56SUhOd1pXTnBabWxsWkZ4dUlDQWdLaUJBY21WMGRYSnVJSHR6ZEhKcGJtZDlJQ0JVYUdVZ2RHRnlaMlYwSUVoRlRFMGdjM1J5YVc1blhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ1kyOXVkbVZ5ZEZOMGNtbHVaMVJ2U0dWc2JTaGNiaUFnSUNCemIzVnlZMlZRYjJ4NWJXVnlPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2MyOTFjbU5sUjJGd1UzbHRZbTlzT2lCemRISnBibWNnZkNCdWRXeHNJRDBnYm5Wc2JGeHVJQ0FwT2lCemRISnBibWNnZTF4dUlDQWdJR2xtSUNoemIzVnlZMlZIWVhCVGVXMWliMndnUFQwOUlHNTFiR3dwWEc0Z0lDQWdJQ0J6YjNWeVkyVkhZWEJUZVcxaWIyd2dQU0IwYUdsekxtUmxabUYxYkhSSFlYQlRlVzFpYjJ3N1hHNGdJQ0FnWTI5dWMzUWdXM0J5WldacGVDd2diR1ZtZEZkeVlYQndaWElzSUhKcFoyaDBWM0poY0hCbGNpd2djRzl6ZEdacGVGMGdQU0IwYUdsekxtZGxkRWhsYkcxWGNtRndjR1Z5Y3lncE8xeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnZiblpsY25SVWIwaGxiRzFJWld4d1pYSW9jMjkxY21ObFVHOXNlVzFsY2l3Z2MyOTFjbU5sUjJGd1UzbHRZbTlzTENCd2NtVm1hWGdzSUd4bFpuUlhjbUZ3Y0dWeUxDQnlhV2RvZEZkeVlYQndaWElzSUhCdmMzUm1hWGdwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFTnZiblpsY25RZ1lTQmpiMngxYlc0Z2RHOGdTRVZNVFZ4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WnlCOElHNTFiR3g5SUhOdmRYSmpaVWRoY0ZONWJXSnZiRnh1SUNBZ0tpQkFjbVYwZFhKdUlIdEVSeTVEYjJ4MWJXNTlYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJR052Ym5abGNuUlViMGhsYkcwb2MyOTFjbU5sUjJGd1UzbHRZbTlzT2lCemRISnBibWNnZkNCdWRXeHNJRDBnYm5Wc2JDazZJRVJITGtOdmJIVnRiaUI3WEc0Z0lDQWdhV1lnS0hOdmRYSmpaVWRoY0ZONWJXSnZiQ0E5UFQwZ2JuVnNiQ2xjYmlBZ0lDQWdJSE52ZFhKalpVZGhjRk41YldKdmJDQTlJSFJvYVhNdVpHVm1ZWFZzZEVkaGNGTjViV0p2YkR0Y2JseHVJQ0FnSUdOdmJuTjBJRnR3Y21WbWFYZ3NJR3hsWm5SWGNtRndjR1Z5TENCeWFXZG9kRmR5WVhCd1pYSXNJSEJ2YzNSbWFYaGRJRDBnZEdocGN5NW5aWFJJWld4dFYzSmhjSEJsY25Nb0tUdGNibHh1SUNBZ0lHTnZibk4wSUc1bGQwTnZiSFZ0YmlBOUlIUm9hWE11WjJWMFRtVjNRMjlzZFcxdUtFNVBWRUZVU1U5T0xraEZURTBwTzF4dUlDQWdJQzh2SUdGemMybG5iaUIwYUdVZ2RtRnNkV1Z6SUhSdklIUm9aU0JsYlhCMGVTQmpiMngxYlc1Y2JpQWdJQ0J1WlhkRGIyeDFiVzR1YVc1cGRDZ29hV1I0T2lCdWRXMWlaWElwSUQwK0lIdGNiaUFnSUNBZ0lHTnZibk4wSUhOdmRYSmpaVkJ2YkhsdFpYSWdQU0IwYUdsekxtTnZiSFZ0Ymk1blpYUW9hV1I0S1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnZiblpsY25SVWIwaGxiRzFJWld4d1pYSW9jMjkxY21ObFVHOXNlVzFsY2l3Z2MyOTFjbU5sUjJGd1UzbHRZbTlzSVN3Z2NISmxabWw0TENCc1pXWjBWM0poY0hCbGNpd2djbWxuYUhSWGNtRndjR1Z5TENCd2IzTjBabWw0S1R0Y2JpQWdJQ0I5S1R0Y2JpQWdJQ0J5WlhSMWNtNGdibVYzUTI5c2RXMXVPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOdmJuWmxjblFnVTBWUVFWSkJWRTlTSUdOdmJIVnRiaUIwYnlCR1FWTlVRU0J1YjNSaGRHbHZibHh1SUNBZ0tseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaeUI4SUc1MWJHeDlJR1poYzNSaFIyRndVM2x0WW05c0lFOXdkR2x2Ym1Gc0lHZGhjQ0J6ZVcxaWIyd2dabTl5SUVaQlUxUkJYRzRnSUNBcUlFQnlaWFIxY200Z2UwUkhMa052YkhWdGJuMGdJRU52Ym5abGNuUmxaQ0JqYjJ4MWJXNWNiaUFnSUNvdlhHNGdJSEJ5YVhaaGRHVWdZMjl1ZG1WeWRGTmxjR0Z5WVhSdmNsUnZSbUZ6ZEdFb1ptRnpkR0ZIWVhCVGVXMWliMnc2SUhOMGNtbHVaeUI4SUc1MWJHd2dQU0J1ZFd4c0tUb2dSRWN1UTI5c2RXMXVJSHRjYmlBZ0lDQnBaaUFvWm1GemRHRkhZWEJUZVcxaWIyd2dQVDA5SUc1MWJHd3BYRzRnSUNBZ0lDQm1ZWE4wWVVkaGNGTjViV0p2YkNBOUlGVnVhWFJ6U0dGdVpHeGxjaTVmWkdWbVlYVnNkRWRoY0ZONWJXSnZiSE5FYVdOMExrWkJVMVJCTzF4dVhHNGdJQ0FnWTI5dWMzUWdibVYzUTI5c2RXMXVJRDBnZEdocGN5NW5aWFJPWlhkRGIyeDFiVzRvVGs5VVFWUkpUMDR1UmtGVFZFRXBPMXh1SUNBZ0lDOHZJR0Z6YzJsbmJpQjBhR1VnZG1Gc2RXVnpJSFJ2SUhSb1pTQmxiWEIwZVNCamIyeDFiVzVjYmlBZ0lDQnVaWGREYjJ4MWJXNHVhVzVwZENnb2FXUjRPaUJ1ZFcxaVpYSXBJRDArSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJSE5sY0dGeVlYUnZjbEJ2YkhsdFpYSWdQU0IwYUdsekxtTnZiSFZ0Ymk1blpYUW9hV1I0S1R0Y2JpQWdJQ0FnSUM4dklHbDBaVzF6SUdOaGJpQmlaU0J0YjI1dmJXVnljeUJ2Y2lCelpYQmhjbUYwYjNKelhHNGdJQ0FnSUNCamIyNXpkQ0J6WlhCaGNtRjBiM0pKZEdWdGMwRnljbUY1SUQwZ2RHaHBjeTV6Y0d4cGRIUmxjaWh6WlhCaGNtRjBiM0pRYjJ4NWJXVnlLVHRjYmlBZ0lDQWdJR052Ym5OMElHWmhjM1JoVFc5dWIyMWxjbk5CY25KaGVUb2djM1J5YVc1blcxMGdQU0JiWFR0Y2JpQWdJQ0FnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2MyVndZWEpoZEc5eVNYUmxiWE5CY25KaGVTNXNaVzVuZEdnN0lHa3JLeWtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JwZEdWdElEMGdjMlZ3WVhKaGRHOXlTWFJsYlhOQmNuSmhlVnRwWFR0Y2JpQWdJQ0FnSUNBZ2FXWWdLR2wwWlcwdWJHVnVaM1JvSUQwOVBTQXdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1ptRnpkR0ZOYjI1dmJXVnljMEZ5Y21GNUxuQjFjMmdvWm1GemRHRkhZWEJUZVcxaWIyd2hLVHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNocGRHVnRMbXhsYm1kMGFDQStJREVwSUh0Y2JpQWdJQ0FnSUNBZ0lDQXZMeUIwYUdVZ1kyRnpaU0J2WmlCaElHMTFiSFJwTFdOb1lYSmhZM1JsY2lCdGIyNXZiV1Z5WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYlc5dWIyMWxjaUE5SUNkYkp5QXJJR2wwWlcwZ0t5QW5YU2M3WEc0Z0lDQWdJQ0FnSUNBZ1ptRnpkR0ZOYjI1dmJXVnljMEZ5Y21GNUxuQjFjMmdvYlc5dWIyMWxjaWs3WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ1ptRnpkR0ZOYjI1dmJXVnljMEZ5Y21GNUxuQjFjMmdvYVhSbGJTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQm1ZWE4wWVUxdmJtOXRaWEp6UVhKeVlYa3VhbTlwYmlnbkp5azdYRzRnSUNBZ2ZTazdYRzRnSUNBZ2NtVjBkWEp1SUc1bGQwTnZiSFZ0Ymp0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQWdRMjl1ZG1WeWRDQklSVXhOSUdOdmJIVnRiaUIwYnlCR1FWTlVRUzlUUlZCQlVrRlVUMUpjYmlBZ0lDcGNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhSbmRFNXZkR0YwYVc5dUlDQWdJRlJoY21kbGRDQnViM1JoZEdsdmJqb2dSa0ZUVkVFZ2IzSWdVMFZRUVZKQlZFOVNYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCMFozUlRaWEJoY21GMGIzSWdJQ0JQY0hScGIyNWhiQ0IwWVhKblpYUWdjMlZ3WVhKaGRHOXlJQ2htYjNJZ1NFVk1UU0F0UGx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVp5QjhJRzUxYkd4OUlIUm5kRWRoY0ZONWJXSnZiQ0FnSUU5d2RHbHZibUZzSUhSaGNtZGxkQ0JuWVhBZ2MzbHRZbTlzWEc0Z0lDQXFJRk5GVUVGU1FWUlBVaWxjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSRWN1UTI5c2RXMXVmU0JEYjI1MlpYSjBaV1FnWTI5c2RXMXVYRzRnSUNBcUwxeHVJQ0J3Y21sMllYUmxJR052Ym5abGNuUklaV3h0S0Z4dUlDQWdJSFJuZEU1dmRHRjBhVzl1T2lCemRISnBibWNzWEc0Z0lDQWdkR2QwVTJWd1lYSmhkRzl5T2lCemRISnBibWNnUFNBbkp5eGNiaUFnSUNCMFozUkhZWEJUZVcxaWIydzZJSE4wY21sdVp5QjhJRzUxYkd3Z1BTQnVkV3hzWEc0Z0lDazZJRVJITGtOdmJIVnRiaUI3WEc0Z0lDQWdMeThnVkdocGN5Qm1kVzVqZEdsdmJpQnRkWE4wSUc1dmRDQmpiMjUwWVdsdUlHTmhiR3h6SUc5bUlHbHpSRzVoS0NrZ1lXNWtJR2x6VW01aEtDa3NJR1p2Y2x4dUlDQWdJQzh2SUhOdmRYSmpaU0JvWld4dElHTnZiSFZ0Ym5NZ2JXRjVJR052Ym5SaGFXNGdVazVCTENCRVRrRWdZVzVrSUZCVUlHRmpjbTl6Y3lCa2FXWm1aWEpsYm5RZ2NtOTNjMXh1SUNBZ0lHbG1JQ2gwWjNSSFlYQlRlVzFpYjJ3Z1BUMDlJRzUxYkd3cElIdGNiaUFnSUNBZ0lIUm5kRWRoY0ZONWJXSnZiQ0E5SUNoMGFHbHpMblJ2Um1GemRHRW9kR2QwVG05MFlYUnBiMjRnWVhNZ1RrOVVRVlJKVDA0cEtTQS9YRzRnSUNBZ0lDQWdJRlZ1YVhSelNHRnVaR3hsY2k1ZlpHVm1ZWFZzZEVkaGNGTjViV0p2YkhORWFXTjBMa1pCVTFSQklEcGNiaUFnSUNBZ0lDQWdWVzVwZEhOSVlXNWtiR1Z5TGw5a1pXWmhkV3gwUjJGd1UzbHRZbTlzYzBScFkzUXVVMFZRUVZKQlZFOVNPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2gwYUdsekxuUnZVMlZ3WVhKaGRHOXlLSFJuZEU1dmRHRjBhVzl1SUdGeklFNVBWRUZVU1U5T0tTQW1KaUIwWjNSVFpYQmhjbUYwYjNJZ1BUMDlJQ2NuS1Z4dUlDQWdJQ0FnZEdkMFUyVndZWEpoZEc5eUlEMGdkR2hwY3k1elpYQmhjbUYwYjNJN1hHNWNiaUFnSUNCamIyNXpkQ0JvWld4dFYzSmhjSEJsY25OU1pTQTlJQzhvVWx4Y0tIeEVYRndvZkZ4Y0tYeFFLUzluTzF4dUlDQWdJR052Ym5OMElHNWxkME52YkhWdGJpQTlJSFJvYVhNdVoyVjBUbVYzUTI5c2RXMXVLSFJuZEU1dmRHRjBhVzl1SUdGeklFNVBWRUZVU1U5T0tUdGNiaUFnSUNBdkx5QmhjM05wWjI0Z2RHaGxJSFpoYkhWbGN5QjBieUIwYUdVZ1pXMXdkSGtnWTI5c2RXMXVYRzRnSUNBZ2JtVjNRMjlzZFcxdUxtbHVhWFFvS0dsa2VEb2diblZ0WW1WeUtTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQm9aV3h0VUc5c2VXMWxjaUE5SUhSb2FYTXVZMjlzZFcxdUxtZGxkQ2hwWkhncE8xeHVYRzRnSUNBZ0lDQXZMeUIzWlNCallXNXViM1FnZFhObElHbHpSRzVoS0NrZ2IzSWdhWE5TYm1Fb0tTQmlaV05oZFhObElITnZkWEpqWlNCb1pXeHRJR052YkhWdGJuTWdZMkZ1WEc0Z0lDQWdJQ0F2THlCamIyNTBZV2x1SUVST1FTd2dVazVCSUdGdVpDQlFWQ0JwYmlCa2FXWm1aWEpsYm5RZ1kyVnNiSE1zSUhOdklIUm9aU0JqYjNKeVpYTndiMjVrYVc1blhHNGdJQ0FnSUNBdkx5QjBZV2R6SUdOaGJtNXZkQ0JpWlNCelpYUWdabTl5SUhSb1pTQjNhRzlzWlNCamIyeDFiVzVjYmlBZ0lDQWdJR052Ym5OMElHbHpUblZqYkdWdmRHbGtaU0E5SUdobGJHMVFiMng1YldWeUxuTjBZWEowYzFkcGRHZ29KMFJPUVNjcElIeDhJR2hsYkcxUWIyeDViV1Z5TG5OMFlYSjBjMWRwZEdnb0oxSk9RU2NwTzF4dVhHNGdJQ0FnSUNBdkx5QnBkR1Z0Y3lCallXNGdZbVVnYlc5dWIyMWxjbk1nYjNJZ2FHVnNiWE5jYmlBZ0lDQWdJR052Ym5OMElHaGxiRzFKZEdWdGMwRnljbUY1SUQwZ2RHaHBjeTV6Y0d4cGRIUmxjaWhvWld4dFVHOXNlVzFsY2lrN1hHNGdJQ0FnSUNCamIyNXpkQ0IwWjNSTmIyNXZiV1Z5YzBGeWNtRjVPaUJ6ZEhKcGJtZGJYU0E5SUZ0ZE8xeHVJQ0FnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQm9aV3h0U1hSbGJYTkJjbkpoZVM1c1pXNW5kR2c3SUdrckt5a2dlMXh1SUNBZ0lDQWdJQ0JzWlhRZ2FYUmxiU0E5SUdobGJHMUpkR1Z0YzBGeWNtRjVXMmxkTzF4dUlDQWdJQ0FnSUNCcFppQW9hWE5PZFdOc1pXOTBhV1JsS1Z4dUlDQWdJQ0FnSUNBZ0lHbDBaVzBnUFNCcGRHVnRMbkpsY0d4aFkyVW9hR1ZzYlZkeVlYQndaWEp6VW1Vc0lDY25LVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHbDBaVzBnUFQwOUlGVnVhWFJ6U0dGdVpHeGxjaTVmWkdWbVlYVnNkRWRoY0ZONWJXSnZiSE5FYVdOMExraEZURTBwSUh0Y2JpQWdJQ0FnSUNBZ0lDQjBaM1JOYjI1dmJXVnljMEZ5Y21GNUxuQjFjMmdvZEdkMFIyRndVM2x0WW05c0lTazdYRzRnSUNBZ0lDQWdJSDBnWld4elpTQnBaaUFvZEdocGN5NTBiMFpoYzNSaEtIUm5kRTV2ZEdGMGFXOXVJR0Z6SUU1UFZFRlVTVTlPS1NBbUppQnBkR1Z0TG14bGJtZDBhQ0ErSURFcElIdGNiaUFnSUNBZ0lDQWdJQ0F2THlCMGFHVWdZMkZ6WlNCdlppQmhJRzExYkhScExXTm9ZWEpoWTNSbGNpQnRiMjV2YldWeUlHTnZiblpsY25SbFpDQjBieUJHUVZOVVFWeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHMXZibTl0WlhJZ1BTQW5XeWNnS3lCcGRHVnRJQ3NnSjEwbk8xeHVJQ0FnSUNBZ0lDQWdJSFJuZEUxdmJtOXRaWEp6UVhKeVlYa3VjSFZ6YUNodGIyNXZiV1Z5S1R0Y2JpQWdJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0lDQjBaM1JOYjI1dmJXVnljMEZ5Y21GNUxuQjFjMmdvYVhSbGJTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQjBaM1JOYjI1dmJXVnljMEZ5Y21GNUxtcHZhVzRvZEdkMFUyVndZWEpoZEc5eUtUdGNiaUFnSUNCOUtUdGNiaUFnSUNCeVpYUjFjbTRnYm1WM1EyOXNkVzF1TzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCamIyNTJaWEowU0dWc2JWUnZVMlZ3WVhKaGRHOXlLQ2s2SUVSSExrTnZiSFZ0YmlCN1hHNGdJQ0FnTHk4Z1ZFOUVUem9nYVcxd2JHVnRaVzUwWVhScGIzSmxkSFZ5YmlCMGFHbHpMbWRsZEU1bGQwTnZiSFZ0YmlncE8xeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtZGxkRTVsZDBOdmJIVnRiaWhPVDFSQlZFbFBUaTVUUlZCQlVrRlVUMUlwTzF4dUlDQjlYRzVjYmlBZ0x5b3FJRVJwYzNCaGRHTm9aWElnYldWMGFHOWtJR1p2Y2lCdWIzUmhkR2x2YmlCamIyNTJaWEp6YVc5dVhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQjdUazlVUVZSSlQwNTlJSFJuZEU1dmRHRjBhVzl1SUNBZ1RtOTBZWFJwYjI0Z2QyVWdkMkZ1ZENCMGJ5QmpiMjUyWlhKMElIUnZYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuSUh3Z2JuVnNiSDBnZEdkMFUyVndZWEpoZEc5eUlDQWdVRzl6YzJsaWJHVWdjMlZ3WVhKaGRHOXlYRzRnSUNBcUlFQnlaWFIxY200Z2UwUkhMa052YkhWdGJuMGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1EyOXVkbVZ5ZEdWa0lHTnZiSFZ0Ymx4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUdOdmJuWmxjblFvZEdkMFRtOTBZWFJwYjI0NklFNVBWRUZVU1U5T0xDQjBaM1JUWlhCaGNtRjBiM0k2SUhOMGNtbHVaeUI4SUc1MWJHd2dQU0J1ZFd4c0tUb2dSRWN1UTI5c2RXMXVJSHRjYmlBZ0lDQXZMeUJ3YjNOemFXSnNaU0JsZUdObGNIUnBiMjV6WEc0Z0lDQWdhV1lnS0hSb2FYTXVibTkwWVhScGIyNGdQVDA5SUhSbmRFNXZkR0YwYVc5dUtWeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkMFozUWdibTkwWVhScGIyNGdhWE1nYVc1MllXeHBaQ2NwTzF4dUlDQWdJR2xtSUNoMGFHbHpMblJ2VTJWd1lYSmhkRzl5S0hSbmRFNXZkR0YwYVc5dUtTQW1KaUIwWjNSVFpYQmhjbUYwYjNJZ1BUMDlJRzUxYkd3cFhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjNSbmRDQnpaWEJoY21GMGIzSWdhWE1nYm05MElITndaV05wWm1sbFpDY3BPMXh1WEc0Z0lDQWdhV1lnS0hSb2FYTXVhWE5HWVhOMFlTZ3BJQ1ltSUhSb2FYTXVkRzlUWlhCaGNtRjBiM0lvZEdkMFRtOTBZWFJwYjI0cElDWW1JSFJuZEZObGNHRnlZWFJ2Y2lBaFBUMGdiblZzYkNsY2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnZiblpsY25SR1lYTjBZVlJ2VTJWd1lYSmhkRzl5S0hSbmRGTmxjR0Z5WVhSdmNpazdYRzRnSUNBZ1pXeHpaU0JwWmlBb0tIUm9hWE11YVhOR1lYTjBZU2dwSUh4OElIUm9hWE11YVhOVFpYQmhjbUYwYjNJb0tTa2dKaVlnZEdocGN5NTBiMGhsYkcwb2RHZDBUbTkwWVhScGIyNHBLVnh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WTI5dWRtVnlkRlJ2U0dWc2JTZ3BPMXh1SUNBZ0lHVnNjMlVnYVdZZ0tIUm9hWE11YVhOVFpYQmhjbUYwYjNJb0tTQW1KaUIwYUdsekxuUnZSbUZ6ZEdFb2RHZDBUbTkwWVhScGIyNHBLVnh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11WTI5dWRtVnlkRk5sY0dGeVlYUnZjbFJ2Um1GemRHRW9LVHRjYmlBZ0lDQmxiSE5sSUdsbUlDaDBhR2x6TG1selNHVnNiU2dwSUNZbUlIUm9hWE11ZEc5R1lYTjBZU2gwWjNST2IzUmhkR2x2YmlrcElDOHZJSFJvWlNCallYTmxJRzltSUVoRlRFMWNiaUFnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbU52Ym5abGNuUklaV3h0S0hSbmRFNXZkR0YwYVc5dUtUdGNiaUFnSUNCbGJITmxJQzh2SUhSb2FYTXVhWE5JWld4dEtDa2dKaVlnZEdocGN5NTBiMU5sY0dGeVlYUnZjaWgwWjNST2IzUmhkR2x2YmlsY2JpQWdJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnZiblpsY25SSVpXeHRLSFJuZEU1dmRHRjBhVzl1TENCMFozUlRaWEJoY21GMGIzSWhLVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJqYjI1emRISjFZM1J2Y2loamIydzZJRVJITGtOdmJIVnRiaWtnZTF4dUlDQWdJSE4xY0dWeUtHTnZiQ2s3WEc0Z0lIMWNibjFjYmlKZGZRPT0iLCJpbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgV2ViTG9nbyB9IGZyb20gJy4uL3ZpZXdlcnMvd2ViLWxvZ28nO1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0QWxpZ25lZFNlcXVlbmNlcyhwZXB0aWRlQ29sdW1uKSB7XG4gICAgY29uc3Qgc3BsaXR0ZXIgPSBXZWJMb2dvLmdldFNwbGl0dGVyRm9yQ29sdW1uKHBlcHRpZGVDb2x1bW4pO1xuICAgIGNvbnN0IGNvbExlbiA9IHBlcHRpZGVDb2x1bW4ubGVuZ3RoO1xuICAgIGNvbnN0IHJlc3VsdERmID0gREcuRGF0YUZyYW1lLmNyZWF0ZShjb2xMZW4pO1xuICAgIGxldCBtb25vbWVyTGlzdCA9IHNwbGl0dGVyKHBlcHRpZGVDb2x1bW4uZ2V0KDApKTtcbiAgICBjb25zdCBjb2x1bW5MaXN0ID0gW107XG4gICAgLy8gY3JlYXRlIGNvbHVtbnMgYW5kIGZpbGwgdGhlIGZpcnN0IHJvdyBmb3IgZmFzdGVyIHZhbHVlcyBmaWxsaW5nIGluIHRoZSBuZXh0IGxvb3BcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vbm9tZXJMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGNvbCA9IHJlc3VsdERmLmNvbHVtbnMuYWRkTmV3U3RyaW5nKChpICsgMSkudG9TdHJpbmcoKSk7XG4gICAgICAgIGNvbC5zZXQoMCwgbW9ub21lckxpc3RbaV0gfHwgJy0nLCBmYWxzZSk7XG4gICAgICAgIGNvbHVtbkxpc3QucHVzaChjb2wpO1xuICAgIH1cbiAgICBmb3IgKGxldCByb3dJbmRleCA9IDE7IHJvd0luZGV4IDwgY29sTGVuOyByb3dJbmRleCsrKSB7XG4gICAgICAgIG1vbm9tZXJMaXN0ID0gc3BsaXR0ZXIocGVwdGlkZUNvbHVtbi5nZXQocm93SW5kZXgpKTtcbiAgICAgICAgbW9ub21lckxpc3QuZm9yRWFjaCgobW9ub21lciwgY29sSW5kZXgpID0+IGNvbHVtbkxpc3RbY29sSW5kZXhdLnNldChyb3dJbmRleCwgbW9ub21lciB8fCAnLScsIGZhbHNlKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHREZjtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWMzQnNhWFIwWlhJdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUp6Y0d4cGRIUmxjaTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeFBRVUZQTEV0QlFVc3NSVUZCUlN4TlFVRk5MR2xDUVVGcFFpeERRVUZETzBGQlJYUkRMRTlCUVU4c1JVRkJReXhQUVVGUExFVkJRVU1zVFVGQlRTeHhRa0ZCY1VJc1EwRkJRenRCUVVVMVF5eE5RVUZOTEZWQlFWVXNjVUpCUVhGQ0xFTkJRVU1zWVVGQlowTTdTVUZEY0VVc1RVRkJUU3hSUVVGUkxFZEJRVWNzVDBGQlR5eERRVUZETEc5Q1FVRnZRaXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzBsQlF6ZEVMRTFCUVUwc1RVRkJUU3hIUVVGSExHRkJRV0VzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZEY0VNc1RVRkJUU3hSUVVGUkxFZEJRVWNzUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRE4wTXNTVUZCU1N4WFFVRlhMRWRCUVVjc1VVRkJVU3hEUVVGRExHRkJRV0VzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkZMRU5CUVVNc1EwRkJRenRKUVVOc1JDeE5RVUZOTEZWQlFWVXNSMEZCZDBJc1JVRkJSU3hEUVVGRE8wbEJSVE5ETEcxR1FVRnRSanRKUVVOdVJpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVjBGQlZ5eERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSVHRSUVVNelF5eE5RVUZOTEVkQlFVY3NSMEZCUnl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFVkJRVVVzUTBGQlF5eERRVUZETzFGQlF6bEVMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hIUVVGSExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZEZWtNc1ZVRkJWU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0TFFVTjBRanRKUVVWRUxFdEJRVXNzU1VGQlNTeFJRVUZSTEVkQlFVY3NRMEZCUXl4RlFVRkZMRkZCUVZFc1IwRkJSeXhOUVVGTkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVWQlFVVTdVVUZEY0VRc1YwRkJWeXhIUVVGSExGRkJRVkVzUTBGQlF5eGhRVUZoTEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJSU3hEUVVGRExFTkJRVU03VVVGRGNrUXNWMEZCVnl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeFJRVUZSTEVWQlFVVXNSVUZCUlN4RFFVRkRMRlZCUVZVc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RlFVRkZMRTlCUVU4c1NVRkJTU3hIUVVGSExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0TFFVTjJSenRKUVVWRUxFOUJRVThzVVVGQlVTeERRVUZETzBGQlEyeENMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1WEc1cGJYQnZjblFnZTFkbFlreHZaMjk5SUdaeWIyMGdKeTR1TDNacFpYZGxjbk12ZDJWaUxXeHZaMjhuTzF4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2MzQnNhWFJCYkdsbmJtVmtVMlZ4ZFdWdVkyVnpLSEJsY0hScFpHVkRiMngxYlc0NklFUkhMa052YkhWdGJqeHpkSEpwYm1jK0tUb2dSRWN1UkdGMFlVWnlZVzFsSUh0Y2JpQWdZMjl1YzNRZ2MzQnNhWFIwWlhJZ1BTQlhaV0pNYjJkdkxtZGxkRk53YkdsMGRHVnlSbTl5UTI5c2RXMXVLSEJsY0hScFpHVkRiMngxYlc0cE8xeHVJQ0JqYjI1emRDQmpiMnhNWlc0Z1BTQndaWEIwYVdSbFEyOXNkVzF1TG14bGJtZDBhRHRjYmlBZ1kyOXVjM1FnY21WemRXeDBSR1lnUFNCRVJ5NUVZWFJoUm5KaGJXVXVZM0psWVhSbEtHTnZiRXhsYmlrN1hHNGdJR3hsZENCdGIyNXZiV1Z5VEdsemRDQTlJSE53YkdsMGRHVnlLSEJsY0hScFpHVkRiMngxYlc0dVoyVjBLREFwSVNrN1hHNGdJR052Ym5OMElHTnZiSFZ0Ymt4cGMzUTZJRVJITGtOdmJIVnRianh6ZEhKcGJtYytXMTBnUFNCYlhUdGNibHh1SUNBdkx5QmpjbVZoZEdVZ1kyOXNkVzF1Y3lCaGJtUWdabWxzYkNCMGFHVWdabWx5YzNRZ2NtOTNJR1p2Y2lCbVlYTjBaWElnZG1Gc2RXVnpJR1pwYkd4cGJtY2dhVzRnZEdobElHNWxlSFFnYkc5dmNGeHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUcxdmJtOXRaWEpNYVhOMExteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdZMjl1YzNRZ1kyOXNJRDBnY21WemRXeDBSR1l1WTI5c2RXMXVjeTVoWkdST1pYZFRkSEpwYm1jb0tHa2dLeUF4S1M1MGIxTjBjbWx1WnlncEtUdGNiaUFnSUNCamIyd3VjMlYwS0RBc0lHMXZibTl0WlhKTWFYTjBXMmxkSUh4OElDY3RKeXdnWm1Gc2MyVXBPMXh1SUNBZ0lHTnZiSFZ0Ymt4cGMzUXVjSFZ6YUNoamIyd3BPMXh1SUNCOVhHNWNiaUFnWm05eUlDaHNaWFFnY205M1NXNWtaWGdnUFNBeE95QnliM2RKYm1SbGVDQThJR052YkV4bGJqc2djbTkzU1c1a1pYZ3JLeWtnZTF4dUlDQWdJRzF2Ym05dFpYSk1hWE4wSUQwZ2MzQnNhWFIwWlhJb2NHVndkR2xrWlVOdmJIVnRiaTVuWlhRb2NtOTNTVzVrWlhncElTazdYRzRnSUNBZ2JXOXViMjFsY2t4cGMzUXVabTl5UldGamFDZ29iVzl1YjIxbGNpd2dZMjlzU1c1a1pYZ3BJRDArSUdOdmJIVnRia3hwYzNSYlkyOXNTVzVrWlhoZExuTmxkQ2h5YjNkSmJtUmxlQ3dnYlc5dWIyMWxjaUI4ZkNBbkxTY3NJR1poYkhObEtTazdYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdjbVZ6ZFd4MFJHWTdYRzU5WEc0Z0lDSmRmUT09IiwiaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7IFdlYkxvZ28gfSBmcm9tICcuLi92aWV3ZXJzL3dlYi1sb2dvJztcbi8qKiBDbGFzcyBmb3IgaGFuZGxpbmcgbm90YXRpb24gdW5pdHMgaW4gTWFjcm9tb2xlY3VsZSBjb2x1bW5zICovXG5leHBvcnQgY2xhc3MgVW5pdHNIYW5kbGVyIHtcbiAgICBjb25zdHJ1Y3Rvcihjb2wpIHtcbiAgICAgICAgdGhpcy5fY29sdW1uID0gY29sO1xuICAgICAgICBjb25zdCB1bml0cyA9IHRoaXMuX2NvbHVtbi50YWdzW0RHLlRBR1MuVU5JVFNdO1xuICAgICAgICBpZiAodW5pdHMgIT09IG51bGwpXG4gICAgICAgICAgICB0aGlzLl91bml0cyA9IHVuaXRzO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuaXRzIGFyZSBub3Qgc3BlY2lmaWVkIGluIGNvbHVtbicpO1xuICAgICAgICB0aGlzLl9ub3RhdGlvbiA9IHRoaXMuZ2V0Tm90YXRpb24oKTtcbiAgICAgICAgdGhpcy5fZGVmYXVsdEdhcFN5bWJvbCA9ICh0aGlzLmlzRmFzdGEoKSkgPyBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5GQVNUQSA6XG4gICAgICAgICAgICAodGhpcy5pc0hlbG0oKSkgPyBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5IRUxNIDpcbiAgICAgICAgICAgICAgICBVbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdC5TRVBBUkFUT1I7XG4gICAgICAgIGlmICghdGhpcy5jb2x1bW4udGFncy5oYXMoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXRTaXplKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNIZWxtKCkpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGb3IgY29sdW1uICcke3RoaXMuY29sdW1uLm5hbWV9JyBvZiBub3RhdGlvbiAnJHt0aGlzLm5vdGF0aW9ufScgYCArXG4gICAgICAgICAgICAgICAgICAgIGB0YWcgJyR7VW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXRTaXplfScgaXMgbWFuZGF0b3J5LmApO1xuICAgICAgICAgICAgZWxzZSBpZiAoWydVTiddLmluY2x1ZGVzKHRoaXMuYWxwaGFiZXQpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRm9yIGNvbHVtbiAnJHt0aGlzLmNvbHVtbi5uYW1lfScgb2YgYWxwaGFiZXQgJyR7dGhpcy5hbHBoYWJldH0nIGAgK1xuICAgICAgICAgICAgICAgICAgICBgdGFnICcke1VuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0U2l6ZX0nIGlzIG1hbmRhdG9yeS5gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuY29sdW1uLnRhZ3MuaGFzKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0hlbG0oKSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvciBjb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIG9mIG5vdGF0aW9uICcke3RoaXMubm90YXRpb259JyBgICtcbiAgICAgICAgICAgICAgICAgICAgYHRhZyAnJHtVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldElzTXVsdGljaGFyfScgaXMgbWFuZGF0b3J5LmApO1xuICAgICAgICAgICAgZWxzZSBpZiAoWydVTiddLmluY2x1ZGVzKHRoaXMuYWxwaGFiZXQpKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRm9yIGNvbHVtbiAnJHt0aGlzLmNvbHVtbi5uYW1lfScgb2YgYWxwaGFiZXQgJyR7dGhpcy5hbHBoYWJldH0nIGAgK1xuICAgICAgICAgICAgICAgICAgICBgdGFnICcke1VuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0SXNNdWx0aWNoYXJ9JyBpcyBtYW5kYXRvcnkuYCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3RhdGljIHNldFVuaXRzVG9GYXN0YUNvbHVtbihjb2wpIHtcbiAgICAgICAgaWYgKGNvbC5zZW1UeXBlICE9PSBERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEUpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Zhc3RhIGNvbHVtbiBtdXN0IGJlIE1BQ1JPTU9MRUNVTEUnKTtcbiAgICAgICAgY29uc3Qgc3RhdHMgPSBXZWJMb2dvLmdldFN0YXRzKGNvbCwgNSwgV2ViTG9nby5zcGxpdHRlckFzRmFzdGEpO1xuICAgICAgICBjb25zdCBzZXFUeXBlID0gc3RhdHMuc2FtZUxlbmd0aCA/ICdTRVEuTVNBJyA6ICdTRVEnO1xuICAgICAgICBjb25zdCBhbHBoYWJldENhbmRpZGF0ZXMgPSBbXG4gICAgICAgICAgICBbXCJQVFwiIC8qIEFMUEhBQkVULlBUICovLCBVbml0c0hhbmRsZXIuUGVwdGlkZUZhc3RhQWxwaGFiZXRdLFxuICAgICAgICAgICAgW1wiRE5BXCIgLyogQUxQSEFCRVQuRE5BICovLCBVbml0c0hhbmRsZXIuRG5hRmFzdGFBbHBoYWJldF0sXG4gICAgICAgICAgICBbXCJSTkFcIiAvKiBBTFBIQUJFVC5STkEgKi8sIFVuaXRzSGFuZGxlci5SbmFGYXN0YUFscGhhYmV0XSxcbiAgICAgICAgXTtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIGxpa2VsaWhvb2RzIGZvciBhbHBoYWJldF9jYW5kaWRhdGVzXG4gICAgICAgIGNvbnN0IGFscGhhYmV0Q2FuZGlkYXRlc1NpbSA9IGFscGhhYmV0Q2FuZGlkYXRlcy5tYXAoKGMpID0+IFdlYkxvZ28uZ2V0QWxwaGFiZXRTaW1pbGFyaXR5KHN0YXRzLmZyZXEsIGNbMV0pKTtcbiAgICAgICAgY29uc3QgbWF4Q29zID0gTWF0aC5tYXgoLi4uYWxwaGFiZXRDYW5kaWRhdGVzU2ltKTtcbiAgICAgICAgY29uc3QgYWxwaGFiZXQgPSBtYXhDb3MgPiAwLjY1ID8gYWxwaGFiZXRDYW5kaWRhdGVzW2FscGhhYmV0Q2FuZGlkYXRlc1NpbS5pbmRleE9mKG1heENvcyldWzBdIDogJ1VOJztcbiAgICAgICAgY29sLnNldFRhZyhERy5UQUdTLlVOSVRTLCBcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8pO1xuICAgICAgICBjb2wuc2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFsaWduZWQsIHNlcVR5cGUpO1xuICAgICAgICBjb2wuc2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0LCBhbHBoYWJldCk7XG4gICAgfVxuICAgIGdldCB1bml0cygpIHsgcmV0dXJuIHRoaXMuX3VuaXRzOyB9XG4gICAgZ2V0IGNvbHVtbigpIHsgcmV0dXJuIHRoaXMuX2NvbHVtbjsgfVxuICAgIGdldCBub3RhdGlvbigpIHsgcmV0dXJuIHRoaXMuX25vdGF0aW9uOyB9XG4gICAgZ2V0IGRlZmF1bHRHYXBTeW1ib2woKSB7IHJldHVybiB0aGlzLl9kZWZhdWx0R2FwU3ltYm9sOyB9XG4gICAgZ2V0IHNlcGFyYXRvcigpIHtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gdGhpcy5jb2x1bW4uZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLnNlcGFyYXRvcik7XG4gICAgICAgIGlmIChzZXBhcmF0b3IgIT09IG51bGwpXG4gICAgICAgICAgICByZXR1cm4gc2VwYXJhdG9yO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlcGFyYXRvciBub3Qgc2V0Jyk7XG4gICAgfVxuICAgIGdldCBhbGlnbmVkKCkge1xuICAgICAgICBjb25zdCBhbGlnbmVkID0gdGhpcy5jb2x1bW4uZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFsaWduZWQpO1xuICAgICAgICBpZiAoYWxpZ25lZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGFsaWduZWQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RhZyBhbGlnbmVkIG5vdCBzZXQnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKiogQWxwaGFiZXQgbmFtZSAodXBwZXIgY2FzZSkgKi9cbiAgICBnZXQgYWxwaGFiZXQoKSB7XG4gICAgICAgIGNvbnN0IGFscGhhYmV0ID0gdGhpcy5jb2x1bW4uZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0KTtcbiAgICAgICAgaWYgKGFscGhhYmV0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gYWxwaGFiZXQudG9VcHBlckNhc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVGFnIGFscGhhYmV0IG5vdCBzZXQnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXRBbHBoYWJldFNpemUoKSB7XG4gICAgICAgIGlmICh0aGlzLm5vdGF0aW9uID09IFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi8gfHwgdGhpcy5hbHBoYWJldCA9PSBcIlVOXCIgLyogQUxQSEFCRVQuVU4gKi8pIHtcbiAgICAgICAgICAgIGNvbnN0IGFscGhhYmV0U2l6ZSA9IHBhcnNlSW50KHRoaXMuY29sdW1uLmdldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldFNpemUpKTtcbiAgICAgICAgICAgIHJldHVybiBhbHBoYWJldFNpemU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMuYWxwaGFiZXQpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiUFRcIiAvKiBBTFBIQUJFVC5QVCAqLzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDIwO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJETkFcIiAvKiBBTFBIQUJFVC5ETkEgKi86XG4gICAgICAgICAgICAgICAgY2FzZSBcIlJOQVwiIC8qIEFMUEhBQkVULlJOQSAqLzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDQ7XG4gICAgICAgICAgICAgICAgY2FzZSAnTlQnOlxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFVuZXhwZWN0ZWQgYWxwaGFiZXQgJ05UJy5gKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDQ7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGFscGhhYmV0ICcke3RoaXMuYWxwaGFiZXR9Jy5gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXRBbHBoYWJldElzTXVsdGljaGFyKCkge1xuICAgICAgICBpZiAodGhpcy5ub3RhdGlvbiA9PSBcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovIHx8IHRoaXMuYWxwaGFiZXQgPT0gXCJVTlwiIC8qIEFMUEhBQkVULlVOICovKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4uZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIpID09ICd0cnVlJztcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpc0Zhc3RhKCkgeyByZXR1cm4gdGhpcy5ub3RhdGlvbiA9PT0gXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovOyB9XG4gICAgaXNTZXBhcmF0b3IoKSB7IHJldHVybiB0aGlzLm5vdGF0aW9uID09PSBcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLzsgfVxuICAgIGlzSGVsbSgpIHsgcmV0dXJuIHRoaXMubm90YXRpb24gPT09IFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi87IH1cbiAgICBpc1JuYSgpIHsgcmV0dXJuIHRoaXMuYWxwaGFiZXQgPT09ICdSTkEnOyB9XG4gICAgaXNEbmEoKSB7IHJldHVybiB0aGlzLmFscGhhYmV0ID09PSAnRE5BJzsgfVxuICAgIGlzUGVwdGlkZSgpIHsgcmV0dXJuIHRoaXMuYWxwaGFiZXQgPT09ICdQVCc7IH1cbiAgICAvKiogQXNzb2NpYXRlIG5vdGF0aW9uIHR5cGVzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgdW5pdHMgKi9cbiAgICAvKipcbiAgICAgKiBAcmV0dXJuIHtOT1RBVElPTn0gICAgIE5vdGF0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgdW5pdHMgdHlwZVxuICAgICAqL1xuICAgIGdldE5vdGF0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy51bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJmYXN0YVwiIC8qIE5PVEFUSU9OLkZBU1RBICovKSlcbiAgICAgICAgICAgIHJldHVybiBcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi87XG4gICAgICAgIGVsc2UgaWYgKHRoaXMudW5pdHMudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovKSlcbiAgICAgICAgICAgIHJldHVybiBcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLztcbiAgICAgICAgZWxzZSBpZiAodGhpcy51bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLykpXG4gICAgICAgICAgICByZXR1cm4gXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLztcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2x1bW4gJyR7dGhpcy5jb2x1bW4ubmFtZX0nIGhhcyB1bmV4cGVjdGVkIG5vdGF0aW9uICcke3RoaXMudW5pdHN9Jy5gKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IGVtcHR5IGNvbHVtbiBvZiB0aGUgc3BlY2lmaWVkIG5vdGF0aW9uIHR5cGUgYW5kIHRoZSBzYW1lXG4gICAgICogbGVuZ3RoIGFzIGNvbHVtblxuICAgICAqXG4gICAgICogQHBhcmFtIHtOT1RBVElPTn0gdGFyZ2V0Tm90YXRpb25cbiAgICAgKiBAcmV0dXJuIHtERy5Db2x1bW59XG4gICAgICovXG4gICAgZ2V0TmV3Q29sdW1uKHRhcmdldE5vdGF0aW9uKSB7XG4gICAgICAgIGNvbnN0IGNvbCA9IHRoaXMuY29sdW1uO1xuICAgICAgICBjb25zdCBsZW4gPSBjb2wubGVuZ3RoO1xuICAgICAgICBjb25zdCBuYW1lID0gdGFyZ2V0Tm90YXRpb24udG9Mb3dlckNhc2UoKSArICcoJyArIGNvbC5uYW1lICsgJyknO1xuICAgICAgICBjb25zdCBuZXdDb2xOYW1lID0gY29sLmRhdGFGcmFtZS5jb2x1bW5zLmdldFVudXNlZE5hbWUobmFtZSk7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IERHLkNvbHVtbi5mcm9tTGlzdCgnc3RyaW5nJywgbmV3Q29sTmFtZSwgbmV3IEFycmF5KGxlbikuZmlsbCgnJykpO1xuICAgICAgICBuZXdDb2x1bW4uc2VtVHlwZSA9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLlVOSVRTLCB0aGlzLm5vdGF0aW9uKTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLkNFTExfUkVOREVSRVIsICdNYWNyb21vbGVjdWxlJyk7XG4gICAgICAgIGNvbnN0IHNyY0FscGhhYmV0ID0gY29sLmdldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldCk7XG4gICAgICAgIGlmIChzcmNBbHBoYWJldClcbiAgICAgICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXQsIHNyY0FscGhhYmV0KTtcbiAgICAgICAgY29uc3Qgc3JjQWxwaGFiZXRTaXplID0gY29sLmdldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldFNpemUpO1xuICAgICAgICBpZiAoc3JjQWxwaGFiZXRTaXplKVxuICAgICAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldFNpemUsIHNyY0FscGhhYmV0U2l6ZSk7XG4gICAgICAgIGNvbnN0IHNyY0FscGhhYmV0SXNNdWx0aWNoYXIgPSBjb2wuZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFscGhhYmV0SXNNdWx0aWNoYXIpO1xuICAgICAgICBpZiAoc3JjQWxwaGFiZXRJc011bHRpY2hhcilcbiAgICAgICAgICAgIG5ld0NvbHVtbi5zZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXRJc011bHRpY2hhciwgc3JjQWxwaGFiZXRJc011bHRpY2hhcik7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyBlbXB0eSBjb2x1bW4gdXNpbmcgdGVtcGxhdGVDb2wgYXMgYSB0ZW1wbGF0ZVxuICAgICAqXG4gICAgICogQHBhcmFtIHtERy5Db2x1bW59IHRlbXBsYXRlQ29sICB0aGUgcHJvcGVydGllcyBhbmQgdW5pdHMgb2YgdGhpcyBjb2x1bW4gYXJlIHVzZWQgYXMgYVxuICAgICAqIHRlbXBsYXRlIHRvIGJ1aWxkIHRoZSBuZXcgb25lXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXROZXdDb2x1bW4odGVtcGxhdGVDb2wpIHtcbiAgICAgICAgY29uc3QgY29sID0gbmV3IFVuaXRzSGFuZGxlcih0ZW1wbGF0ZUNvbCk7XG4gICAgICAgIGNvbnN0IHRhcmdldE5vdGF0aW9uID0gY29sLm5vdGF0aW9uO1xuICAgICAgICByZXR1cm4gY29sLmdldE5ld0NvbHVtbih0YXJnZXROb3RhdGlvbik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEEgaGVscGVyIGZ1bmN0aW9uIGNoZWNraW5nIHRoZSB2YWxpZGl0eSBvZiB0aGUgJ3VuaXRzJyBzdHJpbmdcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1bml0cyAgdGhlIHN0cmluZyB0byBiZSB2YWxpZGF0ZWRcbiAgICAgKiBAcmV0dXJuIHtib29sZWFufVxuICAgICAqL1xuICAgIHN0YXRpYyB1bml0c1N0cmluZ0lzVmFsaWQodW5pdHMpIHtcbiAgICAgICAgdW5pdHMgPSB1bml0cy50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBwcmVmaXhlcyA9IFtcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8sIFwic2VwYXJhdG9yXCIgLyogTk9UQVRJT04uU0VQQVJBVE9SICovLCBcImhlbG1cIiAvKiBOT1RBVElPTi5IRUxNICovXTtcbiAgICAgICAgY29uc3QgcG9zdGZpeGVzID0gWydybmEnLCAnZG5hJywgJ3B0J107XG4gICAgICAgIGNvbnN0IHByZWZpeENyaXRlcmlvbiA9IHByZWZpeGVzLnNvbWUoKHApID0+IHVuaXRzLnN0YXJ0c1dpdGgocC50b0xvd2VyQ2FzZSgpKSk7XG4gICAgICAgIHJldHVybiBwcmVmaXhDcml0ZXJpb247XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdCBhIG5ldyBjb2x1bW4gb2Ygc2VtYW50aWMgdHlwZSBNQUNST01PTEVDVUxFIGZyb20gdGhlIGxpc3Qgb2ZcbiAgICAgKiBzcGVjaWZpZWQgcGFyYW1ldGVyc1xuICAgICAqXG4gICAgICogQHBhcmFtIHtudW1iZXJ9ICAgIGxlbiAgdGhlIGxlbmd0aCBvZiB0aGUgbmV3IGNvbHVtblxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSAgICBuYW1lICB0aGUgbmFtZSBvZiB0aGUgbmV3IGNvbHVtblxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSAgICB1bml0cyAgdGhlIHVuaXRzIG9mIHRoZSBuZXcgY29sdW1uXG4gICAgICogQHJldHVybiB7REcuQ29sdW1ufVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXROZXdDb2x1bW5Gcm9tUGFyYW1zKGxlbiwgbmFtZSwgdW5pdHMpIHtcbiAgICAgICAgLy8gV0FSTklORzogaW4gdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBpcyBpbXBvc3NpYmxlIHRvIHZlcmlmeSB0aGUgdW5pcXVlbmVzc1xuICAgICAgICAvLyBvZiB0aGUgbmV3IGNvbHVtbidzIG5hbWVcbiAgICAgICAgLy8gVE9ETzogdmVyaWZ5IHRoZSB2YWxpZGl0eSBvZiB1bml0cyBwYXJhbWV0ZXJcbiAgICAgICAgaWYgKCFVbml0c0hhbmRsZXIudW5pdHNTdHJpbmdJc1ZhbGlkKHVuaXRzKSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBmb3JtYXQgb2YgXFwndW5pdHNcXCcgcGFyYW1ldGVyJyk7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbiA9IERHLkNvbHVtbi5mcm9tTGlzdCgnc3RyaW5nJywgbmFtZSwgbmV3IEFycmF5KGxlbikuZmlsbCgnJykpO1xuICAgICAgICBuZXdDb2x1bW4uc2VtVHlwZSA9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRTtcbiAgICAgICAgbmV3Q29sdW1uLnNldFRhZyhERy5UQUdTLlVOSVRTLCB1bml0cyk7XG4gICAgICAgIHJldHVybiBuZXdDb2x1bW47XG4gICAgfVxufVxuVW5pdHNIYW5kbGVyLlRBR1MgPSB7XG4gICAgYWxpZ25lZDogJ2FsaWduZWQnLFxuICAgIGFscGhhYmV0OiAnYWxwaGFiZXQnLFxuICAgIGFscGhhYmV0U2l6ZTogJy5hbHBoYWJldFNpemUnLFxuICAgIGFscGhhYmV0SXNNdWx0aWNoYXI6ICcuYWxwaGFiZXRJc011bHRpY2hhcicsXG4gICAgc2VwYXJhdG9yOiAnc2VwYXJhdG9yJyxcbn07XG5Vbml0c0hhbmRsZXIuX2RlZmF1bHRHYXBTeW1ib2xzRGljdCA9IHtcbiAgICBIRUxNOiAnKicsXG4gICAgU0VQQVJBVE9SOiAnJyxcbiAgICBGQVNUQTogJy0nLFxufTtcblVuaXRzSGFuZGxlci5QZXB0aWRlRmFzdGFBbHBoYWJldCA9IG5ldyBTZXQoW1xuICAgICdHJywgJ0wnLCAnWScsICdTJywgJ0UnLCAnUScsICdEJywgJ04nLCAnRicsICdBJyxcbiAgICAnSycsICdSJywgJ0gnLCAnQycsICdWJywgJ1AnLCAnVycsICdJJywgJ00nLCAnVCcsXG5dKTtcblVuaXRzSGFuZGxlci5EbmFGYXN0YUFscGhhYmV0ID0gbmV3IFNldChbJ0EnLCAnQycsICdHJywgJ1QnXSk7XG5Vbml0c0hhbmRsZXIuUm5hRmFzdGFBbHBoYWJldCA9IG5ldyBTZXQoWydBJywgJ0MnLCAnRycsICdVJ10pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZFc1cGRITXRhR0Z1Wkd4bGNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW5WdWFYUnpMV2hoYm1Sc1pYSXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1QwRkJUeXhMUVVGTExFVkJRVVVzVFVGQlRTeHBRa0ZCYVVJc1EwRkJRenRCUVVsMFF5eFBRVUZQTEVWQlFVTXNUMEZCVHl4RlFVRmpMRTFCUVUwc2NVSkJRWEZDTEVOQlFVTTdRVUZuUW5wRUxHbEZRVUZwUlR0QlFVTnFSU3hOUVVGTkxFOUJRVThzV1VGQldUdEpRV2xQZGtJc1dVRkJiVUlzUjBGQll6dFJRVU12UWl4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFZEJRVWNzUTBGQlF6dFJRVU51UWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlF5OURMRWxCUVVrc1MwRkJTeXhMUVVGTExFbEJRVWs3V1VGRGFFSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhMUVVGTExFTkJRVU03TzFsQlJYQkNMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zYlVOQlFXMURMRU5CUVVNc1EwRkJRenRSUVVOMlJDeEpRVUZKTEVOQlFVTXNVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFJRVU53UXl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMSE5DUVVGelFpeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUTNKR0xFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGbEJRVmtzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dG5Ra0ZETVVRc1dVRkJXU3hEUVVGRExITkNRVUZ6UWl4RFFVRkRMRk5CUVZNc1EwRkJRenRSUVVWc1JDeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVU3V1VGRGVrUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRk8yZENRVU5tTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc1pVRkJaU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NhMEpCUVd0Q0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVsQlFVazdiMEpCUTJoR0xGRkJRVkVzV1VGQldTeERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdhVUpCUTNoRUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dG5Ra0ZEY2tNc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eGxRVUZsTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hyUWtGQmEwSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1NVRkJTVHR2UWtGRGFFWXNVVUZCVVN4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzYVVKQlFXbENMRU5CUVVNc1EwRkJRenRUUVVNNVJEdFJRVVZFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4RlFVRkZPMWxCUTJoRkxFbEJRVWtzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlR0blFrRkRaaXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEdWQlFXVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxHdENRVUZyUWl4SlFVRkpMRU5CUVVNc1VVRkJVU3hKUVVGSk8yOUNRVU5vUml4UlFVRlJMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zYlVKQlFXMUNMR2xDUVVGcFFpeERRVUZETEVOQlFVTTdhVUpCUXk5RUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dG5Ra0ZEY2tNc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eGxRVUZsTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hyUWtGQmEwSXNTVUZCU1N4RFFVRkRMRkZCUVZFc1NVRkJTVHR2UWtGRGFFWXNVVUZCVVN4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4cFFrRkJhVUlzUTBGQlF5eERRVUZETzFOQlEzSkZPMGxCUTBnc1EwRkJRenRKUVhCUFRTeE5RVUZOTEVOQlFVTXNjVUpCUVhGQ0xFTkJRVU1zUjBGQll6dFJRVU5vUkN4SlFVRkpMRWRCUVVjc1EwRkJReXhQUVVGUExFdEJRVXNzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4aFFVRmhPMWxCUXpGRExFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNiME5CUVc5RExFTkJRVU1zUTBGQlF6dFJRVVY0UkN4TlFVRk5MRXRCUVVzc1IwRkJaMElzVDBGQlR5eERRVUZETEZGQlFWRXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhGUVVGRkxFOUJRVThzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXp0UlFVTTNSU3hOUVVGTkxFOUJRVThzUjBGQlJ5eExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXp0UlFVVnlSQ3hOUVVGTkxHdENRVUZyUWl4SFFVRTBRanRaUVVOc1JDeDVRa0ZCWXl4WlFVRlpMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTTdXVUZEYUVRc01rSkJRV1VzV1VGQldTeERRVUZETEdkQ1FVRm5RaXhEUVVGRE8xbEJRemRETERKQ1FVRmxMRmxCUVZrc1EwRkJReXhuUWtGQlowSXNRMEZCUXp0VFFVTTVReXhEUVVGRE8xRkJSVVlzWjBSQlFXZEVPMUZCUTJoRUxFMUJRVTBzY1VKQlFYRkNMRWRCUVdFc2EwSkJRV3RDTEVOQlFVTXNSMEZCUnl4RFFVTTFSQ3hEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMSEZDUVVGeFFpeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTXhSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXp0UlFVTnNSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRPMUZCUlhKSExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExDdENRVUZwUWl4RFFVRkRPMUZCUXpGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZETDBNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGQlF6dEpRVU51UkN4RFFVRkRPMGxCUlVRc1NVRkJZeXhMUVVGTExFdEJRV0VzVDBGQlR5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWeVJDeEpRVUZqTEUxQlFVMHNTMEZCWjBJc1QwRkJUeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVVXhSQ3hKUVVGWExGRkJRVkVzUzBGQlpTeFBRVUZQTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSVEZFTEVsQlFWY3NaMEpCUVdkQ0xFdEJRV0VzVDBGQlR5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJYaEZMRWxCUVZjc1UwRkJVenRSUVVOc1FpeE5RVUZOTEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJRMnhGTEVsQlFVa3NVMEZCVXl4TFFVRkxMRWxCUVVrN1dVRkRjRUlzVDBGQlR5eFRRVUZUTEVOQlFVTTdPMWxCUldwQ0xFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dEpRVU42UXl4RFFVRkRPMGxCUlVRc1NVRkJWeXhQUVVGUE8xRkJRMmhDTEUxQlFVMHNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRE9VUXNTVUZCU1N4UFFVRlBMRXRCUVVzc1NVRkJTU3hGUVVGRk8xbEJRM0JDTEU5QlFVOHNUMEZCVHl4RFFVRkRPMU5CUTJoQ08yRkJRVTA3V1VGRFRDeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMSEZDUVVGeFFpeERRVUZETEVOQlFVTTdVMEZEZUVNN1NVRkRTQ3hEUVVGRE8wbEJSVVFzYVVOQlFXbERPMGxCUTJwRExFbEJRVmNzVVVGQlVUdFJRVU5xUWl4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlEyaEZMRWxCUVVrc1VVRkJVU3hMUVVGTExFbEJRVWtzUlVGQlJUdFpRVU55UWl4UFFVRlBMRkZCUVZFc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFRRVU12UWp0aFFVRk5PMWxCUTB3c1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhEUVVGRE8xTkJRM3BETzBsQlEwZ3NRMEZCUXp0SlFVVk5MR1ZCUVdVN1VVRkRjRUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNVVUZCVVN3NFFrRkJhVUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNVVUZCVVN3d1FrRkJaU3hGUVVGRk8xbEJRMnhGTEUxQlFVMHNXVUZCV1N4SFFVRkhMRkZCUVZFc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEYkVZc1QwRkJUeXhaUVVGWkxFTkJRVU03VTBGRGNrSTdZVUZCVFR0WlFVTk1MRkZCUVZFc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJUdG5Ra0ZEZGtJN2IwSkJRMFVzVDBGQlR5eEZRVUZGTEVOQlFVTTdaMEpCUTFvc09FSkJRV3RDTzJkQ1FVTnNRanR2UWtGRFJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0blFrRkRXQ3hMUVVGTExFbEJRVWs3YjBKQlExQXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXd5UWtGQk1rSXNRMEZCUXl4RFFVRkRPMjlDUVVNeFF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0blFrRkRXRHR2UWtGRFJTeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMSGRDUVVGM1FpeEpRVUZKTEVOQlFVTXNVVUZCVVN4SlFVRkpMRU5CUVVNc1EwRkJRenRoUVVNMVJEdFRRVU5HTzBsQlEwZ3NRMEZCUXp0SlFVVk5MSE5DUVVGelFqdFJRVU16UWl4SlFVRkpMRWxCUVVrc1EwRkJReXhSUVVGUkxEaENRVUZwUWl4SlFVRkpMRWxCUVVrc1EwRkJReXhSUVVGUkxEQkNRVUZsTEVWQlFVVTdXVUZEYkVVc1QwRkJUeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRWxCUVVrc1RVRkJUU3hEUVVGRE8xTkJRelZGTzJGQlFVMDdXVUZEVEN4UFFVRlBMRXRCUVVzc1EwRkJRenRUUVVOa08wbEJRMGdzUTBGQlF6dEpRVVZOTEU5QlFVOHNTMEZCWXl4UFFVRlBMRWxCUVVrc1EwRkJReXhSUVVGUkxHbERRVUZ0UWl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVVdlJDeFhRVUZYTEV0QlFXTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1VVRkJVU3g1UTBGQmRVSXNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZka1VzVFVGQlRTeExRVUZqTEU5QlFVOHNTVUZCU1N4RFFVRkRMRkZCUVZFc0swSkJRV3RDTEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlRkRUxFdEJRVXNzUzBGQll5eFBRVUZQTEVsQlFVa3NRMEZCUXl4UlFVRlJMRXRCUVVzc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVZ3UkN4TFFVRkxMRXRCUVdNc1QwRkJUeXhKUVVGSkxFTkJRVU1zVVVGQlVTeExRVUZMTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZjRVFzVTBGQlV5eExRVUZqTEU5QlFVOHNTVUZCU1N4RFFVRkRMRkZCUVZFc1MwRkJTeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJUbEVMRFJFUVVFMFJEdEpRVU0xUkRzN1QwRkZSenRKUVVOUExGZEJRVmM3VVVGRGJrSXNTVUZCU1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEZWQlFWVXNPRUpCUVdkQ08xbEJRM0pFTEc5RFFVRnpRanRoUVVOdVFpeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU1zVlVGQlZTeHpRMEZCYjBJN1dVRkRPVVFzTkVOQlFUQkNPMkZCUTNaQ0xFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhWUVVGVkxEUkNRVUZsTzFsQlEzcEVMR3REUVVGeFFqczdXVUZGY2tJc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eFhRVUZYTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3c0UWtGQk9FSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRE4wWXNRMEZCUXp0SlFVVkVPenM3T3pzN1QwRk5SenRKUVVOUExGbEJRVmtzUTBGQlF5eGpRVUYzUWp0UlFVTTNReXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRPMUZCUTNoQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNN1VVRkRka0lzVFVGQlRTeEpRVUZKTEVkQlFVY3NZMEZCWXl4RFFVRkRMRmRCUVZjc1JVRkJSU3hIUVVGSExFZEJRVWNzUjBGQlJ5eEhRVUZITEVOQlFVTXNTVUZCU1N4SFFVRkhMRWRCUVVjc1EwRkJRenRSUVVOcVJTeE5RVUZOTEZWQlFWVXNSMEZCUnl4SFFVRkhMRU5CUVVNc1UwRkJVeXhEUVVGRExFOUJRVThzUTBGQlF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkROMFFzVFVGQlRTeFRRVUZUTEVkQlFVY3NSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zVVVGQlVTeEZRVUZGTEZWQlFWVXNSVUZCUlN4SlFVRkpMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOd1JpeFRRVUZUTEVOQlFVTXNUMEZCVHl4SFFVRkhMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zWVVGQllTeERRVUZETzFGQlF6ZERMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlF5OURMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4aFFVRmhMRVZCUVVVc1pVRkJaU3hEUVVGRExFTkJRVU03VVVGRmVrUXNUVUZCVFN4WFFVRlhMRWRCUVVjc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJRek5FTEVsQlFVa3NWMEZCVnp0WlFVTmlMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldTeERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1YwRkJWeXhEUVVGRExFTkJRVU03VVVGRk5VUXNUVUZCVFN4bFFVRmxMRWRCUVVjc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8xRkJRMjVGTEVsQlFVa3NaVUZCWlR0WlFVTnFRaXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVGRkxHVkJRV1VzUTBGQlF5eERRVUZETzFGQlJYQkZMRTFCUVUwc2MwSkJRWE5DTEVkQlFVY3NSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFTkJRVU03VVVGRGFrWXNTVUZCU1N4elFrRkJjMEk3V1VGRGVFSXNVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhGUVVGRkxITkNRVUZ6UWl4RFFVRkRMRU5CUVVNN1VVRkZiRVlzVDBGQlR5eFRRVUZUTEVOQlFVTTdTVUZEYmtJc1EwRkJRenRKUVVWRU96czdPenM3VDBGTlJ6dEpRVU5KTEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNc1YwRkJjMEk3VVVGREwwTXNUVUZCVFN4SFFVRkhMRWRCUVdsQ0xFbEJRVWtzV1VGQldTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUTNoRUxFMUJRVTBzWTBGQll5eEhRVUZITEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNN1VVRkRjRU1zVDBGQlR5eEhRVUZITEVOQlFVTXNXVUZCV1N4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRE8wbEJRekZETEVOQlFVTTdTVUZGUkRzN096czdUMEZMUnp0SlFVTkpMRTFCUVUwc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4TFFVRmhPMUZCUXpWRExFdEJRVXNzUjBGQlJ5eExRVUZMTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNN1VVRkROVUlzVFVGQlRTeFJRVUZSTEVkQlFVY3NaMGRCUVcxRUxFTkJRVU03VVVGRGNrVXNUVUZCVFN4VFFVRlRMRWRCUVVjc1EwRkJReXhMUVVGTExFVkJRVVVzUzBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUlhaRExFMUJRVTBzWlVGQlpTeEhRVUZITEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTm9SaXhQUVVGUExHVkJRV1VzUTBGQlF6dEpRVU42UWl4RFFVRkRPMGxCUlVRN096czdPenM3TzA5QlVVYzdTVUZEU1N4TlFVRk5MRU5CUVVNc2MwSkJRWE5DTEVOQlEyeERMRWRCUVZjc1JVRkRXQ3hKUVVGWkxFVkJRMW9zUzBGQllUdFJRVVZpTERSRlFVRTBSVHRSUVVNMVJTd3lRa0ZCTWtJN1VVRkRNMElzSzBOQlFTdERPMUZCUXk5RExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVU1zUzBGQlN5eERRVUZETzFsQlEzcERMRTFCUVUwc1NVRkJTU3hMUVVGTExFTkJRVU1zZFVOQlFYVkRMRU5CUVVNc1EwRkJRenRSUVVNelJDeE5RVUZOTEZOQlFWTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eFJRVUZSTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRemxGTEZOQlFWTXNRMEZCUXl4UFFVRlBMRWRCUVVjc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eGhRVUZoTEVOQlFVTTdVVUZETjBNc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSU3hMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU4yUXl4UFFVRlBMRk5CUVZNc1EwRkJRenRKUVVOdVFpeERRVUZET3p0QlFUbE9jMElzYVVKQlFVa3NSMEZCUnp0SlFVTTFRaXhQUVVGUExFVkJRVVVzVTBGQlV6dEpRVU5zUWl4UlFVRlJMRVZCUVVVc1ZVRkJWVHRKUVVOd1FpeFpRVUZaTEVWQlFVVXNaVUZCWlR0SlFVTTNRaXh0UWtGQmJVSXNSVUZCUlN4elFrRkJjMEk3U1VGRE0wTXNVMEZCVXl4RlFVRkZMRmRCUVZjN1EwRkRka0lzUTBGQlF6dEJRVTEzUWl4dFEwRkJjMElzUjBGQlJ6dEpRVU5xUkN4SlFVRkpMRVZCUVVVc1IwRkJSenRKUVVOVUxGTkJRVk1zUlVGQlJTeEZRVUZGTzBsQlEySXNTMEZCU3l4RlFVRkZMRWRCUVVjN1EwRkRXQ3hEUVVGRE8wRkJSWEZDTEdsRFFVRnZRaXhIUVVGSExFbEJRVWtzUjBGQlJ5eERRVUZETzBsQlEzQkVMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjN1NVRkRhRVFzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ6dERRVU5xUkN4RFFVRkRMRU5CUVVNN1FVRkRiMElzTmtKQlFXZENMRWRCUVVjc1NVRkJTU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEycEVMRFpDUVVGblFpeEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0FxSUdGeklFUkhJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzlrWnljN1hHNXBiWEJ2Y25RZ0tpQmhjeUIxYVNCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdmRXa25PMXh1YVcxd2IzSjBJQ29nWVhNZ1ozSnZheUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2WjNKdmF5YzdYRzVjYm1sdGNHOXlkQ0I3VjJWaVRHOW5ieXdnVTJWeFEyOXNVM1JoZEhOOUlHWnliMjBnSnk0dUwzWnBaWGRsY25NdmQyVmlMV3h2WjI4bk8xeHVYRzR2S2lvZ1pXNTFiU0IwZVhCbElIUnZJSE5wYlhCc2FXWjVJSE5sZEhScGJtY2dYQ0oxYzJWeUxXWnlhV1Z1Wkd4NVhDSWdibTkwWVhScGIyNGdhV1lnYm1WalpYTnpZWEo1SUNvdlhHNWxlSEJ2Y25RZ1kyOXVjM1FnWlc1MWJTQk9UMVJCVkVsUFRpQjdYRzRnSUVaQlUxUkJJRDBnSjJaaGMzUmhKeXhjYmlBZ1UwVlFRVkpCVkU5U0lEMGdKM05sY0dGeVlYUnZjaWNzWEc0Z0lFaEZURTBnUFNBbmFHVnNiU2NzWEc1OVhHNWNibVY0Y0c5eWRDQmpiMjV6ZENCbGJuVnRJRUZNVUVoQlFrVlVJSHRjYmlBZ1JFNUJJRDBnSjBST1FTY3NYRzRnSUZKT1FTQTlJQ2RTVGtFbkxGeHVJQ0JRVkNBOUlDZFFWQ2NzWEc0Z0lGVk9JRDBnSjFWT0p5eGNibjFjYmx4dUx5b3FJRU5zWVhOeklHWnZjaUJvWVc1a2JHbHVaeUJ1YjNSaGRHbHZiaUIxYm1sMGN5QnBiaUJOWVdOeWIyMXZiR1ZqZFd4bElHTnZiSFZ0Ym5NZ0tpOWNibVY0Y0c5eWRDQmpiR0Z6Y3lCVmJtbDBjMGhoYm1Sc1pYSWdlMXh1SUNCd2RXSnNhV01nYzNSaGRHbGpJSEpsWVdSdmJteDVJRlJCUjFNZ1BTQjdYRzRnSUNBZ1lXeHBaMjVsWkRvZ0oyRnNhV2R1WldRbkxGeHVJQ0FnSUdGc2NHaGhZbVYwT2lBbllXeHdhR0ZpWlhRbkxGeHVJQ0FnSUdGc2NHaGhZbVYwVTJsNlpUb2dKeTVoYkhCb1lXSmxkRk5wZW1VbkxGeHVJQ0FnSUdGc2NHaGhZbVYwU1hOTmRXeDBhV05vWVhJNklDY3VZV3h3YUdGaVpYUkpjMDExYkhScFkyaGhjaWNzWEc0Z0lDQWdjMlZ3WVhKaGRHOXlPaUFuYzJWd1lYSmhkRzl5Snl4Y2JpQWdmVHRjYmx4dUlDQndjbTkwWldOMFpXUWdjbVZoWkc5dWJIa2dYMk52YkhWdGJqb2dSRWN1UTI5c2RXMXVPeUF2THlCMGFHVWdZMjlzZFcxdUlIUnZJR0psSUdOdmJuWmxjblJsWkZ4dUlDQndjbTkwWldOMFpXUWdYM1Z1YVhSek9pQnpkSEpwYm1jN0lDOHZJSFZ1YVhSekxDQnZaaUIwYUdVZ1ptOXliU0JtWVhOMFlTd2djMlZ3WVhKaGRHOXlYRzRnSUhCeWIzUmxZM1JsWkNCZmJtOTBZWFJwYjI0NklFNVBWRUZVU1U5T095QXZMeUJqZFhKeVpXNTBJRzV2ZEdGMGFXOXVJQ2gzYVhSb2IzVjBJRHBUUlZFNlRsUXNJR1YwWXk0cFhHNGdJSEJ5YjNSbFkzUmxaQ0JmWkdWbVlYVnNkRWRoY0ZONWJXSnZiRG9nYzNSeWFXNW5PMXh1SUNCd2NtOTBaV04wWldRZ2MzUmhkR2xqSUhKbFlXUnZibXg1SUY5a1pXWmhkV3gwUjJGd1UzbHRZbTlzYzBScFkzUWdQU0I3WEc0Z0lDQWdTRVZNVFRvZ0p5b25MRnh1SUNBZ0lGTkZVRUZTUVZSUFVqb2dKeWNzWEc0Z0lDQWdSa0ZUVkVFNklDY3RKeXhjYmlBZ2ZUdGNibHh1SUNCd2RXSnNhV01nYzNSaGRHbGpJSEpsWVdSdmJteDVJRkJsY0hScFpHVkdZWE4wWVVGc2NHaGhZbVYwSUQwZ2JtVjNJRk5sZENoYlhHNGdJQ0FnSjBjbkxDQW5UQ2NzSUNkWkp5d2dKMU1uTENBblJTY3NJQ2RSSnl3Z0owUW5MQ0FuVGljc0lDZEdKeXdnSjBFbkxGeHVJQ0FnSUNkTEp5d2dKMUluTENBblNDY3NJQ2RESnl3Z0oxWW5MQ0FuVUNjc0lDZFhKeXdnSjBrbkxDQW5UU2NzSUNkVUp5eGNiaUFnWFNrN1hHNGdJSEIxWW14cFl5QnpkR0YwYVdNZ2NtVmhaRzl1YkhrZ1JHNWhSbUZ6ZEdGQmJIQm9ZV0psZENBOUlHNWxkeUJUWlhRb1d5ZEJKeXdnSjBNbkxDQW5SeWNzSUNkVUoxMHBPMXh1SUNCd2RXSnNhV01nYzNSaGRHbGpJSEpsWVdSdmJteDVJRkp1WVVaaGMzUmhRV3h3YUdGaVpYUWdQU0J1WlhjZ1UyVjBLRnNuUVNjc0lDZERKeXdnSjBjbkxDQW5WU2RkS1R0Y2JseHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklITmxkRlZ1YVhSelZHOUdZWE4wWVVOdmJIVnRiaWhqYjJ3NklFUkhMa052YkhWdGJpa2dlMXh1SUNBZ0lHbG1JQ2hqYjJ3dWMyVnRWSGx3WlNBaFBUMGdSRWN1VTBWTlZGbFFSUzVOUVVOU1QwMVBURVZEVlV4RktWeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkR1lYTjBZU0JqYjJ4MWJXNGdiWFZ6ZENCaVpTQk5RVU5TVDAxUFRFVkRWVXhGSnlrN1hHNWNiaUFnSUNCamIyNXpkQ0J6ZEdGMGN6b2dVMlZ4UTI5c1UzUmhkSE1nUFNCWFpXSk1iMmR2TG1kbGRGTjBZWFJ6S0dOdmJDd2dOU3dnVjJWaVRHOW5ieTV6Y0d4cGRIUmxja0Z6Um1GemRHRXBPMXh1SUNBZ0lHTnZibk4wSUhObGNWUjVjR1VnUFNCemRHRjBjeTV6WVcxbFRHVnVaM1JvSUQ4Z0oxTkZVUzVOVTBFbklEb2dKMU5GVVNjN1hHNWNiaUFnSUNCamIyNXpkQ0JoYkhCb1lXSmxkRU5oYm1ScFpHRjBaWE02SUZ0emRISnBibWNzSUZObGREeHpkSEpwYm1jK1hWdGRJRDBnVzF4dUlDQWdJQ0FnVzBGTVVFaEJRa1ZVTGxCVUxDQlZibWwwYzBoaGJtUnNaWEl1VUdWd2RHbGtaVVpoYzNSaFFXeHdhR0ZpWlhSZExGeHVJQ0FnSUNBZ1cwRk1VRWhCUWtWVUxrUk9RU3dnVlc1cGRITklZVzVrYkdWeUxrUnVZVVpoYzNSaFFXeHdhR0ZpWlhSZExGeHVJQ0FnSUNBZ1cwRk1VRWhCUWtWVUxsSk9RU3dnVlc1cGRITklZVzVrYkdWeUxsSnVZVVpoYzNSaFFXeHdhR0ZpWlhSZExGeHVJQ0FnSUYwN1hHNWNiaUFnSUNBdkx5QkRZV3hqZFd4aGRHVWdiR2xyWld4cGFHOXZaSE1nWm05eUlHRnNjR2hoWW1WMFgyTmhibVJwWkdGMFpYTmNiaUFnSUNCamIyNXpkQ0JoYkhCb1lXSmxkRU5oYm1ScFpHRjBaWE5UYVcwNklHNTFiV0psY2x0ZElEMGdZV3h3YUdGaVpYUkRZVzVrYVdSaGRHVnpMbTFoY0NoY2JpQWdJQ0FnSUNoaktTQTlQaUJYWldKTWIyZHZMbWRsZEVGc2NHaGhZbVYwVTJsdGFXeGhjbWwwZVNoemRHRjBjeTVtY21WeExDQmpXekZkS1NrN1hHNGdJQ0FnWTI5dWMzUWdiV0Y0UTI5eklEMGdUV0YwYUM1dFlYZ29MaTR1WVd4d2FHRmlaWFJEWVc1a2FXUmhkR1Z6VTJsdEtUdGNiaUFnSUNCamIyNXpkQ0JoYkhCb1lXSmxkQ0E5SUcxaGVFTnZjeUErSURBdU5qVWdQeUJoYkhCb1lXSmxkRU5oYm1ScFpHRjBaWE5iWVd4d2FHRmlaWFJEWVc1a2FXUmhkR1Z6VTJsdExtbHVaR1Y0VDJZb2JXRjRRMjl6S1YxYk1GMGdPaUFuVlU0bk8xeHVYRzRnSUNBZ1kyOXNMbk5sZEZSaFp5aEVSeTVVUVVkVExsVk9TVlJUTENCT1QxUkJWRWxQVGk1R1FWTlVRU2s3WEc0Z0lDQWdZMjlzTG5ObGRGUmhaeWhWYm1sMGMwaGhibVJzWlhJdVZFRkhVeTVoYkdsbmJtVmtMQ0J6WlhGVWVYQmxLVHRjYmlBZ0lDQmpiMnd1YzJWMFZHRm5LRlZ1YVhSelNHRnVaR3hsY2k1VVFVZFRMbUZzY0doaFltVjBMQ0JoYkhCb1lXSmxkQ2s3WEc0Z0lIMWNibHh1SUNCd2NtOTBaV04wWldRZ1oyVjBJSFZ1YVhSektDazZJSE4wY21sdVp5QjdJSEpsZEhWeWJpQjBhR2x6TGw5MWJtbDBjenNnZlZ4dVhHNGdJSEJ5YjNSbFkzUmxaQ0JuWlhRZ1kyOXNkVzF1S0NrNklFUkhMa052YkhWdGJpQjdJSEpsZEhWeWJpQjBhR2x6TGw5amIyeDFiVzQ3SUgxY2JseHVJQ0J3ZFdKc2FXTWdaMlYwSUc1dmRHRjBhVzl1S0NrNklFNVBWRUZVU1U5T0lIc2djbVYwZFhKdUlIUm9hWE11WDI1dmRHRjBhVzl1T3lCOVhHNWNiaUFnY0hWaWJHbGpJR2RsZENCa1pXWmhkV3gwUjJGd1UzbHRZbTlzS0NrNklITjBjbWx1WnlCN0lISmxkSFZ5YmlCMGFHbHpMbDlrWldaaGRXeDBSMkZ3VTNsdFltOXNPeUI5WEc1Y2JpQWdjSFZpYkdsaklHZGxkQ0J6WlhCaGNtRjBiM0lvS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0JqYjI1emRDQnpaWEJoY21GMGIzSWdQU0IwYUdsekxtTnZiSFZ0Ymk1blpYUlVZV2NvVlc1cGRITklZVzVrYkdWeUxsUkJSMU11YzJWd1lYSmhkRzl5S1R0Y2JpQWdJQ0JwWmlBb2MyVndZWEpoZEc5eUlDRTlQU0J1ZFd4c0tWeHVJQ0FnSUNBZ2NtVjBkWEp1SUhObGNHRnlZWFJ2Y2p0Y2JpQWdJQ0JsYkhObFhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1JYSnliM0lvSjFObGNHRnlZWFJ2Y2lCdWIzUWdjMlYwSnlrN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ1oyVjBJR0ZzYVdkdVpXUW9LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQmpiMjV6ZENCaGJHbG5ibVZrSUQwZ2RHaHBjeTVqYjJ4MWJXNHVaMlYwVkdGbktGVnVhWFJ6U0dGdVpHeGxjaTVVUVVkVExtRnNhV2R1WldRcE8xeHVJQ0FnSUdsbUlDaGhiR2xuYm1Wa0lDRTlQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1lXeHBaMjVsWkR0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtDZFVZV2NnWVd4cFoyNWxaQ0J1YjNRZ2MyVjBKeWs3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnTHlvcUlFRnNjR2hoWW1WMElHNWhiV1VnS0hWd2NHVnlJR05oYzJVcElDb3ZYRzRnSUhCMVlteHBZeUJuWlhRZ1lXeHdhR0ZpWlhRb0tUb2djM1J5YVc1bklIdGNiaUFnSUNCamIyNXpkQ0JoYkhCb1lXSmxkQ0E5SUhSb2FYTXVZMjlzZFcxdUxtZGxkRlJoWnloVmJtbDBjMGhoYm1Sc1pYSXVWRUZIVXk1aGJIQm9ZV0psZENrN1hHNGdJQ0FnYVdZZ0tHRnNjR2hoWW1WMElDRTlQU0J1ZFd4c0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1lXeHdhR0ZpWlhRdWRHOVZjSEJsY2tOaGMyVW9LVHRjYmlBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkVVlXY2dZV3h3YUdGaVpYUWdibTkwSUhObGRDY3BPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5Qm5aWFJCYkhCb1lXSmxkRk5wZW1Vb0tUb2diblZ0WW1WeUlIdGNiaUFnSUNCcFppQW9kR2hwY3k1dWIzUmhkR2x2YmlBOVBTQk9UMVJCVkVsUFRpNUlSVXhOSUh4OElIUm9hWE11WVd4d2FHRmlaWFFnUFQwZ1FVeFFTRUZDUlZRdVZVNHBJSHRjYmlBZ0lDQWdJR052Ym5OMElHRnNjR2hoWW1WMFUybDZaU0E5SUhCaGNuTmxTVzUwS0hSb2FYTXVZMjlzZFcxdUxtZGxkRlJoWnloVmJtbDBjMGhoYm1Sc1pYSXVWRUZIVXk1aGJIQm9ZV0psZEZOcGVtVXBLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmhiSEJvWVdKbGRGTnBlbVU3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lITjNhWFJqYUNBb2RHaHBjeTVoYkhCb1lXSmxkQ2tnZTF4dUlDQWdJQ0FnWTJGelpTQkJURkJJUVVKRlZDNVFWRHBjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJREl3TzF4dUlDQWdJQ0FnWTJGelpTQkJURkJJUVVKRlZDNUVUa0U2WEc0Z0lDQWdJQ0JqWVhObElFRk1VRWhCUWtWVUxsSk9RVHBjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRFE3WEc0Z0lDQWdJQ0JqWVhObElDZE9WQ2M2WEc0Z0lDQWdJQ0FnSUdOdmJuTnZiR1V1ZDJGeWJpaGdWVzVsZUhCbFkzUmxaQ0JoYkhCb1lXSmxkQ0FuVGxRbkxtQXBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdORHRjYmlBZ0lDQWdJR1JsWm1GMWJIUTZYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdWVzVsZUhCbFkzUmxaQ0JoYkhCb1lXSmxkQ0FuSkh0MGFHbHpMbUZzY0doaFltVjBmU2N1WUNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdkbGRFRnNjR2hoWW1WMFNYTk5kV3gwYVdOb1lYSW9LVG9nWW05dmJHVmhiaUI3WEc0Z0lDQWdhV1lnS0hSb2FYTXVibTkwWVhScGIyNGdQVDBnVGs5VVFWUkpUMDR1U0VWTVRTQjhmQ0IwYUdsekxtRnNjR2hoWW1WMElEMDlJRUZNVUVoQlFrVlVMbFZPS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NWpiMngxYlc0dVoyVjBWR0ZuS0ZWdWFYUnpTR0Z1Wkd4bGNpNVVRVWRUTG1Gc2NHaGhZbVYwU1hOTmRXeDBhV05vWVhJcElEMDlJQ2QwY25WbEp6dGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCcGMwWmhjM1JoS0NrNklHSnZiMnhsWVc0Z2V5QnlaWFIxY200Z2RHaHBjeTV1YjNSaGRHbHZiaUE5UFQwZ1RrOVVRVlJKVDA0dVJrRlRWRUU3SUgxY2JseHVJQ0J3ZFdKc2FXTWdhWE5UWlhCaGNtRjBiM0lvS1RvZ1ltOXZiR1ZoYmlCN0lISmxkSFZ5YmlCMGFHbHpMbTV2ZEdGMGFXOXVJRDA5UFNCT1QxUkJWRWxQVGk1VFJWQkJVa0ZVVDFJN0lIMWNibHh1SUNCd2RXSnNhV01nYVhOSVpXeHRLQ2s2SUdKdmIyeGxZVzRnZXlCeVpYUjFjbTRnZEdocGN5NXViM1JoZEdsdmJpQTlQVDBnVGs5VVFWUkpUMDR1U0VWTVRUc2dmVnh1WEc0Z0lIQjFZbXhwWXlCcGMxSnVZU2dwT2lCaWIyOXNaV0Z1SUhzZ2NtVjBkWEp1SUhSb2FYTXVZV3h3YUdGaVpYUWdQVDA5SUNkU1RrRW5PeUI5WEc1Y2JpQWdjSFZpYkdsaklHbHpSRzVoS0NrNklHSnZiMnhsWVc0Z2V5QnlaWFIxY200Z2RHaHBjeTVoYkhCb1lXSmxkQ0E5UFQwZ0owUk9RU2M3SUgxY2JseHVJQ0J3ZFdKc2FXTWdhWE5RWlhCMGFXUmxLQ2s2SUdKdmIyeGxZVzRnZXlCeVpYUjFjbTRnZEdocGN5NWhiSEJvWVdKbGRDQTlQVDBnSjFCVUp6c2dmVnh1WEc0Z0lDOHFLaUJCYzNOdlkybGhkR1VnYm05MFlYUnBiMjRnZEhsd1pYTWdkMmwwYUNCMGFHVWdZMjl5Y21WemNHOXVaR2x1WnlCMWJtbDBjeUFxTDF4dUlDQXZLaXBjYmlBZ0lDb2dRSEpsZEhWeWJpQjdUazlVUVZSSlQwNTlJQ0FnSUNCT2IzUmhkR2x2YmlCaGMzTnZZMmxoZEdWa0lIZHBkR2dnZEdobElIVnVhWFJ6SUhSNWNHVmNiaUFnSUNvdlhHNGdJSEJ5YjNSbFkzUmxaQ0JuWlhST2IzUmhkR2x2YmlncE9pQk9UMVJCVkVsUFRpQjdYRzRnSUNBZ2FXWWdLSFJvYVhNdWRXNXBkSE11ZEc5TWIzZGxja05oYzJVb0tTNXpkR0Z5ZEhOWGFYUm9LRTVQVkVGVVNVOU9Ma1pCVTFSQktTbGNiaUFnSUNBZ0lISmxkSFZ5YmlCT1QxUkJWRWxQVGk1R1FWTlVRVHRjYmlBZ0lDQmxiSE5sSUdsbUlDaDBhR2x6TG5WdWFYUnpMblJ2VEc5M1pYSkRZWE5sS0NrdWMzUmhjblJ6VjJsMGFDaE9UMVJCVkVsUFRpNVRSVkJCVWtGVVQxSXBLVnh1SUNBZ0lDQWdjbVYwZFhKdUlFNVBWRUZVU1U5T0xsTkZVRUZTUVZSUFVqdGNiaUFnSUNCbGJITmxJR2xtSUNoMGFHbHpMblZ1YVhSekxuUnZURzkzWlhKRFlYTmxLQ2t1YzNSaGNuUnpWMmwwYUNoT1QxUkJWRWxQVGk1SVJVeE5LU2xjYmlBZ0lDQWdJSEpsZEhWeWJpQk9UMVJCVkVsUFRpNUlSVXhOTzF4dUlDQWdJR1ZzYzJWY2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhnUTI5c2RXMXVJQ2NrZTNSb2FYTXVZMjlzZFcxdUxtNWhiV1Y5SnlCb1lYTWdkVzVsZUhCbFkzUmxaQ0J1YjNSaGRHbHZiaUFuSkh0MGFHbHpMblZ1YVhSemZTY3VZQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EzSmxZWFJsSUdFZ2JtVjNJR1Z0Y0hSNUlHTnZiSFZ0YmlCdlppQjBhR1VnYzNCbFkybG1hV1ZrSUc1dmRHRjBhVzl1SUhSNWNHVWdZVzVrSUhSb1pTQnpZVzFsWEc0Z0lDQXFJR3hsYm1kMGFDQmhjeUJqYjJ4MWJXNWNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHRPVDFSQlZFbFBUbjBnZEdGeVoyVjBUbTkwWVhScGIyNWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1JFY3VRMjlzZFcxdWZWeHVJQ0FnS2k5Y2JpQWdjSEp2ZEdWamRHVmtJR2RsZEU1bGQwTnZiSFZ0YmloMFlYSm5aWFJPYjNSaGRHbHZiam9nVGs5VVFWUkpUMDRwT2lCRVJ5NURiMngxYlc0Z2UxeHVJQ0FnSUdOdmJuTjBJR052YkNBOUlIUm9hWE11WTI5c2RXMXVPMXh1SUNBZ0lHTnZibk4wSUd4bGJpQTlJR052YkM1c1pXNW5kR2c3WEc0Z0lDQWdZMjl1YzNRZ2JtRnRaU0E5SUhSaGNtZGxkRTV2ZEdGMGFXOXVMblJ2VEc5M1pYSkRZWE5sS0NrZ0t5QW5LQ2NnS3lCamIyd3VibUZ0WlNBcklDY3BKenRjYmlBZ0lDQmpiMjV6ZENCdVpYZERiMnhPWVcxbElEMGdZMjlzTG1SaGRHRkdjbUZ0WlM1amIyeDFiVzV6TG1kbGRGVnVkWE5sWkU1aGJXVW9ibUZ0WlNrN1hHNGdJQ0FnWTI5dWMzUWdibVYzUTI5c2RXMXVJRDBnUkVjdVEyOXNkVzF1TG1aeWIyMU1hWE4wS0NkemRISnBibWNuTENCdVpYZERiMnhPWVcxbExDQnVaWGNnUVhKeVlYa29iR1Z1S1M1bWFXeHNLQ2NuS1NrN1hHNGdJQ0FnYm1WM1EyOXNkVzF1TG5ObGJWUjVjR1VnUFNCRVJ5NVRSVTFVV1ZCRkxrMUJRMUpQVFU5TVJVTlZURVU3WEc0Z0lDQWdibVYzUTI5c2RXMXVMbk5sZEZSaFp5aEVSeTVVUVVkVExsVk9TVlJUTENCMGFHbHpMbTV2ZEdGMGFXOXVLVHRjYmlBZ0lDQnVaWGREYjJ4MWJXNHVjMlYwVkdGbktFUkhMbFJCUjFNdVEwVk1URjlTUlU1RVJWSkZVaXdnSjAxaFkzSnZiVzlzWldOMWJHVW5LVHRjYmx4dUlDQWdJR052Ym5OMElITnlZMEZzY0doaFltVjBJRDBnWTI5c0xtZGxkRlJoWnloVmJtbDBjMGhoYm1Sc1pYSXVWRUZIVXk1aGJIQm9ZV0psZENrN1hHNGdJQ0FnYVdZZ0tITnlZMEZzY0doaFltVjBLVnh1SUNBZ0lDQWdibVYzUTI5c2RXMXVMbk5sZEZSaFp5aFZibWwwYzBoaGJtUnNaWEl1VkVGSFV5NWhiSEJvWVdKbGRDd2djM0pqUVd4d2FHRmlaWFFwTzF4dVhHNGdJQ0FnWTI5dWMzUWdjM0pqUVd4d2FHRmlaWFJUYVhwbElEMGdZMjlzTG1kbGRGUmhaeWhWYm1sMGMwaGhibVJzWlhJdVZFRkhVeTVoYkhCb1lXSmxkRk5wZW1VcE8xeHVJQ0FnSUdsbUlDaHpjbU5CYkhCb1lXSmxkRk5wZW1VcFhHNGdJQ0FnSUNCdVpYZERiMngxYlc0dWMyVjBWR0ZuS0ZWdWFYUnpTR0Z1Wkd4bGNpNVVRVWRUTG1Gc2NHaGhZbVYwVTJsNlpTd2djM0pqUVd4d2FHRmlaWFJUYVhwbEtUdGNibHh1SUNBZ0lHTnZibk4wSUhOeVkwRnNjR2hoWW1WMFNYTk5kV3gwYVdOb1lYSWdQU0JqYjJ3dVoyVjBWR0ZuS0ZWdWFYUnpTR0Z1Wkd4bGNpNVVRVWRUTG1Gc2NHaGhZbVYwU1hOTmRXeDBhV05vWVhJcE8xeHVJQ0FnSUdsbUlDaHpjbU5CYkhCb1lXSmxkRWx6VFhWc2RHbGphR0Z5S1Z4dUlDQWdJQ0FnYm1WM1EyOXNkVzF1TG5ObGRGUmhaeWhWYm1sMGMwaGhibVJzWlhJdVZFRkhVeTVoYkhCb1lXSmxkRWx6VFhWc2RHbGphR0Z5TENCemNtTkJiSEJvWVdKbGRFbHpUWFZzZEdsamFHRnlLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQnVaWGREYjJ4MWJXNDdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUTNKbFlYUmxJR0VnYm1WM0lHVnRjSFI1SUdOdmJIVnRiaUIxYzJsdVp5QjBaVzF3YkdGMFpVTnZiQ0JoY3lCaElIUmxiWEJzWVhSbFhHNGdJQ0FxWEc0Z0lDQXFJRUJ3WVhKaGJTQjdSRWN1UTI5c2RXMXVmU0IwWlcxd2JHRjBaVU52YkNBZ2RHaGxJSEJ5YjNCbGNuUnBaWE1nWVc1a0lIVnVhWFJ6SUc5bUlIUm9hWE1nWTI5c2RXMXVJR0Z5WlNCMWMyVmtJR0Z6SUdGY2JpQWdJQ29nZEdWdGNHeGhkR1VnZEc4Z1luVnBiR1FnZEdobElHNWxkeUJ2Ym1WY2JpQWdJQ29nUUhKbGRIVnliaUI3UkVjdVEyOXNkVzF1ZlZ4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJuWlhST1pYZERiMngxYlc0b2RHVnRjR3hoZEdWRGIydzZJRVJITGtOdmJIVnRiaWs2SUVSSExrTnZiSFZ0YmlCN1hHNGdJQ0FnWTI5dWMzUWdZMjlzT2lCVmJtbDBjMGhoYm1Sc1pYSWdQU0J1WlhjZ1ZXNXBkSE5JWVc1a2JHVnlLSFJsYlhCc1lYUmxRMjlzS1R0Y2JpQWdJQ0JqYjI1emRDQjBZWEpuWlhST2IzUmhkR2x2YmlBOUlHTnZiQzV1YjNSaGRHbHZianRjYmlBZ0lDQnlaWFIxY200Z1kyOXNMbWRsZEU1bGQwTnZiSFZ0YmloMFlYSm5aWFJPYjNSaGRHbHZiaWs3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FTQm9aV3h3WlhJZ1puVnVZM1JwYjI0Z1kyaGxZMnRwYm1jZ2RHaGxJSFpoYkdsa2FYUjVJRzltSUhSb1pTQW5kVzVwZEhNbklITjBjbWx1WjF4dUlDQWdLbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2RXNXBkSE1nSUhSb1pTQnpkSEpwYm1jZ2RHOGdZbVVnZG1Gc2FXUmhkR1ZrWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMkp2YjJ4bFlXNTlYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklIVnVhWFJ6VTNSeWFXNW5TWE5XWVd4cFpDaDFibWwwY3pvZ2MzUnlhVzVuS1RvZ1ltOXZiR1ZoYmlCN1hHNGdJQ0FnZFc1cGRITWdQU0IxYm1sMGN5NTBiMHh2ZDJWeVEyRnpaU2dwTzF4dUlDQWdJR052Ym5OMElIQnlaV1pwZUdWeklEMGdXMDVQVkVGVVNVOU9Ma1pCVTFSQkxDQk9UMVJCVkVsUFRpNVRSVkJCVWtGVVQxSXNJRTVQVkVGVVNVOU9Ma2hGVEUxZE8xeHVJQ0FnSUdOdmJuTjBJSEJ2YzNSbWFYaGxjeUE5SUZzbmNtNWhKeXdnSjJSdVlTY3NJQ2R3ZENkZE8xeHVYRzRnSUNBZ1kyOXVjM1FnY0hKbFptbDRRM0pwZEdWeWFXOXVJRDBnY0hKbFptbDRaWE11YzI5dFpTZ29jQ2tnUFQ0Z2RXNXBkSE11YzNSaGNuUnpWMmwwYUNod0xuUnZURzkzWlhKRFlYTmxLQ2twS1R0Y2JpQWdJQ0J5WlhSMWNtNGdjSEpsWm1sNFEzSnBkR1Z5YVc5dU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU52Ym5OMGNuVmpkQ0JoSUc1bGR5QmpiMngxYlc0Z2IyWWdjMlZ0WVc1MGFXTWdkSGx3WlNCTlFVTlNUMDFQVEVWRFZVeEZJR1p5YjIwZ2RHaGxJR3hwYzNRZ2IyWmNiaUFnSUNvZ2MzQmxZMmxtYVdWa0lIQmhjbUZ0WlhSbGNuTmNiaUFnSUNwY2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJQ0FnSUd4bGJpQWdkR2hsSUd4bGJtZDBhQ0J2WmlCMGFHVWdibVYzSUdOdmJIVnRibHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ0lDQWdibUZ0WlNBZ2RHaGxJRzVoYldVZ2IyWWdkR2hsSUc1bGR5QmpiMngxYlc1Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtZDlJQ0FnSUhWdWFYUnpJQ0IwYUdVZ2RXNXBkSE1nYjJZZ2RHaGxJRzVsZHlCamIyeDFiVzVjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSRWN1UTI5c2RXMXVmVnh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5Qm5aWFJPWlhkRGIyeDFiVzVHY205dFVHRnlZVzF6S0Z4dUlDQWdJR3hsYmpvZ2JuVnRZbVZ5TEZ4dUlDQWdJRzVoYldVNklITjBjbWx1Wnl4Y2JpQWdJQ0IxYm1sMGN6b2djM1J5YVc1blhHNGdJQ2s2SUVSSExrTnZiSFZ0YmlCN1hHNGdJQ0FnTHk4Z1YwRlNUa2xPUnpvZ2FXNGdkR2hwY3lCcGJYQnNaVzFsYm5SaGRHbHZiaUJwY3lCcGN5QnBiWEJ2YzNOcFlteGxJSFJ2SUhabGNtbG1lU0IwYUdVZ2RXNXBjWFZsYm1WemMxeHVJQ0FnSUM4dklHOW1JSFJvWlNCdVpYY2dZMjlzZFcxdUozTWdibUZ0WlZ4dUlDQWdJQzh2SUZSUFJFODZJSFpsY21sbWVTQjBhR1VnZG1Gc2FXUnBkSGtnYjJZZ2RXNXBkSE1nY0dGeVlXMWxkR1Z5WEc0Z0lDQWdhV1lnS0NGVmJtbDBjMGhoYm1Sc1pYSXVkVzVwZEhOVGRISnBibWRKYzFaaGJHbGtLSFZ1YVhSektTbGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnblNXNTJZV3hwWkNCbWIzSnRZWFFnYjJZZ1hGd25kVzVwZEhOY1hDY2djR0Z5WVcxbGRHVnlKeWs3WEc0Z0lDQWdZMjl1YzNRZ2JtVjNRMjlzZFcxdUlEMGdSRWN1UTI5c2RXMXVMbVp5YjIxTWFYTjBLQ2R6ZEhKcGJtY25MQ0J1WVcxbExDQnVaWGNnUVhKeVlYa29iR1Z1S1M1bWFXeHNLQ2NuS1NrN1hHNGdJQ0FnYm1WM1EyOXNkVzF1TG5ObGJWUjVjR1VnUFNCRVJ5NVRSVTFVV1ZCRkxrMUJRMUpQVFU5TVJVTlZURVU3WEc0Z0lDQWdibVYzUTI5c2RXMXVMbk5sZEZSaFp5aEVSeTVVUVVkVExsVk9TVlJUTENCMWJtbDBjeWs3WEc0Z0lDQWdjbVYwZFhKdUlHNWxkME52YkhWdGJqdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QmpiMjV6ZEhKMVkzUnZjaWhqYjJ3NklFUkhMa052YkhWdGJpa2dlMXh1SUNBZ0lIUm9hWE11WDJOdmJIVnRiaUE5SUdOdmJEdGNiaUFnSUNCamIyNXpkQ0IxYm1sMGN5QTlJSFJvYVhNdVgyTnZiSFZ0Ymk1MFlXZHpXMFJITGxSQlIxTXVWVTVKVkZOZE8xeHVJQ0FnSUdsbUlDaDFibWwwY3lBaFBUMGdiblZzYkNsY2JpQWdJQ0FnSUhSb2FYTXVYM1Z1YVhSeklEMGdkVzVwZEhNN1hHNGdJQ0FnWld4elpWeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0NkVmJtbDBjeUJoY21VZ2JtOTBJSE53WldOcFptbGxaQ0JwYmlCamIyeDFiVzRuS1R0Y2JpQWdJQ0IwYUdsekxsOXViM1JoZEdsdmJpQTlJSFJvYVhNdVoyVjBUbTkwWVhScGIyNG9LVHRjYmlBZ0lDQjBhR2x6TGw5a1pXWmhkV3gwUjJGd1UzbHRZbTlzSUQwZ0tIUm9hWE11YVhOR1lYTjBZU2dwS1NBL0lGVnVhWFJ6U0dGdVpHeGxjaTVmWkdWbVlYVnNkRWRoY0ZONWJXSnZiSE5FYVdOMExrWkJVMVJCSURwY2JpQWdJQ0FnSUNoMGFHbHpMbWx6U0dWc2JTZ3BLU0EvSUZWdWFYUnpTR0Z1Wkd4bGNpNWZaR1ZtWVhWc2RFZGhjRk41YldKdmJITkVhV04wTGtoRlRFMGdPbHh1SUNBZ0lDQWdJQ0JWYm1sMGMwaGhibVJzWlhJdVgyUmxabUYxYkhSSFlYQlRlVzFpYjJ4elJHbGpkQzVUUlZCQlVrRlVUMUk3WEc1Y2JpQWdJQ0JwWmlBb0lYUm9hWE11WTI5c2RXMXVMblJoWjNNdWFHRnpLRlZ1YVhSelNHRnVaR3hsY2k1VVFVZFRMbUZzY0doaFltVjBVMmw2WlNrcElIdGNiaUFnSUNBZ0lHbG1JQ2gwYUdsekxtbHpTR1ZzYlNncEtWeHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dSWEp5YjNJb1lFWnZjaUJqYjJ4MWJXNGdKeVI3ZEdocGN5NWpiMngxYlc0dWJtRnRaWDBuSUc5bUlHNXZkR0YwYVc5dUlDY2tlM1JvYVhNdWJtOTBZWFJwYjI1OUp5QmdJQ3RjYmlBZ0lDQWdJQ0FnSUNCZ2RHRm5JQ2NrZTFWdWFYUnpTR0Z1Wkd4bGNpNVVRVWRUTG1Gc2NHaGhZbVYwVTJsNlpYMG5JR2x6SUcxaGJtUmhkRzl5ZVM1Z0tUdGNiaUFnSUNBZ0lHVnNjMlVnYVdZZ0tGc25WVTRuWFM1cGJtTnNkV1JsY3loMGFHbHpMbUZzY0doaFltVjBLU2xjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLR0JHYjNJZ1kyOXNkVzF1SUNja2UzUm9hWE11WTI5c2RXMXVMbTVoYldWOUp5QnZaaUJoYkhCb1lXSmxkQ0FuSkh0MGFHbHpMbUZzY0doaFltVjBmU2NnWUNBclhHNGdJQ0FnSUNBZ0lDQWdZSFJoWnlBbkpIdFZibWwwYzBoaGJtUnNaWEl1VkVGSFV5NWhiSEJvWVdKbGRGTnBlbVY5SnlCcGN5QnRZVzVrWVhSdmNua3VZQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbU52YkhWdGJpNTBZV2R6TG1oaGN5aFZibWwwYzBoaGJtUnNaWEl1VkVGSFV5NWhiSEJvWVdKbGRFbHpUWFZzZEdsamFHRnlLU2tnZTF4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11YVhOSVpXeHRLQ2twWEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhnUm05eUlHTnZiSFZ0YmlBbkpIdDBhR2x6TG1OdmJIVnRiaTV1WVcxbGZTY2diMllnYm05MFlYUnBiMjRnSnlSN2RHaHBjeTV1YjNSaGRHbHZibjBuSUdBZ0sxeHVJQ0FnSUNBZ0lDQWdJR0IwWVdjZ0p5UjdWVzVwZEhOSVlXNWtiR1Z5TGxSQlIxTXVZV3h3YUdGaVpYUkpjMDExYkhScFkyaGhjbjBuSUdseklHMWhibVJoZEc5eWVTNWdLVHRjYmlBZ0lDQWdJR1ZzYzJVZ2FXWWdLRnNuVlU0blhTNXBibU5zZFdSbGN5aDBhR2x6TG1Gc2NHaGhZbVYwS1NsY2JpQWdJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0dCR2IzSWdZMjlzZFcxdUlDY2tlM1JvYVhNdVkyOXNkVzF1TG01aGJXVjlKeUJ2WmlCaGJIQm9ZV0psZENBbkpIdDBhR2x6TG1Gc2NHaGhZbVYwZlNjZ1lDQXJYRzRnSUNBZ0lDQWdJQ0FnWUhSaFp5QW5KSHRWYm1sMGMwaGhibVJzWlhJdVZFRkhVeTVoYkhCb1lXSmxkRWx6VFhWc2RHbGphR0Z5ZlNjZ2FYTWdiV0Z1WkdGMGIzSjVMbUFwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVmVnh1SWwxOSIsIi8vIERhdGEgc3RydWN0dXJlcyBmb3IgVi1Eb21haW4gcmVnaW9ucyBvZiBhbnRpYm9kaWVzXG5leHBvcnQgdmFyIFZkUmVnaW9uVHlwZTtcbihmdW5jdGlvbiAoVmRSZWdpb25UeXBlKSB7XG4gICAgVmRSZWdpb25UeXBlW1wiVW5rbm93blwiXSA9IFwidW5rbm93blwiO1xuICAgIFZkUmVnaW9uVHlwZVtcIkZSXCJdID0gXCJmcmFtZXdvcmtcIjtcbiAgICBWZFJlZ2lvblR5cGVbXCJDRFJcIl0gPSBcImNkclwiO1xufSkoVmRSZWdpb25UeXBlIHx8IChWZFJlZ2lvblR5cGUgPSB7fSkpO1xuLyoqIERlc2NyaWJlcyBWLURPTUFJTiAoSUcgYW5kIFRSKSByZWdpb24gKG9mIG11bHRpcGxlIGFsaWdubWVudClcbiAqIGh0dHBzOi8vd3d3LmltZ3Qub3JnL0lNR1RTY2llbnRpZmljQ2hhcnQvTnVtYmVyaW5nL0lNR1RJR1ZMc3VwZXJmYW1pbHkuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgVmRSZWdpb24ge1xuICAgIC8qKlxuICAgICAqIHN0YXJ0IGFuZCBwb3NpdGlvbiBhcmUgc3RyaW5ncyBiZWNhdXNlIHRoZXkgY29ycmVzcG9uZCB0byBwb3NpdGlvbiBuYW1lcyBhcyBjb2x1bW4gbmFtZXMgaW4gQU5BUkNJIG91dHB1dFxuICAgICAqIEBwYXJhbSB7VmRSZWdpb25UeXBlfSB0eXBlICBUeXBlIG9mIHRoZSByZWdpb25cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAgTmFtZSBvZiB0aGUgcmVnaW9uXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGNoYWluXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG9yZGVyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHBvc2l0aW9uU3RhcnROYW1lICBSZWdpb24gc3RhcnQgcG9zaXRpb24gKGluY2x1c2l2ZSlcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcG9zaXRpb25FbmROYW1lICBSZWdpb24gZW5kIHBvc2l0aW9uIChpbmNsdXNpdmUpXG4gICAgICovXG4gICAgY29uc3RydWN0b3IodHlwZSwgbmFtZSwgY2hhaW4sIG9yZGVyLCBwb3NpdGlvblN0YXJ0TmFtZSwgcG9zaXRpb25FbmROYW1lKSB7XG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMuY2hhaW4gPSBjaGFpbjtcbiAgICAgICAgdGhpcy5vcmRlciA9IG9yZGVyO1xuICAgICAgICB0aGlzLnBvc2l0aW9uU3RhcnROYW1lID0gcG9zaXRpb25TdGFydE5hbWU7XG4gICAgICAgIHRoaXMucG9zaXRpb25FbmROYW1lID0gcG9zaXRpb25FbmROYW1lO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRtUXRjbVZuYVc5dWN5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW5aa0xYSmxaMmx2Ym5NdWRITWlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklrRkJRVUVzY1VSQlFYRkVPMEZCUlhKRUxFMUJRVTBzUTBGQlRpeEpRVUZaTEZsQlNWZzdRVUZLUkN4WFFVRlpMRmxCUVZrN1NVRkRkRUlzYlVOQlFXMUNMRU5CUVVFN1NVRkRia0lzWjBOQlFXZENMRU5CUVVFN1NVRkRhRUlzTWtKQlFWY3NRMEZCUVR0QlFVTmlMRU5CUVVNc1JVRktWeXhaUVVGWkxFdEJRVm9zV1VGQldTeFJRVWwyUWp0QlFVVkVPenRIUVVWSE8wRkJRMGdzVFVGQlRTeFBRVUZQTEZGQlFWRTdTVUZSYmtJN096czdPenM3TzA5QlVVYzdTVUZEU0N4WlFVRlpMRWxCUVd0Q0xFVkJRVVVzU1VGQldTeEZRVUZGTEV0QlFXRXNSVUZCUlN4TFFVRmhMRVZCUTNoRkxHbENRVUY1UWl4RlFVRkZMR1ZCUVhWQ08xRkJRMnhFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRMnBDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRMnBDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE8xRkJRMjVDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE8xRkJRMjVDTEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUjBGQlJ5eHBRa0ZCYVVJc1EwRkJRenRSUVVNelF5eEpRVUZKTEVOQlFVTXNaVUZCWlN4SFFVRkhMR1ZCUVdVc1EwRkJRenRKUVVONlF5eERRVUZETzBOQlEwWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUl2THlCRVlYUmhJSE4wY25WamRIVnlaWE1nWm05eUlGWXRSRzl0WVdsdUlISmxaMmx2Ym5NZ2IyWWdZVzUwYVdKdlpHbGxjMXh1WEc1bGVIQnZjblFnWlc1MWJTQldaRkpsWjJsdmJsUjVjR1VnZTF4dUlDQlZibXR1YjNkdUlEMGdKM1Z1YTI1dmQyNG5MRnh1SUNCR1VpQTlJQ2RtY21GdFpYZHZjbXNuTEZ4dUlDQkRSRklnUFNBblkyUnlKeXhjYm4xY2JseHVMeW9xSUVSbGMyTnlhV0psY3lCV0xVUlBUVUZKVGlBb1NVY2dZVzVrSUZSU0tTQnlaV2RwYjI0Z0tHOW1JRzExYkhScGNHeGxJR0ZzYVdkdWJXVnVkQ2xjYmlBcUlHaDBkSEJ6T2k4dmQzZDNMbWx0WjNRdWIzSm5MMGxOUjFSVFkybGxiblJwWm1salEyaGhjblF2VG5WdFltVnlhVzVuTDBsTlIxUkpSMVpNYzNWd1pYSm1ZVzFwYkhrdWFIUnRiRnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVm1SU1pXZHBiMjRnZTF4dUlDQjBlWEJsT2lCV1pGSmxaMmx2YmxSNWNHVTdYRzRnSUc1aGJXVTZJSE4wY21sdVp6dGNiaUFnWTJoaGFXNDZJSE4wY21sdVp6dGNiaUFnYjNKa1pYSTZJRzUxYldKbGNqdGNiaUFnY0c5emFYUnBiMjVUZEdGeWRFNWhiV1U2SUhOMGNtbHVaenRjYmlBZ2NHOXphWFJwYjI1RmJtUk9ZVzFsT2lCemRISnBibWM3WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJSE4wWVhKMElHRnVaQ0J3YjNOcGRHbHZiaUJoY21VZ2MzUnlhVzVuY3lCaVpXTmhkWE5sSUhSb1pYa2dZMjl5Y21WemNHOXVaQ0IwYnlCd2IzTnBkR2x2YmlCdVlXMWxjeUJoY3lCamIyeDFiVzRnYm1GdFpYTWdhVzRnUVU1QlVrTkpJRzkxZEhCMWRGeHVJQ0FnS2lCQWNHRnlZVzBnZTFaa1VtVm5hVzl1Vkhsd1pYMGdkSGx3WlNBZ1ZIbHdaU0J2WmlCMGFHVWdjbVZuYVc5dVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J1WVcxbElDQk9ZVzFsSUc5bUlIUm9aU0J5WldkcGIyNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUdOb1lXbHVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCdmNtUmxjbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2NHOXphWFJwYjI1VGRHRnlkRTVoYldVZ0lGSmxaMmx2YmlCemRHRnlkQ0J3YjNOcGRHbHZiaUFvYVc1amJIVnphWFpsS1Z4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdjRzl6YVhScGIyNUZibVJPWVcxbElDQlNaV2RwYjI0Z1pXNWtJSEJ2YzJsMGFXOXVJQ2hwYm1Oc2RYTnBkbVVwWEc0Z0lDQXFMMXh1SUNCamIyNXpkSEoxWTNSdmNpaDBlWEJsT2lCV1pGSmxaMmx2YmxSNWNHVXNJRzVoYldVNklITjBjbWx1Wnl3Z1kyaGhhVzQ2SUhOMGNtbHVaeXdnYjNKa1pYSTZJRzUxYldKbGNpeGNiaUFnSUNCd2IzTnBkR2x2YmxOMFlYSjBUbUZ0WlRvZ2MzUnlhVzVuTENCd2IzTnBkR2x2YmtWdVpFNWhiV1U2SUhOMGNtbHVaeWtnZTF4dUlDQWdJSFJvYVhNdWRIbHdaU0E5SUhSNWNHVTdYRzRnSUNBZ2RHaHBjeTV1WVcxbElEMGdibUZ0WlR0Y2JpQWdJQ0IwYUdsekxtTm9ZV2x1SUQwZ1kyaGhhVzQ3WEc0Z0lDQWdkR2hwY3k1dmNtUmxjaUE5SUc5eVpHVnlPMXh1SUNBZ0lIUm9hWE11Y0c5emFYUnBiMjVUZEdGeWRFNWhiV1VnUFNCd2IzTnBkR2x2YmxOMFlYSjBUbUZ0WlR0Y2JpQWdJQ0IwYUdsekxuQnZjMmwwYVc5dVJXNWtUbUZ0WlNBOUlIQnZjMmwwYVc5dVJXNWtUbUZ0WlR0Y2JpQWdmVnh1ZlZ4dUlsMTkiLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgd3UgZnJvbSAnd3UnO1xuaW1wb3J0ICogYXMgcnhqcyBmcm9tICdyeGpzJztcbmltcG9ydCB7IFZlY3RvciB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3R5cGUtZGVjbGFyYXRpb25zJztcbmltcG9ydCB7IHZlY3Rvckxlbmd0aCwgdmVjdG9yRG90UHJvZHVjdCB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3ZlY3Rvci1vcGVyYXRpb25zJztcbmltcG9ydCB7IEFtaW5vYWNpZHMsIEFtaW5vYWNpZHNQYWxldHRlcyB9IGZyb20gJy4uL2FtaW5vYWNpZHMnO1xuaW1wb3J0IHsgTnVjbGVvdGlkZXMsIE51Y2xlb3RpZGVzUGFsZXR0ZXMgfSBmcm9tICcuLi9udWNsZW90aWRlcyc7XG5pbXBvcnQgeyBVbmtub3duU2VxUGFsZXR0ZXMgfSBmcm9tICcuLi91bmtub3duJztcbmltcG9ydCB7IFVuaXRzSGFuZGxlciB9IGZyb20gJy4uL3V0aWxzL3VuaXRzLWhhbmRsZXInO1xudmFyIFBvc2l0aW9uSGVpZ2h0O1xuKGZ1bmN0aW9uIChQb3NpdGlvbkhlaWdodCkge1xuICAgIFBvc2l0aW9uSGVpZ2h0W1wiRW50cm9weVwiXSA9IFwiRW50cm9weVwiO1xuICAgIFBvc2l0aW9uSGVpZ2h0W1wiZnVsbFwiXSA9IFwiMTAwJVwiO1xufSkoUG9zaXRpb25IZWlnaHQgfHwgKFBvc2l0aW9uSGVpZ2h0ID0ge30pKTtcbi8qKkBwYXJhbSB7TW91c2VFdmVudH0gZXZlbnRcbiAqIEBwYXJhbSB7bnVtYmVyfSByIGRldmljZVBpeGVsUmF0aW9uXG4gKiBAcmV0dXJuIHtERy5Qb2ludH0gY2FudmFzIHJlbGF0ZWQgY3Vyc29yIHBvc2l0aW9uXG4gKi9cbkhUTUxDYW52YXNFbGVtZW50LnByb3RvdHlwZS5nZXRDdXJzb3JQb3NpdGlvbiA9IGZ1bmN0aW9uIChldmVudCwgcikge1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHJldHVybiBuZXcgREcuUG9pbnQoKGV2ZW50LmNsaWVudFggLSByZWN0LmxlZnQpICogciwgKGV2ZW50LmNsaWVudFkgLSByZWN0LnRvcCkgKiByKTtcbn07XG5ERy5SZWN0LnByb3RvdHlwZS5jb250YWlucyA9IGZ1bmN0aW9uICh4LCB5KSB7XG4gICAgcmV0dXJuIHRoaXMubGVmdCA8PSB4ICYmIHggPD0gdGhpcy5yaWdodCAmJiB0aGlzLnRvcCA8PSB5ICYmIHkgPD0gdGhpcy5ib3R0b207XG59O1xuZXhwb3J0IGNsYXNzIFBvc2l0aW9uTW9ub21lckluZm8ge1xuICAgIGNvbnN0cnVjdG9yKGNvdW50ID0gMCwgYm91bmRzID0gbmV3IERHLlJlY3QoMCwgMCwgMCwgMCkpIHtcbiAgICAgICAgdGhpcy5jb3VudCA9IGNvdW50O1xuICAgICAgICB0aGlzLmJvdW5kcyA9IGJvdW5kcztcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUG9zaXRpb25JbmZvIHtcbiAgICAvKiogZnJlcSA9IHt9LCByb3dDb3VudCA9IDBcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBOYW1lIG9mIHBvc2l0aW9uICgnMTExQScsICcxMTEuMScsIGV0YylcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gc3VtRm9ySGVpZ2h0Q2FsYyBTdW0gb2YgYWxsIG1vbm9tZXIgY291bnRzIGZvciBoZWlnaHQgY2FsY3VsYXRpb25cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gcm93Q291bnQgQ291bnQgb2YgZWxlbWVudHMgaW4gY29sdW1uXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXX0gZnJlcSBmcmVxdWVuY3kgb2YgbW9ub21lcnMgaW4gcG9zaXRpb25cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihuYW1lLCBmcmVxID0ge30sIHJvd0NvdW50ID0gMCwgc3VtRm9ySGVpZ2h0Q2FsYyA9IDApIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgdGhpcy5mcmVxID0gZnJlcTtcbiAgICAgICAgdGhpcy5yb3dDb3VudCA9IHJvd0NvdW50O1xuICAgICAgICB0aGlzLnN1bUZvckhlaWdodENhbGMgPSBzdW1Gb3JIZWlnaHRDYWxjO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBXZWJMb2dvIGV4dGVuZHMgREcuSnNWaWV3ZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnZpZXdlcklkID0gLTE7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgICAgLy8gcHJpdmF0ZSByZWFkb25seSBjb2xvclNjaGVtZTogQ29sb3JTY2hlbWUgPSBDb2xvclNjaGVtZXNbTnVjbGVvdGlkZXNXZWJMb2dvLnJlc2lkdWVzU2V0XTtcbiAgICAgICAgdGhpcy5jcCA9IG51bGw7XG4gICAgICAgIHRoaXMuYXhpc0hlaWdodCA9IDEyO1xuICAgICAgICB0aGlzLnNlcUNvbCA9IG51bGw7XG4gICAgICAgIHRoaXMuc3BsaXR0ZXIgPSBudWxsO1xuICAgICAgICAvLyBwcml2YXRlIG1heExlbmd0aDogbnVtYmVyID0gMTAwO1xuICAgICAgICB0aGlzLnBvc2l0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLnJvd3NNYXNrZWQgPSAwO1xuICAgICAgICB0aGlzLnJvd3NOdWxsID0gMDtcbiAgICAgICAgdGhpcy5wb3NpdGlvbk1hcmdpbiA9IDA7XG4gICAgICAgIHRoaXMucG9zaXRpb25OYW1lcyA9IFtdO1xuICAgICAgICB0aGlzLnN0YXJ0UG9zaXRpb24gPSAtMTtcbiAgICAgICAgdGhpcy5lbmRQb3NpdGlvbiA9IC0xO1xuICAgICAgICB0aGlzLnZpZXdTdWJzID0gW107XG4gICAgICAgIHRoaXMudmlld2VySWQgPSBXZWJMb2dvLnZpZXdlckNvdW50O1xuICAgICAgICBXZWJMb2dvLnZpZXdlckNvdW50ICs9IDE7XG4gICAgICAgIHRoaXMudGV4dEJhc2VsaW5lID0gJ3RvcCc7XG4gICAgICAgIHRoaXMudW5pdHNIYW5kbGVyID0gbnVsbDtcbiAgICAgICAgdGhpcy5fcG9zaXRpb25XaWR0aCA9IHRoaXMucG9zaXRpb25XaWR0aCA9IHRoaXMuZmxvYXQoJ3Bvc2l0aW9uV2lkdGgnLCAxNiAvKixcbiAgICAgICAgICB7ZWRpdG9yOiAnc2xpZGVyJywgbWluOiA0LCBtYXg6IDY0LCBwb3N0Zml4OiAncHgnfSovKTtcbiAgICAgICAgdGhpcy5taW5IZWlnaHQgPSB0aGlzLmZsb2F0KCdtaW5IZWlnaHQnLCA1MCAvKixcbiAgICAgICAgICB7ZWRpdG9yOiAnc2xpZGVyJywgbWluOiAyNSwgbWF4OiAyNTAsIHBvc3RmaXg6ICdweCd9Ki8pO1xuICAgICAgICB0aGlzLm1heEhlaWdodCA9IHRoaXMuZmxvYXQoJ21heEhlaWdodCcsIDEwMCAvKixcbiAgICAgICAgICB7ZWRpdG9yOiAnc2xpZGVyJywgbWluOiAyNSwgbWF4OiA1MDAsIHBvc3RmaXg6ICdweCd9Ki8pO1xuICAgICAgICB0aGlzLmNvbnNpZGVyTnVsbFNlcXVlbmNlcyA9IHRoaXMuYm9vbCgnY29uc2lkZXJOdWxsU2VxdWVuY2VzJywgZmFsc2UpO1xuICAgICAgICB0aGlzLnNlcXVlbmNlQ29sdW1uTmFtZSA9IHRoaXMuc3RyaW5nKCdzZXF1ZW5jZUNvbHVtbk5hbWUnLCBudWxsKTtcbiAgICAgICAgdGhpcy5zdGFydFBvc2l0aW9uTmFtZSA9IHRoaXMuc3RyaW5nKCdzdGFydFBvc2l0aW9uTmFtZScsIG51bGwpO1xuICAgICAgICB0aGlzLmVuZFBvc2l0aW9uTmFtZSA9IHRoaXMuc3RyaW5nKCdlbmRQb3NpdGlvbk5hbWUnLCBudWxsKTtcbiAgICAgICAgdGhpcy5maXhXaWR0aCA9IHRoaXMuYm9vbCgnZml4V2lkdGgnLCBmYWxzZSk7XG4gICAgICAgIHRoaXMudmVydGljYWxBbGlnbm1lbnQgPSB0aGlzLnN0cmluZygndmVydGljYWxBbGlnbm1lbnQnLCAnbWlkZGxlJywgeyBjaG9pY2VzOiBbJ3RvcCcsICdtaWRkbGUnLCAnYm90dG9tJ10gfSk7XG4gICAgICAgIHRoaXMuaG9yaXpvbnRhbEFsaWdubWVudCA9IHRoaXMuc3RyaW5nKCdob3Jpem9udGFsQWxpZ25tZW50JywgJ2NlbnRlcicsIHsgY2hvaWNlczogWydsZWZ0JywgJ2NlbnRlcicsICdyaWdodCddIH0pO1xuICAgICAgICB0aGlzLmZpdEFyZWEgPSB0aGlzLmJvb2woJ2ZpdEFyZWEnLCB0cnVlKTtcbiAgICAgICAgdGhpcy5zaHJpbmtFbXB0eVRhaWwgPSB0aGlzLmJvb2woJ3Nocmlua0VtcHR5VGFpbCcsIHRydWUpO1xuICAgICAgICB0aGlzLnNraXBFbXB0eVBvc2l0aW9ucyA9IHRoaXMuYm9vbCgnc2tpcEVtcHR5UG9zaXRpb25zJywgZmFsc2UpO1xuICAgICAgICB0aGlzLnBvc2l0aW9uTWFyZ2luU3RhdGUgPSB0aGlzLnN0cmluZygncG9zaXRpb25NYXJnaW5TdGF0ZScsICdhdXRvJywgeyBjaG9pY2VzOiBbJ2F1dG8nLCAnZW5hYmxlJywgJ29mZiddIH0pO1xuICAgICAgICBsZXQgZGVmYXVsdFZhbHVlRm9yUG9zaXRpb25NYXJnaW4gPSAwO1xuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbk1hcmdpblN0YXRlID09PSAnYXV0bycpIHtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZUZvclBvc2l0aW9uTWFyZ2luID0gNDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnBvc2l0aW9uTWFyZ2luID0gdGhpcy5pbnQoJ3Bvc2l0aW9uTWFyZ2luJywgZGVmYXVsdFZhbHVlRm9yUG9zaXRpb25NYXJnaW4sIHsgbWluOiAwLCBtYXg6IDE2IH0pO1xuICAgICAgICB0aGlzLnBvc2l0aW9uSGVpZ2h0ID0gdGhpcy5zdHJpbmcoJ3Bvc2l0aW9uSGVpZ2h0JywgUG9zaXRpb25IZWlnaHQuZnVsbCwgeyBjaG9pY2VzOiBbUG9zaXRpb25IZWlnaHQuZnVsbCwgUG9zaXRpb25IZWlnaHQuRW50cm9weV0gfSk7XG4gICAgfVxuICAgIC8qKiBGb3Igc3RhcnRQb3NpdGlvbiBlcXVhbHMgdG8gZW5kUG9zaXRpb24gTGVuZ3RoIGlzIDEgKi9cbiAgICBnZXQgTGVuZ3RoKCkge1xuICAgICAgICBpZiAodGhpcy5za2lwRW1wdHlQb3NpdGlvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc2l0aW9ucy5sZW5ndGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRQb3NpdGlvbiA8PSB0aGlzLmVuZFBvc2l0aW9uID8gdGhpcy5lbmRQb3NpdGlvbiAtIHRoaXMuc3RhcnRQb3NpdGlvbiArIDEgOiAwO1xuICAgIH1cbiAgICBnZXQgcG9zaXRpb25XaWR0aFdpdGhNYXJnaW4oKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCh0aGlzLnBvc2l0aW9uTWFyZ2luU3RhdGUgPT09ICdhdXRvJykgJiYgKCgoX2EgPSB0aGlzLnVuaXRzSGFuZGxlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldEFscGhhYmV0SXNNdWx0aWNoYXIoKSkgPT09IHRydWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcG9zaXRpb25XaWR0aCArIHRoaXMucG9zaXRpb25NYXJnaW47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb25NYXJnaW5TdGF0ZSA9PT0gJ2VuYWJsZScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbldpZHRoICsgdGhpcy5wb3NpdGlvbk1hcmdpbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcG9zaXRpb25XaWR0aDtcbiAgICB9XG4gICAgaW5pdCgpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignV2ViTG9nbyBzZWNvbmQgaW5pdGlhbGl6YXRpb24hJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmhlbHBVcmwgPSAnL2hlbHAvdmlzdWFsaXplL3ZpZXdlcnMvd2ViLWxvZ28ubWQnO1xuICAgICAgICAgICAgdGhpcy5tc2dIb3N0ID0gdWkuZGl2KCdObyBtZXNzYWdlJyk7XG4gICAgICAgICAgICB0aGlzLm1zZ0hvc3Quc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgICAgIHRoaXMuY2FudmFzID0gdWkuY2FudmFzKCk7XG4gICAgICAgICAgICB0aGlzLmNhbnZhcy5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICAgICAgICAgIHRoaXMuaG9zdCA9IHVpLmRpdihbdGhpcy5tc2dIb3N0LCB0aGlzLmNhbnZhc10pO1xuICAgICAgICAgICAgLy8gdGhpcy5zbGlkZXIgPSB1aS5yYW5nZVNsaWRlcigwLCAyMCwgMiwgNSk7XG4gICAgICAgICAgICAvLyB0aGlzLnNsaWRlci5yb290LnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICAgICAgICAgICAgLy8gdGhpcy5zbGlkZXIucm9vdC5zdHlsZS5oZWlnaHQgPSAnMTJweCc7XG4gICAgICAgICAgICBjb25zdCBnZXRNb25vbWVyID0gKHApID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBqUG9zID0gTWF0aC5mbG9vcihwLnggLyB0aGlzLnBvc2l0aW9uV2lkdGhXaXRoTWFyZ2luKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMucG9zaXRpb25zW2pQb3NdO1xuICAgICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA9PT0gdm9pZCAwKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW2pQb3MsIG51bGwsIG51bGxdO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vbm9tZXIgPSBPYmplY3Qua2V5cyhwb3NpdGlvbi5mcmVxKVxuICAgICAgICAgICAgICAgICAgICAuZmluZCgobSkgPT4gcG9zaXRpb24uZnJlcVttXS5ib3VuZHMuY29udGFpbnMocC54LCBwLnkpKTtcbiAgICAgICAgICAgICAgICBpZiAobW9ub21lciA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW2pQb3MsIG51bGwsIG51bGxdO1xuICAgICAgICAgICAgICAgIHJldHVybiBbalBvcywgbW9ub21lciwgcG9zaXRpb24uZnJlcVttb25vbWVyXV07XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy8gdGhpcy5zdWJzLnB1c2gocnhqcy5mcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5jYW52YXMsICdtb3VzZW92ZXInKS5zdWJzY3JpYmUoKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgIC8vIH0pKTtcbiAgICAgICAgICAgIHRoaXMudmlld1N1YnMucHVzaChyeGpzLmZyb21FdmVudCh0aGlzLmNhbnZhcywgJ21vdXNlbW92ZScpLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jYW52YXMpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICBjb25zdCBhcmdzID0gZTtcbiAgICAgICAgICAgICAgICBjb25zdCByID0gd2luZG93LmRldmljZVBpeGVsUmF0aW87XG4gICAgICAgICAgICAgICAgY29uc3QgY3Vyc29yUCA9IHRoaXMuY2FudmFzLmdldEN1cnNvclBvc2l0aW9uKGFyZ3MsIHIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IFtqUG9zLCBtb25vbWVyXSA9IGdldE1vbm9tZXIoY3Vyc29yUCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUZyYW1lICYmIHRoaXMuc2VxQ29sICYmIHRoaXMuc3BsaXR0ZXIgJiYgbW9ub21lcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByb3dDb3VudCA9IHd1LmNvdW50KCkudGFrZSh0aGlzLmRhdGFGcmFtZS5yb3dDb3VudCkuZmlsdGVyKChpUm93KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXEgPSB0aGlzLnNlcUNvbC5nZXQoaVJvdyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXFNID0gc2VxID8gdGhpcy5zcGxpdHRlcihzZXEpW3RoaXMuc3RhcnRQb3NpdGlvbiArIGpQb3NdIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoKHNlcU0gPT09IG1vbm9tZXIpIHx8IChzZXFNID09PSAnJyAmJiBtb25vbWVyID09PSAnLScpKSAmJiB0aGlzLmRhdGFGcmFtZS5maWx0ZXIuZ2V0KGlSb3cpO1xuICAgICAgICAgICAgICAgICAgICB9KS5yZWR1Y2UoKGNvdW50LCBpUm93KSA9PiBjb3VudCArIDEsIDApO1xuICAgICAgICAgICAgICAgICAgICB1aS50b29sdGlwLnNob3codWkuZGl2KFt1aS5kaXYoYCR7bW9ub21lcn1gKSwgdWkuZGl2KGAke3Jvd0NvdW50fSByb3dzYCldKSwgYXJncy54ICsgMTYsIGFyZ3MueSArIDE2KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHVpLnRvb2x0aXAuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIHRoaXMudmlld1N1YnMucHVzaChyeGpzLmZyb21FdmVudCh0aGlzLmNhbnZhcywgJ21vdXNlZG93bicpLnN1YnNjcmliZSgoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jYW52YXMgfHwgZS5idXR0b24gIT0gMClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFyZ3MgPSBlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHIgPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbztcbiAgICAgICAgICAgICAgICBjb25zdCBbalBvcywgbW9ub21lcl0gPSBnZXRNb25vbWVyKHRoaXMuY2FudmFzLmdldEN1cnNvclBvc2l0aW9uKGFyZ3MsIHIpKTtcbiAgICAgICAgICAgICAgICAvLyBwcmV2ZW50cyBkZXNlbGVjdCBhbGwgcm93cyBpZiB3ZSBtaXNzIG1vbm9tZXIgYm91bmRzXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUZyYW1lICYmIHRoaXMuc2VxQ29sICYmIHRoaXMuc3BsaXR0ZXIgJiYgbW9ub21lcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24uaW5pdCgoaVJvdykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VxID0gdGhpcy5zZXFDb2wuZ2V0KGlSb3cpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VxTSA9IHNlcSA/IHRoaXMuc3BsaXR0ZXIoc2VxKVt0aGlzLnN0YXJ0UG9zaXRpb24gKyBqUG9zXSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKChzZXFNID09PSBtb25vbWVyKSB8fCAoc2VxTSA9PT0gJycgJiYgbW9ub21lciA9PT0gJy0nKSkgJiYgdGhpcy5kYXRhRnJhbWUuZmlsdGVyLmdldChpUm93KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgdGhpcy52aWV3U3Vicy5wdXNoKHVpLm9uU2l6ZUNoYW5nZWQodGhpcy5yb290KS5zdWJzY3JpYmUodGhpcy5yb290T25TaXplQ2hhbmdlZC5iaW5kKHRoaXMpKSk7XG4gICAgICAgICAgICB0aGlzLnJvb3QuYXBwZW5kKHRoaXMuaG9zdCk7XG4gICAgICAgICAgICAvLyB0aGlzLnJvb3QuYXBwZW5kQ2hpbGQodGhpcy5zbGlkZXIucm9vdCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJvb3RPblNpemVDaGFuZ2VkKGFyZ3MpIHtcbiAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgIC8vIGNvbnNvbGUuZGVidWcoYFdlYkxvZ28ub25Sb290U2l6ZUNoYW5nZWQoKSBgICtcbiAgICAgICAgLy8gICBgcm9vdC53aWR0aD0ke3RoaXMucm9vdC5jbGllbnRXaWR0aH0sIHJvb3QuaGVpZ2h0PSR7dGhpcy5yb290LmNsaWVudEhlaWdodH0sIGAgK1xuICAgICAgICAvLyAgIGBjYW52YXMud2lkdGg9JHt0aGlzLmNhbnZhcy53aWR0aH0sIGNhbnZhcy5oZWlnaHQ9JHt0aGlzLmNhbnZhcy5oZWlnaHR9IC5gKTtcbiAgICB9XG4gICAgLyoqIEFzc2lnbnMge0BsaW5rIHNlcUNvbH0gYW5kIHtAbGluayBjcH0gYmFzZWQgb24ge0BsaW5rIHNlcXVlbmNlQ29sdW1uTmFtZX0gYW5kIGNhbGxzIHtAbGluayByZW5kZXJ9KCkuXG4gICAgICovXG4gICAgdXBkYXRlU2VxQ29sKCkge1xuICAgICAgICBpZiAodGhpcy5kYXRhRnJhbWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VxQ29sID0gdGhpcy5zZXF1ZW5jZUNvbHVtbk5hbWUgPyB0aGlzLmRhdGFGcmFtZS5jb2wodGhpcy5zZXF1ZW5jZUNvbHVtbk5hbWUpIDogbnVsbDtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlcUNvbCA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXFDb2wgPSBXZWJMb2dvLnBpY2tVcFNlcUNvbDIodGhpcy5kYXRhRnJhbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VxdWVuY2VDb2x1bW5OYW1lID0gdGhpcy5zZXFDb2wgPyB0aGlzLnNlcUNvbC5uYW1lIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnNlcUNvbCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuaXRzID0gdGhpcy5zZXFDb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IHRoaXMuc2VxQ29sLmdldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5zZXBhcmF0b3IpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3BsaXR0ZXIgPSBXZWJMb2dvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXBhcmF0b3IpO1xuICAgICAgICAgICAgICAgIHRoaXMudW5pdHNIYW5kbGVyID0gbmV3IFVuaXRzSGFuZGxlcih0aGlzLnNlcUNvbCk7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVQb3NpdGlvbnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNwID0gV2ViTG9nby5waWNrVXBQYWxldHRlKHRoaXMuc2VxQ29sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc3BsaXR0ZXIgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb25OYW1lcyA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRQb3NpdGlvbiA9IC0xO1xuICAgICAgICAgICAgICAgIHRoaXMuZW5kUG9zaXRpb24gPSAtMTtcbiAgICAgICAgICAgICAgICB0aGlzLmNwID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgIH1cbiAgICB1cGRhdGVQb3NpdGlvbnMoKSB7XG4gICAgICAgIGlmICghdGhpcy5zZXFDb2wpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGxldCBjYXRlZ29yaWVzO1xuICAgICAgICBpZiAodGhpcy5zaHJpbmtFbXB0eVRhaWwpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGljZXMgPSB0aGlzLmRhdGFGcmFtZS5maWx0ZXIuZ2V0U2VsZWN0ZWRJbmRleGVzKCk7XG4gICAgICAgICAgICBjYXRlZ29yaWVzID0gQXJyYXkuZnJvbShuZXcgU2V0KEFycmF5LmZyb20oQXJyYXkoaW5kaWNlcy5sZW5ndGgpLmtleXMoKSkubWFwKChpKSA9PiB0aGlzLnNlcUNvbC5nZXQoaW5kaWNlc1tpXSkpKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjYXRlZ29yaWVzID0gdGhpcy5zZXFDb2wuY2F0ZWdvcmllcztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtYXhMZW5ndGggPSBjYXRlZ29yaWVzLmxlbmd0aCA+IDAgPyBNYXRoLm1heCguLi5jYXRlZ29yaWVzLm1hcCgocykgPT4gcyAhPT0gbnVsbCA/IHRoaXMuc3BsaXR0ZXIocykubGVuZ3RoIDogMCkpIDogMDtcbiAgICAgICAgLy8gR2V0IHBvc2l0aW9uIG5hbWVzIGZyb20gZGF0YSBjb2x1bW4gdGFnICdwb3NpdGlvbk5hbWVzJ1xuICAgICAgICBjb25zdCBwb3NpdGlvbk5hbWVzVHh0ID0gdGhpcy5zZXFDb2wuZ2V0VGFnKCdwb3NpdGlvbk5hbWVzJyk7XG4gICAgICAgIC8vIEZhbGxiYWNrIGlmICdwb3NpdGlvbk5hbWVzJyB0YWcgaXMgbm90IHByb3ZpZGVkXG4gICAgICAgIHRoaXMucG9zaXRpb25OYW1lcyA9IHBvc2l0aW9uTmFtZXNUeHQgPyBwb3NpdGlvbk5hbWVzVHh0LnNwbGl0KCcsICcpLm1hcCgobikgPT4gbi50cmltKCkpIDpcbiAgICAgICAgICAgIFsuLi5BcnJheShtYXhMZW5ndGgpLmtleXMoKV0ubWFwKChqUG9zKSA9PiBgJHtqUG9zICsgMX1gKTtcbiAgICAgICAgdGhpcy5zdGFydFBvc2l0aW9uID0gKHRoaXMuc3RhcnRQb3NpdGlvbk5hbWUgJiYgdGhpcy5wb3NpdGlvbk5hbWVzICYmXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uTmFtZXMuaW5jbHVkZXModGhpcy5zdGFydFBvc2l0aW9uTmFtZSkpID9cbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25OYW1lcy5pbmRleE9mKHRoaXMuc3RhcnRQb3NpdGlvbk5hbWUpIDogMDtcbiAgICAgICAgdGhpcy5lbmRQb3NpdGlvbiA9ICh0aGlzLmVuZFBvc2l0aW9uTmFtZSAmJiB0aGlzLnBvc2l0aW9uTmFtZXMgJiZcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25OYW1lcy5pbmNsdWRlcyh0aGlzLmVuZFBvc2l0aW9uTmFtZSkpID9cbiAgICAgICAgICAgIHRoaXMucG9zaXRpb25OYW1lcy5pbmRleE9mKHRoaXMuZW5kUG9zaXRpb25OYW1lKSA6IChtYXhMZW5ndGggLSAxKTtcbiAgICB9XG4gICAgb25Qcm9wZXJ0eUNoYW5nZWQocHJvcGVydHkpIHtcbiAgICAgICAgLy8gY29uc29sZS5kZWJ1ZyhgV2ViTG9nby5vblByb3BlcnR5Q2hhbmdlZCggJHtwcm9wZXJ0eS5uYW1lfSA9ICcnIH0pYCk7XG4gICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2VkKHByb3BlcnR5KTtcbiAgICAgICAgc3dpdGNoIChwcm9wZXJ0eS5uYW1lKSB7XG4gICAgICAgICAgICBjYXNlICdjb25zaWRlck51bGxTZXF1ZW5jZXMnOlxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2VxdWVuY2VDb2x1bW5OYW1lJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNlcUNvbCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc3RhcnRQb3NpdGlvbk5hbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2VxQ29sKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdlbmRQb3NpdGlvbk5hbWUnOlxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2VxQ29sKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdwb3NpdGlvbldpZHRoJzpcbiAgICAgICAgICAgICAgICB0aGlzLl9wb3NpdGlvbldpZHRoID0gdGhpcy5wb3NpdGlvbldpZHRoO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbWluSGVpZ2h0JzpcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ21heEhlaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdmaXhXaWR0aCc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd2ZXJ0aWNhbEFsaWdubWVudCc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdob3Jpem9udGFsQWxpZ25tZW50JzpcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcih0cnVlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2ZpdEFyZWEnOlxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2hyaW5rRW1wdHlUYWlsJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9ucygpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2tpcEVtcHR5UG9zaXRpb25zJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9ucygpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncG9zaXRpb25NYXJnaW4nOlxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyKHRydWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncG9zaXRpb25NYXJnaW5TdGF0ZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdwb3NpdGlvbkhlaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXIodHJ1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25UYWJsZUF0dGFjaGVkKCkge1xuICAgICAgICBjb25zdCBfc3VwZXIgPSBPYmplY3QuY3JlYXRlKG51bGwsIHtcbiAgICAgICAgICAgIG9uVGFibGVBdHRhY2hlZDogeyBnZXQ6ICgpID0+IHN1cGVyLm9uVGFibGVBdHRhY2hlZCB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgZGF0YUZyYW1lVHh0ID0gdGhpcy5kYXRhRnJhbWUgPyAnZGF0YScgOiAnbnVsbCc7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBiaW86IFdlYkxvZ288JHt0aGlzLnZpZXdlcklkfT4ub25UYWJsZUF0dGFjaGVkKCBkYXRhRnJhbWUgPSAke2RhdGFGcmFtZVR4dH0gKSBzdGFydGApO1xuICAgICAgICAgICAgX3N1cGVyLm9uVGFibGVBdHRhY2hlZC5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTZXFDb2woKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGFGcmFtZSAhPT0gdm9pZCAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzLnB1c2godGhpcy5kYXRhRnJhbWUuc2VsZWN0aW9uLm9uQ2hhbmdlZC5zdWJzY3JpYmUoKF8pID0+IHRoaXMucmVuZGVyKCkpKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnMucHVzaCh0aGlzLmRhdGFGcmFtZS5maWx0ZXIub25DaGFuZ2VkLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9ucygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHlpZWxkIHRoaXMuaW5pdCgpO1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgYmlvOiBXZWJMb2dvPCR7dGhpcy52aWV3ZXJJZH0+Lm9uVGFibGVBdHRhY2hlZCgpIGVuZGApO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZGV0YWNoKCkge1xuICAgICAgICBjb25zdCBfc3VwZXIgPSBPYmplY3QuY3JlYXRlKG51bGwsIHtcbiAgICAgICAgICAgIGRldGFjaDogeyBnZXQ6ICgpID0+IHN1cGVyLmRldGFjaCB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgZGF0YUZyYW1lVHh0ID0gYCR7dGhpcy5kYXRhRnJhbWUgPyAnZGF0YScgOiAnbnVsbCd9YDtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYGJpbzogV2ViTG9nbzwke3RoaXMudmlld2VySWR9Pi5vblRhYmxlQXR0YWNoZWQoIGRhdGFGcmFtZSA9ICR7ZGF0YUZyYW1lVHh0fSApIHN0YXJ0YCk7XG4gICAgICAgICAgICBfc3VwZXIuZGV0YWNoLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB0aGlzLnZpZXdTdWJzLmZvckVhY2goKHN1YikgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICAgICAgdGhpcy5ob3N0LnJlbW92ZSgpO1xuICAgICAgICAgICAgdGhpcy5jYW52YXMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLm1zZ0hvc3QgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLmhvc3QgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBiaW86IFdlYkxvZ288JHt0aGlzLnZpZXdlcklkfT4ub25UYWJsZUF0dGFjaGVkKCkgZW5kYCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBfbnVsbFNlcXVlbmNlKGZpbGxlclJlc2lkdWUgPSAnWCcpIHtcbiAgICAgICAgaWYgKHRoaXMuY29uc2lkZXJOdWxsU2VxdWVuY2VzKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBBcnJheSh0aGlzLkxlbmd0aCkuZmlsbChmaWxsZXJSZXNpZHVlKS5qb2luKCcnKTtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICByZW1vdmVXaGVyZShhcnJheSwgcHJlZGljYXRlKSB7XG4gICAgICAgIGxldCBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gICAgICAgIGxldCB1cGRhdGVJdGVyYXRvciA9IDA7XG4gICAgICAgIGZvciAobGV0IGRlbGV0ZUl0ZXJhdG9yID0gMDsgZGVsZXRlSXRlcmF0b3IgPCBsZW5ndGg7IGRlbGV0ZUl0ZXJhdG9yKyspIHtcbiAgICAgICAgICAgIGlmICghcHJlZGljYXRlKGFycmF5W2RlbGV0ZUl0ZXJhdG9yXSkpIHtcbiAgICAgICAgICAgICAgICBhcnJheVt1cGRhdGVJdGVyYXRvcl0gPSBhcnJheVtkZWxldGVJdGVyYXRvcl07XG4gICAgICAgICAgICAgICAgdXBkYXRlSXRlcmF0b3IrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBhcnJheS5sZW5ndGggPSB1cGRhdGVJdGVyYXRvcjtcbiAgICAgICAgcmV0dXJuIGFycmF5O1xuICAgIH1cbiAgICBfcmVtb3ZlRW1wdHlQb3NpdGlvbnMoKSB7XG4gICAgICAgIGlmICh0aGlzLnNraXBFbXB0eVBvc2l0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVXaGVyZSh0aGlzLnBvc2l0aW9ucywgaXRlbSA9PiB7IHZhciBfYTsgcmV0dXJuICgoX2EgPSBpdGVtID09PSBudWxsIHx8IGl0ZW0gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGl0ZW0uZnJlcVsnLSddKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY291bnQpID09PSBpdGVtLnJvd0NvdW50OyB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBfY2FsY3VsYXRlKHIpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNhbnZhcyB8fCAhdGhpcy5ob3N0IHx8ICF0aGlzLnNlcUNvbCB8fCAhdGhpcy5kYXRhRnJhbWUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMudW5pdHNIYW5kbGVyID0gbmV3IFVuaXRzSGFuZGxlcih0aGlzLnNlcUNvbCk7XG4gICAgICAgIHRoaXMuY2FsY1NpemUoKTtcbiAgICAgICAgdGhpcy5wb3NpdGlvbnMgPSBuZXcgQXJyYXkodGhpcy5zdGFydFBvc2l0aW9uIDw9IHRoaXMuZW5kUG9zaXRpb24gPyB0aGlzLmVuZFBvc2l0aW9uIC0gdGhpcy5zdGFydFBvc2l0aW9uICsgMSA6IDApO1xuICAgICAgICBmb3IgKGxldCBqUG9zID0gMDsgalBvcyA8IHRoaXMuTGVuZ3RoOyBqUG9zKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHBvc05hbWUgPSB0aGlzLnBvc2l0aW9uTmFtZXNbdGhpcy5zdGFydFBvc2l0aW9uICsgalBvc107XG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uc1tqUG9zXSA9IG5ldyBQb3NpdGlvbkluZm8ocG9zTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gMjAyMi0wNS0wNSBhc2thbGtpbiBpbnN0cnVjdGVkIHRvIHNob3cgV2ViTG9nbyBiYXNlZCBvbiBmaWx0ZXIgKG5vdCBzZWxlY3Rpb24pXG4gICAgICAgIGNvbnN0IGluZGljZXMgPSB0aGlzLmRhdGFGcmFtZS5maWx0ZXIuZ2V0U2VsZWN0ZWRJbmRleGVzKCk7XG4gICAgICAgIC8vIGNvbnN0IGluZGljZXMgPSB0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24udHJ1ZUNvdW50ID4gMCA/IHRoaXMuZGF0YUZyYW1lLnNlbGVjdGlvbi5nZXRTZWxlY3RlZEluZGV4ZXMoKSA6XG4gICAgICAgIC8vICAgdGhpcy5kYXRhRnJhbWUuZmlsdGVyLmdldFNlbGVjdGVkSW5kZXhlcygpO1xuICAgICAgICB0aGlzLnJvd3NNYXNrZWQgPSBpbmRpY2VzLmxlbmd0aDtcbiAgICAgICAgdGhpcy5yb3dzTnVsbCA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgaSBvZiBpbmRpY2VzKSB7XG4gICAgICAgICAgICBsZXQgcyA9ICh0aGlzLnNlcUNvbC5nZXQoaSkpO1xuICAgICAgICAgICAgaWYgKCFzKSB7XG4gICAgICAgICAgICAgICAgcyA9IHRoaXMuX251bGxTZXF1ZW5jZSgpO1xuICAgICAgICAgICAgICAgICsrdGhpcy5yb3dzTnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHNlcU0gPSB0aGlzLnNwbGl0dGVyKHMpO1xuICAgICAgICAgICAgZm9yIChsZXQgalBvcyA9IDA7IGpQb3MgPCB0aGlzLkxlbmd0aDsgalBvcysrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcG1JbmZvID0gdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcTtcbiAgICAgICAgICAgICAgICBjb25zdCBtID0gc2VxTVt0aGlzLnN0YXJ0UG9zaXRpb24gKyBqUG9zXSB8fCAnLSc7XG4gICAgICAgICAgICAgICAgaWYgKCEobSBpbiBwbUluZm8pKVxuICAgICAgICAgICAgICAgICAgICBwbUluZm9bbV0gPSBuZXcgUG9zaXRpb25Nb25vbWVySW5mbygpO1xuICAgICAgICAgICAgICAgIHBtSW5mb1ttXS5jb3VudCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vI3JlZ2lvbiBQb2xpc2ggZnJlcSBjb3VudHNcbiAgICAgICAgZm9yIChsZXQgalBvcyA9IDA7IGpQb3MgPCB0aGlzLkxlbmd0aDsgalBvcysrKSB7XG4gICAgICAgICAgICAvLyBkZWxldGUgdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcVsnLSddO1xuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbnNbalBvc10ucm93Q291bnQgPSAwO1xuICAgICAgICAgICAgZm9yIChjb25zdCBtIGluIHRoaXMucG9zaXRpb25zW2pQb3NdLmZyZXEpXG4gICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbnNbalBvc10ucm93Q291bnQgKz0gdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcVttXS5jb3VudDtcbiAgICAgICAgICAgIGlmICh0aGlzLnBvc2l0aW9uSGVpZ2h0ID09IFBvc2l0aW9uSGVpZ2h0LkVudHJvcHkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uc1tqUG9zXS5zdW1Gb3JIZWlnaHRDYWxjID0gMDtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG0gaW4gdGhpcy5wb3NpdGlvbnNbalBvc10uZnJlcSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwbiA9IHRoaXMucG9zaXRpb25zW2pQb3NdLmZyZXFbbV0uY291bnQgLyB0aGlzLnBvc2l0aW9uc1tqUG9zXS5yb3dDb3VudDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbnNbalBvc10uc3VtRm9ySGVpZ2h0Q2FsYyArPSAtcG4gKiBNYXRoLmxvZzIocG4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyNlbmRyZWdpb25cbiAgICAgICAgdGhpcy5fcmVtb3ZlRW1wdHlQb3NpdGlvbnMoKTtcbiAgICAgICAgY29uc3QgYWJzb2x1dGVNYXhIZWlnaHQgPSB0aGlzLmNhbnZhcy5oZWlnaHQgLSB0aGlzLmF4aXNIZWlnaHQgKiByO1xuICAgICAgICAvLyBjb25zb2xlLmRlYnVnKGBXZWJMb2dvPCR7dGhpcy52aWV3ZXJJZH0+Ll9jYWxjdWxhdGUoKSBtYXhIZWlnaHQ9JHttYXhIZWlnaHR9LmApO1xuICAgICAgICAvLyNyZWdpb24gQ2FsY3VsYXRlIHNjcmVlblxuICAgICAgICBmb3IgKGxldCBqUG9zID0gMDsgalBvcyA8IHRoaXMuTGVuZ3RoOyBqUG9zKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGZyZXEgPSB0aGlzLnBvc2l0aW9uc1tqUG9zXS5mcmVxO1xuICAgICAgICAgICAgY29uc3Qgcm93Q291bnQgPSB0aGlzLnBvc2l0aW9uc1tqUG9zXS5yb3dDb3VudDtcbiAgICAgICAgICAgIGNvbnN0IGFscGhhYmV0U2l6ZSA9IHRoaXMuZ2V0QWxwaGFiZXRTaXplKCk7XG4gICAgICAgICAgICBpZiAoKHRoaXMucG9zaXRpb25IZWlnaHQgPT0gUG9zaXRpb25IZWlnaHQuRW50cm9weSkgJiYgKGFscGhhYmV0U2l6ZSA9PSBudWxsKSkge1xuICAgICAgICAgICAgICAgIGdyb2suc2hlbGwuZXJyb3IoJ1dlYkxvZ286IGFscGhhYmV0IGlzIHVuZGVmaW5lZC4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG1heEhlaWdodCA9ICh0aGlzLnBvc2l0aW9uSGVpZ2h0ID09IFBvc2l0aW9uSGVpZ2h0LkVudHJvcHkpID8gKGFic29sdXRlTWF4SGVpZ2h0ICogKE1hdGgubG9nMihhbHBoYWJldFNpemUpIC0gKHRoaXMucG9zaXRpb25zW2pQb3NdLnN1bUZvckhlaWdodENhbGMpKSAvIE1hdGgubG9nMihhbHBoYWJldFNpemUpKSA6IGFic29sdXRlTWF4SGVpZ2h0O1xuICAgICAgICAgICAgbGV0IHkgPSB0aGlzLmF4aXNIZWlnaHQgKiByICsgKGFic29sdXRlTWF4SGVpZ2h0IC0gbWF4SGVpZ2h0IC0gMSk7XG4gICAgICAgICAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXMoZnJlcSkuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhWzBdICE9PSAnLScgJiYgYlswXSAhPT0gJy0nKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYlsxXS5jb3VudCAtIGFbMV0uY291bnQ7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYVswXSA9PT0gJy0nICYmIGJbMF0gPT09ICctJylcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYVswXSA9PT0gJy0nKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgZWxzZSAvKiAoYlswXSA9PT0gJy0nKSAqL1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKzE7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cmllcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBtSW5mbyA9IGVudHJ5WzFdO1xuICAgICAgICAgICAgICAgIC8vIGNvbnN0IG06IHN0cmluZyA9IGVudHJ5WzBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGggPSBtYXhIZWlnaHQgKiBwbUluZm8uY291bnQgLyByb3dDb3VudDtcbiAgICAgICAgICAgICAgICBwbUluZm8uYm91bmRzID0gbmV3IERHLlJlY3QoalBvcyAqIHRoaXMucG9zaXRpb25XaWR0aFdpdGhNYXJnaW4sIHksIHRoaXMuX3Bvc2l0aW9uV2lkdGgsIGgpO1xuICAgICAgICAgICAgICAgIHkgKz0gaDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyNlbmRyZWdpb25cbiAgICB9XG4gICAgLy8gcmVmbGVjdCBjaGFuZ2VzIG1hZGUgdG8gZmlsdGVyL3NlbGVjdGlvblxuICAgIHJlbmRlcihyZWNhbGMgPSB0cnVlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKHRoaXMubXNnSG9zdCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VxQ29sICYmICF0aGlzLmNwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tc2dIb3N0LmlubmVyVGV4dCA9IGBVbmtub3duIHBhbGV0dGUgKGNvbHVtbiBzZW1UeXBlOiAnJHt0aGlzLnNlcUNvbC5zZW1UeXBlfScpLmA7XG4gICAgICAgICAgICAgICAgdGhpcy5tc2dIb3N0LnN0eWxlLmRpc3BsYXkgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubXNnSG9zdC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5jYW52YXMgfHwgIXRoaXMuc2VxQ29sIHx8ICF0aGlzLmRhdGFGcmFtZSB8fCAhdGhpcy5jcClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgZyA9IHRoaXMuY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgIGlmICghZylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgciA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvO1xuICAgICAgICBpZiAocmVjYWxjKVxuICAgICAgICAgICAgdGhpcy5fY2FsY3VsYXRlKHIpO1xuICAgICAgICBnLnJlc2V0VHJhbnNmb3JtKCk7XG4gICAgICAgIGcuZmlsbFN0eWxlID0gJ3doaXRlJztcbiAgICAgICAgZy5maWxsUmVjdCgwLCAwLCB0aGlzLmNhbnZhcy53aWR0aCwgdGhpcy5jYW52YXMuaGVpZ2h0KTtcbiAgICAgICAgZy50ZXh0QmFzZWxpbmUgPSB0aGlzLnRleHRCYXNlbGluZTtcbiAgICAgICAgLy8gUHJldmVudHMgZGl2aXNpb24gYnkgemVybyBvbiBMZW5ndGggPSAwXG4gICAgICAgIGlmICh0aGlzLnN0YXJ0UG9zaXRpb24gPT09IC0xIHx8IHRoaXMuZW5kUG9zaXRpb24gPT09IC0xKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAvLyNyZWdpb24gUGxvdCBwb3NpdGlvbk5hbWVzXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uRm9udFNpemUgPSAxMCAqIHI7XG4gICAgICAgIGcucmVzZXRUcmFuc2Zvcm0oKTtcbiAgICAgICAgZy5maWxsU3R5bGUgPSAnYmxhY2snO1xuICAgICAgICBnLnRleHRBbGlnbiA9ICdjZW50ZXInO1xuICAgICAgICBnLmZvbnQgPSBgJHtwb3NpdGlvbkZvbnRTaXplLnRvRml4ZWQoMSl9cHggUm9ib3RvLCBSb2JvdG8gTG9jYWwsIHNhbnMtc2VyaWZgO1xuICAgICAgICBjb25zdCBwb3NOYW1lTWF4V2lkdGggPSBNYXRoLm1heCguLi50aGlzLnBvc2l0aW9ucy5tYXAoKHBvcykgPT4gZy5tZWFzdXJlVGV4dChwb3MubmFtZSkud2lkdGgpKTtcbiAgICAgICAgY29uc3QgaFNjYWxlID0gcG9zTmFtZU1heFdpZHRoIDwgKHRoaXMuX3Bvc2l0aW9uV2lkdGggLSAyKSA/IDEgOiAodGhpcy5fcG9zaXRpb25XaWR0aCAtIDIpIC8gcG9zTmFtZU1heFdpZHRoO1xuICAgICAgICBmb3IgKGxldCBqUG9zID0gMDsgalBvcyA8IHRoaXMuTGVuZ3RoOyBqUG9zKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHBvcyA9IHRoaXMucG9zaXRpb25zW2pQb3NdO1xuICAgICAgICAgICAgZy5yZXNldFRyYW5zZm9ybSgpO1xuICAgICAgICAgICAgZy5zZXRUcmFuc2Zvcm0oaFNjYWxlLCAwLCAwLCAxLCBqUG9zICogdGhpcy5wb3NpdGlvbldpZHRoV2l0aE1hcmdpbiArIHRoaXMuX3Bvc2l0aW9uV2lkdGggLyAyLCAwKTtcbiAgICAgICAgICAgIGcuZmlsbFRleHQocG9zLm5hbWUsIDAsIDApO1xuICAgICAgICB9XG4gICAgICAgIC8vI2VuZHJlZ2lvbiBQbG90IHBvc2l0aW9uTmFtZXNcbiAgICAgICAgZm9yIChsZXQgalBvcyA9IDA7IGpQb3MgPCB0aGlzLkxlbmd0aDsgalBvcysrKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFttb25vbWVyLCBwbUluZm9dIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMucG9zaXRpb25zW2pQb3NdLmZyZXEpKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1vbm9tZXIgIT09ICctJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb25vbWVyVHh0ID0gV2ViTG9nby5tb25vbWVyVG9UZXh0KG1vbm9tZXIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiID0gcG1JbmZvLmJvdW5kcztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9udFN0eWxlID0gJzE2cHggUm9ib3RvLCBSb2JvdG8gTG9jYWwsIHNhbnMtc2VyaWYnO1xuICAgICAgICAgICAgICAgICAgICAvLyBIYWNrcyB0byBzY2FsZSB1cHBlcmNhc2UgY2hhcmFjdGVycyB0byB0YXJnZXQgcmVjdGFuZ2xlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwcGVyY2FzZUxldHRlckFzY2VudCA9IDAuMjU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHVwcGVyY2FzZUxldHRlckhlaWdodCA9IDEyLjI7XG4gICAgICAgICAgICAgICAgICAgIGcucmVzZXRUcmFuc2Zvcm0oKTtcbiAgICAgICAgICAgICAgICAgICAgZy5zdHJva2VTdHlsZSA9ICdsaWdodGdyYXknO1xuICAgICAgICAgICAgICAgICAgICBnLmxpbmVXaWR0aCA9IDE7XG4gICAgICAgICAgICAgICAgICAgIGcucmVjdChiLmxlZnQsIGIudG9wLCBiLndpZHRoLCBiLmhlaWdodCk7XG4gICAgICAgICAgICAgICAgICAgIGcuZmlsbFN0eWxlID0gKF9hID0gdGhpcy5jcC5nZXQobW9ub21lcikpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHRoaXMuY3AuZ2V0KCdvdGhlcicpO1xuICAgICAgICAgICAgICAgICAgICBnLnRleHRBbGlnbiA9ICdsZWZ0JztcbiAgICAgICAgICAgICAgICAgICAgZy5mb250ID0gZm9udFN0eWxlO1xuICAgICAgICAgICAgICAgICAgICAvL2cuZmlsbFJlY3QoYi5sZWZ0LCBiLnRvcCwgYi53aWR0aCwgYi5oZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtVG0gPSBnLm1lYXN1cmVUZXh0KG1vbm9tZXJUeHQpO1xuICAgICAgICAgICAgICAgICAgICAvLyBpZiAobU0uYWN0dWFsQm91bmRpbmdCb3hBc2NlbnQgIT0gMClcbiAgICAgICAgICAgICAgICAgICAgLy8gICBjb25zb2xlLmRlYnVnKGBtOiAke219LCBtTS5hY3R1YWxCb3VuZGluZ0JveEFzY2VudDogJHttTS5hY3R1YWxCb3VuZGluZ0JveEFzY2VudH1gKTtcbiAgICAgICAgICAgICAgICAgICAgZy5zZXRUcmFuc2Zvcm0oYi53aWR0aCAvIG1UbS53aWR0aCwgMCwgMCwgYi5oZWlnaHQgLyB1cHBlcmNhc2VMZXR0ZXJIZWlnaHQsIGIubGVmdCwgYi50b3ApO1xuICAgICAgICAgICAgICAgICAgICBnLmZpbGxUZXh0KG1vbm9tZXJUeHQsIDAsIC11cHBlcmNhc2VMZXR0ZXJBc2NlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBjYWxjU2l6ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNhbnZhcyB8fCAhdGhpcy5ob3N0KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCByID0gd2luZG93LmRldmljZVBpeGVsUmF0aW87XG4gICAgICAgIGxldCB3aWR0aCA9IHRoaXMuTGVuZ3RoICogdGhpcy5wb3NpdGlvbldpZHRoV2l0aE1hcmdpbiAvIHI7XG4gICAgICAgIGxldCBoZWlnaHQgPSBNYXRoLm1pbih0aGlzLm1heEhlaWdodCwgTWF0aC5tYXgodGhpcy5taW5IZWlnaHQsIHRoaXMucm9vdC5jbGllbnRIZWlnaHQpKTtcbiAgICAgICAgaWYgKHRoaXMuZml0QXJlYSkge1xuICAgICAgICAgICAgY29uc3QgeFNjYWxlID0gdGhpcy5yb290LmNsaWVudEhlaWdodCAvIGhlaWdodDtcbiAgICAgICAgICAgIGNvbnN0IHlTY2FsZSA9IHRoaXMucm9vdC5jbGllbnRXaWR0aCAvIHdpZHRoO1xuICAgICAgICAgICAgY29uc3Qgc2NhbGUgPSBNYXRoLm1heCgxLCBNYXRoLm1pbih4U2NhbGUsIHlTY2FsZSkpO1xuICAgICAgICAgICAgd2lkdGggPSB3aWR0aCAqIHNjYWxlO1xuICAgICAgICAgICAgaGVpZ2h0ID0gaGVpZ2h0ICogc2NhbGU7XG4gICAgICAgICAgICB0aGlzLl9wb3NpdGlvbldpZHRoID0gdGhpcy5wb3NpdGlvbldpZHRoICogc2NhbGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jYW52YXMud2lkdGggPSB3aWR0aCAqIHI7XG4gICAgICAgIHRoaXMuY2FudmFzLnN0eWxlLndpZHRoID0gYCR7d2lkdGh9cHhgO1xuICAgICAgICAvLyBjb25zdCBjYW52YXNIZWlnaHQ6IG51bWJlciA9IHdpZHRoID4gdGhpcy5yb290LmNsaWVudFdpZHRoID8gaGVpZ2h0IC0gOCA6IGhlaWdodDtcbiAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdoZWlnaHQnLCBgJHtoZWlnaHR9cHhgKTtcbiAgICAgICAgY29uc3QgY2FudmFzSGVpZ2h0ID0gdGhpcy5ob3N0LmNsaWVudEhlaWdodDtcbiAgICAgICAgdGhpcy5jYW52YXMuaGVpZ2h0ID0gY2FudmFzSGVpZ2h0ICogcjtcbiAgICAgICAgdGhpcy5jYW52YXMuc3R5bGUuc2V0UHJvcGVydHkoJ2hlaWdodCcsIGAke2NhbnZhc0hlaWdodH1weGApO1xuICAgICAgICAvLyBBZGp1c3QgaG9zdCBhbmQgcm9vdCB3aWR0aFxuICAgICAgICBpZiAodGhpcy5maXhXaWR0aCkge1xuICAgICAgICAgICAgLy8gZnVsbCB3aWR0aCBmb3IgY2FudmFzIGhvc3QgYW5kIHJvb3RcbiAgICAgICAgICAgIHRoaXMucm9vdC5zdHlsZS53aWR0aCA9IHRoaXMuaG9zdC5zdHlsZS53aWR0aCA9IGAke3dpZHRofXB4YDtcbiAgICAgICAgICAgIHRoaXMucm9vdC5zdHlsZS5oZWlnaHQgPSBgJHtoZWlnaHR9cHhgO1xuICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdvdmVyZmxvdycsICdoaWRkZW4nLCAnaW1wb3J0YW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBhbGxvdyBzY3JvbGwgY2FudmFzIGluIHJvb3RcbiAgICAgICAgICAgIHRoaXMucm9vdC5zdHlsZS53aWR0aCA9IHRoaXMuaG9zdC5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5vdmVyZmxvd1ggPSAnYXV0byFpbXBvcnRhbnQnO1xuICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdvdmVyZmxvdycsIG51bGwpO1xuICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCd0ZXh0LWFsaWduJywgdGhpcy5ob3Jpem9udGFsQWxpZ25tZW50KTtcbiAgICAgICAgICAgIC8vIHZlcnRpY2FsIGFsaWdubWVudFxuICAgICAgICAgICAgbGV0IGhvc3RUb3BNYXJnaW4gPSAwO1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnZlcnRpY2FsQWxpZ25tZW50KSB7XG4gICAgICAgICAgICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgICAgICAgICAgICAgaG9zdFRvcE1hcmdpbiA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ21pZGRsZSc6XG4gICAgICAgICAgICAgICAgICAgIGhvc3RUb3BNYXJnaW4gPSBNYXRoLm1heCgwLCAodGhpcy5yb290LmNsaWVudEhlaWdodCAtIGhlaWdodCkgLyAyKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnYm90dG9tJzpcbiAgICAgICAgICAgICAgICAgICAgaG9zdFRvcE1hcmdpbiA9IE1hdGgubWF4KDAsIHRoaXMucm9vdC5jbGllbnRIZWlnaHQgLSBoZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgnbWFyZ2luLXRvcCcsIGAke2hvc3RUb3BNYXJnaW59cHhgLCAnaW1wb3J0YW50Jyk7XG4gICAgICAgICAgICBpZiAodGhpcy5yb290LmNsaWVudEhlaWdodCA8IGhlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgnaGVpZ2h0JywgYCR7dGhpcy5yb290LmNsaWVudEhlaWdodH1weGApO1xuICAgICAgICAgICAgICAgIHRoaXMuaG9zdC5zdHlsZS5zZXRQcm9wZXJ0eSgnb3ZlcmZsb3cteScsIG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0LnN0eWxlLnNldFByb3BlcnR5KCdvdmVyZmxvdy15JywgJ2hpZGRlbicsICdpbXBvcnRhbnQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zb2xlLmRlYnVnKFxuICAgICAgICAvLyAgIGB0aGlzLnJvb3Quc3R5bGUuaGVpZ2h0ID0gJHt0aGlzLnJvb3Quc3R5bGUuaGVpZ2h0fVxcbmAgK1xuICAgICAgICAvLyAgIGB0aGlzLnJvb3QuY2xpZW50SGVpZ2h0ID0gJHt0aGlzLnJvb3QuY2xpZW50SGVpZ2h0fVxcbmAgK1xuICAgICAgICAvLyAgIGB0aGlzLmhvc3Quc3R5bGUuaGVpZ2h0ID0gJHt0aGlzLmhvc3Quc3R5bGUuaGVpZ2h0fVxcbmAgK1xuICAgICAgICAvLyAgIGB0aGlzLmhvc3QuY2xpZW50SGVpZ2h0ID0gJHt0aGlzLmhvc3QuY2xpZW50SGVpZ2h0fVxcbmAgK1xuICAgICAgICAvLyAgICdcXG4nICtcbiAgICAgICAgLy8gICBgdGhpcy5jYW52YXMuaGVpZ2h0ICAgICAgID0gJHt0aGlzLmNhbnZhcy5oZWlnaHR9XFxuYCArXG4gICAgICAgIC8vICAgYHRoaXMuY2FudmFzLnN0eWxlLmhlaWdodCA9ICR7dGhpcy5jYW52YXMuc3R5bGUuaGVpZ2h0fWApO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge0RHLkNvbHVtbn0gc2VxQ29sIENvbHVtbiB0byBsb29rIGZvciBhIHBhbGV0dGVcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gIG1pbkxlbmd0aCBtaW5pbXVtIGxlbmd0aCBvZiBzZXF1ZW5jZSB0byBkZXRlY3QgcGFsZXR0ZSAoZW1wdHkgc3RyaW5ncyBhcmUgYWxsb3dlZClcbiAgICAgKiBAcmV0dXJuIHtTZXFQYWxldHRlfSBQYWxldHRlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGFscGhhYmV0IG9mIHRoZSBzZXF1ZW5jZXMgaW4gdGhlIGNvbHVtblxuICAgICAqL1xuICAgIHN0YXRpYyBwaWNrVXBQYWxldHRlKHNlcUNvbCwgbWluTGVuZ3RoID0gNSkge1xuICAgICAgICBsZXQgcmVzID0gbnVsbDtcbiAgICAgICAgc3dpdGNoIChzZXFDb2wuc2VtVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBBbWlub2FjaWRzLlNlbVR5cGVNdWx0aXBsZUFsaWdubWVudDpcbiAgICAgICAgICAgICAgICByZXMgPSBBbWlub2FjaWRzUGFsZXR0ZXMuR3Jva0dyb3VwcztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgTnVjbGVvdGlkZXMuU2VtVHlwZU11bHRpcGxlQWxpZ25tZW50OlxuICAgICAgICAgICAgICAgIHJlcyA9IE51Y2xlb3RpZGVzUGFsZXR0ZXMuQ2hyb21hdG9ncmFtO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0YXRzID0gV2ViTG9nby5nZXRTdGF0cyhzZXFDb2wsIG1pbkxlbmd0aCwgV2ViTG9nby5zcGxpdHRlckFzRmFzdGEpO1xuICAgICAgICBjb25zdCBhbHBoYWJldENhbmRpZGF0ZXMgPSBbXG4gICAgICAgICAgICBbbmV3IFNldChPYmplY3Qua2V5cyhOdWNsZW90aWRlcy5OYW1lcykpLCBOdWNsZW90aWRlc1BhbGV0dGVzLkNocm9tYXRvZ3JhbV0sXG4gICAgICAgICAgICBbbmV3IFNldChPYmplY3Qua2V5cyhBbWlub2FjaWRzLk5hbWVzKSksIEFtaW5vYWNpZHNQYWxldHRlcy5Hcm9rR3JvdXBzXSxcbiAgICAgICAgXTtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIGxpa2VsaWhvb2RzIGZvciBhbHBoYWJldF9jYW5kaWRhdGVzXG4gICAgICAgIGNvbnN0IGFscGhhYmV0Q2FuZGlkYXRlc1NpbSA9IGFscGhhYmV0Q2FuZGlkYXRlc1xuICAgICAgICAgICAgLm1hcCgoYykgPT4gV2ViTG9nby5nZXRBbHBoYWJldFNpbWlsYXJpdHkoc3RhdHMuZnJlcSwgY1swXSkpO1xuICAgICAgICBjb25zdCBtYXhDb3MgPSBNYXRoLm1heCguLi5hbHBoYWJldENhbmRpZGF0ZXNTaW0pO1xuICAgICAgICBpZiAobWF4Q29zID4gMC41NSlcbiAgICAgICAgICAgIHJlcyA9IGFscGhhYmV0Q2FuZGlkYXRlc1thbHBoYWJldENhbmRpZGF0ZXNTaW0uaW5kZXhPZihtYXhDb3MpXVsxXTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgcmVzID0gVW5rbm93blNlcVBhbGV0dGVzLkNvbG9yO1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICBnZXRBbHBoYWJldFNpemUoKSB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIHJldHVybiAoX2IgPSAoX2EgPSB0aGlzLnVuaXRzSGFuZGxlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldEFscGhhYmV0U2l6ZSgpKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwO1xuICAgIH1cbiAgICAvKiogU3RhdHMgb2Ygc2VxdWVuY2VzIHdpdGggc3BlY2lmaWVkIHNwbGl0dGVyIGZ1bmMsIHJldHVybnMgeyBmcmVxLCBzYW1lTGVuZ3RoIH0uXG4gICAgICogQHBhcmFtIHtERy5Db2x1bW59IHNlcUNvbFxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBtaW5MZW5ndGhcbiAgICAgKiBAcGFyYW0ge1NwbGl0dGVyRnVuY30gc3BsaXR0ZXJcbiAgICAgKiBAcmV0dXJuIHsgU2VxQ29sU3RhdHMgfSwgc2FtZUxlbmd0aDogYm9vbGVhbiB9IHN0YXRzIG9mIGNvbHVtbiBzZXF1ZW5jZXNcbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0U3RhdHMoc2VxQ29sLCBtaW5MZW5ndGgsIHNwbGl0dGVyKSB7XG4gICAgICAgIGNvbnN0IGZyZXEgPSB7fTtcbiAgICAgICAgbGV0IHNhbWVMZW5ndGggPSB0cnVlO1xuICAgICAgICBsZXQgZmlyc3RMZW5ndGggPSBudWxsO1xuICAgICAgICBmb3IgKGNvbnN0IHNlcSBvZiBzZXFDb2wuY2F0ZWdvcmllcykge1xuICAgICAgICAgICAgY29uc3QgbVNlcSA9IHNwbGl0dGVyKHNlcSk7XG4gICAgICAgICAgICBpZiAoZmlyc3RMZW5ndGggPT0gbnVsbClcbiAgICAgICAgICAgICAgICBmaXJzdExlbmd0aCA9IG1TZXEubGVuZ3RoO1xuICAgICAgICAgICAgZWxzZSBpZiAobVNlcS5sZW5ndGggIT09IGZpcnN0TGVuZ3RoKVxuICAgICAgICAgICAgICAgIHNhbWVMZW5ndGggPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChtU2VxLmxlbmd0aCA+IG1pbkxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbSBvZiBtU2VxKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghKG0gaW4gZnJlcSkpXG4gICAgICAgICAgICAgICAgICAgICAgICBmcmVxW21dID0gMDtcbiAgICAgICAgICAgICAgICAgICAgZnJlcVttXSArPSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBmcmVxOiBmcmVxLCBzYW1lTGVuZ3RoOiBzYW1lTGVuZ3RoIH07XG4gICAgfVxuICAgIHN0YXRpYyBnZXRBbHBoYWJldFNpbWlsYXJpdHkoZnJlcSwgYWxwaGFiZXQsIGdhcFN5bWJvbCA9ICctJykge1xuICAgICAgICBjb25zdCBrZXlzID0gbmV3IFNldChbLi4ubmV3IFNldChPYmplY3Qua2V5cyhmcmVxKSksIC4uLmFscGhhYmV0XSk7XG4gICAgICAgIGtleXMuZGVsZXRlKGdhcFN5bWJvbCk7XG4gICAgICAgIGNvbnN0IGZyZXFBID0gW107XG4gICAgICAgIGNvbnN0IGFscGhhYmV0QSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IG0gb2Yga2V5cykge1xuICAgICAgICAgICAgZnJlcUEucHVzaChtIGluIGZyZXEgPyBmcmVxW21dIDogMCk7XG4gICAgICAgICAgICBhbHBoYWJldEEucHVzaChhbHBoYWJldC5oYXMobSkgPyAxIDogMCk7XG4gICAgICAgIH1cbiAgICAgICAgLyogVGhlcmUgd2VyZSBhIGZldyBpZGVhczogY2hpLXNxdWFyZWQsIHBlYXJzb24gY29ycmVsYXRpb24gKHZhcmlhbmNlPyksIHNjYWxhciBwcm9kdWN0ICovXG4gICAgICAgIGNvbnN0IGZyZXFWID0gbmV3IFZlY3RvcihmcmVxQSk7XG4gICAgICAgIGNvbnN0IGFscGhhYmV0ViA9IG5ldyBWZWN0b3IoYWxwaGFiZXRBKTtcbiAgICAgICAgcmV0dXJuIHZlY3RvckRvdFByb2R1Y3QoZnJlcVYsIGFscGhhYmV0VikgLyAodmVjdG9yTGVuZ3RoKGZyZXFWKSAqIHZlY3Rvckxlbmd0aChhbHBoYWJldFYpKTtcbiAgICB9XG4gICAgLy8gLyoqIEZpcnN0IHRyeSB0byBmaW5kIGNvbHVtbiB3aXRoIHNlbVR5cGUgJ2FsaWduZWRTZXF1ZW5jZScuXG4gICAgLy8gICogTmV4dCBsb29rIGZvciBjb2x1bW4gd2l0aCBkYXRhIGFscGhhYmV0IGNvcnJlc3BvbmRpbmcgdG8gYW55IG9mIHRoZSBrbm93biBwYWxldHRlcy5cbiAgICAvLyAgKiBAcGFyYW0ge0RHLkRhdGFGcmFtZX0gZGF0YUZyYW1lXG4gICAgLy8gICogQHJldHVybiB7REcuQ29sdW1ufSBUaGUgY29sdW1uIHdlIHdlcmUgbG9va2luZyBmb3Igb3IgbnVsbFxuICAgIC8vICAqL1xuICAgIC8vIHByaXZhdGUgcGlja1VwU2VxQ29sKGRhdGFGcmFtZTogREcuRGF0YUZyYW1lKTogREcuQ29sdW1uIHwgbnVsbCB7XG4gICAgLy8gICBsZXQgcmVzOiBERy5Db2x1bW4gfCBudWxsID0gZGF0YUZyYW1lLmNvbHVtbnMuYnlTZW1UeXBlKCdhbGlnbmVkU2VxdWVuY2UnKTtcbiAgICAvLyAgIGlmIChyZXMgPT0gbnVsbCkge1xuICAgIC8vICAgICBmb3IgKGNvbnN0IGNvbCBvZiBkYXRhRnJhbWUuY29sdW1ucykge1xuICAgIC8vICAgICAgIGNvbnN0IGNwID0gV2ViTG9nby5waWNrVXBQYWxldHRlKGNvbCBhcyBERy5Db2x1bW4sIDUpO1xuICAgIC8vICAgICAgIGlmIChjcCAhPT0gbnVsbCAmJiAhKGNwIGluc3RhbmNlb2YgVW5rbm93blNlcVBhbGV0dGUpKSB7XG4gICAgLy8gICAgICAgICByZXMgPSBjb2w7XG4gICAgLy8gICAgICAgICBicmVhaztcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgIH1cbiAgICAvLyAgIH1cbiAgICAvLyAgIHJldHVybiByZXM7XG4gICAgLy8gfVxuICAgIHN0YXRpYyBwaWNrVXBTZXFDb2wyKGRmKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3Qgc2VtVHlwZUNvbExpc3QgPSBkZi5jb2x1bW5zLmJ5U2VtVHlwZUFsbChERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEUpO1xuICAgICAgICBsZXQgcmVzQ29sID0gKF9hID0gc2VtVHlwZUNvbExpc3QuZmluZCgoY29sKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB1bml0cyA9IGNvbC5nZXRUYWcoREcuVEFHUy5VTklUUyk7XG4gICAgICAgICAgICByZXR1cm4gdW5pdHMgPyB1bml0cy5pbmRleE9mKCdNU0EnKSAhPT0gLTEgOiBmYWxzZTtcbiAgICAgICAgfSkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IG51bGw7XG4gICAgICAgIGlmICghcmVzQ29sICYmIHNlbVR5cGVDb2xMaXN0Lmxlbmd0aCA+IDApXG4gICAgICAgICAgICByZXNDb2wgPSBzZW1UeXBlQ29sTGlzdFswXTtcbiAgICAgICAgcmV0dXJuIHJlc0NvbDtcbiAgICB9XG4gICAgLyoqIFNwbGl0IHNlcXVlbmNlIGZvciBzaW5nbGUgY2hhcmFjdGVyIG1vbm9tZXJzLCBzcXVhcmUgYnJhY2tldHMgbXVsdGljaGFyIG1vbm9tZXIgbmFtZXMgb3IgZ2FwIHN5bWJvbC5cbiAgICAgKiBAcGFyYW0ge2FueX0gc2VxIG9iamVjdCB3aXRoIHNlcXVlbmNlXG4gICAgICogQHJldHVybiB7c3RyaW5nW119IGFycmF5IG9mIG1vbm9tZXJzXG4gICAgICovXG4gICAgc3RhdGljIHNwbGl0dGVyQXNGYXN0YShzZXEpIHtcbiAgICAgICAgY29uc3QgcmVzID0gd3Uoc2VxLnRvU3RyaW5nKCkubWF0Y2hBbGwoV2ViTG9nby5tb25vbWVyUmUpKVxuICAgICAgICAgICAgLm1hcCgobWEpID0+IHtcbiAgICAgICAgICAgIGxldCBtUmVzO1xuICAgICAgICAgICAgY29uc3QgbSA9IG1hWzBdO1xuICAgICAgICAgICAgaWYgKG0ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIGlmIChtIGluIFdlYkxvZ28uYWFTeW5vbnltcykge1xuICAgICAgICAgICAgICAgICAgICBtUmVzID0gV2ViTG9nby5hYVN5bm9ueW1zW21dO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbVJlcyA9ICcnO1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBMb25nIG1vbm9tZXIgJyR7bX0nIGhhcyBub3QgYSBzaG9ydCBzeW5vbnltLmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG1SZXMgPSBtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG1SZXM7XG4gICAgICAgIH0pLnRvQXJyYXkoKTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgLyoqIFNwbGl0cyBIZWxtIHN0cmluZyB0byBtb25vbWVycywgYnV0IGRvZXMgbm90IHJlcGxhY2UgbW9ub21lciBuYW1lcyB0byBvdGhlciBub3RhdGlvbiAoZS5nLiBmb3IgUk5BKS5cbiAgICAgKiBPbmx5IGZvciBsaW5lYXIgcG9seW1lcnMsIGRvZXMgbm90IHNwbGl0IFJOQSBmb3Igcmlib3NlIGFuZCBwaG9zcGhhdGUgbW9ub21lcnMuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNlcSBTb3VyY2Ugc3RyaW5nIG9mIEhFTE0gbm90YXRpb25cbiAgICAgKiBAcmV0dXJuIHtzdHJpbmdbXX1cbiAgICAgKi9cbiAgICBzdGF0aWMgc3BsaXR0ZXJBc0hlbG0oc2VxKSB7XG4gICAgICAgIFdlYkxvZ28uaGVsbVJlLmxhc3RJbmRleCA9IDA7XG4gICAgICAgIGNvbnN0IGVhID0gV2ViTG9nby5oZWxtUmUuZXhlYyhzZXEudG9TdHJpbmcoKSk7XG4gICAgICAgIGNvbnN0IGluU2VxID0gZWEgPyBlYVsyXSA6IG51bGw7XG4gICAgICAgIGNvbnN0IG1tUG9zdFByb2Nlc3MgPSAobW0pID0+IHtcbiAgICAgICAgICAgIFdlYkxvZ28uaGVsbVBwMVJlLmxhc3RJbmRleCA9IDA7XG4gICAgICAgICAgICBjb25zdCBwcDFNID0gV2ViTG9nby5oZWxtUHAxUmUuZXhlYyhtbSk7XG4gICAgICAgICAgICBpZiAocHAxTSAmJiBwcDFNLmxlbmd0aCA+PSAyKVxuICAgICAgICAgICAgICAgIHJldHVybiBwcDFNWzFdO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIHJldHVybiBtbTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgbW1MaXN0ID0gaW5TZXEgPyBpblNlcS5zcGxpdCgnLicpIDogW107XG4gICAgICAgIGNvbnN0IG1tTGlzdFJlcyA9IG1tTGlzdC5tYXAobW1Qb3N0UHJvY2Vzcyk7XG4gICAgICAgIHJldHVybiBtbUxpc3RSZXM7XG4gICAgfVxuICAgIC8qKiBHZXRzIG1ldGhvZCB0byBzcGxpdCBzZXF1ZW5jZSBieSBzZXBhcmF0b3JcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VwYXJhdG9yXG4gICAgICogQHBhcmFtIGxpbWl0XG4gICAgICogQHJldHVybiB7U3BsaXR0ZXJGdW5jfVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRTcGxpdHRlcldpdGhTZXBhcmF0b3Ioc2VwYXJhdG9yLCBsaW1pdCA9IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gKHNlcSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHNlcS5zcGxpdChzZXBhcmF0b3IsIGxpbWl0KTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLyoqIEdldCBzcGxpdHRlciBtZXRob2QgdG8gc3BsaXQgc2VxdWVuY2VzIHRvIG1vbm9tZXJzXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHVuaXRzXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNlcGFyYXRvclxuICAgICAqIEBwYXJhbSBsaW1pdFxuICAgICAqIEByZXR1cm4ge1NwbGl0dGVyRnVuY31cbiAgICAgKi9cbiAgICBzdGF0aWMgZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcGFyYXRvciwgbGltaXQgPSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHVuaXRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChcImZhc3RhXCIgLyogTk9UQVRJT04uRkFTVEEgKi8pKVxuICAgICAgICAgICAgcmV0dXJuIFdlYkxvZ28uc3BsaXR0ZXJBc0Zhc3RhO1xuICAgICAgICBlbHNlIGlmICh1bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8pKVxuICAgICAgICAgICAgcmV0dXJuIFdlYkxvZ28uZ2V0U3BsaXR0ZXJXaXRoU2VwYXJhdG9yKHNlcGFyYXRvciwgbGltaXQpO1xuICAgICAgICBlbHNlIGlmICh1bml0cy50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoXCJoZWxtXCIgLyogTk9UQVRJT04uSEVMTSAqLykpXG4gICAgICAgICAgICByZXR1cm4gV2ViTG9nby5zcGxpdHRlckFzSGVsbTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIHVuaXRzICR7dW5pdHN9IC5gKTtcbiAgICAgICAgLy8gVE9ETzogU3BsaXR0ZXIgZm9yIEhFTE1cbiAgICB9XG4gICAgc3RhdGljIGdldFNwbGl0dGVyRm9yQ29sdW1uKGNvbCkge1xuICAgICAgICBpZiAoY29sLnNlbVR5cGUgIT09IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSlcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgR2V0IHNwbGl0dGVyIGZvciBzZW1UeXBlIFwiJHtERy5TRU1UWVBFLk1BQ1JPTU9MRUNVTEV9XCIgb25seS5gKTtcbiAgICAgICAgY29uc3QgdW5pdHMgPSBjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpO1xuICAgICAgICBjb25zdCBzZXBhcmF0b3IgPSBjb2wuZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLnNlcGFyYXRvcik7XG4gICAgICAgIHJldHVybiBXZWJMb2dvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXBhcmF0b3IpO1xuICAgIH1cbiAgICAvKiBTaG9ydGVucyBtb25vbWVyIHJlcHJlc2VudGF0aW9uIHRleHQgZm9yIG1vbm9tZXJzIHdpdGggbG9uZyBuYW1lcy5cbiAgICAqKi9cbiAgICBzdGF0aWMgbW9ub21lclRvVGV4dChzcmMpIHtcbiAgICAgICAgY29uc3Qgc3JjVHh0ID0gc3JjLnRvU3RyaW5nKCk7XG4gICAgICAgIGlmIChzcmNUeHQubGVuZ3RoIDw9IDUpIHtcbiAgICAgICAgICAgIHJldHVybiBzcmNUeHQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwYXJ0cyA9IHd1KHNyYy50b1N0cmluZygpLm1hdGNoQWxsKFdlYkxvZ28ubG9uZ01vbm9tZXJQYXJ0UmUpKVxuICAgICAgICAgICAgICAgIC5tYXAoKG1hKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbVJlcyA9IG1hWzBdO1xuICAgICAgICAgICAgICAgIHJldHVybiBtUmVzO1xuICAgICAgICAgICAgfSkudG9BcnJheSgpO1xuICAgICAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICcgJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnQwID0gcGFydHNbMF07XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzVHh0ID0gcGFydDAubGVuZ3RoIDwgNiA/IGAke3BhcnQwfeKApmAgOiBgJHtwYXJ0MC5zdWJzdHJpbmcoMCwgNSl94oCmYDtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzVHh0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHN0YXRpYyBtb25vbWVyVG9TaG9ydChhbWlubywgbWF4TGVuZ3RoT2ZNb25vbWVyKSB7XG4gICAgICAgIHJldHVybiBhbWluby5sZW5ndGggPD0gbWF4TGVuZ3RoT2ZNb25vbWVyID8gYW1pbm8gOiBhbWluby5zdWJzdHJpbmcoMCwgbWF4TGVuZ3RoT2ZNb25vbWVyKSArICfigKYnO1xuICAgIH1cbn1cbldlYkxvZ28ucmVzaWR1ZXNTZXQgPSAnbnVjbGVvdGlkZXMnO1xuV2ViTG9nby52aWV3ZXJDb3VudCA9IC0xO1xuV2ViTG9nby5tb25vbWVyUmUgPSAvXFxbKFxcdyspXFxdfChcXHcpfCgtKS9nO1xuV2ViTG9nby5oZWxtUmUgPSAvKFBFUFRJREUxfEROQTF8Uk5BMSlcXHsoW159XSspfS9nO1xuV2ViTG9nby5oZWxtUHAxUmUgPSAvXFxbKFteXFxbXFxdXSspXS9nO1xuLyoqIE9ubHkgc29tZSBvZiB0aGUgc3lub255bXMuIFRoZXNlIHdlcmUgb2J0YWluZWQgZnJvbSB0aGUgY2x1c3RlcmVkIG9saWdvcGVwdGlkZSBkYXRhc2V0LiAqL1xuV2ViTG9nby5hYVN5bm9ueW1zID0ge1xuICAgICdbTWVObGVdJzogJ0wnLFxuICAgICdbTWVBXSc6ICdBJyxcbiAgICAnW01lR10nOiAnRycsXG4gICAgJ1tNZUZdJzogJ0YnLFxufTtcbldlYkxvZ28ubG9uZ01vbm9tZXJQYXJ0UmUgPSAvKFxcdyspL2c7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lkMlZpTFd4dloyOHVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKM1pXSXRiRzluYnk1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96czdPenM3T3pzN1FVRkJRU3hQUVVGUExFdEJRVXNzU1VGQlNTeE5RVUZOTEcxQ1FVRnRRaXhEUVVGRE8wRkJRekZETEU5QlFVOHNTMEZCU3l4RlFVRkZMRTFCUVUwc2FVSkJRV2xDTEVOQlFVTTdRVUZEZEVNc1QwRkJUeXhMUVVGTExFVkJRVVVzVFVGQlRTeHBRa0ZCYVVJc1EwRkJRenRCUVVWMFF5eFBRVUZQTEVWQlFVVXNUVUZCVFN4SlFVRkpMRU5CUVVNN1FVRkRjRUlzVDBGQlR5eExRVUZMTEVsQlFVa3NUVUZCVFN4TlFVRk5MRU5CUVVNN1FVRkZOMElzVDBGQlR5eEZRVUZETEUxQlFVMHNSVUZCUXl4TlFVRk5MR2xFUVVGcFJDeERRVUZETzBGQlEzWkZMRTlCUVU4c1JVRkJReXhaUVVGWkxFVkJRVVVzWjBKQlFXZENMRVZCUVVNc1RVRkJUU3hwUkVGQmFVUXNRMEZCUXp0QlFVTXZSaXhQUVVGUExFVkJRVU1zVlVGQlZTeEZRVUZGTEd0Q1FVRnJRaXhGUVVGRExFMUJRVTBzWlVGQlpTeERRVUZETzBGQlF6ZEVMRTlCUVU4c1JVRkJReXhYUVVGWExFVkJRVVVzYlVKQlFXMUNMRVZCUVVNc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVTm9SU3hQUVVGUExFVkJRVU1zYTBKQlFXdENMRVZCUVVNc1RVRkJUU3haUVVGWkxFTkJRVU03UVVGSE9VTXNUMEZCVHl4RlFVRlhMRmxCUVZrc1JVRkJReXhOUVVGTkxIZENRVUYzUWl4RFFVRkRPMEZCVVRsRUxFbEJRVXNzWTBGSFNqdEJRVWhFTEZkQlFVc3NZMEZCWXp0SlFVTnFRaXh4UTBGQmJVSXNRMEZCUVR0SlFVTnVRaXdyUWtGQllTeERRVUZCTzBGQlEyWXNRMEZCUXl4RlFVaEpMR05CUVdNc1MwRkJaQ3hqUVVGakxGRkJSMnhDTzBGQldVUTdPenRIUVVkSE8wRkJRMGdzYVVKQlFXbENMRU5CUVVNc1UwRkJVeXhEUVVGRExHbENRVUZwUWl4SFFVRkhMRlZCUVZNc1MwRkJhVUlzUlVGQlJTeERRVUZUTzBsQlEyNUdMRTFCUVUwc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1JVRkJSU3hEUVVGRE8wbEJRekZETEU5QlFVOHNTVUZCU1N4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRka1lzUTBGQlF5eERRVUZETzBGQlJVWXNSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVVVGQlVTeEhRVUZITEZWQlFWTXNRMEZCVXl4RlFVRkZMRU5CUVZNN1NVRkRlRVFzVDBGQlR5eEpRVUZKTEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NTVUZCU1N4SlFVRkpMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJRenRCUVVOb1JpeERRVUZETEVOQlFVTTdRVUZGUml4TlFVRk5MRTlCUVU4c2JVSkJRVzFDTzBsQlV6bENMRmxCUVZrc1VVRkJaMElzUTBGQlF5eEZRVUZGTEZOQlFXdENMRWxCUVVrc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRGRFVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1IwRkJSeXhMUVVGTExFTkJRVU03VVVGRGJrSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU03U1VGRGRrSXNRMEZCUXp0RFFVTkdPMEZCUlVRc1RVRkJUU3hQUVVGUExGbEJRVms3U1VGTmRrSTdPenM3TzA5QlMwYzdTVUZEU0N4WlFVRlpMRWxCUVZrc1JVRkJSU3hQUVVFMlF5eEZRVUZGTEVWQlFVVXNWMEZCYlVJc1EwRkJReXhGUVVGRkxHMUNRVUV5UWl4RFFVRkRPMUZCUXpOSUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUTJwQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUTJwQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVkQlFVY3NVVUZCVVN4RFFVRkRPMUZCUTNwQ0xFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1IwRkJSeXhuUWtGQlowSXNRMEZCUXp0SlFVTXpReXhEUVVGRE8wTkJRMFk3UVVGRlJDeE5RVUZOTEU5QlFVOHNUMEZCVVN4VFFVRlJMRVZCUVVVc1EwRkJReXhSUVVGUk8wbEJlVVYwUXp0UlFVTkZMRXRCUVVzc1JVRkJSU3hEUVVGRE8xRkJkRVZHTEdGQlFWRXNSMEZCVnl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVWMFFpeG5Ra0ZCVnl4SFFVRlpMRXRCUVVzc1EwRkJRenRSUVVWeVF5dzBSa0ZCTkVZN1VVRkRiRVlzVDBGQlJTeEhRVUZ6UWl4SlFVRkpMRU5CUVVNN1VVRlJMMElzWlVGQlZTeEhRVUZYTEVWQlFVVXNRMEZCUXp0UlFVVjRRaXhYUVVGTkxFZEJRVFpDTEVsQlFVa3NRMEZCUXp0UlFVTjRReXhoUVVGUkxFZEJRWGRDTEVsQlFVa3NRMEZCUXp0UlFVTTNReXh0UTBGQmJVTTdVVUZETTBJc1kwRkJVeXhIUVVGdFFpeEZRVUZGTEVOQlFVTTdVVUZGTDBJc1pVRkJWU3hIUVVGWExFTkJRVU1zUTBGQlF6dFJRVU4yUWl4aFFVRlJMRWRCUVZjc1EwRkJReXhEUVVGRE8xRkJWWFJDTEcxQ1FVRmpMRWRCUVZjc1EwRkJReXhEUVVGRE8xRkJWekZDTEd0Q1FVRmhMRWRCUVdFc1JVRkJSU3hEUVVGRE8xRkJSVGRDTEd0Q1FVRmhMRWRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRk0wSXNaMEpCUVZjc1IwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRWEZDZWtJc1lVRkJVU3hIUVVGdFFpeEZRVUZGTEVOQlFVTTdVVUZMY0VNc1NVRkJTU3hEUVVGRExGRkJRVkVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNWMEZCVnl4RFFVRkRPMUZCUTNCRExFOUJRVThzUTBGQlF5eFhRVUZYTEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUlhwQ0xFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NTMEZCU3l4RFFVRkRPMUZCUXpGQ0xFbEJRVWtzUTBGQlF5eFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUlhwQ0xFbEJRVWtzUTBGQlF5eGpRVUZqTEVkQlFVY3NTVUZCU1N4RFFVRkRMR0ZCUVdFc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEdWQlFXVXNSVUZCUlN4RlFVRkZMRU5CUVVFN09FUkJRMjVDTEVOQlFVTXNRMEZCUXp0UlFVTjRSQ3hKUVVGSkxFTkJRVU1zVTBGQlV5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhGUVVGRkxFVkJRVVVzUTBGQlFUdG5SVUZEWVN4RFFVRkRMRU5CUVVNN1VVRkRNVVFzU1VGQlNTeERRVUZETEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGZEJRVmNzUlVGQlJTeEhRVUZITEVOQlFVRTdaMFZCUTFrc1EwRkJReXhEUVVGRE8xRkJSVEZFTEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMSFZDUVVGMVFpeEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTNaRkxFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEc5Q1FVRnZRaXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzFGQlJXeEZMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExHMUNRVUZ0UWl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRMmhGTEVsQlFVa3NRMEZCUXl4bFFVRmxMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVVUxUkN4SlFVRkpMRU5CUVVNc1VVRkJVU3hIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJSVGRETEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRzFDUVVGdFFpeEZRVUZGTEZGQlFWRXNSVUZEYUVVc1JVRkJReXhQUVVGUExFVkJRVVVzUTBGQlF5eExRVUZMTEVWQlFVVXNVVUZCVVN4RlFVRkZMRkZCUVZFc1EwRkJReXhGUVVGRExFTkJRVU1zUTBGQlF6dFJRVU14UXl4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXh4UWtGQmNVSXNSVUZCUlN4UlFVRlJMRVZCUTNCRkxFVkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RlFVRkZMRkZCUVZFc1JVRkJSU3hQUVVGUExFTkJRVU1zUlVGQlF5eERRVUZETEVOQlFVTTdVVUZETVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU14UXl4SlFVRkpMRU5CUVVNc1pVRkJaU3hIUVVGSExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdVVUZETVVRc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zYjBKQlFXOUNMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGFrVXNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc2NVSkJRWEZDTEVWQlFVVXNUVUZCVFN4RlFVTnNSU3hGUVVGRExFOUJRVThzUlVGQlJTeERRVUZETEUxQlFVMHNSVUZCUlN4UlFVRlJMRVZCUVVVc1MwRkJTeXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETzFGQlEzaERMRWxCUVVrc05rSkJRVFpDTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTNSRExFbEJRVWtzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhMUVVGTExFMUJRVTBzUlVGQlJUdFpRVU55UXl3MlFrRkJOa0lzUjBGQlJ5eERRVUZETEVOQlFVTTdVMEZEY2tNN1VVRkRSQ3hKUVVGSkxFTkJRVU1zWTBGQll5eEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNOa0pCUVRaQ0xFVkJRVVVzUlVGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hGUVVGRkxFVkJRVU1zUTBGQlF5eERRVUZETzFGQlEyNUhMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4blFrRkJaMElzUlVGQlJTeGpRVUZqTEVOQlFVTXNTVUZCU1N4RlFVRkZMRVZCUVVNc1QwRkJUeXhGUVVGRkxFTkJRVU1zWTBGQll5eERRVUZETEVsQlFVa3NSVUZCUlN4alFVRmpMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVU1zUTBGQlF5eERRVUZETzBsQlEzSkpMRU5CUVVNN1NVRTFSRVFzTUVSQlFUQkVPMGxCUXpGRUxFbEJRVmtzVFVGQlRUdFJRVU5vUWl4SlFVRkpMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNSVUZCUlR0WlFVTXpRaXhQUVVGUExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNUVUZCVFN4RFFVRkRPMU5CUXpsQ08xRkJRMFFzVDBGQlR5eEpRVUZKTEVOQlFVTXNZVUZCWVN4SlFVRkpMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRWRCUVVjc1NVRkJTU3hEUVVGRExHRkJRV0VzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOb1J5eERRVUZETzBsQlJVUXNTVUZCV1N4MVFrRkJkVUk3TzFGQlEycERMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRXRCUVVzc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZCTEUxQlFVRXNTVUZCU1N4RFFVRkRMRmxCUVZrc01FTkJRVVVzYzBKQlFYTkNMRVZCUVVVc1RVRkJTeXhKUVVGSkxFTkJRVU1zUlVGQlJUdFpRVU51Unl4UFFVRlBMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXp0VFFVTnNSRHRSUVVORUxFbEJRVWtzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhMUVVGTExGRkJRVkVzUlVGQlJUdFpRVU42UXl4UFFVRlBMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXp0VFFVTnNSRHRSUVVWRUxFOUJRVThzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXp0SlFVTTNRaXhEUVVGRE8wbEJOa05oTEVsQlFVazdPMWxCUTJoQ0xFbEJRVWtzU1VGQlNTeERRVUZETEZkQlFWY3NSVUZCUlR0blFrRkRjRUlzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4blEwRkJaME1zUTBGQlF5eERRVUZETzJkQ1FVTm9SQ3hQUVVGUE8yRkJRMUk3V1VGRlJDeEpRVUZKTEVOQlFVTXNWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJRenRaUVVONFFpeEpRVUZKTEVOQlFVTXNUMEZCVHl4SFFVRkhMSEZEUVVGeFF5eERRVUZETzFsQlJYSkVMRWxCUVVrc1EwRkJReXhQUVVGUExFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRaUVVOd1F5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFZEJRVWNzVFVGQlRTeERRVUZETzFsQlJYQkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzUlVGQlJTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRPMWxCUXpGQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1IwRkJSeXhOUVVGTkxFTkJRVU03V1VGRmFrTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1IwRkJSeXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXp0WlFVVm9SQ3cyUTBGQk5rTTdXVUZETjBNc2VVTkJRWGxETzFsQlEzcERMREJEUVVFd1F6dFpRVVV4UXl4TlFVRk5MRlZCUVZVc1IwRkJSeXhEUVVGRExFTkJRVmNzUlVGQmRVUXNSVUZCUlR0blFrRkRkRVlzVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4MVFrRkJkVUlzUTBGQlF5eERRVUZETzJkQ1FVTTFSQ3hOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8yZENRVVYwUXl4SlFVRkpMRkZCUVZFc1MwRkJTeXhMUVVGTExFTkJRVU03YjBKQlEzSkNMRTlCUVU4c1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMmRDUVVVMVFpeE5RVUZOTEU5QlFVOHNSMEZCZFVJc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRPM0ZDUVVNelJDeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTXpSQ3hKUVVGSkxFOUJRVThzUzBGQlN5eFRRVUZUTzI5Q1FVTjJRaXhQUVVGUExFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRuUWtGRk5VSXNUMEZCVHl4RFFVRkRMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVVzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMnBFTEVOQlFVTXNRMEZCUXp0WlFVZEdMSEZIUVVGeFJ6dFpRVU55Unl4UFFVRlBPMWxCUlZBc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJZU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRV0VzUlVGQlJTeEZRVUZGTzJkQ1FVTnNSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMDdiMEpCUTJRc1QwRkJUenRuUWtGRlZDeE5RVUZOTEVsQlFVa3NSMEZCUnl4RFFVRmxMRU5CUVVNN1owSkJSVGRDTEUxQlFVMHNRMEZCUXl4SFFVRlhMRTFCUVUwc1EwRkJReXhuUWtGQlowSXNRMEZCUXp0blFrRkRNVU1zVFVGQlRTeFBRVUZQTEVkQlFXRXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEycEZMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8yZENRVVUxUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhUUVVGVExFbEJRVWtzU1VGQlNTeERRVUZETEUxQlFVMHNTVUZCU1N4SlFVRkpMRU5CUVVNc1VVRkJVU3hKUVVGSkxFOUJRVThzUlVGQlJUdHZRa0ZETjBRc1RVRkJUU3hSUVVGUkxFZEJRVWNzUlVGQlJTeERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVmtzUlVGQlJTeEZRVUZGTzNkQ1FVTm9SaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dDNRa0ZEYmtNc1RVRkJUU3hKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXp0M1FrRkRla1VzVDBGQlR5eERRVUZETEVOQlFVTXNTVUZCU1N4TFFVRkxMRTlCUVU4c1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeExRVUZMTEVWQlFVVXNTVUZCU1N4UFFVRlBMRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU1zU1VGQlNTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdiMEpCUTNKSExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCVXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hKUVVGSkxFVkJRVVVzUlVGQlJTeERRVUZETEV0QlFVc3NSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03YjBKQlEycEVMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NUMEZCVHl4RlFVRkZMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NVVUZCVVN4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNRMEZCUXp0cFFrRkRka2M3Y1VKQlFVMDdiMEpCUTB3c1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0cFFrRkRia0k3V1VGRFNDeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUlVvc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJZU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRV0VzUlVGQlJTeEZRVUZGTzJkQ1FVTnNSeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU03YjBKQlF5OUNMRTlCUVU4N1owSkJSVlFzVFVGQlRTeEpRVUZKTEVkQlFVY3NRMEZCWlN4RFFVRkRPMmRDUVVNM1FpeE5RVUZOTEVOQlFVTXNSMEZCVnl4TlFVRk5MRU5CUVVNc1owSkJRV2RDTEVOQlFVTTdaMEpCUXpGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNUMEZCVHl4RFFVRkRMRWRCUVVjc1ZVRkJWU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJSVE5GTEhWRVFVRjFSRHRuUWtGRGRrUXNTVUZCU1N4SlFVRkpMRU5CUVVNc1UwRkJVeXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NTVUZCU1N4RFFVRkRMRkZCUVZFc1NVRkJTU3hQUVVGUExFVkJRVVU3YjBKQlF6ZEVMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hGUVVGRk8zZENRVU55UXl4TlFVRk5MRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenQzUWtGRGJrTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF6dDNRa0ZEZWtVc1QwRkJUeXhEUVVGRExFTkJRVU1zU1VGQlNTeExRVUZMTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hMUVVGTExFVkJRVVVzU1VGQlNTeFBRVUZQTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03YjBKQlEzSkhMRU5CUVVNc1EwRkJReXhEUVVGRE8ybENRVU5LTzFsQlEwZ3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVWS0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkJReXhoUVVGaExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVVTNSaXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03V1VGRE5VSXNNa05CUVRKRE8xbEJSVE5ETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRGNFSXNRMEZCUXp0TFFVRkJPMGxCUlU4c2FVSkJRV2xDTEVOQlFVTXNTVUZCVXp0UlFVTnFReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUld4Q0xHbEVRVUZwUkR0UlFVTnFSQ3h4UmtGQmNVWTdVVUZEY2tZc2FVWkJRV2xHTzBsQlEyNUdMRU5CUVVNN1NVRkZSRHRQUVVOSE8wbEJRMHNzV1VGQldUdFJRVU5zUWl4SlFVRkpMRWxCUVVrc1EwRkJReXhUUVVGVExFVkJRVVU3V1VGRGJFSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU03V1VGRE0wWXNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hKUVVGSkxFbEJRVWtzUlVGQlJUdG5Ra0ZEZGtJc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dG5Ra0ZEY0VRc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTTdZVUZEYWtVN1dVRkRSQ3hKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVTdaMEpCUTJZc1RVRkJUU3hMUVVGTExFZEJRVmNzU1VGQlNTeERRVUZETEUxQlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0blFrRkRla1FzVFVGQlRTeFRRVUZUTEVkQlFWY3NTVUZCU1N4RFFVRkRMRTFCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRuUWtGRE0wVXNTVUZCU1N4RFFVRkRMRkZCUVZFc1IwRkJSeXhQUVVGUExFTkJRVU1zVjBGQlZ5eERRVUZETEV0QlFVc3NSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJRenRuUWtGRGRFUXNTVUZCU1N4RFFVRkRMRmxCUVZrc1IwRkJSeXhKUVVGSkxGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1owSkJSV3hFTEVsQlFVa3NRMEZCUXl4bFFVRmxMRVZCUVVVc1EwRkJRenRuUWtGRGRrSXNTVUZCU1N4RFFVRkRMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRoUVVNNVF6dHBRa0ZCVFR0blFrRkRUQ3hKUVVGSkxFTkJRVU1zVVVGQlVTeEhRVUZITEVsQlFVa3NRMEZCUXp0blFrRkRja0lzU1VGQlNTeERRVUZETEdGQlFXRXNSMEZCUnl4RlFVRkZMRU5CUVVNN1owSkJRM2hDTEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEzaENMRWxCUVVrc1EwRkJReXhYUVVGWExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTNSQ0xFbEJRVWtzUTBGQlF5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRPMkZCUTJoQ08xTkJRMFk3VVVGRFJDeEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1NVRkRhRUlzUTBGQlF6dEpRVVZQTEdWQlFXVTdVVUZEY2tJc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTzFsQlEyUXNUMEZCVHp0UlFVVlVMRWxCUVVrc1ZVRkJPRUlzUTBGQlF6dFJRVU51UXl4SlFVRkpMRWxCUVVrc1EwRkJReXhsUVVGbExFVkJRVVU3V1VGRGVFSXNUVUZCVFN4UFFVRlBMRWRCUVdVc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzUTBGQlF6dFpRVU4yUlN4VlFVRlZMRWRCUVVjc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVkQlFVY3NRMEZETjBJc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJVeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRUUVVNdlJqdGhRVUZOTzFsQlEwd3NWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVlVGQlZTeERRVUZETzFOQlEzSkRPMUZCUTBRc1RVRkJUU3hUUVVGVExFZEJRVWNzVlVGQlZTeERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVOc1JTeERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhMUVVGTExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVjZSQ3d3UkVGQk1FUTdVVUZETVVRc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eGxRVUZsTEVOQlFVTXNRMEZCUXp0UlFVTTNSQ3hyUkVGQmEwUTdVVUZEYkVRc1NVRkJTU3hEUVVGRExHRkJRV0VzUjBGQlJ5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVONlJpeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSVFZFTEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRWxCUVVrc1NVRkJTU3hEUVVGRExHRkJRV0U3V1VGRGFFVXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzUkVMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRla1FzU1VGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhsUVVGbExFbEJRVWtzU1VGQlNTeERRVUZETEdGQlFXRTdXVUZETlVRc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU53UkN4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNaRkxFTkJRVU03U1VGRlpTeHBRa0ZCYVVJc1EwRkJReXhSUVVGeFFqdFJRVU55UkN4M1JVRkJkMFU3VVVGRGVFVXNTMEZCU3l4RFFVRkRMR2xDUVVGcFFpeERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUld4RExGRkJRVkVzVVVGQlVTeERRVUZETEVsQlFVa3NSVUZCUlR0WlFVTjJRaXhMUVVGTExIVkNRVUYxUWp0blFrRkRNVUlzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRuUWtGRGJFSXNUVUZCVFR0WlFVTlNMRXRCUVVzc2IwSkJRVzlDTzJkQ1FVTjJRaXhKUVVGSkxFTkJRVU1zV1VGQldTeEZRVUZGTEVOQlFVTTdaMEpCUTNCQ0xFMUJRVTA3V1VGRFVpeExRVUZMTEcxQ1FVRnRRanRuUWtGRGRFSXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8yZENRVU53UWl4TlFVRk5PMWxCUTFJc1MwRkJTeXhwUWtGQmFVSTdaMEpCUTNCQ0xFbEJRVWtzUTBGQlF5eFpRVUZaTEVWQlFVVXNRMEZCUXp0blFrRkRjRUlzVFVGQlRUdFpRVU5TTEV0QlFVc3NaVUZCWlR0blFrRkRiRUlzU1VGQlNTeERRVUZETEdOQlFXTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRE8yZENRVU42UXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzJkQ1FVTnNRaXhOUVVGTk8xbEJRMUlzUzBGQlN5eFhRVUZYTzJkQ1FVTmtMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdaMEpCUTJ4Q0xFMUJRVTA3V1VGRFVpeExRVUZMTEZkQlFWYzdaMEpCUTJRc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0blFrRkRiRUlzVFVGQlRUdFpRVU5TTEV0QlFVc3NWVUZCVlR0blFrRkRZaXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMmRDUVVOc1FpeE5RVUZOTzFsQlExSXNTMEZCU3l4dFFrRkJiVUk3WjBKQlEzUkNMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdaMEpCUTJ4Q0xFMUJRVTA3V1VGRFVpeExRVUZMTEhGQ1FVRnhRanRuUWtGRGVFSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dG5Ra0ZEYkVJc1RVRkJUVHRaUVVOU0xFdEJRVXNzVTBGQlV6dG5Ra0ZEV2l4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzJkQ1FVTnNRaXhOUVVGTk8xbEJRMUlzUzBGQlN5eHBRa0ZCYVVJN1owSkJRM0JDTEVsQlFVa3NRMEZCUXl4bFFVRmxMRVZCUVVVc1EwRkJRenRuUWtGRGRrSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dG5Ra0ZEYkVJc1RVRkJUVHRaUVVOU0xFdEJRVXNzYjBKQlFXOUNPMmRDUVVOMlFpeEpRVUZKTEVOQlFVTXNaVUZCWlN4RlFVRkZMRU5CUVVNN1owSkJRM1pDTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03WjBKQlEyeENMRTFCUVUwN1dVRkRVaXhMUVVGTExHZENRVUZuUWp0blFrRkRia0lzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRuUWtGRGJFSXNUVUZCVFR0WlFVTlNMRXRCUVVzc2NVSkJRWEZDTzJkQ1FVTjRRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMmRDUVVOc1FpeE5RVUZOTzFsQlExSXNTMEZCU3l4blFrRkJaMEk3WjBKQlEyNUNMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdaMEpCUTJ4Q0xFMUJRVTA3VTBGRFVEdEpRVU5JTEVOQlFVTTdTVUZGY1VJc1pVRkJaVHM3T3pzN1dVRkRia01zVFVGQlRTeFpRVUZaTEVkQlFWY3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1dVRkRPVVFzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4blFrRkJaMElzU1VGQlNTeERRVUZETEZGQlFWRXNhME5CUVd0RExGbEJRVmtzVlVGQlZTeERRVUZETEVOQlFVTTdXVUZEY2tjc1QwRkJUU3hsUVVGbExGbEJRVWM3V1VGRmVFSXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hEUVVGRE8xbEJSWEJDTEVsQlFVa3NTVUZCU1N4RFFVRkRMRk5CUVZNc1MwRkJTeXhMUVVGTExFTkJRVU1zUlVGQlJUdG5Ra0ZETjBJc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhUUVVGVExFTkJRVU1zVTBGQlV5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRGJrWXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1UwRkJVeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZPMjlDUVVNM1JDeEpRVUZKTEVOQlFVTXNaVUZCWlN4RlFVRkZMRU5CUVVNN2IwSkJRM1pDTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRuUWtGRGFFSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRoUVVOTU8xbEJSVVFzVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1dVRkRiRUlzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4blFrRkJaMElzU1VGQlNTeERRVUZETEZGQlFWRXNlVUpCUVhsQ0xFTkJRVU1zUTBGQlF6dFJRVU40UlN4RFFVRkRPMHRCUVVFN1NVRkZjVUlzVFVGQlRUczdPenM3V1VGRE1VSXNUVUZCVFN4WlFVRlpMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzFsQlF6TkVMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zWjBKQlFXZENMRWxCUVVrc1EwRkJReXhSUVVGUkxHdERRVUZyUXl4WlFVRlpMRlZCUVZVc1EwRkJReXhEUVVGRE8xbEJRM0pITEU5QlFVMHNUVUZCVFN4WlFVRkhPMWxCUldZc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXl4RFFVRkRPMWxCUTJ4RUxFbEJRVWtzUTBGQlF5eEpRVUZMTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1dVRkRjRUlzU1VGQlNTeERRVUZETEUxQlFVMHNSMEZCUnl4VFFVRlRMRU5CUVVNN1dVRkRlRUlzU1VGQlNTeERRVUZETEU5QlFVOHNSMEZCUnl4VFFVRlRMRU5CUVVNN1dVRkRla0lzU1VGQlNTeERRVUZETEVsQlFVa3NSMEZCUnl4VFFVRlRMRU5CUVVNN1dVRkZkRUlzU1VGQlNTeERRVUZETEZkQlFWY3NSMEZCUnl4TFFVRkxMRU5CUVVNN1dVRkRla0lzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4blFrRkJaMElzU1VGQlNTeERRVUZETEZGQlFWRXNlVUpCUVhsQ0xFTkJRVU1zUTBGQlF6dFJRVU40UlN4RFFVRkRPMHRCUVVFN1NVRkZVeXhoUVVGaExFTkJRVU1zWVVGQllTeEhRVUZITEVkQlFVYzdVVUZEZWtNc1NVRkJTU3hKUVVGSkxFTkJRVU1zY1VKQlFYRkNPMWxCUXpWQ0xFOUJRVThzU1VGQlNTeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRk4wUXNUMEZCVHl4RlFVRkZMRU5CUVVNN1NVRkRXaXhEUVVGRE8wbEJSVk1zVjBGQlZ5eERRVUZETEV0QlFXbENMRVZCUVVVc1UwRkJPRUk3VVVGRGNrVXNTVUZCU1N4TlFVRk5MRWRCUVVjc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF6dFJRVU14UWl4SlFVRkpMR05CUVdNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGRrSXNTMEZCU3l4SlFVRkpMR05CUVdNc1IwRkJSeXhEUVVGRExFVkJRVVVzWTBGQll5eEhRVUZITEUxQlFVMHNSVUZCUlN4alFVRmpMRVZCUVVVc1JVRkJSVHRaUVVOMFJTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhqUVVGakxFTkJRVU1zUTBGQlF5eEZRVUZGTzJkQ1FVTnlReXhMUVVGTExFTkJRVU1zWTBGQll5eERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRE8yZENRVU01UXl4alFVRmpMRVZCUVVVc1EwRkJRenRoUVVOc1FqdFRRVU5HTzFGQlEwUXNTMEZCU3l4RFFVRkRMRTFCUVUwc1IwRkJSeXhqUVVGakxFTkJRVU03VVVGRE9VSXNUMEZCVHl4TFFVRkxMRU5CUVVNN1NVRkRaaXhEUVVGRE8wbEJSMU1zY1VKQlFYRkNPMUZCUXpkQ0xFbEJRVWtzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhGUVVGRk8xbEJRek5DTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUlVGQlJTeEpRVUZKTEVOQlFVTXNSVUZCUlN4WFFVRkRMRTlCUVVFc1EwRkJRU3hOUVVGQkxFbEJRVWtzWVVGQlNpeEpRVUZKTEhWQ1FVRktMRWxCUVVrc1EwRkJSU3hKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETERCRFFVRkZMRXRCUVVzc1RVRkJTeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZCTEVWQlFVRXNRMEZCUXl4RFFVRkRPMU5CUTNCR08wbEJRMGdzUTBGQlF6dEpRVVZUTEZWQlFWVXNRMEZCUXl4RFFVRlRPMUZCUXpWQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVTBGQlV6dFpRVU12UkN4UFFVRlBPMUZCUTFRc1NVRkJTU3hEUVVGRExGbEJRVmtzUjBGQlJ5eEpRVUZKTEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGSGJFUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRE8xRkJSV2hDTEVsQlFVa3NRMEZCUXl4VFFVRlRMRWRCUVVjc1NVRkJTU3hMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEdGQlFXRXNTVUZCU1N4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJReXhoUVVGaExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOdVNDeExRVUZMTEVsQlFVa3NTVUZCU1N4SFFVRkhMRU5CUVVNc1JVRkJSU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1JVRkJSVHRaUVVNM1F5eE5RVUZOTEU5QlFVOHNSMEZCVnl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkRkRVVzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhKUVVGSkxGbEJRVmtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0VFFVTnNSRHRSUVVWRUxHbEdRVUZwUmp0UlFVTnFSaXhOUVVGTkxFOUJRVThzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4RFFVRkRPMUZCUXpORUxESkhRVUV5Unp0UlFVTXpSeXhuUkVGQlowUTdVVUZGYUVRc1NVRkJTU3hEUVVGRExGVkJRVlVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRPMUZCUTJwRExFbEJRVWtzUTBGQlF5eFJRVUZSTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUld4Q0xFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NUMEZCVHl4RlFVRkZPMWxCUTNaQ0xFbEJRVWtzUTBGQlF5eEhRVUZ0UWl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1dVRkZOME1zU1VGQlNTeERRVUZETEVOQlFVTXNSVUZCUlR0blFrRkRUaXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEdGQlFXRXNSVUZCUlN4RFFVRkRPMmRDUVVONlFpeEZRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN1lVRkRha0k3V1VGRlJDeE5RVUZOTEVsQlFVa3NSMEZCWVN4SlFVRkpMRU5CUVVNc1VVRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzcERMRXRCUVVzc1NVRkJTU3hKUVVGSkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEZRVUZGTzJkQ1FVTTNReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF6dG5Ra0ZEZWtNc1RVRkJUU3hEUVVGRExFZEJRVmNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUjBGQlJ5eERRVUZETzJkQ1FVTjZSQ3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NUVUZCVFN4RFFVRkRPMjlDUVVOb1FpeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3h0UWtGQmJVSXNSVUZCUlN4RFFVRkRPMmRDUVVONFF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU03WVVGRGJrSTdVMEZEUmp0UlFVVkVMRFJDUVVFMFFqdFJRVU0xUWl4TFFVRkxMRWxCUVVrc1NVRkJTU3hIUVVGSExFTkJRVU1zUlVGQlJTeEpRVUZKTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hKUVVGSkxFVkJRVVVzUlVGQlJUdFpRVU0zUXl4NVEwRkJlVU03V1VGRmVrTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eFJRVUZSTEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTJ4RExFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEpRVUZKTzJkQ1FVTjJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRkZCUVZFc1NVRkJTU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTTdXVUZEZEVVc1NVRkJTU3hKUVVGSkxFTkJRVU1zWTBGQll5eEpRVUZKTEdOQlFXTXNRMEZCUXl4UFFVRlBMRVZCUVVVN1owSkJRMnBFTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zWjBKQlFXZENMRWRCUVVjc1EwRkJReXhEUVVGRE8yZENRVU14UXl4TFFVRkxMRTFCUVUwc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRk8yOUNRVU42UXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVkQlFVY3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTTdiMEpCUXpsRkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1owSkJRV2RDTEVsQlFVa3NRMEZCUXl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0cFFrRkRPVVE3WVVGRFJqdFRRVU5HTzFGQlEwUXNXVUZCV1R0UlFVTmFMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNSVUZCUlN4RFFVRkRPMUZCUlRkQ0xFMUJRVTBzYVVKQlFXbENMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRlZCUVZVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGJrVXNiVVpCUVcxR08xRkJSVzVHTERCQ1FVRXdRanRSUVVNeFFpeExRVUZMTEVsQlFVa3NTVUZCU1N4SFFVRkhMRU5CUVVNc1JVRkJSU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1JVRkJSVHRaUVVNM1F5eE5RVUZOTEVsQlFVa3NSMEZCZVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNN1dVRkROMFVzVFVGQlRTeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTTdXVUZETDBNc1RVRkJUU3haUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETEdWQlFXVXNSVUZCUlN4RFFVRkRPMWxCUXpWRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4SlFVRkpMR05CUVdNc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NTVUZCU1N4SlFVRkpMRU5CUVVNc1JVRkJSVHRuUWtGRE4wVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zYVVOQlFXbERMRU5CUVVNc1EwRkJRenRoUVVOeVJEdFpRVVZFTEUxQlFVMHNVMEZCVXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV01zU1VGQlNTeGpRVUZqTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zYVVKQlFXbENMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF6dFpRVVUxVFN4SlFVRkpMRU5CUVVNc1IwRkJWeXhKUVVGSkxFTkJRVU1zVlVGQlZTeEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMR2xDUVVGcFFpeEhRVUZITEZOQlFWTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVVeFJTeE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdG5Ra0ZEYWtRc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eEhRVUZITzI5Q1FVTTVRaXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXp0eFFrRkROVUlzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4SFFVRkhPMjlDUVVOdVF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0eFFrRkRUaXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4SFFVRkhPMjlDUVVOdVFpeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRPM0ZDUVVOUUxHOUNRVUZ2UWp0dlFrRkRka0lzVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTmtMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRMGdzUzBGQlN5eE5RVUZOTEV0QlFVc3NTVUZCU1N4UFFVRlBMRVZCUVVVN1owSkJRek5DTEUxQlFVMHNUVUZCVFN4SFFVRjNRaXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUXpkRExEaENRVUU0UWp0blFrRkRPVUlzVFVGQlRTeERRVUZETEVkQlFWY3NVMEZCVXl4SFFVRkhMRTFCUVUwc1EwRkJReXhMUVVGTExFZEJRVWNzVVVGQlVTeERRVUZETzJkQ1FVVjBSQ3hOUVVGTkxFTkJRVU1zVFVGQlRTeEhRVUZITEVsQlFVa3NSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEhWQ1FVRjFRaXhGUVVGRkxFTkJRVU1zUlVGQlJTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8yZENRVU0xUml4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8yRkJRMUk3VTBGRFJqdFJRVU5FTEZsQlFWazdTVUZEWkN4RFFVRkRPMGxCUlVRc01rTkJRVEpETzBsQlF6TkRMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzU1VGQlNUczdVVUZEYkVJc1NVRkJTU3hKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTzFsQlEyaENMRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRVZCUVVVN1owSkJRek5DTEVsQlFVa3NRMEZCUXl4UFFVRlJMRU5CUVVNc1UwRkJVeXhIUVVGSExIRkRRVUZ4UXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFOUJRVThzUzBGQlN5eERRVUZETzJkQ1FVTjRSaXhKUVVGSkxFTkJRVU1zVDBGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRWRCUVVjc1JVRkJSU3hEUVVGRE8yRkJRMnhETzJsQ1FVRk5PMmRDUVVOTUxFbEJRVWtzUTBGQlF5eFBRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1IwRkJSeXhOUVVGTkxFTkJRVU03WVVGRGRFTTdVMEZEUmp0UlFVVkVMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSVHRaUVVNM1JDeFBRVUZQTzFGQlJWUXNUVUZCVFN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRka01zU1VGQlNTeERRVUZETEVOQlFVTTdXVUZCUlN4UFFVRlBPMUZCUldZc1RVRkJUU3hEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEdkQ1FVRm5RaXhEUVVGRE8xRkJSV3hETEVsQlFVa3NUVUZCVFR0WlFVTlNMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGY2tJc1EwRkJReXhEUVVGRExHTkJRV01zUlVGQlJTeERRVUZETzFGQlEyNUNMRU5CUVVNc1EwRkJReXhUUVVGVExFZEJRVWNzVDBGQlR5eERRVUZETzFGQlEzUkNMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRM2hFTEVOQlFVTXNRMEZCUXl4WlFVRlpMRWRCUVVjc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF6dFJRVVZ1UXl3d1EwRkJNRU03VVVGRE1VTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1lVRkJZU3hMUVVGTExFTkJRVU1zUTBGQlF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4WFFVRlhMRXRCUVVzc1EwRkJReXhEUVVGRE8xbEJRM1JFTEU5QlFVODdVVUZGVkN3MFFrRkJORUk3VVVGRE5VSXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTJoRExFTkJRVU1zUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXp0UlFVTnVRaXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEU5QlFVOHNRMEZCUXp0UlFVTjBRaXhEUVVGRExFTkJRVU1zVTBGQlV5eEhRVUZITEZGQlFWRXNRMEZCUXp0UlFVTjJRaXhEUVVGRExFTkJRVU1zU1VGQlNTeEhRVUZITEVkQlFVY3NaMEpCUVdkQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4eFEwRkJjVU1zUTBGQlF6dFJRVU0zUlN4TlFVRk5MR1ZCUVdVc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhYUVVGWExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGFFY3NUVUZCVFN4TlFVRk5MRWRCUVVjc1pVRkJaU3hIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NaVUZCWlN4RFFVRkRPMUZCUlRkSExFdEJRVXNzU1VGQlNTeEpRVUZKTEVkQlFVY3NRMEZCUXl4RlFVRkZMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZPMWxCUXpkRExFMUJRVTBzUjBGQlJ5eEhRVUZwUWl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFsQlF5OURMRU5CUVVNc1EwRkJReXhqUVVGakxFVkJRVVVzUTBGQlF6dFpRVU51UWl4RFFVRkRMRU5CUVVNc1dVRkJXU3hEUVVOYUxFMUJRVTBzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRU5CUVVNc1JVRkRaaXhKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEhWQ1FVRjFRaXhIUVVGSExFbEJRVWtzUTBGQlF5eGpRVUZqTEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRM0JGTEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNN1UwRkROVUk3VVVGRFJDd3JRa0ZCSzBJN1VVRkZMMElzUzBGQlN5eEpRVUZKTEVsQlFVa3NSMEZCUnl4RFFVRkRMRVZCUVVVc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNTVUZCU1N4RlFVRkZMRVZCUVVVN1dVRkROME1zUzBGQlN5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RlFVRkZMRTFCUVUwc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlR0blFrRkRla1VzU1VGQlNTeFBRVUZQTEV0QlFVc3NSMEZCUnl4RlFVRkZPMjlDUVVOdVFpeE5RVUZOTEZWQlFWVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1lVRkJZU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzI5Q1FVTnNSQ3hOUVVGTkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRPMjlDUVVWNFFpeE5RVUZOTEZOQlFWTXNSMEZCUnl4MVEwRkJkVU1zUTBGQlF6dHZRa0ZETVVRc01FUkJRVEJFTzI5Q1FVTXhSQ3hOUVVGTkxIRkNRVUZ4UWl4SFFVRkhMRWxCUVVrc1EwRkJRenR2UWtGRGJrTXNUVUZCVFN4eFFrRkJjVUlzUjBGQlJ5eEpRVUZKTEVOQlFVTTdiMEpCUlc1RExFTkJRVU1zUTBGQlF5eGpRVUZqTEVWQlFVVXNRMEZCUXp0dlFrRkRia0lzUTBGQlF5eERRVUZETEZkQlFWY3NSMEZCUnl4WFFVRlhMRU5CUVVNN2IwSkJRelZDTEVOQlFVTXNRMEZCUXl4VFFVRlRMRWRCUVVjc1EwRkJReXhEUVVGRE8yOUNRVU5vUWl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenR2UWtGRGVrTXNRMEZCUXl4RFFVRkRMRk5CUVZNc1IwRkJSeXhOUVVGQkxFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXh0UTBGQlNTeEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dHZRa0ZETTBRc1EwRkJReXhEUVVGRExGTkJRVk1zUjBGQlJ5eE5RVUZOTEVOQlFVTTdiMEpCUTNKQ0xFTkJRVU1zUTBGQlF5eEpRVUZKTEVkQlFVY3NVMEZCVXl4RFFVRkRPMjlDUVVOdVFpd3JRMEZCSzBNN2IwSkJReTlETEUxQlFVMHNSMEZCUnl4SFFVRm5RaXhEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMjlDUVVWdVJDeDFRMEZCZFVNN2IwSkJRM1pETEhsR1FVRjVSanR2UWtGRmVrWXNRMEZCUXl4RFFVRkRMRmxCUVZrc1EwRkRXaXhEUVVGRExFTkJRVU1zUzBGQlN5eEhRVUZITEVkQlFVY3NRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMSEZDUVVGeFFpeEZRVU16UkN4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0dlFrRkRha0lzUTBGQlF5eERRVUZETEZGQlFWRXNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhGUVVGRkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1EwRkJRenRwUWtGRGJrUTdZVUZEUmp0VFFVTkdPMGxCUTBnc1EwRkJRenRKUVVWUExGRkJRVkU3VVVGRFpDeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTzFsQlF6VkNMRTlCUVU4N1VVRkZWQ3hOUVVGTkxFTkJRVU1zUjBGQlZ5eE5RVUZOTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU03VVVGRk1VTXNTVUZCU1N4TFFVRkxMRWRCUVZjc1NVRkJTU3hEUVVGRExFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNkVUpCUVhWQ0xFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEyNUZMRWxCUVVrc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRVZCUVVVc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUlhoR0xFbEJRVWtzU1VGQlNTeERRVUZETEU5QlFVOHNSVUZCUlR0WlFVTm9RaXhOUVVGTkxFMUJRVTBzUjBGQlZ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1IwRkJSeXhOUVVGTkxFTkJRVU03V1VGRGRrUXNUVUZCVFN4TlFVRk5MRWRCUVZjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFhRVUZYTEVkQlFVY3NTMEZCU3l4RFFVRkRPMWxCUTNKRUxFMUJRVTBzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNUVUZCVFN4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGNFUXNTMEZCU3l4SFFVRkhMRXRCUVVzc1IwRkJSeXhMUVVGTExFTkJRVU03V1VGRGRFSXNUVUZCVFN4SFFVRkhMRTFCUVUwc1IwRkJSeXhMUVVGTExFTkJRVU03V1VGRGVFSXNTVUZCU1N4RFFVRkRMR05CUVdNc1IwRkJSeXhKUVVGSkxFTkJRVU1zWVVGQllTeEhRVUZITEV0QlFVc3NRMEZCUXp0VFFVTnNSRHRSUVVWRUxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4SFFVRkhMRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRE9VSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEhRVUZITEVkQlFVY3NTMEZCU3l4SlFVRkpMRU5CUVVNN1VVRkZka01zYjBaQlFXOUdPMUZCUTNCR0xFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhSUVVGUkxFVkJRVVVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUTNKRUxFMUJRVTBzV1VGQldTeEhRVUZYTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRE8xRkJRM0JFTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hIUVVGSExGbEJRVmtzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZEVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRkZCUVZFc1JVRkJSU3hIUVVGSExGbEJRVmtzU1VGQlNTeERRVUZETEVOQlFVTTdVVUZGTjBRc05rSkJRVFpDTzFGQlF6ZENMRWxCUVVrc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJUdFpRVU5xUWl4elEwRkJjME03V1VGRGRFTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUjBGQlJ5eEhRVUZITEV0QlFVc3NTVUZCU1N4RFFVRkRPMWxCUXpkRUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1IwRkJSeXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETzFsQlEzWkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4VlFVRlZMRVZCUVVVc1VVRkJVU3hGUVVGRkxGZEJRVmNzUTBGQlF5eERRVUZETzFOQlEyaEZPMkZCUVUwN1dVRkRUQ3c0UWtGQk9FSTdXVUZET1VJc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NSMEZCUnl4TlFVRk5MRU5CUVVNN1dVRkRka1FzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1UwRkJVeXhIUVVGSExHZENRVUZuUWl4RFFVRkRPMWxCUXpkRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJReXhWUVVGVkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdXVUZGT1VNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmxCUVZrc1JVRkJSU3hKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1EwRkJRenRaUVVWd1JTeHhRa0ZCY1VJN1dVRkRja0lzU1VGQlNTeGhRVUZoTEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTNSQ0xGRkJRVkVzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhGUVVGRk8yZENRVU5vUXl4TFFVRkxMRXRCUVVzN2IwSkJRMUlzWVVGQllTeEhRVUZITEVOQlFVTXNRMEZCUXp0dlFrRkRiRUlzVFVGQlRUdG5Ra0ZEVWl4TFFVRkxMRkZCUVZFN2IwSkJRMWdzWVVGQllTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTTdiMEpCUTI1RkxFMUJRVTA3WjBKQlExSXNTMEZCU3l4UlFVRlJPMjlDUVVOWUxHRkJRV0VzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJRenR2UWtGRE4wUXNUVUZCVFR0aFFVTlFPMWxCUTBRc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmxCUVZrc1JVRkJSU3hIUVVGSExHRkJRV0VzU1VGQlNTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRPMWxCUlRkRkxFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4WlFVRlpMRWRCUVVjc1RVRkJUU3hGUVVGRk8yZENRVU51UXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNVVUZCVVN4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVsQlFVa3NRMEZCUXl4RFFVRkRPMmRDUVVOeVJTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRVU1zV1VGQldTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMkZCUTJwRU8ybENRVUZOTzJkQ1FVTk1MRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4WlFVRlpMRVZCUVVVc1VVRkJVU3hGUVVGRkxGZEJRVmNzUTBGQlF5eERRVUZETzJGQlEyeEZPMU5CUTBZN1VVRkZSQ3hwUWtGQmFVSTdVVUZEYWtJc05rUkJRVFpFTzFGQlF6ZEVMRFpFUVVFMlJEdFJRVU0zUkN3MlJFRkJOa1E3VVVGRE4wUXNOa1JCUVRaRU8xRkJRemRFTEZkQlFWYzdVVUZEV0N3eVJFRkJNa1E3VVVGRE0wUXNLMFJCUVN0RU8wbEJRMnBGTEVOQlFVTTdTVUZGUkRzN096dFBRVWxITzBsQlEwa3NUVUZCVFN4RFFVRkRMR0ZCUVdFc1EwRkJReXhOUVVGcFFpeEZRVUZGTEZsQlFXOUNMRU5CUVVNN1VVRkRiRVVzU1VGQlNTeEhRVUZITEVkQlFYTkNMRWxCUVVrc1EwRkJRenRSUVVOc1F5eFJRVUZSTEUxQlFVMHNRMEZCUXl4UFFVRlBMRVZCUVVVN1dVRkRlRUlzUzBGQlN5eFZRVUZWTEVOQlFVTXNkMEpCUVhkQ08yZENRVU4wUXl4SFFVRkhMRWRCUVVjc2EwSkJRV3RDTEVOQlFVTXNWVUZCVlN4RFFVRkRPMmRDUVVOd1F5eE5RVUZOTzFsQlExSXNTMEZCU3l4WFFVRlhMRU5CUVVNc2QwSkJRWGRDTzJkQ1FVTjJReXhIUVVGSExFZEJRVWNzYlVKQlFXMUNMRU5CUVVNc1dVRkJXU3hEUVVGRE8yZENRVU4yUXl4TlFVRk5PMU5CUTFBN1VVRkRSQ3hOUVVGTkxFdEJRVXNzUjBGQlowSXNUMEZCVHl4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFVkJRVVVzVTBGQlV5eEZRVUZGTEU5QlFVOHNRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJRenRSUVVWNFJpeE5RVUZOTEd0Q1FVRnJRaXhIUVVGblF6dFpRVU4wUkN4RFFVRkRMRWxCUVVrc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzYlVKQlFXMUNMRU5CUVVNc1dVRkJXU3hEUVVGRE8xbEJRek5GTEVOQlFVTXNTVUZCU1N4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSU3hyUWtGQmEwSXNRMEZCUXl4VlFVRlZMRU5CUVVNN1UwRkRlRVVzUTBGQlF6dFJRVU5HTEdkRVFVRm5SRHRSUVVOb1JDeE5RVUZOTEhGQ1FVRnhRaXhIUVVGaExHdENRVUZyUWp0aFFVTjJSQ3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRTlCUVU4c1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRMMFFzVFVGQlRTeE5RVUZOTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNN1VVRkRiRVFzU1VGQlNTeE5RVUZOTEVkQlFVY3NTVUZCU1R0WlFVTm1MRWRCUVVjc1IwRkJSeXhyUWtGQmEwSXNRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6czdXVUZGYmtVc1IwRkJSeXhIUVVGSExHdENRVUZyUWl4RFFVRkRMRXRCUVVzc1EwRkJRenRSUVVWcVF5eFBRVUZQTEVkQlFVY3NRMEZCUXp0SlFVTmlMRU5CUVVNN1NVRkZUU3hsUVVGbE96dFJRVU53UWl4UFFVRlBMRTFCUVVFc1RVRkJRU3hKUVVGSkxFTkJRVU1zV1VGQldTd3dRMEZCUlN4bFFVRmxMRVZCUVVVc2JVTkJRVWtzUTBGQlF5eERRVUZETzBsQlEyNUVMRU5CUVVNN1NVRkZSRHM3T3pzN1QwRkxSenRKUVVOSUxFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCYVVJc1JVRkJSU3hUUVVGcFFpeEZRVUZGTEZGQlFYTkNPMUZCUXpGRkxFMUJRVTBzU1VGQlNTeEhRVUUwUWl4RlFVRkZMRU5CUVVNN1VVRkRla01zU1VGQlNTeFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRPMUZCUTNSQ0xFbEJRVWtzVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXp0UlFVVjJRaXhMUVVGTExFMUJRVTBzUjBGQlJ5eEpRVUZKTEUxQlFVMHNRMEZCUXl4VlFVRlZMRVZCUVVVN1dVRkRia01zVFVGQlRTeEpRVUZKTEVkQlFVY3NVVUZCVVN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJSVE5DTEVsQlFVa3NWMEZCVnl4SlFVRkpMRWxCUVVrN1owSkJRM0pDTEZkQlFWY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8ybENRVU4yUWl4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFdEJRVXNzVjBGQlZ6dG5Ra0ZEYkVNc1ZVRkJWU3hIUVVGSExFdEJRVXNzUTBGQlF6dFpRVVZ5UWl4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFZEJRVWNzVTBGQlV5eEZRVUZGTzJkQ1FVTXpRaXhMUVVGTExFMUJRVTBzUTBGQlF5eEpRVUZKTEVsQlFVa3NSVUZCUlR0dlFrRkRjRUlzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJRenQzUWtGRFpDeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8yOUNRVU5rTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03YVVKQlEyUTdZVUZEUmp0VFFVTkdPMUZCUTBRc1QwRkJUeXhGUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNWVUZCVlN4RlFVRkZMRlZCUVZVc1JVRkJReXhEUVVGRE8wbEJRemxETEVOQlFVTTdTVUZGVFN4TlFVRk5MRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNTVUZCYTBJc1JVRkJSU3hSUVVGeFFpeEZRVUZGTEZsQlFXOUNMRWRCUVVjN1VVRkRjRWNzVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVZNc1EwRkJReXhIUVVGSExFbEJRVWtzUjBGQlJ5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUlVGQlJTeEhRVUZITEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRNMFVzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVWMlFpeE5RVUZOTEV0QlFVc3NSMEZCWVN4RlFVRkZMRU5CUVVNN1VVRkRNMElzVFVGQlRTeFRRVUZUTEVkQlFXRXNSVUZCUlN4RFFVRkRPMUZCUXk5Q0xFdEJRVXNzVFVGQlRTeERRVUZETEVsQlFVa3NTVUZCU1N4RlFVRkZPMWxCUTNCQ0xFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SlFVRkpMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU53UXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1UwRkRla003VVVGRFJDd3dSa0ZCTUVZN1VVRkRNVVlzVFVGQlRTeExRVUZMTEVkQlFWY3NTVUZCU1N4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGVFTXNUVUZCVFN4VFFVRlRMRWRCUVZjc1NVRkJTU3hOUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdVVUZEYUVRc1QwRkJUeXhuUWtGQlowSXNRMEZCUXl4TFFVRkxMRVZCUVVVc1UwRkJVeXhEUVVGRExFZEJRVWNzUTBGQlF5eFpRVUZaTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1dVRkJXU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZET1VZc1EwRkJRenRKUVVWRUxDdEVRVUVyUkR0SlFVTXZSQ3g1UmtGQmVVWTdTVUZEZWtZc2NVTkJRWEZETzBsQlEzSkRMR2RGUVVGblJUdEpRVU5vUlN4TlFVRk5PMGxCUTA0c2IwVkJRVzlGTzBsQlEzQkZMR2RHUVVGblJqdEpRVU5vUml4MVFrRkJkVUk3U1VGRGRrSXNOa05CUVRaRE8wbEJRemRETEN0RVFVRXJSRHRKUVVNdlJDeHBSVUZCYVVVN1NVRkRha1VzY1VKQlFYRkNPMGxCUTNKQ0xHbENRVUZwUWp0SlFVTnFRaXhWUVVGVk8wbEJRMVlzVVVGQlVUdEpRVU5TTEUxQlFVMDdTVUZEVGl4blFrRkJaMEk3U1VGRGFFSXNTVUZCU1R0SlFVVkhMRTFCUVUwc1EwRkJReXhoUVVGaExFTkJRVU1zUlVGQlowSTdPMUZCUXpGRExFMUJRVTBzWTBGQll5eEhRVUZITEVWQlFVVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNN1VVRkRla1VzU1VGQlNTeE5RVUZOTEVkQlFYRkNMRTFCUVVFc1kwRkJZeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RlFVRkZPMWxCUTNwRUxFMUJRVTBzUzBGQlN5eEhRVUZITEVkQlFVY3NRMEZCUXl4TlFVRk5MRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTjRReXhQUVVGUExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRE8xRkJRM0pFTEVOQlFVTXNRMEZCUXl4dFEwRkJTU3hKUVVGSkxFTkJRVU03VVVGRFdDeEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMR05CUVdNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF6dFpRVU4wUXl4TlFVRk5MRWRCUVVjc1kwRkJZeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6ZENMRTlCUVU4c1RVRkJUU3hEUVVGRE8wbEJRMmhDTEVOQlFVTTdTVUZKUkRzN08wOUJSMGM3U1VGRFNTeE5RVUZOTEVOQlFVTXNaVUZCWlN4RFFVRkRMRWRCUVZFN1VVRkRjRU1zVFVGQlRTeEhRVUZITEVkQlFXRXNSVUZCUlN4RFFVRnRRaXhIUVVGSExFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dGhRVU51Uml4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGdlFpeEZRVUZGTEVWQlFVVTdXVUZETlVJc1NVRkJTU3hKUVVGWkxFTkJRVU03V1VGRGFrSXNUVUZCVFN4RFFVRkRMRWRCUVZjc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzaENMRWxCUVVrc1EwRkJReXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVWQlFVVTdaMEpCUTJoQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTEU5QlFVOHNRMEZCUXl4VlFVRlZMRVZCUVVVN2IwSkJRek5DTEVsQlFVa3NSMEZCUnl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJsQ1FVTTVRanR4UWtGQlRUdHZRa0ZEVEN4SlFVRkpMRWRCUVVjc1JVRkJSU3hEUVVGRE8yOUNRVU5XTEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNORUpCUVRSQ0xFTkJRVU1zUTBGQlF6dHBRa0ZETDBRN1lVRkRSanRwUWtGQlRUdG5Ra0ZEVEN4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRE8yRkJRMVk3V1VGRFJDeFBRVUZQTEVsQlFVa3NRMEZCUXp0UlFVTmtMRU5CUVVNc1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETzFGQlJXWXNUMEZCVHl4SFFVRkhMRU5CUVVNN1NVRkRZaXhEUVVGRE8wbEJTMFE3T3pzN1QwRkpSenRKUVVOSkxFMUJRVTBzUTBGQlF5eGpRVUZqTEVOQlFVTXNSMEZCVVR0UlFVTnVReXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkROMElzVFVGQlRTeEZRVUZGTEVkQlFUSkNMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM1pGTEUxQlFVMHNTMEZCU3l4SFFVRnJRaXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETzFGQlJTOURMRTFCUVUwc1lVRkJZU3hIUVVGSExFTkJRVU1zUlVGQlZTeEZRVUZWTEVWQlFVVTdXVUZETTBNc1QwRkJUeXhEUVVGRExGTkJRVk1zUTBGQlF5eFRRVUZUTEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTJoRExFMUJRVTBzU1VGQlNTeEhRVUZITEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzFsQlEzaERMRWxCUVVrc1NVRkJTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXp0blFrRkRNVUlzVDBGQlR5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN08yZENRVVZtTEU5QlFVOHNSVUZCUlN4RFFVRkRPMUZCUTJRc1EwRkJReXhEUVVGRE8xRkJSVVlzVFVGQlRTeE5RVUZOTEVkQlFXRXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU03VVVGRGRrUXNUVUZCVFN4VFFVRlRMRWRCUVdFc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXp0UlFVTjBSQ3hQUVVGUExGTkJRVk1zUTBGQlF6dEpRVU51UWl4RFFVRkRPMGxCUlVRN096czdUMEZKUnp0SlFVTkpMRTFCUVUwc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4VFFVRnBRaXhGUVVGRkxGRkJRVFJDTEZOQlFWTTdVVUZETjBZc1QwRkJUeXhEUVVGRExFZEJRVmNzUlVGQlJTeEZRVUZGTzFsQlEzSkNMRTlCUVU4c1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eFRRVUZUTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRja01zUTBGQlF5eERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVkVPenM3T3p0UFFVdEhPMGxCUTBrc1RVRkJUU3hEUVVGRExGZEJRVmNzUTBGQlF5eExRVUZoTEVWQlFVVXNVMEZCYVVJc1JVRkJSU3hSUVVFMFFpeFRRVUZUTzFGQlF5OUdMRWxCUVVrc1MwRkJTeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEZWQlFWVXNPRUpCUVdkQ08xbEJRMmhFTEU5QlFVOHNUMEZCVHl4RFFVRkRMR1ZCUVdVc1EwRkJRenRoUVVNMVFpeEpRVUZKTEV0QlFVc3NRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJReXhWUVVGVkxITkRRVUZ2UWp0WlFVTjZSQ3hQUVVGUExFOUJRVThzUTBGQlF5eDNRa0ZCZDBJc1EwRkJReXhUUVVGVExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdZVUZEZGtRc1NVRkJTU3hMUVVGTExFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTXNWVUZCVlN3MFFrRkJaVHRaUVVOd1JDeFBRVUZQTEU5QlFVOHNRMEZCUXl4alFVRmpMRU5CUVVNN08xbEJSVGxDTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc2IwSkJRVzlDTEV0QlFVc3NTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkZha1FzTUVKQlFUQkNPMGxCUXpWQ0xFTkJRVU03U1VGRlRTeE5RVUZOTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zUjBGQll6dFJRVU12UXl4SlFVRkpMRWRCUVVjc1EwRkJReXhQUVVGUExFdEJRVXNzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4aFFVRmhPMWxCUXpGRExFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNOa0pCUVRaQ0xFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVWc1JpeE5RVUZOTEV0QlFVc3NSMEZCUnl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRlRU1zVFVGQlRTeFRRVUZUTEVkQlFVY3NSMEZCUnl4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMUZCUXpGRUxFOUJRVThzVDBGQlR5eERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRkxMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU03U1VGREwwTXNRMEZCUXp0SlFWbEVPMDlCUTBjN1NVRkRTU3hOUVVGTkxFTkJRVU1zWVVGQllTeERRVUZETEVkQlFWRTdVVUZEYkVNc1RVRkJUU3hOUVVGTkxFZEJRVmNzUjBGQlJ5eERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRPMUZCUTNSRExFbEJRVWtzVFVGQlRTeERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRVZCUVVVN1dVRkRkRUlzVDBGQlR5eE5RVUZOTEVOQlFVTTdVMEZEWmp0aFFVRk5PMWxCUTB3c1RVRkJUU3hMUVVGTExFZEJRV0VzUlVGQlJTeERRVUZ0UWl4SFFVRkhMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEU5QlFVOHNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eERRVUZETzJsQ1FVTTNSaXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZ2UWl4RlFVRkZMRVZCUVVVN1owSkJRelZDTEUxQlFVMHNTVUZCU1N4SFFVRlhMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZETTBJc1QwRkJUeXhKUVVGSkxFTkJRVU03V1VGRFpDeERRVUZETEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRaUVVWbUxFbEJRVWtzUzBGQlN5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRVZCUVVVN1owSkJRM0pDTEU5QlFVOHNSMEZCUnl4RFFVRkRPMkZCUTFvN2FVSkJRVTA3WjBKQlEwd3NUVUZCVFN4TFFVRkxMRWRCUVZjc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTXZRaXhOUVVGTkxFMUJRVTBzUjBGQlZ5eExRVUZMTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRE8yZENRVU53Uml4UFFVRlBMRTFCUVUwc1EwRkJRenRoUVVObU8xTkJRMFk3U1VGRFNDeERRVUZETzBsQlJVMHNUVUZCVFN4RFFVRkRMR05CUVdNc1EwRkJReXhMUVVGaExFVkJRVVVzYTBKQlFUQkNPMUZCUTNCRkxFOUJRVThzUzBGQlN5eERRVUZETEUxQlFVMHNTVUZCU1N4clFrRkJhMElzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNSVUZCUlN4clFrRkJhMElzUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXp0SlFVTnVSeXhEUVVGRE96dEJRV2d6UW1Fc2JVSkJRVmNzUjBGQlJ5eGhRVUZoTEVOQlFVTTdRVUZETTBJc2JVSkJRVmNzUjBGQlZ5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFTdDFRbnBDTEdsQ1FVRlRMRWRCUVVjc2NVSkJRWEZDTEVOQlFVTTdRVUV5UW14RExHTkJRVTBzUjBGQlJ5eHBRMEZCYVVNc1EwRkJRenRCUVVNelF5eHBRa0ZCVXl4SFFVRkhMR2RDUVVGblFpeERRVUZETzBGQmFVVTFReXc0UmtGQk9FWTdRVUZETDBVc2EwSkJRVlVzUjBGQkswSTdTVUZEZEVRc1UwRkJVeXhGUVVGRkxFZEJRVWM3U1VGRFpDeFBRVUZQTEVWQlFVVXNSMEZCUnp0SlFVTmFMRTlCUVU4c1JVRkJSU3hIUVVGSE8wbEJRMW9zVDBGQlR5eEZRVUZGTEVkQlFVYzdRMEZEWWl4RFFVRkRPMEZCUldFc2VVSkJRV2xDTEVkQlFVY3NVVUZCVVN4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJQ29nWVhNZ1ozSnZheUJtY205dElDZGtZWFJoWjNKdmF5MWhjR2t2WjNKdmF5YzdYRzVwYlhCdmNuUWdLaUJoY3lCMWFTQm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZkV2tuTzF4dWFXMXdiM0owSUNvZ1lYTWdSRWNnWm5KdmJTQW5aR0YwWVdkeWIyc3RZWEJwTDJSbkp6dGNibHh1YVcxd2IzSjBJSGQxSUdaeWIyMGdKM2QxSnp0Y2JtbHRjRzl5ZENBcUlHRnpJSEo0YW5NZ1puSnZiU0FuY25ocWN5YzdYRzVjYm1sdGNHOXlkQ0I3Vm1WamRHOXlmU0JtY205dElDZEFaR0YwWVdkeWIyc3RiR2xpY21GeWFXVnpMM1YwYVd4ekwzTnlZeTkwZVhCbExXUmxZMnhoY21GMGFXOXVjeWM3WEc1cGJYQnZjblFnZTNabFkzUnZja3hsYm1kMGFDd2dkbVZqZEc5eVJHOTBVSEp2WkhWamRIMGdabkp2YlNBblFHUmhkR0ZuY205ckxXeHBZbkpoY21sbGN5OTFkR2xzY3k5emNtTXZkbVZqZEc5eUxXOXdaWEpoZEdsdmJuTW5PMXh1YVcxd2IzSjBJSHRCYldsdWIyRmphV1J6TENCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhOOUlHWnliMjBnSnk0dUwyRnRhVzV2WVdOcFpITW5PMXh1YVcxd2IzSjBJSHRPZFdOc1pXOTBhV1JsY3l3Z1RuVmpiR1Z2ZEdsa1pYTlFZV3hsZEhSbGMzMGdabkp2YlNBbkxpNHZiblZqYkdWdmRHbGtaWE1uTzF4dWFXMXdiM0owSUh0VmJtdHViM2R1VTJWeFVHRnNaWFIwWlhOOUlHWnliMjBnSnk0dUwzVnVhMjV2ZDI0bk8xeHVhVzF3YjNKMElIdFRaWEZRWVd4bGRIUmxmU0JtY205dElDY3VMaTl6WlhFdGNHRnNaWFIwWlhNbk8xeHVhVzF3YjNKMElIdFRkV0p6WTNKcGNIUnBiMjU5SUdaeWIyMGdKM0o0YW5Nbk8xeHVhVzF3YjNKMElIdE9UMVJCVkVsUFRpd2dWVzVwZEhOSVlXNWtiR1Z5ZlNCbWNtOXRJQ2N1TGk5MWRHbHNjeTkxYm1sMGN5MW9ZVzVrYkdWeUp6dGNibHh1WkdWamJHRnlaU0J0YjJSMWJHVWdKMlJoZEdGbmNtOXJMV0Z3YVM5emNtTXZaM0pwWkNjZ2UxeHVJQ0JwYm5SbGNtWmhZMlVnVW1WamRDQjdYRzRnSUNBZ1kyOXVkR0ZwYm5Nb2VEb2diblZ0WW1WeUxDQjVPaUJ1ZFcxaVpYSXBPaUJpYjI5c1pXRnVPMXh1SUNCOVhHNTlYRzVjYm1WdWRXMGdVRzl6YVhScGIyNUlaV2xuYUhRZ2UxeHVJQ0JGYm5SeWIzQjVJRDBnSjBWdWRISnZjSGtuTEZ4dUlDQm1kV3hzSUQwZ0p6RXdNQ1VuTEZ4dWZWeHVYRzVrWldOc1lYSmxJR2RzYjJKaGJDQjdYRzRnSUdsdWRHVnlabUZqWlNCSVZFMU1RMkZ1ZG1GelJXeGxiV1Z1ZENCN1hHNGdJQ0FnWjJWMFEzVnljMjl5VUc5emFYUnBiMjRvWlhabGJuUTZJRTF2ZFhObFJYWmxiblFzSUhJNklHNTFiV0psY2lrNklFUkhMbEJ2YVc1ME8xeHVJQ0I5WEc1OVhHNWNibVY0Y0c5eWRDQjBlWEJsSUUxdmJtOXRaWEpHY21WeGN5QTlJSHNnVzIwNklITjBjbWx1WjEwNklHNTFiV0psY2lCOU8xeHVaWGh3YjNKMElIUjVjR1VnVTJWeFEyOXNVM1JoZEhNZ1BTQjdJR1p5WlhFNklFMXZibTl0WlhKR2NtVnhjeXdnYzJGdFpVeGxibWQwYURvZ1ltOXZiR1ZoYmlCOVhHNWxlSEJ2Y25RZ2RIbHdaU0JUY0d4cGRIUmxja1oxYm1NZ1BTQW9jMlZ4T2lCemRISnBibWNwSUQwK0lITjBjbWx1WjF0ZE8xeHVYRzR2S2lwQWNHRnlZVzBnZTAxdmRYTmxSWFpsYm5SOUlHVjJaVzUwWEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ2NpQmtaWFpwWTJWUWFYaGxiRkpoZEdsdmJseHVJQ29nUUhKbGRIVnliaUI3UkVjdVVHOXBiblI5SUdOaGJuWmhjeUJ5Wld4aGRHVmtJR04xY25OdmNpQndiM05wZEdsdmJseHVJQ292WEc1SVZFMU1RMkZ1ZG1GelJXeGxiV1Z1ZEM1d2NtOTBiM1I1Y0dVdVoyVjBRM1Z5YzI5eVVHOXphWFJwYjI0Z1BTQm1kVzVqZEdsdmJpaGxkbVZ1ZERvZ1RXOTFjMlZGZG1WdWRDd2djam9nYm5WdFltVnlLVG9nUkVjdVVHOXBiblFnZTF4dUlDQmpiMjV6ZENCeVpXTjBJRDBnZEdocGN5NW5aWFJDYjNWdVpHbHVaME5zYVdWdWRGSmxZM1FvS1R0Y2JpQWdjbVYwZFhKdUlHNWxkeUJFUnk1UWIybHVkQ2dvWlhabGJuUXVZMnhwWlc1MFdDQXRJSEpsWTNRdWJHVm1kQ2tnS2lCeUxDQW9aWFpsYm5RdVkyeHBaVzUwV1NBdElISmxZM1F1ZEc5d0tTQXFJSElwTzF4dWZUdGNibHh1UkVjdVVtVmpkQzV3Y205MGIzUjVjR1V1WTI5dWRHRnBibk1nUFNCbWRXNWpkR2x2YmloNE9pQnVkVzFpWlhJc0lIazZJRzUxYldKbGNpazZJR0p2YjJ4bFlXNGdlMXh1SUNCeVpYUjFjbTRnZEdocGN5NXNaV1owSUR3OUlIZ2dKaVlnZUNBOFBTQjBhR2x6TG5KcFoyaDBJQ1ltSUhSb2FYTXVkRzl3SUR3OUlIa2dKaVlnZVNBOFBTQjBhR2x6TG1KdmRIUnZiVHRjYm4wN1hHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCUWIzTnBkR2x2YmsxdmJtOXRaWEpKYm1adklIdGNiaUFnTHlvcUlGTmxjWFZsYm1ObGN5QmpiM1Z1ZENCM2FYUm9JRzF2Ym05dFpYSWdhVzRnY0c5emFYUnBiMjVjYmlBZ0lDb3ZYRzRnSUdOdmRXNTBPaUJ1ZFcxaVpYSTdYRzVjYmlBZ0x5b3FJRkpsYldWdFltVnlJSE5qY21WbGJpQmpiMjl5WkhNZ2NtVmpkRnh1SUNBZ0tpOWNiaUFnWW05MWJtUnpPaUJFUnk1U1pXTjBPMXh1WEc0Z0lHTnZibk4wY25WamRHOXlLR052ZFc1ME9pQnVkVzFpWlhJZ1BTQXdMQ0JpYjNWdVpITTZJRVJITGxKbFkzUWdQU0J1WlhjZ1JFY3VVbVZqZENnd0xDQXdMQ0F3TENBd0tTa2dlMXh1SUNBZ0lIUm9hWE11WTI5MWJuUWdQU0JqYjNWdWREdGNiaUFnSUNCMGFHbHpMbUp2ZFc1a2N5QTlJR0p2ZFc1a2N6dGNiaUFnZlZ4dWZWeHVYRzVsZUhCdmNuUWdZMnhoYzNNZ1VHOXphWFJwYjI1SmJtWnZJSHRjYmlBZ2NIVmliR2xqSUhKbFlXUnZibXg1SUc1aGJXVTZJSE4wY21sdVp6dGNiaUFnWm5KbGNUb2dleUJiYlRvZ2MzUnlhVzVuWFRvZ1VHOXphWFJwYjI1TmIyNXZiV1Z5U1c1bWJ5QjlPMXh1SUNCeWIzZERiM1Z1ZERvZ2JuVnRZbVZ5TzF4dUlDQnpkVzFHYjNKSVpXbG5hSFJEWVd4ak9pQnVkVzFpWlhJN1hHNWNiaUFnTHlvcUlHWnlaWEVnUFNCN2ZTd2djbTkzUTI5MWJuUWdQU0F3WEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQnVZVzFsSUU1aGJXVWdiMllnY0c5emFYUnBiMjRnS0NjeE1URkJKeXdnSnpFeE1TNHhKeXdnWlhSaktWeHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnYzNWdFJtOXlTR1ZwWjJoMFEyRnNZeUJUZFcwZ2IyWWdZV3hzSUcxdmJtOXRaWElnWTI5MWJuUnpJR1p2Y2lCb1pXbG5hSFFnWTJGc1kzVnNZWFJwYjI1Y2JpQWdJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJSEp2ZDBOdmRXNTBJRU52ZFc1MElHOW1JR1ZzWlcxbGJuUnpJR2x1SUdOdmJIVnRibHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjF0ZGZTQm1jbVZ4SUdaeVpYRjFaVzVqZVNCdlppQnRiMjV2YldWeWN5QnBiaUJ3YjNOcGRHbHZibHh1SUNBZ0tpOWNiaUFnWTI5dWMzUnlkV04wYjNJb2JtRnRaVG9nYzNSeWFXNW5MQ0JtY21WeE9pQjdJRnR0T2lCemRISnBibWRkT2lCUWIzTnBkR2x2YmsxdmJtOXRaWEpKYm1adklIMGdQU0I3ZlN3Z2NtOTNRMjkxYm5RNklHNTFiV0psY2lBOUlEQXNJSE4xYlVadmNraGxhV2RvZEVOaGJHTTZJRzUxYldKbGNpQTlJREFwSUh0Y2JpQWdJQ0IwYUdsekxtNWhiV1VnUFNCdVlXMWxPMXh1SUNBZ0lIUm9hWE11Wm5KbGNTQTlJR1p5WlhFN1hHNGdJQ0FnZEdocGN5NXliM2REYjNWdWRDQTlJSEp2ZDBOdmRXNTBPMXh1SUNBZ0lIUm9hWE11YzNWdFJtOXlTR1ZwWjJoMFEyRnNZeUE5SUhOMWJVWnZja2hsYVdkb2RFTmhiR003WEc0Z0lIMWNibjFjYmx4dVpYaHdiM0owSUdOc1lYTnpJRmRsWWt4dloyOGdaWGgwWlc1a2N5QkVSeTVLYzFacFpYZGxjaUI3WEc0Z0lIQjFZbXhwWXlCemRHRjBhV01nY21WemFXUjFaWE5UWlhRZ1BTQW5iblZqYkdWdmRHbGtaWE1uTzF4dUlDQndjbWwyWVhSbElITjBZWFJwWXlCMmFXVjNaWEpEYjNWdWREb2diblZ0WW1WeUlEMGdMVEU3WEc1Y2JpQWdjSEpwZG1GMFpTQjJhV1YzWlhKSlpEb2diblZ0WW1WeUlEMGdMVEU3WEc0Z0lIQnlhWFpoZEdVZ2RXNXBkSE5JWVc1a2JHVnlPaUJWYm1sMGMwaGhibVJzWlhJZ2ZDQnVkV3hzTzF4dUlDQndjbWwyWVhSbElHbHVhWFJwWVd4cGVtVmtPaUJpYjI5c1pXRnVJRDBnWm1Gc2MyVTdYRzVjYmlBZ0x5OGdjSEpwZG1GMFpTQnlaV0ZrYjI1c2VTQmpiMnh2Y2xOamFHVnRaVG9nUTI5c2IzSlRZMmhsYldVZ1BTQkRiMnh2Y2xOamFHVnRaWE5iVG5WamJHVnZkR2xrWlhOWFpXSk1iMmR2TG5KbGMybGtkV1Z6VTJWMFhUdGNiaUFnY0hKdmRHVmpkR1ZrSUdOd09pQlRaWEZRWVd4bGRIUmxJSHdnYm5Wc2JDQTlJRzUxYkd3N1hHNWNiaUFnY0hKcGRtRjBaU0JvYjNOMFB6b2dTRlJOVEVScGRrVnNaVzFsYm5RN1hHNGdJSEJ5YVhaaGRHVWdiWE5uU0c5emREODZJRWhVVFV4RmJHVnRaVzUwTzF4dUlDQndjbWwyWVhSbElHTmhiblpoY3o4NklFaFVUVXhEWVc1MllYTkZiR1Z0Wlc1ME8xeHVJQ0J3Y21sMllYUmxJSE5zYVdSbGNqODZJRVJITGxKaGJtZGxVMnhwWkdWeU8xeHVJQ0J3Y21sMllYUmxJSFJsZUhSQ1lYTmxiR2x1WlRvZ1EyRnVkbUZ6VkdWNGRFSmhjMlZzYVc1bE8xeHVYRzRnSUhCeWFYWmhkR1VnWVhocGMwaGxhV2RvZERvZ2JuVnRZbVZ5SUQwZ01USTdYRzVjYmlBZ2NISnBkbUYwWlNCelpYRkRiMnc2SUVSSExrTnZiSFZ0Ymp4emRISnBibWMrSUh3Z2JuVnNiQ0E5SUc1MWJHdzdYRzRnSUhCeWFYWmhkR1VnYzNCc2FYUjBaWEk2SUZOd2JHbDBkR1Z5Um5WdVl5QjhJRzUxYkd3Z1BTQnVkV3hzTzF4dUlDQXZMeUJ3Y21sMllYUmxJRzFoZUV4bGJtZDBhRG9nYm5WdFltVnlJRDBnTVRBd08xeHVJQ0J3Y21sMllYUmxJSEJ2YzJsMGFXOXVjem9nVUc5emFYUnBiMjVKYm1adlcxMGdQU0JiWFR0Y2JseHVJQ0J3Y21sMllYUmxJSEp2ZDNOTllYTnJaV1E2SUc1MWJXSmxjaUE5SURBN1hHNGdJSEJ5YVhaaGRHVWdjbTkzYzA1MWJHdzZJRzUxYldKbGNpQTlJREE3WEc1Y2JpQWdMeThnVm1sbGQyVnlKM01nY0hKdmNHVnlkR2xsY3lBb2JHbHJaV3g1SUhSb1pYa2djMmh2ZFd4a0lHSmxJSEIxWW14cFl5QnpieUIwYUdGMElIUm9aWGtnWTJGdUlHSmxJSE5sZENCdmRYUnphV1JsS1Z4dUlDQndjbWwyWVhSbElGOXdiM05wZEdsdmJsZHBaSFJvT2lCdWRXMWlaWEk3WEc0Z0lIQjFZbXhwWXlCd2IzTnBkR2x2YmxkcFpIUm9PaUJ1ZFcxaVpYSTdYRzRnSUhCMVlteHBZeUJ0YVc1SVpXbG5hSFE2SUc1MWJXSmxjanRjYmlBZ2NIVmliR2xqSUcxaGVFaGxhV2RvZERvZ2JuVnRZbVZ5TzF4dUlDQndkV0pzYVdNZ1kyOXVjMmxrWlhKT2RXeHNVMlZ4ZFdWdVkyVnpPaUJpYjI5c1pXRnVPMXh1SUNCd2RXSnNhV01nYzJWeGRXVnVZMlZEYjJ4MWJXNU9ZVzFsT2lCemRISnBibWNnZkNCdWRXeHNPMXh1SUNCd2RXSnNhV01nY0c5emFYUnBiMjVOWVhKbmFXNVRkR0YwWlRvZ2MzUnlhVzVuTzF4dUlDQndkV0pzYVdNZ2NHOXphWFJwYjI1TllYSm5hVzQ2SUc1MWJXSmxjaUE5SURBN1hHNGdJSEIxWW14cFl5QnpkR0Z5ZEZCdmMybDBhVzl1VG1GdFpUb2djM1J5YVc1bklId2diblZzYkR0Y2JpQWdjSFZpYkdsaklHVnVaRkJ2YzJsMGFXOXVUbUZ0WlRvZ2MzUnlhVzVuSUh3Z2JuVnNiRHRjYmlBZ2NIVmliR2xqSUdacGVGZHBaSFJvT2lCaWIyOXNaV0Z1TzF4dUlDQndkV0pzYVdNZ2RtVnlkR2xqWVd4QmJHbG5ibTFsYm5RNklITjBjbWx1WnlCOElHNTFiR3c3WEc0Z0lIQjFZbXhwWXlCb2IzSnBlbTl1ZEdGc1FXeHBaMjV0Wlc1ME9pQnpkSEpwYm1jZ2ZDQnVkV3hzTzF4dUlDQndkV0pzYVdNZ1ptbDBRWEpsWVRvZ1ltOXZiR1ZoYmp0Y2JpQWdjSFZpYkdsaklITm9jbWx1YTBWdGNIUjVWR0ZwYkRvZ1ltOXZiR1ZoYmp0Y2JpQWdjSFZpYkdsaklITnJhWEJGYlhCMGVWQnZjMmwwYVc5dWN6b2dZbTl2YkdWaGJqdGNiaUFnY0hWaWJHbGpJSEJ2YzJsMGFXOXVTR1ZwWjJoME9pQnpkSEpwYm1jN1hHNWNiaUFnY0hKcGRtRjBaU0J3YjNOcGRHbHZiazVoYldWek9pQnpkSEpwYm1kYlhTQTlJRnRkTzF4dVhHNGdJSEJ5YVhaaGRHVWdjM1JoY25SUWIzTnBkR2x2YmpvZ2JuVnRZbVZ5SUQwZ0xURTdYRzVjYmlBZ2NISnBkbUYwWlNCbGJtUlFiM05wZEdsdmJqb2diblZ0WW1WeUlEMGdMVEU3WEc1Y2JpQWdMeW9xSUVadmNpQnpkR0Z5ZEZCdmMybDBhVzl1SUdWeGRXRnNjeUIwYnlCbGJtUlFiM05wZEdsdmJpQk1aVzVuZEdnZ2FYTWdNU0FxTDF4dUlDQndjbWwyWVhSbElHZGxkQ0JNWlc1bmRHZ29LVG9nYm5WdFltVnlJSHRjYmlBZ0lDQnBaaUFvZEdocGN5NXphMmx3Ulcxd2RIbFFiM05wZEdsdmJuTXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG5CdmMybDBhVzl1Y3k1c1pXNW5kR2c3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbk4wWVhKMFVHOXphWFJwYjI0Z1BEMGdkR2hwY3k1bGJtUlFiM05wZEdsdmJpQS9JSFJvYVhNdVpXNWtVRzl6YVhScGIyNGdMU0IwYUdsekxuTjBZWEowVUc5emFYUnBiMjRnS3lBeElEb2dNRHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWjJWMElIQnZjMmwwYVc5dVYybGtkR2hYYVhSb1RXRnlaMmx1S0NrZ2UxeHVJQ0FnSUdsbUlDZ29kR2hwY3k1d2IzTnBkR2x2YmsxaGNtZHBibE4wWVhSbElEMDlQU0FuWVhWMGJ5Y3BJQ1ltSUNoMGFHbHpMblZ1YVhSelNHRnVaR3hsY2o4dVoyVjBRV3h3YUdGaVpYUkpjMDExYkhScFkyaGhjaWdwSUQwOVBTQjBjblZsS1NrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVYM0J2YzJsMGFXOXVWMmxrZEdnZ0t5QjBhR2x6TG5CdmMybDBhVzl1VFdGeVoybHVPMXh1SUNBZ0lIMWNiaUFnSUNCcFppQW9kR2hwY3k1d2IzTnBkR2x2YmsxaGNtZHBibE4wWVhSbElEMDlQU0FuWlc1aFlteGxKeWtnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdVgzQnZjMmwwYVc5dVYybGtkR2dnS3lCMGFHbHpMbkJ2YzJsMGFXOXVUV0Z5WjJsdU8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUIwYUdsekxsOXdiM05wZEdsdmJsZHBaSFJvTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCMmFXVjNVM1ZpY3pvZ1UzVmljMk55YVhCMGFXOXVXMTBnUFNCYlhUdGNibHh1SUNCamIyNXpkSEoxWTNSdmNpZ3BJSHRjYmlBZ0lDQnpkWEJsY2lncE8xeHVYRzRnSUNBZ2RHaHBjeTUyYVdWM1pYSkpaQ0E5SUZkbFlreHZaMjh1ZG1sbGQyVnlRMjkxYm5RN1hHNGdJQ0FnVjJWaVRHOW5ieTUyYVdWM1pYSkRiM1Z1ZENBclBTQXhPMXh1WEc0Z0lDQWdkR2hwY3k1MFpYaDBRbUZ6Wld4cGJtVWdQU0FuZEc5d0p6dGNiaUFnSUNCMGFHbHpMblZ1YVhSelNHRnVaR3hsY2lBOUlHNTFiR3c3WEc1Y2JpQWdJQ0IwYUdsekxsOXdiM05wZEdsdmJsZHBaSFJvSUQwZ2RHaHBjeTV3YjNOcGRHbHZibGRwWkhSb0lEMGdkR2hwY3k1bWJHOWhkQ2duY0c5emFYUnBiMjVYYVdSMGFDY3NJREUyTHlvc1hHNGdJQ0FnSUNCN1pXUnBkRzl5T2lBbmMyeHBaR1Z5Snl3Z2JXbHVPaUEwTENCdFlYZzZJRFkwTENCd2IzTjBabWw0T2lBbmNIZ25mU292S1R0Y2JpQWdJQ0IwYUdsekxtMXBia2hsYVdkb2RDQTlJSFJvYVhNdVpteHZZWFFvSjIxcGJraGxhV2RvZENjc0lEVXdMeW9zWEc0Z0lDQWdJQ0I3WldScGRHOXlPaUFuYzJ4cFpHVnlKeXdnYldsdU9pQXlOU3dnYldGNE9pQXlOVEFzSUhCdmMzUm1hWGc2SUNkd2VDZDlLaThwTzF4dUlDQWdJSFJvYVhNdWJXRjRTR1ZwWjJoMElEMGdkR2hwY3k1bWJHOWhkQ2duYldGNFNHVnBaMmgwSnl3Z01UQXdMeW9zWEc0Z0lDQWdJQ0I3WldScGRHOXlPaUFuYzJ4cFpHVnlKeXdnYldsdU9pQXlOU3dnYldGNE9pQTFNREFzSUhCdmMzUm1hWGc2SUNkd2VDZDlLaThwTzF4dVhHNGdJQ0FnZEdocGN5NWpiMjV6YVdSbGNrNTFiR3hUWlhGMVpXNWpaWE1nUFNCMGFHbHpMbUp2YjJ3b0oyTnZibk5wWkdWeVRuVnNiRk5sY1hWbGJtTmxjeWNzSUdaaGJITmxLVHRjYmlBZ0lDQjBhR2x6TG5ObGNYVmxibU5sUTI5c2RXMXVUbUZ0WlNBOUlIUm9hWE11YzNSeWFXNW5LQ2R6WlhGMVpXNWpaVU52YkhWdGJrNWhiV1VuTENCdWRXeHNLVHRjYmx4dUlDQWdJSFJvYVhNdWMzUmhjblJRYjNOcGRHbHZiazVoYldVZ1BTQjBhR2x6TG5OMGNtbHVaeWduYzNSaGNuUlFiM05wZEdsdmJrNWhiV1VuTENCdWRXeHNLVHRjYmlBZ0lDQjBhR2x6TG1WdVpGQnZjMmwwYVc5dVRtRnRaU0E5SUhSb2FYTXVjM1J5YVc1bktDZGxibVJRYjNOcGRHbHZiazVoYldVbkxDQnVkV3hzS1R0Y2JseHVJQ0FnSUhSb2FYTXVabWw0VjJsa2RHZ2dQU0IwYUdsekxtSnZiMndvSjJacGVGZHBaSFJvSnl3Z1ptRnNjMlVwTzF4dVhHNGdJQ0FnZEdocGN5NTJaWEowYVdOaGJFRnNhV2R1YldWdWRDQTlJSFJvYVhNdWMzUnlhVzVuS0NkMlpYSjBhV05oYkVGc2FXZHViV1Z1ZENjc0lDZHRhV1JrYkdVbkxGeHVJQ0FnSUNBZ2UyTm9iMmxqWlhNNklGc25kRzl3Snl3Z0oyMXBaR1JzWlNjc0lDZGliM1IwYjIwblhYMHBPMXh1SUNBZ0lIUm9hWE11YUc5eWFYcHZiblJoYkVGc2FXZHViV1Z1ZENBOUlIUm9hWE11YzNSeWFXNW5LQ2RvYjNKcGVtOXVkR0ZzUVd4cFoyNXRaVzUwSnl3Z0oyTmxiblJsY2ljc1hHNGdJQ0FnSUNCN1kyaHZhV05sY3pvZ1d5ZHNaV1owSnl3Z0oyTmxiblJsY2ljc0lDZHlhV2RvZENkZGZTazdYRzRnSUNBZ2RHaHBjeTVtYVhSQmNtVmhJRDBnZEdocGN5NWliMjlzS0NkbWFYUkJjbVZoSnl3Z2RISjFaU2s3WEc0Z0lDQWdkR2hwY3k1emFISnBibXRGYlhCMGVWUmhhV3dnUFNCMGFHbHpMbUp2YjJ3b0ozTm9jbWx1YTBWdGNIUjVWR0ZwYkNjc0lIUnlkV1VwTzF4dUlDQWdJSFJvYVhNdWMydHBjRVZ0Y0hSNVVHOXphWFJwYjI1eklEMGdkR2hwY3k1aWIyOXNLQ2R6YTJsd1JXMXdkSGxRYjNOcGRHbHZibk1uTENCbVlXeHpaU2s3WEc0Z0lDQWdkR2hwY3k1d2IzTnBkR2x2YmsxaGNtZHBibE4wWVhSbElEMGdkR2hwY3k1emRISnBibWNvSjNCdmMybDBhVzl1VFdGeVoybHVVM1JoZEdVbkxDQW5ZWFYwYnljc1hHNGdJQ0FnSUNCN1kyaHZhV05sY3pvZ1d5ZGhkWFJ2Snl3Z0oyVnVZV0pzWlNjc0lDZHZabVluWFgwcE8xeHVJQ0FnSUd4bGRDQmtaV1poZFd4MFZtRnNkV1ZHYjNKUWIzTnBkR2x2YmsxaGNtZHBiaUE5SURBN1hHNGdJQ0FnYVdZZ0tIUm9hWE11Y0c5emFYUnBiMjVOWVhKbmFXNVRkR0YwWlNBOVBUMGdKMkYxZEc4bktTQjdYRzRnSUNBZ0lDQWdJR1JsWm1GMWJIUldZV3gxWlVadmNsQnZjMmwwYVc5dVRXRnlaMmx1SUQwZ05EdGNiaUFnSUNCOVhHNGdJQ0FnZEdocGN5NXdiM05wZEdsdmJrMWhjbWRwYmlBOUlIUm9hWE11YVc1MEtDZHdiM05wZEdsdmJrMWhjbWRwYmljc0lHUmxabUYxYkhSV1lXeDFaVVp2Y2xCdmMybDBhVzl1VFdGeVoybHVMQ0I3YldsdU9pQXdMQ0J0WVhnNklERTJmU2s3WEc0Z0lDQWdkR2hwY3k1d2IzTnBkR2x2YmtobGFXZG9kQ0E5SUhSb2FYTXVjM1J5YVc1bktDZHdiM05wZEdsdmJraGxhV2RvZENjc0lGQnZjMmwwYVc5dVNHVnBaMmgwTG1aMWJHd3NJSHRqYUc5cFkyVnpPaUJiVUc5emFYUnBiMjVJWldsbmFIUXVablZzYkN3Z1VHOXphWFJwYjI1SVpXbG5hSFF1Ulc1MGNtOXdlVjE5S1R0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1lYTjVibU1nYVc1cGRDZ3BPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCcFppQW9kR2hwY3k1cGJtbDBhV0ZzYVhwbFpDa2dlMXh1SUNBZ0lDQWdZMjl1YzI5c1pTNWxjbkp2Y2lnblYyVmlURzluYnlCelpXTnZibVFnYVc1cGRHbGhiR2w2WVhScGIyNGhKeWs3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2RHaHBjeTVwYm1sMGFXRnNhWHBsWkNBOUlIUnlkV1U3WEc0Z0lDQWdkR2hwY3k1b1pXeHdWWEpzSUQwZ0p5OW9aV3h3TDNacGMzVmhiR2w2WlM5MmFXVjNaWEp6TDNkbFlpMXNiMmR2TG0xa0p6dGNibHh1SUNBZ0lIUm9hWE11YlhOblNHOXpkQ0E5SUhWcExtUnBkaWduVG04Z2JXVnpjMkZuWlNjcE8xeHVJQ0FnSUhSb2FYTXViWE5uU0c5emRDNXpkSGxzWlM1a2FYTndiR0Y1SUQwZ0oyNXZibVVuTzF4dVhHNGdJQ0FnZEdocGN5NWpZVzUyWVhNZ1BTQjFhUzVqWVc1MllYTW9LVHRjYmlBZ0lDQjBhR2x6TG1OaGJuWmhjeTV6ZEhsc1pTNTNhV1IwYUNBOUlDY3hNREFsSnp0Y2JseHVJQ0FnSUhSb2FYTXVhRzl6ZENBOUlIVnBMbVJwZGloYmRHaHBjeTV0YzJkSWIzTjBMQ0IwYUdsekxtTmhiblpoYzEwcE8xeHVYRzRnSUNBZ0x5OGdkR2hwY3k1emJHbGtaWElnUFNCMWFTNXlZVzVuWlZOc2FXUmxjaWd3TENBeU1Dd2dNaXdnTlNrN1hHNGdJQ0FnTHk4Z2RHaHBjeTV6Ykdsa1pYSXVjbTl2ZEM1emRIbHNaUzUzYVdSMGFDQTlJQ2N4TURBbEp6dGNiaUFnSUNBdkx5QjBhR2x6TG5Oc2FXUmxjaTV5YjI5MExuTjBlV3hsTG1obGFXZG9kQ0E5SUNjeE1uQjRKenRjYmx4dUlDQWdJR052Ym5OMElHZGxkRTF2Ym05dFpYSWdQU0FvY0RvZ1JFY3VVRzlwYm5RcE9pQmJiblZ0WW1WeUxDQnpkSEpwYm1jZ2ZDQnVkV3hzTENCUWIzTnBkR2x2YmsxdmJtOXRaWEpKYm1adklId2diblZzYkYwZ1BUNGdlMXh1SUNBZ0lDQWdZMjl1YzNRZ2FsQnZjeUE5SUUxaGRHZ3VabXh2YjNJb2NDNTRJQzhnZEdocGN5NXdiM05wZEdsdmJsZHBaSFJvVjJsMGFFMWhjbWRwYmlrN1hHNGdJQ0FnSUNCamIyNXpkQ0J3YjNOcGRHbHZiaUE5SUhSb2FYTXVjRzl6YVhScGIyNXpXMnBRYjNOZE8xeHVYRzRnSUNBZ0lDQnBaaUFvY0c5emFYUnBiMjRnUFQwOUlIWnZhV1FnTUNsY2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUZ0cVVHOXpMQ0J1ZFd4c0xDQnVkV3hzWFR0Y2JseHVJQ0FnSUNBZ1kyOXVjM1FnYlc5dWIyMWxjam9nYzNSeWFXNW5JSHdnZFc1a1pXWnBibVZrSUQwZ1QySnFaV04wTG10bGVYTW9jRzl6YVhScGIyNHVabkpsY1NsY2JpQWdJQ0FnSUNBZ0xtWnBibVFvS0cwcElEMCtJSEJ2YzJsMGFXOXVMbVp5WlhGYmJWMHVZbTkxYm1SekxtTnZiblJoYVc1ektIQXVlQ3dnY0M1NUtTazdYRzRnSUNBZ0lDQnBaaUFvYlc5dWIyMWxjaUE5UFQwZ2RXNWtaV1pwYm1Wa0tWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1cycFFiM01zSUc1MWJHd3NJRzUxYkd4ZE8xeHVYRzRnSUNBZ0lDQnlaWFIxY200Z1cycFFiM01zSUcxdmJtOXRaWElzSUhCdmMybDBhVzl1TG1aeVpYRmJiVzl1YjIxbGNsMWRPMXh1SUNBZ0lIMDdYRzVjYmx4dUlDQWdJQzh2SUhSb2FYTXVjM1ZpY3k1d2RYTm9LSEo0YW5NdVpuSnZiVVYyWlc1MFBFMXZkWE5sUlhabGJuUStLSFJvYVhNdVkyRnVkbUZ6TENBbmJXOTFjMlZ2ZG1WeUp5a3VjM1ZpYzJOeWFXSmxLQ2hsT2lCTmIzVnpaVVYyWlc1MEtTQTlQaUI3WEc0Z0lDQWdMeThnZlNrcE8xeHVYRzRnSUNBZ2RHaHBjeTUyYVdWM1UzVmljeTV3ZFhOb0tISjRhbk11Wm5KdmJVVjJaVzUwUEUxdmRYTmxSWFpsYm5RK0tIUm9hWE11WTJGdWRtRnpMQ0FuYlc5MWMyVnRiM1psSnlrdWMzVmljMk55YVdKbEtDaGxPaUJOYjNWelpVVjJaVzUwS1NBOVBpQjdYRzRnSUNBZ0lDQnBaaUFvSVhSb2FYTXVZMkZ1ZG1GektWeHVJQ0FnSUNBZ0lDQnlaWFIxY200N1hHNWNiaUFnSUNBZ0lHTnZibk4wSUdGeVozTWdQU0JsSUdGeklFMXZkWE5sUlhabGJuUTdYRzVjYmlBZ0lDQWdJR052Ym5OMElISTZJRzUxYldKbGNpQTlJSGRwYm1SdmR5NWtaWFpwWTJWUWFYaGxiRkpoZEdsdk8xeHVJQ0FnSUNBZ1kyOXVjM1FnWTNWeWMyOXlVRG9nUkVjdVVHOXBiblFnUFNCMGFHbHpMbU5oYm5aaGN5NW5aWFJEZFhKemIzSlFiM05wZEdsdmJpaGhjbWR6TENCeUtUdGNiaUFnSUNBZ0lHTnZibk4wSUZ0cVVHOXpMQ0J0YjI1dmJXVnlYU0E5SUdkbGRFMXZibTl0WlhJb1kzVnljMjl5VUNrN1hHNWNiaUFnSUNBZ0lHbG1JQ2gwYUdsekxtUmhkR0ZHY21GdFpTQW1KaUIwYUdsekxuTmxjVU52YkNBbUppQjBhR2x6TG5Od2JHbDBkR1Z5SUNZbUlHMXZibTl0WlhJcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2NtOTNRMjkxYm5RZ1BTQjNkUzVqYjNWdWRDZ3BMblJoYTJVb2RHaHBjeTVrWVhSaFJuSmhiV1V1Y205M1EyOTFiblFwTG1acGJIUmxjaWdvYVZKdmR6b2diblZ0WW1WeUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYzJWeElEMGdkR2hwY3k1elpYRkRiMndoTG1kbGRDaHBVbTkzS1R0Y2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCelpYRk5JRDBnYzJWeElEOGdkR2hwY3k1emNHeHBkSFJsY2lFb2MyVnhLVnQwYUdsekxuTjBZWEowVUc5emFYUnBiMjRnS3lCcVVHOXpYU0E2SUc1MWJHdzdYRzRnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJQ2dvYzJWeFRTQTlQVDBnYlc5dWIyMWxjaWtnZkh3Z0tITmxjVTBnUFQwOUlDY25JQ1ltSUcxdmJtOXRaWElnUFQwOUlDY3RKeWtwSUNZbUlIUm9hWE11WkdGMFlVWnlZVzFsTG1acGJIUmxjaTVuWlhRb2FWSnZkeWs3WEc0Z0lDQWdJQ0FnSUgwcExuSmxaSFZqWlR4dWRXMWlaWEkrS0NoamIzVnVkQ3dnYVZKdmR5a2dQVDRnWTI5MWJuUWdLeUF4TENBd0tUdGNiaUFnSUNBZ0lDQWdkV2t1ZEc5dmJIUnBjQzV6YUc5M0tIVnBMbVJwZGloYmRXa3VaR2wyS0dBa2UyMXZibTl0WlhKOVlDa3NJSFZwTG1ScGRpaGdKSHR5YjNkRGIzVnVkSDBnY205M2MyQXBYU2tzSUdGeVozTXVlQ0FySURFMkxDQmhjbWR6TG5rZ0t5QXhOaWs3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0IxYVM1MGIyOXNkR2x3TG1ocFpHVW9LVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlLU2s3WEc1Y2JpQWdJQ0IwYUdsekxuWnBaWGRUZFdKekxuQjFjMmdvY25ocWN5NW1jbTl0UlhabGJuUThUVzkxYzJWRmRtVnVkRDRvZEdocGN5NWpZVzUyWVhNc0lDZHRiM1Z6WldSdmQyNG5LUzV6ZFdKelkzSnBZbVVvS0dVNklFMXZkWE5sUlhabGJuUXBJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDZ2hkR2hwY3k1allXNTJZWE1nZkh3Z1pTNWlkWFIwYjI0Z0lUMGdNQ2xjYmlBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1WEc0Z0lDQWdJQ0JqYjI1emRDQmhjbWR6SUQwZ1pTQmhjeUJOYjNWelpVVjJaVzUwTzF4dUlDQWdJQ0FnWTI5dWMzUWdjam9nYm5WdFltVnlJRDBnZDJsdVpHOTNMbVJsZG1salpWQnBlR1ZzVW1GMGFXODdYRzRnSUNBZ0lDQmpiMjV6ZENCYmFsQnZjeXdnYlc5dWIyMWxjbDBnUFNCblpYUk5iMjV2YldWeUtIUm9hWE11WTJGdWRtRnpMbWRsZEVOMWNuTnZjbEJ2YzJsMGFXOXVLR0Z5WjNNc0lISXBLVHRjYmx4dUlDQWdJQ0FnTHk4Z2NISmxkbVZ1ZEhNZ1pHVnpaV3hsWTNRZ1lXeHNJSEp2ZDNNZ2FXWWdkMlVnYldsemN5QnRiMjV2YldWeUlHSnZkVzVrYzF4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11WkdGMFlVWnlZVzFsSUNZbUlIUm9hWE11YzJWeFEyOXNJQ1ltSUhSb2FYTXVjM0JzYVhSMFpYSWdKaVlnYlc5dWIyMWxjaWtnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbVJoZEdGR2NtRnRaUzV6Wld4bFkzUnBiMjR1YVc1cGRDZ29hVkp2ZHlrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSE5sY1NBOUlIUm9hWE11YzJWeFEyOXNJUzVuWlhRb2FWSnZkeWs3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYzJWeFRTQTlJSE5sY1NBL0lIUm9hWE11YzNCc2FYUjBaWEloS0hObGNTbGJkR2hwY3k1emRHRnlkRkJ2YzJsMGFXOXVJQ3NnYWxCdmMxMGdPaUJ1ZFd4c08xeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQW9LSE5sY1UwZ1BUMDlJRzF2Ym05dFpYSXBJSHg4SUNoelpYRk5JRDA5UFNBbkp5QW1KaUJ0YjI1dmJXVnlJRDA5UFNBbkxTY3BLU0FtSmlCMGFHbHpMbVJoZEdGR2NtRnRaUzVtYVd4MFpYSXVaMlYwS0dsU2IzY3BPMXh1SUNBZ0lDQWdJQ0I5S1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5S1NrN1hHNWNiaUFnSUNCMGFHbHpMblpwWlhkVGRXSnpMbkIxYzJnb2RXa3ViMjVUYVhwbFEyaGhibWRsWkNoMGFHbHpMbkp2YjNRcExuTjFZbk5qY21saVpTaDBhR2x6TG5KdmIzUlBibE5wZW1WRGFHRnVaMlZrTG1KcGJtUW9kR2hwY3lrcEtUdGNibHh1SUNBZ0lIUm9hWE11Y205dmRDNWhjSEJsYm1Rb2RHaHBjeTVvYjNOMEtUdGNiaUFnSUNBdkx5QjBhR2x6TG5KdmIzUXVZWEJ3Wlc1a1EyaHBiR1FvZEdocGN5NXpiR2xrWlhJdWNtOXZkQ2s3WEc1Y2JpQWdJQ0IwYUdsekxuSmxibVJsY2loMGNuVmxLVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnY205dmRFOXVVMmw2WlVOb1lXNW5aV1FvWVhKbmN6b2dZVzU1S1NCN1hHNGdJQ0FnZEdocGN5NXlaVzVrWlhJb2RISjFaU2s3WEc1Y2JpQWdJQ0F2THlCamIyNXpiMnhsTG1SbFluVm5LR0JYWldKTWIyZHZMbTl1VW05dmRGTnBlbVZEYUdGdVoyVmtLQ2tnWUNBclhHNGdJQ0FnTHk4Z0lDQmdjbTl2ZEM1M2FXUjBhRDBrZTNSb2FYTXVjbTl2ZEM1amJHbGxiblJYYVdSMGFIMHNJSEp2YjNRdWFHVnBaMmgwUFNSN2RHaHBjeTV5YjI5MExtTnNhV1Z1ZEVobGFXZG9kSDBzSUdBZ0sxeHVJQ0FnSUM4dklDQWdZR05oYm5aaGN5NTNhV1IwYUQwa2UzUm9hWE11WTJGdWRtRnpMbmRwWkhSb2ZTd2dZMkZ1ZG1GekxtaGxhV2RvZEQwa2UzUm9hWE11WTJGdWRtRnpMbWhsYVdkb2RIMGdMbUFwTzF4dUlDQjlYRzVjYmlBZ0x5b3FJRUZ6YzJsbmJuTWdlMEJzYVc1cklITmxjVU52YkgwZ1lXNWtJSHRBYkdsdWF5QmpjSDBnWW1GelpXUWdiMjRnZTBCc2FXNXJJSE5sY1hWbGJtTmxRMjlzZFcxdVRtRnRaWDBnWVc1a0lHTmhiR3h6SUh0QWJHbHVheUJ5Wlc1a1pYSjlLQ2t1WEc0Z0lDQXFMMXh1SUNCd2NtbDJZWFJsSUhWd1pHRjBaVk5sY1VOdmJDZ3BPaUIyYjJsa0lIdGNiaUFnSUNCcFppQW9kR2hwY3k1a1lYUmhSbkpoYldVcElIdGNiaUFnSUNBZ0lIUm9hWE11YzJWeFEyOXNJRDBnZEdocGN5NXpaWEYxWlc1alpVTnZiSFZ0Yms1aGJXVWdQeUIwYUdsekxtUmhkR0ZHY21GdFpTNWpiMndvZEdocGN5NXpaWEYxWlc1alpVTnZiSFZ0Yms1aGJXVXBJRG9nYm5Wc2JEdGNiaUFnSUNBZ0lHbG1JQ2gwYUdsekxuTmxjVU52YkNBOVBTQnVkV3hzS1NCN1hHNGdJQ0FnSUNBZ0lIUm9hWE11YzJWeFEyOXNJRDBnVjJWaVRHOW5ieTV3YVdOclZYQlRaWEZEYjJ3eUtIUm9hWE11WkdGMFlVWnlZVzFsS1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6WlhGMVpXNWpaVU52YkhWdGJrNWhiV1VnUFNCMGFHbHpMbk5sY1VOdmJDQS9JSFJvYVhNdWMyVnhRMjlzTG01aGJXVWdPaUJ1ZFd4c08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2FXWWdLSFJvYVhNdWMyVnhRMjlzS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhWdWFYUnpPaUJ6ZEhKcGJtY2dQU0IwYUdsekxuTmxjVU52YkNFdVoyVjBWR0ZuS0VSSExsUkJSMU11VlU1SlZGTXBPMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnpaWEJoY21GMGIzSTZJSE4wY21sdVp5QTlJSFJvYVhNdWMyVnhRMjlzSVM1blpYUlVZV2NvVlc1cGRITklZVzVrYkdWeUxsUkJSMU11YzJWd1lYSmhkRzl5S1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV6Y0d4cGRIUmxjaUE5SUZkbFlreHZaMjh1WjJWMFUzQnNhWFIwWlhJb2RXNXBkSE1zSUhObGNHRnlZWFJ2Y2lrN1hHNGdJQ0FnSUNBZ0lIUm9hWE11ZFc1cGRITklZVzVrYkdWeUlEMGdibVYzSUZWdWFYUnpTR0Z1Wkd4bGNpaDBhR2x6TG5ObGNVTnZiQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2RHaHBjeTUxY0dSaGRHVlFiM05wZEdsdmJuTW9LVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NWpjQ0E5SUZkbFlreHZaMjh1Y0dsamExVndVR0ZzWlhSMFpTaDBhR2x6TG5ObGNVTnZiQ2s3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuTndiR2wwZEdWeUlEMGdiblZzYkR0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV3YjNOcGRHbHZiazVoYldWeklEMGdXMTA3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVjM1JoY25SUWIzTnBkR2x2YmlBOUlDMHhPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtVnVaRkJ2YzJsMGFXOXVJRDBnTFRFN1hHNGdJQ0FnSUNBZ0lIUm9hWE11WTNBZ1BTQnVkV3hzTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQjBhR2x6TG5KbGJtUmxjaWdwTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCMWNHUmhkR1ZRYjNOcGRHbHZibk1vS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbk5sY1VOdmJDbGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JseHVJQ0FnSUd4bGRDQmpZWFJsWjI5eWFXVnpPaUFvYzNSeWFXNW5JSHdnYm5Wc2JDa2dXMTA3WEc0Z0lDQWdhV1lnS0hSb2FYTXVjMmh5YVc1clJXMXdkSGxVWVdsc0tTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCcGJtUnBZMlZ6T2lCSmJuUXpNa0Z5Y21GNUlEMGdkR2hwY3k1a1lYUmhSbkpoYldVdVptbHNkR1Z5TG1kbGRGTmxiR1ZqZEdWa1NXNWtaWGhsY3lncE8xeHVJQ0FnSUNBZ1kyRjBaV2R2Y21sbGN5QTlJRUZ5Y21GNUxtWnliMjBvYm1WM0lGTmxkQ2hjYmlBZ0lDQWdJQ0FnUVhKeVlYa3Vabkp2YlNoQmNuSmhlU2hwYm1ScFkyVnpMbXhsYm1kMGFDa3VhMlY1Y3lncEtTNXRZWEFvS0drNklHNTFiV0psY2lrZ1BUNGdkR2hwY3k1elpYRkRiMndoTG1kbGRDaHBibVJwWTJWelcybGRLU2twS1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdZMkYwWldkdmNtbGxjeUE5SUhSb2FYTXVjMlZ4UTI5c0xtTmhkR1ZuYjNKcFpYTTdYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJuTjBJRzFoZUV4bGJtZDBhQ0E5SUdOaGRHVm5iM0pwWlhNdWJHVnVaM1JvSUQ0Z01DQS9JRTFoZEdndWJXRjRLQzR1TG1OaGRHVm5iM0pwWlhNdWJXRndLRnh1SUNBZ0lDQWdLSE1wSUQwK0lITWdJVDA5SUc1MWJHd2dQeUIwYUdsekxuTndiR2wwZEdWeUlTaHpLUzVzWlc1bmRHZ2dPaUF3S1NrZ09pQXdPMXh1WEc0Z0lDQWdMeThnUjJWMElIQnZjMmwwYVc5dUlHNWhiV1Z6SUdaeWIyMGdaR0YwWVNCamIyeDFiVzRnZEdGbklDZHdiM05wZEdsdmJrNWhiV1Z6SjF4dUlDQWdJR052Ym5OMElIQnZjMmwwYVc5dVRtRnRaWE5VZUhRZ1BTQjBhR2x6TG5ObGNVTnZiQzVuWlhSVVlXY29KM0J2YzJsMGFXOXVUbUZ0WlhNbktUdGNiaUFnSUNBdkx5QkdZV3hzWW1GamF5QnBaaUFuY0c5emFYUnBiMjVPWVcxbGN5Y2dkR0ZuSUdseklHNXZkQ0J3Y205MmFXUmxaRnh1SUNBZ0lIUm9hWE11Y0c5emFYUnBiMjVPWVcxbGN5QTlJSEJ2YzJsMGFXOXVUbUZ0WlhOVWVIUWdQeUJ3YjNOcGRHbHZiazVoYldWelZIaDBMbk53YkdsMEtDY3NJQ2NwTG0xaGNDZ29iaWtnUFQ0Z2JpNTBjbWx0S0NrcElEcGNiaUFnSUNBZ0lGc3VMaTVCY25KaGVTaHRZWGhNWlc1bmRHZ3BMbXRsZVhNb0tWMHViV0Z3S0NocVVHOXpLU0E5UGlCZ0pIdHFVRzl6SUNzZ01YMWdLVHRjYmx4dUlDQWdJSFJvYVhNdWMzUmhjblJRYjNOcGRHbHZiaUE5SUNoMGFHbHpMbk4wWVhKMFVHOXphWFJwYjI1T1lXMWxJQ1ltSUhSb2FYTXVjRzl6YVhScGIyNU9ZVzFsY3lBbUpseHVJQ0FnSUNBZ2RHaHBjeTV3YjNOcGRHbHZiazVoYldWekxtbHVZMngxWkdWektIUm9hWE11YzNSaGNuUlFiM05wZEdsdmJrNWhiV1VwS1NBL1hHNGdJQ0FnSUNCMGFHbHpMbkJ2YzJsMGFXOXVUbUZ0WlhNdWFXNWtaWGhQWmloMGFHbHpMbk4wWVhKMFVHOXphWFJwYjI1T1lXMWxLU0E2SURBN1hHNGdJQ0FnZEdocGN5NWxibVJRYjNOcGRHbHZiaUE5SUNoMGFHbHpMbVZ1WkZCdmMybDBhVzl1VG1GdFpTQW1KaUIwYUdsekxuQnZjMmwwYVc5dVRtRnRaWE1nSmlaY2JpQWdJQ0FnSUhSb2FYTXVjRzl6YVhScGIyNU9ZVzFsY3k1cGJtTnNkV1JsY3loMGFHbHpMbVZ1WkZCdmMybDBhVzl1VG1GdFpTa3BJRDljYmlBZ0lDQWdJSFJvYVhNdWNHOXphWFJwYjI1T1lXMWxjeTVwYm1SbGVFOW1LSFJvYVhNdVpXNWtVRzl6YVhScGIyNU9ZVzFsS1NBNklDaHRZWGhNWlc1bmRHZ2dMU0F4S1R0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCdmRtVnljbWxrWlNCdmJsQnliM0JsY25SNVEyaGhibWRsWkNod2NtOXdaWEowZVRvZ1JFY3VVSEp2Y0dWeWRIa3BPaUIyYjJsa0lIdGNiaUFnSUNBdkx5QmpiMjV6YjJ4bExtUmxZblZuS0dCWFpXSk1iMmR2TG05dVVISnZjR1Z5ZEhsRGFHRnVaMlZrS0NBa2UzQnliM0JsY25SNUxtNWhiV1Y5SUQwZ0p5Y2dmU2xnS1R0Y2JpQWdJQ0J6ZFhCbGNpNXZibEJ5YjNCbGNuUjVRMmhoYm1kbFpDaHdjbTl3WlhKMGVTazdYRzVjYmlBZ0lDQnpkMmwwWTJnZ0tIQnliM0JsY25SNUxtNWhiV1VwSUh0Y2JpQWdJQ0JqWVhObElDZGpiMjV6YVdSbGNrNTFiR3hUWlhGMVpXNWpaWE1uT2x4dUlDQWdJQ0FnZEdocGN5NXlaVzVrWlhJb2RISjFaU2s3WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCallYTmxJQ2R6WlhGMVpXNWpaVU52YkhWdGJrNWhiV1VuT2x4dUlDQWdJQ0FnZEdocGN5NTFjR1JoZEdWVFpYRkRiMndvS1R0Y2JpQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lHTmhjMlVnSjNOMFlYSjBVRzl6YVhScGIyNU9ZVzFsSnpwY2JpQWdJQ0FnSUhSb2FYTXVkWEJrWVhSbFUyVnhRMjlzS0NrN1hHNGdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQmpZWE5sSUNkbGJtUlFiM05wZEdsdmJrNWhiV1VuT2x4dUlDQWdJQ0FnZEdocGN5NTFjR1JoZEdWVFpYRkRiMndvS1R0Y2JpQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lHTmhjMlVnSjNCdmMybDBhVzl1VjJsa2RHZ25PbHh1SUNBZ0lDQWdkR2hwY3k1ZmNHOXphWFJwYjI1WGFXUjBhQ0E5SUhSb2FYTXVjRzl6YVhScGIyNVhhV1IwYUR0Y2JpQWdJQ0FnSUhSb2FYTXVjbVZ1WkdWeUtIUnlkV1VwTzF4dUlDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ1kyRnpaU0FuYldsdVNHVnBaMmgwSnpwY2JpQWdJQ0FnSUhSb2FYTXVjbVZ1WkdWeUtIUnlkV1VwTzF4dUlDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ1kyRnpaU0FuYldGNFNHVnBaMmgwSnpwY2JpQWdJQ0FnSUhSb2FYTXVjbVZ1WkdWeUtIUnlkV1VwTzF4dUlDQWdJQ0FnWW5KbFlXczdYRzRnSUNBZ1kyRnpaU0FuWm1sNFYybGtkR2duT2x4dUlDQWdJQ0FnZEdocGN5NXlaVzVrWlhJb2RISjFaU2s3WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCallYTmxJQ2QyWlhKMGFXTmhiRUZzYVdkdWJXVnVkQ2M2WEc0Z0lDQWdJQ0IwYUdsekxuSmxibVJsY2loMGNuVmxLVHRjYmlBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUdOaGMyVWdKMmh2Y21sNmIyNTBZV3hCYkdsbmJtMWxiblFuT2x4dUlDQWdJQ0FnZEdocGN5NXlaVzVrWlhJb2RISjFaU2s3WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCallYTmxJQ2RtYVhSQmNtVmhKenBjYmlBZ0lDQWdJSFJvYVhNdWNtVnVaR1Z5S0hSeWRXVXBPMXh1SUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnWTJGelpTQW5jMmh5YVc1clJXMXdkSGxVWVdsc0p6cGNiaUFnSUNBZ0lIUm9hWE11ZFhCa1lYUmxVRzl6YVhScGIyNXpLQ2s3WEc0Z0lDQWdJQ0IwYUdsekxuSmxibVJsY2loMGNuVmxLVHRjYmlBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUdOaGMyVWdKM05yYVhCRmJYQjBlVkJ2YzJsMGFXOXVjeWM2WEc0Z0lDQWdJQ0IwYUdsekxuVndaR0YwWlZCdmMybDBhVzl1Y3lncE8xeHVJQ0FnSUNBZ2RHaHBjeTV5Wlc1a1pYSW9kSEoxWlNrN1hHNGdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQmpZWE5sSUNkd2IzTnBkR2x2YmsxaGNtZHBiaWM2WEc0Z0lDQWdJQ0IwYUdsekxuSmxibVJsY2loMGNuVmxLVHRjYmlBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUdOaGMyVWdKM0J2YzJsMGFXOXVUV0Z5WjJsdVUzUmhkR1VuT2x4dUlDQWdJQ0FnZEdocGN5NXlaVzVrWlhJb2RISjFaU2s3WEc0Z0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCallYTmxJQ2R3YjNOcGRHbHZia2hsYVdkb2RDYzZYRzRnSUNBZ0lDQjBhR2x6TG5KbGJtUmxjaWgwY25WbEtUdGNiaUFnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJ2ZG1WeWNtbGtaU0JoYzNsdVl5QnZibFJoWW14bFFYUjBZV05vWldRb0tTQjdYRzRnSUNBZ1kyOXVjM1FnWkdGMFlVWnlZVzFsVkhoME9pQnpkSEpwYm1jZ1BTQjBhR2x6TG1SaGRHRkdjbUZ0WlNBL0lDZGtZWFJoSnlBNklDZHVkV3hzSnp0Y2JpQWdJQ0JqYjI1emIyeGxMbVJsWW5WbktHQmlhVzg2SUZkbFlreHZaMjg4Skh0MGFHbHpMblpwWlhkbGNrbGtmVDR1YjI1VVlXSnNaVUYwZEdGamFHVmtLQ0JrWVhSaFJuSmhiV1VnUFNBa2UyUmhkR0ZHY21GdFpWUjRkSDBnS1NCemRHRnlkR0FwTzF4dUlDQWdJSE4xY0dWeUxtOXVWR0ZpYkdWQmRIUmhZMmhsWkNncE8xeHVYRzRnSUNBZ2RHaHBjeTUxY0dSaGRHVlRaWEZEYjJ3b0tUdGNibHh1SUNBZ0lHbG1JQ2gwYUdsekxtUmhkR0ZHY21GdFpTQWhQVDBnZG05cFpDQXdLU0I3WEc0Z0lDQWdJQ0IwYUdsekxuTjFZbk11Y0hWemFDaDBhR2x6TG1SaGRHRkdjbUZ0WlM1elpXeGxZM1JwYjI0dWIyNURhR0Z1WjJWa0xuTjFZbk5qY21saVpTZ29YeWtnUFQ0Z2RHaHBjeTV5Wlc1a1pYSW9LU2twTzF4dUlDQWdJQ0FnZEdocGN5NXpkV0p6TG5CMWMyZ29kR2hwY3k1a1lYUmhSbkpoYldVdVptbHNkR1Z5TG05dVEyaGhibWRsWkM1emRXSnpZM0pwWW1Vb0tGOHBJRDArSUh0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTUxY0dSaGRHVlFiM05wZEdsdmJuTW9LVHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXlaVzVrWlhJb0tUdGNiaUFnSUNBZ0lIMHBLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbWx1YVhRb0tUdGNiaUFnSUNCamIyNXpiMnhsTG1SbFluVm5LR0JpYVc4NklGZGxZa3h2WjI4OEpIdDBhR2x6TG5acFpYZGxja2xrZlQ0dWIyNVVZV0pzWlVGMGRHRmphR1ZrS0NrZ1pXNWtZQ2s3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nYjNabGNuSnBaR1VnWVhONWJtTWdaR1YwWVdOb0tDa2dlMXh1SUNBZ0lHTnZibk4wSUdSaGRHRkdjbUZ0WlZSNGRDQTlJR0FrZTNSb2FYTXVaR0YwWVVaeVlXMWxJRDhnSjJSaGRHRW5JRG9nSjI1MWJHd25mV0E3WEc0Z0lDQWdZMjl1YzI5c1pTNWtaV0oxWnloZ1ltbHZPaUJYWldKTWIyZHZQQ1I3ZEdocGN5NTJhV1YzWlhKSlpIMCtMbTl1VkdGaWJHVkJkSFJoWTJobFpDZ2daR0YwWVVaeVlXMWxJRDBnSkh0a1lYUmhSbkpoYldWVWVIUjlJQ2tnYzNSaGNuUmdLVHRjYmlBZ0lDQnpkWEJsY2k1a1pYUmhZMmdvS1R0Y2JseHVJQ0FnSUhSb2FYTXVkbWxsZDFOMVluTXVabTl5UldGamFDZ29jM1ZpS1NBOVBpQnpkV0l1ZFc1emRXSnpZM0pwWW1Vb0tTazdYRzRnSUNBZ2RHaHBjeTVvYjNOMElTNXlaVzF2ZG1Vb0tUdGNiaUFnSUNCMGFHbHpMbU5oYm5aaGN5QTlJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQjBhR2x6TG0xelowaHZjM1FnUFNCMWJtUmxabWx1WldRN1hHNGdJQ0FnZEdocGN5NW9iM04wSUQwZ2RXNWtaV1pwYm1Wa08xeHVYRzRnSUNBZ2RHaHBjeTVwYm1sMGFXRnNhWHBsWkNBOUlHWmhiSE5sTzF4dUlDQWdJR052Ym5OdmJHVXVaR1ZpZFdjb1lHSnBiem9nVjJWaVRHOW5iendrZTNSb2FYTXVkbWxsZDJWeVNXUjlQaTV2YmxSaFlteGxRWFIwWVdOb1pXUW9LU0JsYm1SZ0tUdGNiaUFnZlZ4dVhHNGdJSEJ5YjNSbFkzUmxaQ0JmYm5Wc2JGTmxjWFZsYm1ObEtHWnBiR3hsY2xKbGMybGtkV1VnUFNBbldDY3BPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHbG1JQ2gwYUdsekxtTnZibk5wWkdWeVRuVnNiRk5sY1hWbGJtTmxjeWxjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnUVhKeVlYa29kR2hwY3k1TVpXNW5kR2dwTG1acGJHd29abWxzYkdWeVVtVnphV1IxWlNrdWFtOXBiaWduSnlrN1hHNWNiaUFnSUNCeVpYUjFjbTRnSnljN1hHNGdJSDFjYmx4dUlDQndjbTkwWldOMFpXUWdjbVZ0YjNabFYyaGxjbVVvWVhKeVlYazZJRUZ5Y21GNVBHRnVlVDRzSUhCeVpXUnBZMkYwWlRvZ0tGUTZJR0Z1ZVNrZ1BUNGdZbTl2YkdWaGJpazZJRUZ5Y21GNVBHRnVlVDRnZTF4dUlDQWdJR3hsZENCc1pXNW5kR2dnUFNCaGNuSmhlUzVzWlc1bmRHZzdYRzRnSUNBZ2JHVjBJSFZ3WkdGMFpVbDBaWEpoZEc5eUlEMGdNRHRjYmlBZ0lDQm1iM0lnS0d4bGRDQmtaV3hsZEdWSmRHVnlZWFJ2Y2lBOUlEQTdJR1JsYkdWMFpVbDBaWEpoZEc5eUlEd2diR1Z1WjNSb095QmtaV3hsZEdWSmRHVnlZWFJ2Y2lzcktTQjdYRzRnSUNBZ0lDQnBaaUFvSVhCeVpXUnBZMkYwWlNoaGNuSmhlVnRrWld4bGRHVkpkR1Z5WVhSdmNsMHBLU0I3WEc0Z0lDQWdJQ0FnSUdGeWNtRjVXM1Z3WkdGMFpVbDBaWEpoZEc5eVhTQTlJR0Z5Y21GNVcyUmxiR1YwWlVsMFpYSmhkRzl5WFR0Y2JpQWdJQ0FnSUNBZ2RYQmtZWFJsU1hSbGNtRjBiM0lyS3p0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lDQWdZWEp5WVhrdWJHVnVaM1JvSUQwZ2RYQmtZWFJsU1hSbGNtRjBiM0k3WEc0Z0lDQWdjbVYwZFhKdUlHRnljbUY1TzF4dUlDQjlYRzVjYmx4dUlDQndjbTkwWldOMFpXUWdYM0psYlc5MlpVVnRjSFI1VUc5emFYUnBiMjV6S0NrZ2UxeHVJQ0FnSUdsbUlDaDBhR2x6TG5OcmFYQkZiWEIwZVZCdmMybDBhVzl1Y3lrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTV5WlcxdmRtVlhhR1Z5WlNoMGFHbHpMbkJ2YzJsMGFXOXVjeXdnYVhSbGJTQTlQaUJwZEdWdFB5NW1jbVZ4V3ljdEoxMC9MbU52ZFc1MElEMDlQU0JwZEdWdExuSnZkME52ZFc1MEtUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQndjbTkwWldOMFpXUWdYMk5oYkdOMWJHRjBaU2h5T2lCdWRXMWlaWElwSUh0Y2JpQWdJQ0JwWmlBb0lYUm9hWE11WTJGdWRtRnpJSHg4SUNGMGFHbHpMbWh2YzNRZ2ZId2dJWFJvYVhNdWMyVnhRMjlzSUh4OElDRjBhR2x6TG1SaGRHRkdjbUZ0WlNsY2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjBhR2x6TG5WdWFYUnpTR0Z1Wkd4bGNpQTlJRzVsZHlCVmJtbDBjMGhoYm1Sc1pYSW9kR2hwY3k1elpYRkRiMndwTzF4dVhHNWNiaUFnSUNCMGFHbHpMbU5oYkdOVGFYcGxLQ2s3WEc1Y2JpQWdJQ0IwYUdsekxuQnZjMmwwYVc5dWN5QTlJRzVsZHlCQmNuSmhlU2gwYUdsekxuTjBZWEowVUc5emFYUnBiMjRnUEQwZ2RHaHBjeTVsYm1SUWIzTnBkR2x2YmlBL0lIUm9hWE11Wlc1a1VHOXphWFJwYjI0Z0xTQjBhR2x6TG5OMFlYSjBVRzl6YVhScGIyNGdLeUF4SURvZ01DazdYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FsQnZjeUE5SURBN0lHcFFiM01nUENCMGFHbHpMa3hsYm1kMGFEc2dhbEJ2Y3lzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCd2IzTk9ZVzFsT2lCemRISnBibWNnUFNCMGFHbHpMbkJ2YzJsMGFXOXVUbUZ0WlhOYmRHaHBjeTV6ZEdGeWRGQnZjMmwwYVc5dUlDc2dhbEJ2YzEwN1hHNGdJQ0FnSUNCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTQTlJRzVsZHlCUWIzTnBkR2x2YmtsdVptOG9jRzl6VG1GdFpTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5OGdNakF5TWkwd05TMHdOU0JoYzJ0aGJHdHBiaUJwYm5OMGNuVmpkR1ZrSUhSdklITm9iM2NnVjJWaVRHOW5ieUJpWVhObFpDQnZiaUJtYVd4MFpYSWdLRzV2ZENCelpXeGxZM1JwYjI0cFhHNGdJQ0FnWTI5dWMzUWdhVzVrYVdObGN5QTlJSFJvYVhNdVpHRjBZVVp5WVcxbExtWnBiSFJsY2k1blpYUlRaV3hsWTNSbFpFbHVaR1Y0WlhNb0tUdGNiaUFnSUNBdkx5QmpiMjV6ZENCcGJtUnBZMlZ6SUQwZ2RHaHBjeTVrWVhSaFJuSmhiV1V1YzJWc1pXTjBhVzl1TG5SeWRXVkRiM1Z1ZENBK0lEQWdQeUIwYUdsekxtUmhkR0ZHY21GdFpTNXpaV3hsWTNScGIyNHVaMlYwVTJWc1pXTjBaV1JKYm1SbGVHVnpLQ2tnT2x4dUlDQWdJQzh2SUNBZ2RHaHBjeTVrWVhSaFJuSmhiV1V1Wm1sc2RHVnlMbWRsZEZObGJHVmpkR1ZrU1c1a1pYaGxjeWdwTzF4dVhHNGdJQ0FnZEdocGN5NXliM2R6VFdGemEyVmtJRDBnYVc1a2FXTmxjeTVzWlc1bmRHZzdYRzRnSUNBZ2RHaHBjeTV5YjNkelRuVnNiQ0E5SURBN1hHNWNiaUFnSUNCbWIzSWdLR052Ym5OMElHa2diMllnYVc1a2FXTmxjeWtnZTF4dUlDQWdJQ0FnYkdWMElITTZJSE4wY21sdVp5QTlJRHh6ZEhKcGJtYytLSFJvYVhNdWMyVnhRMjlzTG1kbGRDaHBLU2s3WEc1Y2JpQWdJQ0FnSUdsbUlDZ2hjeWtnZTF4dUlDQWdJQ0FnSUNCeklEMGdkR2hwY3k1ZmJuVnNiRk5sY1hWbGJtTmxLQ2s3WEc0Z0lDQWdJQ0FnSUNzcmRHaHBjeTV5YjNkelRuVnNiRHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnWTI5dWMzUWdjMlZ4VFRvZ2MzUnlhVzVuVzEwZ1BTQjBhR2x6TG5Od2JHbDBkR1Z5SVNoektUdGNiaUFnSUNBZ0lHWnZjaUFvYkdWMElHcFFiM01nUFNBd095QnFVRzl6SUR3Z2RHaHBjeTVNWlc1bmRHZzdJR3BRYjNNckt5a2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQndiVWx1Wm04Z1BTQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYUzVtY21WeE8xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCdE9pQnpkSEpwYm1jZ1BTQnpaWEZOVzNSb2FYTXVjM1JoY25SUWIzTnBkR2x2YmlBcklHcFFiM05kSUh4OElDY3RKenRjYmlBZ0lDQWdJQ0FnYVdZZ0tDRW9iU0JwYmlCd2JVbHVabThwS1Z4dUlDQWdJQ0FnSUNBZ0lIQnRTVzVtYjF0dFhTQTlJRzVsZHlCUWIzTnBkR2x2YmsxdmJtOXRaWEpKYm1adktDazdYRzRnSUNBZ0lDQWdJSEJ0U1c1bWIxdHRYUzVqYjNWdWRDc3JPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lDOHZJM0psWjJsdmJpQlFiMnhwYzJnZ1puSmxjU0JqYjNWdWRITmNiaUFnSUNCbWIzSWdLR3hsZENCcVVHOXpJRDBnTURzZ2FsQnZjeUE4SUhSb2FYTXVUR1Z1WjNSb095QnFVRzl6S3lzcElIdGNiaUFnSUNBZ0lDOHZJR1JsYkdWMFpTQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYUzVtY21WeFd5Y3RKMTA3WEc1Y2JpQWdJQ0FnSUhSb2FYTXVjRzl6YVhScGIyNXpXMnBRYjNOZExuSnZkME52ZFc1MElEMGdNRHRjYmlBZ0lDQWdJR1p2Y2lBb1kyOXVjM1FnYlNCcGJpQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYUzVtY21WeEtWeHVJQ0FnSUNBZ0lDQjBhR2x6TG5CdmMybDBhVzl1YzF0cVVHOXpYUzV5YjNkRGIzVnVkQ0FyUFNCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTNW1jbVZ4VzIxZExtTnZkVzUwTzF4dUlDQWdJQ0FnYVdZZ0tIUm9hWE11Y0c5emFYUnBiMjVJWldsbmFIUWdQVDBnVUc5emFYUnBiMjVJWldsbmFIUXVSVzUwY205d2VTa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuQnZjMmwwYVc5dWMxdHFVRzl6WFM1emRXMUdiM0pJWldsbmFIUkRZV3hqSUQwZ01EdGNiaUFnSUNBZ0lDQWdabTl5SUNoamIyNXpkQ0J0SUdsdUlIUm9hWE11Y0c5emFYUnBiMjV6VzJwUWIzTmRMbVp5WlhFcElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQndiaUE5SUhSb2FYTXVjRzl6YVhScGIyNXpXMnBRYjNOZExtWnlaWEZiYlYwdVkyOTFiblFnTHlCMGFHbHpMbkJ2YzJsMGFXOXVjMXRxVUc5elhTNXliM2REYjNWdWREdGNiaUFnSUNBZ0lDQWdJQ0IwYUdsekxuQnZjMmwwYVc5dWMxdHFVRzl6WFM1emRXMUdiM0pJWldsbmFIUkRZV3hqSUNzOUlDMXdiaUFxSUUxaGRHZ3ViRzluTWlod2JpazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ0x5OGpaVzVrY21WbmFXOXVYRzRnSUNBZ2RHaHBjeTVmY21WdGIzWmxSVzF3ZEhsUWIzTnBkR2x2Ym5Nb0tUdGNibHh1SUNBZ0lHTnZibk4wSUdGaWMyOXNkWFJsVFdGNFNHVnBaMmgwSUQwZ2RHaHBjeTVqWVc1MllYTXVhR1ZwWjJoMElDMGdkR2hwY3k1aGVHbHpTR1ZwWjJoMElDb2djanRjYmlBZ0lDQXZMeUJqYjI1emIyeGxMbVJsWW5WbktHQlhaV0pNYjJkdlBDUjdkR2hwY3k1MmFXVjNaWEpKWkgwK0xsOWpZV3hqZFd4aGRHVW9LU0J0WVhoSVpXbG5hSFE5Skh0dFlYaElaV2xuYUhSOUxtQXBPMXh1WEc0Z0lDQWdMeThqY21WbmFXOXVJRU5oYkdOMWJHRjBaU0J6WTNKbFpXNWNiaUFnSUNCbWIzSWdLR3hsZENCcVVHOXpJRDBnTURzZ2FsQnZjeUE4SUhSb2FYTXVUR1Z1WjNSb095QnFVRzl6S3lzcElIdGNiaUFnSUNBZ0lHTnZibk4wSUdaeVpYRTZJSHNnVzJNNklITjBjbWx1WjEwNklGQnZjMmwwYVc5dVRXOXViMjFsY2tsdVptOGdmU0E5SUhSb2FYTXVjRzl6YVhScGIyNXpXMnBRYjNOZExtWnlaWEU3WEc0Z0lDQWdJQ0JqYjI1emRDQnliM2REYjNWdWRDQTlJSFJvYVhNdWNHOXphWFJwYjI1elcycFFiM05kTG5KdmQwTnZkVzUwTzF4dUlDQWdJQ0FnWTI5dWMzUWdZV3h3YUdGaVpYUlRhWHBsSUQwZ2RHaHBjeTVuWlhSQmJIQm9ZV0psZEZOcGVtVW9LVHRjYmlBZ0lDQWdJR2xtSUNnb2RHaHBjeTV3YjNOcGRHbHZia2hsYVdkb2RDQTlQU0JRYjNOcGRHbHZia2hsYVdkb2RDNUZiblJ5YjNCNUtTQW1KaUFvWVd4d2FHRmlaWFJUYVhwbElEMDlJRzUxYkd3cEtTQjdYRzRnSUNBZ0lDQWdJR2R5YjJzdWMyaGxiR3d1WlhKeWIzSW9KMWRsWWt4dloyODZJR0ZzY0doaFltVjBJR2x6SUhWdVpHVm1hVzVsWkM0bktUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdZMjl1YzNRZ2JXRjRTR1ZwWjJoMElEMGdLSFJvYVhNdWNHOXphWFJwYjI1SVpXbG5hSFFnUFQwZ1VHOXphWFJwYjI1SVpXbG5hSFF1Ulc1MGNtOXdlU2tnUHlBb1lXSnpiMngxZEdWTllYaElaV2xuYUhRZ0tpQW9UV0YwYUM1c2IyY3lLR0ZzY0doaFltVjBVMmw2WlNrZ0xTQW9kR2hwY3k1d2IzTnBkR2x2Ym5OYmFsQnZjMTB1YzNWdFJtOXlTR1ZwWjJoMFEyRnNZeWtwSUM4Z1RXRjBhQzVzYjJjeUtHRnNjR2hoWW1WMFUybDZaU2twSURvZ1lXSnpiMngxZEdWTllYaElaV2xuYUhRN1hHNWNiaUFnSUNBZ0lHeGxkQ0I1T2lCdWRXMWlaWElnUFNCMGFHbHpMbUY0YVhOSVpXbG5hSFFnS2lCeUlDc2dLR0ZpYzI5c2RYUmxUV0Y0U0dWcFoyaDBJQzBnYldGNFNHVnBaMmgwSUMwZ01TazdYRzVjYmlBZ0lDQWdJR052Ym5OMElHVnVkSEpwWlhNZ1BTQlBZbXBsWTNRdVpXNTBjbWxsY3lobWNtVnhLUzV6YjNKMEtDaGhMQ0JpS1NBOVBpQjdYRzRnSUNBZ0lDQWdJR2xtSUNoaFd6QmRJQ0U5UFNBbkxTY2dKaVlnWWxzd1hTQWhQVDBnSnkwbktWeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQmlXekZkTG1OdmRXNTBJQzBnWVZzeFhTNWpiM1Z1ZER0Y2JpQWdJQ0FnSUNBZ1pXeHpaU0JwWmlBb1lWc3dYU0E5UFQwZ0p5MG5JQ1ltSUdKYk1GMGdQVDA5SUNjdEp5bGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdNRHRjYmlBZ0lDQWdJQ0FnWld4elpTQnBaaUFvWVZzd1hTQTlQVDBnSnkwbktWeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQXRNVHRjYmlBZ0lDQWdJQ0FnWld4elpTQXZLaUFvWWxzd1hTQTlQVDBnSnkwbktTQXFMMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUFyTVR0Y2JpQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ1ptOXlJQ2hqYjI1emRDQmxiblJ5ZVNCdlppQmxiblJ5YVdWektTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElIQnRTVzVtYnpvZ1VHOXphWFJwYjI1TmIyNXZiV1Z5U1c1bWJ5QTlJR1Z1ZEhKNVd6RmRPMXh1SUNBZ0lDQWdJQ0F2THlCamIyNXpkQ0J0T2lCemRISnBibWNnUFNCbGJuUnllVnN3WFR0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYURvZ2JuVnRZbVZ5SUQwZ2JXRjRTR1ZwWjJoMElDb2djRzFKYm1adkxtTnZkVzUwSUM4Z2NtOTNRMjkxYm5RN1hHNWNiaUFnSUNBZ0lDQWdjRzFKYm1adkxtSnZkVzVrY3lBOUlHNWxkeUJFUnk1U1pXTjBLR3BRYjNNZ0tpQjBhR2x6TG5CdmMybDBhVzl1VjJsa2RHaFhhWFJvVFdGeVoybHVMQ0I1TENCMGFHbHpMbDl3YjNOcGRHbHZibGRwWkhSb0xDQm9LVHRjYmlBZ0lDQWdJQ0FnZVNBclBTQm9PMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNBdkx5TmxibVJ5WldkcGIyNWNiaUFnZlZ4dVhHNGdJQzh2SUhKbFpteGxZM1FnWTJoaGJtZGxjeUJ0WVdSbElIUnZJR1pwYkhSbGNpOXpaV3hsWTNScGIyNWNiaUFnY21WdVpHVnlLSEpsWTJGc1l5QTlJSFJ5ZFdVcElIdGNiaUFnSUNCcFppQW9kR2hwY3k1dGMyZEliM04wS1NCN1hHNGdJQ0FnSUNCcFppQW9kR2hwY3k1elpYRkRiMndnSmlZZ0lYUm9hWE11WTNBcElIdGNiaUFnSUNBZ0lDQWdkR2hwY3k1dGMyZEliM04wSVM1cGJtNWxjbFJsZUhRZ1BTQmdWVzVyYm05M2JpQndZV3hsZEhSbElDaGpiMngxYlc0Z2MyVnRWSGx3WlRvZ0p5UjdkR2hwY3k1elpYRkRiMnd1YzJWdFZIbHdaWDBuS1M1Z08xeHVJQ0FnSUNBZ0lDQjBhR2x6TG0xelowaHZjM1FoTG5OMGVXeGxMbVJwYzNCc1lYa2dQU0FuSnp0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXViWE5uU0c5emRDRXVjM1I1YkdVdVpHbHpjR3hoZVNBOUlDZHViMjVsSnp0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb0lYUm9hWE11WTJGdWRtRnpJSHg4SUNGMGFHbHpMbk5sY1VOdmJDQjhmQ0FoZEdocGN5NWtZWFJoUm5KaGJXVWdmSHdnSVhSb2FYTXVZM0FwWEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzVjYmlBZ0lDQmpiMjV6ZENCbklEMGdkR2hwY3k1allXNTJZWE11WjJWMFEyOXVkR1Y0ZENnbk1tUW5LVHRjYmlBZ0lDQnBaaUFvSVdjcElISmxkSFZ5Ymp0Y2JseHVJQ0FnSUdOdmJuTjBJSElnUFNCM2FXNWtiM2N1WkdWMmFXTmxVR2w0Wld4U1lYUnBienRjYmx4dUlDQWdJR2xtSUNoeVpXTmhiR01wWEc0Z0lDQWdJQ0IwYUdsekxsOWpZV3hqZFd4aGRHVW9jaWs3WEc1Y2JpQWdJQ0JuTG5KbGMyVjBWSEpoYm5ObWIzSnRLQ2s3WEc0Z0lDQWdaeTVtYVd4c1UzUjViR1VnUFNBbmQyaHBkR1VuTzF4dUlDQWdJR2N1Wm1sc2JGSmxZM1FvTUN3Z01Dd2dkR2hwY3k1allXNTJZWE11ZDJsa2RHZ3NJSFJvYVhNdVkyRnVkbUZ6TG1obGFXZG9kQ2s3WEc0Z0lDQWdaeTUwWlhoMFFtRnpaV3hwYm1VZ1BTQjBhR2x6TG5SbGVIUkNZWE5sYkdsdVpUdGNibHh1SUNBZ0lDOHZJRkJ5WlhabGJuUnpJR1JwZG1semFXOXVJR0o1SUhwbGNtOGdiMjRnVEdWdVozUm9JRDBnTUZ4dUlDQWdJR2xtSUNoMGFHbHpMbk4wWVhKMFVHOXphWFJwYjI0Z1BUMDlJQzB4SUh4OElIUm9hWE11Wlc1a1VHOXphWFJwYjI0Z1BUMDlJQzB4S1Z4dUlDQWdJQ0FnY21WMGRYSnVPMXh1WEc0Z0lDQWdMeThqY21WbmFXOXVJRkJzYjNRZ2NHOXphWFJwYjI1T1lXMWxjMXh1SUNBZ0lHTnZibk4wSUhCdmMybDBhVzl1Um05dWRGTnBlbVVnUFNBeE1DQXFJSEk3WEc0Z0lDQWdaeTV5WlhObGRGUnlZVzV6Wm05eWJTZ3BPMXh1SUNBZ0lHY3VabWxzYkZOMGVXeGxJRDBnSjJKc1lXTnJKenRjYmlBZ0lDQm5MblJsZUhSQmJHbG5iaUE5SUNkalpXNTBaWEluTzF4dUlDQWdJR2N1Wm05dWRDQTlJR0FrZTNCdmMybDBhVzl1Um05dWRGTnBlbVV1ZEc5R2FYaGxaQ2d4S1gxd2VDQlNiMkp2ZEc4c0lGSnZZbTkwYnlCTWIyTmhiQ3dnYzJGdWN5MXpaWEpwWm1BN1hHNGdJQ0FnWTI5dWMzUWdjRzl6VG1GdFpVMWhlRmRwWkhSb0lEMGdUV0YwYUM1dFlYZ29MaTR1ZEdocGN5NXdiM05wZEdsdmJuTXViV0Z3S0Nod2IzTXBJRDArSUdjdWJXVmhjM1Z5WlZSbGVIUW9jRzl6TG01aGJXVXBMbmRwWkhSb0tTazdYRzRnSUNBZ1kyOXVjM1FnYUZOallXeGxJRDBnY0c5elRtRnRaVTFoZUZkcFpIUm9JRHdnS0hSb2FYTXVYM0J2YzJsMGFXOXVWMmxrZEdnZ0xTQXlLU0EvSURFZ09pQW9kR2hwY3k1ZmNHOXphWFJwYjI1WGFXUjBhQ0F0SURJcElDOGdjRzl6VG1GdFpVMWhlRmRwWkhSb08xeHVYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FsQnZjeUE5SURBN0lHcFFiM01nUENCMGFHbHpMa3hsYm1kMGFEc2dhbEJ2Y3lzcktTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCd2IzTTZJRkJ2YzJsMGFXOXVTVzVtYnlBOUlIUm9hWE11Y0c5emFYUnBiMjV6VzJwUWIzTmRPMXh1SUNBZ0lDQWdaeTV5WlhObGRGUnlZVzV6Wm05eWJTZ3BPMXh1SUNBZ0lDQWdaeTV6WlhSVWNtRnVjMlp2Y20wb1hHNGdJQ0FnSUNBZ0lHaFRZMkZzWlN3Z01Dd2dNQ3dnTVN4Y2JpQWdJQ0FnSUNBZ2FsQnZjeUFxSUhSb2FYTXVjRzl6YVhScGIyNVhhV1IwYUZkcGRHaE5ZWEpuYVc0Z0t5QjBhR2x6TGw5d2IzTnBkR2x2YmxkcFpIUm9JQzhnTWl3Z01DazdYRzRnSUNBZ0lDQm5MbVpwYkd4VVpYaDBLSEJ2Y3k1dVlXMWxMQ0F3TENBd0tUdGNiaUFnSUNCOVhHNGdJQ0FnTHk4alpXNWtjbVZuYVc5dUlGQnNiM1FnY0c5emFYUnBiMjVPWVcxbGMxeHVYRzRnSUNBZ1ptOXlJQ2hzWlhRZ2FsQnZjeUE5SURBN0lHcFFiM01nUENCMGFHbHpMa3hsYm1kMGFEc2dhbEJ2Y3lzcktTQjdYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJRnR0YjI1dmJXVnlMQ0J3YlVsdVptOWRJRzltSUU5aWFtVmpkQzVsYm5SeWFXVnpLSFJvYVhNdWNHOXphWFJwYjI1elcycFFiM05kTG1aeVpYRXBLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaHRiMjV2YldWeUlDRTlQU0FuTFNjcElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnRiMjV2YldWeVZIaDBJRDBnVjJWaVRHOW5ieTV0YjI1dmJXVnlWRzlVWlhoMEtHMXZibTl0WlhJcE8xeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHSWdQU0J3YlVsdVptOHVZbTkxYm1Sek8xeHVYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdabTl1ZEZOMGVXeGxJRDBnSnpFMmNIZ2dVbTlpYjNSdkxDQlNiMkp2ZEc4Z1RHOWpZV3dzSUhOaGJuTXRjMlZ5YVdZbk8xeHVJQ0FnSUNBZ0lDQWdJQzh2SUVoaFkydHpJSFJ2SUhOallXeGxJSFZ3Y0dWeVkyRnpaU0JqYUdGeVlXTjBaWEp6SUhSdklIUmhjbWRsZENCeVpXTjBZVzVuYkdWY2JpQWdJQ0FnSUNBZ0lDQmpiMjV6ZENCMWNIQmxjbU5oYzJWTVpYUjBaWEpCYzJObGJuUWdQU0F3TGpJMU8xeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElIVndjR1Z5WTJGelpVeGxkSFJsY2tobGFXZG9kQ0E5SURFeUxqSTdYRzVjYmlBZ0lDQWdJQ0FnSUNCbkxuSmxjMlYwVkhKaGJuTm1iM0p0S0NrN1hHNGdJQ0FnSUNBZ0lDQWdaeTV6ZEhKdmEyVlRkSGxzWlNBOUlDZHNhV2RvZEdkeVlYa25PMXh1SUNBZ0lDQWdJQ0FnSUdjdWJHbHVaVmRwWkhSb0lEMGdNVHRjYmlBZ0lDQWdJQ0FnSUNCbkxuSmxZM1FvWWk1c1pXWjBMQ0JpTG5SdmNDd2dZaTUzYVdSMGFDd2dZaTVvWldsbmFIUXBPMXh1SUNBZ0lDQWdJQ0FnSUdjdVptbHNiRk4wZVd4bElEMGdkR2hwY3k1amNDNW5aWFFvYlc5dWIyMWxjaWtnUHo4Z2RHaHBjeTVqY0M1blpYUW9KMjkwYUdWeUp5azdYRzRnSUNBZ0lDQWdJQ0FnWnk1MFpYaDBRV3hwWjI0Z1BTQW5iR1ZtZENjN1hHNGdJQ0FnSUNBZ0lDQWdaeTVtYjI1MElEMGdabTl1ZEZOMGVXeGxPMXh1SUNBZ0lDQWdJQ0FnSUM4dlp5NW1hV3hzVW1WamRDaGlMbXhsWm5Rc0lHSXVkRzl3TENCaUxuZHBaSFJvTENCaUxtaGxhV2RvZENrN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2JWUnRPaUJVWlhoMFRXVjBjbWxqY3lBOUlHY3ViV1ZoYzNWeVpWUmxlSFFvYlc5dWIyMWxjbFI0ZENrN1hHNWNiaUFnSUNBZ0lDQWdJQ0F2THlCcFppQW9iVTB1WVdOMGRXRnNRbTkxYm1ScGJtZENiM2hCYzJObGJuUWdJVDBnTUNsY2JpQWdJQ0FnSUNBZ0lDQXZMeUFnSUdOdmJuTnZiR1V1WkdWaWRXY29ZRzA2SUNSN2JYMHNJRzFOTG1GamRIVmhiRUp2ZFc1a2FXNW5RbTk0UVhOalpXNTBPaUFrZTIxTkxtRmpkSFZoYkVKdmRXNWthVzVuUW05NFFYTmpaVzUwZldBcE8xeHVYRzRnSUNBZ0lDQWdJQ0FnWnk1elpYUlVjbUZ1YzJadmNtMG9YRzRnSUNBZ0lDQWdJQ0FnSUNCaUxuZHBaSFJvSUM4Z2JWUnRMbmRwWkhSb0xDQXdMQ0F3TENCaUxtaGxhV2RvZENBdklIVndjR1Z5WTJGelpVeGxkSFJsY2tobGFXZG9kQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHSXViR1ZtZEN3Z1lpNTBiM0FwTzF4dUlDQWdJQ0FnSUNBZ0lHY3VabWxzYkZSbGVIUW9iVzl1YjIxbGNsUjRkQ3dnTUN3Z0xYVndjR1Z5WTJGelpVeGxkSFJsY2tGelkyVnVkQ2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdOaGJHTlRhWHBsS0NrZ2UxeHVJQ0FnSUdsbUlDZ2hkR2hwY3k1allXNTJZWE1nZkh3Z0lYUm9hWE11YUc5emRDbGNiaUFnSUNBZ0lISmxkSFZ5Ymp0Y2JseHVJQ0FnSUdOdmJuTjBJSEk2SUc1MWJXSmxjaUE5SUhkcGJtUnZkeTVrWlhacFkyVlFhWGhsYkZKaGRHbHZPMXh1WEc0Z0lDQWdiR1YwSUhkcFpIUm9PaUJ1ZFcxaVpYSWdQU0IwYUdsekxreGxibWQwYUNBcUlIUm9hWE11Y0c5emFYUnBiMjVYYVdSMGFGZHBkR2hOWVhKbmFXNGdMeUJ5TzF4dUlDQWdJR3hsZENCb1pXbG5hSFFnUFNCTllYUm9MbTFwYmloMGFHbHpMbTFoZUVobGFXZG9kQ3dnVFdGMGFDNXRZWGdvZEdocGN5NXRhVzVJWldsbmFIUXNJSFJvYVhNdWNtOXZkQzVqYkdsbGJuUklaV2xuYUhRcEtUdGNibHh1SUNBZ0lHbG1JQ2gwYUdsekxtWnBkRUZ5WldFcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhoVFkyRnNaVG9nYm5WdFltVnlJRDBnZEdocGN5NXliMjkwTG1Oc2FXVnVkRWhsYVdkb2RDQXZJR2hsYVdkb2REdGNiaUFnSUNBZ0lHTnZibk4wSUhsVFkyRnNaVG9nYm5WdFltVnlJRDBnZEdocGN5NXliMjkwTG1Oc2FXVnVkRmRwWkhSb0lDOGdkMmxrZEdnN1hHNGdJQ0FnSUNCamIyNXpkQ0J6WTJGc1pTQTlJRTFoZEdndWJXRjRLREVzSUUxaGRHZ3ViV2x1S0hoVFkyRnNaU3dnZVZOallXeGxLU2s3WEc0Z0lDQWdJQ0IzYVdSMGFDQTlJSGRwWkhSb0lDb2djMk5oYkdVN1hHNGdJQ0FnSUNCb1pXbG5hSFFnUFNCb1pXbG5hSFFnS2lCelkyRnNaVHRjYmlBZ0lDQWdJSFJvYVhNdVgzQnZjMmwwYVc5dVYybGtkR2dnUFNCMGFHbHpMbkJ2YzJsMGFXOXVWMmxrZEdnZ0tpQnpZMkZzWlR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0IwYUdsekxtTmhiblpoY3k1M2FXUjBhQ0E5SUhkcFpIUm9JQ29nY2p0Y2JpQWdJQ0IwYUdsekxtTmhiblpoY3k1emRIbHNaUzUzYVdSMGFDQTlJR0FrZTNkcFpIUm9mWEI0WUR0Y2JseHVJQ0FnSUM4dklHTnZibk4wSUdOaGJuWmhjMGhsYVdkb2REb2diblZ0WW1WeUlEMGdkMmxrZEdnZ1BpQjBhR2x6TG5KdmIzUXVZMnhwWlc1MFYybGtkR2dnUHlCb1pXbG5hSFFnTFNBNElEb2dhR1ZwWjJoME8xeHVJQ0FnSUhSb2FYTXVhRzl6ZEM1emRIbHNaUzV6WlhSUWNtOXdaWEowZVNnbmFHVnBaMmgwSnl3Z1lDUjdhR1ZwWjJoMGZYQjRZQ2s3WEc0Z0lDQWdZMjl1YzNRZ1kyRnVkbUZ6U0dWcFoyaDBPaUJ1ZFcxaVpYSWdQU0IwYUdsekxtaHZjM1F1WTJ4cFpXNTBTR1ZwWjJoME8xeHVJQ0FnSUhSb2FYTXVZMkZ1ZG1GekxtaGxhV2RvZENBOUlHTmhiblpoYzBobGFXZG9kQ0FxSUhJN1hHNGdJQ0FnZEdocGN5NWpZVzUyWVhNdWMzUjViR1V1YzJWMFVISnZjR1Z5ZEhrb0oyaGxhV2RvZENjc0lHQWtlMk5oYm5aaGMwaGxhV2RvZEgxd2VHQXBPMXh1WEc0Z0lDQWdMeThnUVdScWRYTjBJR2h2YzNRZ1lXNWtJSEp2YjNRZ2QybGtkR2hjYmlBZ0lDQnBaaUFvZEdocGN5NW1hWGhYYVdSMGFDa2dlMXh1SUNBZ0lDQWdMeThnWm5Wc2JDQjNhV1IwYUNCbWIzSWdZMkZ1ZG1GeklHaHZjM1FnWVc1a0lISnZiM1JjYmlBZ0lDQWdJSFJvYVhNdWNtOXZkQzV6ZEhsc1pTNTNhV1IwYUNBOUlIUm9hWE11YUc5emRDNXpkSGxzWlM1M2FXUjBhQ0E5SUdBa2UzZHBaSFJvZlhCNFlEdGNiaUFnSUNBZ0lIUm9hWE11Y205dmRDNXpkSGxzWlM1b1pXbG5hSFFnUFNCZ0pIdG9aV2xuYUhSOWNIaGdPMXh1SUNBZ0lDQWdkR2hwY3k1b2IzTjBMbk4wZVd4bExuTmxkRkJ5YjNCbGNuUjVLQ2R2ZG1WeVpteHZkeWNzSUNkb2FXUmtaVzRuTENBbmFXMXdiM0owWVc1MEp5azdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUM4dklHRnNiRzkzSUhOamNtOXNiQ0JqWVc1MllYTWdhVzRnY205dmRGeHVJQ0FnSUNBZ2RHaHBjeTV5YjI5MExuTjBlV3hsTG5kcFpIUm9JRDBnZEdocGN5NW9iM04wTG5OMGVXeGxMbmRwWkhSb0lEMGdKekV3TUNVbk8xeHVJQ0FnSUNBZ2RHaHBjeTVvYjNOMExuTjBlV3hsTG05MlpYSm1iRzkzV0NBOUlDZGhkWFJ2SVdsdGNHOXlkR0Z1ZENjN1hHNGdJQ0FnSUNCMGFHbHpMbWh2YzNRdWMzUjViR1V1YzJWMFVISnZjR1Z5ZEhrb0oyOTJaWEptYkc5M0p5d2diblZzYkNrN1hHNWNiaUFnSUNBZ0lIUm9hWE11YUc5emRDNXpkSGxzWlM1elpYUlFjbTl3WlhKMGVTZ25kR1Y0ZEMxaGJHbG5iaWNzSUhSb2FYTXVhRzl5YVhwdmJuUmhiRUZzYVdkdWJXVnVkQ2s3WEc1Y2JpQWdJQ0FnSUM4dklIWmxjblJwWTJGc0lHRnNhV2R1YldWdWRGeHVJQ0FnSUNBZ2JHVjBJR2h2YzNSVWIzQk5ZWEpuYVc0Z1BTQXdPMXh1SUNBZ0lDQWdjM2RwZEdOb0lDaDBhR2x6TG5abGNuUnBZMkZzUVd4cFoyNXRaVzUwS1NCN1hHNGdJQ0FnSUNCallYTmxJQ2QwYjNBbk9seHVJQ0FnSUNBZ0lDQm9iM04wVkc5d1RXRnlaMmx1SUQwZ01EdGNiaUFnSUNBZ0lDQWdZbkpsWVdzN1hHNGdJQ0FnSUNCallYTmxJQ2R0YVdSa2JHVW5PbHh1SUNBZ0lDQWdJQ0JvYjNOMFZHOXdUV0Z5WjJsdUlEMGdUV0YwYUM1dFlYZ29NQ3dnS0hSb2FYTXVjbTl2ZEM1amJHbGxiblJJWldsbmFIUWdMU0JvWldsbmFIUXBJQzhnTWlrN1hHNGdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnWTJGelpTQW5ZbTkwZEc5dEp6cGNiaUFnSUNBZ0lDQWdhRzl6ZEZSdmNFMWhjbWRwYmlBOUlFMWhkR2d1YldGNEtEQXNJSFJvYVhNdWNtOXZkQzVqYkdsbGJuUklaV2xuYUhRZ0xTQm9aV2xuYUhRcE8xeHVJQ0FnSUNBZ0lDQmljbVZoYXp0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUhSb2FYTXVhRzl6ZEM1emRIbHNaUzV6WlhSUWNtOXdaWEowZVNnbmJXRnlaMmx1TFhSdmNDY3NJR0FrZTJodmMzUlViM0JOWVhKbmFXNTljSGhnTENBbmFXMXdiM0owWVc1MEp5azdYRzVjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbkp2YjNRdVkyeHBaVzUwU0dWcFoyaDBJRHdnYUdWcFoyaDBLU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVhRzl6ZEM1emRIbHNaUzV6WlhSUWNtOXdaWEowZVNnbmFHVnBaMmgwSnl3Z1lDUjdkR2hwY3k1eWIyOTBMbU5zYVdWdWRFaGxhV2RvZEgxd2VHQXBPMXh1SUNBZ0lDQWdJQ0IwYUdsekxtaHZjM1F1YzNSNWJHVXVjMlYwVUhKdmNHVnlkSGtvSjI5MlpYSm1iRzkzTFhrbkxDQnVkV3hzS1R0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhSb2FYTXVhRzl6ZEM1emRIbHNaUzV6WlhSUWNtOXdaWEowZVNnbmIzWmxjbVpzYjNjdGVTY3NJQ2RvYVdSa1pXNG5MQ0FuYVcxd2IzSjBZVzUwSnlrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnTHk4Z1kyOXVjMjlzWlM1a1pXSjFaeWhjYmlBZ0lDQXZMeUFnSUdCMGFHbHpMbkp2YjNRdWMzUjViR1V1YUdWcFoyaDBJRDBnSkh0MGFHbHpMbkp2YjNRdWMzUjViR1V1YUdWcFoyaDBmVnhjYm1BZ0sxeHVJQ0FnSUM4dklDQWdZSFJvYVhNdWNtOXZkQzVqYkdsbGJuUklaV2xuYUhRZ1BTQWtlM1JvYVhNdWNtOXZkQzVqYkdsbGJuUklaV2xuYUhSOVhGeHVZQ0FyWEc0Z0lDQWdMeThnSUNCZ2RHaHBjeTVvYjNOMExuTjBlV3hsTG1obGFXZG9kQ0E5SUNSN2RHaHBjeTVvYjNOMExuTjBlV3hsTG1obGFXZG9kSDFjWEc1Z0lDdGNiaUFnSUNBdkx5QWdJR0IwYUdsekxtaHZjM1F1WTJ4cFpXNTBTR1ZwWjJoMElEMGdKSHQwYUdsekxtaHZjM1F1WTJ4cFpXNTBTR1ZwWjJoMGZWeGNibUFnSzF4dUlDQWdJQzh2SUNBZ0oxeGNiaWNnSzF4dUlDQWdJQzh2SUNBZ1lIUm9hWE11WTJGdWRtRnpMbWhsYVdkb2RDQWdJQ0FnSUNBOUlDUjdkR2hwY3k1allXNTJZWE11YUdWcFoyaDBmVnhjYm1BZ0sxeHVJQ0FnSUM4dklDQWdZSFJvYVhNdVkyRnVkbUZ6TG5OMGVXeGxMbWhsYVdkb2RDQTlJQ1I3ZEdocGN5NWpZVzUyWVhNdWMzUjViR1V1YUdWcFoyaDBmV0FwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQndZWEpoYlNCN1JFY3VRMjlzZFcxdWZTQnpaWEZEYjJ3Z1EyOXNkVzF1SUhSdklHeHZiMnNnWm05eUlHRWdjR0ZzWlhSMFpWeHVJQ0FnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnSUcxcGJreGxibWQwYUNCdGFXNXBiWFZ0SUd4bGJtZDBhQ0J2WmlCelpYRjFaVzVqWlNCMGJ5QmtaWFJsWTNRZ2NHRnNaWFIwWlNBb1pXMXdkSGtnYzNSeWFXNW5jeUJoY21VZ1lXeHNiM2RsWkNsY2JpQWdJQ29nUUhKbGRIVnliaUI3VTJWeFVHRnNaWFIwWlgwZ1VHRnNaWFIwWlNCamIzSnlaWE53YjI1a2FXNW5JSFJ2SUhSb1pTQmhiSEJvWVdKbGRDQnZaaUIwYUdVZ2MyVnhkV1Z1WTJWeklHbHVJSFJvWlNCamIyeDFiVzVjYmlBZ0lDb3ZYRzRnSUhCMVlteHBZeUJ6ZEdGMGFXTWdjR2xqYTFWd1VHRnNaWFIwWlNoelpYRkRiMnc2SUVSSExrTnZiSFZ0Yml3Z2JXbHVUR1Z1WjNSb09pQnVkVzFpWlhJZ1BTQTFLVG9nVTJWeFVHRnNaWFIwWlNCN1hHNGdJQ0FnYkdWMElISmxjem9nVTJWeFVHRnNaWFIwWlNCOElHNTFiR3dnUFNCdWRXeHNPMXh1SUNBZ0lITjNhWFJqYUNBb2MyVnhRMjlzTG5ObGJWUjVjR1VwSUh0Y2JpQWdJQ0JqWVhObElFRnRhVzV2WVdOcFpITXVVMlZ0Vkhsd1pVMTFiSFJwY0d4bFFXeHBaMjV0Wlc1ME9seHVJQ0FnSUNBZ2NtVnpJRDBnUVcxcGJtOWhZMmxrYzFCaGJHVjBkR1Z6TGtkeWIydEhjbTkxY0hNN1hHNGdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQmpZWE5sSUU1MVkyeGxiM1JwWkdWekxsTmxiVlI1Y0dWTmRXeDBhWEJzWlVGc2FXZHViV1Z1ZERwY2JpQWdJQ0FnSUhKbGN5QTlJRTUxWTJ4bGIzUnBaR1Z6VUdGc1pYUjBaWE11UTJoeWIyMWhkRzluY21GdE8xeHVJQ0FnSUNBZ1luSmxZV3M3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUhOMFlYUnpPaUJUWlhGRGIyeFRkR0YwY3lBOUlGZGxZa3h2WjI4dVoyVjBVM1JoZEhNb2MyVnhRMjlzTENCdGFXNU1aVzVuZEdnc0lGZGxZa3h2WjI4dWMzQnNhWFIwWlhKQmMwWmhjM1JoS1R0Y2JseHVJQ0FnSUdOdmJuTjBJR0ZzY0doaFltVjBRMkZ1Wkdsa1lYUmxjem9nVzFObGREeHpkSEpwYm1jK0xDQlRaWEZRWVd4bGRIUmxYVnRkSUQwZ1cxeHVJQ0FnSUNBZ1cyNWxkeUJUWlhRb1QySnFaV04wTG10bGVYTW9UblZqYkdWdmRHbGtaWE11VG1GdFpYTXBLU3dnVG5WamJHVnZkR2xrWlhOUVlXeGxkSFJsY3k1RGFISnZiV0YwYjJkeVlXMWRMRnh1SUNBZ0lDQWdXMjVsZHlCVFpYUW9UMkpxWldOMExtdGxlWE1vUVcxcGJtOWhZMmxrY3k1T1lXMWxjeWtwTENCQmJXbHViMkZqYVdSelVHRnNaWFIwWlhNdVIzSnZhMGR5YjNWd2MxMHNYRzRnSUNBZ1hUdGNiaUFnSUNBdkx5QkRZV3hqZFd4aGRHVWdiR2xyWld4cGFHOXZaSE1nWm05eUlHRnNjR2hoWW1WMFgyTmhibVJwWkdGMFpYTmNiaUFnSUNCamIyNXpkQ0JoYkhCb1lXSmxkRU5oYm1ScFpHRjBaWE5UYVcwNklHNTFiV0psY2x0ZElEMGdZV3h3YUdGaVpYUkRZVzVrYVdSaGRHVnpYRzRnSUNBZ0lDQXViV0Z3S0NoaktTQTlQaUJYWldKTWIyZHZMbWRsZEVGc2NHaGhZbVYwVTJsdGFXeGhjbWwwZVNoemRHRjBjeTVtY21WeExDQmpXekJkS1NrN1hHNGdJQ0FnWTI5dWMzUWdiV0Y0UTI5eklEMGdUV0YwYUM1dFlYZ29MaTR1WVd4d2FHRmlaWFJEWVc1a2FXUmhkR1Z6VTJsdEtUdGNiaUFnSUNCcFppQW9iV0Y0UTI5eklENGdNQzQxTlNsY2JpQWdJQ0FnSUhKbGN5QTlJR0ZzY0doaFltVjBRMkZ1Wkdsa1lYUmxjMXRoYkhCb1lXSmxkRU5oYm1ScFpHRjBaWE5UYVcwdWFXNWtaWGhQWmlodFlYaERiM01wWFZzeFhUdGNiaUFnSUNCbGJITmxYRzRnSUNBZ0lDQnlaWE1nUFNCVmJtdHViM2R1VTJWeFVHRnNaWFIwWlhNdVEyOXNiM0k3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdjbVZ6TzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdkbGRFRnNjR2hoWW1WMFUybDZaU2dwT2lCdWRXMWlaWElnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5WdWFYUnpTR0Z1Wkd4bGNqOHVaMlYwUVd4d2FHRmlaWFJUYVhwbEtDa2dQejhnTUR0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJUZEdGMGN5QnZaaUJ6WlhGMVpXNWpaWE1nZDJsMGFDQnpjR1ZqYVdacFpXUWdjM0JzYVhSMFpYSWdablZ1WXl3Z2NtVjBkWEp1Y3lCN0lHWnlaWEVzSUhOaGJXVk1aVzVuZEdnZ2ZTNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0RVJ5NURiMngxYlc1OUlITmxjVU52YkZ4dUlDQWdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdiV2x1VEdWdVozUm9YRzRnSUNBcUlFQndZWEpoYlNCN1UzQnNhWFIwWlhKR2RXNWpmU0J6Y0d4cGRIUmxjbHh1SUNBZ0tpQkFjbVYwZFhKdUlIc2dVMlZ4UTI5c1UzUmhkSE1nZlN3Z2MyRnRaVXhsYm1kMGFEb2dZbTl2YkdWaGJpQjlJSE4wWVhSeklHOW1JR052YkhWdGJpQnpaWEYxWlc1alpYTmNiaUFnSUNvdlhHNGdJSE4wWVhScFl5Qm5aWFJUZEdGMGN5aHpaWEZEYjJ3NklFUkhMa052YkhWdGJpd2diV2x1VEdWdVozUm9PaUJ1ZFcxaVpYSXNJSE53YkdsMGRHVnlPaUJUY0d4cGRIUmxja1oxYm1NcE9pQlRaWEZEYjJ4VGRHRjBjeUI3WEc0Z0lDQWdZMjl1YzNRZ1puSmxjVG9nZXlCYmJUb2djM1J5YVc1blhUb2diblZ0WW1WeUlIMGdQU0I3ZlR0Y2JpQWdJQ0JzWlhRZ2MyRnRaVXhsYm1kMGFDQTlJSFJ5ZFdVN1hHNGdJQ0FnYkdWMElHWnBjbk4wVEdWdVozUm9JRDBnYm5Wc2JEdGNibHh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdjMlZ4SUc5bUlITmxjVU52YkM1allYUmxaMjl5YVdWektTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCdFUyVnhJRDBnYzNCc2FYUjBaWElvYzJWeEtUdGNibHh1SUNBZ0lDQWdhV1lnS0dacGNuTjBUR1Z1WjNSb0lEMDlJRzUxYkd3cFhHNGdJQ0FnSUNBZ0lHWnBjbk4wVEdWdVozUm9JRDBnYlZObGNTNXNaVzVuZEdnN1hHNGdJQ0FnSUNCbGJITmxJR2xtSUNodFUyVnhMbXhsYm1kMGFDQWhQVDBnWm1seWMzUk1aVzVuZEdncFhHNGdJQ0FnSUNBZ0lITmhiV1ZNWlc1bmRHZ2dQU0JtWVd4elpUdGNibHh1SUNBZ0lDQWdhV1lnS0cxVFpYRXViR1Z1WjNSb0lENGdiV2x1VEdWdVozUm9LU0I3WEc0Z0lDQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2JTQnZaaUJ0VTJWeEtTQjdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tDRW9iU0JwYmlCbWNtVnhLU2xjYmlBZ0lDQWdJQ0FnSUNBZ0lHWnlaWEZiYlYwZ1BTQXdPMXh1SUNBZ0lDQWdJQ0FnSUdaeVpYRmJiVjBnS3owZ01UdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZTJaeVpYRTZJR1p5WlhFc0lITmhiV1ZNWlc1bmRHZzZJSE5oYldWTVpXNW5kR2g5TzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJuWlhSQmJIQm9ZV0psZEZOcGJXbHNZWEpwZEhrb1puSmxjVG9nVFc5dWIyMWxja1p5WlhGekxDQmhiSEJvWVdKbGREb2dVMlYwUEhOMGNtbHVaejRzSUdkaGNGTjViV0p2YkRvZ2MzUnlhVzVuSUQwZ0p5MG5LVG9nYm5WdFltVnlJSHRjYmlBZ0lDQmpiMjV6ZENCclpYbHpJRDBnYm1WM0lGTmxkRHh6ZEhKcGJtYytLRnN1TGk1dVpYY2dVMlYwS0U5aWFtVmpkQzVyWlhsektHWnlaWEVwS1N3Z0xpNHVZV3h3YUdGaVpYUmRLVHRjYmlBZ0lDQnJaWGx6TG1SbGJHVjBaU2huWVhCVGVXMWliMndwTzF4dVhHNGdJQ0FnWTI5dWMzUWdabkpsY1VFNklHNTFiV0psY2x0ZElEMGdXMTA3WEc0Z0lDQWdZMjl1YzNRZ1lXeHdhR0ZpWlhSQk9pQnVkVzFpWlhKYlhTQTlJRnRkTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYlNCdlppQnJaWGx6S1NCN1hHNGdJQ0FnSUNCbWNtVnhRUzV3ZFhOb0tHMGdhVzRnWm5KbGNTQS9JR1p5WlhGYmJWMGdPaUF3S1R0Y2JpQWdJQ0FnSUdGc2NHaGhZbVYwUVM1d2RYTm9LR0ZzY0doaFltVjBMbWhoY3lodEtTQS9JREVnT2lBd0tUdGNiaUFnSUNCOVhHNGdJQ0FnTHlvZ1ZHaGxjbVVnZDJWeVpTQmhJR1psZHlCcFpHVmhjem9nWTJocExYTnhkV0Z5WldRc0lIQmxZWEp6YjI0Z1kyOXljbVZzWVhScGIyNGdLSFpoY21saGJtTmxQeWtzSUhOallXeGhjaUJ3Y205a2RXTjBJQ292WEc0Z0lDQWdZMjl1YzNRZ1puSmxjVlk2SUZabFkzUnZjaUE5SUc1bGR5QldaV04wYjNJb1puSmxjVUVwTzF4dUlDQWdJR052Ym5OMElHRnNjR2hoWW1WMFZqb2dWbVZqZEc5eUlEMGdibVYzSUZabFkzUnZjaWhoYkhCb1lXSmxkRUVwTzF4dUlDQWdJSEpsZEhWeWJpQjJaV04wYjNKRWIzUlFjbTlrZFdOMEtHWnlaWEZXTENCaGJIQm9ZV0psZEZZcElDOGdLSFpsWTNSdmNreGxibWQwYUNobWNtVnhWaWtnS2lCMlpXTjBiM0pNWlc1bmRHZ29ZV3h3YUdGaVpYUldLU2s3WEc0Z0lIMWNibHh1SUNBdkx5QXZLaW9nUm1seWMzUWdkSEo1SUhSdklHWnBibVFnWTI5c2RXMXVJSGRwZEdnZ2MyVnRWSGx3WlNBbllXeHBaMjVsWkZObGNYVmxibU5sSnk1Y2JpQWdMeThnSUNvZ1RtVjRkQ0JzYjI5cklHWnZjaUJqYjJ4MWJXNGdkMmwwYUNCa1lYUmhJR0ZzY0doaFltVjBJR052Y25KbGMzQnZibVJwYm1jZ2RHOGdZVzU1SUc5bUlIUm9aU0JyYm05M2JpQndZV3hsZEhSbGN5NWNiaUFnTHk4Z0lDb2dRSEJoY21GdElIdEVSeTVFWVhSaFJuSmhiV1Y5SUdSaGRHRkdjbUZ0WlZ4dUlDQXZMeUFnS2lCQWNtVjBkWEp1SUh0RVJ5NURiMngxYlc1OUlGUm9aU0JqYjJ4MWJXNGdkMlVnZDJWeVpTQnNiMjlyYVc1bklHWnZjaUJ2Y2lCdWRXeHNYRzRnSUM4dklDQXFMMXh1SUNBdkx5QndjbWwyWVhSbElIQnBZMnRWY0ZObGNVTnZiQ2hrWVhSaFJuSmhiV1U2SUVSSExrUmhkR0ZHY21GdFpTazZJRVJITGtOdmJIVnRiaUI4SUc1MWJHd2dlMXh1SUNBdkx5QWdJR3hsZENCeVpYTTZJRVJITGtOdmJIVnRiaUI4SUc1MWJHd2dQU0JrWVhSaFJuSmhiV1V1WTI5c2RXMXVjeTVpZVZObGJWUjVjR1VvSjJGc2FXZHVaV1JUWlhGMVpXNWpaU2NwTzF4dUlDQXZMeUFnSUdsbUlDaHlaWE1nUFQwZ2JuVnNiQ2tnZTF4dUlDQXZMeUFnSUNBZ1ptOXlJQ2hqYjI1emRDQmpiMndnYjJZZ1pHRjBZVVp5WVcxbExtTnZiSFZ0Ym5NcElIdGNiaUFnTHk4Z0lDQWdJQ0FnWTI5dWMzUWdZM0FnUFNCWFpXSk1iMmR2TG5CcFkydFZjRkJoYkdWMGRHVW9ZMjlzSUdGeklFUkhMa052YkhWdGJpd2dOU2s3WEc0Z0lDOHZJQ0FnSUNBZ0lHbG1JQ2hqY0NBaFBUMGdiblZzYkNBbUppQWhLR053SUdsdWMzUmhibU5sYjJZZ1ZXNXJibTkzYmxObGNWQmhiR1YwZEdVcEtTQjdYRzRnSUM4dklDQWdJQ0FnSUNBZ2NtVnpJRDBnWTI5c08xeHVJQ0F2THlBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBdkx5QWdJQ0FnSUNCOVhHNGdJQzh2SUNBZ0lDQjlYRzRnSUM4dklDQWdmVnh1SUNBdkx5QWdJSEpsZEhWeWJpQnlaWE03WEc0Z0lDOHZJSDFjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUhCcFkydFZjRk5sY1VOdmJESW9aR1k2SUVSSExrUmhkR0ZHY21GdFpTazZJRVJITGtOdmJIVnRiaUI4SUc1MWJHd2dlMXh1SUNBZ0lHTnZibk4wSUhObGJWUjVjR1ZEYjJ4TWFYTjBJRDBnWkdZdVkyOXNkVzF1Y3k1aWVWTmxiVlI1Y0dWQmJHd29SRWN1VTBWTlZGbFFSUzVOUVVOU1QwMVBURVZEVlV4RktUdGNiaUFnSUNCc1pYUWdjbVZ6UTI5c09pQkVSeTVEYjJ4MWJXNGdmQ0J1ZFd4c0lEMGdjMlZ0Vkhsd1pVTnZiRXhwYzNRdVptbHVaQ2dvWTI5c0tTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQjFibWwwY3lBOUlHTnZiQzVuWlhSVVlXY29SRWN1VkVGSFV5NVZUa2xVVXlrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZFc1cGRITWdQeUIxYm1sMGN5NXBibVJsZUU5bUtDZE5VMEVuS1NBaFBUMGdMVEVnT2lCbVlXeHpaVHRjYmlBZ0lDQjlLU0EvUHlCdWRXeHNPMXh1SUNBZ0lHbG1JQ2doY21WelEyOXNJQ1ltSUhObGJWUjVjR1ZEYjJ4TWFYTjBMbXhsYm1kMGFDQStJREFwWEc0Z0lDQWdJQ0J5WlhORGIyd2dQU0J6WlcxVWVYQmxRMjlzVEdsemRGc3dYVHRjYmlBZ0lDQnlaWFIxY200Z2NtVnpRMjlzTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCemRHRjBhV01nYlc5dWIyMWxjbEpsSUQwZ0wxeGNXeWhjWEhjcktWeGNYWHdvWEZ4M0tYd29MU2t2Wnp0Y2JseHVJQ0F2S2lvZ1UzQnNhWFFnYzJWeGRXVnVZMlVnWm05eUlITnBibWRzWlNCamFHRnlZV04wWlhJZ2JXOXViMjFsY25Nc0lITnhkV0Z5WlNCaWNtRmphMlYwY3lCdGRXeDBhV05vWVhJZ2JXOXViMjFsY2lCdVlXMWxjeUJ2Y2lCbllYQWdjM2x0WW05c0xseHVJQ0FnS2lCQWNHRnlZVzBnZTJGdWVYMGdjMlZ4SUc5aWFtVmpkQ0IzYVhSb0lITmxjWFZsYm1ObFhHNGdJQ0FxSUVCeVpYUjFjbTRnZTNOMGNtbHVaMXRkZlNCaGNuSmhlU0J2WmlCdGIyNXZiV1Z5YzF4dUlDQWdLaTljYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJ6Y0d4cGRIUmxja0Z6Um1GemRHRW9jMlZ4T2lCaGJua3BPaUJ6ZEhKcGJtZGJYU0I3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpPaUJ6ZEhKcGJtZGJYU0E5SUhkMVBGSmxaMFY0Y0UxaGRHTm9RWEp5WVhrK0tITmxjUzUwYjFOMGNtbHVaeWdwTG0xaGRHTm9RV3hzS0ZkbFlreHZaMjh1Ylc5dWIyMWxjbEpsS1NsY2JpQWdJQ0FnSUM1dFlYQW9LRzFoT2lCU1pXZEZlSEJOWVhSamFFRnljbUY1S1NBOVBpQjdYRzRnSUNBZ0lDQWdJR3hsZENCdFVtVnpPaUJ6ZEhKcGJtYzdYRzRnSUNBZ0lDQWdJR052Ym5OMElHMDZJSE4wY21sdVp5QTlJRzFoV3pCZE8xeHVJQ0FnSUNBZ0lDQnBaaUFvYlM1c1pXNW5kR2dnUGlBeEtTQjdYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tHMGdhVzRnVjJWaVRHOW5ieTVoWVZONWJtOXVlVzF6S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J0VW1WeklEMGdWMlZpVEc5bmJ5NWhZVk41Ym05dWVXMXpXMjFkTzF4dUlDQWdJQ0FnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J0VW1WeklEMGdKeWM3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjV6YjJ4bExtUmxZblZuS0dCTWIyNW5JRzF2Ym05dFpYSWdKeVI3YlgwbklHaGhjeUJ1YjNRZ1lTQnphRzl5ZENCemVXNXZibmx0TG1BcE8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJQ0FnSUNCdFVtVnpJRDBnYlR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2JWSmxjenRjYmlBZ0lDQWdJSDBwTG5SdlFYSnlZWGtvS1R0Y2JseHVJQ0FnSUhKbGRIVnliaUJ5WlhNN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElITjBZWFJwWXlCb1pXeHRVbVVnUFNBdktGQkZVRlJKUkVVeGZFUk9RVEY4VWs1Qk1TbGNYSHNvVzE1OVhTc3BmUzluTzF4dUlDQndjbWwyWVhSbElITjBZWFJwWXlCb1pXeHRVSEF4VW1VZ1BTQXZYRnhiS0Z0ZVhGeGJYRnhkWFNzcFhTOW5PMXh1WEc0Z0lDOHFLaUJUY0d4cGRITWdTR1ZzYlNCemRISnBibWNnZEc4Z2JXOXViMjFsY25Nc0lHSjFkQ0JrYjJWeklHNXZkQ0J5WlhCc1lXTmxJRzF2Ym05dFpYSWdibUZ0WlhNZ2RHOGdiM1JvWlhJZ2JtOTBZWFJwYjI0Z0tHVXVaeTRnWm05eUlGSk9RU2t1WEc0Z0lDQXFJRTl1YkhrZ1ptOXlJR3hwYm1WaGNpQndiMng1YldWeWN5d2daRzlsY3lCdWIzUWdjM0JzYVhRZ1VrNUJJR1p2Y2lCeWFXSnZjMlVnWVc1a0lIQm9iM053YUdGMFpTQnRiMjV2YldWeWN5NWNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhObGNTQlRiM1Z5WTJVZ2MzUnlhVzVuSUc5bUlFaEZURTBnYm05MFlYUnBiMjVjYmlBZ0lDb2dRSEpsZEhWeWJpQjdjM1J5YVc1blcxMTlYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklITndiR2wwZEdWeVFYTklaV3h0S0hObGNUb2dZVzU1S1RvZ2MzUnlhVzVuVzEwZ2UxeHVJQ0FnSUZkbFlreHZaMjh1YUdWc2JWSmxMbXhoYzNSSmJtUmxlQ0E5SURBN1hHNGdJQ0FnWTI5dWMzUWdaV0U2SUZKbFowVjRjRVY0WldOQmNuSmhlU0I4SUc1MWJHd2dQU0JYWldKTWIyZHZMbWhsYkcxU1pTNWxlR1ZqS0hObGNTNTBiMU4wY21sdVp5Z3BLVHRjYmlBZ0lDQmpiMjV6ZENCcGJsTmxjVG9nYzNSeWFXNW5JSHdnYm5Wc2JDQTlJR1ZoSUQ4Z1pXRmJNbDBnT2lCdWRXeHNPMXh1WEc0Z0lDQWdZMjl1YzNRZ2JXMVFiM04wVUhKdlkyVnpjeUE5SUNodGJUb2djM1J5YVc1bktUb2djM1J5YVc1bklEMCtJSHRjYmlBZ0lDQWdJRmRsWWt4dloyOHVhR1ZzYlZCd01WSmxMbXhoYzNSSmJtUmxlQ0E5SURBN1hHNGdJQ0FnSUNCamIyNXpkQ0J3Y0RGTklEMGdWMlZpVEc5bmJ5NW9aV3h0VUhBeFVtVXVaWGhsWXlodGJTazdYRzRnSUNBZ0lDQnBaaUFvY0hBeFRTQW1KaUJ3Y0RGTkxteGxibWQwYUNBK1BTQXlLVnh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjSEF4VFZzeFhUdGNiaUFnSUNBZ0lHVnNjMlZjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRzF0TzF4dUlDQWdJSDA3WEc1Y2JpQWdJQ0JqYjI1emRDQnRiVXhwYzNRNklITjBjbWx1WjF0ZElEMGdhVzVUWlhFZ1B5QnBibE5sY1M1emNHeHBkQ2duTGljcElEb2dXMTA3WEc0Z0lDQWdZMjl1YzNRZ2JXMU1hWE4wVW1Wek9pQnpkSEpwYm1kYlhTQTlJRzF0VEdsemRDNXRZWEFvYlcxUWIzTjBVSEp2WTJWemN5azdYRzRnSUNBZ2NtVjBkWEp1SUcxdFRHbHpkRkpsY3p0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJIWlhSeklHMWxkR2h2WkNCMGJ5QnpjR3hwZENCelpYRjFaVzVqWlNCaWVTQnpaWEJoY21GMGIzSmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhObGNHRnlZWFJ2Y2x4dUlDQWdLaUJBY0dGeVlXMGdiR2x0YVhSY2JpQWdJQ29nUUhKbGRIVnliaUI3VTNCc2FYUjBaWEpHZFc1amZWeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUlRjR3hwZEhSbGNsZHBkR2hUWlhCaGNtRjBiM0lvYzJWd1lYSmhkRzl5T2lCemRISnBibWNzSUd4cGJXbDBPaUJ1ZFcxaVpYSWdmQ0IxYm1SbFptbHVaV1FnUFNCMWJtUmxabWx1WldRcE9pQlRjR3hwZEhSbGNrWjFibU1nZTF4dUlDQWdJSEpsZEhWeWJpQW9jMlZ4T2lCemRISnBibWNwSUQwK0lIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCelpYRXVjM0JzYVhRb2MyVndZWEpoZEc5eUxDQnNhVzFwZENrN1hHNGdJQ0FnZlR0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJIWlhRZ2MzQnNhWFIwWlhJZ2JXVjBhRzlrSUhSdklITndiR2wwSUhObGNYVmxibU5sY3lCMGJ5QnRiMjV2YldWeWMxeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnZFc1cGRITmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhObGNHRnlZWFJ2Y2x4dUlDQWdLaUJBY0dGeVlXMGdiR2x0YVhSY2JpQWdJQ29nUUhKbGRIVnliaUI3VTNCc2FYUjBaWEpHZFc1amZWeHVJQ0FnS2k5Y2JpQWdjSFZpYkdsaklITjBZWFJwWXlCblpYUlRjR3hwZEhSbGNpaDFibWwwY3pvZ2MzUnlhVzVuTENCelpYQmhjbUYwYjNJNklITjBjbWx1Wnl3Z2JHbHRhWFE2SUc1MWJXSmxjaUI4SUhWdVpHVm1hVzVsWkNBOUlIVnVaR1ZtYVc1bFpDazZJRk53YkdsMGRHVnlSblZ1WXlCN1hHNGdJQ0FnYVdZZ0tIVnVhWFJ6TG5SdlRHOTNaWEpEWVhObEtDa3VjM1JoY25SelYybDBhQ2hPVDFSQlZFbFBUaTVHUVZOVVFTa3BYRzRnSUNBZ0lDQnlaWFIxY200Z1YyVmlURzluYnk1emNHeHBkSFJsY2tGelJtRnpkR0U3WEc0Z0lDQWdaV3h6WlNCcFppQW9kVzVwZEhNdWRHOU1iM2RsY2tOaGMyVW9LUzV6ZEdGeWRITlhhWFJvS0U1UFZFRlVTVTlPTGxORlVFRlNRVlJQVWlrcFhHNGdJQ0FnSUNCeVpYUjFjbTRnVjJWaVRHOW5ieTVuWlhSVGNHeHBkSFJsY2xkcGRHaFRaWEJoY21GMGIzSW9jMlZ3WVhKaGRHOXlMQ0JzYVcxcGRDazdYRzRnSUNBZ1pXeHpaU0JwWmlBb2RXNXBkSE11ZEc5TWIzZGxja05oYzJVb0tTNXpkR0Z5ZEhOWGFYUm9LRTVQVkVGVVNVOU9Ma2hGVEUwcEtWeHVJQ0FnSUNBZ2NtVjBkWEp1SUZkbFlreHZaMjh1YzNCc2FYUjBaWEpCYzBobGJHMDdYRzRnSUNBZ1pXeHpaVnh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRVZ5Y205eUtHQlZibVY0Y0dWamRHVmtJSFZ1YVhSeklDUjdkVzVwZEhOOUlDNWdLVHRjYmx4dUlDQWdJQzh2SUZSUFJFODZJRk53YkdsMGRHVnlJR1p2Y2lCSVJVeE5YRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdjM1JoZEdsaklHZGxkRk53YkdsMGRHVnlSbTl5UTI5c2RXMXVLR052YkRvZ1JFY3VRMjlzZFcxdUtUb2dVM0JzYVhSMFpYSkdkVzVqSUh0Y2JpQWdJQ0JwWmlBb1kyOXNMbk5sYlZSNWNHVWdJVDA5SUVSSExsTkZUVlJaVUVVdVRVRkRVazlOVDB4RlExVk1SU2xjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdSMlYwSUhOd2JHbDBkR1Z5SUdadmNpQnpaVzFVZVhCbElGd2lKSHRFUnk1VFJVMVVXVkJGTGsxQlExSlBUVTlNUlVOVlRFVjlYQ0lnYjI1c2VTNWdLVHRjYmx4dUlDQWdJR052Ym5OMElIVnVhWFJ6SUQwZ1kyOXNMbWRsZEZSaFp5aEVSeTVVUVVkVExsVk9TVlJUS1R0Y2JpQWdJQ0JqYjI1emRDQnpaWEJoY21GMGIzSWdQU0JqYjJ3dVoyVjBWR0ZuS0ZWdWFYUnpTR0Z1Wkd4bGNpNVVRVWRUTG5ObGNHRnlZWFJ2Y2lrN1hHNGdJQ0FnY21WMGRYSnVJRmRsWWt4dloyOHVaMlYwVTNCc2FYUjBaWElvZFc1cGRITXNJSE5sY0dGeVlYUnZjaWs3WEc0Z0lIMWNibHh1SUNBdktpb2dUMjVzZVNCemIyMWxJRzltSUhSb1pTQnplVzV2Ym5sdGN5NGdWR2hsYzJVZ2QyVnlaU0J2WW5SaGFXNWxaQ0JtY205dElIUm9aU0JqYkhWemRHVnlaV1FnYjJ4cFoyOXdaWEIwYVdSbElHUmhkR0Z6WlhRdUlDb3ZYRzRnSUhCeWFYWmhkR1VnYzNSaGRHbGpJR0ZoVTNsdWIyNTViWE02SUhzZ1cyNWhiV1U2SUhOMGNtbHVaMTA2SUhOMGNtbHVaeUI5SUQwZ2UxeHVJQ0FnSUNkYlRXVk9iR1ZkSnpvZ0owd25MQ0F2THlCT2JHVWdMU0J1YjNKc1pYVmphVzVsWEc0Z0lDQWdKMXROWlVGZEp6b2dKMEVuTEZ4dUlDQWdJQ2RiVFdWSFhTYzZJQ2RISnl4Y2JpQWdJQ0FuVzAxbFJsMG5PaUFuUmljc1hHNGdJSDA3WEc1Y2JpQWdjSEpwZG1GMFpTQnpkR0YwYVdNZ2JHOXVaMDF2Ym05dFpYSlFZWEowVW1VZ1BTQXZLRnhjZHlzcEwyYzdYRzVjYmlBZ0x5b2dVMmh2Y25SbGJuTWdiVzl1YjIxbGNpQnlaWEJ5WlhObGJuUmhkR2x2YmlCMFpYaDBJR1p2Y2lCdGIyNXZiV1Z5Y3lCM2FYUm9JR3h2Ym1jZ2JtRnRaWE11WEc0Z0lDb3FMMXh1SUNCd2RXSnNhV01nYzNSaGRHbGpJRzF2Ym05dFpYSlViMVJsZUhRb2MzSmpPaUJoYm5rcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUdOdmJuTjBJSE55WTFSNGREb2djM1J5YVc1bklEMGdjM0pqTG5SdlUzUnlhVzVuS0NrN1hHNGdJQ0FnYVdZZ0tITnlZMVI0ZEM1c1pXNW5kR2dnUEQwZ05Ta2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlITnlZMVI0ZER0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdZMjl1YzNRZ2NHRnlkSE02SUhOMGNtbHVaMXRkSUQwZ2QzVThVbVZuUlhod1RXRjBZMmhCY25KaGVUNG9jM0pqTG5SdlUzUnlhVzVuS0NrdWJXRjBZMmhCYkd3b1YyVmlURzluYnk1c2IyNW5UVzl1YjIxbGNsQmhjblJTWlNrcFhHNGdJQ0FnSUNBZ0lDNXRZWEFvS0cxaE9pQlNaV2RGZUhCTllYUmphRUZ5Y21GNUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYlZKbGN6b2djM1J5YVc1bklEMGdiV0ZiTUYwN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHMVNaWE03WEc0Z0lDQWdJQ0FnSUgwcExuUnZRWEp5WVhrb0tUdGNibHh1SUNBZ0lDQWdhV1lnS0hCaGNuUnpMbXhsYm1kMGFDQTlQU0F3S1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlBbklDYzdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCd1lYSjBNRG9nYzNSeWFXNW5JRDBnY0dGeWRITmJNRjA3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSEpsYzFSNGREb2djM1J5YVc1bklEMGdjR0Z5ZERBdWJHVnVaM1JvSUR3Z05pQS9JR0FrZTNCaGNuUXdmZUtBcG1BZ09pQmdKSHR3WVhKME1DNXpkV0p6ZEhKcGJtY29NQ3dnTlNsOTRvQ21ZRHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSEpsYzFSNGREdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2MzUmhkR2xqSUcxdmJtOXRaWEpVYjFOb2IzSjBLR0Z0YVc1dk9pQnpkSEpwYm1jc0lHMWhlRXhsYm1kMGFFOW1UVzl1YjIxbGNqb2diblZ0WW1WeUtUb2djM1J5YVc1bklIdGNiaUFnSUNCeVpYUjFjbTRnWVcxcGJtOHViR1Z1WjNSb0lEdzlJRzFoZUV4bGJtZDBhRTltVFc5dWIyMWxjaUEvSUdGdGFXNXZJRG9nWVcxcGJtOHVjM1ZpYzNSeWFXNW5LREFzSUcxaGVFeGxibWQwYUU5bVRXOXViMjFsY2lrZ0t5QW40b0NtSnp0Y2JpQWdmVnh1ZlZ4dUlsMTkiLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCB7IG5vcm1hbGl6ZSB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3ZlY3Rvci1vcGVyYXRpb25zJztcbmltcG9ydCB7IGNyZWF0ZURpbWVuc2luYWxpdHlSZWR1Y2luZ1dvcmtlciB9IGZyb20gJy4vd29ya2Vycy9kaW1lbnNpb25hbGl0eS1yZWR1Y2luZy13b3JrZXItY3JlYXRvcic7XG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlRGltZW5zaW5hbGl0eVdpdGhOb3JtYWxpemF0aW9uKGRhdGFDb2wsIG1ldGhvZE5hbWUsIHNpbWlsYXJpdHlNZXRyaWMsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBkaW1lbnNpb25hbGl0eVJlZHVjZVJlcyA9IHlpZWxkIGNyZWF0ZURpbWVuc2luYWxpdHlSZWR1Y2luZ1dvcmtlcih7IGRhdGE6IGRhdGFDb2wsIG1ldHJpYzogc2ltaWxhcml0eU1ldHJpYyB9LCBtZXRob2ROYW1lLCBvcHRpb25zKTtcbiAgICAgICAgZGltZW5zaW9uYWxpdHlSZWR1Y2VSZXMuZW1iZWRkaW5nID0gZGltZW5zaW9uYWxpdHlSZWR1Y2VSZXMuZW1iZWRkaW5nLm1hcChpdCA9PiBub3JtYWxpemUoaXQpKTtcbiAgICAgICAgcmV0dXJuIGRpbWVuc2lvbmFsaXR5UmVkdWNlUmVzO1xuICAgIH0pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYzJWeGRXVnVZMlV0YzNCaFkyVXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lKelpYRjFaVzVqWlMxemNHRmpaUzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3UVVGRlFTeFBRVUZQTEVWQlFVVXNVMEZCVXl4RlFVRkZMRTFCUVUwc2FVUkJRV2xFTEVOQlFVTTdRVUZITlVVc1QwRkJUeXhGUVVGRkxHbERRVUZwUXl4RlFVRXJRaXhOUVVGTkxHdEVRVUZyUkN4RFFVRkRPMEZCUjJ4SkxFMUJRVTBzVlVGQlowSXNiME5CUVc5RExFTkJRM1JFTEU5QlFYRkRMRVZCUTNKRExGVkJRV3RDTEVWQlEyeENMR2RDUVVFMlJDeEZRVU0zUkN4UFFVRmhPenRSUVVWaUxFMUJRVTBzZFVKQlFYVkNMRWRCUTNwQ0xFMUJRVTBzYVVOQlFXbERMRU5CUTI1RExFVkJRVVVzU1VGQlNTeEZRVUZGTEU5QlFVOHNSVUZCUlN4TlFVRk5MRVZCUVVVc1owSkJRV2RDTEVWQlFXZENMRVZCUTNwRUxGVkJRVlVzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVVTNRaXgxUWtGQmRVSXNRMEZCUXl4VFFVRlRMRWRCUVVjc2RVSkJRWFZDTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJReTlHTEU5QlFVOHNkVUpCUVhWQ0xFTkJRVU03U1VGRGJrTXNRMEZCUXp0RFFVRkJJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJRUpwZEVGeWNtRjVJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMMkpwZEMxaGNuSmhlU2M3WEc1cGJYQnZjblFnZXlCTllYUnlhWGdzSUZabFkzUnZjaUI5SUdaeWIyMGdKMEJrWVhSaFozSnZheTFzYVdKeVlYSnBaWE12ZFhScGJITXZjM0pqTDNSNWNHVXRaR1ZqYkdGeVlYUnBiMjV6Snp0Y2JtbHRjRzl5ZENCN0lHNXZjbTFoYkdsNlpTQjlJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMM1psWTNSdmNpMXZjR1Z5WVhScGIyNXpKenRjYm1sdGNHOXlkQ0FxSUdGeklFUkhJR1p5YjIwZ0oyUmhkR0ZuY205ckxXRndhUzlrWnljN1hHNXBiWEJ2Y25RZ2V5QkNhWFJCY25KaGVVMWxkSEpwWTNNc0lGTjBjbWx1WjAxbGRISnBZM01zSUZaaGJHbGtWSGx3WlhNc0lGWmxZM1J2Y2sxbGRISnBZM01nZlNCbWNtOXRJQ2N1TDNSNWNHVmtMVzFsZEhKcFkzTW5PMXh1YVcxd2IzSjBJSHNnWTNKbFlYUmxSR2x0Wlc1emFXNWhiR2wwZVZKbFpIVmphVzVuVjI5eWEyVnlMQ0JKVW1Wa2RXTmxSR2x0Wlc1emFXOXVZV3hwZEhsU1pYTjFiSFFnZlNCbWNtOXRJQ2N1TDNkdmNtdGxjbk12WkdsdFpXNXphVzl1WVd4cGRIa3RjbVZrZFdOcGJtY3RkMjl5YTJWeUxXTnlaV0YwYjNJbk8xeHVYRzVjYm1WNGNHOXlkQ0JoYzNsdVl5Qm1kVzVqZEdsdmJpQnlaV1IxWTJWRWFXMWxibk5wYm1Gc2FYUjVWMmwwYUU1dmNtMWhiR2w2WVhScGIyNG9YRzRnSUNBZ1pHRjBZVU52YkRvZ1FtbDBRWEp5WVhsYlhYeFdaV04wYjNKYlhYeHpkSEpwYm1kYlhTd2dYRzRnSUNBZ2JXVjBhRzlrVG1GdFpUb2djM1J5YVc1bkxDQmNiaUFnSUNCemFXMXBiR0Z5YVhSNVRXVjBjbWxqT2lCQ2FYUkJjbkpoZVUxbGRISnBZM044Vm1WamRHOXlUV1YwY21samMzeFRkSEpwYm1kTlpYUnlhV056TEZ4dUlDQWdJRzl3ZEdsdmJuTS9PaUJoYm5rcE9pQlFjbTl0YVhObFBFbFNaV1IxWTJWRWFXMWxibk5wYjI1aGJHbDBlVkpsYzNWc2RENGdlMXh1WEc0Z0lDQWdZMjl1YzNRZ1pHbHRaVzV6YVc5dVlXeHBkSGxTWldSMVkyVlNaWE02SUVsU1pXUjFZMlZFYVcxbGJuTnBiMjVoYkdsMGVWSmxjM1ZzZENBOVhHNGdJQ0FnSUNBZ0lHRjNZV2wwSUdOeVpXRjBaVVJwYldWdWMybHVZV3hwZEhsU1pXUjFZMmx1WjFkdmNtdGxjaWhjYmlBZ0lDQWdJQ0FnSUNBZ0lIc2daR0YwWVRvZ1pHRjBZVU52YkN3Z2JXVjBjbWxqT2lCemFXMXBiR0Z5YVhSNVRXVjBjbWxqSUgwZ1lYTWdWbUZzYVdSVWVYQmxjeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHMWxkR2h2WkU1aGJXVXNJRzl3ZEdsdmJuTXBPMXh1WEc0Z0lDQWdaR2x0Wlc1emFXOXVZV3hwZEhsU1pXUjFZMlZTWlhNdVpXMWlaV1JrYVc1bklEMGdaR2x0Wlc1emFXOXVZV3hwZEhsU1pXUjFZMlZTWlhNdVpXMWlaV1JrYVc1bkxtMWhjQ2hwZENBOVBpQnViM0p0WVd4cGVtVW9hWFFwS1R0Y2JpQWdJQ0J5WlhSMWNtNGdaR2x0Wlc1emFXOXVZV3hwZEhsU1pXUjFZMlZTWlhNN1hHNTlJbDE5IiwiaW1wb3J0ICogYXMgZmwgZnJvbSAnZmFzdGVzdC1sZXZlbnNodGVpbic7XG5pbXBvcnQgeyBqYXJvV2lua2xlciB9IGZyb20gJ2phcm8td2lua2xlci10eXBlc2NyaXB0JztcbmltcG9ydCB7IGRpc3RhbmNlTWV0cmljcyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3NpbWlsYXJpdHktbWV0cmljcyc7XG5pbXBvcnQgeyBjYWxjdWxhdGVFdWNsaWRlYW5EaXN0YW5jZSB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvdXRpbHMvc3JjL3ZlY3Rvci1vcGVyYXRpb25zJztcbmV4cG9ydCBjb25zdCBBdmFpbGFibGVNZXRyaWNzID0ge1xuICAgICdWZWN0b3InOiB7XG4gICAgICAgICdFdWNsaWRlYW5EaXN0YW5jZSc6IGNhbGN1bGF0ZUV1Y2xpZGVhbkRpc3RhbmNlLFxuICAgIH0sXG4gICAgJ1N0cmluZyc6IHtcbiAgICAgICAgJ0xldmVuc2h0ZWluJzogZmwuZGlzdGFuY2UsXG4gICAgICAgICdKYXJvLVdpbmtsZXInOiBqYXJvV2lua2xlcixcbiAgICB9LFxuICAgICdCaXRBcnJheSc6IHtcbiAgICAgICAgJ1Rhbmltb3RvJzogZGlzdGFuY2VNZXRyaWNzWydUYW5pbW90byddLFxuICAgICAgICAnRGljZSc6IGRpc3RhbmNlTWV0cmljc1snRGljZSddLFxuICAgICAgICAnQXN5bW1ldHJpYyc6IGRpc3RhbmNlTWV0cmljc1snQXN5bW1ldHJpYyddLFxuICAgICAgICAnQnJhdW4tQmxhbnF1ZXQnOiBkaXN0YW5jZU1ldHJpY3NbJ0JyYXVuLUJsYW5xdWV0J10sXG4gICAgICAgICdDb3NpbmUnOiBkaXN0YW5jZU1ldHJpY3NbJ0Nvc2luZSddLFxuICAgICAgICAnS3VsY3p5bnNraSc6IGRpc3RhbmNlTWV0cmljc1snS3VsY3p5bnNraSddLFxuICAgICAgICAnTWMtQ29ubmF1Z2hleSc6IGRpc3RhbmNlTWV0cmljc1snTWMtQ29ubmF1Z2hleSddLFxuICAgICAgICAnUm9nb3QtR29sZGJlcmcnOiBkaXN0YW5jZU1ldHJpY3NbJ1JvZ290LUdvbGRiZXJnJ10sXG4gICAgICAgICdSdXNzZWwnOiBkaXN0YW5jZU1ldHJpY3NbJ1J1c3NlbCddLFxuICAgICAgICAnU29rYWwnOiBkaXN0YW5jZU1ldHJpY3NbJ1Nva2FsJ10sXG4gICAgfSxcbn07XG5leHBvcnQgY29uc3QgTWV0cmljVG9EYXRhVHlwZSA9IE9iamVjdC5rZXlzKEF2YWlsYWJsZU1ldHJpY3MpXG4gICAgLnJlZHVjZSgocmV0LCBrZXkpID0+IHtcbiAgICBmb3IgKGNvbnN0IHZhbCBvZiBPYmplY3Qua2V5cyhBdmFpbGFibGVNZXRyaWNzW2tleV0pKSB7XG4gICAgICAgIHJldFt2YWxdID0ga2V5O1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xufSwge30pO1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nTWV0cmljKG5hbWUpIHtcbiAgICByZXR1cm4gTWV0cmljVG9EYXRhVHlwZVtuYW1lXSA9PSAnU3RyaW5nJztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc0JpdEFycmF5TWV0cmljKG5hbWUpIHtcbiAgICByZXR1cm4gTWV0cmljVG9EYXRhVHlwZVtuYW1lXSA9PSAnQml0QXJyYXknO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzVmVjdG9yTWV0cmljKG5hbWUpIHtcbiAgICByZXR1cm4gTWV0cmljVG9EYXRhVHlwZVtuYW1lXSA9PSAnVmVjdG9yJztcbn1cbi8qKiBVbmlmaWVkIGNsYXNzIGltcGxlbWVudGluZyBkaWZmZXJlbnQgc3RyaW5nIG1lYXN1cmVzLiAqL1xuZXhwb3J0IGNsYXNzIE1lYXN1cmUge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgTWVhc3VyZSB3aXRoIC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kIE1ldGhvZCB0byBjYWxjdWxhdGUgZGlzdGFuY2UgYmV0d2VlbiBzdHJpbmdzLlxuICAgICAqIEBtZW1iZXJvZiBNZWFzdXJlclxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG1ldGhvZCkge1xuICAgICAgICB0aGlzLm1ldGhvZCA9IG1ldGhvZDtcbiAgICAgICAgdGhpcy5kYXRhVHlwZSA9IE1ldHJpY1RvRGF0YVR5cGVbbWV0aG9kXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBjdXN0b20gc3RyaW5nIGRpc3RhbmNlIGZ1bmN0aW9uIHNwZWNpZmllZC5cbiAgICAgKiBAcmV0dXJuIHtEaXN0YW5jZU1ldHJpY30gQ2FsbGJhY2sgb2YgdGhlIG1lYXN1cmUgY2hvc2VuLlxuICAgICAqIEBtZW1iZXJvZiBNZWFzdXJlclxuICAgICAqL1xuICAgIGdldE1lYXN1cmUoKSB7XG4gICAgICAgIGNvbnN0IGRpY3QgPSBBdmFpbGFibGVNZXRyaWNzO1xuICAgICAgICByZXR1cm4gZGljdFt0aGlzLmRhdGFUeXBlXVt0aGlzLm1ldGhvZF07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgY3VzdG9tIHN0cmluZyBkaXN0YW5jZSBieSB0aGUgZ2l2ZW4gZGF0YSB0eXBlLlxuICAgICAqIEBwYXJhbSB7QXZhaWxhYmxlRGF0YVR5cGVzfSBkYXRhVHlwZSBNZXRyaWMncyBkYXRhIHR5cGVcbiAgICAgKiBAcmV0dXJuIHtzdHJpbmdbXX0gTWV0cmljIG5hbWVzIHdoaWNoIGV4cGVjdHMgdGhlIGdpdmVuIGRhdGEgdHlwZVxuICAgICAqIEBtZW1iZXJvZiBNZWFzdXJlclxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRNZXRyaWNCeURhdGFUeXBlKGRhdGFUeXBlKSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhBdmFpbGFibGVNZXRyaWNzW2RhdGFUeXBlXSk7XG4gICAgfVxuICAgIC8qKiBSZXR1cm5zIG1ldHJpYyBuYW1lcyBhdmFpbGFibGUuXG4gICAgICogQG1lbWJlcm9mIE1lYXN1cmVyXG4gICAgKi9cbiAgICBzdGF0aWMgZ2V0IGF2YWlsYWJsZU1lYXN1cmVzKCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoQXZhaWxhYmxlTWV0cmljcyk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZEhsd1pXUXRiV1YwY21samN5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSW5SNWNHVmtMVzFsZEhKcFkzTXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1QwRkJUeXhMUVVGTExFVkJRVVVzVFVGQlRTeHhRa0ZCY1VJc1EwRkJRenRCUVVNeFF5eFBRVUZQTEVWQlFVTXNWMEZCVnl4RlFVRkRMRTFCUVUwc2VVSkJRWGxDTEVOQlFVTTdRVUZGY0VRc1QwRkJUeXhGUVVGRExHVkJRV1VzUlVGQlF5eE5RVUZOTEd0RVFVRnJSQ3hEUVVGRE8wRkJRMnBHTEU5QlFVOHNSVUZCUXl3d1FrRkJNRUlzUlVGQlF5eE5RVUZOTEdsRVFVRnBSQ3hEUVVGRE8wRkJTVE5HTEUxQlFVMHNRMEZCUXl4TlFVRk5MR2RDUVVGblFpeEhRVUZITzBsQlF6bENMRkZCUVZFc1JVRkJSVHRSUVVOU0xHMUNRVUZ0UWl4RlFVRkZMREJDUVVFd1FqdExRVU5vUkR0SlFVTkVMRkZCUVZFc1JVRkJSVHRSUVVOU0xHRkJRV0VzUlVGQlJTeEZRVUZGTEVOQlFVTXNVVUZCVVR0UlFVTXhRaXhqUVVGakxFVkJRVVVzVjBGQlZ6dExRVU0xUWp0SlFVTkVMRlZCUVZVc1JVRkJSVHRSUVVOV0xGVkJRVlVzUlVGQlJTeGxRVUZsTEVOQlFVTXNWVUZCVlN4RFFVRkRPMUZCUTNaRExFMUJRVTBzUlVGQlJTeGxRVUZsTEVOQlFVTXNUVUZCVFN4RFFVRkRPMUZCUXk5Q0xGbEJRVmtzUlVGQlJTeGxRVUZsTEVOQlFVTXNXVUZCV1N4RFFVRkRPMUZCUXpORExHZENRVUZuUWl4RlFVRkZMR1ZCUVdVc1EwRkJReXhuUWtGQlowSXNRMEZCUXp0UlFVTnVSQ3hSUVVGUkxFVkJRVVVzWlVGQlpTeERRVUZETEZGQlFWRXNRMEZCUXp0UlFVTnVReXhaUVVGWkxFVkJRVVVzWlVGQlpTeERRVUZETEZsQlFWa3NRMEZCUXp0UlFVTXpReXhsUVVGbExFVkJRVVVzWlVGQlpTeERRVUZETEdWQlFXVXNRMEZCUXp0UlFVTnFSQ3huUWtGQlowSXNSVUZCUlN4bFFVRmxMRU5CUVVNc1owSkJRV2RDTEVOQlFVTTdVVUZEYmtRc1VVRkJVU3hGUVVGRkxHVkJRV1VzUTBGQlF5eFJRVUZSTEVOQlFVTTdVVUZEYmtNc1QwRkJUeXhGUVVGRkxHVkJRV1VzUTBGQlF5eFBRVUZQTEVOQlFVTTdTMEZEYkVNN1EwRkRSaXhEUVVGRE8wRkJSVVlzVFVGQlRTeERRVUZETEUxQlFVMHNaMEpCUVdkQ0xFZEJRWEZDTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1owSkJRV2RDTEVOQlFVTTdTMEZETlVVc1RVRkJUU3hEUVVGRExFTkJRVU1zUjBGQmNVSXNSVUZCUlN4SFFVRkhMRVZCUVVVc1JVRkJSVHRKUVVOeVF5eExRVUZMTEUxQlFVMHNSMEZCUnl4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1IwRkJlVUlzUTBGQlF5eERRVUZETEVWQlFVVTdVVUZETVVVc1IwRkJSeXhEUVVGRExFZEJRWGxDTEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNN1MwRkRkRU03U1VGRFJDeFBRVUZQTEVkQlFVY3NRMEZCUXp0QlFVTmlMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dEJRVmRVTEUxQlFVMHNWVUZCVlN4alFVRmpMRU5CUVVNc1NVRkJhMEk3U1VGREwwTXNUMEZCVHl4blFrRkJaMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4UlFVRlJMRU5CUVVNN1FVRkROVU1zUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4blFrRkJaMElzUTBGQlF5eEpRVUZyUWp0SlFVTnFSQ3hQUVVGUExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxGVkJRVlVzUTBGQlF6dEJRVU01UXl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHTkJRV01zUTBGQlF5eEpRVUZyUWp0SlFVTXZReXhQUVVGUExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxGRkJRVkVzUTBGQlF6dEJRVU0xUXl4RFFVRkRPMEZCUlVRc05FUkJRVFJFTzBGQlF6VkVMRTFCUVUwc1QwRkJUeXhQUVVGUE8wbEJTV3hDT3pzN08wOUJTVWM3U1VGRFNDeFpRVUZaTEUxQlFXOUNPMUZCUXpsQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NUVUZCVFN4RFFVRkRPMUZCUTNKQ0xFbEJRVWtzUTBGQlF5eFJRVUZSTEVkQlFVY3NaMEpCUVdkQ0xFTkJRVU1zVFVGQlRTeERRVUYxUWl4RFFVRkRPMGxCUTJwRkxFTkJRVU03U1VGRlJEczdPenRQUVVsSE8wbEJRMGtzVlVGQlZUdFJRVU5tTEUxQlFVMHNTVUZCU1N4SFFVRnpSQ3huUWtGQlowSXNRMEZCUXp0UlFVTnFSaXhQUVVGUExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzBsQlF6RkRMRU5CUVVNN1NVRkZSRHM3T3pzN1QwRkxSenRKUVVOSkxFMUJRVTBzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhSUVVFMFFqdFJRVU0xUkN4UFFVRlBMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5xUkN4RFFVRkRPMGxCUlVRN08wMUJSVVU3U1VGRFJpeE5RVUZOTEV0QlFVc3NhVUpCUVdsQ08xRkJRekZDTEU5QlFVOHNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4RFFVRkRPMGxCUTNaRExFTkJRVU03UTBGRFJpSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQXFJR0Z6SUdac0lHWnliMjBnSjJaaGMzUmxjM1F0YkdWMlpXNXphSFJsYVc0bk8xeHVhVzF3YjNKMElIdHFZWEp2VjJsdWEyeGxjbjBnWm5KdmJTQW5hbUZ5YnkxM2FXNXJiR1Z5TFhSNWNHVnpZM0pwY0hRbk8xeHVhVzF3YjNKMElIdEVhWE4wWVc1alpVMWxkSEpwWTMwZ1puSnZiU0FuUUdSaGRHRm5jbTlyTFd4cFluSmhjbWxsY3k5MWRHbHNjeTl6Y21NdmRIbHdaUzFrWldOc1lYSmhkR2x2Ym5Nbk8xeHVhVzF3YjNKMElIdGthWE4wWVc1alpVMWxkSEpwWTNOOUlHWnliMjBnSjBCa1lYUmhaM0p2YXkxc2FXSnlZWEpwWlhNdmRYUnBiSE12YzNKakwzTnBiV2xzWVhKcGRIa3RiV1YwY21samN5YzdYRzVwYlhCdmNuUWdlMk5oYkdOMWJHRjBaVVYxWTJ4cFpHVmhia1JwYzNSaGJtTmxmU0JtY205dElDZEFaR0YwWVdkeWIyc3RiR2xpY21GeWFXVnpMM1YwYVd4ekwzTnlZeTkyWldOMGIzSXRiM0JsY21GMGFXOXVjeWM3WEc1cGJYQnZjblFnUW1sMFFYSnlZWGtnWm5KdmJTQW5RR1JoZEdGbmNtOXJMV3hwWW5KaGNtbGxjeTkxZEdsc2N5OXpjbU12WW1sMExXRnljbUY1Snp0Y2JtbHRjRzl5ZENCN1ZtVmpkRzl5TENCVGRISnBibWRFYVdOMGFXOXVZWEo1ZlNCbWNtOXRJQ2RBWkdGMFlXZHliMnN0YkdsaWNtRnlhV1Z6TDNWMGFXeHpMM055WXk5MGVYQmxMV1JsWTJ4aGNtRjBhVzl1Y3ljN1hHNWNibVY0Y0c5eWRDQmpiMjV6ZENCQmRtRnBiR0ZpYkdWTlpYUnlhV056SUQwZ2UxeHVJQ0FuVm1WamRHOXlKem9nZTF4dUlDQWdJQ2RGZFdOc2FXUmxZVzVFYVhOMFlXNWpaU2M2SUdOaGJHTjFiR0YwWlVWMVkyeHBaR1ZoYmtScGMzUmhibU5sTEZ4dUlDQjlMRnh1SUNBblUzUnlhVzVuSnpvZ2UxeHVJQ0FnSUNkTVpYWmxibk5vZEdWcGJpYzZJR1pzTG1ScGMzUmhibU5sTEZ4dUlDQWdJQ2RLWVhKdkxWZHBibXRzWlhJbk9pQnFZWEp2VjJsdWEyeGxjaXhjYmlBZ2ZTeGNiaUFnSjBKcGRFRnljbUY1SnpvZ2UxeHVJQ0FnSUNkVVlXNXBiVzkwYnljNklHUnBjM1JoYm1ObFRXVjBjbWxqYzFzblZHRnVhVzF2ZEc4blhTeGNiaUFnSUNBblJHbGpaU2M2SUdScGMzUmhibU5sVFdWMGNtbGpjMXNuUkdsalpTZGRMRnh1SUNBZ0lDZEJjM2x0YldWMGNtbGpKem9nWkdsemRHRnVZMlZOWlhSeWFXTnpXeWRCYzNsdGJXVjBjbWxqSjEwc1hHNGdJQ0FnSjBKeVlYVnVMVUpzWVc1eGRXVjBKem9nWkdsemRHRnVZMlZOWlhSeWFXTnpXeWRDY21GMWJpMUNiR0Z1Y1hWbGRDZGRMRnh1SUNBZ0lDZERiM05wYm1Vbk9pQmthWE4wWVc1alpVMWxkSEpwWTNOYkowTnZjMmx1WlNkZExGeHVJQ0FnSUNkTGRXeGplbmx1YzJ0cEp6b2daR2x6ZEdGdVkyVk5aWFJ5YVdOeld5ZExkV3hqZW5sdWMydHBKMTBzWEc0Z0lDQWdKMDFqTFVOdmJtNWhkV2RvWlhrbk9pQmthWE4wWVc1alpVMWxkSEpwWTNOYkowMWpMVU52Ym01aGRXZG9aWGtuWFN4Y2JpQWdJQ0FuVW05bmIzUXRSMjlzWkdKbGNtY25PaUJrYVhOMFlXNWpaVTFsZEhKcFkzTmJKMUp2WjI5MExVZHZiR1JpWlhKbkoxMHNYRzRnSUNBZ0oxSjFjM05sYkNjNklHUnBjM1JoYm1ObFRXVjBjbWxqYzFzblVuVnpjMlZzSjEwc1hHNGdJQ0FnSjFOdmEyRnNKem9nWkdsemRHRnVZMlZOWlhSeWFXTnpXeWRUYjJ0aGJDZGRMRnh1SUNCOUxGeHVmVHRjYmx4dVpYaHdiM0owSUdOdmJuTjBJRTFsZEhKcFkxUnZSR0YwWVZSNWNHVTZJRk4wY21sdVowUnBZM1JwYjI1aGNua2dQU0JQWW1wbFkzUXVhMlY1Y3loQmRtRnBiR0ZpYkdWTlpYUnlhV056S1Z4dUlDQXVjbVZrZFdObEtDaHlaWFE2SUZOMGNtbHVaMFJwWTNScGIyNWhjbmtzSUd0bGVTa2dQVDRnZTF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnZG1Gc0lHOW1JRTlpYW1WamRDNXJaWGx6S0VGMllXbHNZV0pzWlUxbGRISnBZM05iYTJWNUlHRnpJRUYyWVdsc1lXSnNaVVJoZEdGVWVYQmxjMTBwS1NCN1hHNGdJQ0FnSUNCeVpYUmJkbUZzSUdGeklFRjJZV2xzWVdKc1pVUmhkR0ZVZVhCbGMxMGdQU0JyWlhrN1hHNGdJQ0FnZlZ4dUlDQWdJSEpsZEhWeWJpQnlaWFE3WEc0Z0lIMHNJSHQ5S1R0Y2JseHVaWGh3YjNKMElIUjVjR1VnUVhaaGFXeGhZbXhsUkdGMFlWUjVjR1Z6SUQwZ2EyVjViMllnZEhsd1pXOW1JRUYyWVdsc1lXSnNaVTFsZEhKcFkzTTdYRzVsZUhCdmNuUWdkSGx3WlNCVGRISnBibWROWlhSeWFXTnpJRDBnYTJWNWIyWWdkSGx3Wlc5bUlFRjJZV2xzWVdKc1pVMWxkSEpwWTNOYkoxTjBjbWx1WnlkZE8xeHVaWGh3YjNKMElIUjVjR1VnUW1sMFFYSnlZWGxOWlhSeWFXTnpJRDBnYTJWNWIyWWdkSGx3Wlc5bUlFRjJZV2xzWVdKc1pVMWxkSEpwWTNOYkowSnBkRUZ5Y21GNUoxMDdYRzVsZUhCdmNuUWdkSGx3WlNCV1pXTjBiM0pOWlhSeWFXTnpJRDBnYTJWNWIyWWdkSGx3Wlc5bUlFRjJZV2xzWVdKc1pVMWxkSEpwWTNOYkoxWmxZM1J2Y2lkZE8xeHVaWGh3YjNKMElIUjVjR1VnUzI1dmQyNU5aWFJ5YVdOeklEMGdVM1J5YVc1blRXVjBjbWxqY3lCOElFSnBkRUZ5Y21GNVRXVjBjbWxqY3lCOElGWmxZM1J2Y2sxbGRISnBZM003WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRlpoYkdsa1ZIbHdaWE1nUFNCN1pHRjBZVG9nYzNSeWFXNW5XMTBzSUcxbGRISnBZem9nVTNSeWFXNW5UV1YwY21samMzMGdmQ0I3WkdGMFlUb2dWbVZqZEc5eVcxMHNJRzFsZEhKcFl6b2dWbVZqZEc5eVRXVjBjbWxqYzMwZ2ZGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIdGtZWFJoT2lCQ2FYUkJjbkpoZVZ0ZExDQnRaWFJ5YVdNNklFSnBkRUZ5Y21GNVRXVjBjbWxqYzMwN1hHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnBjMU4wY21sdVowMWxkSEpwWXlodVlXMWxPaUJMYm05M2JrMWxkSEpwWTNNcElIdGNiaUFnY21WMGRYSnVJRTFsZEhKcFkxUnZSR0YwWVZSNWNHVmJibUZ0WlYwZ1BUMGdKMU4wY21sdVp5YzdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCcGMwSnBkRUZ5Y21GNVRXVjBjbWxqS0c1aGJXVTZJRXR1YjNkdVRXVjBjbWxqY3lrZ2UxeHVJQ0J5WlhSMWNtNGdUV1YwY21salZHOUVZWFJoVkhsd1pWdHVZVzFsWFNBOVBTQW5RbWwwUVhKeVlYa25PMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2FYTldaV04wYjNKTlpYUnlhV01vYm1GdFpUb2dTMjV2ZDI1TlpYUnlhV056S1NCN1hHNGdJSEpsZEhWeWJpQk5aWFJ5YVdOVWIwUmhkR0ZVZVhCbFcyNWhiV1ZkSUQwOUlDZFdaV04wYjNJbk8xeHVmVnh1WEc0dktpb2dWVzVwWm1sbFpDQmpiR0Z6Y3lCcGJYQnNaVzFsYm5ScGJtY2daR2xtWm1WeVpXNTBJSE4wY21sdVp5QnRaV0Z6ZFhKbGN5NGdLaTljYm1WNGNHOXlkQ0JqYkdGemN5Qk5aV0Z6ZFhKbElIdGNiaUFnY0hKdmRHVmpkR1ZrSUcxbGRHaHZaRG9nUzI1dmQyNU5aWFJ5YVdOek8xeHVJQ0J3Y205MFpXTjBaV1FnWkdGMFlWUjVjR1U2SUVGMllXbHNZV0pzWlVSaGRHRlVlWEJsY3p0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUTNKbFlYUmxjeUJoYmlCcGJuTjBZVzVqWlNCdlppQk5aV0Z6ZFhKbElIZHBkR2dnTGx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdiV1YwYUc5a0lFMWxkR2h2WkNCMGJ5QmpZV3hqZFd4aGRHVWdaR2x6ZEdGdVkyVWdZbVYwZDJWbGJpQnpkSEpwYm1kekxseHVJQ0FnS2lCQWJXVnRZbVZ5YjJZZ1RXVmhjM1Z5WlhKY2JpQWdJQ292WEc0Z0lHTnZibk4wY25WamRHOXlLRzFsZEdodlpEb2dTMjV2ZDI1TlpYUnlhV056S1NCN1hHNGdJQ0FnZEdocGN5NXRaWFJvYjJRZ1BTQnRaWFJvYjJRN1hHNGdJQ0FnZEdocGN5NWtZWFJoVkhsd1pTQTlJRTFsZEhKcFkxUnZSR0YwWVZSNWNHVmJiV1YwYUc5a1hTQmhjeUJCZG1GcGJHRmliR1ZFWVhSaFZIbHdaWE03WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1VtVjBkWEp1Y3lCamRYTjBiMjBnYzNSeWFXNW5JR1JwYzNSaGJtTmxJR1oxYm1OMGFXOXVJSE53WldOcFptbGxaQzVjYmlBZ0lDb2dRSEpsZEhWeWJpQjdSR2x6ZEdGdVkyVk5aWFJ5YVdOOUlFTmhiR3hpWVdOcklHOW1JSFJvWlNCdFpXRnpkWEpsSUdOb2IzTmxiaTVjYmlBZ0lDb2dRRzFsYldKbGNtOW1JRTFsWVhOMWNtVnlYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdaMlYwVFdWaGMzVnlaU2dwT2lCRWFYTjBZVzVqWlUxbGRISnBZeUI3WEc0Z0lDQWdZMjl1YzNRZ1pHbGpkRG9nZTF0clpYazZJSE4wY21sdVoxMDZJSHRiYTJWNU1qb2djM1J5YVc1blhUb2dSR2x6ZEdGdVkyVk5aWFJ5YVdOOWZTQTlJRUYyWVdsc1lXSnNaVTFsZEhKcFkzTTdYRzRnSUNBZ2NtVjBkWEp1SUdScFkzUmJkR2hwY3k1a1lYUmhWSGx3WlYxYmRHaHBjeTV0WlhSb2IyUmRPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUZKbGRIVnlibk1nWTNWemRHOXRJSE4wY21sdVp5QmthWE4wWVc1alpTQmllU0IwYUdVZ1oybDJaVzRnWkdGMFlTQjBlWEJsTGx4dUlDQWdLaUJBY0dGeVlXMGdlMEYyWVdsc1lXSnNaVVJoZEdGVWVYQmxjMzBnWkdGMFlWUjVjR1VnVFdWMGNtbGpKM01nWkdGMFlTQjBlWEJsWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlM04wY21sdVoxdGRmU0JOWlhSeWFXTWdibUZ0WlhNZ2QyaHBZMmdnWlhod1pXTjBjeUIwYUdVZ1oybDJaVzRnWkdGMFlTQjBlWEJsWEc0Z0lDQXFJRUJ0WlcxaVpYSnZaaUJOWldGemRYSmxjbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJSE4wWVhScFl5Qm5aWFJOWlhSeWFXTkNlVVJoZEdGVWVYQmxLR1JoZEdGVWVYQmxPaUJCZG1GcGJHRmliR1ZFWVhSaFZIbHdaWE1wT2lCemRISnBibWRiWFNCN1hHNGdJQ0FnY21WMGRYSnVJRTlpYW1WamRDNXJaWGx6S0VGMllXbHNZV0pzWlUxbGRISnBZM05iWkdGMFlWUjVjR1ZkS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLaUJTWlhSMWNtNXpJRzFsZEhKcFl5QnVZVzFsY3lCaGRtRnBiR0ZpYkdVdVhHNGdJQ0FxSUVCdFpXMWlaWEp2WmlCTlpXRnpkWEpsY2x4dUlDQXFMMXh1SUNCemRHRjBhV01nWjJWMElHRjJZV2xzWVdKc1pVMWxZWE4xY21WektDazZJSE4wY21sdVoxdGRJSHRjYmlBZ0lDQnlaWFIxY200Z1QySnFaV04wTG10bGVYTW9RWFpoYVd4aFlteGxUV1YwY21samN5azdYRzRnSUgxY2JuMWNiaUpkZlE9PSIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCB7IGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy9zaW1pbGFyaXR5LW1ldHJpY3MnO1xuaW1wb3J0IHsgcmVtb3ZlRW1wdHlTdHJpbmdSb3dzIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvZGF0YWZyYW1lLXV0aWxzJztcbmxldCB6b29tID0gZmFsc2U7XG5jb25zdCBtb2xDb2x1bW5OYW1lcyA9IFsnMV9zZXEnLCAnMl9zZXEnXTtcbmNvbnN0IG5vbk5vcm1hbGl6ZWREaXN0YW5jZXMgPSBbJ0xldmVuc2h0ZWluJ107XG4vLyBTZWFyY2hlcyBmb3IgYWN0aXZpdHkgY2xpZmZzIGluIGEgY2hlbWljYWwgZGF0YXNldCBieSBzZWxlY3RlZCBjdXRvZmZcbmV4cG9ydCBmdW5jdGlvbiBnZXRBY3Rpdml0eUNsaWZmcyhkZiwgc2VxQ29sLCBlbmNvZGVkQ29sLCBheGVzTmFtZXMsIHNjYXR0ZXJUaXRsZSwgYWN0aXZpdGllcywgc2ltaWxhcml0eSwgc2ltaWxhcml0eU1ldHJpYywgbWV0aG9kTmFtZSwgc2VtVHlwZSwgdGFncywgc2VxU3BhY2VGdW5jLCBzaW1NYXRyaXhGdW5jLCB0b29sdGlwRnVuYywgcHJvcGVydHlQYW5lbEZ1bmMsIHNlcVNwYWNlT3B0aW9ucykge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGF1dG9tYXRpY1NpbWlsYXJpdHlMaW1pdCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBNSU5fU0lNSUxBUklUWSA9IDgwO1xuICAgICAgICBjb25zdCBpbml0aWFsU2ltaWxhcml0eUxpbWl0ID0gYXV0b21hdGljU2ltaWxhcml0eUxpbWl0ID8gTUlOX1NJTUlMQVJJVFkgOiBzaW1pbGFyaXR5IC8gMTAwO1xuICAgICAgICBjb25zdCBkaW1lbnNpb25hbGl0eVJlZHVjZUNvbCA9IGVuY29kZWRDb2wgIT09IG51bGwgJiYgZW5jb2RlZENvbCAhPT0gdm9pZCAwID8gZW5jb2RlZENvbCA6IHNlcUNvbDtcbiAgICAgICAgY29uc3Qgd2l0aG91dEVtcHR5VmFsdWVzID0gREcuRGF0YUZyYW1lLmZyb21Db2x1bW5zKFtkaW1lbnNpb25hbGl0eVJlZHVjZUNvbF0pLmNsb25lKCk7XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCBlbXB0eVZhbHNJZHhzID0gcmVtb3ZlRW1wdHlTdHJpbmdSb3dzKHdpdGhvdXRFbXB0eVZhbHVlcywgZGltZW5zaW9uYWxpdHlSZWR1Y2VDb2wpO1xuICAgICAgICBjb25zdCB7IGRpc3RhbmNlLCBjb29yZGluYXRlcyB9ID0geWllbGQgc2VxU3BhY2VGdW5jKHtcbiAgICAgICAgICAgIHNlcUNvbDogd2l0aG91dEVtcHR5VmFsdWVzLmNvbChkaW1lbnNpb25hbGl0eVJlZHVjZUNvbC5uYW1lKSxcbiAgICAgICAgICAgIG1ldGhvZE5hbWU6IG1ldGhvZE5hbWUsXG4gICAgICAgICAgICBzaW1pbGFyaXR5TWV0cmljOiBzaW1pbGFyaXR5TWV0cmljLFxuICAgICAgICAgICAgZW1iZWRBeGVzTmFtZXM6IGF4ZXNOYW1lcyxcbiAgICAgICAgICAgIG9wdGlvbnM6IHNlcVNwYWNlT3B0aW9uc1xuICAgICAgICB9KTtcbiAgICAgICAgZm9yIChjb25zdCBjb2wgb2YgY29vcmRpbmF0ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGxpc3RWYWx1ZXMgPSBjb2wudG9MaXN0KCk7XG4gICAgICAgICAgICBlbXB0eVZhbHNJZHhzLmZvckVhY2goKGluZCkgPT4gbGlzdFZhbHVlcy5zcGxpY2UoaW5kLCAwLCBudWxsKSk7XG4gICAgICAgICAgICBkZi5jb2x1bW5zLmFkZChERy5Db2x1bW4uZnJvbUxpc3QoJ2RvdWJsZScsIGNvbC5uYW1lLCBsaXN0VmFsdWVzKSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGZTZXEgPSBERy5EYXRhRnJhbWUuZnJvbUNvbHVtbnMoW0RHLkNvbHVtbi5mcm9tTGlzdCgnc3RyaW5nJywgJ3NlcScsIGRpbWVuc2lvbmFsaXR5UmVkdWNlQ29sLnRvTGlzdCgpKV0pO1xuICAgICAgICBjb25zdCBkaW0gPSBkaW1lbnNpb25hbGl0eVJlZHVjZUNvbC5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHNpbUFyciA9IEFycmF5KGRpbSAtIDEpO1xuICAgICAgICBpZiAoIWRpc3RhbmNlIHx8IGVtcHR5VmFsc0lkeHMubGVuZ3RoICE9PSAwIHx8IG5vbk5vcm1hbGl6ZWREaXN0YW5jZXMuaW5jbHVkZXMoc2ltaWxhcml0eU1ldHJpYykpXG4gICAgICAgICAgICB5aWVsZCBzaW1NYXRyaXhGdW5jKGRpbSwgZGltZW5zaW9uYWxpdHlSZWR1Y2VDb2wsIGRmU2VxLCAnc2VxJywgc2ltQXJyKTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgZ2V0U2ltaWxhcml0aWVzRnJvbURpc3RhbmNlcyhkaW0sIGRpc3RhbmNlLCBzaW1BcnIpO1xuICAgICAgICBjb25zdCBvcHRTaW1pbGFyaXR5TGltaXQgPSBpbml0aWFsU2ltaWxhcml0eUxpbWl0O1xuICAgICAgICBjb25zdCBzaW1WYWxzID0gW107XG4gICAgICAgIGNvbnN0IHNhbGlWYWxzID0gW107XG4gICAgICAgIGNvbnN0IG4xID0gW107XG4gICAgICAgIGNvbnN0IG4yID0gW107XG4gICAgICAgIGNvbnN0IGNsaWZmc01vbElkcyA9IG5ldyBTZXQoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgIT0gZGltIC0gMTsgKytpKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiAhPSBkaW0gLSAxIC0gaTsgKytqKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2ltID0gc2ltQXJyW2ldID8gc2ltQXJyW2ldLmdldChqKSA6IDA7XG4gICAgICAgICAgICAgICAgaWYgKHNpbSA+PSBvcHRTaW1pbGFyaXR5TGltaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgbjEucHVzaChpKTtcbiAgICAgICAgICAgICAgICAgICAgbjIucHVzaChpICsgaiArIDEpO1xuICAgICAgICAgICAgICAgICAgICBjbGlmZnNNb2xJZHMuYWRkKGkpO1xuICAgICAgICAgICAgICAgICAgICBjbGlmZnNNb2xJZHMuYWRkKGkgKyBqICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIHNpbVZhbHMucHVzaChzaW0pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaWZmID0gTWF0aC5hYnMoYWN0aXZpdGllcy5nZXQoaSkgLSBhY3Rpdml0aWVzLmdldChpICsgaiArIDEpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNpbSAhPSAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgc2FsaVZhbHMucHVzaChkaWZmIC8gKDEgLSBzaW0pKTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgc2FsaVZhbHMucHVzaChJbmZpbml0eSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNhbGlWYWxzV2l0aG91dEluZmluaXR5ID0gc2FsaVZhbHMuZmlsdGVyKGl0ID0+IGl0ICE9PSBJbmZpbml0eSk7XG4gICAgICAgIGNvbnN0IHNhbGlNaW4gPSBNYXRoLm1pbiguLi5zYWxpVmFsc1dpdGhvdXRJbmZpbml0eSk7XG4gICAgICAgIGNvbnN0IHNhbGlNYXggPSBNYXRoLm1heCguLi5zYWxpVmFsc1dpdGhvdXRJbmZpbml0eSk7XG4gICAgICAgIGNvbnN0IHNhbGlPcGFjaXR5Q29lZiA9IDAuOCAvIChzYWxpTWF4IC0gc2FsaU1pbik7XG4gICAgICAgIGNvbnN0IG5laWdoYm91cnNDb3VudCA9IG5ldyBBcnJheShkaW0pLmZpbGwoMCk7XG4gICAgICAgIGNvbnN0IHNpbWlsYXJpdHlDb3VudCA9IG5ldyBBcnJheShkaW0pLmZpbGwoMCk7XG4gICAgICAgIGNvbnN0IHNhbGlDb3VudCA9IG5ldyBBcnJheShkaW0pLmZpbGwoMCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpICE9IG4xLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBuZWlnaGJvdXJzQ291bnRbbjFbaV1dICs9IDE7XG4gICAgICAgICAgICBuZWlnaGJvdXJzQ291bnRbbjJbaV1dICs9IDE7XG4gICAgICAgICAgICBzaW1pbGFyaXR5Q291bnRbbjFbaV1dICs9IHNpbVZhbHNbaV07XG4gICAgICAgICAgICBzaW1pbGFyaXR5Q291bnRbbjJbaV1dICs9IHNpbVZhbHNbaV07XG4gICAgICAgICAgICBpZiAoc2FsaVZhbHNbaV0gIT0gSW5maW5pdHkpIHtcbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZpdGllcy5nZXQobjFbaV0pID4gYWN0aXZpdGllcy5nZXQobjJbaV0pKVxuICAgICAgICAgICAgICAgICAgICBzYWxpQ291bnRbbjFbaV1dICs9IHNhbGlWYWxzW2ldO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgc2FsaUNvdW50W24yW2ldXSArPSBzYWxpVmFsc1tpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzYWxpID0gREcuQ29sdW1uLmZyb21MaXN0KCdkb3VibGUnLCBgc2FsaV8ke2F4ZXNOYW1lc1swXS5zdWJzdHJpbmcoYXhlc05hbWVzWzBdLmxhc3RJbmRleE9mKCdfJykpfWAsIHNhbGlDb3VudCk7XG4gICAgICAgIGRmLmNvbHVtbnMuYWRkKHNhbGkpO1xuICAgICAgICBjb25zdCBjbGlmZnNDb2xOYW1lID0gYWRkQ2xpZmZzQm9vbGVhbkNvbChkZiwgY2xpZmZzTW9sSWRzKTtcbiAgICAgICAgY29uc3QgdmlldyA9IGdyb2suc2hlbGwuZ2V0VGFibGVWaWV3KGRmLm5hbWUpO1xuICAgICAgICB2aWV3LmdyaWQuY29sdW1ucy5ieU5hbWUoY2xpZmZzQ29sTmFtZSkudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICBjb25zdCBzcCA9IHZpZXcuYWRkVmlld2VyKERHLlZpZXdlci5zY2F0dGVyUGxvdChkZiwge1xuICAgICAgICAgICAgeENvbHVtbk5hbWU6IGF4ZXNOYW1lc1swXSxcbiAgICAgICAgICAgIHlDb2x1bW5OYW1lOiBheGVzTmFtZXNbMV0sXG4gICAgICAgICAgICBzaXplOiBzYWxpLm5hbWUsXG4gICAgICAgICAgICBjb2xvcjogYWN0aXZpdGllcy5uYW1lLFxuICAgICAgICAgICAgc2hvd1hTZWxlY3RvcjogZmFsc2UsXG4gICAgICAgICAgICBzaG93WVNlbGVjdG9yOiBmYWxzZSxcbiAgICAgICAgICAgIHNob3dTaXplU2VsZWN0b3I6IGZhbHNlLFxuICAgICAgICAgICAgc2hvd0NvbG9yU2VsZWN0b3I6IGZhbHNlLFxuICAgICAgICAgICAgbWFya2VyTWluU2l6ZTogNSxcbiAgICAgICAgICAgIG1hcmtlck1heFNpemU6IDI1LFxuICAgICAgICAgICAgdGl0bGU6IHNjYXR0ZXJUaXRsZVxuICAgICAgICB9KSk7XG4gICAgICAgIGNvbnN0IGNhbnZhcyA9IHNwLmdldEluZm8oKVsnY2FudmFzJ107XG4gICAgICAgIGNvbnN0IGxpbmVzUmVzID0gY3JlYXRlTGluZXMobjEsIG4yLCBzZXFDb2wsIGFjdGl2aXRpZXMsIHNhbGlWYWxzLCBzaW1WYWxzLCBzZW1UeXBlLCB0YWdzKTtcbiAgICAgICAgY29uc3QgY2FzaGVkTGluZXNEYXRhID0ge307XG4gICAgICAgIGxldCBhY2M7XG4gICAgICAgIGxpbmVzUmVzLmxpbmVzRGYub25DdXJyZW50Q2VsbENoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRNb2xJZHggPSBsaW5lc1Jlcy5saW5lc0RmLmN1cnJlbnRDb2wgJiYgbGluZXNSZXMubGluZXNEZi5jdXJyZW50Q29sLm5hbWUgPT09ICcyX3NlcScgPyAxIDogMDtcbiAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBsaW5lc1Jlcy5saW5lc0RmLmN1cnJlbnRSb3dJZHggIT09IC0xID8gbGluZXNSZXMubGluZXNbbGluZXNSZXMubGluZXNEZi5jdXJyZW50Um93SWR4XSA6IG51bGw7XG4gICAgICAgICAgICBzcC5kYXRhRnJhbWUuY3VycmVudFJvd0lkeCA9IGxpbmUgPyBsaW5lLm1vbHNbY3VycmVudE1vbElkeF0gOiAtMTtcbiAgICAgICAgICAgIHNwLmRhdGFGcmFtZS5zZWxlY3Rpb24uc2V0KDAsICFsaW5lc1Jlcy5saW5lc1swXS5zZWxlY3RlZCk7XG4gICAgICAgICAgICBzcC5kYXRhRnJhbWUuc2VsZWN0aW9uLnNldCgwLCBsaW5lc1Jlcy5saW5lc1swXS5zZWxlY3RlZCk7XG4gICAgICAgICAgICBsaW5lc0RmR3JpZC5pbnZhbGlkYXRlKCk7XG4gICAgICAgICAgICBpZiAobGluZSlcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgdXBkYXRlUHJvcGVydHlQYW5lbChkZiwgYWNjLCBjYXNoZWRMaW5lc0RhdGEsIGxpbmUsIHNlcUNvbCwgYWN0aXZpdGllcywgbGluZXNSZXMubGluZXNEZi5nZXQoJ3NhbGknLCBsaW5lLmlkKSwgcHJvcGVydHlQYW5lbEZ1bmMpOyB9LCAxMDAwKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGxpbmVzUmVzLmxpbmVzRGYub25TZWxlY3Rpb25DaGFuZ2VkLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgICAgICAgaWYgKGxpbmVzUmVzLmxpbmVzRGYubW91c2VPdmVyUm93SWR4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBsaW5lc1Jlcy5saW5lc1tsaW5lc1Jlcy5saW5lc0RmLm1vdXNlT3ZlclJvd0lkeF07XG4gICAgICAgICAgICAgICAgbGluZS5zZWxlY3RlZCA9ICFsaW5lLnNlbGVjdGVkO1xuICAgICAgICAgICAgICAgIGlmICghbGluZS5zZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgZGYuc2VsZWN0aW9uLnNldEFsbChmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsaW5lc1Jlcy5saW5lcy5mb3JFYWNoKChsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGwuc2VsZWN0ZWQpXG4gICAgICAgICAgICAgICAgICAgIGwubW9scy5mb3JFYWNoKChtKSA9PiBkZi5zZWxlY3Rpb24uc2V0KG0sIHRydWUpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbGluZXNEZkdyaWQuaW52YWxpZGF0ZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgbGluZXNEZkdyaWQgPSBsaW5lc1Jlcy5saW5lc0RmLnBsb3QuZ3JpZCgpLnNvcnQoWydzYWxpJ10sIFtmYWxzZV0pO1xuICAgICAgICBsaW5lc0RmR3JpZC5vbkNlbGxDbGljay5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgem9vbSA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBsaXN0Q2xpZmZzTGluayA9IHVpLmJ1dHRvbihgJHtsaW5lc1Jlcy5saW5lc0RmLnJvd0NvdW50fSBjbGlmZnNgLCAoKSA9PiB7XG4gICAgICAgICAgICBncm9rLnNoZWxsLmRvY2tNYW5hZ2VyLmRvY2sobGluZXNEZkdyaWQucm9vdCwgJ2Rvd24nLCBudWxsLCAnQWN0aXZpdHkgY2xpZmZzJywgMC4yKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGVkaXRTcExpbmtTdHlsZShsaXN0Q2xpZmZzTGluaywgc3AsIDEwKTtcbiAgICAgICAgY29uc3QgZmlsdGVyQ2xpZmZzQnV0dG9uID0gdWkuc3dpdGNoSW5wdXQoYFNob3cgb25seSBjbGlmZnNgLCBmYWxzZSk7XG4gICAgICAgIGZpbHRlckNsaWZmc0J1dHRvbi5vbkNoYW5nZWQoKCkgPT4ge1xuICAgICAgICAgICAgZmlsdGVyQ2xpZmZzQnV0dG9uLnZhbHVlID8gZGYucm93cy5maWx0ZXIoKHJvdykgPT4gcm93W2NsaWZmc0NvbE5hbWVdID09PSB0cnVlKSA6IGRmLmZpbHRlci5zZXRBbGwodHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBlZGl0U3BMaW5rU3R5bGUoZmlsdGVyQ2xpZmZzQnV0dG9uLnJvb3QsIHNwLCAzMCk7XG4gICAgICAgIGxldCB0aW1lcjtcbiAgICAgICAgY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgICAgICAgIHRpbWVyID0gZ2xvYmFsLnNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBjaGVja0N1cnNvck9uTGluZShldmVudCwgY2FudmFzLCBsaW5lc1Jlcy5saW5lcyk7XG4gICAgICAgICAgICAgICAgaWYgKGxpbmUgJiYgZGYubW91c2VPdmVyUm93SWR4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB1aS50b29sdGlwLnNob3codG9vbHRpcEZ1bmMoeyBjYXNoZWREYXRhOiBjYXNoZWRMaW5lc0RhdGEsIGxpbmU6IGxpbmUsIGRmOiBkZiwgc2VxQ29sOiBzZXFDb2wsIGFjdGl2aXR5Q29sOiBhY3Rpdml0aWVzIH0pLCBldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCA1MDApO1xuICAgICAgICB9KTtcbiAgICAgICAgY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgY29uc3QgbGluZSA9IGNoZWNrQ3Vyc29yT25MaW5lKGV2ZW50LCBjYW52YXMsIGxpbmVzUmVzLmxpbmVzKTtcbiAgICAgICAgICAgIGlmIChsaW5lICYmIGRmLm1vdXNlT3ZlclJvd0lkeCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuY3RybEtleSkge1xuICAgICAgICAgICAgICAgICAgICBsaW5lLnNlbGVjdGVkID0gIWxpbmUuc2VsZWN0ZWQ7XG4gICAgICAgICAgICAgICAgICAgIGxpbmVzUmVzLmxpbmVzRGYuc2VsZWN0aW9uLnNldChsaW5lLmlkLCBsaW5lLnNlbGVjdGVkKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFsaW5lLnNlbGVjdGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgZGYuc2VsZWN0aW9uLnNldEFsbChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIGxpbmVzUmVzLmxpbmVzLmZvckVhY2goKGwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsLnNlbGVjdGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwubW9scy5mb3JFYWNoKChtKSA9PiBkZi5zZWxlY3Rpb24uc2V0KG0sIHRydWUpKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAobGluZXNSZXMubGluZXNEZi5jdXJyZW50Um93SWR4ICE9PSBsaW5lLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lc1Jlcy5saW5lc0RmLmN1cnJlbnRSb3dJZHggPSBsaW5lLmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGYuY3VycmVudFJvd0lkeCA9IGxpbmUubW9sc1swXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRmLnNlbGVjdGlvbi5zZXQoMCwgIWxpbmVzUmVzLmxpbmVzWzBdLnNlbGVjdGVkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRmLnNlbGVjdGlvbi5zZXQoMCwgbGluZXNSZXMubGluZXNbMF0uc2VsZWN0ZWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IG9yZGVyID0gbGluZXNSZXMubGluZXNEZi5nZXRTb3J0ZWRPcmRlcihsaW5lc0RmR3JpZC5zb3J0QnlDb2x1bW5zLCBsaW5lc0RmR3JpZC5zb3J0VHlwZXMpO1xuICAgICAgICAgICAgICAgIGxpbmVzRGZHcmlkLnNjcm9sbFRvQ2VsbCgnc2VxXzEnLCBvcmRlci5pbmRleE9mKGxpbmUuaWQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHNwLm9uRXZlbnQoJ2Q0LWJlZm9yZS1kcmF3LXNjZW5lJylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVzID0gcmVuZGVyTGluZXMoc3AsIGF4ZXNOYW1lc1swXSwgYXhlc05hbWVzWzFdLCBsaW5lc1Jlcywgc2FsaVZhbHMsIHNhbGlPcGFjaXR5Q29lZiwgc2FsaU1pbik7XG4gICAgICAgICAgICBpZiAoem9vbSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRMaW5lID0gbGluZXNbbGluZXNSZXMubGluZXNEZi5jdXJyZW50Um93SWR4XTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB6b29tTGVmdCwgem9vbVJpZ2h0LCB6b29tVG9wLCB6b29tQm90dG9tIH0gPSBnZXRab29tQ29vcmRpbmF0ZXMoc3Audmlld3BvcnQud2lkdGgsIHNwLnZpZXdwb3J0LmhlaWdodCwgc3AuZGF0YUZyYW1lLmdldChheGVzTmFtZXNbMF0sIGN1cnJlbnRMaW5lLm1vbHNbMF0pLCBzcC5kYXRhRnJhbWUuZ2V0KGF4ZXNOYW1lc1sxXSwgY3VycmVudExpbmUubW9sc1swXSksIHNwLmRhdGFGcmFtZS5nZXQoYXhlc05hbWVzWzBdLCBjdXJyZW50TGluZS5tb2xzWzFdKSwgc3AuZGF0YUZyYW1lLmdldChheGVzTmFtZXNbMV0sIGN1cnJlbnRMaW5lLm1vbHNbMV0pKTtcbiAgICAgICAgICAgICAgICAgICAgc3Auem9vbSh6b29tTGVmdCwgem9vbVRvcCwgem9vbVJpZ2h0LCB6b29tQm90dG9tKTtcbiAgICAgICAgICAgICAgICB9LCAzMDApO1xuICAgICAgICAgICAgICAgIHpvb20gPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpbHRlckNsaWZmc0J1dHRvbi52YWx1ZSA/IGRmLnJvd3MuZmlsdGVyKChyb3cpID0+IHJvd1tjbGlmZnNDb2xOYW1lXSA9PT0gdHJ1ZSkgOiBkZi5maWx0ZXIuc2V0QWxsKHRydWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgc3AuYWRkUHJvcGVydHkoJ3NpbWlsYXJpdHlMaW1pdCcsICdkb3VibGUnLCBvcHRTaW1pbGFyaXR5TGltaXQpO1xuICAgICAgICBhY2MgPSBjcmVhdGVQb3BlcnR5UGFuZWwoKTtcbiAgICAgICAgcmV0dXJuIHNwO1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZWRpdFNwTGlua1N0eWxlKGVsLCBzcCwgdG9wTWFyZ2luKSB7XG4gICAgZWwuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIGVsLnN0eWxlLnRvcCA9IGAke3RvcE1hcmdpbn1weGA7XG4gICAgZWwuc3R5bGUucmlnaHQgPSAnMTBweCc7XG4gICAgc3Aucm9vdC5hcHBlbmQoZWwpO1xufVxuZnVuY3Rpb24gY3JlYXRlUG9wZXJ0eVBhbmVsKCkge1xuICAgIGNvbnN0IGFjYyA9IHVpLmFjY29yZGlvbigpO1xuICAgIGNvbnN0IGFjY0ljb24gPSB1aS5lbGVtZW50KCdpJyk7XG4gICAgYWNjSWNvbi5jbGFzc05hbWUgPSAnZ3Jvay1pY29uIHN2Zy1pY29uIHN2Zy12aWV3LWxheW91dCc7XG4gICAgYWNjLmFkZFRpdGxlKHVpLnNwYW4oW2FjY0ljb24sIHVpLmxhYmVsKGBBY3Rpdml0eSBjbGlmZnNgKV0pKTtcbiAgICBhY2MuYWRkUGFuZSgnQ2xpZmYgRGV0YWlscycsICgpID0+IHVpLmRpdlRleHQoJ0NsaWZmIGhhcyBub3QgYmVlbiBzZWxlY3RlZCcpLCB0cnVlKTtcbiAgICBncm9rLnNoZWxsLm8gPSBhY2Mucm9vdDtcbiAgICByZXR1cm4gYWNjO1xufVxuZnVuY3Rpb24gdXBkYXRlUHJvcGVydHlQYW5lbChkZiwgYWNjLCBjYXNoZWREYXRhLCBsaW5lLCBzZXFDb2wsIGFjdGl2aXRpZXMsIHNhbGksIHByb3BQYW5lbEZ1bmMpIHtcbiAgICBjb25zdCBwYW5lbCA9IGFjYy5nZXRQYW5lKCdDbGlmZiBEZXRhaWxzJyk7XG4gICAgdWkuZW1wdHkocGFuZWwucm9vdCk7XG4gICAgY29uc3QgcGFuZWxFbGVtZW50ID0gcHJvcFBhbmVsRnVuYyh7IGNhc2hlZERhdGE6IGNhc2hlZERhdGEsIGxpbmU6IGxpbmUsIGRmOiBkZiwgc2VxQ29sOiBzZXFDb2wsIGFjdGl2aXR5Q29sOiBhY3Rpdml0aWVzLCBzYWxpOiBzYWxpIH0pO1xuICAgIHBhbmVsLnJvb3QuYXBwZW5kKHBhbmVsRWxlbWVudCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGdyb2suc2hlbGwubyA9IGFjYy5yb290O1xuICAgIH0sIDUwMCk7XG59XG5mdW5jdGlvbiBnZXRab29tQ29vcmRpbmF0ZXMoVzAsIEgwLCB4MSwgeTEsIHgyLCB5Mikge1xuICAgIGNvbnN0IFcxID0gTWF0aC5hYnMoeDEgLSB4Mik7XG4gICAgY29uc3QgSDEgPSBNYXRoLmFicyh5MSAtIHkyKTtcbiAgICBjb25zdCBzY2FsZVcgPSBXMCAvIFcxO1xuICAgIGNvbnN0IHNjYWxlSCA9IEgwIC8gSDE7XG4gICAgY29uc3Qgc2NhbGUgPSBNYXRoLm1pbihzY2FsZVcsIHNjYWxlSCk7XG4gICAgY29uc3QgVzIgPSAoVzAgLyBzY2FsZSkgKiA1O1xuICAgIGNvbnN0IEgyID0gKEgwIC8gc2NhbGUpICogNTtcbiAgICBjb25zdCBsZWZ0ID0geDEgPCB4MiA/IHgxIDogeDI7XG4gICAgY29uc3QgdG9wID0geTEgPiB5MiA/IHkxIDogeTI7XG4gICAgY29uc3Qgem9vbUxlZnQgPSAobGVmdCArIFcxIC8gMikgLSBXMiAvIDI7XG4gICAgY29uc3Qgem9vbVJpZ2h0ID0gem9vbUxlZnQgKyBXMjtcbiAgICBjb25zdCB6b29tVG9wID0gKHRvcCAtIEgxIC8gMikgKyBIMiAvIDI7XG4gICAgY29uc3Qgem9vbUJvdHRvbSA9IHpvb21Ub3AgLSBIMjtcbiAgICByZXR1cm4geyB6b29tTGVmdDogem9vbUxlZnQsIHpvb21SaWdodDogem9vbVJpZ2h0LCB6b29tVG9wOiB6b29tVG9wLCB6b29tQm90dG9tOiB6b29tQm90dG9tIH07XG59XG5mdW5jdGlvbiBjaGVja0N1cnNvck9uTGluZShldmVudCwgY2FudmFzLCBsaW5lcykge1xuICAgIGNvbnN0IHJlY3QgPSBjYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgeCA9IGV2ZW50LmNsaWVudFggLSByZWN0LmxlZnQ7XG4gICAgY29uc3QgeSA9IGV2ZW50LmNsaWVudFkgLSByZWN0LnRvcDtcbiAgICBsZXQgY2xvc2VzdExpbmUgPSBudWxsO1xuICAgIGxldCBtaW5EaXN0ID0gMDtcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICAgICAgY29uc3QgZGlzdCA9IE1hdGguYWJzKE1hdGguaHlwb3QobGluZS5hWzBdIC0geCwgbGluZS5hWzFdIC0geSkgK1xuICAgICAgICAgICAgTWF0aC5oeXBvdChsaW5lLmJbMF0gLSB4LCBsaW5lLmJbMV0gLSB5KSAtIE1hdGguaHlwb3QobGluZS5hWzBdIC0gbGluZS5iWzBdLCBsaW5lLmFbMV0gLSBsaW5lLmJbMV0pKTtcbiAgICAgICAgaWYgKCghbWluRGlzdCAmJiBkaXN0IDwgMikgfHwgZGlzdCA8IG1pbkRpc3QpIHtcbiAgICAgICAgICAgIG1pbkRpc3QgPSBkaXN0O1xuICAgICAgICAgICAgY2xvc2VzdExpbmUgPSBsaW5lO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjbG9zZXN0TGluZTtcbn1cbmZ1bmN0aW9uIHJlbmRlckxpbmVzKHNwLCB4QXhpcywgeUF4aXMsIGxpbmVzUmVzLCBzYWxpVmFscywgc2FsaU9wYWNpdHlDb2VmLCBzYWxpTWluKSB7XG4gICAgY29uc3QgbGluZXMgPSBsaW5lc1Jlcy5saW5lcztcbiAgICBjb25zdCBjYW52YXMgPSBzcC5nZXRJbmZvKClbJ2NhbnZhcyddO1xuICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgIGNvbnN0IHggPSBzcC5kYXRhRnJhbWUuY29sdW1ucy5ieU5hbWUoeEF4aXMpO1xuICAgIGNvbnN0IHkgPSBzcC5kYXRhRnJhbWUuY29sdW1ucy5ieU5hbWUoeUF4aXMpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgcG9pbnRGcm9tID0gc3Aud29ybGRUb1NjcmVlbih4LmdldChsaW5lc1tpXS5tb2xzWzBdKSwgeS5nZXQobGluZXNbaV0ubW9sc1swXSkpO1xuICAgICAgICBjb25zdCBwb2ludFRvID0gc3Aud29ybGRUb1NjcmVlbih4LmdldChsaW5lc1tpXS5tb2xzWzFdKSwgeS5nZXQobGluZXNbaV0ubW9sc1sxXSkpO1xuICAgICAgICBsaW5lc1tpXS5hID0gW3BvaW50RnJvbS54LCBwb2ludEZyb20ueV07XG4gICAgICAgIGxpbmVzW2ldLmIgPSBbcG9pbnRUby54LCBwb2ludFRvLnldO1xuICAgICAgICBjb25zdCBsaW5lID0gbmV3IFBhdGgyRCgpO1xuICAgICAgICBsaW5lLm1vdmVUbyhsaW5lc1tpXS5hWzBdLCBsaW5lc1tpXS5hWzFdKTtcbiAgICAgICAgY29uc3QgY29sb3IgPSBsaW5lc1tpXS5zZWxlY3RlZCA/ICcyNTUsMjU1LDAnIDogJzAsMTI4LDAnO1xuICAgICAgICBjb25zdCBvcGFjaXR5ID0gc2FsaVZhbHNbaV0gPT09IEluZmluaXR5ID8gMSA6IDAuMiArIChzYWxpVmFsc1tpXSAtIHNhbGlNaW4pICogc2FsaU9wYWNpdHlDb2VmO1xuICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSBgcmdiYSgke2NvbG9yfSwke29wYWNpdHl9KWA7XG4gICAgICAgIGN0eC5saW5lV2lkdGggPSBsaW5lc1tpXS5pZCA9PT0gbGluZXNSZXMubGluZXNEZi5jdXJyZW50Um93SWR4ID8gMyA6IDE7XG4gICAgICAgIGxpbmUubGluZVRvKGxpbmVzW2ldLmJbMF0sIGxpbmVzW2ldLmJbMV0pO1xuICAgICAgICBjdHguc3Ryb2tlKGxpbmUpO1xuICAgIH1cbiAgICByZXR1cm4gbGluZXM7XG59XG5mdW5jdGlvbiBjcmVhdGVMaW5lcyhuMSwgbjIsIHNlcSwgYWN0aXZpdGllcywgc2FsaVZhbHMsIHNpbVZhbHMsIHNlbVR5cGUsIHRhZ3MpIHtcbiAgICBjb25zdCBsaW5lcyA9IG5ldyBBcnJheShuMS5sZW5ndGgpLmZpbGwobnVsbCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuMS5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBudW0xID0gbjFbaV07XG4gICAgICAgIGNvbnN0IG51bTIgPSBuMltpXTtcbiAgICAgICAgbGluZXNbaV0gPSAoeyBpZDogaSwgbW9sczogW251bTEsIG51bTJdLCBzZWxlY3RlZDogZmFsc2UsIGE6IFtdLCBiOiBbXSB9KTtcbiAgICB9XG4gICAgY29uc3QgbGluZXNEZiA9IERHLkRhdGFGcmFtZS5jcmVhdGUobGluZXMubGVuZ3RoKTtcbiAgICBtb2xDb2x1bW5OYW1lcy5mb3JFYWNoKChpdCwgaWR4KSA9PiB7XG4gICAgICAgIGxpbmVzRGYuY29sdW1ucy5hZGROZXdTdHJpbmcoaXQpLmluaXQoKGkpID0+IHNlcS5nZXQobGluZXNbaV0ubW9sc1tpZHhdKSk7XG4gICAgICAgIHNldFRhZ3MobGluZXNEZi5jb2woaXQpLCB0YWdzKTtcbiAgICAgICAgbGluZXNEZi5jb2woaXQpLnNlbVR5cGUgPSBzZW1UeXBlO1xuICAgIH0pO1xuICAgIGxpbmVzRGYuY29sdW1ucy5hZGROZXdGbG9hdCgnYWN0X2RpZmYnKVxuICAgICAgICAuaW5pdCgoaSkgPT4gTWF0aC5hYnMoYWN0aXZpdGllcy5nZXQobGluZXNbaV0ubW9sc1swXSkgLSBhY3Rpdml0aWVzLmdldChsaW5lc1tpXS5tb2xzWzFdKSkpO1xuICAgIGxpbmVzRGYuY29sdW1ucy5hZGROZXdJbnQoJ2xpbmVfaW5kZXgnKS5pbml0KChpKSA9PiBpKTtcbiAgICBsaW5lc0RmLmNvbHVtbnMuYWRkTmV3RmxvYXQoJ3NhbGknKS5pbml0KChpKSA9PiBzYWxpVmFsc1tpXSk7XG4gICAgbGluZXNEZi5jb2x1bW5zLmFkZE5ld0Zsb2F0KCdzaW0nKS5pbml0KChpKSA9PiBzaW1WYWxzW2ldKTtcbiAgICByZXR1cm4geyBsaW5lcywgbGluZXNEZiB9O1xufVxuZnVuY3Rpb24gc2V0VGFncyhjb2wsIHRhZ3MpIHtcbiAgICBPYmplY3Qua2V5cyh0YWdzKS5mb3JFYWNoKHRhZyA9PiB7XG4gICAgICAgIGNvbC50YWdzW3RhZ10gPSB0YWdzW3RhZ107XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2ltaWxhcml0aWVzTWFyaXgoZGltLCBzZXFDb2wsIGRmU2VxLCBzaW1BcnIsIHNpbUZ1bmMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSAhPSBkaW0gLSAxOyArK2kpIHtcbiAgICAgICAgICAgIGNvbnN0IG1vbCA9IHNlcUNvbC5nZXQoaSk7XG4gICAgICAgICAgICBkZlNlcS5yb3dzLnJlbW92ZUF0KDAsIDEsIGZhbHNlKTtcbiAgICAgICAgICAgIHNpbUFycltpXSA9ICh5aWVsZCBzaW1GdW5jKGRmU2VxLmNvbCgnc2VxJyksIG1vbCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzaW1BcnI7XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2ltaWxhcml0aWVzRnJvbURpc3RhbmNlcyhkaW0sIGRpc3RhbmNlcywgc2ltQXJyKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaW0gLSAxOyArK2kpIHtcbiAgICAgICAgY29uc3Qgc2ltaWxhcml0eUFyciA9IG5ldyBBcnJheShkaW0gLSBpIC0gMSkuZmlsbCgwKTtcbiAgICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgZGltOyArK2opIHtcbiAgICAgICAgICAgIHNpbWlsYXJpdHlBcnJbaiAtIGkgLSAxXSA9IGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UoZGlzdGFuY2VzW2ldW2pdKTtcbiAgICAgICAgfVxuICAgICAgICBzaW1BcnJbaV0gPSBERy5Db2x1bW4uZnJvbUZsb2F0MzJBcnJheSgnc2ltaWxhcml0eScsIEZsb2F0MzJBcnJheS5mcm9tKHNpbWlsYXJpdHlBcnIpKTtcbiAgICB9XG4gICAgcmV0dXJuIHNpbUFycjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBhZGRDbGlmZnNCb29sZWFuQ29sKGRmLCBpZHMpIHtcbiAgICBjb25zdCBjb2xuYW1lID0gJ2NvbnRhaW5zQ2xpZmYnO1xuICAgIGNvbnN0IGNvbE5hbWVJbmQgPSBkZi5jb2x1bW5zLm5hbWVzKCkuZmlsdGVyKChpdCkgPT4gaXQuaW5jbHVkZXMoY29sbmFtZSkpLmxlbmd0aCArIDE7XG4gICAgY29uc3QgbmV3Q29sTmFtZSA9IGAke2NvbG5hbWV9XyR7Y29sTmFtZUluZH1gO1xuICAgIGRmLmNvbHVtbnMuYWRkTmV3Qm9vbChuZXdDb2xOYW1lKS5pbml0KChpKSA9PiBpZHMuaGFzKGkpKTtcbiAgICByZXR1cm4gbmV3Q29sTmFtZTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVlXTjBhWFpwZEhrdFkyeHBabVp6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lZV04wYVhacGRIa3RZMnhwWm1aekxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096dEJRVUZCTEU5QlFVOHNTMEZCU3l4SlFVRkpMRTFCUVUwc2JVSkJRVzFDTEVOQlFVTTdRVUZETVVNc1QwRkJUeXhMUVVGTExFVkJRVVVzVFVGQlRTeHBRa0ZCYVVJc1EwRkJRenRCUVVOMFF5eFBRVUZQTEV0QlFVc3NSVUZCUlN4TlFVRk5MR2xDUVVGcFFpeERRVUZETzBGQlJYUkRMRTlCUVU4c1JVRkJSU3g1UWtGQmVVSXNSVUZCUlN4TlFVRk5MR3RFUVVGclJDeERRVUZETzBGQlF6ZEdMRTlCUVU4c1JVRkJReXh4UWtGQmNVSXNSVUZCUXl4TlFVRk5MQ3REUVVFclF5eERRVUZCTzBGQmNVTnVSaXhKUVVGSkxFbEJRVWtzUjBGQlJ5eExRVUZMTEVOQlFVTTdRVUZGYWtJc1RVRkJUU3hqUVVGakxFZEJRVWNzUTBGQlF5eFBRVUZQTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1FVRkZNVU1zVFVGQlRTeHpRa0ZCYzBJc1IwRkJSeXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzBGQlJTOURMSGRGUVVGM1JUdEJRVU40UlN4TlFVRk5MRlZCUVdkQ0xHbENRVUZwUWl4RFFVTnVReXhGUVVGblFpeEZRVU5vUWl4TlFVRnBRaXhGUVVOcVFpeFZRVUUwUWl4RlFVTTFRaXhUUVVGdFFpeEZRVU51UWl4WlFVRnZRaXhGUVVOd1FpeFZRVUZ4UWl4RlFVTnlRaXhWUVVGclFpeEZRVU5zUWl4blFrRkJkMElzUlVGRGVFSXNWVUZCYTBJc1JVRkRiRUlzVDBGQlpTeEZRVU5tTEVsQlFTdENMRVZCUXk5Q0xGbEJRVFpGTEVWQlF6ZEZMR0ZCUVN0SUxFVkJReTlJTEZkQlFUUkVMRVZCUXpWRUxHbENRVUZyUlN4RlFVTnNSU3hsUVVGeFFqczdVVUZGZGtJc1RVRkJUU3gzUWtGQmQwSXNSMEZCUnl4TFFVRkxMRU5CUVVNN1VVRkRka01zVFVGQlRTeGpRVUZqTEVkQlFVY3NSVUZCUlN4RFFVRkRPMUZCUlRGQ0xFMUJRVTBzYzBKQlFYTkNMRWRCUVVjc2QwSkJRWGRDTEVOQlFVTXNRMEZCUXl4RFFVRkRMR05CUVdNc1EwRkJReXhEUVVGRExFTkJRVU1zVlVGQlZTeEhRVUZITEVkQlFVY3NRMEZCUXp0UlFVVTFSaXhOUVVGTkxIVkNRVUYxUWl4SFFVRkhMRlZCUVZVc1lVRkJWaXhWUVVGVkxHTkJRVllzVlVGQlZTeEhRVUZKTEUxQlFVMHNRMEZCUXp0UlFVTnlSQ3hOUVVGTkxHdENRVUZyUWl4SFFVRkhMRVZCUVVVc1EwRkJReXhUUVVGVExFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRPMUZCUTNKR0xGbEJRVms3VVVGRFpDeE5RVUZOTEdGQlFXRXNSMEZCUnl4eFFrRkJjVUlzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3gxUWtGQmRVSXNRMEZCUXl4RFFVRkRPMUZCUlhwR0xFMUJRVTBzUlVGQlF5eFJRVUZSTEVWQlFVVXNWMEZCVnl4RlFVRkRMRWRCUVVjc1RVRkJUU3haUVVGWkxFTkJRVU03V1VGRGFrUXNUVUZCVFN4RlFVRkZMR3RDUVVGclFpeERRVUZETEVkQlFVY3NRMEZCUXl4MVFrRkJkVUlzUTBGQlF5eEpRVUZKTEVOQlFVVTdXVUZETjBRc1ZVRkJWU3hGUVVGRkxGVkJRVlU3V1VGRGRFSXNaMEpCUVdkQ0xFVkJRVVVzWjBKQlFXZENPMWxCUTJ4RExHTkJRV01zUlVGQlJTeFRRVUZUTzFsQlEzcENMRTlCUVU4c1JVRkJSU3hsUVVGbE8xTkJRM3BDTEVOQlFVTXNRMEZCUXp0UlFVVklMRXRCUVVzc1RVRkJUU3hIUVVGSExFbEJRVWtzVjBGQlZ5eEZRVUZGTzFsQlF6TkNMRTFCUVUwc1ZVRkJWU3hIUVVGSExFZEJRVWNzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXp0WlFVTm9ReXhoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNSMEZCVnl4RlFVRkZMRVZCUVVVc1EwRkJReXhWUVVGVkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU40UlN4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhSUVVGUkxFVkJRVVVzUjBGQlJ5eERRVUZETEVsQlFVa3NSVUZCUlN4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRE8xTkJRM1JGTzFGQlJVUXNUVUZCVFN4TFFVRkxMRWRCUVVjc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExGRkJRVkVzUTBGQlF5eFJRVUZSTEVWQlFVVXNTMEZCU3l4RlFVRkZMSFZDUVVGMVFpeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMmhJTEUxQlFVMHNSMEZCUnl4SFFVRkhMSFZDUVVGMVFpeERRVUZETEUxQlFVMHNRMEZCUXp0UlFVTXpReXhOUVVGTkxFMUJRVTBzUjBGQlowSXNTMEZCU3l4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVV6UXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hKUVVGSkxHRkJRV0VzUTBGQlF5eE5RVUZOTEV0QlFVc3NRMEZCUXl4SlFVRkpMSE5DUVVGelFpeERRVUZETEZGQlFWRXNRMEZCUXl4blFrRkJaMElzUTBGQlF6dFpRVU01Uml4TlFVRk5MR0ZCUVdFc1EwRkJReXhIUVVGSExFVkJRVVVzZFVKQlFYVkNMRVZCUVVVc1MwRkJTeXhGUVVGRkxFdEJRVXNzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXpzN1dVRkZlRVVzTkVKQlFUUkNMRU5CUVVNc1IwRkJSeXhGUVVGRkxGRkJRVkVzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0UlFVVjBSQ3hOUVVGTkxHdENRVUZyUWl4SFFVRkhMSE5DUVVGelFpeERRVUZETzFGQlJXeEVMRTFCUVUwc1QwRkJUeXhIUVVGaExFVkJRVVVzUTBGQlF6dFJRVU0zUWl4TlFVRk5MRkZCUVZFc1IwRkJZU3hGUVVGRkxFTkJRVU03VVVGRE9VSXNUVUZCVFN4RlFVRkZMRWRCUVdFc1JVRkJSU3hEUVVGRE8xRkJRM2hDTEUxQlFVMHNSVUZCUlN4SFFVRmhMRVZCUVVVc1EwRkJRenRSUVVONFFpeE5RVUZOTEZsQlFWa3NSMEZCUnl4SlFVRkpMRWRCUVVjc1JVRkJWU3hEUVVGRE8xRkJSWFpETEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhGUVVGRk8xbEJRMnBETEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJUdG5Ra0ZEY2tNc1RVRkJUU3hIUVVGSExFZEJRVmNzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUlhKRUxFbEJRVWtzUjBGQlJ5eEpRVUZKTEd0Q1FVRnJRaXhGUVVGRk8yOUNRVU0zUWl4RlFVRkZMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTllMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGRGJrSXNXVUZCV1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dHZRa0ZEY0VJc1dVRkJXU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU0xUWl4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzI5Q1FVTnNRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRM0pGTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNN2QwSkJRMVlzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXpzN2QwSkJSV2hETEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03YVVKQlF6TkNPMkZCUTBZN1UwRkRSanRSUVVWRUxFMUJRVTBzZFVKQlFYVkNMRWRCUVVjc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1MwRkJTeXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU4yUlN4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NkVUpCUVhWQ0xFTkJRVU1zUTBGQlF6dFJRVU55UkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NkVUpCUVhWQ0xFTkJRVU1zUTBGQlF6dFJRVU55UkN4TlFVRk5MR1ZCUVdVc1IwRkJSeXhIUVVGSExFZEJRVU1zUTBGQlF5eFBRVUZQTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkhhRVFzVFVGQlRTeGxRVUZsTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXk5RExFMUJRVTBzWlVGQlpTeEhRVUZITEVsQlFVa3NTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTXZReXhOUVVGTkxGTkJRVk1zUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGZWtNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVTdXVUZEYmtNc1pVRkJaU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVNMVFpeGxRVUZsTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzFsQlF6VkNMR1ZCUVdVc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGNrTXNaVUZCWlN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOeVF5eEpRVUZKTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hSUVVGUkxFVkJRVVU3WjBKQlF6TkNMRWxCUVVrc1ZVRkJWU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhWUVVGVkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenR2UWtGREwwTXNVMEZCVXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenM3YjBKQlJXaERMRk5CUVZNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03WVVGRGJrTTdVMEZEUmp0UlFVVkVMRTFCUVUwc1NVRkJTU3hIUVVGakxFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRkZCUVZFc1JVRkJSU3hSUVVGUkxGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTTdVVUZGYWtrc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRja0lzVFVGQlRTeGhRVUZoTEVkQlFVY3NiVUpCUVcxQ0xFTkJRVU1zUlVGQlJTeEZRVUZGTEZsQlFWa3NRMEZCUXl4RFFVRkRPMUZCUlRWRUxFMUJRVTBzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1dVRkJXU3hEUVVGRExFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTTVReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1lVRkJZU3hEUVVGRkxFTkJRVU1zVDBGQlR5eEhRVUZITEV0QlFVc3NRMEZCUXp0UlFVTjZSQ3hOUVVGTkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zVjBGQlZ5eERRVUZETEVWQlFVVXNSVUZCUlR0WlFVTnNSQ3hYUVVGWExFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTjZRaXhYUVVGWExFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTjZRaXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVsQlFVazdXVUZEWml4TFFVRkxMRVZCUVVVc1ZVRkJWU3hEUVVGRExFbEJRVWs3V1VGRGRFSXNZVUZCWVN4RlFVRkZMRXRCUVVzN1dVRkRjRUlzWVVGQllTeEZRVUZGTEV0QlFVczdXVUZEY0VJc1owSkJRV2RDTEVWQlFVVXNTMEZCU3p0WlFVTjJRaXhwUWtGQmFVSXNSVUZCUlN4TFFVRkxPMWxCUTNoQ0xHRkJRV0VzUlVGQlJTeERRVUZETzFsQlEyaENMR0ZCUVdFc1JVRkJSU3hGUVVGRk8xbEJRMnBDTEV0QlFVc3NSVUZCUlN4WlFVRlpPMU5CUTNCQ0xFTkJRVU1zUTBGQmVVSXNRMEZCUXp0UlFVVTFRaXhOUVVGTkxFMUJRVTBzUjBGQlNTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RlFVRlZMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03VVVGREwwTXNUVUZCVFN4UlFVRlJMRWRCUVVjc1YwRkJWeXhEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRlZCUVZVc1JVRkJSU3hSUVVGUkxFVkJRVVVzVDBGQlR5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVVelJpeE5RVUZOTEdWQlFXVXNSMEZCVVN4RlFVRkZMRU5CUVVNN1VVRkRhRU1zU1VGQlNTeEhRVUZwUWl4RFFVRkRPMUZCUlhSQ0xGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zVTBGQlV5eERRVUZETEVkQlFVY3NSVUZCUlR0WlFVTnVSQ3hOUVVGTkxHRkJRV0VzUjBGQlJ5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1NVRkJTU3hSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRXRCUVVzc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVNeFJ5eE5RVUZOTEVsQlFVa3NSMEZCUnl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0VzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTTdXVUZETTBjc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eGhRVUZoTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU5zUlN4RlFVRkZMRU5CUVVNc1UwRkJVeXhEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRaUVVNelJDeEZRVUZGTEVOQlFVTXNVMEZCVXl4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVUZGTEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTTdXVUZETVVRc1YwRkJWeXhEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzFsQlEzcENMRWxCUVVrc1NVRkJTVHRuUWtGRFRpeFZRVUZWTEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVVc2JVSkJRVzFDTEVOQlFVTXNSVUZCUlN4RlFVRkZMRWRCUVVjc1JVRkJSU3hsUVVGbExFVkJRVVVzU1VGQlNTeEZRVUZGTEUxQlFVMHNSVUZCUlN4VlFVRlZMRVZCUVVVc1VVRkJVU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNUVUZCVFN4RlFVRkZMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUlVGQlJTeHBRa0ZCYVVJc1EwRkJReXhEUVVGQkxFTkJRVUVzUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUTJoTExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlJVZ3NVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGTkxFVkJRVVVzUlVGQlJUdFpRVU4yUkN4SlFVRkpMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zWlVGQlpTeExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkZPMmRDUVVNelF5eE5RVUZOTEVsQlFVa3NSMEZCUnl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNN1owSkJRemxFTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETzJkQ1FVTXZRaXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZGQlFWRTdiMEpCUTJoQ0xFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8yRkJRemxDTzFsQlEwUXNVVUZCVVN4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlR0blFrRkRNMElzU1VGQlNTeERRVUZETEVOQlFVTXNVVUZCVVR0dlFrRkRXaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdXVUZEY2tRc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRFNDeFhRVUZYTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNN1VVRkRNMElzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZGU0N4TlFVRk5MRmRCUVZjc1IwRkJSeXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRmVrVXNWMEZCVnl4RFFVRkRMRmRCUVZjc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eEZRVUZGTzFsQlEzSkRMRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU03VVVGRFpDeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVVklMRTFCUVUwc1kwRkJZeXhIUVVGSExFVkJRVVVzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExGRkJRVkVzVTBGQlV5eEZRVUZGTEVkQlFVY3NSVUZCUlR0WlFVTXpSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFbEJRVWtzUlVGQlJTeE5RVUZOTEVWQlFVVXNTVUZCU1N4RlFVRkZMR2xDUVVGcFFpeEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTNSR0xFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEwZ3NaVUZCWlN4RFFVRkRMR05CUVdNc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZGZUVNc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl4RlFVRkZMRU5CUVVNc1YwRkJWeXhEUVVGRExHdENRVUZyUWl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRM0pGTEd0Q1FVRnJRaXhEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZGTEVWQlFVVTdXVUZETDBJc2EwSkJRV3RDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zUjBGQlJ5eERRVUZETEdGQlFXRXNRMEZCUXl4TFFVRkxMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU16Unl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOSUxHVkJRV1VzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUldwRUxFbEJRVWtzUzBGQmNVSXNRMEZCUXp0UlFVTXhRaXhOUVVGTkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1YwRkJWeXhGUVVGRkxGVkJRVlVzUzBGQmFVSTdXVUZET1VRc1dVRkJXU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFsQlEzQkNMRXRCUVVzc1IwRkJSeXhOUVVGTkxFTkJRVU1zVlVGQlZTeERRVUZETzJkQ1FVTjRRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eHBRa0ZCYVVJc1EwRkJReXhMUVVGTExFVkJRVVVzVFVGQlRTeEZRVUZGTEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRuUWtGRE9VUXNTVUZCU1N4SlFVRkpMRWxCUVVrc1JVRkJSU3hEUVVGRExHVkJRV1VzUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlR0dlFrRkRia01zUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExFVkJRVU1zVlVGQlZTeEZRVUZGTEdWQlFXVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRTFCUVUwc1JVRkJSU3hYUVVGWExFVkJRVVVzVlVGQlZTeEZRVUZETEVOQlFVTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0cFFrRkRNVW83V1VGRFNDeERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkRWaXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVVZJTEUxQlFVMHNRMEZCUXl4blFrRkJaMElzUTBGQlF5eFhRVUZYTEVWQlFVVXNWVUZCVXl4TFFVRnBRanRaUVVNM1JDeE5RVUZOTEVsQlFVa3NSMEZCUnl4cFFrRkJhVUlzUTBGQlF5eExRVUZMTEVWQlFVVXNUVUZCVFN4RlFVRkZMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFpRVU01UkN4SlFVRkpMRWxCUVVrc1NVRkJTU3hGUVVGRkxFTkJRVU1zWlVGQlpTeExRVUZMTEVOQlFVTXNRMEZCUXl4RlFVRkZPMmRDUVVOeVF5eEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVN2IwSkJRMnBDTEVsQlFVa3NRMEZCUXl4UlFVRlJMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETzI5Q1FVTXZRaXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUlVGQlJTeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN2IwSkJSWFpFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1VVRkJVVHQzUWtGRGFFSXNSVUZCUlN4RFFVRkRMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdiMEpCUlRkQ0xGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVU3ZDBKQlF6TkNMRWxCUVVrc1EwRkJReXhEUVVGRExGRkJRVkU3TkVKQlExb3NRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU55UkN4RFFVRkRMRU5CUVVNc1EwRkJRenRwUWtGRFNqdHhRa0ZCVFR0dlFrRkRUQ3hKUVVGSkxGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTXNZVUZCWVN4TFFVRkxMRWxCUVVrc1EwRkJReXhGUVVGRkxFVkJRVVU3ZDBKQlF6bERMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zWVVGQllTeEhRVUZITEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNN2QwSkJRM3BETEVWQlFVVXNRMEZCUXl4aFFVRmhMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0M1FrRkRhRU1zUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dDNRa0ZEYWtRc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN2NVSkJRMnBFTzJsQ1FVTkdPMmRDUVVORUxFMUJRVTBzUzBGQlN5eEhRVUZITEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1kwRkJZeXhEUVVGRExGZEJRVmNzUTBGQlF5eGhRVUZoTEVWQlFVVXNWMEZCVnl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRE8yZENRVU5vUnl4WFFVRlhMRU5CUVVNc1dVRkJXU3hEUVVGRExFOUJRVThzUlVGQlJTeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzJGQlF6TkVPMUZCUTBnc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRlNDeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMSE5DUVVGelFpeERRVUZETzJGQlF5OUNMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVTBzUlVGQlJTeEZRVUZGTzFsQlEzQkNMRTFCUVUwc1MwRkJTeXhIUVVGSExGZEJRVmNzUTBGQlF5eEZRVUZGTEVWQlF6RkNMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeGxRVUZsTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1dVRkROVVVzU1VGQlNTeEpRVUZKTEVWQlFVVTdaMEpCUTFJc1RVRkJUU3hYUVVGWExFZEJRVWNzUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1lVRkJZU3hEUVVGRExFTkJRVU03WjBKQlF6RkVMRlZCUVZVc1EwRkJReXhIUVVGRkxFVkJRVVU3YjBKQlEySXNUVUZCVFN4RlFVRkRMRkZCUVZFc1JVRkJSU3hUUVVGVExFVkJRVVVzVDBGQlR5eEZRVUZGTEZWQlFWVXNSVUZCUXl4SFFVRkhMR3RDUVVGclFpeERRVU51UlN4RlFVRkZMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUlVGRGFrSXNSVUZCUlN4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFVkJRMnhDTEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlEyNUVMRVZCUVVVc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUTI1RUxFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeFhRVUZYTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRMjVFTEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlEzQkVMRU5CUVVFN2IwSkJRMFFzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUTJRc1QwRkJUeXhGUVVOUUxGTkJRVk1zUlVGRFZDeFZRVUZWTEVOQlFVTXNRMEZCUXp0blFrRkRhRUlzUTBGQlF5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMmRDUVVOU0xFbEJRVWtzUjBGQlJ5eExRVUZMTEVOQlFVTTdZVUZEWkR0WlFVTkVMR3RDUVVGclFpeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eGhRVUZoTEVOQlFVTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRE0wY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZUQ3hGUVVGRkxFTkJRVU1zVjBGQlZ5eERRVUZETEdsQ1FVRnBRaXhGUVVGRkxGRkJRVkVzUlVGQlJTeHJRa0ZCYTBJc1EwRkJReXhEUVVGRE8xRkJRMmhGTEVkQlFVY3NSMEZCUnl4clFrRkJhMElzUlVGQlJTeERRVUZETzFGQlF6TkNMRTlCUVU4c1JVRkJSU3hEUVVGRE8wbEJRMW9zUTBGQlF6dERRVUZCTzBGQlJVUXNVMEZCVXl4bFFVRmxMRU5CUVVNc1JVRkJaU3hGUVVGRkxFVkJRWGRDTEVWQlFVVXNVMEZCYVVJN1NVRkRia1lzUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRWRCUVVjc1ZVRkJWU3hEUVVGRE8wbEJReTlDTEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhIUVVGSExFZEJRVWNzVTBGQlV5eEpRVUZKTEVOQlFVTTdTVUZEYUVNc1JVRkJSU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVkQlFVY3NUVUZCVFN4RFFVRkRPMGxCUTNoQ0xFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8wRkJRM0pDTEVOQlFVTTdRVUZGUkN4VFFVRlRMR3RDUVVGclFqdEpRVU42UWl4TlFVRk5MRWRCUVVjc1IwRkJSeXhGUVVGRkxFTkJRVU1zVTBGQlV5eEZRVUZGTEVOQlFVTTdTVUZETTBJc1RVRkJUU3hQUVVGUExFZEJRVWNzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRKUVVOb1F5eFBRVUZQTEVOQlFVTXNVMEZCVXl4SFFVRkhMRzlEUVVGdlF5eERRVUZETzBsQlEzcEVMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZET1VRc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eGxRVUZsTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5dzJRa0ZCTmtJc1EwRkJReXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzBsQlEzQkdMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eEhRVUZITEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNN1NVRkRlRUlzVDBGQlR5eEhRVUZITEVOQlFVTTdRVUZEWWl4RFFVRkRPMEZCUlVRc1UwRkJVeXh0UWtGQmJVSXNRMEZETVVJc1JVRkJaMElzUlVGRGFFSXNSMEZCYVVJc1JVRkRha0lzVlVGQlpTeEZRVU5tTEVsQlFWY3NSVUZEV0N4TlFVRnBRaXhGUVVOcVFpeFZRVUZ4UWl4RlFVTnlRaXhKUVVGWkxFVkJRMW9zWVVGQk9FUTdTVUZET1VRc1RVRkJUU3hMUVVGTExFZEJRVWNzUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJRenRKUVVNelF5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU55UWl4TlFVRk5MRmxCUVZrc1IwRkJSeXhoUVVGaExFTkJRVU1zUlVGQlF5eFZRVUZWTEVWQlFVVXNWVUZCVlN4RlFVRkZMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4TlFVRk5MRVZCUVVVc1RVRkJUU3hGUVVGRkxGZEJRVmNzUlVGQlJTeFZRVUZWTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1JVRkJReXhEUVVGRExFTkJRVU03U1VGRGRFa3NTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTTdTVUZEYUVNc1ZVRkJWU3hEUVVGRExFZEJRVWNzUlVGQlJUdFJRVU5rTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhIUVVGSExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTTdTVUZETVVJc1EwRkJReXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzBGQlExWXNRMEZCUXp0QlFVVkVMRk5CUVZNc2EwSkJRV3RDTEVOQlFVTXNSVUZCVlN4RlFVRkZMRVZCUVZVc1JVRkJSU3hGUVVGVkxFVkJRVVVzUlVGQlZTeEZRVUZGTEVWQlFWVXNSVUZCUlN4RlFVRlZPMGxCUTJoSExFMUJRVTBzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETzBsQlF6ZENMRTFCUVUwc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRemRDTEUxQlFVMHNUVUZCVFN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRGRrSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF6dEpRVU4yUWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFVMHNSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRKUVVOMlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1IwRkJSeXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdTVUZETlVJc1RVRkJUU3hGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVkQlFVY3NTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRelZDTEUxQlFVMHNTVUZCU1N4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8wbEJReTlDTEUxQlFVMHNSMEZCUnl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8wbEJRemxDTEUxQlFVMHNVVUZCVVN4SFFVRkhMRU5CUVVNc1NVRkJTU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRekZETEUxQlFVMHNVMEZCVXl4SFFVRkhMRkZCUVZFc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRGFFTXNUVUZCVFN4UFFVRlBMRWRCUVVjc1EwRkJReXhIUVVGSExFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGVFTXNUVUZCVFN4VlFVRlZMRWRCUVVjc1QwRkJUeXhIUVVGSExFVkJRVVVzUTBGQlF6dEpRVU5vUXl4UFFVRlBMRVZCUVVNc1VVRkJVU3hGUVVGRkxGRkJRVkVzUlVGQlJTeFRRVUZUTEVWQlFVVXNVMEZCVXl4RlFVRkZMRTlCUVU4c1JVRkJSU3hQUVVGUExFVkJRVVVzVlVGQlZTeEZRVUZGTEZWQlFWVXNSVUZCUXl4RFFVRkRPMEZCUXpsR0xFTkJRVU03UVVGRlJDeFRRVUZUTEdsQ1FVRnBRaXhEUVVGRExFdEJRVlVzUlVGQlJTeE5RVUZYTEVWQlFVVXNTMEZCWXp0SlFVTm9SU3hOUVVGTkxFbEJRVWtzUjBGQlJ5eE5RVUZOTEVOQlFVTXNjVUpCUVhGQ0xFVkJRVVVzUTBGQlF6dEpRVU0xUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhMUVVGTExFTkJRVU1zVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNN1NVRkRjRU1zVFVGQlRTeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETzBsQlEyNURMRWxCUVVrc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF6dEpRVU4yUWl4SlFVRkpMRTlCUVU4c1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGFFSXNTMEZCU3l4TlFVRk5MRWxCUVVrc1NVRkJTU3hMUVVGTExFVkJRVVU3VVVGRGVFSXNUVUZCVFN4SlFVRkpMRWRCUTFJc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUTJwRUxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEzWkhMRWxCUVVrc1EwRkJReXhEUVVGRExFOUJRVThzU1VGQlNTeEpRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRkRMRWxCUVVrc1NVRkJTU3hIUVVGSExFOUJRVThzUlVGQlJUdFpRVU0xUXl4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRE8xbEJRMllzVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXp0VFFVTndRanRMUVVOR08wbEJRMFFzVDBGQlR5eFhRVUZYTEVOQlFVTTdRVUZEY2tJc1EwRkJRenRCUVVWRUxGTkJRVk1zVjBGQlZ5eERRVUZETEVWQlFYZENMRVZCUXpORExFdEJRV0VzUlVGQlJTeExRVUZoTEVWQlFVVXNVVUZCZDBJc1JVRkJSU3hSUVVGclFpeEZRVUZGTEdWQlFYVkNMRVZCUVVVc1QwRkJaVHRKUVVOd1NDeE5RVUZOTEV0QlFVc3NSMEZCUnl4UlFVRlJMRU5CUVVNc1MwRkJTeXhEUVVGRE8wbEJRemRDTEUxQlFVMHNUVUZCVFN4SFFVRkpMRVZCUVVVc1EwRkJReXhQUVVGUExFVkJRVGhDTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1NVRkRia1VzVFVGQlRTeEhRVUZITEVkQlFVY3NUVUZCVFN4RFFVRkRMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVFpDTEVOQlFVTTdTVUZEYUVVc1RVRkJUU3hEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEZOQlFWVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlF6bERMRTFCUVUwc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eFRRVUZWTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEpRVU01UXl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NTMEZCU3l4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFJRVU55UXl4TlFVRk5MRk5CUVZNc1IwRkJSeXhGUVVGRkxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRja1lzVFVGQlRTeFBRVUZQTEVkQlFVY3NSVUZCUlN4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEyNUdMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJReXhGUVVGRkxGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjRReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRjRU1zVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4TlFVRk5MRVZCUVVVc1EwRkJRenRSUVVNeFFpeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRekZETEUxQlFVMHNTMEZCU3l4SFFVRkhMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETzFGQlF6RkVMRTFCUVUwc1QwRkJUeXhIUVVGSExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4SFFVRkRMR1ZCUVdVc1EwRkJRenRSUVVNM1JpeEhRVUZITEVOQlFVTXNWMEZCVnl4SFFVRkhMRkZCUVZFc1MwRkJTeXhKUVVGSkxFOUJRVThzUjBGQlJ5eERRVUZETzFGQlF6bERMRWRCUVVjc1EwRkJReXhUUVVGVExFZEJRVWNzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1MwRkJTeXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEZGtVc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTXhReXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMHRCUTJ4Q08wbEJRMFFzVDBGQlR5eExRVUZMTEVOQlFVTTdRVUZEWml4RFFVRkRPMEZCUlVRc1UwRkJVeXhYUVVGWExFTkJRMnhDTEVWQlFWa3NSVUZEV2l4RlFVRlpMRVZCUTFvc1IwRkJZeXhGUVVOa0xGVkJRWEZDTEVWQlEzSkNMRkZCUVd0Q0xFVkJRMnhDTEU5QlFXbENMRVZCUTJwQ0xFOUJRV1VzUlVGRFppeEpRVUVyUWp0SlFVTXZRaXhOUVVGTkxFdEJRVXNzUjBGQldTeEpRVUZKTEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUTNaRUxFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMUZCUTJ4RExFMUJRVTBzU1VGQlNTeEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOdVFpeE5RVUZOTEVsQlFVa3NSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGJrSXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNSVUZCUlN4UlFVRlJMRVZCUVVVc1MwRkJTeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJReXhEUVVGRExFTkJRVU03UzBGRGVrVTdTVUZEUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhGUVVGRkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRGJFUXNZMEZCWXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeEhRVUZITEVWQlFVVXNSVUZCUlR0UlFVTnFReXhQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEZsQlFWa3NRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZUTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYkVZc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkZMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRGFFTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVVVzUTBGQlF5eFBRVUZQTEVkQlFVY3NUMEZCVHl4RFFVRkRPMGxCUTNKRExFTkJRVU1zUTBGQlF5eERRVUZCTzBsQlEwWXNUMEZCVHl4RFFVRkRMRTlCUVU4c1EwRkJReXhYUVVGWExFTkJRVU1zVlVGQlZTeERRVUZETzFOQlEzQkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVk1zUlVGQlJTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEZEVjc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlV5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNdlJDeFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRmRCUVZjc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRlRMRVZCUVVVc1JVRkJSU3hEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUTNKRkxFOUJRVThzUTBGQlF5eFBRVUZQTEVOQlFVTXNWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFWTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEYmtVc1QwRkJUeXhGUVVGRExFdEJRVXNzUlVGQlJTeFBRVUZQTEVWQlFVTXNRMEZCUXp0QlFVTXhRaXhEUVVGRE8wRkJSVVFzVTBGQlV5eFBRVUZQTEVOQlFVTXNSMEZCWXl4RlFVRkZMRWxCUVN0Q08wbEJRemxFTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZPMUZCUXpsQ0xFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlF6VkNMRU5CUVVNc1EwRkJReXhEUVVGQk8wRkJRMG9zUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCWjBJc2IwSkJRVzlDTEVOQlEzUkRMRWRCUVZjc1JVRkRXQ3hOUVVGcFFpeEZRVU5xUWl4TFFVRnRRaXhGUVVOdVFpeE5RVUZ0UWl4RlFVTnVRaXhQUVVGdFJUczdVVUZIY2tVc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVTdXVUZEYWtNc1RVRkJUU3hIUVVGSExFZEJRVWNzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVNeFFpeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMWxCUTJwRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRTFCUVUwc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkZMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVVVzUTBGQlF6dFRRVU4wUkR0UlFVTkVMRTlCUVU4c1RVRkJUU3hEUVVGRE8wbEJRMmhDTEVOQlFVTTdRMEZCUVR0QlFVZEVMRTFCUVUwc1ZVRkJWU3cwUWtGQk5FSXNRMEZCUXl4SFFVRlhMRVZCUVVVc1UwRkJhVUlzUlVGQlJTeE5RVUZ0UWp0SlFVVTVSaXhMUVVGTExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZCUlN4RFFVRkRMRWRCUVVjc1IwRkJSeXhIUVVGSExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlR0UlFVTm9ReXhOUVVGTkxHRkJRV0VzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4SFFVRkhMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOeVJDeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1JVRkJSVHRaUVVOb1F5eGhRVUZoTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eDVRa0ZCZVVJc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRUUVVOMlJUdFJRVU5FTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExGbEJRVmtzUlVGQlJTeFpRVUZaTEVOQlFVTXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFTkJRVU03UzBGRGVFWTdTVUZEUkN4UFFVRlBMRTFCUVUwc1EwRkJRenRCUVVOb1FpeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMRzFDUVVGdFFpeERRVUZETEVWQlFXZENMRVZCUVVVc1IwRkJaMEk3U1VGRGNFVXNUVUZCVFN4UFFVRlBMRWRCUVVjc1pVRkJaU3hEUVVGRE8wbEJRMmhETEUxQlFVMHNWVUZCVlN4SFFVRkhMRVZCUVVVc1EwRkJReXhQUVVGUExFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1JVRkJWU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVTTVSaXhOUVVGTkxGVkJRVlVzUjBGQlJ5eEhRVUZITEU5QlFVOHNTVUZCU1N4VlFVRlZMRVZCUVVVc1EwRkJRenRKUVVNNVF5eEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVNeFJDeFBRVUZQTEZWQlFWVXNRMEZCUXp0QlFVTndRaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElDb2dZWE1nWjNKdmF5Qm1jbTl0SUNka1lYUmhaM0p2YXkxaGNHa3ZaM0p2YXljN1hHNXBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1YVcxd2IzSjBJQ29nWVhNZ2RXa2dabkp2YlNBblpHRjBZV2R5YjJzdFlYQnBMM1ZwSnp0Y2JtbHRjRzl5ZENCN0lFMWhkSEpwZUNCOUlHWnliMjBnSjBCa1lYUmhaM0p2YXkxc2FXSnlZWEpwWlhNdmRYUnBiSE12YzNKakwzUjVjR1V0WkdWamJHRnlZWFJwYjI1ekp6dGNibWx0Y0c5eWRDQjdJR2RsZEZOcGJXbHNZWEpwZEhsR2NtOXRSR2x6ZEdGdVkyVWdmU0JtY205dElDZEFaR0YwWVdkeWIyc3RiR2xpY21GeWFXVnpMM1YwYVd4ekwzTnlZeTl6YVcxcGJHRnlhWFI1TFcxbGRISnBZM01uTzF4dWFXMXdiM0owSUh0eVpXMXZkbVZGYlhCMGVWTjBjbWx1WjFKdmQzTjlJR1p5YjIwZ0owQmtZWFJoWjNKdmF5MXNhV0p5WVhKcFpYTXZkWFJwYkhNdmMzSmpMMlJoZEdGbWNtRnRaUzExZEdsc2N5ZGNibHh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JKVEdsdVpTQjdYRzRnSUdsa09pQnVkVzFpWlhJN1hHNGdJRzF2YkhNNklHNTFiV0psY2x0ZE8xeHVJQ0J6Wld4bFkzUmxaRG9nWW05dmJHVmhianRjYmlBZ1lUb2diblZ0WW1WeVcxMDdJQzh2SUZ0NExDQjVYVnh1SUNCaU9pQnVkVzFpWlhKYlhUc2dMeThnVzNnc0lIbGRYRzU5WEc1Y2JtbHVkR1Z5Wm1GalpTQkpVbVZ1WkdWeVpXUk1hVzVsY3lCN1hHNGdJR3hwYm1Wek9pQkpUR2x1WlZ0ZE8xeHVJQ0JzYVc1bGMwUm1PaUJFUnk1RVlYUmhSbkpoYldVN1hHNTlYRzVjYm1WNGNHOXlkQ0JwYm5SbGNtWmhZMlVnU1ZObGNYVmxibU5sVTNCaFkyVlFZWEpoYlhNZ2UxeHVJQ0J6WlhGRGIydzZJRVJITGtOdmJIVnRiaXhjYmlBZ2JXVjBhRzlrVG1GdFpUb2djM1J5YVc1bkxGeHVJQ0J6YVcxcGJHRnlhWFI1VFdWMGNtbGpPaUJ6ZEhKcGJtY3NYRzRnSUdWdFltVmtRWGhsYzA1aGJXVnpPaUJ6ZEhKcGJtZGJYU3hjYmlBZ2IzQjBhVzl1Y3o4NklHRnVlVnh1ZlZ4dVhHNWxlSEJ2Y25RZ2FXNTBaWEptWVdObElFbFRaWEYxWlc1alpWTndZV05sVW1WemRXeDBJSHRjYmlBZ1pHbHpkR0Z1WTJVNklFMWhkSEpwZUR0Y2JpQWdZMjl2Y21ScGJtRjBaWE02SUVSSExrTnZiSFZ0Ymt4cGMzUTdYRzU5WEc1Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1NWUnZiMngwYVhCQmJtUlFZVzVsYkZCaGNtRnRjeUI3WEc0Z0lHTmhjMmhsWkVSaGRHRTZJR0Z1ZVN4Y2JpQWdiR2x1WlRvZ1NVeHBibVVzWEc0Z0lHUm1PaUJFUnk1RVlYUmhSbkpoYldVc1hHNGdJSE5sY1VOdmJEb2dSRWN1UTI5c2RXMXVMRnh1SUNCaFkzUnBkbWwwZVVOdmJEb2dSRWN1UTI5c2RXMXVMRnh1SUNCellXeHBQem9nYm5WdFltVnlYRzU5WEc1Y2JteGxkQ0I2YjI5dElEMGdabUZzYzJVN1hHNWNibU52Ym5OMElHMXZiRU52YkhWdGJrNWhiV1Z6SUQwZ1d5Y3hYM05sY1Njc0lDY3lYM05sY1NkZE8xeHVYRzVqYjI1emRDQnViMjVPYjNKdFlXeHBlbVZrUkdsemRHRnVZMlZ6SUQwZ1d5ZE1aWFpsYm5Ob2RHVnBiaWRkTzF4dVhHNHZMeUJUWldGeVkyaGxjeUJtYjNJZ1lXTjBhWFpwZEhrZ1kyeHBabVp6SUdsdUlHRWdZMmhsYldsallXd2daR0YwWVhObGRDQmllU0J6Wld4bFkzUmxaQ0JqZFhSdlptWmNibVY0Y0c5eWRDQmhjM2x1WXlCbWRXNWpkR2x2YmlCblpYUkJZM1JwZG1sMGVVTnNhV1ptY3loY2JpQWdJQ0JrWmpvZ1JFY3VSR0YwWVVaeVlXMWxMQ0JjYmlBZ0lDQnpaWEZEYjJ3NklFUkhMa052YkhWdGJpeGNiaUFnSUNCbGJtTnZaR1ZrUTI5c09pQkVSeTVEYjJ4MWJXNGdmQ0J1ZFd4c0xGeHVJQ0FnSUdGNFpYTk9ZVzFsY3pvZ2MzUnlhVzVuVzEwc1hHNGdJQ0FnYzJOaGRIUmxjbFJwZEd4bE9pQnpkSEpwYm1jc1hHNGdJQ0FnWVdOMGFYWnBkR2xsY3pvZ1JFY3VRMjlzZFcxdUxDQmNiaUFnSUNCemFXMXBiR0Z5YVhSNU9pQnVkVzFpWlhJc1hHNGdJQ0FnYzJsdGFXeGhjbWwwZVUxbGRISnBZem9nYzNSeWFXNW5MQ0JjYmlBZ0lDQnRaWFJvYjJST1lXMWxPaUJ6ZEhKcGJtY3NJRnh1SUNBZ0lITmxiVlI1Y0dVNklITjBjbWx1Wnl4Y2JpQWdJQ0IwWVdkek9pQjdXMmx1WkdWNE9pQnpkSEpwYm1kZE9pQnpkSEpwYm1kOUxGeHVJQ0FnSUhObGNWTndZV05sUm5WdVl6b2dLSEJoY21GdGN6b2dTVk5sY1hWbGJtTmxVM0JoWTJWUVlYSmhiWE1wSUQwK0lGQnliMjFwYzJVOFNWTmxjWFZsYm1ObFUzQmhZMlZTWlhOMWJIUStMRnh1SUNBZ0lITnBiVTFoZEhKcGVFWjFibU02SUNoa2FXMDZJRzUxYldKbGNpd2djMlZ4UTI5c09pQkVSeTVEYjJ4MWJXNHNJR1JtT2lCRVJ5NUVZWFJoUm5KaGJXVXNJR052YkU1aGJXVTZJSE4wY21sdVp5d2djMmx0UVhKeU9pQkVSeTVEYjJ4MWJXNWJYU2tnUFQ0Z1VISnZiV2x6WlR4RVJ5NURiMngxYlc1YlhUNHNYRzRnSUNBZ2RHOXZiSFJwY0VaMWJtTTZJQ2h3WVhKaGJYTTZJRWxVYjI5c2RHbHdRVzVrVUdGdVpXeFFZWEpoYlhNcElEMCtJRWhVVFV4RmJHVnRaVzUwTEZ4dUlDQWdJSEJ5YjNCbGNuUjVVR0Z1Wld4R2RXNWpPaUFvY0dGeVlXMXpPaUJKVkc5dmJIUnBjRUZ1WkZCaGJtVnNVR0Z5WVcxektTQTlQaUJJVkUxTVJXeGxiV1Z1ZEN4Y2JpQWdJQ0J6WlhGVGNHRmpaVTl3ZEdsdmJuTS9PaUJoYm5rcElEb2dVSEp2YldselpUeEVSeTVXYVdWM1pYSStJSHRjYmx4dUlDQmpiMjV6ZENCaGRYUnZiV0YwYVdOVGFXMXBiR0Z5YVhSNVRHbHRhWFFnUFNCbVlXeHpaVHRjYmlBZ1kyOXVjM1FnVFVsT1gxTkpUVWxNUVZKSlZGa2dQU0E0TUR0Y2JseHVJQ0JqYjI1emRDQnBibWwwYVdGc1UybHRhV3hoY21sMGVVeHBiV2wwSUQwZ1lYVjBiMjFoZEdsalUybHRhV3hoY21sMGVVeHBiV2wwSUQ4Z1RVbE9YMU5KVFVsTVFWSkpWRmtnT2lCemFXMXBiR0Z5YVhSNUlDOGdNVEF3TzF4dVhHNGdJR052Ym5OMElHUnBiV1Z1YzJsdmJtRnNhWFI1VW1Wa2RXTmxRMjlzSUQwZ1pXNWpiMlJsWkVOdmJDQS9QeUJ6WlhGRGIydzdYRzRnSUdOdmJuTjBJSGRwZEdodmRYUkZiWEIwZVZaaGJIVmxjeUE5SUVSSExrUmhkR0ZHY21GdFpTNW1jbTl0UTI5c2RXMXVjeWhiWkdsdFpXNXphVzl1WVd4cGRIbFNaV1IxWTJWRGIyeGRLUzVqYkc5dVpTZ3BPMXh1SUNBZ0lDOHZRSFJ6TFdsbmJtOXlaVnh1SUNCamIyNXpkQ0JsYlhCMGVWWmhiSE5KWkhoeklEMGdjbVZ0YjNabFJXMXdkSGxUZEhKcGJtZFNiM2R6S0hkcGRHaHZkWFJGYlhCMGVWWmhiSFZsY3l3Z1pHbHRaVzV6YVc5dVlXeHBkSGxTWldSMVkyVkRiMndwTzF4dVhHNGdJR052Ym5OMElIdGthWE4wWVc1alpTd2dZMjl2Y21ScGJtRjBaWE45SUQwZ1lYZGhhWFFnYzJWeFUzQmhZMlZHZFc1aktIdGNiaUFnSUNCelpYRkRiMnc2SUhkcGRHaHZkWFJGYlhCMGVWWmhiSFZsY3k1amIyd29aR2x0Wlc1emFXOXVZV3hwZEhsU1pXUjFZMlZEYjJ3dWJtRnRaU2toTEZ4dUlDQWdJRzFsZEdodlpFNWhiV1U2SUcxbGRHaHZaRTVoYldVc1hHNGdJQ0FnYzJsdGFXeGhjbWwwZVUxbGRISnBZem9nYzJsdGFXeGhjbWwwZVUxbGRISnBZeXhjYmlBZ0lDQmxiV0psWkVGNFpYTk9ZVzFsY3pvZ1lYaGxjMDVoYldWekxGeHVJQ0FnSUc5d2RHbHZibk02SUhObGNWTndZV05sVDNCMGFXOXVjMXh1SUNCOUtUdGNibHh1SUNCbWIzSWdLR052Ym5OMElHTnZiQ0J2WmlCamIyOXlaR2x1WVhSbGN5a2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2JHbHpkRlpoYkhWbGN5QTlJR052YkM1MGIweHBjM1FvS1R0Y2JpQWdJQ0FnSUdWdGNIUjVWbUZzYzBsa2VITXVabTl5UldGamFDZ29hVzVrT2lCdWRXMWlaWElwSUQwK0lHeHBjM1JXWVd4MVpYTXVjM0JzYVdObEtHbHVaQ3dnTUN3Z2JuVnNiQ2twTzF4dUlDQWdJQ0FnWkdZdVkyOXNkVzF1Y3k1aFpHUW9SRWN1UTI5c2RXMXVMbVp5YjIxTWFYTjBLQ2RrYjNWaWJHVW5MQ0JqYjJ3dWJtRnRaU3dnYkdsemRGWmhiSFZsY3lrcE8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ1pHWlRaWEVnUFNCRVJ5NUVZWFJoUm5KaGJXVXVabkp2YlVOdmJIVnRibk1vVzBSSExrTnZiSFZ0Ymk1bWNtOXRUR2x6ZENnbmMzUnlhVzVuSnl3Z0ozTmxjU2NzSUdScGJXVnVjMmx2Ym1Gc2FYUjVVbVZrZFdObFEyOXNMblJ2VEdsemRDZ3BLVjBwTzF4dUlDQmpiMjV6ZENCa2FXMGdQU0JrYVcxbGJuTnBiMjVoYkdsMGVWSmxaSFZqWlVOdmJDNXNaVzVuZEdnN1hHNGdJR052Ym5OMElITnBiVUZ5Y2pvZ1JFY3VRMjlzZFcxdVcxMGdQU0JCY25KaGVTaGthVzBnTFNBeEtUdGNibHh1SUNCcFppQW9JV1JwYzNSaGJtTmxJSHg4SUdWdGNIUjVWbUZzYzBsa2VITXViR1Z1WjNSb0lDRTlQU0F3SUh4OElHNXZiazV2Y20xaGJHbDZaV1JFYVhOMFlXNWpaWE11YVc1amJIVmtaWE1vYzJsdGFXeGhjbWwwZVUxbGRISnBZeWtwWEc0Z0lDQWdZWGRoYVhRZ2MybHRUV0YwY21sNFJuVnVZeWhrYVcwc0lHUnBiV1Z1YzJsdmJtRnNhWFI1VW1Wa2RXTmxRMjlzTENCa1psTmxjU3dnSjNObGNTY3NJSE5wYlVGeWNpazdYRzRnSUdWc2MyVmNiaUFnSUNCblpYUlRhVzFwYkdGeWFYUnBaWE5HY205dFJHbHpkR0Z1WTJWektHUnBiU3dnWkdsemRHRnVZMlVzSUhOcGJVRnljaWs3WEc1Y2JpQWdZMjl1YzNRZ2IzQjBVMmx0YVd4aGNtbDBlVXhwYldsMElEMGdhVzVwZEdsaGJGTnBiV2xzWVhKcGRIbE1hVzFwZER0Y2JseHVJQ0JqYjI1emRDQnphVzFXWVd4ek9pQnVkVzFpWlhKYlhTQTlJRnRkTzF4dUlDQmpiMjV6ZENCellXeHBWbUZzY3pvZ2JuVnRZbVZ5VzEwZ1BTQmJYVHRjYmlBZ1kyOXVjM1FnYmpFNklHNTFiV0psY2x0ZElEMGdXMTA3WEc0Z0lHTnZibk4wSUc0eU9pQnVkVzFpWlhKYlhTQTlJRnRkTzF4dUlDQmpiMjV6ZENCamJHbG1abk5OYjJ4SlpITWdQU0J1WlhjZ1UyVjBQRzUxYldKbGNqNG9LVHRjYmx4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQWhQU0JrYVcwZ0xTQXhPeUFySzJrcElIdGNiaUFnSUNCbWIzSWdLR3hsZENCcUlEMGdNRHNnYWlBaFBTQmthVzBnTFNBeElDMGdhVHNnS3l0cUtTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCemFXMDZJRzUxYldKbGNpQTlJSE5wYlVGeWNsdHBYU0EvSUhOcGJVRnljbHRwWFM1blpYUW9haWtnT2lBd08xeHVYRzRnSUNBZ0lDQnBaaUFvYzJsdElENDlJRzl3ZEZOcGJXbHNZWEpwZEhsTWFXMXBkQ2tnZTF4dUlDQWdJQ0FnSUNCdU1TNXdkWE5vS0drcE8xeHVJQ0FnSUNBZ0lDQnVNaTV3ZFhOb0tHa2dLeUJxSUNzZ01TazdYRzRnSUNBZ0lDQWdJR05zYVdabWMwMXZiRWxrY3k1aFpHUW9hU2s3WEc0Z0lDQWdJQ0FnSUdOc2FXWm1jMDF2YkVsa2N5NWhaR1FvYVNBcklHb2dLeUF4S1R0Y2JpQWdJQ0FnSUNBZ2MybHRWbUZzY3k1d2RYTm9LSE5wYlNrN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdScFptWWdQU0JOWVhSb0xtRmljeWhoWTNScGRtbDBhV1Z6TG1kbGRDaHBLU0F0SUdGamRHbDJhWFJwWlhNdVoyVjBLR2tnS3lCcUlDc2dNU2twTzF4dUlDQWdJQ0FnSUNCcFppQW9jMmx0SUNFOUlERXBYRzRnSUNBZ0lDQWdJQ0FnYzJGc2FWWmhiSE11Y0hWemFDaGthV1ptSUM4Z0tERWdMU0J6YVcwcEtUdGNiaUFnSUNBZ0lDQWdaV3h6WlZ4dUlDQWdJQ0FnSUNBZ0lITmhiR2xXWVd4ekxuQjFjMmdvU1c1bWFXNXBkSGtwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUdOdmJuTjBJSE5oYkdsV1lXeHpWMmwwYUc5MWRFbHVabWx1YVhSNUlEMGdjMkZzYVZaaGJITXVabWxzZEdWeUtHbDBJRDArSUdsMElDRTlQU0JKYm1acGJtbDBlU2s3WEc0Z0lHTnZibk4wSUhOaGJHbE5hVzRnUFNCTllYUm9MbTFwYmlndUxpNXpZV3hwVm1Gc2MxZHBkR2h2ZFhSSmJtWnBibWwwZVNrN1hHNGdJR052Ym5OMElITmhiR2xOWVhnZ1BTQk5ZWFJvTG0xaGVDZ3VMaTV6WVd4cFZtRnNjMWRwZEdodmRYUkpibVpwYm1sMGVTazdYRzRnSUdOdmJuTjBJSE5oYkdsUGNHRmphWFI1UTI5bFppQTlJREF1T0M4b2MyRnNhVTFoZUNBdElITmhiR2xOYVc0cE8xeHVYRzVjYmlBZ1kyOXVjM1FnYm1WcFoyaGliM1Z5YzBOdmRXNTBJRDBnYm1WM0lFRnljbUY1S0dScGJTa3VabWxzYkNnd0tUdGNiaUFnWTI5dWMzUWdjMmx0YVd4aGNtbDBlVU52ZFc1MElEMGdibVYzSUVGeWNtRjVLR1JwYlNrdVptbHNiQ2d3S1R0Y2JpQWdZMjl1YzNRZ2MyRnNhVU52ZFc1MElEMGdibVYzSUVGeWNtRjVLR1JwYlNrdVptbHNiQ2d3S1R0Y2JseHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0FoUFNCdU1TNXNaVzVuZEdnN0lDc3JhU2tnZTF4dUlDQWdJRzVsYVdkb1ltOTFjbk5EYjNWdWRGdHVNVnRwWFYwZ0t6MGdNVHRjYmlBZ0lDQnVaV2xuYUdKdmRYSnpRMjkxYm5SYmJqSmJhVjFkSUNzOUlERTdYRzRnSUNBZ2MybHRhV3hoY21sMGVVTnZkVzUwVzI0eFcybGRYU0FyUFNCemFXMVdZV3h6VzJsZE8xeHVJQ0FnSUhOcGJXbHNZWEpwZEhsRGIzVnVkRnR1TWx0cFhWMGdLejBnYzJsdFZtRnNjMXRwWFR0Y2JpQWdJQ0JwWmlBb2MyRnNhVlpoYkhOYmFWMGdJVDBnU1c1bWFXNXBkSGtwSUh0Y2JpQWdJQ0FnSUdsbUlDaGhZM1JwZG1sMGFXVnpMbWRsZENodU1WdHBYU2tnUGlCaFkzUnBkbWwwYVdWekxtZGxkQ2h1TWx0cFhTa3BYRzRnSUNBZ0lDQWdJSE5oYkdsRGIzVnVkRnR1TVZ0cFhWMGdLejBnYzJGc2FWWmhiSE5iYVYwN1hHNGdJQ0FnSUNCbGJITmxYRzRnSUNBZ0lDQWdJSE5oYkdsRGIzVnVkRnR1TWx0cFhWMGdLejBnYzJGc2FWWmhiSE5iYVYwN1hHNGdJQ0FnZlZ4dUlDQjlYRzVjYmlBZ1kyOXVjM1FnYzJGc2FUb2dSRWN1UTI5c2RXMXVJRDBnUkVjdVEyOXNkVzF1TG1aeWIyMU1hWE4wS0Nka2IzVmliR1VuTENCZ2MyRnNhVjhrZTJGNFpYTk9ZVzFsYzFzd1hTNXpkV0p6ZEhKcGJtY29ZWGhsYzA1aGJXVnpXekJkTG14aGMzUkpibVJsZUU5bUtDZGZKeWtwZldBc0lITmhiR2xEYjNWdWRDazdYRzVjYmlBZ1pHWXVZMjlzZFcxdWN5NWhaR1FvYzJGc2FTazdYRzRnSUdOdmJuTjBJR05zYVdabWMwTnZiRTVoYldVZ1BTQmhaR1JEYkdsbVpuTkNiMjlzWldGdVEyOXNLR1JtTENCamJHbG1abk5OYjJ4SlpITXBPMXh1WEc0Z0lHTnZibk4wSUhacFpYY2dQU0JuY205ckxuTm9aV3hzTG1kbGRGUmhZbXhsVm1sbGR5aGtaaTV1WVcxbEtUdGNiaUFnZG1sbGR5NW5jbWxrTG1OdmJIVnRibk11WW5sT1lXMWxLR05zYVdabWMwTnZiRTVoYldVcElTNTJhWE5wWW14bElEMGdabUZzYzJVN1hHNGdJR052Ym5OMElITndJRDBnZG1sbGR5NWhaR1JXYVdWM1pYSW9SRWN1Vm1sbGQyVnlMbk5qWVhSMFpYSlFiRzkwS0dSbUxDQjdYRzRnSUNBZ2VFTnZiSFZ0Yms1aGJXVTZJR0Y0WlhOT1lXMWxjMXN3WFN4Y2JpQWdJQ0I1UTI5c2RXMXVUbUZ0WlRvZ1lYaGxjMDVoYldWeld6RmRMRnh1SUNBZ0lITnBlbVU2SUhOaGJHa3VibUZ0WlN4Y2JpQWdJQ0JqYjJ4dmNqb2dZV04wYVhacGRHbGxjeTV1WVcxbExGeHVJQ0FnSUhOb2IzZFlVMlZzWldOMGIzSTZJR1poYkhObExGeHVJQ0FnSUhOb2IzZFpVMlZzWldOMGIzSTZJR1poYkhObExGeHVJQ0FnSUhOb2IzZFRhWHBsVTJWc1pXTjBiM0k2SUdaaGJITmxMRnh1SUNBZ0lITm9iM2REYjJ4dmNsTmxiR1ZqZEc5eU9pQm1ZV3h6WlN4Y2JpQWdJQ0J0WVhKclpYSk5hVzVUYVhwbE9pQTFMRnh1SUNBZ0lHMWhjbXRsY2sxaGVGTnBlbVU2SURJMUxGeHVJQ0FnSUhScGRHeGxPaUJ6WTJGMGRHVnlWR2wwYkdWY2JpQWdmU2twSUdGeklFUkhMbE5qWVhSMFpYSlFiRzkwVm1sbGQyVnlPMXh1WEc0Z0lHTnZibk4wSUdOaGJuWmhjeUE5SUNoemNDNW5aWFJKYm1adktDa2dZWE1nWVc1NUtWc25ZMkZ1ZG1GekoxMDdYRzRnSUdOdmJuTjBJR3hwYm1WelVtVnpJRDBnWTNKbFlYUmxUR2x1WlhNb2JqRXNJRzR5TENCelpYRkRiMndzSUdGamRHbDJhWFJwWlhNc0lITmhiR2xXWVd4ekxDQnphVzFXWVd4ekxDQnpaVzFVZVhCbExDQjBZV2R6S1R0Y2JseHVJQ0JqYjI1emRDQmpZWE5vWldSTWFXNWxjMFJoZEdFNklHRnVlU0E5SUh0OU8xeHVJQ0JzWlhRZ1lXTmpPaUJFUnk1QlkyTnZjbVJwYjI0N1hHNWNiaUFnYkdsdVpYTlNaWE11YkdsdVpYTkVaaTV2YmtOMWNuSmxiblJEWld4c1EyaGhibWRsWkM1emRXSnpZM0pwWW1Vb0tDa2dQVDRnZTF4dUlDQWdJR052Ym5OMElHTjFjbkpsYm5STmIyeEpaSGdnUFNCc2FXNWxjMUpsY3k1c2FXNWxjMFJtTG1OMWNuSmxiblJEYjJ3Z0ppWWdiR2x1WlhOU1pYTXViR2x1WlhORVppNWpkWEp5Wlc1MFEyOXNMbTVoYldVZ1BUMDlJQ2N5WDNObGNTY2dQeUF4SURvZ01EdGNiaUFnSUNCamIyNXpkQ0JzYVc1bElEMGdiR2x1WlhOU1pYTXViR2x1WlhORVppNWpkWEp5Wlc1MFVtOTNTV1I0SUNFOVBTQXRNU0EvSUd4cGJtVnpVbVZ6TG14cGJtVnpXMnhwYm1WelVtVnpMbXhwYm1WelJHWXVZM1Z5Y21WdWRGSnZkMGxrZUYwZ09pQnVkV3hzTzF4dUlDQWdJSE53TG1SaGRHRkdjbUZ0WlM1amRYSnlaVzUwVW05M1NXUjRJRDBnYkdsdVpTQS9JR3hwYm1VdWJXOXNjMXRqZFhKeVpXNTBUVzlzU1dSNFhTQTZJQzB4TzF4dUlDQWdJSE53TG1SaGRHRkdjbUZ0WlM1elpXeGxZM1JwYjI0dWMyVjBLREFzSUNGc2FXNWxjMUpsY3k1c2FXNWxjMXN3WFM1elpXeGxZM1JsWkNrN1hHNGdJQ0FnYzNBdVpHRjBZVVp5WVcxbExuTmxiR1ZqZEdsdmJpNXpaWFFvTUN3Z2JHbHVaWE5TWlhNdWJHbHVaWE5iTUYwdWMyVnNaV04wWldRcE8xeHVJQ0FnSUd4cGJtVnpSR1pIY21sa0xtbHVkbUZzYVdSaGRHVW9LVHRjYmlBZ0lDQnBaaUFvYkdsdVpTbGNiaUFnSUNBZ0lITmxkRlJwYldWdmRYUW9LQ2tnUFQ0Z2UzVndaR0YwWlZCeWIzQmxjblI1VUdGdVpXd29aR1lzSUdGall5d2dZMkZ6YUdWa1RHbHVaWE5FWVhSaExDQnNhVzVsTENCelpYRkRiMndzSUdGamRHbDJhWFJwWlhNc0lHeHBibVZ6VW1WekxteHBibVZ6UkdZdVoyVjBLQ2R6WVd4cEp5d2diR2x1WlM1cFpDa3NJSEJ5YjNCbGNuUjVVR0Z1Wld4R2RXNWpLWDBzSURFd01EQXBPeUFnSUNBZ0lGeHVJQ0I5S1R0Y2JseHVJQ0JzYVc1bGMxSmxjeTVzYVc1bGMwUm1MbTl1VTJWc1pXTjBhVzl1UTJoaGJtZGxaQzV6ZFdKelkzSnBZbVVvS0Y4NklHRnVlU2tnUFQ0Z2UxeHVJQ0FnSUdsbUlDaHNhVzVsYzFKbGN5NXNhVzVsYzBSbUxtMXZkWE5sVDNabGNsSnZkMGxrZUNBaFBUMGdMVEVwSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR3hwYm1VZ1BTQnNhVzVsYzFKbGN5NXNhVzVsYzF0c2FXNWxjMUpsY3k1c2FXNWxjMFJtTG0xdmRYTmxUM1psY2xKdmQwbGtlRjA3WEc0Z0lDQWdJQ0JzYVc1bExuTmxiR1ZqZEdWa0lEMGdJV3hwYm1VdWMyVnNaV04wWldRN1hHNGdJQ0FnSUNCcFppQW9JV3hwYm1VdWMyVnNaV04wWldRcFhHNGdJQ0FnSUNBZ0lHUm1Mbk5sYkdWamRHbHZiaTV6WlhSQmJHd29abUZzYzJVcE8xeHVJQ0FnSUgxY2JpQWdJQ0JzYVc1bGMxSmxjeTVzYVc1bGN5NW1iM0pGWVdOb0tDaHNLU0E5UGlCN1hHNGdJQ0FnSUNCcFppQW9iQzV6Wld4bFkzUmxaQ2xjYmlBZ0lDQWdJQ0FnYkM1dGIyeHpMbVp2Y2tWaFkyZ29LRzBwSUQwK0lHUm1Mbk5sYkdWamRHbHZiaTV6WlhRb2JTd2dkSEoxWlNrcE8xeHVJQ0FnSUgwcE8xeHVJQ0FnSUd4cGJtVnpSR1pIY21sa0xtbHVkbUZzYVdSaGRHVW9LVHRjYmlBZ2ZTazdYRzVjYmlBZ1kyOXVjM1FnYkdsdVpYTkVaa2R5YVdRZ1BTQnNhVzVsYzFKbGN5NXNhVzVsYzBSbUxuQnNiM1F1WjNKcFpDZ3BMbk52Y25Rb1d5ZHpZV3hwSjEwc0lGdG1ZV3h6WlYwcE8xeHVYRzRnSUd4cGJtVnpSR1pIY21sa0xtOXVRMlZzYkVOc2FXTnJMbk4xWW5OamNtbGlaU2dvS1NBOVBpQjdYRzRnSUNBZ2VtOXZiU0E5SUhSeWRXVTdYRzRnSUgwcE8xeHVYRzRnSUdOdmJuTjBJR3hwYzNSRGJHbG1abk5NYVc1cklEMGdkV2t1WW5WMGRHOXVLR0FrZTJ4cGJtVnpVbVZ6TG14cGJtVnpSR1l1Y205M1EyOTFiblI5SUdOc2FXWm1jMkFzSUNncElEMCtJSHRjYmlBZ0lDQm5jbTlyTG5Ob1pXeHNMbVJ2WTJ0TllXNWhaMlZ5TG1Sdlkyc29iR2x1WlhORVprZHlhV1F1Y205dmRDd2dKMlJ2ZDI0bkxDQnVkV3hzTENBblFXTjBhWFpwZEhrZ1kyeHBabVp6Snl3Z01DNHlLVHRjYmlBZ2ZTazdYRzRnSUdWa2FYUlRjRXhwYm10VGRIbHNaU2hzYVhOMFEyeHBabVp6VEdsdWF5d2djM0FzSURFd0tUdGNibHh1SUNCamIyNXpkQ0JtYVd4MFpYSkRiR2xtWm5OQ2RYUjBiMjRnUFNCMWFTNXpkMmwwWTJoSmJuQjFkQ2hnVTJodmR5QnZibXg1SUdOc2FXWm1jMkFzSUdaaGJITmxLVHRjYmlBZ1ptbHNkR1Z5UTJ4cFptWnpRblYwZEc5dUxtOXVRMmhoYm1kbFpDZ29LVDArSUh0Y2JpQWdJQ0JtYVd4MFpYSkRiR2xtWm5OQ2RYUjBiMjR1ZG1Gc2RXVWdQeUJrWmk1eWIzZHpMbVpwYkhSbGNpZ29jbTkzS1NBOVBpQnliM2RiWTJ4cFptWnpRMjlzVG1GdFpWMGdQVDA5SUhSeWRXVXBJRG9nWkdZdVptbHNkR1Z5TG5ObGRFRnNiQ2gwY25WbEtUdGNiaUFnZlNrN1hHNGdJR1ZrYVhSVGNFeHBibXRUZEhsc1pTaG1hV3gwWlhKRGJHbG1abk5DZFhSMGIyNHVjbTl2ZEN3Z2MzQXNJRE13S1R0Y2JseHVJQ0JzWlhRZ2RHbHRaWEk2SUU1dlpHVktVeTVVYVcxbGIzVjBPMXh1SUNCallXNTJZWE11WVdSa1JYWmxiblJNYVhOMFpXNWxjaWduYlc5MWMyVnRiM1psSnl3Z1puVnVZM1JwYjI0Z0tHVjJaVzUwT2lCTmIzVnpaVVYyWlc1MEtTQjdYRzRnSUNBZ1kyeGxZWEpVYVcxbGIzVjBLSFJwYldWeUtUdGNiaUFnSUNCMGFXMWxjaUE5SUdkc2IySmhiQzV6WlhSVWFXMWxiM1YwS0daMWJtTjBhVzl1SUNncElIdGNiaUFnSUNBZ0lHTnZibk4wSUd4cGJtVWdQU0JqYUdWamEwTjFjbk52Y2s5dVRHbHVaU2hsZG1WdWRDd2dZMkZ1ZG1GekxDQnNhVzVsYzFKbGN5NXNhVzVsY3lrN1hHNGdJQ0FnSUNCcFppQW9iR2x1WlNBbUppQmtaaTV0YjNWelpVOTJaWEpTYjNkSlpIZ2dQVDA5SUMweEtTQjdYRzRnSUNBZ0lDQWdJQ0FnZFdrdWRHOXZiSFJwY0M1emFHOTNLSFJ2YjJ4MGFYQkdkVzVqS0h0allYTm9aV1JFWVhSaE9pQmpZWE5vWldSTWFXNWxjMFJoZEdFc0lHeHBibVU2SUd4cGJtVXNJR1JtT2lCa1ppd2djMlZ4UTI5c09pQnpaWEZEYjJ3c0lHRmpkR2wyYVhSNVEyOXNPaUJoWTNScGRtbDBhV1Z6ZlNrc0lHVjJaVzUwTG1Oc2FXVnVkRmdzSUdWMlpXNTBMbU5zYVdWdWRGa3BPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMHNJRFV3TUNrN1hHNGdJSDBwTzF4dVhHNGdJR05oYm5aaGN5NWhaR1JGZG1WdWRFeHBjM1JsYm1WeUtDZHRiM1Z6WldSdmQyNG5MQ0JtZFc1amRHbHZiaWhsZG1WdWREb2dUVzkxYzJWRmRtVnVkQ2tnZTF4dUlDQWdJR052Ym5OMElHeHBibVVnUFNCamFHVmphME4xY25OdmNrOXVUR2x1WlNobGRtVnVkQ3dnWTJGdWRtRnpMQ0JzYVc1bGMxSmxjeTVzYVc1bGN5azdYRzRnSUNBZ2FXWWdLR3hwYm1VZ0ppWWdaR1l1Ylc5MWMyVlBkbVZ5VW05M1NXUjRJRDA5UFNBdE1Ta2dlMXh1SUNBZ0lDQWdhV1lnS0dWMlpXNTBMbU4wY214TFpYa3BJSHRjYmlBZ0lDQWdJQ0FnYkdsdVpTNXpaV3hsWTNSbFpDQTlJQ0ZzYVc1bExuTmxiR1ZqZEdWa08xeHVJQ0FnSUNBZ0lDQnNhVzVsYzFKbGN5NXNhVzVsYzBSbUxuTmxiR1ZqZEdsdmJpNXpaWFFvYkdsdVpTNXBaQ3dnYkdsdVpTNXpaV3hsWTNSbFpDazdYRzVjYmlBZ0lDQWdJQ0FnYVdZZ0tDRnNhVzVsTG5ObGJHVmpkR1ZrS1Z4dUlDQWdJQ0FnSUNBZ0lHUm1Mbk5sYkdWamRHbHZiaTV6WlhSQmJHd29abUZzYzJVcE8xeHVYRzRnSUNBZ0lDQWdJR3hwYm1WelVtVnpMbXhwYm1WekxtWnZja1ZoWTJnb0tHd3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvYkM1elpXeGxZM1JsWkNsY2JpQWdJQ0FnSUNBZ0lDQWdJR3d1Ylc5c2N5NW1iM0pGWVdOb0tDaHRLU0E5UGlCa1ppNXpaV3hsWTNScGIyNHVjMlYwS0cwc0lIUnlkV1VwS1R0Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYkdsdVpYTlNaWE11YkdsdVpYTkVaaTVqZFhKeVpXNTBVbTkzU1dSNElDRTlQU0JzYVc1bExtbGtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2JHbHVaWE5TWlhNdWJHbHVaWE5FWmk1amRYSnlaVzUwVW05M1NXUjRJRDBnYkdsdVpTNXBaRHRjYmlBZ0lDQWdJQ0FnSUNCa1ppNWpkWEp5Wlc1MFVtOTNTV1I0SUQwZ2JHbHVaUzV0YjJ4eld6QmRPMXh1SUNBZ0lDQWdJQ0FnSUdSbUxuTmxiR1ZqZEdsdmJpNXpaWFFvTUN3Z0lXeHBibVZ6VW1WekxteHBibVZ6V3pCZExuTmxiR1ZqZEdWa0tUdGNiaUFnSUNBZ0lDQWdJQ0JrWmk1elpXeGxZM1JwYjI0dWMyVjBLREFzSUd4cGJtVnpVbVZ6TG14cGJtVnpXekJkTG5ObGJHVmpkR1ZrS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ1kyOXVjM1FnYjNKa1pYSWdQU0JzYVc1bGMxSmxjeTVzYVc1bGMwUm1MbWRsZEZOdmNuUmxaRTl5WkdWeUtHeHBibVZ6UkdaSGNtbGtMbk52Y25SQ2VVTnZiSFZ0Ym5Nc0lHeHBibVZ6UkdaSGNtbGtMbk52Y25SVWVYQmxjeWs3WEc0Z0lDQWdJQ0JzYVc1bGMwUm1SM0pwWkM1elkzSnZiR3hVYjBObGJHd29KM05sY1Y4eEp5d2diM0prWlhJdWFXNWtaWGhQWmloc2FXNWxMbWxrS1NrN1hHNGdJQ0FnZlZ4dUlDQjlLVHRjYmx4dUlDQnpjQzV2YmtWMlpXNTBLQ2RrTkMxaVpXWnZjbVV0WkhKaGR5MXpZMlZ1WlNjcFhHNGdJQ0FnTG5OMVluTmpjbWxpWlNnb1h6b2dZVzU1S1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCc2FXNWxjeUE5SUhKbGJtUmxja3hwYm1WektITndMRnh1SUNBZ0lDQWdJQ0JoZUdWelRtRnRaWE5iTUYwc0lHRjRaWE5PWVcxbGMxc3hYU3dnYkdsdVpYTlNaWE1zSUhOaGJHbFdZV3h6TENCellXeHBUM0JoWTJsMGVVTnZaV1lzSUhOaGJHbE5hVzRwTzF4dUlDQWdJQ0FnYVdZZ0tIcHZiMjBwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWTNWeWNtVnVkRXhwYm1VZ1BTQnNhVzVsYzF0c2FXNWxjMUpsY3k1c2FXNWxjMFJtTG1OMWNuSmxiblJTYjNkSlpIaGRPMXh1SUNBZ0lDQWdJQ0J6WlhSVWFXMWxiM1YwS0NncFBUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJSHQ2YjI5dFRHVm1kQ3dnZW05dmJWSnBaMmgwTENCNmIyOXRWRzl3TENCNmIyOXRRbTkwZEc5dGZTQTlJR2RsZEZwdmIyMURiMjl5WkdsdVlYUmxjeWhjYmlBZ0lDQWdJQ0FnSUNBZ0lITndMblpwWlhkd2IzSjBMbmRwWkhSb0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNBdWRtbGxkM0J2Y25RdWFHVnBaMmgwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjM0F1WkdGMFlVWnlZVzFsTG1kbGRDaGhlR1Z6VG1GdFpYTmJNRjBzSUdOMWNuSmxiblJNYVc1bExtMXZiSE5iTUYwcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNBdVpHRjBZVVp5WVcxbExtZGxkQ2hoZUdWelRtRnRaWE5iTVYwc0lHTjFjbkpsYm5STWFXNWxMbTF2YkhOYk1GMHBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2MzQXVaR0YwWVVaeVlXMWxMbWRsZENoaGVHVnpUbUZ0WlhOYk1GMHNJR04xY25KbGJuUk1hVzVsTG0xdmJITmJNVjBwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjM0F1WkdGMFlVWnlZVzFsTG1kbGRDaGhlR1Z6VG1GdFpYTmJNVjBzSUdOMWNuSmxiblJNYVc1bExtMXZiSE5iTVYwcFhHNGdJQ0FnSUNBZ0lDQWdLU0FnSUNBZ0lDQWdYRzRnSUNBZ0lDQWdJQ0FnYzNBdWVtOXZiU2g2YjI5dFRHVm1kQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIcHZiMjFVYjNBc1hHNGdJQ0FnSUNBZ0lDQWdJQ0I2YjI5dFVtbG5hSFFzWEc0Z0lDQWdJQ0FnSUNBZ0lDQjZiMjl0UW05MGRHOXRLVHRjYmlBZ0lDQWdJQ0FnZlN3Z016QXdLVHRjYmlBZ0lDQWdJQ0FnZW05dmJTQTlJR1poYkhObE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ1ptbHNkR1Z5UTJ4cFptWnpRblYwZEc5dUxuWmhiSFZsSUQ4Z1pHWXVjbTkzY3k1bWFXeDBaWElvS0hKdmR5a2dQVDRnY205M1cyTnNhV1ptYzBOdmJFNWhiV1ZkSUQwOVBTQjBjblZsS1NBNklHUm1MbVpwYkhSbGNpNXpaWFJCYkd3b2RISjFaU2s3WEc0Z0lDQWdmU2s3WEc1Y2JpQWdjM0F1WVdSa1VISnZjR1Z5ZEhrb0ozTnBiV2xzWVhKcGRIbE1hVzFwZENjc0lDZGtiM1ZpYkdVbkxDQnZjSFJUYVcxcGJHRnlhWFI1VEdsdGFYUXBPMXh1SUNCaFkyTWdQU0JqY21WaGRHVlFiM0JsY25SNVVHRnVaV3dvS1R0Y2JpQWdjbVYwZFhKdUlITndPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQmxaR2wwVTNCTWFXNXJVM1I1YkdVb1pXdzZJRWhVVFV4RmJHVnRaVzUwTENCemNEb2dSRWN1VTJOaGRIUmxjbEJzYjNSV2FXVjNaWElzSUhSdmNFMWhjbWRwYmpvZ2JuVnRZbVZ5S1h0Y2JpQWdaV3d1YzNSNWJHVXVjRzl6YVhScGIyNGdQU0FuWVdKemIyeDFkR1VuTzF4dUlDQmxiQzV6ZEhsc1pTNTBiM0FnUFNCZ0pIdDBiM0JOWVhKbmFXNTljSGhnTzF4dUlDQmxiQzV6ZEhsc1pTNXlhV2RvZENBOUlDY3hNSEI0Snp0Y2JpQWdjM0F1Y205dmRDNWhjSEJsYm1Rb1pXd3BPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQmpjbVZoZEdWUWIzQmxjblI1VUdGdVpXd29LVG9nUkVjdVFXTmpiM0prYVc5dUlIdGNiaUFnWTI5dWMzUWdZV05qSUQwZ2RXa3VZV05qYjNKa2FXOXVLQ2s3WEc0Z0lHTnZibk4wSUdGalkwbGpiMjRnUFNCMWFTNWxiR1Z0Wlc1MEtDZHBKeWs3WEc0Z0lHRmpZMGxqYjI0dVkyeGhjM05PWVcxbElEMGdKMmR5YjJzdGFXTnZiaUJ6ZG1jdGFXTnZiaUJ6ZG1jdGRtbGxkeTFzWVhsdmRYUW5PMXh1SUNCaFkyTXVZV1JrVkdsMGJHVW9kV2t1YzNCaGJpaGJZV05qU1dOdmJpd2dkV2t1YkdGaVpXd29ZRUZqZEdsMmFYUjVJR05zYVdabWMyQXBYU2twTzF4dUlDQmhZMk11WVdSa1VHRnVaU2duUTJ4cFptWWdSR1YwWVdsc2N5Y3NJQ2dwSUQwK0lIVnBMbVJwZGxSbGVIUW9KME5zYVdabUlHaGhjeUJ1YjNRZ1ltVmxiaUJ6Wld4bFkzUmxaQ2NwTENCMGNuVmxLVHRjYmlBZ1ozSnZheTV6YUdWc2JDNXZJRDBnWVdOakxuSnZiM1E3WEc0Z0lISmxkSFZ5YmlCaFkyTTdYRzU5WEc1Y2JtWjFibU4wYVc5dUlIVndaR0YwWlZCeWIzQmxjblI1VUdGdVpXd29YRzRnSUdSbU9pQkVSeTVFWVhSaFJuSmhiV1VzWEc0Z0lHRmpZem9nUkVjdVFXTmpiM0prYVc5dUxGeHVJQ0JqWVhOb1pXUkVZWFJoT2lCaGJua3NYRzRnSUd4cGJtVTZJRWxNYVc1bExDQmNiaUFnYzJWeFEyOXNPaUJFUnk1RGIyeDFiVzRzSUZ4dUlDQmhZM1JwZG1sMGFXVnpPaUJFUnk1RGIyeDFiVzRzWEc0Z0lITmhiR2s2SUc1MWJXSmxjaXhjYmlBZ2NISnZjRkJoYm1Wc1JuVnVZem9nS0hCaGNtRnRjem9nU1ZSdmIyeDBhWEJCYm1SUVlXNWxiRkJoY21GdGN5a2dQVDRnU0ZSTlRFVnNaVzFsYm5RcGUxeHVJQ0JqYjI1emRDQndZVzVsYkNBOUlHRmpZeTVuWlhSUVlXNWxLQ2REYkdsbVppQkVaWFJoYVd4ekp5azdYRzRnSUhWcExtVnRjSFI1S0hCaGJtVnNMbkp2YjNRcE8xeHVJQ0JqYjI1emRDQndZVzVsYkVWc1pXMWxiblFnUFNCd2NtOXdVR0Z1Wld4R2RXNWpLSHRqWVhOb1pXUkVZWFJoT2lCallYTm9aV1JFWVhSaExDQnNhVzVsT2lCc2FXNWxMQ0JrWmpvZ1pHWXNJSE5sY1VOdmJEb2djMlZ4UTI5c0xDQmhZM1JwZG1sMGVVTnZiRG9nWVdOMGFYWnBkR2xsY3l3Z2MyRnNhVG9nYzJGc2FYMHBPMXh1SUNCd1lXNWxiQzV5YjI5MExtRndjR1Z1WkNod1lXNWxiRVZzWlcxbGJuUXBPMXh1SUNCelpYUlVhVzFsYjNWMEtDZ3BJRDArSUh0Y2JpQWdJQ0JuY205ckxuTm9aV3hzTG04Z1BTQmhZMk11Y205dmREdGNiaUFnZlN3Z05UQXdLVHRjYm4xY2JseHVablZ1WTNScGIyNGdaMlYwV205dmJVTnZiM0prYVc1aGRHVnpLRmN3T2lCdWRXMWlaWElzSUVnd09pQnVkVzFpWlhJc0lIZ3hPaUJ1ZFcxaVpYSXNJSGt4T2lCdWRXMWlaWElzSUhneU9pQnVkVzFpWlhJc0lIa3lPaUJ1ZFcxaVpYSXBJSHRjYmlBZ1kyOXVjM1FnVnpFZ1BTQk5ZWFJvTG1GaWN5aDRNU0F0SUhneUtUdGNiaUFnWTI5dWMzUWdTREVnUFNCTllYUm9MbUZpY3loNU1TQXRJSGt5S1R0Y2JpQWdZMjl1YzNRZ2MyTmhiR1ZYSUQwZ1Z6QWdMeUJYTVR0Y2JpQWdZMjl1YzNRZ2MyTmhiR1ZJSUQwZ1NEQWdMeUJJTVR0Y2JpQWdZMjl1YzNRZ2MyTmhiR1VnUFNCTllYUm9MbTFwYmloelkyRnNaVmNzSUhOallXeGxTQ2s3WEc0Z0lHTnZibk4wSUZjeUlEMGdLRmN3SUM4Z2MyTmhiR1VwSUNvZ05UdGNiaUFnWTI5dWMzUWdTRElnUFNBb1NEQWdMeUJ6WTJGc1pTa2dLaUExTzF4dUlDQmpiMjV6ZENCc1pXWjBJRDBnZURFZ1BDQjRNaUEvSUhneElEb2dlREk3WEc0Z0lHTnZibk4wSUhSdmNDQTlJSGt4SUQ0Z2VUSWdQeUI1TVNBNklIa3lPMXh1SUNCamIyNXpkQ0I2YjI5dFRHVm1kQ0E5SUNoc1pXWjBJQ3NnVnpFZ0x5QXlLU0F0SUZjeUlDOGdNanRjYmlBZ1kyOXVjM1FnZW05dmJWSnBaMmgwSUQwZ2VtOXZiVXhsWm5RZ0t5QlhNanRjYmlBZ1kyOXVjM1FnZW05dmJWUnZjQ0E5SUNoMGIzQWdMU0JJTVNBdklESXBJQ3NnU0RJZ0x5QXlPMXh1SUNCamIyNXpkQ0I2YjI5dFFtOTBkRzl0SUQwZ2VtOXZiVlJ2Y0NBdElFZ3lPMXh1SUNCeVpYUjFjbTRnZTNwdmIyMU1aV1owT2lCNmIyOXRUR1ZtZEN3Z2VtOXZiVkpwWjJoME9pQjZiMjl0VW1sbmFIUXNJSHB2YjIxVWIzQTZJSHB2YjIxVWIzQXNJSHB2YjIxQ2IzUjBiMjA2SUhwdmIyMUNiM1IwYjIxOU8xeHVmVnh1WEc1bWRXNWpkR2x2YmlCamFHVmphME4xY25OdmNrOXVUR2x1WlNobGRtVnVkRG9nWVc1NUxDQmpZVzUyWVhNNklHRnVlU3dnYkdsdVpYTTZJRWxNYVc1bFcxMHBPaUJKVEdsdVpTQjhJRzUxYkd3Z2UxeHVJQ0JqYjI1emRDQnlaV04wSUQwZ1kyRnVkbUZ6TG1kbGRFSnZkVzVrYVc1blEyeHBaVzUwVW1WamRDZ3BPMXh1SUNCamIyNXpkQ0I0SUQwZ1pYWmxiblF1WTJ4cFpXNTBXQ0F0SUhKbFkzUXViR1ZtZER0Y2JpQWdZMjl1YzNRZ2VTQTlJR1YyWlc1MExtTnNhV1Z1ZEZrZ0xTQnlaV04wTG5SdmNEdGNiaUFnYkdWMElHTnNiM05sYzNSTWFXNWxJRDBnYm5Wc2JEdGNiaUFnYkdWMElHMXBia1JwYzNRZ1BTQXdPMXh1SUNCbWIzSWdLR052Ym5OMElHeHBibVVnYjJZZ2JHbHVaWE1wSUh0Y2JpQWdJQ0JqYjI1emRDQmthWE4wSUQxY2JpQWdJQ0FnSUUxaGRHZ3VZV0p6S0UxaGRHZ3VhSGx3YjNRb2JHbHVaUzVoV3pCZElDMGdlQ3dnYkdsdVpTNWhXekZkSUMwZ2VTa2dLMXh1SUNBZ0lDQWdUV0YwYUM1b2VYQnZkQ2hzYVc1bExtSmJNRjBnTFNCNExDQnNhVzVsTG1KYk1WMGdMU0I1S1NBdElFMWhkR2d1YUhsd2IzUW9iR2x1WlM1aFd6QmRJQzBnYkdsdVpTNWlXekJkTENCc2FXNWxMbUZiTVYwZ0xTQnNhVzVsTG1KYk1WMHBLVHRjYmlBZ0lDQnBaaUFvS0NGdGFXNUVhWE4wSUNZbUlHUnBjM1FnUENBeUtTQjhmQ0JrYVhOMElEd2diV2x1UkdsemRDa2dlMXh1SUNBZ0lDQWdiV2x1UkdsemRDQTlJR1JwYzNRN1hHNGdJQ0FnSUNCamJHOXpaWE4wVEdsdVpTQTlJR3hwYm1VN1hHNGdJQ0FnZlZ4dUlDQjlYRzRnSUhKbGRIVnliaUJqYkc5elpYTjBUR2x1WlR0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnY21WdVpHVnlUR2x1WlhNb2MzQTZJRVJITGxOallYUjBaWEpRYkc5MFZtbGxkMlZ5TEZ4dUlDQjRRWGhwY3pvZ2MzUnlhVzVuTENCNVFYaHBjem9nYzNSeWFXNW5MQ0JzYVc1bGMxSmxjem9nU1ZKbGJtUmxjbVZrVEdsdVpYTXNJSE5oYkdsV1lXeHpPaUJ1ZFcxaVpYSmJYU3dnYzJGc2FVOXdZV05wZEhsRGIyVm1PaUJ1ZFcxaVpYSXNJSE5oYkdsTmFXNDZJRzUxYldKbGNpazZJRWxNYVc1bElGdGRJSHRjYmlBZ1kyOXVjM1FnYkdsdVpYTWdQU0JzYVc1bGMxSmxjeTVzYVc1bGN6dGNiaUFnWTI5dWMzUWdZMkZ1ZG1GeklEMGdLSE53TG1kbGRFbHVabThvS1NCaGN5QjdXMmx1WkdWNE9pQnpkSEpwYm1kZElEb2dZVzU1ZlNsYkoyTmhiblpoY3lkZE8xeHVJQ0JqYjI1emRDQmpkSGdnUFNCallXNTJZWE11WjJWMFEyOXVkR1Y0ZENnbk1tUW5LU0JoY3lCRFlXNTJZWE5TWlc1a1pYSnBibWREYjI1MFpYaDBNa1E3WEc0Z0lHTnZibk4wSUhnZ1BTQnpjQzVrWVhSaFJuSmhiV1VoTG1OdmJIVnRibk11WW5sT1lXMWxLSGhCZUdsektUdGNiaUFnWTI5dWMzUWdlU0E5SUhOd0xtUmhkR0ZHY21GdFpTRXVZMjlzZFcxdWN5NWllVTVoYldVb2VVRjRhWE1wTzF4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR3hwYm1WekxteGxibWQwYURzZ2FTc3JLU0I3WEc0Z0lDQWdZMjl1YzNRZ2NHOXBiblJHY205dElEMGdjM0F1ZDI5eWJHUlViMU5qY21WbGJpaDRMbWRsZENoc2FXNWxjMXRwWFM1dGIyeHpXekJkS1N3Z2VTNW5aWFFvYkdsdVpYTmJhVjB1Ylc5c2Mxc3dYU2twTzF4dUlDQWdJR052Ym5OMElIQnZhVzUwVkc4Z1BTQnpjQzUzYjNKc1pGUnZVMk55WldWdUtIZ3VaMlYwS0d4cGJtVnpXMmxkTG0xdmJITmJNVjBwTENCNUxtZGxkQ2hzYVc1bGMxdHBYUzV0YjJ4eld6RmRLU2s3WEc0Z0lDQWdiR2x1WlhOYmFWMHVZU0E5SUZ0d2IybHVkRVp5YjIwdWVDd2djRzlwYm5SR2NtOXRMbmxkTzF4dUlDQWdJR3hwYm1WelcybGRMbUlnUFNCYmNHOXBiblJVYnk1NExDQndiMmx1ZEZSdkxubGRPMXh1SUNBZ0lHTnZibk4wSUd4cGJtVWdQU0J1WlhjZ1VHRjBhREpFS0NrN1hHNGdJQ0FnYkdsdVpTNXRiM1psVkc4b2JHbHVaWE5iYVYwdVlWc3dYU3dnYkdsdVpYTmJhVjB1WVZzeFhTazdYRzRnSUNBZ1kyOXVjM1FnWTI5c2IzSWdQU0JzYVc1bGMxdHBYUzV6Wld4bFkzUmxaQ0EvSUNjeU5UVXNNalUxTERBbklEb2dKekFzTVRJNExEQW5PMXh1SUNBZ0lHTnZibk4wSUc5d1lXTnBkSGtnUFNCellXeHBWbUZzYzF0cFhTQTlQVDBnU1c1bWFXNXBkSGtnUHlBeElEb2dNQzR5SUNzZ0tITmhiR2xXWVd4elcybGRJQzBnYzJGc2FVMXBiaWtxYzJGc2FVOXdZV05wZEhsRGIyVm1PMXh1SUNBZ0lHTjBlQzV6ZEhKdmEyVlRkSGxzWlNBOUlHQnlaMkpoS0NSN1kyOXNiM0o5TENSN2IzQmhZMmwwZVgwcFlEdGNiaUFnSUNCamRIZ3ViR2x1WlZkcFpIUm9JRDBnYkdsdVpYTmJhVjB1YVdRZ1BUMDlJR3hwYm1WelVtVnpMbXhwYm1WelJHWXVZM1Z5Y21WdWRGSnZkMGxrZUNBL0lETWdPaUF4TzF4dUlDQWdJR3hwYm1VdWJHbHVaVlJ2S0d4cGJtVnpXMmxkTG1KYk1GMHNJR3hwYm1WelcybGRMbUpiTVYwcE8xeHVJQ0FnSUdOMGVDNXpkSEp2YTJVb2JHbHVaU2s3WEc0Z0lIMWNiaUFnY21WMGRYSnVJR3hwYm1Wek8xeHVmVnh1WEc1bWRXNWpkR2x2YmlCamNtVmhkR1ZNYVc1bGN5aGNiaUFnYmpFNklHNTFiV0psY2x0ZExDQmNiaUFnYmpJNklHNTFiV0psY2x0ZExDQmNiaUFnYzJWeE9pQkVSeTVEYjJ4MWJXNHNJRnh1SUNCaFkzUnBkbWwwYVdWek9pQkVSeTVEYjJ4MWJXNHNJRnh1SUNCellXeHBWbUZzY3pvZ2JuVnRZbVZ5VzEwc1hHNGdJSE5wYlZaaGJITTZJRzUxYldKbGNsdGRMRnh1SUNCelpXMVVlWEJsT2lCemRISnBibWNzWEc0Z0lIUmhaM002SUh0YmFXNWtaWGc2SUhOMGNtbHVaMTA2SUhOMGNtbHVaMzBwSURvZ1NWSmxibVJsY21Wa1RHbHVaWE1nZTF4dUlDQmpiMjV6ZENCc2FXNWxjem9nU1V4cGJtVmJYU0E5SUc1bGR5QkJjbkpoZVNodU1TNXNaVzVuZEdncExtWnBiR3dvYm5Wc2JDazdYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2JqRXViR1Z1WjNSb095QnBLeXNwSUh0Y2JpQWdJQ0JqYjI1emRDQnVkVzB4SUQwZ2JqRmJhVjA3WEc0Z0lDQWdZMjl1YzNRZ2JuVnRNaUE5SUc0eVcybGRPMXh1SUNBZ0lHeHBibVZ6VzJsZElEMGdLSHRwWkRvZ2FTd2diVzlzY3pvZ1cyNTFiVEVzSUc1MWJUSmRMQ0J6Wld4bFkzUmxaRG9nWm1Gc2MyVXNJR0U2SUZ0ZExDQmlPaUJiWFgwcE8xeHVJQ0I5WEc0Z0lHTnZibk4wSUd4cGJtVnpSR1lnUFNCRVJ5NUVZWFJoUm5KaGJXVXVZM0psWVhSbEtHeHBibVZ6TG14bGJtZDBhQ2s3WEc0Z0lHMXZiRU52YkhWdGJrNWhiV1Z6TG1admNrVmhZMmdvS0dsMExDQnBaSGdwSUQwK0lIdGNiaUFnSUNCc2FXNWxjMFJtTG1OdmJIVnRibk11WVdSa1RtVjNVM1J5YVc1bktHbDBLUzVwYm1sMEtDaHBPaUJ1ZFcxaVpYSXBJRDArSUhObGNTNW5aWFFvYkdsdVpYTmJhVjB1Ylc5c2MxdHBaSGhkS1NrN1hHNGdJQ0FnYzJWMFZHRm5jeWhzYVc1bGMwUm1MbU52YkNocGRDa2hMQ0IwWVdkektUdGNiaUFnSUNCc2FXNWxjMFJtTG1OdmJDaHBkQ2toTG5ObGJWUjVjR1VnUFNCelpXMVVlWEJsTzF4dUlDQjlLVnh1SUNCc2FXNWxjMFJtTG1OdmJIVnRibk11WVdSa1RtVjNSbXh2WVhRb0oyRmpkRjlrYVdabUp5bGNiaUFnSUNBdWFXNXBkQ2dvYVRvZ2JuVnRZbVZ5S1NBOVBpQk5ZWFJvTG1GaWN5aGhZM1JwZG1sMGFXVnpMbWRsZENoc2FXNWxjMXRwWFM1dGIyeHpXekJkS1NBdElHRmpkR2wyYVhScFpYTXVaMlYwS0d4cGJtVnpXMmxkTG0xdmJITmJNVjBwS1NrN1hHNGdJR3hwYm1WelJHWXVZMjlzZFcxdWN5NWhaR1JPWlhkSmJuUW9KMnhwYm1WZmFXNWtaWGduS1M1cGJtbDBLQ2hwT2lCdWRXMWlaWElwSUQwK0lHa3BPMXh1SUNCc2FXNWxjMFJtTG1OdmJIVnRibk11WVdSa1RtVjNSbXh2WVhRb0ozTmhiR2tuS1M1cGJtbDBLQ2hwT2lCdWRXMWlaWElwSUQwK0lITmhiR2xXWVd4elcybGRLVHRjYmlBZ2JHbHVaWE5FWmk1amIyeDFiVzV6TG1Ga1pFNWxkMFpzYjJGMEtDZHphVzBuS1M1cGJtbDBLQ2hwT2lCdWRXMWlaWElwSUQwK0lITnBiVlpoYkhOYmFWMHBPMXh1SUNCeVpYUjFjbTRnZTJ4cGJtVnpMQ0JzYVc1bGMwUm1mVHRjYm4xY2JseHVablZ1WTNScGIyNGdjMlYwVkdGbmN5aGpiMnc2SUVSSExrTnZiSFZ0Yml3Z2RHRm5jem9nZTF0cGJtUmxlRG9nYzNSeWFXNW5YVG9nYzNSeWFXNW5mU2tnZTF4dUlDQlBZbXBsWTNRdWEyVjVjeWgwWVdkektTNW1iM0pGWVdOb0tIUmhaeUE5UGlCN1hHNGdJQ0FnWTI5c0xuUmhaM05iZEdGblhTQTlJSFJoWjNOYmRHRm5YVHRjYmlBZ2ZTbGNibjFjYmx4dVpYaHdiM0owSUdGemVXNWpJR1oxYm1OMGFXOXVJR2RsZEZOcGJXbHNZWEpwZEdsbGMwMWhjbWw0S0Z4dUlDQWdJR1JwYlRvZ2JuVnRZbVZ5TENCY2JpQWdJQ0J6WlhGRGIydzZJRVJITGtOdmJIVnRiaXdnWEc0Z0lDQWdaR1pUWlhFNklFUkhMa1JoZEdGR2NtRnRaU3dnWEc0Z0lDQWdjMmx0UVhKeU9pQkVSeTVEYjJ4MWJXNWJYU3hjYmlBZ0lDQnphVzFHZFc1ak9pQW9ZMjlzT2lCRVJ5NURiMngxYlc0c0lHMXZiRG9nYzNSeWFXNW5LU0E5UGlCUWNtOXRhWE5sUEVSSExrTnZiSFZ0YmlCOElHNTFiR3crWEc0Z0lDQWdLVnh1SUNBNklGQnliMjFwYzJVOFJFY3VRMjlzZFcxdVcxMCtJSHRjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ0lUMGdaR2x0SUMwZ01Uc2dLeXRwS1NCN1hHNGdJQ0FnWTI5dWMzUWdiVzlzSUQwZ2MyVnhRMjlzTG1kbGRDaHBLVHRjYmlBZ0lDQmtabE5sY1M1eWIzZHpMbkpsYlc5MlpVRjBLREFzSURFc0lHWmhiSE5sS1R0Y2JpQWdJQ0J6YVcxQmNuSmJhVjBnUFNBb1lYZGhhWFFnYzJsdFJuVnVZeWhrWmxObGNTNWpiMndvSjNObGNTY3BJU3dnYlc5c0tTa2hPMXh1SUNCOVhHNGdJSEpsZEhWeWJpQnphVzFCY25JN1hHNTlYRzVjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRGTnBiV2xzWVhKcGRHbGxjMFp5YjIxRWFYTjBZVzVqWlhNb1pHbHRPaUJ1ZFcxaVpYSXNJR1JwYzNSaGJtTmxjem9nVFdGMGNtbDRMQ0J6YVcxQmNuSTZJRVJITGtOdmJIVnRibHRkS1Z4dUlDQTZJRVJITGtOdmJIVnRibHRkSUh0Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JrYVcwZ0xTQXhPeUFySzJrcElIdGNiaUFnSUNCamIyNXpkQ0J6YVcxcGJHRnlhWFI1UVhKeUlEMGdibVYzSUVGeWNtRjVLR1JwYlNBdElHa2dMU0F4S1M1bWFXeHNLREFwTzF4dUlDQWdJR1p2Y2lBb2JHVjBJR29nUFNCcElDc2dNVHNnYWlBOElHUnBiVHNnS3l0cUtTQjdYRzRnSUNBZ0lDQnphVzFwYkdGeWFYUjVRWEp5VzJvZ0xTQnBJQzBnTVYwZ1BTQm5aWFJUYVcxcGJHRnlhWFI1Um5KdmJVUnBjM1JoYm1ObEtHUnBjM1JoYm1ObGMxdHBYVnRxWFNrN1hHNGdJQ0FnZlZ4dUlDQWdJSE5wYlVGeWNsdHBYU0E5SUVSSExrTnZiSFZ0Ymk1bWNtOXRSbXh2WVhRek1rRnljbUY1S0NkemFXMXBiR0Z5YVhSNUp5d2dSbXh2WVhRek1rRnljbUY1TG1aeWIyMG9jMmx0YVd4aGNtbDBlVUZ5Y2lrcE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCemFXMUJjbkk3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmhaR1JEYkdsbVpuTkNiMjlzWldGdVEyOXNLR1JtT2lCRVJ5NUVZWFJoUm5KaGJXVXNJR2xrY3pvZ1UyVjBQRzUxYldKbGNqNHBPaUJ6ZEhKcGJtY2dlMXh1SUNCamIyNXpkQ0JqYjJ4dVlXMWxJRDBnSjJOdmJuUmhhVzV6UTJ4cFptWW5PMXh1SUNCamIyNXpkQ0JqYjJ4T1lXMWxTVzVrSUQwZ1pHWXVZMjlzZFcxdWN5NXVZVzFsY3lncExtWnBiSFJsY2lnb2FYUTZJSE4wY21sdVp5a2dQVDRnYVhRdWFXNWpiSFZrWlhNb1kyOXNibUZ0WlNrcExteGxibWQwYUNBcklERTdYRzRnSUdOdmJuTjBJRzVsZDBOdmJFNWhiV1VnUFNCZ0pIdGpiMnh1WVcxbGZWOGtlMk52YkU1aGJXVkpibVI5WUR0Y2JpQWdaR1l1WTI5c2RXMXVjeTVoWkdST1pYZENiMjlzS0c1bGQwTnZiRTVoYldVcExtbHVhWFFvS0drcElEMCtJR2xrY3k1b1lYTW9hU2twTzF4dUlDQnlaWFIxY200Z2JtVjNRMjlzVG1GdFpUdGNibjFjYmx4dUlsMTkiLCJleHBvcnQgZnVuY3Rpb24gY3JlYXRlRGltZW5zaW5hbGl0eVJlZHVjaW5nV29ya2VyKGRhdGFNZXRyaWMsIG1ldGhvZCwgb3B0aW9ucykge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkge1xuICAgICAgICBjb25zdCB3b3JrZXIgPSBuZXcgV29ya2VyKG5ldyBVUkwoJy4vZGltZW5zaW9uYWxpdHktcmVkdWNlcicsIGltcG9ydC5tZXRhLnVybCkpO1xuICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgY29sdW1uRGF0YTogZGF0YU1ldHJpYy5kYXRhLFxuICAgICAgICAgICAgbWV0aG9kOiBtZXRob2QsXG4gICAgICAgICAgICBtZWFzdXJlOiBkYXRhTWV0cmljLm1ldHJpYyxcbiAgICAgICAgICAgIG9wdGlvbnM6IG9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgICB3b3JrZXIub25tZXNzYWdlID0gKHsgZGF0YTogeyBkaXN0YW5jZSwgZW1iZWRkaW5nIH0gfSkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSh7IGRpc3RhbmNlOiBkaXN0YW5jZSwgZW1iZWRkaW5nOiBlbWJlZGRpbmcgfSk7XG4gICAgICAgIH07XG4gICAgfSk7XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2laR2x0Wlc1emFXOXVZV3hwZEhrdGNtVmtkV05wYm1jdGQyOXlhMlZ5TFdOeVpXRjBiM0l1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SmthVzFsYm5OcGIyNWhiR2wwZVMxeVpXUjFZMmx1WnkxM2IzSnJaWEl0WTNKbFlYUnZjaTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGcFFrRXNUVUZCVFN4VlFVRlZMR2xEUVVGcFF5eERRVUZETEZWQlFYTkNMRVZCUVVVc1RVRkJZeXhGUVVOc1JpeFBRVUZoTzBsQlJXcENMRTlCUVU4c1NVRkJTU3hQUVVGUExFTkJRVU1zVlVGQlV5eFBRVUZQTzFGQlEycERMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzVFVGQlRTeERRVUZETEVsQlFVa3NSMEZCUnl4RFFVRkRMREJDUVVFd1FpeEZRVUZGTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU5vUml4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVGRE8xbEJRMnBDTEZWQlFWVXNSVUZCUlN4VlFVRlZMRU5CUVVNc1NVRkJTVHRaUVVNelFpeE5RVUZOTEVWQlFVVXNUVUZCVFR0WlFVTmtMRTlCUVU4c1JVRkJSU3hWUVVGVkxFTkJRVU1zVFVGQlRUdFpRVU14UWl4UFFVRlBMRVZCUVVVc1QwRkJUenRUUVVOcVFpeERRVUZETEVOQlFVTTdVVUZEU0N4TlFVRk5MRU5CUVVNc1UwRkJVeXhIUVVGSExFTkJRVU1zUlVGQlF5eEpRVUZKTEVWQlFVVXNSVUZCUXl4UlFVRlJMRVZCUVVVc1UwRkJVeXhGUVVGRExFVkJRVU1zUlVGQlJTeEZRVUZGTzFsQlEzQkVMRTlCUVU4c1EwRkJReXhGUVVGRExGRkJRVkVzUlVGQlJTeFJRVUZSTEVWQlFVVXNVMEZCVXl4RlFVRkZMRk5CUVZNc1JVRkJReXhEUVVGRExFTkJRVU03VVVGRGNrUXNRMEZCUXl4RFFVRkRPMGxCUTBvc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRFRDeERRVUZESWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUhzZ1RXRjBjbWw0SUgwZ1puSnZiU0FuUUdSaGRHRm5jbTlyTFd4cFluSmhjbWxsY3k5MWRHbHNjeTl6Y21NdmRIbHdaUzFrWldOc1lYSmhkR2x2Ym5Nbk8xeHVhVzF3YjNKMElIdFdZV3hwWkZSNWNHVnpmU0JtY205dElDY3VMaTkwZVhCbFpDMXRaWFJ5YVdOekp6dGNibHh1THlvcVhHNGdLaUJCSUhkdmNtdGxjaUIwYnlCd1pYSm1iM0p0SUdScGJXVnVjMmx2Ym1Gc2FYUjVJSEpsWkhWamRHbHZiaTVjYmlBcVhHNGdLaUJBY0dGeVlXMGdlMVpoYkdsa1ZIbHdaWE45SUdSaGRHRk5aWFJ5YVdNZ1ZHaGxJR1JoZEdFZ2RHOGdjSEp2WTJWemN5NWNiaUFxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J0WlhSb2IyUWdRU0J0WlhSb2IyUWdiMllnWkdsdFpXNXphVzl1WVd4cGRIa2djbVZrZFdOMGFXOXVMbHh1SUNvZ1FIQmhjbUZ0SUc5d2RHbHZibk1nTFNCclpYa3RkbUZzZFdVZ2NHRnBjbk5jYmlBcUlFQndZWEpoYlNCeVpYUjFjbTVFYVhOMFlXNWpaVTFoZEhKcGVGeHVJQ29nUUhKbGRIVnliaUI3VUhKdmJXbHpaVHhKVW1Wa2RXTmxSR2x0Wlc1emFXOXVZV3hwZEhsU1pYTjFiSFErZlNCU1pYTjFiSFJwYm1jZ1pXMWlaV1JrYVc1bklHRnVaQ0JrYVhOMFlXNWpaU0J0WVhSeWFYZ3VYRzRnS2k5Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1NWSmxaSFZqWlVScGJXVnVjMmx2Ym1Gc2FYUjVVbVZ6ZFd4MElIdGNiaUFnWkdsemRHRnVZMlU2SUUxaGRISnBlRHRjYmlBZ1pXMWlaV1JrYVc1bk9pQk5ZWFJ5YVhnN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJqY21WaGRHVkVhVzFsYm5OcGJtRnNhWFI1VW1Wa2RXTnBibWRYYjNKclpYSW9aR0YwWVUxbGRISnBZem9nVm1Gc2FXUlVlWEJsY3l3Z2JXVjBhRzlrT2lCemRISnBibWNzWEc0Z0lDQWdJQ0J2Y0hScGIyNXpQem9nWVc1NUtUb2dVSEp2YldselpUeEpVbVZrZFdObFJHbHRaVzV6YVc5dVlXeHBkSGxTWlhOMWJIUStJSHRjYmx4dUlDQnlaWFIxY200Z2JtVjNJRkJ5YjIxcGMyVW9ablZ1WTNScGIyNG9jbVZ6YjJ4MlpTa2dlMXh1SUNBZ0lHTnZibk4wSUhkdmNtdGxjaUE5SUc1bGR5QlhiM0pyWlhJb2JtVjNJRlZTVENnbkxpOWthVzFsYm5OcGIyNWhiR2wwZVMxeVpXUjFZMlZ5Snl3Z2FXMXdiM0owTG0xbGRHRXVkWEpzS1NrN1hHNGdJQ0FnZDI5eWEyVnlMbkJ2YzNSTlpYTnpZV2RsS0h0Y2JpQWdJQ0FnSUdOdmJIVnRia1JoZEdFNklHUmhkR0ZOWlhSeWFXTXVaR0YwWVN4Y2JpQWdJQ0FnSUcxbGRHaHZaRG9nYldWMGFHOWtMRnh1SUNBZ0lDQWdiV1ZoYzNWeVpUb2daR0YwWVUxbGRISnBZeTV0WlhSeWFXTXNYRzRnSUNBZ0lDQnZjSFJwYjI1ek9pQnZjSFJwYjI1ekxGeHVJQ0FnSUgwcE8xeHVJQ0FnSUhkdmNtdGxjaTV2Ym0xbGMzTmhaMlVnUFNBb2UyUmhkR0U2SUh0a2FYTjBZVzVqWlN3Z1pXMWlaV1JrYVc1bmZYMHBJRDArSUh0Y2JpQWdJQ0FnY21WemIyeDJaU2g3WkdsemRHRnVZMlU2SUdScGMzUmhibU5sTENCbGJXSmxaR1JwYm1jNklHVnRZbVZrWkdsdVozMHBPMXh1SUNBZ0lIMDdYRzRnSUgwcE8xeHVmVnh1SWwxOSIsImltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgKiBhcyBzaGEyNTYgZnJvbSAnZmFzdC1zaGEyNTYnO1xuLyoqXG4gKiBGb3IgY29sdW1ucyBvZiBzdHJpbmcgdHlwZS4gQ2hlY2tzIHdoZXRoZXIgY29sdW1uIGNvbnRhaW5zIGVtcHR5IHZhbHVlcyBhbmQgcmVtb3ZlcyBjb3JyZXNwb25kaW5nIHJvd3MgaW4gY2FzZSB1c2VyIHNlbGVjdHMgdG8gcmVtb3ZlLlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUVtcHR5U3RyaW5nUm93cyh0YWJsZSwgY29sKSB7XG4gICAgY29uc3QgY2F0cyA9IGNvbC5jYXRlZ29yaWVzO1xuICAgIGNvbnN0IGVtcHR5UmF3SW5kID0gY2F0cy5tYXAoKHZhbCwgaW5kKSA9PiAhdmFsID8gaW5kIDogbnVsbCkuZmlsdGVyKChpdCkgPT4gaXQgIT09IG51bGwpO1xuICAgIGNvbnN0IHJhd0RhdGEgPSBbLi4uY29sLmdldFJhd0RhdGEoKV07XG4gICAgY29uc3QgZW1wdHlSYXdzSW5kZXhlcyA9IFtdO1xuICAgIGxldCByZW1vdmVkUm93c0NvdW50ZXIgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFibGUucm93Q291bnQ7IGkrKykge1xuICAgICAgICBpZiAoZW1wdHlSYXdJbmQuaW5jbHVkZXMocmF3RGF0YVtpXSkpIHtcbiAgICAgICAgICAgIHRhYmxlLnJvd3MucmVtb3ZlQXQoaSAtIHJlbW92ZWRSb3dzQ291bnRlcik7XG4gICAgICAgICAgICBlbXB0eVJhd3NJbmRleGVzLnB1c2goaSk7XG4gICAgICAgICAgICByZW1vdmVkUm93c0NvdW50ZXIgKz0gMTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZW1wdHlSYXdzSW5kZXhlcztcbn1cbmV4cG9ydCBmdW5jdGlvbiBoYXNoRGF0YUZyYW1lKHRhYmxlLCBuYW1lcykge1xuICAgIG5hbWVzICE9PSBudWxsICYmIG5hbWVzICE9PSB2b2lkIDAgPyBuYW1lcyA6IChuYW1lcyA9IHRhYmxlLmNvbHVtbnMubmFtZXMoKSk7XG4gICAgY29uc3QgaGFzaGVyID0gbmV3IHNoYTI1Ni5IYXNoKCk7XG4gICAgY29uc3Qgb3JkZXIgPSB0YWJsZS5nZXRTb3J0ZWRPcmRlcihuYW1lcyk7XG4gICAgY29uc3QgZW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuICAgIGZvciAoY29uc3QgbmFtZSBvZiBuYW1lcykge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSB0YWJsZS5jb2x1bW5zLmJ5TmFtZShuYW1lKTtcbiAgICAgICAgY29uc3QgZGF0YUFycmF5ID0gY29sdW1uLmdldFJhd0RhdGEoKTtcbiAgICAgICAgY29uc3QgaXNTdHJpbmcgPSBjb2x1bW4udHlwZSA9PSBERy5UWVBFLlNUUklORztcbiAgICAgICAgY29uc3QgY2F0cyA9IGNvbHVtbi5jYXRlZ29yaWVzO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGFBcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGlzU3RyaW5nKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGNhdHNbZGF0YUFycmF5W29yZGVyW2ldXV07XG4gICAgICAgICAgICAgICAgaGFzaGVyLnVwZGF0ZShlbmNvZGVyLmVuY29kZShkYXRhKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gZGF0YUFycmF5W29yZGVyW2ldXTtcbiAgICAgICAgICAgICAgICBoYXNoZXIudXBkYXRlKFVpbnQ4QXJyYXkuZnJvbShbZGF0YV0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaGFzaGVyLmRpZ2VzdCgpO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pWkdGMFlXWnlZVzFsTFhWMGFXeHpMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaVpHRjBZV1p5WVcxbExYVjBhV3h6TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVRkJMRTlCUVU4c1MwRkJTeXhGUVVGRkxFMUJRVTBzYVVKQlFXbENMRU5CUVVNN1FVRkRkRU1zVDBGQlR5eExRVUZMTEUxQlFVMHNUVUZCVFN4aFFVRmhMRU5CUVVNN1FVRkRkRU03T3p0SFFVZEhPMEZCUTBnc1RVRkJUU3hWUVVGVkxIRkNRVUZ4UWl4RFFVRkRMRXRCUVcxQ0xFVkJRVVVzUjBGQll6dEpRVU4yUlN4TlFVRk5MRWxCUVVrc1IwRkJSeXhIUVVGSExFTkJRVU1zVlVGQlZTeERRVUZETzBsQlF6VkNMRTFCUVUwc1YwRkJWeXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVXNTMEZCU3l4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNeFJpeE5RVUZOTEU5QlFVOHNSMEZCUnl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETEVOQlFVTTdTVUZEZEVNc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4RlFVRkZMRU5CUVVNN1NVRkROVUlzU1VGQlNTeHJRa0ZCYTBJc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRE0wSXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEV0QlFVc3NRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3VVVGRGRrTXNTVUZCU1N4WFFVRlhMRU5CUVVNc1VVRkJVU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZPMWxCUTNCRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1IwRkJSeXhyUWtGQmEwSXNRMEZCUXl4RFFVRkRPMWxCUXpWRExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU42UWl4clFrRkJhMElzU1VGQlNTeERRVUZETEVOQlFVTTdVMEZEZWtJN1MwRkRSanRKUVVORUxFOUJRVThzWjBKQlFXZENMRU5CUVVNN1FVRkRNVUlzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4aFFVRmhMRU5CUVVNc1MwRkJiVUlzUlVGQlJTeExRVUZuUWp0SlFVTnFSU3hMUVVGTExHRkJRVXdzUzBGQlN5eGpRVUZNTEV0QlFVc3NTVUZCVEN4TFFVRkxMRWRCUVVzc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVWQlFVVXNSVUZCUXp0SlFVTm9ReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRKUVVOcVF5eE5RVUZOTEV0QlFVc3NSMEZCUnl4TFFVRkxMRU5CUVVNc1kwRkJZeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlF6RkRMRTFCUVUwc1QwRkJUeXhIUVVGSExFbEJRVWtzVjBGQlZ5eEZRVUZGTEVOQlFVTTdTVUZEYkVNc1MwRkJTeXhOUVVGTkxFbEJRVWtzU1VGQlNTeExRVUZMTEVWQlFVVTdVVUZEZUVJc1RVRkJUU3hOUVVGTkxFZEJRVWNzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRE1VTXNUVUZCVFN4VFFVRlRMRWRCUVVjc1RVRkJUU3hEUVVGRExGVkJRVlVzUlVGQlJTeERRVUZETzFGQlEzUkRMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVsQlFVa3NSVUZCUlN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU03VVVGREwwTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1RVRkJUU3hEUVVGRExGVkJRVlVzUTBGQlF6dFJRVU12UWl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NVMEZCVXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJUdFpRVU42UXl4SlFVRkpMRkZCUVZFc1JVRkJSVHRuUWtGRFdpeE5RVUZOTEVsQlFVa3NSMEZCUnl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN1owSkJRM1pETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMkZCUTNKRE8ybENRVUZOTzJkQ1FVTk1MRTFCUVUwc1NVRkJTU3hIUVVGSExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRuUWtGRGFrTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yRkJRM2hETzFOQlEwWTdTMEZEUmp0SlFVTkVMRTlCUVU4c1RVRkJUU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzBGQlEzcENMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ0tpQmhjeUJFUnlCbWNtOXRJQ2RrWVhSaFozSnZheTFoY0drdlpHY25PMXh1YVcxd2IzSjBJQ29nWVhNZ2MyaGhNalUySUdaeWIyMGdKMlpoYzNRdGMyaGhNalUySnp0Y2JpOHFLbHh1SUNvZ1JtOXlJR052YkhWdGJuTWdiMllnYzNSeWFXNW5JSFI1Y0dVdUlFTm9aV05yY3lCM2FHVjBhR1Z5SUdOdmJIVnRiaUJqYjI1MFlXbHVjeUJsYlhCMGVTQjJZV3gxWlhNZ1lXNWtJSEpsYlc5MlpYTWdZMjl5Y21WemNHOXVaR2x1WnlCeWIzZHpJR2x1SUdOaGMyVWdkWE5sY2lCelpXeGxZM1J6SUhSdklISmxiVzkyWlM1Y2JpQXFYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCeVpXMXZkbVZGYlhCMGVWTjBjbWx1WjFKdmQzTW9kR0ZpYkdVNklFUkhMa1JoZEdGR2NtRnRaU3dnWTI5c09pQkVSeTVEYjJ4MWJXNHBPaUJ1ZFcxaVpYSmJYU0I3WEc0Z0lHTnZibk4wSUdOaGRITWdQU0JqYjJ3dVkyRjBaV2R2Y21sbGN6dGNiaUFnWTI5dWMzUWdaVzF3ZEhsU1lYZEpibVFnUFNCallYUnpMbTFoY0Nnb2RtRnNMQ0JwYm1RcElEMCtJQ0YyWVd3Z1B5QnBibVFnT2lCdWRXeHNLUzVtYVd4MFpYSW9LR2wwS1NBOVBpQnBkQ0FoUFQwZ2JuVnNiQ2s3WEc0Z0lHTnZibk4wSUhKaGQwUmhkR0VnUFNCYkxpNHVZMjlzTG1kbGRGSmhkMFJoZEdFb0tWMDdYRzRnSUdOdmJuTjBJR1Z0Y0hSNVVtRjNjMGx1WkdWNFpYTWdQU0JiWFR0Y2JpQWdiR1YwSUhKbGJXOTJaV1JTYjNkelEyOTFiblJsY2lBOUlEQTdYRzRnSUdadmNpQW9iR1YwSUdrZ1BTQXdPeUJwSUR3Z2RHRmliR1V1Y205M1EyOTFiblE3SUdrckt5a2dlMXh1SUNBZ0lHbG1JQ2hsYlhCMGVWSmhkMGx1WkM1cGJtTnNkV1JsY3loeVlYZEVZWFJoVzJsZEtTa2dlMXh1SUNBZ0lDQWdkR0ZpYkdVdWNtOTNjeTV5WlcxdmRtVkJkQ2hwSUMwZ2NtVnRiM1psWkZKdmQzTkRiM1Z1ZEdWeUtUdGNiaUFnSUNBZ0lHVnRjSFI1VW1GM2MwbHVaR1Y0WlhNdWNIVnphQ2hwS1R0Y2JpQWdJQ0FnSUhKbGJXOTJaV1JTYjNkelEyOTFiblJsY2lBclBTQXhPMXh1SUNBZ0lIMWNiaUFnZlZ4dUlDQnlaWFIxY200Z1pXMXdkSGxTWVhkelNXNWtaWGhsY3p0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2hoYzJoRVlYUmhSbkpoYldVb2RHRmliR1U2SUVSSExrUmhkR0ZHY21GdFpTd2dibUZ0WlhNL09pQnpkSEpwYm1kYlhTazZJRlZwYm5RNFFYSnlZWGtnZTF4dUlDQnVZVzFsY3lBL1B6MGdkR0ZpYkdVdVkyOXNkVzF1Y3k1dVlXMWxjeWdwTzF4dUlDQmpiMjV6ZENCb1lYTm9aWElnUFNCdVpYY2djMmhoTWpVMkxraGhjMmdvS1R0Y2JpQWdZMjl1YzNRZ2IzSmtaWElnUFNCMFlXSnNaUzVuWlhSVGIzSjBaV1JQY21SbGNpaHVZVzFsY3lrN1hHNGdJR052Ym5OMElHVnVZMjlrWlhJZ1BTQnVaWGNnVkdWNGRFVnVZMjlrWlhJb0tUdGNiaUFnWm05eUlDaGpiMjV6ZENCdVlXMWxJRzltSUc1aGJXVnpLU0I3WEc0Z0lDQWdZMjl1YzNRZ1kyOXNkVzF1SUQwZ2RHRmliR1V1WTI5c2RXMXVjeTVpZVU1aGJXVW9ibUZ0WlNrN1hHNGdJQ0FnWTI5dWMzUWdaR0YwWVVGeWNtRjVJRDBnWTI5c2RXMXVMbWRsZEZKaGQwUmhkR0VvS1R0Y2JpQWdJQ0JqYjI1emRDQnBjMU4wY21sdVp5QTlJR052YkhWdGJpNTBlWEJsSUQwOUlFUkhMbFJaVUVVdVUxUlNTVTVITzF4dUlDQWdJR052Ym5OMElHTmhkSE1nUFNCamIyeDFiVzR1WTJGMFpXZHZjbWxsY3p0Y2JpQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUdSaGRHRkJjbkpoZVM1c1pXNW5kR2c3SUdrckt5a2dlMXh1SUNBZ0lDQWdhV1lnS0dselUzUnlhVzVuS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdSaGRHRWdQU0JqWVhSelcyUmhkR0ZCY25KaGVWdHZjbVJsY2x0cFhWMWRPMXh1SUNBZ0lDQWdJQ0JvWVhOb1pYSXVkWEJrWVhSbEtHVnVZMjlrWlhJdVpXNWpiMlJsS0dSaGRHRXBLVHRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElHUmhkR0VnUFNCa1lYUmhRWEp5WVhsYmIzSmtaWEpiYVYxZE8xeHVJQ0FnSUNBZ0lDQm9ZWE5vWlhJdWRYQmtZWFJsS0ZWcGJuUTRRWEp5WVhrdVpuSnZiU2hiWkdGMFlWMHBLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUgxY2JpQWdjbVYwZFhKdUlHaGhjMmhsY2k1a2FXZGxjM1FvS1R0Y2JuMWNiaUpkZlE9PSIsIi8qKlxuICogR2VuZXJhdGVzIHNpbmdsZSByYW5kb20gZmxvYXQgZnJvbSAwIHRvIHJhbmdlLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7bnVtYmVyfSByYW5nZSBNYXggZ2VuZXJhdGluZyB2YWx1ZS5cbiAqIEByZXR1cm4ge251bWJlcn0gQSByYW5kb20gZmxvYXQgZ2VuZXJhdGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmFuZG9tRmxvYXQocmFuZ2UpIHtcbiAgICByZXR1cm4gTWF0aC5yYW5kb20oKSAqIHJhbmdlO1xufVxuLyoqXG4gKiBHZW5lcmF0ZXMgc2luZ2xlIHJhbmRvbSBpbnRlZ2VyIGZyb20gMCB0byByYW5nZS5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge251bWJlcn0gcmFuZ2UgTWF4IGdlbmVyYXRpbmcgdmFsdWUuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IEEgcmFuZG9tIGludGVnZXIgZ2VuZXJhdGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmFuZG9tSW50KHJhbmdlKSB7XG4gICAgcmV0dXJuIE1hdGguZmxvb3IocmFuZG9tRmxvYXQocmFuZ2UpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWNtRnVaRzl0TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2ljbUZ1Wkc5dExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCT3pzN096czdSMEZOUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3hYUVVGWExFTkJRVU1zUzBGQllUdEpRVU4yUXl4UFFVRlBMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eExRVUZMTEVOQlFVTTdRVUZETDBJc1EwRkJRenRCUVVWRU96czdPenM3UjBGTlJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4VFFVRlRMRU5CUVVNc1MwRkJZVHRKUVVOeVF5eFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEZUVNc1EwRkJReUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSWk4cUtseHVJQ29nUjJWdVpYSmhkR1Z6SUhOcGJtZHNaU0J5WVc1a2IyMGdabXh2WVhRZ1puSnZiU0F3SUhSdklISmhibWRsTGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQndZWEpoYlNCN2JuVnRZbVZ5ZlNCeVlXNW5aU0JOWVhnZ1oyVnVaWEpoZEdsdVp5QjJZV3gxWlM1Y2JpQXFJRUJ5WlhSMWNtNGdlMjUxYldKbGNuMGdRU0J5WVc1a2IyMGdabXh2WVhRZ1oyVnVaWEpoZEdWa0xseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY21GdVpHOXRSbXh2WVhRb2NtRnVaMlU2SUc1MWJXSmxjaWs2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCTllYUm9MbkpoYm1SdmJTZ3BJQ29nY21GdVoyVTdYRzU5WEc1Y2JpOHFLbHh1SUNvZ1IyVnVaWEpoZEdWeklITnBibWRzWlNCeVlXNWtiMjBnYVc1MFpXZGxjaUJtY205dElEQWdkRzhnY21GdVoyVXVYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJSEpoYm1kbElFMWhlQ0JuWlc1bGNtRjBhVzVuSUhaaGJIVmxMbHh1SUNvZ1FISmxkSFZ5YmlCN2JuVnRZbVZ5ZlNCQklISmhibVJ2YlNCcGJuUmxaMlZ5SUdkbGJtVnlZWFJsWkM1Y2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEpoYm1SdmJVbHVkQ2h5WVc1blpUb2diblZ0WW1WeUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJRTFoZEdndVpteHZiM0lvY21GdVpHOXRSbXh2WVhRb2NtRnVaMlVwS1R0Y2JuMWNiaUpkZlE9PSIsImltcG9ydCB7IHJhbmRvbUludCB9IGZyb20gJy4vcmFuZG9tJztcbmV4cG9ydCBjb25zdCBzaW1pbGFyaXR5TWV0cmljID0ge1xuICAgICdUYW5pbW90byc6IHRhbmltb3RvU2ltaWxhcml0eSxcbiAgICAnRGljZSc6IGRpY2VTaW1pbGFyaXR5LFxuICAgICdBc3ltbWV0cmljJzogYXN5bW1ldHJpY1NpbWlsYXJpdHksXG4gICAgJ0JyYXVuLUJsYW5xdWV0JzogYnJhdW5CbGFucXVldFNpbWlsYXJpdHksXG4gICAgJ0Nvc2luZSc6IGNvc2luZVNpbWlsYXJpdHksXG4gICAgJ0t1bGN6eW5za2knOiBrdWxjenluc2tpU2ltaWxhcml0eSxcbiAgICAnTWMtQ29ubmF1Z2hleSc6IG1jQ29ubmF1Z2hleVNpbWlsYXJpdHksXG4gICAgJ1JvZ290LUdvbGRiZXJnJzogcm9nb3RHb2xkYmVyZ1NpbWlsYXJpdHksXG4gICAgJ1J1c3NlbCc6IHJ1c3NlbFNpbWlsYXJpdHksXG4gICAgJ1Nva2FsJzogc29rYWxTaW1pbGFyaXR5LFxuICAgICdIYW1taW5nJzogaGFtbWluZ1NpbWlsYXJpdHksXG4gICAgJ0V1Y2xpZGVhbic6IGV1Y2xpZGVhblNpbWlsYXJpdHksXG59O1xuZXhwb3J0IGNvbnN0IGRpc3RhbmNlTWV0cmljcyA9IHtcbiAgICAnVGFuaW1vdG8nOiB0YW5pbW90b0Rpc3RhbmNlLFxuICAgICdEaWNlJzogZGljZURpc3RhbmNlLFxuICAgICdBc3ltbWV0cmljJzogYXN5bW1ldHJpY0Rpc3RhbmNlLFxuICAgICdCcmF1bi1CbGFucXVldCc6IGJyYXVuQmxhbnF1ZXREaXN0YW5jZSxcbiAgICAnQ29zaW5lJzogY29zaW5lRGlzdGFuY2UsXG4gICAgJ0t1bGN6eW5za2knOiBrdWxjenluc2tpRGlzdGFuY2UsXG4gICAgJ01jLUNvbm5hdWdoZXknOiBtY0Nvbm5hdWdoZXlEaXN0YW5jZSxcbiAgICAnUm9nb3QtR29sZGJlcmcnOiByb2dvdEdvbGRiZXJnRGlzdGFuY2UsXG4gICAgJ1J1c3NlbCc6IHJ1c3NlbERpc3RhbmNlLFxuICAgICdTb2thbCc6IHNva2FsRGlzdGFuY2UsXG4gICAgJ0hhbW1pbmcnOiBoYW1taW5nRGlzdGFuY2UsXG4gICAgJ0V1Y2xpZGVhbic6IGV1Y2xpZGVhbkRpc3RhbmNlLFxufTtcbmV4cG9ydCBjb25zdCBDSEVNX1NJTUlMQVJJVFlfTUVUUklDUyA9IFsnVGFuaW1vdG8nLCAnRGljZScsICdDb3NpbmUnLCAnSGFtbWluZycsICdFdWNsaWRlYW4nXTtcbmV4cG9ydCBmdW5jdGlvbiB0YW5pbW90b1NpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCk7XG4gICAgaWYgKHRvdGFsID09IDApXG4gICAgICAgIHJldHVybiAxLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiBjb21tb24gLyAodG90YWwgLSBjb21tb24pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHRhbmltb3RvRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KHRhbmltb3RvU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZGljZVNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCk7XG4gICAgaWYgKHRvdGFsID09IDApXG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiAyICogY29tbW9uIC8gdG90YWw7XG59XG5leHBvcnQgZnVuY3Rpb24gZGljZURpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShkaWNlU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gY29zaW5lU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgdG90YWwgPSB4LnRydWVDb3VudCgpICogeS50cnVlQ291bnQoKTtcbiAgICBpZiAodG90YWwgPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIGNvbW1vbiAvIE1hdGguc3FydCh0b3RhbCk7XG59XG5leHBvcnQgZnVuY3Rpb24gY29zaW5lRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KGNvc2luZVNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGV1Y2xpZGVhblNpbWlsYXJpdHkoeCwgeSkge1xuICAgIHJldHVybiBnZXRTaW1pbGFyaXR5RnJvbURpc3RhbmNlKGV1Y2xpZGVhbkRpc3RhbmNlKHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBldWNsaWRlYW5EaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIE1hdGguc3FydCh4LnRydWVDb3VudCgpICsgeS50cnVlQ291bnQoKSAtIDIgKiB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGhhbW1pbmdTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0U2ltaWxhcml0eUZyb21EaXN0YW5jZShoYW1taW5nRGlzdGFuY2UoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGhhbW1pbmdEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIHgudHJ1ZUNvdW50KCkgKyB5LnRydWVDb3VudCgpIC0gMiAqIHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBzb2thbFNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCk7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiBjb21tb24gLyAoMiAqIHRvdGFsIC0gMyAqIGNvbW1vbik7XG59XG5leHBvcnQgZnVuY3Rpb24gc29rYWxEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoc29rYWxTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBrdWxjenluc2tpU2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgdG90YWwgPSB4LnRydWVDb3VudCgpICsgeS50cnVlQ291bnQoKTtcbiAgICBjb25zdCB0b3RhbFByb2QgPSB4LnRydWVDb3VudCgpICogeS50cnVlQ291bnQoKTtcbiAgICBpZiAodG90YWxQcm9kID09IDApXG4gICAgICAgIHJldHVybiAwLjA7XG4gICAgY29uc3QgY29tbW9uID0geC5hbmRXaXRoQ291bnRCaXRzKHksIHRydWUpO1xuICAgIHJldHVybiAoY29tbW9uICogdG90YWwpIC8gKDIgKiB0b3RhbFByb2QpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGt1bGN6eW5za2lEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoa3VsY3p5bnNraVNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG1jQ29ubmF1Z2hleVNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IHRvdGFsID0geC50cnVlQ291bnQoKSArIHkudHJ1ZUNvdW50KCk7XG4gICAgY29uc3QgdG90YWxQcm9kID0geC50cnVlQ291bnQoKSAqIHkudHJ1ZUNvdW50KCk7XG4gICAgaWYgKHRvdGFsUHJvZCA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gKGNvbW1vbiAqIHRvdGFsIC0gdG90YWxQcm9kKSAvIHRvdGFsUHJvZDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBtY0Nvbm5hdWdoZXlEaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkobWNDb25uYXVnaGV5U2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gYXN5bW1ldHJpY1NpbWlsYXJpdHkoeCwgeSkge1xuICAgIGNvbnN0IG1pbiA9IE1hdGgubWluKHgudHJ1ZUNvdW50KCksIHkudHJ1ZUNvdW50KCkpO1xuICAgIGlmIChtaW4gPT0gMClcbiAgICAgICAgcmV0dXJuIDAuMDtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgcmV0dXJuIGNvbW1vbiAvIG1pbjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBhc3ltbWV0cmljRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KGFzeW1tZXRyaWNTaW1pbGFyaXR5KHgsIHkpKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBicmF1bkJsYW5xdWV0U2ltaWxhcml0eSh4LCB5KSB7XG4gICAgY29uc3QgbWF4ID0gTWF0aC5tYXgoeC50cnVlQ291bnQoKSwgeS50cnVlQ291bnQoKSk7XG4gICAgaWYgKG1heCA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gY29tbW9uIC8gbWF4O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGJyYXVuQmxhbnF1ZXREaXN0YW5jZSh4LCB5KSB7XG4gICAgcmV0dXJuIGdldERpc3RhbmNlRnJvbVNpbWlsYXJpdHkoYnJhdW5CbGFucXVldFNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJ1c3NlbFNpbWlsYXJpdHkoeCwgeSkge1xuICAgIGlmICh4Lmxlbmd0aCA9PSAwKVxuICAgICAgICByZXR1cm4gMC4wO1xuICAgIGNvbnN0IGNvbW1vbiA9IHguYW5kV2l0aENvdW50Qml0cyh5LCB0cnVlKTtcbiAgICByZXR1cm4gY29tbW9uIC8geC5sZW5ndGg7XG59XG5leHBvcnQgZnVuY3Rpb24gcnVzc2VsRGlzdGFuY2UoeCwgeSkge1xuICAgIHJldHVybiBnZXREaXN0YW5jZUZyb21TaW1pbGFyaXR5KHJ1c3NlbFNpbWlsYXJpdHkoeCwgeSkpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJvZ290R29sZGJlcmdTaW1pbGFyaXR5KHgsIHkpIHtcbiAgICBjb25zdCBjb21tb24gPSB4LmFuZFdpdGhDb3VudEJpdHMoeSwgdHJ1ZSk7XG4gICAgY29uc3QgdG90YWwgPSB4LmNvdW50Qml0cyh0cnVlKSArIHkuY291bnRCaXRzKHRydWUpO1xuICAgIGNvbnN0IGxlbiA9IHgubGVuZ3RoO1xuICAgIGNvbnN0IGRpZmYgPSBsZW4gLSB0b3RhbCArIGNvbW1vbjtcbiAgICBpZiAoKGNvbW1vbiA9PSBsZW4pIHx8IChkaWZmID09IGxlbikpXG4gICAgICAgIHJldHVybiAxLjA7XG4gICAgZWxzZVxuICAgICAgICByZXR1cm4gY29tbW9uIC8gdG90YWwgKyBkaWZmIC8gKDIgKiBsZW4gLSB0b3RhbCk7XG59XG5leHBvcnQgZnVuY3Rpb24gcm9nb3RHb2xkYmVyZ0Rpc3RhbmNlKHgsIHkpIHtcbiAgICByZXR1cm4gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShyb2dvdEdvbGRiZXJnU2ltaWxhcml0eSh4LCB5KSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2ltaWxhcml0eUZyb21EaXN0YW5jZShkaXN0YW5jZSkge1xuICAgIHJldHVybiAxIC8gKDEgKyBkaXN0YW5jZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RGlzdGFuY2VGcm9tU2ltaWxhcml0eShzaW1pbGFyaXR5KSB7XG4gICAgcmV0dXJuIDEgLyBzaW1pbGFyaXR5IC0gMTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXZlcnNlU3Vic2V0KGxlbmd0aCwgbiwgZGlzdCkge1xuICAgIGZ1bmN0aW9uIG1heEJ5KHZhbHVlcywgb3JkZXJCeSkge1xuICAgICAgICBsZXQgbWF4VmFsdWUgPSBudWxsO1xuICAgICAgICBsZXQgbWF4T3JkZXJCeSA9IG51bGw7XG4gICAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB2YWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRPcmRlckJ5ID0gb3JkZXJCeShlbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChtYXhPcmRlckJ5ID09IG51bGwgfHwgZWxlbWVudE9yZGVyQnkgPiBtYXhPcmRlckJ5KSB7XG4gICAgICAgICAgICAgICAgbWF4VmFsdWUgPSBlbGVtZW50O1xuICAgICAgICAgICAgICAgIG1heE9yZGVyQnkgPSBlbGVtZW50T3JkZXJCeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWF4VmFsdWU7XG4gICAgfVxuICAgIGNvbnN0IHN1YnNldCA9IFtyYW5kb21JbnQobGVuZ3RoIC0gMSldO1xuICAgIGNvbnN0IGNvbXBsZW1lbnQgPSBuZXcgU2V0KCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkge1xuICAgICAgICBpZiAoIXN1YnNldC5pbmNsdWRlcyhpKSlcbiAgICAgICAgICAgIGNvbXBsZW1lbnQuYWRkKGkpO1xuICAgIH1cbiAgICB3aGlsZSAoc3Vic2V0Lmxlbmd0aCA8IG4pIHtcbiAgICAgICAgY29uc3QgaWR4ID0gbWF4QnkoY29tcGxlbWVudC52YWx1ZXMoKSwgKGkpID0+IE1hdGgubWluLmFwcGx5KE1hdGgsIHN1YnNldC5tYXAoZnVuY3Rpb24gKHZhbCwgaW5kZXgpIHtcbiAgICAgICAgICAgIHJldHVybiBkaXN0KGksIHZhbCk7XG4gICAgICAgIH0pKSk7XG4gICAgICAgIGlmIChpZHggIT0gbnVsbCkge1xuICAgICAgICAgICAgc3Vic2V0LnB1c2goaWR4KTtcbiAgICAgICAgICAgIGNvbXBsZW1lbnQuZGVsZXRlKGlkeCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN1YnNldDtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWMybHRhV3hoY21sMGVTMXRaWFJ5YVdOekxtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpYzJsdGFXeGhjbWwwZVMxdFpYUnlhV056TG5SeklsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lKQlFVTkJMRTlCUVU4c1JVRkJReXhUUVVGVExFVkJRVU1zVFVGQlRTeFZRVUZWTEVOQlFVTTdRVUZGYmtNc1RVRkJUU3hEUVVGRExFMUJRVTBzWjBKQlFXZENMRWRCUVRKRU8wbEJRM1JHTEZWQlFWVXNSVUZCUlN4clFrRkJhMEk3U1VGRE9VSXNUVUZCVFN4RlFVRkZMR05CUVdNN1NVRkRkRUlzV1VGQldTeEZRVUZGTEc5Q1FVRnZRanRKUVVOc1F5eG5Ra0ZCWjBJc1JVRkJSU3gxUWtGQmRVSTdTVUZEZWtNc1VVRkJVU3hGUVVGRkxHZENRVUZuUWp0SlFVTXhRaXhaUVVGWkxFVkJRVVVzYjBKQlFXOUNPMGxCUTJ4RExHVkJRV1VzUlVGQlJTeHpRa0ZCYzBJN1NVRkRka01zWjBKQlFXZENMRVZCUVVVc2RVSkJRWFZDTzBsQlEzcERMRkZCUVZFc1JVRkJSU3huUWtGQlowSTdTVUZETVVJc1QwRkJUeXhGUVVGRkxHVkJRV1U3U1VGRGVFSXNVMEZCVXl4RlFVRkZMR2xDUVVGcFFqdEpRVU0xUWl4WFFVRlhMRVZCUVVVc2JVSkJRVzFDTzBOQlEycERMRU5CUVVNN1FVRkZSaXhOUVVGTkxFTkJRVU1zVFVGQlRTeGxRVUZsTEVkQlFUSkVPMGxCUTNKR0xGVkJRVlVzUlVGQlJTeG5Ra0ZCWjBJN1NVRkROVUlzVFVGQlRTeEZRVUZGTEZsQlFWazdTVUZEY0VJc1dVRkJXU3hGUVVGRkxHdENRVUZyUWp0SlFVTm9ReXhuUWtGQlowSXNSVUZCUlN4eFFrRkJjVUk3U1VGRGRrTXNVVUZCVVN4RlFVRkZMR05CUVdNN1NVRkRlRUlzV1VGQldTeEZRVUZGTEd0Q1FVRnJRanRKUVVOb1F5eGxRVUZsTEVWQlFVVXNiMEpCUVc5Q08wbEJRM0pETEdkQ1FVRm5RaXhGUVVGRkxIRkNRVUZ4UWp0SlFVTjJReXhSUVVGUkxFVkJRVVVzWTBGQll6dEpRVU40UWl4UFFVRlBMRVZCUVVVc1lVRkJZVHRKUVVOMFFpeFRRVUZUTEVWQlFVVXNaVUZCWlR0SlFVTXhRaXhYUVVGWExFVkJRVVVzYVVKQlFXbENPME5CUXk5Q0xFTkJRVU03UVVGRlJpeE5RVUZOTEVOQlFVTXNUVUZCVFN4MVFrRkJkVUlzUjBGQlJ5eERRVUZETEZWQlFWVXNSVUZCUlN4TlFVRk5MRVZCUVVVc1VVRkJVU3hGUVVGRkxGTkJRVk1zUlVGQlJTeFhRVUZYTEVOQlFVTXNRMEZCUXp0QlFVVTVSaXhOUVVGTkxGVkJRVlVzYTBKQlFXdENMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRGVrUXNUVUZCVFN4TFFVRkxMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenRKUVVNMVF5eEpRVUZKTEV0QlFVc3NTVUZCU1N4RFFVRkRPMUZCUTFvc1QwRkJUeXhIUVVGSExFTkJRVU03U1VGRFlpeE5RVUZOTEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRek5ETEU5QlFVOHNUVUZCVFN4SFFVRkhMRU5CUVVNc1MwRkJTeXhIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETzBGQlEyNURMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzWjBKQlFXZENMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRGRrUXNUMEZCVHl4NVFrRkJlVUlzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTTNSQ3hEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdOQlFXTXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVOeVJDeE5RVUZOTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRPMGxCUXpWRExFbEJRVWtzUzBGQlN5eEpRVUZKTEVOQlFVTTdVVUZEV2l4UFFVRlBMRWRCUVVjc1EwRkJRenRKUVVOaUxFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRNME1zVDBGQlR5eERRVUZETEVkQlFVY3NUVUZCVFN4SFFVRkhMRXRCUVVzc1EwRkJRenRCUVVNMVFpeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMRmxCUVZrc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU51UkN4UFFVRlBMSGxDUVVGNVFpeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU42UkN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHZENRVUZuUWl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRM1pFTEUxQlFVMHNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1NVRkROVU1zU1VGQlNTeExRVUZMTEVsQlFVa3NRMEZCUXp0UlFVTmFMRTlCUVU4c1IwRkJSeXhEUVVGRE8wbEJRMklzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNelF5eFBRVUZQTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBGQlEyNURMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzWTBGQll5eERRVUZETEVOQlFWY3NSVUZCUlN4RFFVRlhPMGxCUTNKRUxFOUJRVThzZVVKQlFYbENMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRE0wUXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3h0UWtGQmJVSXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVNeFJDeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6VkVMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzYVVKQlFXbENMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRGVFUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEhRVUZETEVOQlFVTXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOc1JpeERRVUZETzBGQlJVUXNUVUZCVFN4VlFVRlZMR2xDUVVGcFFpeERRVUZETEVOQlFWY3NSVUZCUlN4RFFVRlhPMGxCUTNoRUxFOUJRVThzZVVKQlFYbENMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUXpGRUxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNaVUZCWlN4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRM1JFTEU5QlFVOHNRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4RFFVRkRMRWRCUVVNc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEJRVU4yUlN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHVkJRV1VzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTjBSQ3hOUVVGTkxFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeERRVUZETzBsQlF6VkRMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETTBNc1QwRkJUeXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEVkQlFVY3NTMEZCU3l4SFFVRkhMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF6dEJRVU16UXl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxHRkJRV0VzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTndSQ3hQUVVGUExIbENRVUY1UWl4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTXhSQ3hEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEc5Q1FVRnZRaXhEUVVGRExFTkJRVmNzUlVGQlJTeERRVUZYTzBsQlF6TkVMRTFCUVUwc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFTkJRVU03U1VGRE5VTXNUVUZCVFN4VFFVRlRMRWRCUVVjc1EwRkJReXhEUVVGRExGTkJRVk1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenRKUVVOb1JDeEpRVUZKTEZOQlFWTXNTVUZCU1N4RFFVRkRPMUZCUTJoQ0xFOUJRVThzUjBGQlJ5eERRVUZETzBsQlEySXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU16UXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hIUVVGSExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRk5CUVZNc1EwRkJReXhEUVVGRE8wRkJRelZETEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc2EwSkJRV3RDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRla1FzVDBGQlR5eDVRa0ZCZVVJc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU12UkN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxITkNRVUZ6UWl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRemRFTEUxQlFVMHNTMEZCU3l4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1NVRkROVU1zVFVGQlRTeFRRVUZUTEVkQlFVY3NRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eFRRVUZUTEVWQlFVVXNRMEZCUXp0SlFVTm9SQ3hKUVVGSkxGTkJRVk1zU1VGQlNTeERRVUZETzFGQlEyaENMRTlCUVU4c1IwRkJSeXhEUVVGRE8wbEJRMklzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNelF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4SFFVRkhMRXRCUVVzc1IwRkJSeXhUUVVGVExFTkJRVU1zUjBGQlJ5eFRRVUZUTEVOQlFVTTdRVUZEYkVRc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeHZRa0ZCYjBJc1EwRkJReXhEUVVGWExFVkJRVVVzUTBGQlZ6dEpRVU16UkN4UFFVRlBMSGxDUVVGNVFpeERRVUZETEhOQ1FVRnpRaXhEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMEZCUTJwRkxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNiMEpCUVc5Q0xFTkJRVU1zUTBGQlZ5eEZRVUZGTEVOQlFWYzdTVUZETTBRc1RVRkJUU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRia1FzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXp0UlFVTldMRTlCUVU4c1IwRkJSeXhEUVVGRE8wbEJRMklzVFVGQlRTeE5RVUZOTEVkQlFVY3NRMEZCUXl4RFFVRkRMR2RDUVVGblFpeERRVUZETEVOQlFVTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNelF5eFBRVUZQTEUxQlFVMHNSMEZCUnl4SFFVRkhMRU5CUVVNN1FVRkRkRUlzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4clFrRkJhMElzUTBGQlF5eERRVUZYTEVWQlFVVXNRMEZCVnp0SlFVTjZSQ3hQUVVGUExIbENRVUY1UWl4RFFVRkRMRzlDUVVGdlFpeERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJReTlFTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc2RVSkJRWFZDTEVOQlFVTXNRMEZCVnl4RlFVRkZMRU5CUVZjN1NVRkRPVVFzVFVGQlRTeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRGJrUXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJRenRSUVVOV0xFOUJRVThzUjBGQlJ5eERRVUZETzBsQlEySXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU16UXl4UFFVRlBMRTFCUVUwc1IwRkJSeXhIUVVGSExFTkJRVU03UVVGRGRFSXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3h4UWtGQmNVSXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVNMVJDeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRExIVkNRVUYxUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlEyeEZMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzWjBKQlFXZENMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRGRrUXNTVUZCU1N4RFFVRkRMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU03VVVGRFppeFBRVUZQTEVkQlFVY3NRMEZCUXp0SlFVTmlMRTFCUVUwc1RVRkJUU3hIUVVGSExFTkJRVU1zUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhEUVVGRExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETTBNc1QwRkJUeXhOUVVGTkxFZEJRVWNzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXp0QlFVTXpRaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdOQlFXTXNRMEZCUXl4RFFVRlhMRVZCUVVVc1EwRkJWenRKUVVOeVJDeFBRVUZQTEhsQ1FVRjVRaXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBGQlF6TkVMRU5CUVVNN1FVRkZSQ3hOUVVGTkxGVkJRVlVzZFVKQlFYVkNMRU5CUVVNc1EwRkJWeXhGUVVGRkxFTkJRVmM3U1VGRE9VUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU16UXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTVUZEY0VRc1RVRkJUU3hIUVVGSExFZEJRVWNzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXp0SlFVTnlRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEhRVUZITEVkQlFVY3NTMEZCU3l4SFFVRkhMRTFCUVUwc1EwRkJRenRKUVVOc1F5eEpRVUZKTEVOQlFVTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeEpRVUZKTEVkQlFVY3NRMEZCUXp0UlFVRkZMRTlCUVU4c1IwRkJSeXhEUVVGRE96dFJRVU0xUXl4UFFVRlBMRTFCUVUwc1IwRkJSeXhMUVVGTExFZEJRVWNzU1VGQlNTeEhRVUZITEVOQlFVTXNRMEZCUXl4SFFVRkhMRWRCUVVjc1IwRkJSeXhMUVVGTExFTkJRVU1zUTBGQlF6dEJRVU40UkN4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxIRkNRVUZ4UWl4RFFVRkRMRU5CUVZjc1JVRkJSU3hEUVVGWE8wbEJRelZFTEU5QlFVOHNlVUpCUVhsQ0xFTkJRVU1zZFVKQlFYVkNMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYkVVc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeDVRa0ZCZVVJc1EwRkJReXhSUVVGblFqdEpRVU40UkN4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRkxFTkJRVU1zUjBGQlJ5eFJRVUZSTEVOQlFVTXNRMEZCUXp0QlFVTTNRaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEhsQ1FVRjVRaXhEUVVGRExGVkJRV3RDTzBsQlF6RkVMRTlCUVU4c1EwRkJReXhIUVVGSExGVkJRVlVzUjBGQlJ5eERRVUZETEVOQlFVTTdRVUZETlVJc1EwRkJRenRCUVVWRUxFMUJRVTBzVlVGQlZTeG5Ra0ZCWjBJc1EwRkJReXhOUVVGakxFVkJRVVVzUTBGQlV5eEZRVUZGTEVsQlFYZERPMGxCUTJ4SExGTkJRVk1zUzBGQlN5eERRVUZETEUxQlFXZERMRVZCUVVVc1QwRkJPRUk3VVVGRE4wVXNTVUZCU1N4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRM0JDTEVsQlFVa3NWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJRenRSUVVWMFFpeExRVUZMTEUxQlFVMHNUMEZCVHl4SlFVRkpMRTFCUVUwc1JVRkJSVHRaUVVNMVFpeE5RVUZOTEdOQlFXTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03V1VGRGVFTXNTVUZCU1N4VlFVRlZMRWxCUVVrc1NVRkJTU3hKUVVGSkxHTkJRV01zUjBGQlJ5eFZRVUZWTEVWQlFVVTdaMEpCUTNKRUxGRkJRVkVzUjBGQlJ5eFBRVUZQTEVOQlFVTTdaMEpCUTI1Q0xGVkJRVlVzUjBGQlJ5eGpRVUZqTEVOQlFVTTdZVUZETjBJN1UwRkRSanRSUVVORUxFOUJRVThzVVVGQlVTeERRVUZETzBsQlEyeENMRU5CUVVNN1NVRkZSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU4yUXl4TlFVRk5MRlZCUVZVc1IwRkJSeXhKUVVGSkxFZEJRVWNzUlVGQlJTeERRVUZETzBsQlJUZENMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVU3VVVGREwwSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzSkNMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTMEZEY2tJN1NVRkZSQ3hQUVVGUExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RlFVRkZPMUZCUTNoQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEV0QlFVc3NRMEZEWml4VlFVRlZMRU5CUVVNc1RVRkJUU3hGUVVFNFFpeEZRVU12UXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hGUVVGRkxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNWVUZCVXl4SFFVRkhMRVZCUVVVc1MwRkJTenRaUVVONFJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4RFFVRkRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGRFSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMUFzU1VGQlNTeEhRVUZITEVsQlFVa3NTVUZCU1N4RlFVRkZPMWxCUTJZc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTnFRaXhWUVVGVkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMU5CUTNoQ08wdEJRMFk3U1VGRFJDeFBRVUZQTEUxQlFVMHNRMEZCUXp0QlFVTm9RaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElFSnBkRUZ5Y21GNUlHWnliMjBnSnk0dlltbDBMV0Z5Y21GNUp6dGNibWx0Y0c5eWRDQjdjbUZ1Wkc5dFNXNTBmU0JtY205dElDY3VMM0poYm1SdmJTYzdYRzVjYm1WNGNHOXlkQ0JqYjI1emRDQnphVzFwYkdGeWFYUjVUV1YwY21sak9pQjdXMjVoYldVNklITjBjbWx1WjEwNklDaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcElEMCtJRzUxYldKbGNuMGdQU0I3WEc0Z0lDZFVZVzVwYlc5MGJ5YzZJSFJoYm1sdGIzUnZVMmx0YVd4aGNtbDBlU3hjYmlBZ0owUnBZMlVuT2lCa2FXTmxVMmx0YVd4aGNtbDBlU3hjYmlBZ0owRnplVzF0WlhSeWFXTW5PaUJoYzNsdGJXVjBjbWxqVTJsdGFXeGhjbWwwZVN4Y2JpQWdKMEp5WVhWdUxVSnNZVzV4ZFdWMEp6b2dZbkpoZFc1Q2JHRnVjWFZsZEZOcGJXbHNZWEpwZEhrc1hHNGdJQ2REYjNOcGJtVW5PaUJqYjNOcGJtVlRhVzFwYkdGeWFYUjVMRnh1SUNBblMzVnNZM3A1Ym5OcmFTYzZJR3QxYkdONmVXNXphMmxUYVcxcGJHRnlhWFI1TEZ4dUlDQW5UV010UTI5dWJtRjFaMmhsZVNjNklHMWpRMjl1Ym1GMVoyaGxlVk5wYldsc1lYSnBkSGtzWEc0Z0lDZFNiMmR2ZEMxSGIyeGtZbVZ5WnljNklISnZaMjkwUjI5c1pHSmxjbWRUYVcxcGJHRnlhWFI1TEZ4dUlDQW5VblZ6YzJWc0p6b2djblZ6YzJWc1UybHRhV3hoY21sMGVTeGNiaUFnSjFOdmEyRnNKem9nYzI5cllXeFRhVzFwYkdGeWFYUjVMRnh1SUNBblNHRnRiV2x1WnljNklHaGhiVzFwYm1kVGFXMXBiR0Z5YVhSNUxGeHVJQ0FuUlhWamJHbGtaV0Z1SnpvZ1pYVmpiR2xrWldGdVUybHRhV3hoY21sMGVTeGNibjA3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0JrYVhOMFlXNWpaVTFsZEhKcFkzTTZJSHRiYm1GdFpUb2djM1J5YVc1blhUb2dLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTa2dQVDRnYm5WdFltVnlmU0E5SUh0Y2JpQWdKMVJoYm1sdGIzUnZKem9nZEdGdWFXMXZkRzlFYVhOMFlXNWpaU3hjYmlBZ0owUnBZMlVuT2lCa2FXTmxSR2x6ZEdGdVkyVXNYRzRnSUNkQmMzbHRiV1YwY21sakp6b2dZWE41YlcxbGRISnBZMFJwYzNSaGJtTmxMRnh1SUNBblFuSmhkVzR0UW14aGJuRjFaWFFuT2lCaWNtRjFia0pzWVc1eGRXVjBSR2x6ZEdGdVkyVXNYRzRnSUNkRGIzTnBibVVuT2lCamIzTnBibVZFYVhOMFlXNWpaU3hjYmlBZ0owdDFiR042ZVc1emEya25PaUJyZFd4amVubHVjMnRwUkdsemRHRnVZMlVzWEc0Z0lDZE5ZeTFEYjI1dVlYVm5hR1Y1SnpvZ2JXTkRiMjV1WVhWbmFHVjVSR2x6ZEdGdVkyVXNYRzRnSUNkU2IyZHZkQzFIYjJ4a1ltVnlaeWM2SUhKdloyOTBSMjlzWkdKbGNtZEVhWE4wWVc1alpTeGNiaUFnSjFKMWMzTmxiQ2M2SUhKMWMzTmxiRVJwYzNSaGJtTmxMRnh1SUNBblUyOXJZV3duT2lCemIydGhiRVJwYzNSaGJtTmxMRnh1SUNBblNHRnRiV2x1WnljNklHaGhiVzFwYm1kRWFYTjBZVzVqWlN4Y2JpQWdKMFYxWTJ4cFpHVmhiaWM2SUdWMVkyeHBaR1ZoYmtScGMzUmhibU5sTEZ4dWZUdGNibHh1Wlhod2IzSjBJR052Ym5OMElFTklSVTFmVTBsTlNVeEJVa2xVV1Y5TlJWUlNTVU5USUQwZ1d5ZFVZVzVwYlc5MGJ5Y3NJQ2RFYVdObEp5d2dKME52YzJsdVpTY3NJQ2RJWVcxdGFXNW5KeXdnSjBWMVkyeHBaR1ZoYmlkZE8xeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdkR0Z1YVcxdmRHOVRhVzFwYkdGeWFYUjVLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUdOdmJuTjBJSFJ2ZEdGc0lEMGdlQzUwY25WbFEyOTFiblFvS1NBcklIa3VkSEoxWlVOdmRXNTBLQ2s3WEc0Z0lHbG1JQ2gwYjNSaGJDQTlQU0F3S1Z4dUlDQWdJSEpsZEhWeWJpQXhMakE3WEc0Z0lHTnZibk4wSUdOdmJXMXZiaUE5SUhndVlXNWtWMmwwYUVOdmRXNTBRbWwwY3loNUxDQjBjblZsS1R0Y2JpQWdjbVYwZFhKdUlHTnZiVzF2YmlBdklDaDBiM1JoYkNBdElHTnZiVzF2YmlrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUIwWVc1cGJXOTBiMFJwYzNSaGJtTmxLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUJuWlhSRWFYTjBZVzVqWlVaeWIyMVRhVzFwYkdGeWFYUjVLSFJoYm1sdGIzUnZVMmx0YVd4aGNtbDBlU2g0TENCNUtTazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCa2FXTmxVMmx0YVd4aGNtbDBlU2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BPaUJ1ZFcxaVpYSWdlMXh1SUNCamIyNXpkQ0IwYjNSaGJDQTlJSGd1ZEhKMVpVTnZkVzUwS0NrZ0t5QjVMblJ5ZFdWRGIzVnVkQ2dwTzF4dUlDQnBaaUFvZEc5MFlXd2dQVDBnTUNsY2JpQWdJQ0J5WlhSMWNtNGdNQzR3TzF4dUlDQmpiMjV6ZENCamIyMXRiMjRnUFNCNExtRnVaRmRwZEdoRGIzVnVkRUpwZEhNb2VTd2dkSEoxWlNrN1hHNGdJSEpsZEhWeWJpQXlJQ29nWTI5dGJXOXVJQzhnZEc5MFlXdzdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCa2FXTmxSR2x6ZEdGdVkyVW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJR2RsZEVScGMzUmhibU5sUm5KdmJWTnBiV2xzWVhKcGRIa29aR2xqWlZOcGJXbHNZWEpwZEhrb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZMjl6YVc1bFUybHRhV3hoY21sMGVTaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcE9pQnVkVzFpWlhJZ2UxeHVJQ0JqYjI1emRDQjBiM1JoYkNBOUlIZ3VkSEoxWlVOdmRXNTBLQ2tnS2lCNUxuUnlkV1ZEYjNWdWRDZ3BPMXh1SUNCcFppQW9kRzkwWVd3Z1BUMGdNQ2xjYmlBZ0lDQnlaWFIxY200Z01DNHdPMXh1SUNCamIyNXpkQ0JqYjIxdGIyNGdQU0I0TG1GdVpGZHBkR2hEYjNWdWRFSnBkSE1vZVN3Z2RISjFaU2s3WEc0Z0lISmxkSFZ5YmlCamIyMXRiMjRnTHlCTllYUm9Mbk54Y25Rb2RHOTBZV3dwTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZMjl6YVc1bFJHbHpkR0Z1WTJVb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdjbVYwZFhKdUlHZGxkRVJwYzNSaGJtTmxSbkp2YlZOcGJXbHNZWEpwZEhrb1kyOXphVzVsVTJsdGFXeGhjbWwwZVNoNExDQjVLU2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmxkV05zYVdSbFlXNVRhVzFwYkdGeWFYUjVLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUJuWlhSVGFXMXBiR0Z5YVhSNVJuSnZiVVJwYzNSaGJtTmxLR1YxWTJ4cFpHVmhia1JwYzNSaGJtTmxLSGdzSUhrcEtUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdWMVkyeHBaR1ZoYmtScGMzUmhibU5sS0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCTllYUm9Mbk54Y25Rb2VDNTBjblZsUTI5MWJuUW9LU0FySUhrdWRISjFaVU52ZFc1MEtDa2dMU0F5S25ndVlXNWtWMmwwYUVOdmRXNTBRbWwwY3loNUxDQjBjblZsS1NrN1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJvWVcxdGFXNW5VMmx0YVd4aGNtbDBlU2g0T2lCQ2FYUkJjbkpoZVN3Z2VUb2dRbWwwUVhKeVlYa3BPaUJ1ZFcxaVpYSWdlMXh1SUNCeVpYUjFjbTRnWjJWMFUybHRhV3hoY21sMGVVWnliMjFFYVhOMFlXNWpaU2hvWVcxdGFXNW5SR2x6ZEdGdVkyVW9lQ3dnZVNrcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnYUdGdGJXbHVaMFJwYzNSaGJtTmxLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUhKbGRIVnliaUI0TG5SeWRXVkRiM1Z1ZENncElDc2dlUzUwY25WbFEyOTFiblFvS1NBdElESXFlQzVoYm1SWGFYUm9RMjkxYm5SQ2FYUnpLSGtzSUhSeWRXVXBPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2MyOXJZV3hUYVcxcGJHRnlhWFI1S0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lHTnZibk4wSUhSdmRHRnNJRDBnZUM1MGNuVmxRMjkxYm5Rb0tTQXJJSGt1ZEhKMVpVTnZkVzUwS0NrN1hHNGdJR052Ym5OMElHTnZiVzF2YmlBOUlIZ3VZVzVrVjJsMGFFTnZkVzUwUW1sMGN5aDVMQ0IwY25WbEtUdGNiaUFnY21WMGRYSnVJR052YlcxdmJpQXZJQ2d5SUNvZ2RHOTBZV3dnTFNBeklDb2dZMjl0Ylc5dUtUdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhOdmEyRnNSR2x6ZEdGdVkyVW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJR2RsZEVScGMzUmhibU5sUm5KdmJWTnBiV2xzWVhKcGRIa29jMjlyWVd4VGFXMXBiR0Z5YVhSNUtIZ3NJSGtwS1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR3QxYkdONmVXNXphMmxUYVcxcGJHRnlhWFI1S0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lHTnZibk4wSUhSdmRHRnNJRDBnZUM1MGNuVmxRMjkxYm5Rb0tTQXJJSGt1ZEhKMVpVTnZkVzUwS0NrN1hHNGdJR052Ym5OMElIUnZkR0ZzVUhKdlpDQTlJSGd1ZEhKMVpVTnZkVzUwS0NrZ0tpQjVMblJ5ZFdWRGIzVnVkQ2dwTzF4dUlDQnBaaUFvZEc5MFlXeFFjbTlrSUQwOUlEQXBYRzRnSUNBZ2NtVjBkWEp1SURBdU1EdGNiaUFnWTI5dWMzUWdZMjl0Ylc5dUlEMGdlQzVoYm1SWGFYUm9RMjkxYm5SQ2FYUnpLSGtzSUhSeWRXVXBPMXh1SUNCeVpYUjFjbTRnS0dOdmJXMXZiaUFxSUhSdmRHRnNLU0F2SUNneUlDb2dkRzkwWVd4UWNtOWtLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHdDFiR042ZVc1emEybEVhWE4wWVc1alpTaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcE9pQnVkVzFpWlhJZ2UxeHVJQ0J5WlhSMWNtNGdaMlYwUkdsemRHRnVZMlZHY205dFUybHRhV3hoY21sMGVTaHJkV3hqZW5sdWMydHBVMmx0YVd4aGNtbDBlU2g0TENCNUtTazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCdFkwTnZibTVoZFdkb1pYbFRhVzFwYkdGeWFYUjVLSGc2SUVKcGRFRnljbUY1TENCNU9pQkNhWFJCY25KaGVTazZJRzUxYldKbGNpQjdYRzRnSUdOdmJuTjBJSFJ2ZEdGc0lEMGdlQzUwY25WbFEyOTFiblFvS1NBcklIa3VkSEoxWlVOdmRXNTBLQ2s3WEc0Z0lHTnZibk4wSUhSdmRHRnNVSEp2WkNBOUlIZ3VkSEoxWlVOdmRXNTBLQ2tnS2lCNUxuUnlkV1ZEYjNWdWRDZ3BPMXh1SUNCcFppQW9kRzkwWVd4UWNtOWtJRDA5SURBcFhHNGdJQ0FnY21WMGRYSnVJREF1TUR0Y2JpQWdZMjl1YzNRZ1kyOXRiVzl1SUQwZ2VDNWhibVJYYVhSb1EyOTFiblJDYVhSektIa3NJSFJ5ZFdVcE8xeHVJQ0J5WlhSMWNtNGdLR052YlcxdmJpQXFJSFJ2ZEdGc0lDMGdkRzkwWVd4UWNtOWtLU0F2SUhSdmRHRnNVSEp2WkR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJRzFqUTI5dWJtRjFaMmhsZVVScGMzUmhibU5sS0hnNklFSnBkRUZ5Y21GNUxDQjVPaUJDYVhSQmNuSmhlU2s2SUc1MWJXSmxjaUI3WEc0Z0lISmxkSFZ5YmlCblpYUkVhWE4wWVc1alpVWnliMjFUYVcxcGJHRnlhWFI1S0cxalEyOXVibUYxWjJobGVWTnBiV2xzWVhKcGRIa29lQ3dnZVNrcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWVhONWJXMWxkSEpwWTFOcGJXbHNZWEpwZEhrb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdZMjl1YzNRZ2JXbHVJRDBnVFdGMGFDNXRhVzRvZUM1MGNuVmxRMjkxYm5Rb0tTd2dlUzUwY25WbFEyOTFiblFvS1NrN1hHNGdJR2xtSUNodGFXNGdQVDBnTUNsY2JpQWdJQ0J5WlhSMWNtNGdNQzR3TzF4dUlDQmpiMjV6ZENCamIyMXRiMjRnUFNCNExtRnVaRmRwZEdoRGIzVnVkRUpwZEhNb2VTd2dkSEoxWlNrN1hHNGdJSEpsZEhWeWJpQmpiMjF0YjI0Z0x5QnRhVzQ3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQmhjM2x0YldWMGNtbGpSR2x6ZEdGdVkyVW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJR2RsZEVScGMzUmhibU5sUm5KdmJWTnBiV2xzWVhKcGRIa29ZWE41YlcxbGRISnBZMU5wYldsc1lYSnBkSGtvZUN3Z2VTa3BPMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1luSmhkVzVDYkdGdWNYVmxkRk5wYldsc1lYSnBkSGtvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ1kyOXVjM1FnYldGNElEMGdUV0YwYUM1dFlYZ29lQzUwY25WbFEyOTFiblFvS1N3Z2VTNTBjblZsUTI5MWJuUW9LU2s3WEc0Z0lHbG1JQ2h0WVhnZ1BUMGdNQ2xjYmlBZ0lDQnlaWFIxY200Z01DNHdPMXh1SUNCamIyNXpkQ0JqYjIxdGIyNGdQU0I0TG1GdVpGZHBkR2hEYjNWdWRFSnBkSE1vZVN3Z2RISjFaU2s3WEc0Z0lISmxkSFZ5YmlCamIyMXRiMjRnTHlCdFlYZzdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCaWNtRjFia0pzWVc1eGRXVjBSR2x6ZEdGdVkyVW9lRG9nUW1sMFFYSnlZWGtzSUhrNklFSnBkRUZ5Y21GNUtUb2diblZ0WW1WeUlIdGNiaUFnY21WMGRYSnVJR2RsZEVScGMzUmhibU5sUm5KdmJWTnBiV2xzWVhKcGRIa29ZbkpoZFc1Q2JHRnVjWFZsZEZOcGJXbHNZWEpwZEhrb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjblZ6YzJWc1UybHRhV3hoY21sMGVTaDRPaUJDYVhSQmNuSmhlU3dnZVRvZ1FtbDBRWEp5WVhrcE9pQnVkVzFpWlhJZ2UxeHVJQ0JwWmlBb2VDNXNaVzVuZEdnZ1BUMGdNQ2xjYmlBZ0lDQnlaWFIxY200Z01DNHdPMXh1SUNCamIyNXpkQ0JqYjIxdGIyNGdQU0I0TG1GdVpGZHBkR2hEYjNWdWRFSnBkSE1vZVN3Z2RISjFaU2s3WEc0Z0lISmxkSFZ5YmlCamIyMXRiMjRnTHlCNExteGxibWQwYUR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEoxYzNObGJFUnBjM1JoYm1ObEtIZzZJRUpwZEVGeWNtRjVMQ0I1T2lCQ2FYUkJjbkpoZVNrNklHNTFiV0psY2lCN1hHNGdJSEpsZEhWeWJpQm5aWFJFYVhOMFlXNWpaVVp5YjIxVGFXMXBiR0Z5YVhSNUtISjFjM05sYkZOcGJXbHNZWEpwZEhrb2VDd2dlU2twTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdjbTluYjNSSGIyeGtZbVZ5WjFOcGJXbHNZWEpwZEhrb2VEb2dRbWwwUVhKeVlYa3NJSGs2SUVKcGRFRnljbUY1S1RvZ2JuVnRZbVZ5SUh0Y2JpQWdZMjl1YzNRZ1kyOXRiVzl1SUQwZ2VDNWhibVJYYVhSb1EyOTFiblJDYVhSektIa3NJSFJ5ZFdVcE8xeHVJQ0JqYjI1emRDQjBiM1JoYkNBOUlIZ3VZMjkxYm5SQ2FYUnpLSFJ5ZFdVcElDc2dlUzVqYjNWdWRFSnBkSE1vZEhKMVpTazdYRzRnSUdOdmJuTjBJR3hsYmlBOUlIZ3ViR1Z1WjNSb08xeHVJQ0JqYjI1emRDQmthV1ptSUQwZ2JHVnVJQzBnZEc5MFlXd2dLeUJqYjIxdGIyNDdYRzRnSUdsbUlDZ29ZMjl0Ylc5dUlEMDlJR3hsYmlrZ2ZId2dLR1JwWm1ZZ1BUMGdiR1Z1S1NrZ2NtVjBkWEp1SURFdU1EdGNiaUFnWld4elpTQnlaWFIxY200Z1kyOXRiVzl1SUM4Z2RHOTBZV3dnS3lCa2FXWm1JQzhnS0RJZ0tpQnNaVzRnTFNCMGIzUmhiQ2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnliMmR2ZEVkdmJHUmlaWEpuUkdsemRHRnVZMlVvZURvZ1FtbDBRWEp5WVhrc0lIazZJRUpwZEVGeWNtRjVLVG9nYm5WdFltVnlJSHRjYmlBZ2NtVjBkWEp1SUdkbGRFUnBjM1JoYm1ObFJuSnZiVk5wYldsc1lYSnBkSGtvY205bmIzUkhiMnhrWW1WeVoxTnBiV2xzWVhKcGRIa29lQ3dnZVNrcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWjJWMFUybHRhV3hoY21sMGVVWnliMjFFYVhOMFlXNWpaU2hrYVhOMFlXNWpaVG9nYm5WdFltVnlLU0I3WEc0Z0lISmxkSFZ5YmlBeElDOGdLQ0F4SUNzZ1pHbHpkR0Z1WTJVcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWjJWMFJHbHpkR0Z1WTJWR2NtOXRVMmx0YVd4aGNtbDBlU2h6YVcxcGJHRnlhWFI1T2lCdWRXMWlaWElwSUh0Y2JpQWdjbVYwZFhKdUlERWdMeUJ6YVcxcGJHRnlhWFI1SUMwZ01UdGNibjFjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRFUnBkbVZ5YzJWVGRXSnpaWFFvYkdWdVozUm9PaUJ1ZFcxaVpYSXNJRzQ2SUc1MWJXSmxjaXdnWkdsemREb2dLR2t4T2lCdWRXMWlaWElzSUdreU9pQnVkVzFpWlhJcElEMCtJRzUxYldKbGNpa2dlMXh1SUNCbWRXNWpkR2x2YmlCdFlYaENlU2gyWVd4MVpYTTZJRWwwWlhKaFlteGxTWFJsY21GMGIzSThiblZ0WW1WeVBpd2diM0prWlhKQ2VUb2dLR2s2SUc1MWJXSmxjaWtnUFQ0Z2JuVnRZbVZ5S1NCN1hHNGdJQ0FnYkdWMElHMWhlRlpoYkhWbElEMGdiblZzYkR0Y2JpQWdJQ0JzWlhRZ2JXRjRUM0prWlhKQ2VTQTlJRzUxYkd3N1hHNWNiaUFnSUNCbWIzSWdLR052Ym5OMElHVnNaVzFsYm5RZ2IyWWdkbUZzZFdWektTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCbGJHVnRaVzUwVDNKa1pYSkNlU0E5SUc5eVpHVnlRbmtvWld4bGJXVnVkQ2s3WEc0Z0lDQWdJQ0JwWmlBb2JXRjRUM0prWlhKQ2VTQTlQU0J1ZFd4c0lIeDhJR1ZzWlcxbGJuUlBjbVJsY2tKNUlENGdiV0Y0VDNKa1pYSkNlU2tnZTF4dUlDQWdJQ0FnSUNCdFlYaFdZV3gxWlNBOUlHVnNaVzFsYm5RN1hHNGdJQ0FnSUNBZ0lHMWhlRTl5WkdWeVFua2dQU0JsYkdWdFpXNTBUM0prWlhKQ2VUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJRzFoZUZaaGJIVmxPMXh1SUNCOVhHNWNiaUFnWTI5dWMzUWdjM1ZpYzJWMElEMGdXM0poYm1SdmJVbHVkQ2hzWlc1bmRHZ2dMU0F4S1YwN1hHNGdJR052Ym5OMElHTnZiWEJzWlcxbGJuUWdQU0J1WlhjZ1UyVjBLQ2s3WEc1Y2JpQWdabTl5SUNoc1pYUWdhU0E5SURBN0lHa2dQQ0JzWlc1bmRHZzdJQ3NyYVNrZ2UxeHVJQ0FnSUdsbUlDZ2hjM1ZpYzJWMExtbHVZMngxWkdWektHa3BLVnh1SUNBZ0lDQWdZMjl0Y0d4bGJXVnVkQzVoWkdRb2FTazdYRzRnSUgxY2JseHVJQ0IzYUdsc1pTQW9jM1ZpYzJWMExteGxibWQwYUNBOElHNHBJSHRjYmlBZ0lDQmpiMjV6ZENCcFpIZ2dQU0J0WVhoQ2VTaGNiaUFnSUNBZ0lHTnZiWEJzWlcxbGJuUXVkbUZzZFdWektDa2dZWE1nU1hSbGNtRmliR1ZKZEdWeVlYUnZjanh1ZFcxaVpYSStMRnh1SUNBZ0lDQWdLR2twSUQwK0lFMWhkR2d1YldsdUxtRndjR3g1S0UxaGRHZ3NJSE4xWW5ObGRDNXRZWEFvWm5WdVkzUnBiMjRvZG1Gc0xDQnBibVJsZUNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1pHbHpkQ2hwTENCMllXd3BPMXh1SUNBZ0lDQWdmU2twS1R0Y2JpQWdJQ0JwWmlBb2FXUjRJQ0U5SUc1MWJHd3BJSHRjYmlBZ0lDQWdJSE4xWW5ObGRDNXdkWE5vS0dsa2VDazdYRzRnSUNBZ0lDQmpiMjF3YkdWdFpXNTBMbVJsYkdWMFpTaHBaSGdwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVJQ0J5WlhSMWNtNGdjM1ZpYzJWME8xeHVmVnh1SWwxOSIsIi8qKlxuICogRGVub3RlcyBhIHZlY3RvciBvZiBmbG9hdGluZyBwb2l0IHZhbHVlcy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgVmVjdG9yXG4gKiBAZXh0ZW5kcyB7RmxvYXQzMkFycmF5fVxuICovXG5leHBvcnQgY2xhc3MgVmVjdG9yIGV4dGVuZHMgRmxvYXQzMkFycmF5IHtcbn1cbi8qKlxuICogRGVub3RlcyBhIHR3by1kaW1lbnNpb25hbCBtYXRyaXguXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIE1hdHJpeFxuICogQGV4dGVuZHMge0FycmF5PFZlY3Rvcj59XG4gKi9cbmV4cG9ydCBjbGFzcyBNYXRyaXggZXh0ZW5kcyBBcnJheSB7XG59XG4vKipcbiAqIERlbm90ZXMgY2FydGVzaWFuIGNvb3JkaW5hdGVzLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBDb29yZGluYXRlc1xuICogQGV4dGVuZHMge01hdHJpeH1cbiAqL1xuZXhwb3J0IGNsYXNzIENvb3JkaW5hdGVzIGV4dGVuZHMgTWF0cml4IHtcbn1cbi8qKlxuICogRGVub3RlcyBhbiBhcnJheSBvZiBhcmJpdHJhcnktdHlwZWQgdmVjdG9ycy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgVmVjdG9yc1xuICogQGV4dGVuZHMge0FycmF5PGFueT59XG4gKi9cbmV4cG9ydCBjbGFzcyBWZWN0b3JzIGV4dGVuZHMgQXJyYXkge1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZEhsd1pTMWtaV05zWVhKaGRHbHZibk11YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SjBlWEJsTFdSbFkyeGhjbUYwYVc5dWN5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVRzN096czdPMGRCVFVjN1FVRkRTQ3hOUVVGTkxFOUJRVThzVFVGQlR5eFRRVUZSTEZsQlFWazdRMEZCUnp0QlFVVXpRenM3T3pzN08wZEJUVWM3UVVGRFNDeE5RVUZOTEU5QlFVOHNUVUZCVHl4VFFVRlJMRXRCUVdFN1EwRkJSenRCUVVVMVF6czdPenM3TzBkQlRVYzdRVUZEU0N4TlFVRk5MRTlCUVU4c1YwRkJXU3hUUVVGUkxFMUJRVTA3UTBGQlJ6dEJRVVV4UXpzN096czdPMGRCVFVjN1FVRkRTQ3hOUVVGTkxFOUJRVThzVDBGQlVTeFRRVUZSTEV0QlFWVTdRMEZCUnlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLbHh1SUNvZ1JHVnViM1JsY3lCaElIWmxZM1J2Y2lCdlppQm1iRzloZEdsdVp5QndiMmwwSUhaaGJIVmxjeTVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQVkyeGhjM01nVm1WamRHOXlYRzRnS2lCQVpYaDBaVzVrY3lCN1JteHZZWFF6TWtGeWNtRjVmVnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nVm1WamRHOXlJR1Y0ZEdWdVpITWdSbXh2WVhRek1rRnljbUY1SUh0OVhHNWNiaThxS2x4dUlDb2dSR1Z1YjNSbGN5QmhJSFIzYnkxa2FXMWxibk5wYjI1aGJDQnRZWFJ5YVhndVhHNGdLbHh1SUNvZ1FHVjRjRzl5ZEZ4dUlDb2dRR05zWVhOeklFMWhkSEpwZUZ4dUlDb2dRR1Y0ZEdWdVpITWdlMEZ5Y21GNVBGWmxZM1J2Y2o1OVhHNGdLaTljYm1WNGNHOXlkQ0JqYkdGemN5Qk5ZWFJ5YVhnZ1pYaDBaVzVrY3lCQmNuSmhlVHhXWldOMGIzSStJSHQ5WEc1Y2JpOHFLbHh1SUNvZ1JHVnViM1JsY3lCallYSjBaWE5wWVc0Z1kyOXZjbVJwYm1GMFpYTXVYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUdOc1lYTnpJRU52YjNKa2FXNWhkR1Z6WEc0Z0tpQkFaWGgwWlc1a2N5QjdUV0YwY21sNGZWeHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdRMjl2Y21ScGJtRjBaWE1nWlhoMFpXNWtjeUJOWVhSeWFYZ2dlMzFjYmx4dUx5b3FYRzRnS2lCRVpXNXZkR1Z6SUdGdUlHRnljbUY1SUc5bUlHRnlZbWwwY21GeWVTMTBlWEJsWkNCMlpXTjBiM0p6TGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQmpiR0Z6Y3lCV1pXTjBiM0p6WEc0Z0tpQkFaWGgwWlc1a2N5QjdRWEp5WVhrOFlXNTVQbjFjYmlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUZabFkzUnZjbk1nWlhoMFpXNWtjeUJCY25KaGVUeGhibmsrSUh0OVhHNWNiaThxS2x4dUlDb2dSR1Z1YjNSbGN5QmhJR1JwWTNScGIyNWhjbmtnWTI5dWRHRnBibWx1WnlCbWRXNWpkR2x2YmlCdmNIUnBiMjV6TGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQjBlWEJsSUU5d2RHbHZibk5jYmlBcUwxeHVaWGh3YjNKMElIUjVjR1VnVDNCMGFXOXVjeUE5SUh0YmJtRnRaVG9nYzNSeWFXNW5YVG9nWVc1NWZUdGNibHh1THlvcVhHNGdLaUJFWlc1dmRHVnpJR04xYzNSdmJTQmthWE4wWVc1alpTQnRaWFJ5YVdNZ1ltVjBkMlZsYmlCMGFHVWdkSGR2SUdkcGRtVnVJSFpsWTNSdmNuTXVYRzRnS2x4dUlDb2dRR1Y0Y0c5eWRGeHVJQ29nUUhSNWNHVWdSR2x6ZEdGdVkyVk5aWFJ5YVdOY2JpQXFJRUJ3WVhKaGJTQjdZVzU1ZlNCMk1TQlVhR1VnWm1seWMzUWdkbVZqZEc5eUxseHVJQ29nUUhCaGNtRnRJSHRoYm5sOUlIWXlJRlJvWlNCelpXTnZibVFnZG1WamRHOXlMbHh1SUNvZ1FISmxkSFZ5YmlCN2JuVnRZbVZ5ZlNCRWFYTjBZVzVqWlNCaVpYUjNaV1Z1SUhSb1pYTmxJSFIzYnlCMlpXTjBiM0p6TGx4dUlDb3ZYRzVsZUhCdmNuUWdkSGx3WlNCRWFYTjBZVzVqWlUxbGRISnBZeUE5SUNoMk1Ub2dZVzU1TENCMk1qb2dZVzU1S1NBOVBpQW9iblZ0WW1WeUtUdGNibHh1THlvcVhHNGdLaUJFWlc1dmRHVnpJR0VnYzJsdGNHeGxJSE4wY21sdVp5QjBieUJ6ZEhKcGJtY2daR2xqZEdsdmJtRnllUzVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQWRIbHdaU0JUZEhKcGJtZEVhV04wYVc5dVlYSjVYRzRnS2k5Y2JtVjRjRzl5ZENCMGVYQmxJRk4wY21sdVowUnBZM1JwYjI1aGNua2dQU0I3VzJ0bGVUb2djM1J5YVc1blhUb2djM1J5YVc1bmZUdGNiaUpkZlE9PSIsImltcG9ydCB7IFZlY3RvciB9IGZyb20gJy4vdHlwZS1kZWNsYXJhdGlvbnMnO1xuaW1wb3J0IHsgcmFuZG9tRmxvYXQsIHJhbmRvbUludCB9IGZyb20gJy4vcmFuZG9tJztcbi8qKlxuICogQXNzZXJ0cyBhIGNvbmRpdGlvbiBieSB0aHJvd2luZyBhbiBFcnJvci5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtjb25kaXRpb249ZmFsc2VdIENvbmRpdGlvbiB0byBhc3NlcnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2U9J0Fzc2VydGlvbiBlcnJvci4nXSBNZXNzYWdlIHRvIG91dHB1dC5cbiAqIEB0aHJvd3Mge0Vycm9yfVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0KGNvbmRpdGlvbiA9IGZhbHNlLCBtZXNzYWdlID0gJ0Fzc2VydGlvbiBlcnJvci4nKSB7XG4gICAgaWYgKCFjb25kaXRpb24pXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbn1cbi8qKlxuICogQ3JlYXRlcyBuZXcgdHdvLWRpbWVuc2lvbmFsIGFycmF5IGFuZCBmaWxscyBpdCB3aXRoIHRoZSB2YWx1ZSBnaXZlbi5cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gZGltZW5zaW9uMSBUaGUgZmlyc3QgZGltZW5zaW9uIG9mIHRoZSBjb29yZGluYXRlcyAobnVtYmVyIG9mIHJvd3MpLlxuICogQHBhcmFtIHtudW1iZXJ9IGRpbWVuc2lvbjIgVGhlIHNlY29uZCBkaW1lbnNpb24gb2YgdGhlIGNvb3JkaW5hdGVzIChudW1iZXIgb2YgY29sdW1ucykuXG4gKiBAcGFyYW0ge251bWJlcn0gW2ZpbGw9MF0gQSB2YWx1ZSB0byBmaWxsIHRoZSBjb29yZGluYXRlcyB3aXRoLlxuICogQHJldHVybiB7Q29vcmRpbmF0ZXN9IEEgdHdvLWRpbWVuc2lvbmFsIGZpbGxlZCB3aXRoIHRoZSB2YWx1ZSBnaXZlbi5cbiAqIEB0b2RvIE1pZ2h0IGJlIHNsb3cgc2luY2UgdXNlZCBBcnJheS5tYXAuIFByb2JhYmx5IG5lZWRzIHBlcmZvcm1hbmNlIHJldmlzaW9uLlxuICovXG5mdW5jdGlvbiBpbml0Q29vcmRpbmF0ZXMoZGltZW5zaW9uMSwgZGltZW5zaW9uMiwgZmlsbCA9IDApIHtcbiAgICByZXR1cm4gbmV3IEFycmF5KGRpbWVuc2lvbjEpLmZpbGwoZmlsbCkubWFwKCgpID0+IChuZXcgVmVjdG9yKGRpbWVuc2lvbjIpLmZpbGwoZmlsbCkpKTtcbn1cbi8qKlxuICogVHJhbnNwb3NlIG1hdHJpeC5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge01hdHJpeH0gbWF0cml4IFRoZSBtYXRyaXggdG8gYmUgdHJhbnNwb3NlZC5cbiAqIEByZXR1cm4ge01hdHJpeH0gVHJhbnNwb3NlZCBtYXRyaXguXG4gKiBAdG9kbyBNaWdodCBiZSBzbG93IHNpbmNlIHVzZWQgQXJyYXkubWFwLiBQcm9iYWJseSBuZWVkcyBwZXJmb3JtYW5jZSByZXZpc2lvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zcG9zZU1hdHJpeChtYXRyaXgpIHtcbiAgICByZXR1cm4gbmV3IEFycmF5KG1hdHJpeFswXS5sZW5ndGgpLmZpbGwoMClcbiAgICAgICAgLm1hcCgoXywgaSkgPT4gKG5ldyBWZWN0b3IobWF0cml4Lmxlbmd0aCkuZmlsbCgwKS5tYXAoKF8sIGopID0+IChtYXRyaXhbal1baV0pKSkpO1xufVxuLyoqXG4gKiBBZGRzIHR3byB2ZWN0b3JzIHdpdGggdGhlIHNlY29uZCBvbmUgdG8gYmUgbXVsdGlwbGllZCBieSB0aGUgZ2l2ZW4gcmF0aW8uXG4gKlxuICogQGV4cG9ydFxuICogQHBhcmFtIHtWZWN0b3J9IHAgVGhlIGZpcnN0IHZlY3RvciB0byBhZGQuXG4gKiBAcGFyYW0ge1ZlY3Rvcn0gcSBUaGUgc2Vjb25kIHZlY3RvciB0byBhZGQuXG4gKiBAcGFyYW0ge251bWJlcn0gW211bHRpcGxpZXI9MV0gQSBtdWx0aXBsaWVyIHRvIGJlIHVzZWQgYmVmb3JlIHRoZSBzZWNvbmQgdmVjdG9yIGlzIGFkZGVkLlxuICogQHJldHVybiB7VmVjdG9yfSBOZXcgdmVjdG9yIGNvbnRhaW5lZCB0aGUgcmVzdWx0IG9mIG9wZXJhdGlvbiBwK211bHRpcGxpZXIqcS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlY3RvckFkZChwLCBxLCBtdWx0aXBsaWVyID0gMSkge1xuICAgIGNvbnN0IG5JdGVtcyA9IHAubGVuZ3RoO1xuICAgIGFzc2VydChuSXRlbXMgPT0gcS5sZW5ndGgsICdWZWN0b3IgbGVuZ3RocyBkbyBub3QgbWF0Y2guJyk7XG4gICAgY29uc3QgdG90YWwgPSBuZXcgVmVjdG9yKG5JdGVtcyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwLmxlbmd0aDsgKytpKVxuICAgICAgICB0b3RhbFtpXSA9IHBbaV0gKyBtdWx0aXBsaWVyICogcVtpXTtcbiAgICByZXR1cm4gdG90YWw7XG59XG4vKipcbiAqIFN1bXMgdGhlIHZlY3RvcidzIGl0ZW1zLlxuICpcbiAqIEBwYXJhbSB7VmVjdG9yfSB2IFRoZSB2ZWN0b3IgdG8gYmUgc3VtbWVkLlxuICogQHJldHVybiB7bnVtYmVyfSBUaGUgdmVjdG9yJ3MgaXRlbXMgc3VtLlxuICovXG5mdW5jdGlvbiBpdGVtc1N1bSh2KSB7XG4gICAgbGV0IHRvdGFsID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHYubGVuZ3RoOyArK2kpXG4gICAgICAgIHRvdGFsICs9IHZbaV07XG4gICAgcmV0dXJuIHRvdGFsO1xufVxuLyoqXG4gKiBTdXFhcmVzIHRoZSB2ZWN0b3IncyBpdGVtcy5cbiAqXG4gKiBAcGFyYW0ge1ZlY3Rvcn0gdiBUaGUgdmVjdG9yIHRvIHNxdWFyZS5cbiAqIEByZXR1cm4ge1ZlY3Rvcn0gQSBuZXcgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG9yaWdpbmFsJ3MgaXRlbXMgc3F1YXJlZC5cbiAqL1xuZnVuY3Rpb24gdmVjdG9yU3F1YXJlKHYpIHtcbiAgICBjb25zdCBuSXRlbXMgPSB2Lmxlbmd0aDtcbiAgICBjb25zdCB0b3RhbCA9IG5ldyBWZWN0b3Iobkl0ZW1zKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHYubGVuZ3RoOyArK2kpXG4gICAgICAgIHRvdGFsW2ldID0gdltpXSAqIHZbaV07XG4gICAgcmV0dXJuIHRvdGFsO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHZlY3Rvckxlbmd0aCh2KSB7XG4gICAgbGV0IHNxclN1bSA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2Lmxlbmd0aDsgaSsrKVxuICAgICAgICBzcXJTdW0gKz0gdltpXSAqIHZbaV07XG4gICAgcmV0dXJuIE1hdGguc3FydChzcXJTdW0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHZlY3RvckRvdFByb2R1Y3QodjEsIHYyKSB7XG4gICAgaWYgKHYxLmxlbmd0aCAhPSB2Mi5sZW5ndGgpXG4gICAgICAgIHRocm93IEVycm9yKCdUaGUgZGltZW5zaW9uYWxpdHkgb2YgdGhlIHZlY3RvcnMgbXVzdCBtYXRjaCcpO1xuICAgIGxldCBwcm9kID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHYxLmxlbmd0aDsgaSsrKVxuICAgICAgICBwcm9kICs9IHYxW2ldICogdjJbaV07XG4gICAgcmV0dXJuIHByb2Q7XG59XG4vKipcbiAqIENyZWF0ZXMgYSBtYXRyaXggZmlsbGVkIHdpdGggcmFuZG9tIGZsb2F0aW5nIHBvaW50IHZhbHVlcy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge251bWJlcn0gZGltZW5zaW9uMSBUaGUgZmlyc3QgZGltZW5zaW9uIG9mIHRoZSBtYXRyaXguXG4gKiBAcGFyYW0ge251bWJlcn0gZGltZW5zaW9uMiBUaGUgc2Vjb25kIGRpbWVuc2lvbiBvZiB0aGUgbWF0cml4LlxuICogQHBhcmFtIHtudW1iZXJ9IFtzY2FsZT0xLl0gTWF4IHZhbHVlIGdpdmVuIGJ5IHJhbmRvbSBnZW5lcmF0b3IuXG4gKiBAcmV0dXJuIHtNYXRyaXh9IEEgbmV3IG1hdHJpeCBmaWxsZWQgd2l0aCByYW5kb20gZmxvYXRpbmcgcG9pbnQgIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbGxSYW5kb21NYXRyaXgoZGltZW5zaW9uMSwgZGltZW5zaW9uMiwgc2NhbGUgPSAxLikge1xuICAgIGNvbnN0IG1hdHJpeCA9IGluaXRDb29yZGluYXRlcyhkaW1lbnNpb24xLCBkaW1lbnNpb24yKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRpbWVuc2lvbjE7ICsraSkge1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGRpbWVuc2lvbjI7ICsrailcbiAgICAgICAgICAgIG1hdHJpeFtpXVtqXSA9IHJhbmRvbUZsb2F0KHNjYWxlKTtcbiAgICB9XG4gICAgcmV0dXJuIG1hdHJpeDtcbn1cbi8qKlxuICogQ2FsY3VsYXRlcyBFdWNsaWRlYW4gZGlzdGFuY2UgYmV0d2VlbiB0d28gdmVjdG9ycy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge1ZlY3Rvcn0gcCBUaGUgZmlyc3QgdmVjdG9yLlxuICogQHBhcmFtIHtWZWN0b3J9IHEgVGhlIHNlY29uZCB2ZWN0b3IuXG4gKiBAcmV0dXJuIHtudW1iZXJ9IEV1Y2xpZGVhbiBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBnaXZlbiB2ZWN0b3JzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlRXVjbGlkZWFuRGlzdGFuY2UocCwgcSkge1xuICAgIGNvbnN0IGRpZmYgPSB2ZWN0b3JBZGQocCwgcSwgLTEpO1xuICAgIGNvbnN0IHNxZGlmZiA9IHZlY3RvclNxdWFyZShkaWZmKTtcbiAgICBjb25zdCBzcWRpZmZTdW1tID0gaXRlbXNTdW0oc3FkaWZmKTtcbiAgICByZXR1cm4gTWF0aC5zcXJ0KHNxZGlmZlN1bW0pO1xufVxuLyoqXG4gKiBDcmVhdGVzIGEgZGlzdGFuY2UgbWF0cml4IHVzaW5nIGEgY3VzdG9tIGRpc3RhbmNlIGZ1bmN0aW9uLlxuICpcbiAqIEBleHBvcnRcbiAqIEBwYXJhbSB7VmVjdG9yc30gZGF0YSBJbnB1dCB2ZWN0b3JzIHRvIGNhbGN1bGF0ZSBkaXN0YW5jZXMuXG4gKiBAcGFyYW0ge0Rpc3RhbmNlTWV0cmljfSBkaXN0YW5jZSBDdXN0b20gZGlzdGFuY2UgZnVuY3Rpb24uXG4gKiBAcmV0dXJuIHtNYXRyaXh9IENhbGN1bGF0ZWQgY3VzdG9tIGRpc3RhbmNlIG1hdHJpeC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbGNEaXN0YW5jZU1hdHJpeChkYXRhLCBkaXN0YW5jZSkge1xuICAgIGNvbnN0IG5JdGVtcyA9IGRhdGEubGVuZ3RoO1xuICAgIGNvbnN0IG1hdHJpeCA9IGluaXRDb29yZGluYXRlcyhuSXRlbXMsIG5JdGVtcywgMCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuSXRlbXM7ICsraSkge1xuICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCBuSXRlbXM7ICsraikge1xuICAgICAgICAgICAgY29uc3QgZCA9IChkYXRhW2ldID09IG51bGwpIHx8IChkYXRhW2pdID09IG51bGwpID8gMCA6IGRpc3RhbmNlKGRhdGFbaV0sIGRhdGFbal0pO1xuICAgICAgICAgICAgbWF0cml4W2ldW2pdID0gbWF0cml4W2pdW2ldID0gZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWF0cml4O1xufVxuLyoqIEdlbmVyYXRlcyBhcnJheSBmcm9tIGEgcmFuZ2UgW2JlZ2luOyBlbmRdIG9yIFtiZWdpbjsgZW5kKSBpZiBlbmRFeGNsdXNpdmUuICoqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlblJhbmdlKGJlZ2luLCBlbmQsIGVuZEV4Y2x1c2l2ZSA9IGZhbHNlKSB7XG4gICAgY29uc3Qgbkl0ZW1zID0gZW5kIC0gYmVnaW4gKyAoZW5kRXhjbHVzaXZlID8gMCA6IDEpO1xuICAgIGNvbnN0IHNlcmllcyA9IG5ldyBJbnQzMkFycmF5KG5JdGVtcyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuSXRlbXM7ICsraSlcbiAgICAgICAgc2VyaWVzW2ldID0gYmVnaW4gKyBpO1xuICAgIHJldHVybiBzZXJpZXM7XG59XG4vKipcbiAqIFJldHVybnMgb3JkZXIgb2YgdmFsdWVzIGFzIGlmIHRoZXkgYXJlIHNvcnRlZC5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge2FueVtdfSB2YWx1ZXMgSW5wdXQgYXJyYXkuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtyZXZlcnNlPWZhbHNlXSBXaGV0aGVyIHRvIHJldHVybiByZXZlcnNlZCBvcmRlci5cbiAqIEByZXR1cm4ge251bWJlcltdfSBUaGUgb3JkZXIgY29tcHV0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcmdTb3J0KHZhbHVlcywgcmV2ZXJzZSA9IGZhbHNlKSB7XG4gICAgY29uc3Qgc29ydGZuID0gcmV2ZXJzZSA/IChhLCBiKSA9PiAoYlswXSAtIGFbMF0pIDogKGEsIGIpID0+IChhWzBdIC0gYlswXSk7XG4gICAgY29uc3QgZGVjb3IgPSAodiwgaSkgPT4gW3YsIGldOyAvLyBzZXQgaW5kZXggdG8gdmFsdWVcbiAgICBjb25zdCB1bmRlY29yID0gKGEpID0+IGFbMV07IC8vIGxlYXZlIG9ubHkgaW5kZXhcbiAgICBjb25zdCBfYXJnc29ydCA9IChhcnIpID0+IGFyci5tYXAoZGVjb3IpLnNvcnQoc29ydGZuKS5tYXAodW5kZWNvcik7XG4gICAgcmV0dXJuIF9hcmdzb3J0KHZhbHVlcyk7XG59XG4vKipcbiAqIFJldHVybnMgdGhlIGluZGV4ZXMgb2YgdGhlIG1vc3QgZGl2ZXJzZSBvYmplY3RzIGFjY29yZGluZyB0byB0aGUgZGlzdCBmdW5jdGlvblxuICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aCB0b3RhbCBudW1iZXIgb2Ygb2JqZWN0c1xuICogQHBhcmFtIHtudW1iZXJ9IG4gbnVtYmVyIG9mIGRpdmVyc2UgZWxlbWVudHMgdG8gZmluZFxuICogQHBhcmFtIHsoaTE6IG51bWJlciwgaTI6IG51bWJlcikgPT4gbnVtYmVyfSBkaXN0IGEgZnVuY3Rpb24gd2hpY2ggY2FsY3VsYXRlcyBkaXN0YW5jZSBiZXR3ZWVuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHdvIG9iamVjdHMgdXNpbmcgdGhlaXIgaW5kZXhlc1xuICogQHJldHVybnMge251bWJlcltdfSBUaGUgaW5kZXhlcyBvZiB0aGUgbW9zdCBkaXZlcnNlIG9iamVjdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERpdmVyc2VTdWJzZXQobGVuZ3RoLCBuLCBkaXN0KSB7XG4gICAgZnVuY3Rpb24gbWF4QnkodmFsdWVzLCBvcmRlckJ5KSB7XG4gICAgICAgIGxldCBtYXhWYWx1ZSA9IG51bGw7XG4gICAgICAgIGxldCBtYXhPcmRlckJ5ID0gbnVsbDtcbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHZhbHVlcykge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudE9yZGVyQnkgPSBvcmRlckJ5KGVsZW1lbnQpO1xuICAgICAgICAgICAgaWYgKG1heE9yZGVyQnkgPT0gbnVsbCB8fCBlbGVtZW50T3JkZXJCeSA+IG1heE9yZGVyQnkpIHtcbiAgICAgICAgICAgICAgICBtYXhWYWx1ZSA9IGVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgbWF4T3JkZXJCeSA9IGVsZW1lbnRPcmRlckJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXhWYWx1ZTtcbiAgICB9XG4gICAgY29uc3Qgc3Vic2V0ID0gW3JhbmRvbUludChsZW5ndGggLSAxKV07XG4gICAgY29uc3QgY29tcGxlbWVudCA9IG5ldyBTZXQoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7XG4gICAgICAgIGlmICghc3Vic2V0LmluY2x1ZGVzKGkpKVxuICAgICAgICAgICAgY29tcGxlbWVudC5hZGQoaSk7XG4gICAgfVxuICAgIHdoaWxlIChzdWJzZXQubGVuZ3RoIDwgbikge1xuICAgICAgICBjb25zdCBpZHggPSBtYXhCeShjb21wbGVtZW50LnZhbHVlcygpLCAoaSkgPT4gTWF0aC5taW4uYXBwbHkoTWF0aCwgc3Vic2V0Lm1hcChmdW5jdGlvbiAodmFsLCBpbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuIGRpc3QoaSwgdmFsKTtcbiAgICAgICAgfSkpKTtcbiAgICAgICAgaWYgKGlkeCkge1xuICAgICAgICAgICAgc3Vic2V0LnB1c2goaWR4KTtcbiAgICAgICAgICAgIGNvbXBsZW1lbnQuZGVsZXRlKGlkeCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHN1YnNldDtcbn1cbi8qKlxuICogUmV0dXJucyBub3JtYWxpemVkIHZlY3RvclxuICogQHBhcmFtIHtWZWN0b3J9IGRhdGEgbnVtZXJpY2FsIGFycmF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemUoZGF0YSkge1xuICAgIGxldCBtZWFuID0gMDtcbiAgICBsZXQgc3RkID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyArK2kpXG4gICAgICAgIG1lYW4gKz0gZGF0YVtpXTtcbiAgICBtZWFuIC89IGRhdGEubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsraSlcbiAgICAgICAgc3RkICs9IChkYXRhW2ldIC0gbWVhbikgKiAoZGF0YVtpXSAtIG1lYW4pO1xuICAgIHN0ZCA9IE1hdGguc3FydChzdGQgLyBkYXRhLmxlbmd0aCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgKytpKVxuICAgICAgICBkYXRhW2ldID0gKGRhdGFbaV0gLSBtZWFuKSAvIHN0ZDtcbiAgICByZXR1cm4gZGF0YTtcbn1cbi8qKlxuICogRmluZHMgc2V0IGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gbGlzdHMuXG4gKiBAcGFyYW0ge2FueVtdfSBhIFRoZSBmaXJzdCBsaXN0LlxuICogQHBhcmFtIHthbnlbXX0gYiBUaGUgc2Vjb25kIGxpc3QuXG4gKiBAcmV0dXJuIHthbnlbXX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldERpZmZlcmVuY2UoYSwgYikge1xuICAgIGNvbnN0IGJTZXQgPSBuZXcgU2V0KGIpO1xuICAgIHJldHVybiBBcnJheS5mcm9tKG5ldyBTZXQoYS5maWx0ZXIoKHgpID0+ICFiU2V0Lmhhcyh4KSkpLnZhbHVlcygpKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRtVmpkRzl5TFc5d1pYSmhkR2x2Ym5NdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUoyWldOMGIzSXRiM0JsY21GMGFXOXVjeTUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeFBRVUZQTEVWQlFWTXNUVUZCVFN4RlFVRjFReXhOUVVGTkxIRkNRVUZ4UWl4RFFVRkRPMEZCUTNwR0xFOUJRVThzUlVGQlF5eFhRVUZYTEVWQlFVVXNVMEZCVXl4RlFVRkRMRTFCUVUwc1ZVRkJWU3hEUVVGRE8wRkJSV2hFT3pzN096czdPMGRCVDBjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzVFVGQlRTeERRVUZETEZsQlFYRkNMRXRCUVVzc1JVRkJSU3hWUVVGclFpeHJRa0ZCYTBJN1NVRkRja1lzU1VGQlNTeERRVUZETEZOQlFWTTdVVUZEV2l4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBGQlF6ZENMRU5CUVVNN1FVRkZSRHM3T3pzN096czdSMEZSUnp0QlFVTklMRk5CUVZNc1pVRkJaU3hEUVVGRExGVkJRV3RDTEVWQlFVVXNWVUZCYTBJc1JVRkJSU3hQUVVGbExFTkJRVU03U1VGREwwVXNUMEZCVHl4SlFVRkpMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTXNTVUZCU1N4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVONlJpeERRVUZETzBGQlJVUTdPenM3T3pzN1IwRlBSenRCUVVOSUxFMUJRVTBzVlVGQlZTeGxRVUZsTEVOQlFVTXNUVUZCWXp0SlFVTTFReXhQUVVGUExFbEJRVWtzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMU5CUTNaRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zU1VGQlNTeE5RVUZOTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRM1JHTEVOQlFVTTdRVUZGUkRzN096czdPenM3UjBGUlJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4VFFVRlRMRU5CUVVNc1EwRkJVeXhGUVVGRkxFTkJRVk1zUlVGQlJTeGhRVUZ4UWl4RFFVRkRPMGxCUTNCRkxFMUJRVTBzVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkZlRUlzVFVGQlRTeERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRU5CUVVNc1RVRkJUU3hGUVVGRkxEaENRVUU0UWl4RFFVRkRMRU5CUVVNN1NVRkZNMFFzVFVGQlRTeExRVUZMTEVkQlFVY3NTVUZCU1N4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03U1VGRmFrTXNTMEZCU3l4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRVVVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRE8xRkJReTlDTEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NWVUZCVlN4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVVYwUXl4UFFVRlBMRXRCUVVzc1EwRkJRenRCUVVObUxFTkJRVU03UVVGRlJEczdPenM3UjBGTFJ6dEJRVU5JTEZOQlFWTXNVVUZCVVN4RFFVRkRMRU5CUVZNN1NVRkRla0lzU1VGQlNTeExRVUZMTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUldRc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETzFGQlF5OUNMRXRCUVVzc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGYUVJc1QwRkJUeXhMUVVGTExFTkJRVU03UVVGRFppeERRVUZETzBGQlJVUTdPenM3TzBkQlMwYzdRVUZEU0N4VFFVRlRMRmxCUVZrc1EwRkJReXhEUVVGVE8wbEJRemRDTEUxQlFVMHNUVUZCVFN4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU03U1VGRGVFSXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTVUZGYWtNc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETzFGQlF5OUNMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlJYcENMRTlCUVU4c1MwRkJTeXhEUVVGRE8wRkJRMllzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4WlFVRlpMRU5CUVVNc1EwRkJVenRKUVVOd1F5eEpRVUZKTEUxQlFVMHNSMEZCVnl4RFFVRkRMRU5CUVVNN1NVRkRka0lzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCVnl4RFFVRkRMRVZCUVVVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RlFVRkZPMUZCUTNaRExFMUJRVTBzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzaENMRTlCUVU4c1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVTXpRaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEdkQ1FVRm5RaXhEUVVGRExFVkJRVlVzUlVGQlJTeEZRVUZWTzBsQlEzSkVMRWxCUVVrc1JVRkJSU3hEUVVGRExFMUJRVTBzU1VGQlNTeEZRVUZGTEVOQlFVTXNUVUZCVFR0UlFVTjRRaXhOUVVGTkxFdEJRVXNzUTBGQlF5dzRRMEZCT0VNc1EwRkJReXhEUVVGRE8wbEJRemxFTEVsQlFVa3NTVUZCU1N4SFFVRlhMRU5CUVVNc1EwRkJRenRKUVVOeVFpeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRlhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETEUxQlFVMHNSVUZCUlN4RFFVRkRMRVZCUVVVN1VVRkRlRU1zU1VGQlNTeEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZEZUVJc1QwRkJUeXhKUVVGSkxFTkJRVU03UVVGRFpDeERRVUZETzBGQlJVUTdPenM3T3pzN08wZEJVVWM3UVVGRFNDeE5RVUZOTEZWQlFWVXNaMEpCUVdkQ0xFTkJRVU1zVlVGQmEwSXNSVUZCUlN4VlFVRnJRaXhGUVVGRkxGRkJRV2RDTEVWQlFVVTdTVUZEZWtZc1RVRkJUU3hOUVVGTkxFZEJRVWNzWlVGQlpTeERRVUZETEZWQlFWVXNSVUZCUlN4VlFVRlZMRU5CUVVNc1EwRkJRenRKUVVWMlJDeExRVUZMTEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRExFZEJRVWNzVlVGQlZTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZPMUZCUTI1RExFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhWUVVGVkxFVkJRVVVzUlVGQlJTeERRVUZETzFsQlEycERMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4WFFVRlhMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03UzBGRGNrTTdTVUZEUkN4UFFVRlBMRTFCUVUwc1EwRkJRenRCUVVOb1FpeERRVUZETzBGQlJVUTdPenM3T3pzN1IwRlBSenRCUVVOSUxFMUJRVTBzVlVGQlZTd3dRa0ZCTUVJc1EwRkJReXhEUVVGVExFVkJRVVVzUTBGQlV6dEpRVU0zUkN4TlFVRk5MRWxCUVVrc1IwRkJSeXhUUVVGVExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMnBETEUxQlFVMHNUVUZCVFN4SFFVRkhMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU5zUXl4TlFVRk5MRlZCUVZVc1IwRkJSeXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTVUZEY0VNc1QwRkJUeXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMEZCUXk5Q0xFTkJRVU03UVVGRlJEczdPenM3T3p0SFFVOUhPMEZCUTBnc1RVRkJUU3hWUVVGVkxHdENRVUZyUWl4RFFVRkRMRWxCUVdFc1JVRkJSU3hSUVVGM1FqdEpRVU40UlN4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETzBsQlF6TkNMRTFCUVUwc1RVRkJUU3hIUVVGSExHVkJRV1VzUTBGQlF5eE5RVUZOTEVWQlFVVXNUVUZCVFN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJSV3hFTEV0QlFVc3NTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVN1VVRkRMMElzUzBGQlN5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVWQlFVVXNSVUZCUlN4RFFVRkRMRVZCUVVVN1dVRkRia01zVFVGQlRTeERRVUZETEVkQlFWY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTXhSaXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRUUVVOcVF6dExRVU5HTzBsQlEwUXNUMEZCVHl4TlFVRk5MRU5CUVVNN1FVRkRhRUlzUTBGQlF6dEJRVVZFTEd0R1FVRnJSanRCUVVOc1JpeE5RVUZOTEZWQlFWVXNVVUZCVVN4RFFVRkRMRXRCUVdFc1JVRkJSU3hIUVVGWExFVkJRVVVzV1VGQldTeEhRVUZITEV0QlFVczdTVUZEZGtVc1RVRkJUU3hOUVVGTkxFZEJRVWNzUjBGQlJ5eEhRVUZITEV0QlFVc3NSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOd1JDeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEpRVVYwUXl4TFFVRkxMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJTeERRVUZETEVkQlFVY3NUVUZCVFN4RlFVRkZMRVZCUVVVc1EwRkJRenRSUVVNM1FpeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1MwRkJTeXhIUVVGSExFTkJRVU1zUTBGQlF6dEpRVVY0UWl4UFFVRlBMRTFCUVUwc1EwRkJRenRCUVVOb1FpeERRVUZETzBGQlJVUTdPenM3T3pzN1IwRlBSenRCUVVOSUxFMUJRVTBzVlVGQlZTeFBRVUZQTEVOQlFVTXNUVUZCWVN4RlFVRkZMRTlCUVU4c1IwRkJSeXhMUVVGTE8wbEJRM0JFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZSTEVWQlFVVXNRMEZCVVN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRlJMRVZCUVVVc1EwRkJVU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjJSeXhOUVVGTkxFdEJRVXNzUjBGQlJ5eERRVUZETEVOQlFVMHNSVUZCUlN4RFFVRlRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc2NVSkJRWEZDTzBsQlEyeEZMRTFCUVUwc1QwRkJUeXhIUVVGSExFTkJRVU1zUTBGQlVTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eHRRa0ZCYlVJN1NVRkRka1FzVFVGQlRTeFJRVUZSTEVkQlFVY3NRMEZCUXl4SFFVRlZMRVZCUVVVc1JVRkJSU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVNeFJTeFBRVUZQTEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRCUVVNeFFpeERRVUZETzBGQlJVUTdPenM3T3pzN1IwRlBSenRCUVVOSUxFMUJRVTBzVlVGQlZTeG5Ra0ZCWjBJc1EwRkJReXhOUVVGakxFVkJRVVVzUTBGQlV5eEZRVUZGTEVsQlFYZERPMGxCUTJ4SExGTkJRVk1zUzBGQlN5eERRVUZETEUxQlFXZERMRVZCUVVVc1QwRkJPRUk3VVVGRE4wVXNTVUZCU1N4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRM0JDTEVsQlFVa3NWVUZCVlN4SFFVRkhMRWxCUVVrc1EwRkJRenRSUVVWMFFpeExRVUZMTEUxQlFVMHNUMEZCVHl4SlFVRkpMRTFCUVUwc1JVRkJSVHRaUVVNMVFpeE5RVUZOTEdOQlFXTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03V1VGRGVFTXNTVUZCU1N4VlFVRlZMRWxCUVVrc1NVRkJTU3hKUVVGSkxHTkJRV01zUjBGQlJ5eFZRVUZWTEVWQlFVVTdaMEpCUTNKRUxGRkJRVkVzUjBGQlJ5eFBRVUZQTEVOQlFVTTdaMEpCUTI1Q0xGVkJRVlVzUjBGQlJ5eGpRVUZqTEVOQlFVTTdZVUZETjBJN1UwRkRSanRSUVVORUxFOUJRVThzVVVGQlVTeERRVUZETzBsQlEyeENMRU5CUVVNN1NVRkZSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU4yUXl4TlFVRk5MRlZCUVZVc1IwRkJSeXhKUVVGSkxFZEJRVWNzUlVGQlJTeERRVUZETzBsQlJUZENMRXRCUVVzc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVOQlFVTXNSMEZCUnl4TlFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRExFVkJRVVU3VVVGREwwSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEzSkNMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTMEZEY2tJN1NVRkZSQ3hQUVVGUExFMUJRVTBzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RlFVRkZPMUZCUTNoQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEV0QlFVc3NRMEZEWml4VlFVRlZMRU5CUVVNc1RVRkJUU3hGUVVFNFFpeEZRVU12UXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hGUVVGRkxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNWVUZCVXl4SFFVRkhMRVZCUVVVc1MwRkJTenRaUVVONFJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4RFFVRkRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGRFSXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMUFzU1VGQlNTeEhRVUZITEVWQlFVVTdXVUZEVUN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFsQlEycENMRlZCUVZVc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVMEZEZUVJN1MwRkRSanRKUVVORUxFOUJRVThzVFVGQlRTeERRVUZETzBGQlEyaENMRU5CUVVNN1FVRkZSRHM3TzBkQlIwYzdRVUZEU0N4TlFVRk5MRlZCUVZVc1UwRkJVeXhEUVVGRExFbEJRVms3U1VGRGNFTXNTVUZCU1N4SlFVRkpMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRMklzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUlZvc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETzFGQlEyeERMRWxCUVVrc1NVRkJTU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGYkVJc1NVRkJTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZGY0VJc1MwRkJTeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUlVGQlJTeERRVUZETzFGQlEyeERMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVVM1F5eEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMGxCUlc1RExFdEJRVXNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVWQlFVVXNRMEZCUXp0UlFVTnNReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRPMGxCUlc1RExFOUJRVThzU1VGQlNTeERRVUZETzBGQlEyUXNRMEZCUXp0QlFVVkVPenM3T3p0SFFVdEhPMEZCUTBnc1RVRkJUU3hWUVVGVkxHRkJRV0VzUTBGQlF5eERRVUZSTEVWQlFVVXNRMEZCVVR0SlFVTTVReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVONFFpeFBRVUZQTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RFFVRkRPMEZCUTNKRkxFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZTAxaGRISnBlQ3dnVm1WamRHOXlMQ0JEYjI5eVpHbHVZWFJsY3l3Z1ZtVmpkRzl5Y3l3Z1JHbHpkR0Z1WTJWTlpYUnlhV045SUdaeWIyMGdKeTR2ZEhsd1pTMWtaV05zWVhKaGRHbHZibk1uTzF4dWFXMXdiM0owSUh0eVlXNWtiMjFHYkc5aGRDd2djbUZ1Wkc5dFNXNTBmU0JtY205dElDY3VMM0poYm1SdmJTYzdYRzVjYmk4cUtseHVJQ29nUVhOelpYSjBjeUJoSUdOdmJtUnBkR2x2YmlCaWVTQjBhSEp2ZDJsdVp5QmhiaUJGY25KdmNpNWNiaUFxWEc0Z0tpQkFaWGh3YjNKMFhHNGdLaUJBY0dGeVlXMGdlMkp2YjJ4bFlXNTlJRnRqYjI1a2FYUnBiMjQ5Wm1Gc2MyVmRJRU52Ym1ScGRHbHZiaUIwYnlCaGMzTmxjblF1WEc0Z0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cyMWxjM05oWjJVOUowRnpjMlZ5ZEdsdmJpQmxjbkp2Y2k0blhTQk5aWE56WVdkbElIUnZJRzkxZEhCMWRDNWNiaUFxSUVCMGFISnZkM01nZTBWeWNtOXlmVnh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1lYTnpaWEowS0dOdmJtUnBkR2x2YmpvZ1ltOXZiR1ZoYmlBOUlHWmhiSE5sTENCdFpYTnpZV2RsT2lCemRISnBibWNnUFNBblFYTnpaWEowYVc5dUlHVnljbTl5TGljcElIdGNiaUFnYVdZZ0tDRmpiMjVrYVhScGIyNHBYRzRnSUNBZ2RHaHliM2NnYm1WM0lFVnljbTl5S0cxbGMzTmhaMlVwTzF4dWZWeHVYRzR2S2lwY2JpQXFJRU55WldGMFpYTWdibVYzSUhSM2J5MWthVzFsYm5OcGIyNWhiQ0JoY25KaGVTQmhibVFnWm1sc2JITWdhWFFnZDJsMGFDQjBhR1VnZG1Gc2RXVWdaMmwyWlc0dVhHNGdLbHh1SUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUdScGJXVnVjMmx2YmpFZ1ZHaGxJR1pwY25OMElHUnBiV1Z1YzJsdmJpQnZaaUIwYUdVZ1kyOXZjbVJwYm1GMFpYTWdLRzUxYldKbGNpQnZaaUJ5YjNkektTNWNiaUFxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JrYVcxbGJuTnBiMjR5SUZSb1pTQnpaV052Ym1RZ1pHbHRaVzV6YVc5dUlHOW1JSFJvWlNCamIyOXlaR2x1WVhSbGN5QW9iblZ0WW1WeUlHOW1JR052YkhWdGJuTXBMbHh1SUNvZ1FIQmhjbUZ0SUh0dWRXMWlaWEo5SUZ0bWFXeHNQVEJkSUVFZ2RtRnNkV1VnZEc4Z1ptbHNiQ0IwYUdVZ1kyOXZjbVJwYm1GMFpYTWdkMmwwYUM1Y2JpQXFJRUJ5WlhSMWNtNGdlME52YjNKa2FXNWhkR1Z6ZlNCQklIUjNieTFrYVcxbGJuTnBiMjVoYkNCbWFXeHNaV1FnZDJsMGFDQjBhR1VnZG1Gc2RXVWdaMmwyWlc0dVhHNGdLaUJBZEc5a2J5Qk5hV2RvZENCaVpTQnpiRzkzSUhOcGJtTmxJSFZ6WldRZ1FYSnlZWGt1YldGd0xpQlFjbTlpWVdKc2VTQnVaV1ZrY3lCd1pYSm1iM0p0WVc1alpTQnlaWFpwYzJsdmJpNWNiaUFxTDF4dVpuVnVZM1JwYjI0Z2FXNXBkRU52YjNKa2FXNWhkR1Z6S0dScGJXVnVjMmx2YmpFNklHNTFiV0psY2l3Z1pHbHRaVzV6YVc5dU1qb2diblZ0WW1WeUxDQm1hV3hzT2lCdWRXMWlaWElnUFNBd0tUb2dRMjl2Y21ScGJtRjBaWE1nZTF4dUlDQnlaWFIxY200Z2JtVjNJRUZ5Y21GNUtHUnBiV1Z1YzJsdmJqRXBMbVpwYkd3b1ptbHNiQ2t1YldGd0tDZ3BJRDArSUNodVpYY2dWbVZqZEc5eUtHUnBiV1Z1YzJsdmJqSXBMbVpwYkd3b1ptbHNiQ2twS1R0Y2JuMWNibHh1THlvcVhHNGdLaUJVY21GdWMzQnZjMlVnYldGMGNtbDRMbHh1SUNwY2JpQXFJRUJsZUhCdmNuUmNiaUFxSUVCd1lYSmhiU0I3VFdGMGNtbDRmU0J0WVhSeWFYZ2dWR2hsSUcxaGRISnBlQ0IwYnlCaVpTQjBjbUZ1YzNCdmMyVmtMbHh1SUNvZ1FISmxkSFZ5YmlCN1RXRjBjbWw0ZlNCVWNtRnVjM0J2YzJWa0lHMWhkSEpwZUM1Y2JpQXFJRUIwYjJSdklFMXBaMmgwSUdKbElITnNiM2NnYzJsdVkyVWdkWE5sWkNCQmNuSmhlUzV0WVhBdUlGQnliMkpoWW14NUlHNWxaV1J6SUhCbGNtWnZjbTFoYm1ObElISmxkbWx6YVc5dUxseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnZEhKaGJuTndiM05sVFdGMGNtbDRLRzFoZEhKcGVEb2dUV0YwY21sNEtUb2dUV0YwY21sNElIdGNiaUFnY21WMGRYSnVJRzVsZHlCQmNuSmhlU2h0WVhSeWFYaGJNRjB1YkdWdVozUm9LUzVtYVd4c0tEQXBYRzRnSUNBZ0xtMWhjQ2dvWHl3Z2FTa2dQVDRnS0c1bGR5QldaV04wYjNJb2JXRjBjbWw0TG14bGJtZDBhQ2t1Wm1sc2JDZ3dLUzV0WVhBb0tGOHNJR29wSUQwK0lDaHRZWFJ5YVhoYmFsMWJhVjBwS1NrcE8xeHVmVnh1WEc0dktpcGNiaUFxSUVGa1pITWdkSGR2SUhabFkzUnZjbk1nZDJsMGFDQjBhR1VnYzJWamIyNWtJRzl1WlNCMGJ5QmlaU0J0ZFd4MGFYQnNhV1ZrSUdKNUlIUm9aU0JuYVhabGJpQnlZWFJwYnk1Y2JpQXFYRzRnS2lCQVpYaHdiM0owWEc0Z0tpQkFjR0Z5WVcwZ2UxWmxZM1J2Y24wZ2NDQlVhR1VnWm1seWMzUWdkbVZqZEc5eUlIUnZJR0ZrWkM1Y2JpQXFJRUJ3WVhKaGJTQjdWbVZqZEc5eWZTQnhJRlJvWlNCelpXTnZibVFnZG1WamRHOXlJSFJ2SUdGa1pDNWNiaUFxSUVCd1lYSmhiU0I3Ym5WdFltVnlmU0JiYlhWc2RHbHdiR2xsY2oweFhTQkJJRzExYkhScGNHeHBaWElnZEc4Z1ltVWdkWE5sWkNCaVpXWnZjbVVnZEdobElITmxZMjl1WkNCMlpXTjBiM0lnYVhNZ1lXUmtaV1F1WEc0Z0tpQkFjbVYwZFhKdUlIdFdaV04wYjNKOUlFNWxkeUIyWldOMGIzSWdZMjl1ZEdGcGJtVmtJSFJvWlNCeVpYTjFiSFFnYjJZZ2IzQmxjbUYwYVc5dUlIQXJiWFZzZEdsd2JHbGxjaXB4TGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdkbVZqZEc5eVFXUmtLSEE2SUZabFkzUnZjaXdnY1RvZ1ZtVmpkRzl5TENCdGRXeDBhWEJzYVdWeU9pQnVkVzFpWlhJZ1BTQXhLVG9nVm1WamRHOXlJSHRjYmlBZ1kyOXVjM1FnYmtsMFpXMXpJRDBnY0M1c1pXNW5kR2c3WEc1Y2JpQWdZWE56WlhKMEtHNUpkR1Z0Y3lBOVBTQnhMbXhsYm1kMGFDd2dKMVpsWTNSdmNpQnNaVzVuZEdoeklHUnZJRzV2ZENCdFlYUmphQzRuS1R0Y2JseHVJQ0JqYjI1emRDQjBiM1JoYkNBOUlHNWxkeUJXWldOMGIzSW9ia2wwWlcxektUdGNibHh1SUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElIQXViR1Z1WjNSb095QXJLMmtwWEc0Z0lDQWdkRzkwWVd4YmFWMGdQU0J3VzJsZElDc2diWFZzZEdsd2JHbGxjaUFxSUhGYmFWMDdYRzVjYmlBZ2NtVjBkWEp1SUhSdmRHRnNPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlGTjFiWE1nZEdobElIWmxZM1J2Y2lkeklHbDBaVzF6TGx4dUlDcGNiaUFxSUVCd1lYSmhiU0I3Vm1WamRHOXlmU0IySUZSb1pTQjJaV04wYjNJZ2RHOGdZbVVnYzNWdGJXVmtMbHh1SUNvZ1FISmxkSFZ5YmlCN2JuVnRZbVZ5ZlNCVWFHVWdkbVZqZEc5eUozTWdhWFJsYlhNZ2MzVnRMbHh1SUNvdlhHNW1kVzVqZEdsdmJpQnBkR1Z0YzFOMWJTaDJPaUJXWldOMGIzSXBPaUJ1ZFcxaVpYSWdlMXh1SUNCc1pYUWdkRzkwWVd3Z1BTQXdPMXh1WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2dkaTVzWlc1bmRHZzdJQ3NyYVNsY2JpQWdJQ0IwYjNSaGJDQXJQU0IyVzJsZE8xeHVYRzRnSUhKbGRIVnliaUIwYjNSaGJEdGNibjFjYmx4dUx5b3FYRzRnS2lCVGRYRmhjbVZ6SUhSb1pTQjJaV04wYjNJbmN5QnBkR1Z0Y3k1Y2JpQXFYRzRnS2lCQWNHRnlZVzBnZTFabFkzUnZjbjBnZGlCVWFHVWdkbVZqZEc5eUlIUnZJSE54ZFdGeVpTNWNiaUFxSUVCeVpYUjFjbTRnZTFabFkzUnZjbjBnUVNCdVpYY2dkbVZqZEc5eUlHTnZiblJoYVc1cGJtY2dkR2hsSUc5eWFXZHBibUZzSjNNZ2FYUmxiWE1nYzNGMVlYSmxaQzVjYmlBcUwxeHVablZ1WTNScGIyNGdkbVZqZEc5eVUzRjFZWEpsS0hZNklGWmxZM1J2Y2lrNklGWmxZM1J2Y2lCN1hHNGdJR052Ym5OMElHNUpkR1Z0Y3lBOUlIWXViR1Z1WjNSb08xeHVJQ0JqYjI1emRDQjBiM1JoYkNBOUlHNWxkeUJXWldOMGIzSW9ia2wwWlcxektUdGNibHh1SUNCbWIzSWdLR3hsZENCcElEMGdNRHNnYVNBOElIWXViR1Z1WjNSb095QXJLMmtwWEc0Z0lDQWdkRzkwWVd4YmFWMGdQU0IyVzJsZElDb2dkbHRwWFR0Y2JseHVJQ0J5WlhSMWNtNGdkRzkwWVd3N1hHNTlYRzVjYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUIyWldOMGIzSk1aVzVuZEdnb2Rqb2dWbVZqZEc5eUtUb2diblZ0WW1WeUlIdGNiaUFnYkdWMElITnhjbE4xYlRvZ2JuVnRZbVZ5SUQwZ01EdGNiaUFnWm05eUlDaHNaWFFnYVRvZ2JuVnRZbVZ5SUQwZ01Ec2dhU0E4SUhZdWJHVnVaM1JvT3lCcEt5c3BYRzRnSUNBZ2MzRnlVM1Z0SUNzOUlIWmJhVjBnS2lCMlcybGRPMXh1SUNCeVpYUjFjbTRnVFdGMGFDNXpjWEowS0hOeGNsTjFiU2s3WEc1OVhHNWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQjJaV04wYjNKRWIzUlFjbTlrZFdOMEtIWXhPaUJXWldOMGIzSXNJSFl5T2lCV1pXTjBiM0lwT2lCdWRXMWlaWElnZTF4dUlDQnBaaUFvZGpFdWJHVnVaM1JvSUNFOUlIWXlMbXhsYm1kMGFDbGNiaUFnSUNCMGFISnZkeUJGY25KdmNpZ25WR2hsSUdScGJXVnVjMmx2Ym1Gc2FYUjVJRzltSUhSb1pTQjJaV04wYjNKeklHMTFjM1FnYldGMFkyZ25LVHRjYmlBZ2JHVjBJSEJ5YjJRNklHNTFiV0psY2lBOUlEQTdYRzRnSUdadmNpQW9iR1YwSUdrNklHNTFiV0psY2lBOUlEQTdJR2tnUENCMk1TNXNaVzVuZEdnN0lHa3JLeWxjYmlBZ0lDQndjbTlrSUNzOUlIWXhXMmxkSUNvZ2RqSmJhVjA3WEc0Z0lISmxkSFZ5YmlCd2NtOWtPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFTnlaV0YwWlhNZ1lTQnRZWFJ5YVhnZ1ptbHNiR1ZrSUhkcGRHZ2djbUZ1Wkc5dElHWnNiMkYwYVc1bklIQnZhVzUwSUhaaGJIVmxjeTVjYmlBcVhHNGdLaUJBWlhod2IzSjBYRzRnS2lCQWNHRnlZVzBnZTI1MWJXSmxjbjBnWkdsdFpXNXphVzl1TVNCVWFHVWdabWx5YzNRZ1pHbHRaVzV6YVc5dUlHOW1JSFJvWlNCdFlYUnlhWGd1WEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1pHbHRaVzV6YVc5dU1pQlVhR1VnYzJWamIyNWtJR1JwYldWdWMybHZiaUJ2WmlCMGFHVWdiV0YwY21sNExseHVJQ29nUUhCaGNtRnRJSHR1ZFcxaVpYSjlJRnR6WTJGc1pUMHhMbDBnVFdGNElIWmhiSFZsSUdkcGRtVnVJR0o1SUhKaGJtUnZiU0JuWlc1bGNtRjBiM0l1WEc0Z0tpQkFjbVYwZFhKdUlIdE5ZWFJ5YVhoOUlFRWdibVYzSUcxaGRISnBlQ0JtYVd4c1pXUWdkMmwwYUNCeVlXNWtiMjBnWm14dllYUnBibWNnY0c5cGJuUWdJSFpoYkhWbGN5NWNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdacGJHeFNZVzVrYjIxTllYUnlhWGdvWkdsdFpXNXphVzl1TVRvZ2JuVnRZbVZ5TENCa2FXMWxibk5wYjI0eU9pQnVkVzFpWlhJc0lITmpZV3hsT2lCdWRXMWlaWElnUFNBeExpazZJRTFoZEhKcGVDQjdYRzRnSUdOdmJuTjBJRzFoZEhKcGVDQTlJR2x1YVhSRGIyOXlaR2x1WVhSbGN5aGthVzFsYm5OcGIyNHhMQ0JrYVcxbGJuTnBiMjR5S1R0Y2JseHVJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUdScGJXVnVjMmx2YmpFN0lDc3JhU2tnZTF4dUlDQWdJR1p2Y2lBb2JHVjBJR29nUFNBd095QnFJRHdnWkdsdFpXNXphVzl1TWpzZ0t5dHFLVnh1SUNBZ0lDQWdiV0YwY21sNFcybGRXMnBkSUQwZ2NtRnVaRzl0Um14dllYUW9jMk5oYkdVcE8xeHVJQ0I5WEc0Z0lISmxkSFZ5YmlCdFlYUnlhWGc3WEc1OVhHNWNiaThxS2x4dUlDb2dRMkZzWTNWc1lYUmxjeUJGZFdOc2FXUmxZVzRnWkdsemRHRnVZMlVnWW1WMGQyVmxiaUIwZDI4Z2RtVmpkRzl5Y3k1Y2JpQXFYRzRnS2lCQVpYaHdiM0owWEc0Z0tpQkFjR0Z5WVcwZ2UxWmxZM1J2Y24wZ2NDQlVhR1VnWm1seWMzUWdkbVZqZEc5eUxseHVJQ29nUUhCaGNtRnRJSHRXWldOMGIzSjlJSEVnVkdobElITmxZMjl1WkNCMlpXTjBiM0l1WEc0Z0tpQkFjbVYwZFhKdUlIdHVkVzFpWlhKOUlFVjFZMnhwWkdWaGJpQmthWE4wWVc1alpTQmlaWFIzWldWdUlIUm9aU0JuYVhabGJpQjJaV04wYjNKekxseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWTJGc1kzVnNZWFJsUlhWamJHbGtaV0Z1UkdsemRHRnVZMlVvY0RvZ1ZtVmpkRzl5TENCeE9pQldaV04wYjNJcE9pQnVkVzFpWlhJZ2UxeHVJQ0JqYjI1emRDQmthV1ptSUQwZ2RtVmpkRzl5UVdSa0tIQXNJSEVzSUMweEtUdGNiaUFnWTI5dWMzUWdjM0ZrYVdabUlEMGdkbVZqZEc5eVUzRjFZWEpsS0dScFptWXBPMXh1SUNCamIyNXpkQ0J6Y1dScFptWlRkVzF0SUQwZ2FYUmxiWE5UZFcwb2MzRmthV1ptS1R0Y2JpQWdjbVYwZFhKdUlFMWhkR2d1YzNGeWRDaHpjV1JwWm1aVGRXMXRLVHRjYm4xY2JseHVMeW9xWEc0Z0tpQkRjbVZoZEdWeklHRWdaR2x6ZEdGdVkyVWdiV0YwY21sNElIVnphVzVuSUdFZ1kzVnpkRzl0SUdScGMzUmhibU5sSUdaMWJtTjBhVzl1TGx4dUlDcGNiaUFxSUVCbGVIQnZjblJjYmlBcUlFQndZWEpoYlNCN1ZtVmpkRzl5YzMwZ1pHRjBZU0JKYm5CMWRDQjJaV04wYjNKeklIUnZJR05oYkdOMWJHRjBaU0JrYVhOMFlXNWpaWE11WEc0Z0tpQkFjR0Z5WVcwZ2UwUnBjM1JoYm1ObFRXVjBjbWxqZlNCa2FYTjBZVzVqWlNCRGRYTjBiMjBnWkdsemRHRnVZMlVnWm5WdVkzUnBiMjR1WEc0Z0tpQkFjbVYwZFhKdUlIdE5ZWFJ5YVhoOUlFTmhiR04xYkdGMFpXUWdZM1Z6ZEc5dElHUnBjM1JoYm1ObElHMWhkSEpwZUM1Y2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR05oYkdORWFYTjBZVzVqWlUxaGRISnBlQ2hrWVhSaE9pQldaV04wYjNKekxDQmthWE4wWVc1alpUb2dSR2x6ZEdGdVkyVk5aWFJ5YVdNcE9pQk5ZWFJ5YVhnZ2UxeHVJQ0JqYjI1emRDQnVTWFJsYlhNZ1BTQmtZWFJoTG14bGJtZDBhRHRjYmlBZ1kyOXVjM1FnYldGMGNtbDRJRDBnYVc1cGRFTnZiM0prYVc1aGRHVnpLRzVKZEdWdGN5d2dia2wwWlcxekxDQXdLVHRjYmx4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJRzVKZEdWdGN6c2dLeXRwS1NCN1hHNGdJQ0FnWm05eUlDaHNaWFFnYWlBOUlHa2dLeUF4T3lCcUlEd2dia2wwWlcxek95QXJLMm9wSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR1E2SUc1MWJXSmxjaUE5SUNoa1lYUmhXMmxkSUQwOUlHNTFiR3dwSUh4OElDaGtZWFJoVzJwZElEMDlJRzUxYkd3cElEOGdNQ0E2SUdScGMzUmhibU5sS0dSaGRHRmJhVjBzSUdSaGRHRmJhbDBwTzF4dUlDQWdJQ0FnYldGMGNtbDRXMmxkVzJwZElEMGdiV0YwY21sNFcycGRXMmxkSUQwZ1pEdGNiaUFnSUNCOVhHNGdJSDFjYmlBZ2NtVjBkWEp1SUcxaGRISnBlRHRjYm4xY2JseHVMeW9xSUVkbGJtVnlZWFJsY3lCaGNuSmhlU0JtY205dElHRWdjbUZ1WjJVZ1cySmxaMmx1T3lCbGJtUmRJRzl5SUZ0aVpXZHBianNnWlc1a0tTQnBaaUJsYm1SRmVHTnNkWE5wZG1VdUlDb3FMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR2RsYmxKaGJtZGxLR0psWjJsdU9pQnVkVzFpWlhJc0lHVnVaRG9nYm5WdFltVnlMQ0JsYm1SRmVHTnNkWE5wZG1VZ1BTQm1ZV3h6WlNrNklFbHVkRE15UVhKeVlYa2dlMXh1SUNCamIyNXpkQ0J1U1hSbGJYTWdQU0JsYm1RZ0xTQmlaV2RwYmlBcklDaGxibVJGZUdOc2RYTnBkbVVnUHlBd0lEb2dNU2s3WEc0Z0lHTnZibk4wSUhObGNtbGxjeUE5SUc1bGR5QkpiblF6TWtGeWNtRjVLRzVKZEdWdGN5azdYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQnVTWFJsYlhNN0lDc3JhU2xjYmlBZ0lDQnpaWEpwWlhOYmFWMGdQU0JpWldkcGJpQXJJR2s3WEc1Y2JpQWdjbVYwZFhKdUlITmxjbWxsY3p0Y2JuMWNibHh1THlvcVhHNGdLaUJTWlhSMWNtNXpJRzl5WkdWeUlHOW1JSFpoYkhWbGN5QmhjeUJwWmlCMGFHVjVJR0Z5WlNCemIzSjBaV1F1WEc0Z0tseHVJQ29nUUdWNGNHOXlkRnh1SUNvZ1FIQmhjbUZ0SUh0aGJubGJYWDBnZG1Gc2RXVnpJRWx1Y0hWMElHRnljbUY1TGx4dUlDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQmJjbVYyWlhKelpUMW1ZV3h6WlYwZ1YyaGxkR2hsY2lCMGJ5QnlaWFIxY200Z2NtVjJaWEp6WldRZ2IzSmtaWEl1WEc0Z0tpQkFjbVYwZFhKdUlIdHVkVzFpWlhKYlhYMGdWR2hsSUc5eVpHVnlJR052YlhCMWRHVmtMbHh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1lYSm5VMjl5ZENoMllXeDFaWE02SUdGdWVWdGRMQ0J5WlhabGNuTmxJRDBnWm1Gc2MyVXBPaUJ1ZFcxaVpYSmJYU0I3WEc0Z0lHTnZibk4wSUhOdmNuUm1iaUE5SUhKbGRtVnljMlVnUHlBb1lUb2dZVzU1VzEwc0lHSTZJR0Z1ZVZ0ZEtTQTlQaUFvWWxzd1hTQXRJR0ZiTUYwcElEb2dLR0U2SUdGdWVWdGRMQ0JpT2lCaGJubGJYU2tnUFQ0Z0tHRmJNRjBnTFNCaVd6QmRLVHRjYmlBZ1kyOXVjM1FnWkdWamIzSWdQU0FvZGpvZ1lXNTVMQ0JwT2lCdWRXMWlaWElwSUQwK0lGdDJMQ0JwWFRzZ0x5OGdjMlYwSUdsdVpHVjRJSFJ2SUhaaGJIVmxYRzRnSUdOdmJuTjBJSFZ1WkdWamIzSWdQU0FvWVRvZ1lXNTVXMTBwSUQwK0lHRmJNVjA3SUM4dklHeGxZWFpsSUc5dWJIa2dhVzVrWlhoY2JpQWdZMjl1YzNRZ1gyRnlaM052Y25RZ1BTQW9ZWEp5T2lCaGJubGJYU2tnUFQ0Z1lYSnlMbTFoY0Noa1pXTnZjaWt1YzI5eWRDaHpiM0owWm00cExtMWhjQ2gxYm1SbFkyOXlLVHRjYmlBZ2NtVjBkWEp1SUY5aGNtZHpiM0owS0haaGJIVmxjeWs3WEc1OVhHNWNiaThxS2x4dUlDb2dVbVYwZFhKdWN5QjBhR1VnYVc1a1pYaGxjeUJ2WmlCMGFHVWdiVzl6ZENCa2FYWmxjbk5sSUc5aWFtVmpkSE1nWVdOamIzSmthVzVuSUhSdklIUm9aU0JrYVhOMElHWjFibU4wYVc5dVhHNGdLaUJBY0dGeVlXMGdlMjUxYldKbGNuMGdiR1Z1WjNSb0lIUnZkR0ZzSUc1MWJXSmxjaUJ2WmlCdlltcGxZM1J6WEc0Z0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ2JpQnVkVzFpWlhJZ2IyWWdaR2wyWlhKelpTQmxiR1Z0Wlc1MGN5QjBieUJtYVc1a1hHNGdLaUJBY0dGeVlXMGdleWhwTVRvZ2JuVnRZbVZ5TENCcE1qb2diblZ0WW1WeUtTQTlQaUJ1ZFcxaVpYSjlJR1JwYzNRZ1lTQm1kVzVqZEdsdmJpQjNhR2xqYUNCallXeGpkV3hoZEdWeklHUnBjM1JoYm1ObElHSmxkSGRsWlc1Y2JpQXFJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCMGQyOGdiMkpxWldOMGN5QjFjMmx1WnlCMGFHVnBjaUJwYm1SbGVHVnpYRzRnS2lCQWNtVjBkWEp1Y3lCN2JuVnRZbVZ5VzExOUlGUm9aU0JwYm1SbGVHVnpJRzltSUhSb1pTQnRiM04wSUdScGRtVnljMlVnYjJKcVpXTjBjMXh1SUNvdlhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1oyVjBSR2wyWlhKelpWTjFZbk5sZENoc1pXNW5kR2c2SUc1MWJXSmxjaXdnYmpvZ2JuVnRZbVZ5TENCa2FYTjBPaUFvYVRFNklHNTFiV0psY2l3Z2FUSTZJRzUxYldKbGNpa2dQVDRnYm5WdFltVnlLVG9nYm5WdFltVnlXMTBnZTF4dUlDQm1kVzVqZEdsdmJpQnRZWGhDZVNoMllXeDFaWE02SUVsMFpYSmhZbXhsU1hSbGNtRjBiM0k4Ym5WdFltVnlQaXdnYjNKa1pYSkNlVG9nS0drNklHNTFiV0psY2lrZ1BUNGdiblZ0WW1WeUtTQjdYRzRnSUNBZ2JHVjBJRzFoZUZaaGJIVmxJRDBnYm5Wc2JEdGNiaUFnSUNCc1pYUWdiV0Y0VDNKa1pYSkNlU0E5SUc1MWJHdzdYRzVjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJR1ZzWlcxbGJuUWdiMllnZG1Gc2RXVnpLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmxiR1Z0Wlc1MFQzSmtaWEpDZVNBOUlHOXlaR1Z5UW5rb1pXeGxiV1Z1ZENrN1hHNGdJQ0FnSUNCcFppQW9iV0Y0VDNKa1pYSkNlU0E5UFNCdWRXeHNJSHg4SUdWc1pXMWxiblJQY21SbGNrSjVJRDRnYldGNFQzSmtaWEpDZVNrZ2UxeHVJQ0FnSUNBZ0lDQnRZWGhXWVd4MVpTQTlJR1ZzWlcxbGJuUTdYRzRnSUNBZ0lDQWdJRzFoZUU5eVpHVnlRbmtnUFNCbGJHVnRaVzUwVDNKa1pYSkNlVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUcxaGVGWmhiSFZsTzF4dUlDQjlYRzVjYmlBZ1kyOXVjM1FnYzNWaWMyVjBJRDBnVzNKaGJtUnZiVWx1ZENoc1pXNW5kR2dnTFNBeEtWMDdYRzRnSUdOdmJuTjBJR052YlhCc1pXMWxiblFnUFNCdVpYY2dVMlYwS0NrN1hHNWNiaUFnWm05eUlDaHNaWFFnYVNBOUlEQTdJR2tnUENCc1pXNW5kR2c3SUNzcmFTa2dlMXh1SUNBZ0lHbG1JQ2doYzNWaWMyVjBMbWx1WTJ4MVpHVnpLR2twS1Z4dUlDQWdJQ0FnWTI5dGNHeGxiV1Z1ZEM1aFpHUW9hU2s3WEc0Z0lIMWNibHh1SUNCM2FHbHNaU0FvYzNWaWMyVjBMbXhsYm1kMGFDQThJRzRwSUh0Y2JpQWdJQ0JqYjI1emRDQnBaSGdnUFNCdFlYaENlU2hjYmlBZ0lDQWdJR052YlhCc1pXMWxiblF1ZG1Gc2RXVnpLQ2tnWVhNZ1NYUmxjbUZpYkdWSmRHVnlZWFJ2Y2p4dWRXMWlaWEkrTEZ4dUlDQWdJQ0FnS0drcElEMCtJRTFoZEdndWJXbHVMbUZ3Y0d4NUtFMWhkR2dzSUhOMVluTmxkQzV0WVhBb1puVnVZM1JwYjI0b2RtRnNMQ0JwYm1SbGVDa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdaR2x6ZENocExDQjJZV3dwTzF4dUlDQWdJQ0FnZlNrcEtUdGNiaUFnSUNCcFppQW9hV1I0S1NCN1hHNGdJQ0FnSUNCemRXSnpaWFF1Y0hWemFDaHBaSGdwTzF4dUlDQWdJQ0FnWTI5dGNHeGxiV1Z1ZEM1a1pXeGxkR1VvYVdSNEtUdGNiaUFnSUNCOVhHNGdJSDFjYmlBZ2NtVjBkWEp1SUhOMVluTmxkRHRjYm4xY2JseHVMeW9xWEc0Z0tpQlNaWFIxY201eklHNXZjbTFoYkdsNlpXUWdkbVZqZEc5eVhHNGdLaUJBY0dGeVlXMGdlMVpsWTNSdmNuMGdaR0YwWVNCdWRXMWxjbWxqWVd3Z1lYSnlZWGxjYmlBcUwxeHVaWGh3YjNKMElHWjFibU4wYVc5dUlHNXZjbTFoYkdsNlpTaGtZWFJoT2lCV1pXTjBiM0lwT2lCV1pXTjBiM0lnZTF4dUlDQnNaWFFnYldWaGJpQTlJREE3WEc0Z0lHeGxkQ0J6ZEdRZ1BTQXdPMXh1WEc0Z0lHWnZjaUFvYkdWMElHa2dQU0F3T3lCcElEd2daR0YwWVM1c1pXNW5kR2c3SUNzcmFTbGNiaUFnSUNCdFpXRnVJQ3M5SUdSaGRHRmJhVjA3WEc1Y2JpQWdiV1ZoYmlBdlBTQmtZWFJoTG14bGJtZDBhRHRjYmx4dUlDQm1iM0lnS0d4bGRDQnBJRDBnTURzZ2FTQThJR1JoZEdFdWJHVnVaM1JvT3lBcksya3BYRzRnSUNBZ2MzUmtJQ3M5SUNoa1lYUmhXMmxkSUMwZ2JXVmhiaWtnS2lBb1pHRjBZVnRwWFNBdElHMWxZVzRwTzF4dVhHNGdJSE4wWkNBOUlFMWhkR2d1YzNGeWRDaHpkR1FnTHlCa1lYUmhMbXhsYm1kMGFDazdYRzVjYmlBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQmtZWFJoTG14bGJtZDBhRHNnS3l0cEtWeHVJQ0FnSUdSaGRHRmJhVjBnUFNBb1pHRjBZVnRwWFNBdElHMWxZVzRwSUM4Z2MzUmtPMXh1WEc0Z0lISmxkSFZ5YmlCa1lYUmhPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFWnBibVJ6SUhObGRDQmthV1ptWlhKbGJtTmxJR0psZEhkbFpXNGdkSGR2SUd4cGMzUnpMbHh1SUNvZ1FIQmhjbUZ0SUh0aGJubGJYWDBnWVNCVWFHVWdabWx5YzNRZ2JHbHpkQzVjYmlBcUlFQndZWEpoYlNCN1lXNTVXMTE5SUdJZ1ZHaGxJSE5sWTI5dVpDQnNhWE4wTGx4dUlDb2dRSEpsZEhWeWJpQjdZVzU1VzExOVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJ6WlhSRWFXWm1aWEpsYm1ObEtHRTZJR0Z1ZVZ0ZExDQmlPaUJoYm5sYlhTazZJR0Z1ZVZ0ZElIdGNiaUFnWTI5dWMzUWdZbE5sZENBOUlHNWxkeUJUWlhRb1lpazdYRzRnSUhKbGRIVnliaUJCY25KaGVTNW1jbTl0S0c1bGR5QlRaWFFvWVM1bWFXeDBaWElvS0hncElEMCtJQ0ZpVTJWMExtaGhjeWg0S1NrcExuWmhiSFZsY3lncEtUdGNibjFjYmlKZGZRPT0iLCIoZnVuY3Rpb24gKHJvb3QsIGZhY3RvcnkpIHtcbiAgICAvLyBIYWNrIHRvIG1ha2UgYWxsIGV4cG9ydHMgb2YgdGhpcyBtb2R1bGUgc2hhMjU2IGZ1bmN0aW9uIG9iamVjdCBwcm9wZXJ0aWVzLlxuICAgIHZhciBleHBvcnRzID0ge307XG4gICAgZmFjdG9yeShleHBvcnRzKTtcbiAgICB2YXIgc2hhMjU2ID0gZXhwb3J0c1tcImRlZmF1bHRcIl07XG4gICAgZm9yICh2YXIgayBpbiBleHBvcnRzKSB7XG4gICAgICAgIHNoYTI1NltrXSA9IGV4cG9ydHNba107XG4gICAgfVxuICAgICAgICBcbiAgICBpZiAodHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZS5leHBvcnRzID09PSAnb2JqZWN0Jykge1xuICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHNoYTI1NjtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZCkge1xuICAgICAgICBkZWZpbmUoZnVuY3Rpb24oKSB7IHJldHVybiBzaGEyNTY7IH0pOyBcbiAgICB9IGVsc2Uge1xuICAgICAgICByb290LnNoYTI1NiA9IHNoYTI1NjtcbiAgICB9XG59KSh0aGlzLCBmdW5jdGlvbihleHBvcnRzKSB7XG5cInVzZSBzdHJpY3RcIjtcbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG4vLyBTSEEtMjU2ICgrIEhNQUMgYW5kIFBCS0RGMikgZm9yIEphdmFTY3JpcHQuXG4vL1xuLy8gV3JpdHRlbiBpbiAyMDE0LTIwMTYgYnkgRG1pdHJ5IENoZXN0bnlraC5cbi8vIFB1YmxpYyBkb21haW4sIG5vIHdhcnJhbnR5LlxuLy9cbi8vIEZ1bmN0aW9ucyAoYWNjZXB0IGFuZCByZXR1cm4gVWludDhBcnJheXMpOlxuLy9cbi8vICAgc2hhMjU2KG1lc3NhZ2UpIC0+IGhhc2hcbi8vICAgc2hhMjU2LmhtYWMoa2V5LCBtZXNzYWdlKSAtPiBtYWNcbi8vICAgc2hhMjU2LnBia2RmMihwYXNzd29yZCwgc2FsdCwgcm91bmRzLCBka0xlbikgLT4gZGtcbi8vXG4vLyAgQ2xhc3Nlczpcbi8vXG4vLyAgIG5ldyBzaGEyNTYuSGFzaCgpXG4vLyAgIG5ldyBzaGEyNTYuSE1BQyhrZXkpXG4vL1xuZXhwb3J0cy5kaWdlc3RMZW5ndGggPSAzMjtcbmV4cG9ydHMuYmxvY2tTaXplID0gNjQ7XG4vLyBTSEEtMjU2IGNvbnN0YW50c1xudmFyIEsgPSBuZXcgVWludDMyQXJyYXkoW1xuICAgIDB4NDI4YTJmOTgsIDB4NzEzNzQ0OTEsIDB4YjVjMGZiY2YsIDB4ZTliNWRiYTUsIDB4Mzk1NmMyNWIsXG4gICAgMHg1OWYxMTFmMSwgMHg5MjNmODJhNCwgMHhhYjFjNWVkNSwgMHhkODA3YWE5OCwgMHgxMjgzNWIwMSxcbiAgICAweDI0MzE4NWJlLCAweDU1MGM3ZGMzLCAweDcyYmU1ZDc0LCAweDgwZGViMWZlLCAweDliZGMwNmE3LFxuICAgIDB4YzE5YmYxNzQsIDB4ZTQ5YjY5YzEsIDB4ZWZiZTQ3ODYsIDB4MGZjMTlkYzYsIDB4MjQwY2ExY2MsXG4gICAgMHgyZGU5MmM2ZiwgMHg0YTc0ODRhYSwgMHg1Y2IwYTlkYywgMHg3NmY5ODhkYSwgMHg5ODNlNTE1MixcbiAgICAweGE4MzFjNjZkLCAweGIwMDMyN2M4LCAweGJmNTk3ZmM3LCAweGM2ZTAwYmYzLCAweGQ1YTc5MTQ3LFxuICAgIDB4MDZjYTYzNTEsIDB4MTQyOTI5NjcsIDB4MjdiNzBhODUsIDB4MmUxYjIxMzgsIDB4NGQyYzZkZmMsXG4gICAgMHg1MzM4MGQxMywgMHg2NTBhNzM1NCwgMHg3NjZhMGFiYiwgMHg4MWMyYzkyZSwgMHg5MjcyMmM4NSxcbiAgICAweGEyYmZlOGExLCAweGE4MWE2NjRiLCAweGMyNGI4YjcwLCAweGM3NmM1MWEzLCAweGQxOTJlODE5LFxuICAgIDB4ZDY5OTA2MjQsIDB4ZjQwZTM1ODUsIDB4MTA2YWEwNzAsIDB4MTlhNGMxMTYsIDB4MWUzNzZjMDgsXG4gICAgMHgyNzQ4Nzc0YywgMHgzNGIwYmNiNSwgMHgzOTFjMGNiMywgMHg0ZWQ4YWE0YSwgMHg1YjljY2E0ZixcbiAgICAweDY4MmU2ZmYzLCAweDc0OGY4MmVlLCAweDc4YTU2MzZmLCAweDg0Yzg3ODE0LCAweDhjYzcwMjA4LFxuICAgIDB4OTBiZWZmZmEsIDB4YTQ1MDZjZWIsIDB4YmVmOWEzZjcsIDB4YzY3MTc4ZjJcbl0pO1xuZnVuY3Rpb24gaGFzaEJsb2Nrcyh3LCB2LCBwLCBwb3MsIGxlbikge1xuICAgIHZhciBhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCB1LCBpLCBqLCB0MSwgdDI7XG4gICAgd2hpbGUgKGxlbiA+PSA2NCkge1xuICAgICAgICBhID0gdlswXTtcbiAgICAgICAgYiA9IHZbMV07XG4gICAgICAgIGMgPSB2WzJdO1xuICAgICAgICBkID0gdlszXTtcbiAgICAgICAgZSA9IHZbNF07XG4gICAgICAgIGYgPSB2WzVdO1xuICAgICAgICBnID0gdls2XTtcbiAgICAgICAgaCA9IHZbN107XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7XG4gICAgICAgICAgICBqID0gcG9zICsgaSAqIDQ7XG4gICAgICAgICAgICB3W2ldID0gKCgocFtqXSAmIDB4ZmYpIDw8IDI0KSB8ICgocFtqICsgMV0gJiAweGZmKSA8PCAxNikgfFxuICAgICAgICAgICAgICAgICgocFtqICsgMl0gJiAweGZmKSA8PCA4KSB8IChwW2ogKyAzXSAmIDB4ZmYpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGkgPSAxNjsgaSA8IDY0OyBpKyspIHtcbiAgICAgICAgICAgIHUgPSB3W2kgLSAyXTtcbiAgICAgICAgICAgIHQxID0gKHUgPj4+IDE3IHwgdSA8PCAoMzIgLSAxNykpIF4gKHUgPj4+IDE5IHwgdSA8PCAoMzIgLSAxOSkpIF4gKHUgPj4+IDEwKTtcbiAgICAgICAgICAgIHUgPSB3W2kgLSAxNV07XG4gICAgICAgICAgICB0MiA9ICh1ID4+PiA3IHwgdSA8PCAoMzIgLSA3KSkgXiAodSA+Pj4gMTggfCB1IDw8ICgzMiAtIDE4KSkgXiAodSA+Pj4gMyk7XG4gICAgICAgICAgICB3W2ldID0gKHQxICsgd1tpIC0gN10gfCAwKSArICh0MiArIHdbaSAtIDE2XSB8IDApO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCA2NDsgaSsrKSB7XG4gICAgICAgICAgICB0MSA9ICgoKCgoZSA+Pj4gNiB8IGUgPDwgKDMyIC0gNikpIF4gKGUgPj4+IDExIHwgZSA8PCAoMzIgLSAxMSkpIF5cbiAgICAgICAgICAgICAgICAoZSA+Pj4gMjUgfCBlIDw8ICgzMiAtIDI1KSkpICsgKChlICYgZikgXiAofmUgJiBnKSkpIHwgMCkgK1xuICAgICAgICAgICAgICAgICgoaCArICgoS1tpXSArIHdbaV0pIHwgMCkpIHwgMCkpIHwgMDtcbiAgICAgICAgICAgIHQyID0gKCgoYSA+Pj4gMiB8IGEgPDwgKDMyIC0gMikpIF4gKGEgPj4+IDEzIHwgYSA8PCAoMzIgLSAxMykpIF5cbiAgICAgICAgICAgICAgICAoYSA+Pj4gMjIgfCBhIDw8ICgzMiAtIDIyKSkpICsgKChhICYgYikgXiAoYSAmIGMpIF4gKGIgJiBjKSkpIHwgMDtcbiAgICAgICAgICAgIGggPSBnO1xuICAgICAgICAgICAgZyA9IGY7XG4gICAgICAgICAgICBmID0gZTtcbiAgICAgICAgICAgIGUgPSAoZCArIHQxKSB8IDA7XG4gICAgICAgICAgICBkID0gYztcbiAgICAgICAgICAgIGMgPSBiO1xuICAgICAgICAgICAgYiA9IGE7XG4gICAgICAgICAgICBhID0gKHQxICsgdDIpIHwgMDtcbiAgICAgICAgfVxuICAgICAgICB2WzBdICs9IGE7XG4gICAgICAgIHZbMV0gKz0gYjtcbiAgICAgICAgdlsyXSArPSBjO1xuICAgICAgICB2WzNdICs9IGQ7XG4gICAgICAgIHZbNF0gKz0gZTtcbiAgICAgICAgdls1XSArPSBmO1xuICAgICAgICB2WzZdICs9IGc7XG4gICAgICAgIHZbN10gKz0gaDtcbiAgICAgICAgcG9zICs9IDY0O1xuICAgICAgICBsZW4gLT0gNjQ7XG4gICAgfVxuICAgIHJldHVybiBwb3M7XG59XG4vLyBIYXNoIGltcGxlbWVudHMgU0hBMjU2IGhhc2ggYWxnb3JpdGhtLlxudmFyIEhhc2ggPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gSGFzaCgpIHtcbiAgICAgICAgdGhpcy5kaWdlc3RMZW5ndGggPSBleHBvcnRzLmRpZ2VzdExlbmd0aDtcbiAgICAgICAgdGhpcy5ibG9ja1NpemUgPSBleHBvcnRzLmJsb2NrU2l6ZTtcbiAgICAgICAgLy8gTm90ZTogSW50MzJBcnJheSBpcyB1c2VkIGluc3RlYWQgb2YgVWludDMyQXJyYXkgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuXG4gICAgICAgIHRoaXMuc3RhdGUgPSBuZXcgSW50MzJBcnJheSg4KTsgLy8gaGFzaCBzdGF0ZVxuICAgICAgICB0aGlzLnRlbXAgPSBuZXcgSW50MzJBcnJheSg2NCk7IC8vIHRlbXBvcmFyeSBzdGF0ZVxuICAgICAgICB0aGlzLmJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KDEyOCk7IC8vIGJ1ZmZlciBmb3IgZGF0YSB0byBoYXNoXG4gICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDsgLy8gbnVtYmVyIG9mIGJ5dGVzIGluIGJ1ZmZlclxuICAgICAgICB0aGlzLmJ5dGVzSGFzaGVkID0gMDsgLy8gbnVtYmVyIG9mIHRvdGFsIGJ5dGVzIGhhc2hlZFxuICAgICAgICB0aGlzLmZpbmlzaGVkID0gZmFsc2U7IC8vIGluZGljYXRlcyB3aGV0aGVyIHRoZSBoYXNoIHdhcyBmaW5hbGl6ZWRcbiAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgIH1cbiAgICAvLyBSZXNldHMgaGFzaCBzdGF0ZSBtYWtpbmcgaXQgcG9zc2libGVcbiAgICAvLyB0byByZS11c2UgdGhpcyBpbnN0YW5jZSB0byBoYXNoIG90aGVyIGRhdGEuXG4gICAgSGFzaC5wcm90b3R5cGUucmVzZXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRoaXMuc3RhdGVbMF0gPSAweDZhMDllNjY3O1xuICAgICAgICB0aGlzLnN0YXRlWzFdID0gMHhiYjY3YWU4NTtcbiAgICAgICAgdGhpcy5zdGF0ZVsyXSA9IDB4M2M2ZWYzNzI7XG4gICAgICAgIHRoaXMuc3RhdGVbM10gPSAweGE1NGZmNTNhO1xuICAgICAgICB0aGlzLnN0YXRlWzRdID0gMHg1MTBlNTI3ZjtcbiAgICAgICAgdGhpcy5zdGF0ZVs1XSA9IDB4OWIwNTY4OGM7XG4gICAgICAgIHRoaXMuc3RhdGVbNl0gPSAweDFmODNkOWFiO1xuICAgICAgICB0aGlzLnN0YXRlWzddID0gMHg1YmUwY2QxOTtcbiAgICAgICAgdGhpcy5idWZmZXJMZW5ndGggPSAwO1xuICAgICAgICB0aGlzLmJ5dGVzSGFzaGVkID0gMDtcbiAgICAgICAgdGhpcy5maW5pc2hlZCA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIC8vIENsZWFucyBpbnRlcm5hbCBidWZmZXJzIGFuZCByZS1pbml0aWFsaXplcyBoYXNoIHN0YXRlLlxuICAgIEhhc2gucHJvdG90eXBlLmNsZWFuID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuYnVmZmVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltpXSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnRlbXAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMudGVtcFtpXSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgIH07XG4gICAgLy8gVXBkYXRlcyBoYXNoIHN0YXRlIHdpdGggdGhlIGdpdmVuIGRhdGEuXG4gICAgLy9cbiAgICAvLyBPcHRpb25hbGx5LCBsZW5ndGggb2YgdGhlIGRhdGEgY2FuIGJlIHNwZWNpZmllZCB0byBoYXNoXG4gICAgLy8gZmV3ZXIgYnl0ZXMgdGhhbiBkYXRhLmxlbmd0aC5cbiAgICAvL1xuICAgIC8vIFRocm93cyBlcnJvciB3aGVuIHRyeWluZyB0byB1cGRhdGUgYWxyZWFkeSBmaW5hbGl6ZWQgaGFzaDpcbiAgICAvLyBpbnN0YW5jZSBtdXN0IGJlIHJlc2V0IHRvIHVzZSBpdCBhZ2Fpbi5cbiAgICBIYXNoLnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiAoZGF0YSwgZGF0YUxlbmd0aCkge1xuICAgICAgICBpZiAoZGF0YUxlbmd0aCA9PT0gdm9pZCAwKSB7IGRhdGFMZW5ndGggPSBkYXRhLmxlbmd0aDsgfVxuICAgICAgICBpZiAodGhpcy5maW5pc2hlZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiU0hBMjU2OiBjYW4ndCB1cGRhdGUgYmVjYXVzZSBoYXNoIHdhcyBmaW5pc2hlZC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRhdGFQb3MgPSAwO1xuICAgICAgICB0aGlzLmJ5dGVzSGFzaGVkICs9IGRhdGFMZW5ndGg7XG4gICAgICAgIGlmICh0aGlzLmJ1ZmZlckxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHdoaWxlICh0aGlzLmJ1ZmZlckxlbmd0aCA8IDY0ICYmIGRhdGFMZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbdGhpcy5idWZmZXJMZW5ndGgrK10gPSBkYXRhW2RhdGFQb3MrK107XG4gICAgICAgICAgICAgICAgZGF0YUxlbmd0aC0tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuYnVmZmVyTGVuZ3RoID09PSA2NCkge1xuICAgICAgICAgICAgICAgIGhhc2hCbG9ja3ModGhpcy50ZW1wLCB0aGlzLnN0YXRlLCB0aGlzLmJ1ZmZlciwgMCwgNjQpO1xuICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyTGVuZ3RoID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YUxlbmd0aCA+PSA2NCkge1xuICAgICAgICAgICAgZGF0YVBvcyA9IGhhc2hCbG9ja3ModGhpcy50ZW1wLCB0aGlzLnN0YXRlLCBkYXRhLCBkYXRhUG9zLCBkYXRhTGVuZ3RoKTtcbiAgICAgICAgICAgIGRhdGFMZW5ndGggJT0gNjQ7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKGRhdGFMZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlckxlbmd0aCsrXSA9IGRhdGFbZGF0YVBvcysrXTtcbiAgICAgICAgICAgIGRhdGFMZW5ndGgtLTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIC8vIEZpbmFsaXplcyBoYXNoIHN0YXRlIGFuZCBwdXRzIGhhc2ggaW50byBvdXQuXG4gICAgLy9cbiAgICAvLyBJZiBoYXNoIHdhcyBhbHJlYWR5IGZpbmFsaXplZCwgcHV0cyB0aGUgc2FtZSB2YWx1ZS5cbiAgICBIYXNoLnByb3RvdHlwZS5maW5pc2ggPSBmdW5jdGlvbiAob3V0KSB7XG4gICAgICAgIGlmICghdGhpcy5maW5pc2hlZCkge1xuICAgICAgICAgICAgdmFyIGJ5dGVzSGFzaGVkID0gdGhpcy5ieXRlc0hhc2hlZDtcbiAgICAgICAgICAgIHZhciBsZWZ0ID0gdGhpcy5idWZmZXJMZW5ndGg7XG4gICAgICAgICAgICB2YXIgYml0TGVuSGkgPSAoYnl0ZXNIYXNoZWQgLyAweDIwMDAwMDAwKSB8IDA7XG4gICAgICAgICAgICB2YXIgYml0TGVuTG8gPSBieXRlc0hhc2hlZCA8PCAzO1xuICAgICAgICAgICAgdmFyIHBhZExlbmd0aCA9IChieXRlc0hhc2hlZCAlIDY0IDwgNTYpID8gNjQgOiAxMjg7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltsZWZ0XSA9IDB4ODA7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gbGVmdCArIDE7IGkgPCBwYWRMZW5ndGggLSA4OyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltpXSA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltwYWRMZW5ndGggLSA4XSA9IChiaXRMZW5IaSA+Pj4gMjQpICYgMHhmZjtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BhZExlbmd0aCAtIDddID0gKGJpdExlbkhpID4+PiAxNikgJiAweGZmO1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbcGFkTGVuZ3RoIC0gNl0gPSAoYml0TGVuSGkgPj4+IDgpICYgMHhmZjtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BhZExlbmd0aCAtIDVdID0gKGJpdExlbkhpID4+PiAwKSAmIDB4ZmY7XG4gICAgICAgICAgICB0aGlzLmJ1ZmZlcltwYWRMZW5ndGggLSA0XSA9IChiaXRMZW5MbyA+Pj4gMjQpICYgMHhmZjtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BhZExlbmd0aCAtIDNdID0gKGJpdExlbkxvID4+PiAxNikgJiAweGZmO1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbcGFkTGVuZ3RoIC0gMl0gPSAoYml0TGVuTG8gPj4+IDgpICYgMHhmZjtcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BhZExlbmd0aCAtIDFdID0gKGJpdExlbkxvID4+PiAwKSAmIDB4ZmY7XG4gICAgICAgICAgICBoYXNoQmxvY2tzKHRoaXMudGVtcCwgdGhpcy5zdGF0ZSwgdGhpcy5idWZmZXIsIDAsIHBhZExlbmd0aCk7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDg7IGkrKykge1xuICAgICAgICAgICAgb3V0W2kgKiA0ICsgMF0gPSAodGhpcy5zdGF0ZVtpXSA+Pj4gMjQpICYgMHhmZjtcbiAgICAgICAgICAgIG91dFtpICogNCArIDFdID0gKHRoaXMuc3RhdGVbaV0gPj4+IDE2KSAmIDB4ZmY7XG4gICAgICAgICAgICBvdXRbaSAqIDQgKyAyXSA9ICh0aGlzLnN0YXRlW2ldID4+PiA4KSAmIDB4ZmY7XG4gICAgICAgICAgICBvdXRbaSAqIDQgKyAzXSA9ICh0aGlzLnN0YXRlW2ldID4+PiAwKSAmIDB4ZmY7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfTtcbiAgICAvLyBSZXR1cm5zIHRoZSBmaW5hbCBoYXNoIGRpZ2VzdC5cbiAgICBIYXNoLnByb3RvdHlwZS5kaWdlc3QgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBvdXQgPSBuZXcgVWludDhBcnJheSh0aGlzLmRpZ2VzdExlbmd0aCk7XG4gICAgICAgIHRoaXMuZmluaXNoKG91dCk7XG4gICAgICAgIHJldHVybiBvdXQ7XG4gICAgfTtcbiAgICAvLyBJbnRlcm5hbCBmdW5jdGlvbiBmb3IgdXNlIGluIEhNQUMgZm9yIG9wdGltaXphdGlvbi5cbiAgICBIYXNoLnByb3RvdHlwZS5fc2F2ZVN0YXRlID0gZnVuY3Rpb24gKG91dCkge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc3RhdGUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIG91dFtpXSA9IHRoaXMuc3RhdGVbaV07XG4gICAgICAgIH1cbiAgICB9O1xuICAgIC8vIEludGVybmFsIGZ1bmN0aW9uIGZvciB1c2UgaW4gSE1BQyBmb3Igb3B0aW1pemF0aW9uLlxuICAgIEhhc2gucHJvdG90eXBlLl9yZXN0b3JlU3RhdGUgPSBmdW5jdGlvbiAoZnJvbSwgYnl0ZXNIYXNoZWQpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnN0YXRlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlW2ldID0gZnJvbVtpXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJ5dGVzSGFzaGVkID0gYnl0ZXNIYXNoZWQ7XG4gICAgICAgIHRoaXMuZmluaXNoZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5idWZmZXJMZW5ndGggPSAwO1xuICAgIH07XG4gICAgcmV0dXJuIEhhc2g7XG59KCkpO1xuZXhwb3J0cy5IYXNoID0gSGFzaDtcbi8vIEhNQUMgaW1wbGVtZW50cyBITUFDLVNIQTI1NiBtZXNzYWdlIGF1dGhlbnRpY2F0aW9uIGFsZ29yaXRobS5cbnZhciBITUFDID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEhNQUMoa2V5KSB7XG4gICAgICAgIHRoaXMuaW5uZXIgPSBuZXcgSGFzaCgpO1xuICAgICAgICB0aGlzLm91dGVyID0gbmV3IEhhc2goKTtcbiAgICAgICAgdGhpcy5ibG9ja1NpemUgPSB0aGlzLmlubmVyLmJsb2NrU2l6ZTtcbiAgICAgICAgdGhpcy5kaWdlc3RMZW5ndGggPSB0aGlzLmlubmVyLmRpZ2VzdExlbmd0aDtcbiAgICAgICAgdmFyIHBhZCA9IG5ldyBVaW50OEFycmF5KHRoaXMuYmxvY2tTaXplKTtcbiAgICAgICAgaWYgKGtleS5sZW5ndGggPiB0aGlzLmJsb2NrU2l6ZSkge1xuICAgICAgICAgICAgKG5ldyBIYXNoKCkpLnVwZGF0ZShrZXkpLmZpbmlzaChwYWQpLmNsZWFuKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHBhZFtpXSA9IGtleVtpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhZC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgcGFkW2ldIF49IDB4MzY7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbm5lci51cGRhdGUocGFkKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHBhZFtpXSBePSAweDM2IF4gMHg1YztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm91dGVyLnVwZGF0ZShwYWQpO1xuICAgICAgICB0aGlzLmlzdGF0ZSA9IG5ldyBVaW50MzJBcnJheSg4KTtcbiAgICAgICAgdGhpcy5vc3RhdGUgPSBuZXcgVWludDMyQXJyYXkoOCk7XG4gICAgICAgIHRoaXMuaW5uZXIuX3NhdmVTdGF0ZSh0aGlzLmlzdGF0ZSk7XG4gICAgICAgIHRoaXMub3V0ZXIuX3NhdmVTdGF0ZSh0aGlzLm9zdGF0ZSk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGFkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBwYWRbaV0gPSAwO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8vIFJldHVybnMgSE1BQyBzdGF0ZSB0byB0aGUgc3RhdGUgaW5pdGlhbGl6ZWQgd2l0aCBrZXlcbiAgICAvLyB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIHJ1biBITUFDIG92ZXIgdGhlIG90aGVyIGRhdGEgd2l0aCB0aGUgc2FtZVxuICAgIC8vIGtleSB3aXRob3V0IGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuICAgIEhNQUMucHJvdG90eXBlLnJlc2V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aGlzLmlubmVyLl9yZXN0b3JlU3RhdGUodGhpcy5pc3RhdGUsIHRoaXMuaW5uZXIuYmxvY2tTaXplKTtcbiAgICAgICAgdGhpcy5vdXRlci5fcmVzdG9yZVN0YXRlKHRoaXMub3N0YXRlLCB0aGlzLm91dGVyLmJsb2NrU2l6ZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgLy8gQ2xlYW5zIEhNQUMgc3RhdGUuXG4gICAgSE1BQy5wcm90b3R5cGUuY2xlYW4gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5pc3RhdGUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMub3N0YXRlW2ldID0gdGhpcy5pc3RhdGVbaV0gPSAwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5uZXIuY2xlYW4oKTtcbiAgICAgICAgdGhpcy5vdXRlci5jbGVhbigpO1xuICAgIH07XG4gICAgLy8gVXBkYXRlcyBzdGF0ZSB3aXRoIHByb3ZpZGVkIGRhdGEuXG4gICAgSE1BQy5wcm90b3R5cGUudXBkYXRlID0gZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgdGhpcy5pbm5lci51cGRhdGUoZGF0YSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH07XG4gICAgLy8gRmluYWxpemVzIEhNQUMgYW5kIHB1dHMgdGhlIHJlc3VsdCBpbiBvdXQuXG4gICAgSE1BQy5wcm90b3R5cGUuZmluaXNoID0gZnVuY3Rpb24gKG91dCkge1xuICAgICAgICBpZiAodGhpcy5vdXRlci5maW5pc2hlZCkge1xuICAgICAgICAgICAgdGhpcy5vdXRlci5maW5pc2gob3V0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5uZXIuZmluaXNoKG91dCk7XG4gICAgICAgICAgICB0aGlzLm91dGVyLnVwZGF0ZShvdXQsIHRoaXMuZGlnZXN0TGVuZ3RoKS5maW5pc2gob3V0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9O1xuICAgIC8vIFJldHVybnMgbWVzc2FnZSBhdXRoZW50aWNhdGlvbiBjb2RlLlxuICAgIEhNQUMucHJvdG90eXBlLmRpZ2VzdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIG91dCA9IG5ldyBVaW50OEFycmF5KHRoaXMuZGlnZXN0TGVuZ3RoKTtcbiAgICAgICAgdGhpcy5maW5pc2gob3V0KTtcbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICB9O1xuICAgIHJldHVybiBITUFDO1xufSgpKTtcbmV4cG9ydHMuSE1BQyA9IEhNQUM7XG4vLyBSZXR1cm5zIFNIQTI1NiBoYXNoIG9mIGRhdGEuXG5mdW5jdGlvbiBoYXNoKGRhdGEpIHtcbiAgICB2YXIgaCA9IChuZXcgSGFzaCgpKS51cGRhdGUoZGF0YSk7XG4gICAgdmFyIGRpZ2VzdCA9IGguZGlnZXN0KCk7XG4gICAgaC5jbGVhbigpO1xuICAgIHJldHVybiBkaWdlc3Q7XG59XG5leHBvcnRzLmhhc2ggPSBoYXNoO1xuLy8gRnVuY3Rpb24gaGFzaCBpcyBib3RoIGF2YWlsYWJsZSBhcyBtb2R1bGUuaGFzaCBhbmQgYXMgZGVmYXVsdCBleHBvcnQuXG5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IGhhc2g7XG4vLyBSZXR1cm5zIEhNQUMtU0hBMjU2IG9mIGRhdGEgdW5kZXIgdGhlIGtleS5cbmZ1bmN0aW9uIGhtYWMoa2V5LCBkYXRhKSB7XG4gICAgdmFyIGggPSAobmV3IEhNQUMoa2V5KSkudXBkYXRlKGRhdGEpO1xuICAgIHZhciBkaWdlc3QgPSBoLmRpZ2VzdCgpO1xuICAgIGguY2xlYW4oKTtcbiAgICByZXR1cm4gZGlnZXN0O1xufVxuZXhwb3J0cy5obWFjID0gaG1hYztcbi8vIEZpbGxzIGhrZGYgYnVmZmVyIGxpa2UgdGhpczpcbi8vIFQoMSkgPSBITUFDLUhhc2goUFJLLCBUKDApIHwgaW5mbyB8IDB4MDEpXG5mdW5jdGlvbiBmaWxsQnVmZmVyKGJ1ZmZlciwgaG1hYywgaW5mbywgY291bnRlcikge1xuICAgIC8vIENvdW50ZXIgaXMgYSBieXRlIHZhbHVlOiBjaGVjayBpZiBpdCBvdmVyZmxvd2VkLlxuICAgIHZhciBudW0gPSBjb3VudGVyWzBdO1xuICAgIGlmIChudW0gPT09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiaGtkZjogY2Fubm90IGV4cGFuZCBtb3JlXCIpO1xuICAgIH1cbiAgICAvLyBQcmVwYXJlIEhNQUMgaW5zdGFuY2UgZm9yIG5ldyBkYXRhIHdpdGggb2xkIGtleS5cbiAgICBobWFjLnJlc2V0KCk7XG4gICAgLy8gSGFzaCBpbiBwcmV2aW91cyBvdXRwdXQgaWYgaXQgd2FzIGdlbmVyYXRlZFxuICAgIC8vIChpLmUuIGNvdW50ZXIgaXMgZ3JlYXRlciB0aGFuIDEpLlxuICAgIGlmIChudW0gPiAxKSB7XG4gICAgICAgIGhtYWMudXBkYXRlKGJ1ZmZlcik7XG4gICAgfVxuICAgIC8vIEhhc2ggaW4gaW5mbyBpZiBpdCBleGlzdHMuXG4gICAgaWYgKGluZm8pIHtcbiAgICAgICAgaG1hYy51cGRhdGUoaW5mbyk7XG4gICAgfVxuICAgIC8vIEhhc2ggaW4gdGhlIGNvdW50ZXIuXG4gICAgaG1hYy51cGRhdGUoY291bnRlcik7XG4gICAgLy8gT3V0cHV0IHJlc3VsdCB0byBidWZmZXIgYW5kIGNsZWFuIEhNQUMgaW5zdGFuY2UuXG4gICAgaG1hYy5maW5pc2goYnVmZmVyKTtcbiAgICAvLyBJbmNyZW1lbnQgY291bnRlciBpbnNpZGUgdHlwZWQgYXJyYXksIHRoaXMgd29ya3MgcHJvcGVybHkuXG4gICAgY291bnRlclswXSsrO1xufVxudmFyIGhrZGZTYWx0ID0gbmV3IFVpbnQ4QXJyYXkoZXhwb3J0cy5kaWdlc3RMZW5ndGgpOyAvLyBGaWxsZWQgd2l0aCB6ZXJvZXMuXG5mdW5jdGlvbiBoa2RmKGtleSwgc2FsdCwgaW5mbywgbGVuZ3RoKSB7XG4gICAgaWYgKHNhbHQgPT09IHZvaWQgMCkgeyBzYWx0ID0gaGtkZlNhbHQ7IH1cbiAgICBpZiAobGVuZ3RoID09PSB2b2lkIDApIHsgbGVuZ3RoID0gMzI7IH1cbiAgICB2YXIgY291bnRlciA9IG5ldyBVaW50OEFycmF5KFsxXSk7XG4gICAgLy8gSEtERi1FeHRyYWN0IHVzZXMgc2FsdCBhcyBITUFDIGtleSwgYW5kIGtleSBhcyBkYXRhLlxuICAgIHZhciBva20gPSBobWFjKHNhbHQsIGtleSk7XG4gICAgLy8gSW5pdGlhbGl6ZSBITUFDIGZvciBleHBhbmRpbmcgd2l0aCBleHRyYWN0ZWQga2V5LlxuICAgIC8vIEVuc3VyZSBubyBjb2xsaXNpb25zIHdpdGggYGhtYWNgIGZ1bmN0aW9uLlxuICAgIHZhciBobWFjXyA9IG5ldyBITUFDKG9rbSk7XG4gICAgLy8gQWxsb2NhdGUgYnVmZmVyLlxuICAgIHZhciBidWZmZXIgPSBuZXcgVWludDhBcnJheShobWFjXy5kaWdlc3RMZW5ndGgpO1xuICAgIHZhciBidWZwb3MgPSBidWZmZXIubGVuZ3RoO1xuICAgIHZhciBvdXQgPSBuZXcgVWludDhBcnJheShsZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGJ1ZnBvcyA9PT0gYnVmZmVyLmxlbmd0aCkge1xuICAgICAgICAgICAgZmlsbEJ1ZmZlcihidWZmZXIsIGhtYWNfLCBpbmZvLCBjb3VudGVyKTtcbiAgICAgICAgICAgIGJ1ZnBvcyA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgb3V0W2ldID0gYnVmZmVyW2J1ZnBvcysrXTtcbiAgICB9XG4gICAgaG1hY18uY2xlYW4oKTtcbiAgICBidWZmZXIuZmlsbCgwKTtcbiAgICBjb3VudGVyLmZpbGwoMCk7XG4gICAgcmV0dXJuIG91dDtcbn1cbmV4cG9ydHMuaGtkZiA9IGhrZGY7XG4vLyBEZXJpdmVzIGEga2V5IGZyb20gcGFzc3dvcmQgYW5kIHNhbHQgdXNpbmcgUEJLREYyLUhNQUMtU0hBMjU2XG4vLyB3aXRoIHRoZSBnaXZlbiBudW1iZXIgb2YgaXRlcmF0aW9ucy5cbi8vXG4vLyBUaGUgbnVtYmVyIG9mIGJ5dGVzIHJldHVybmVkIGlzIGVxdWFsIHRvIGRrTGVuLlxuLy9cbi8vIChGb3IgYmV0dGVyIHNlY3VyaXR5LCBhdm9pZCBka0xlbiBncmVhdGVyIHRoYW4gaGFzaCBsZW5ndGggLSAzMiBieXRlcykuXG5mdW5jdGlvbiBwYmtkZjIocGFzc3dvcmQsIHNhbHQsIGl0ZXJhdGlvbnMsIGRrTGVuKSB7XG4gICAgdmFyIHByZiA9IG5ldyBITUFDKHBhc3N3b3JkKTtcbiAgICB2YXIgbGVuID0gcHJmLmRpZ2VzdExlbmd0aDtcbiAgICB2YXIgY3RyID0gbmV3IFVpbnQ4QXJyYXkoNCk7XG4gICAgdmFyIHQgPSBuZXcgVWludDhBcnJheShsZW4pO1xuICAgIHZhciB1ID0gbmV3IFVpbnQ4QXJyYXkobGVuKTtcbiAgICB2YXIgZGsgPSBuZXcgVWludDhBcnJheShka0xlbik7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgKiBsZW4gPCBka0xlbjsgaSsrKSB7XG4gICAgICAgIHZhciBjID0gaSArIDE7XG4gICAgICAgIGN0clswXSA9IChjID4+PiAyNCkgJiAweGZmO1xuICAgICAgICBjdHJbMV0gPSAoYyA+Pj4gMTYpICYgMHhmZjtcbiAgICAgICAgY3RyWzJdID0gKGMgPj4+IDgpICYgMHhmZjtcbiAgICAgICAgY3RyWzNdID0gKGMgPj4+IDApICYgMHhmZjtcbiAgICAgICAgcHJmLnJlc2V0KCk7XG4gICAgICAgIHByZi51cGRhdGUoc2FsdCk7XG4gICAgICAgIHByZi51cGRhdGUoY3RyKTtcbiAgICAgICAgcHJmLmZpbmlzaCh1KTtcbiAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsZW47IGorKykge1xuICAgICAgICAgICAgdFtqXSA9IHVbal07XG4gICAgICAgIH1cbiAgICAgICAgZm9yICh2YXIgaiA9IDI7IGogPD0gaXRlcmF0aW9uczsgaisrKSB7XG4gICAgICAgICAgICBwcmYucmVzZXQoKTtcbiAgICAgICAgICAgIHByZi51cGRhdGUodSkuZmluaXNoKHUpO1xuICAgICAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBsZW47IGsrKykge1xuICAgICAgICAgICAgICAgIHRba10gXj0gdVtrXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGxlbiAmJiBpICogbGVuICsgaiA8IGRrTGVuOyBqKyspIHtcbiAgICAgICAgICAgIGRrW2kgKiBsZW4gKyBqXSA9IHRbal07XG4gICAgICAgIH1cbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICB0W2ldID0gdVtpXSA9IDA7XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNDsgaSsrKSB7XG4gICAgICAgIGN0cltpXSA9IDA7XG4gICAgfVxuICAgIHByZi5jbGVhbigpO1xuICAgIHJldHVybiBkaztcbn1cbmV4cG9ydHMucGJrZGYyID0gcGJrZGYyO1xufSk7XG4iLCJcInVzZSBzdHJpY3RcIjtcbmNvbnN0IHBlcSA9IG5ldyBVaW50MzJBcnJheSgweDEwMDAwKTtcbmNvbnN0IG15ZXJzXzMyID0gKGEsIGIpID0+IHtcbiAgY29uc3QgbiA9IGEubGVuZ3RoO1xuICBjb25zdCBtID0gYi5sZW5ndGg7XG4gIGNvbnN0IGxzdCA9IDEgPDwgKG4gLSAxKTtcbiAgbGV0IHB2ID0gLTE7XG4gIGxldCBtdiA9IDA7XG4gIGxldCBzYyA9IG47XG4gIGxldCBpID0gbjtcbiAgd2hpbGUgKGktLSkge1xuICAgIHBlcVthLmNoYXJDb2RlQXQoaSldIHw9IDEgPDwgaTtcbiAgfVxuICBmb3IgKGkgPSAwOyBpIDwgbTsgaSsrKSB7XG4gICAgbGV0IGVxID0gcGVxW2IuY2hhckNvZGVBdChpKV07XG4gICAgY29uc3QgeHYgPSBlcSB8IG12O1xuICAgIGVxIHw9ICgoZXEgJiBwdikgKyBwdikgXiBwdjtcbiAgICBtdiB8PSB+KGVxIHwgcHYpO1xuICAgIHB2ICY9IGVxO1xuICAgIGlmIChtdiAmIGxzdCkge1xuICAgICAgc2MrKztcbiAgICB9XG4gICAgaWYgKHB2ICYgbHN0KSB7XG4gICAgICBzYy0tO1xuICAgIH1cbiAgICBtdiA9IChtdiA8PCAxKSB8IDE7XG4gICAgcHYgPSAocHYgPDwgMSkgfCB+KHh2IHwgbXYpO1xuICAgIG12ICY9IHh2O1xuICB9XG4gIGkgPSBuO1xuICB3aGlsZSAoaS0tKSB7XG4gICAgcGVxW2EuY2hhckNvZGVBdChpKV0gPSAwO1xuICB9XG4gIHJldHVybiBzYztcbn07XG5cbmNvbnN0IG15ZXJzX3ggPSAoYSwgYikgPT4ge1xuICBjb25zdCBuID0gYS5sZW5ndGg7XG4gIGNvbnN0IG0gPSBiLmxlbmd0aDtcbiAgY29uc3QgbWhjID0gW107XG4gIGNvbnN0IHBoYyA9IFtdO1xuICBjb25zdCBoc2l6ZSA9IE1hdGguY2VpbChuIC8gMzIpO1xuICBjb25zdCB2c2l6ZSA9IE1hdGguY2VpbChtIC8gMzIpO1xuICBsZXQgc2NvcmUgPSBtO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGhzaXplOyBpKyspIHtcbiAgICBwaGNbaV0gPSAtMTtcbiAgICBtaGNbaV0gPSAwO1xuICB9XG4gIGxldCBqID0gMDtcbiAgZm9yICg7IGogPCB2c2l6ZSAtIDE7IGorKykge1xuICAgIGxldCBtdiA9IDA7XG4gICAgbGV0IHB2ID0gLTE7XG4gICAgY29uc3Qgc3RhcnQgPSBqICogMzI7XG4gICAgY29uc3QgZW5kID0gTWF0aC5taW4oMzIsIG0pICsgc3RhcnQ7XG4gICAgZm9yIChsZXQgayA9IHN0YXJ0OyBrIDwgZW5kOyBrKyspIHtcbiAgICAgIHBlcVtiLmNoYXJDb2RlQXQoayldIHw9IDEgPDwgaztcbiAgICB9XG4gICAgc2NvcmUgPSBtO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgICBjb25zdCBlcSA9IHBlcVthLmNoYXJDb2RlQXQoaSldO1xuICAgICAgY29uc3QgcGIgPSAocGhjWyhpIC8gMzIpIHwgMF0gPj4+IGkpICYgMTtcbiAgICAgIGNvbnN0IG1iID0gKG1oY1soaSAvIDMyKSB8IDBdID4+PiBpKSAmIDE7XG4gICAgICBjb25zdCB4diA9IGVxIHwgbXY7XG4gICAgICBjb25zdCB4aCA9ICgoKChlcSB8IG1iKSAmIHB2KSArIHB2KSBeIHB2KSB8IGVxIHwgbWI7XG4gICAgICBsZXQgcGggPSBtdiB8IH4oeGggfCBwdik7XG4gICAgICBsZXQgbWggPSBwdiAmIHhoO1xuICAgICAgaWYgKChwaCA+Pj4gMzEpIF4gcGIpIHtcbiAgICAgICAgcGhjWyhpIC8gMzIpIHwgMF0gXj0gMSA8PCBpO1xuICAgICAgfVxuICAgICAgaWYgKChtaCA+Pj4gMzEpIF4gbWIpIHtcbiAgICAgICAgbWhjWyhpIC8gMzIpIHwgMF0gXj0gMSA8PCBpO1xuICAgICAgfVxuICAgICAgcGggPSAocGggPDwgMSkgfCBwYjtcbiAgICAgIG1oID0gKG1oIDw8IDEpIHwgbWI7XG4gICAgICBwdiA9IG1oIHwgfih4diB8IHBoKTtcbiAgICAgIG12ID0gcGggJiB4djtcbiAgICB9XG4gICAgZm9yIChsZXQgayA9IHN0YXJ0OyBrIDwgZW5kOyBrKyspIHtcbiAgICAgIHBlcVtiLmNoYXJDb2RlQXQoayldID0gMDtcbiAgICB9XG4gIH1cbiAgbGV0IG12ID0gMDtcbiAgbGV0IHB2ID0gLTE7XG4gIGNvbnN0IHN0YXJ0ID0gaiAqIDMyO1xuICBjb25zdCBlbmQgPSBNYXRoLm1pbigzMiwgbSAtIHN0YXJ0KSArIHN0YXJ0O1xuICBmb3IgKGxldCBrID0gc3RhcnQ7IGsgPCBlbmQ7IGsrKykge1xuICAgIHBlcVtiLmNoYXJDb2RlQXQoayldIHw9IDEgPDwgaztcbiAgfVxuICBzY29yZSA9IG07XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgaSsrKSB7XG4gICAgY29uc3QgZXEgPSBwZXFbYS5jaGFyQ29kZUF0KGkpXTtcbiAgICBjb25zdCBwYiA9IChwaGNbKGkgLyAzMikgfCAwXSA+Pj4gaSkgJiAxO1xuICAgIGNvbnN0IG1iID0gKG1oY1soaSAvIDMyKSB8IDBdID4+PiBpKSAmIDE7XG4gICAgY29uc3QgeHYgPSBlcSB8IG12O1xuICAgIGNvbnN0IHhoID0gKCgoKGVxIHwgbWIpICYgcHYpICsgcHYpIF4gcHYpIHwgZXEgfCBtYjtcbiAgICBsZXQgcGggPSBtdiB8IH4oeGggfCBwdik7XG4gICAgbGV0IG1oID0gcHYgJiB4aDtcbiAgICBzY29yZSArPSAocGggPj4+IChtIC0gMSkpICYgMTtcbiAgICBzY29yZSAtPSAobWggPj4+IChtIC0gMSkpICYgMTtcbiAgICBpZiAoKHBoID4+PiAzMSkgXiBwYikge1xuICAgICAgcGhjWyhpIC8gMzIpIHwgMF0gXj0gMSA8PCBpO1xuICAgIH1cbiAgICBpZiAoKG1oID4+PiAzMSkgXiBtYikge1xuICAgICAgbWhjWyhpIC8gMzIpIHwgMF0gXj0gMSA8PCBpO1xuICAgIH1cbiAgICBwaCA9IChwaCA8PCAxKSB8IHBiO1xuICAgIG1oID0gKG1oIDw8IDEpIHwgbWI7XG4gICAgcHYgPSBtaCB8IH4oeHYgfCBwaCk7XG4gICAgbXYgPSBwaCAmIHh2O1xuICB9XG4gIGZvciAobGV0IGsgPSBzdGFydDsgayA8IGVuZDsgaysrKSB7XG4gICAgcGVxW2IuY2hhckNvZGVBdChrKV0gPSAwO1xuICB9XG4gIHJldHVybiBzY29yZTtcbn07XG5cbmNvbnN0IGRpc3RhbmNlID0gKGEsIGIpID0+IHtcbiAgaWYgKGEubGVuZ3RoID4gYi5sZW5ndGgpIHtcbiAgICBjb25zdCB0bXAgPSBiO1xuICAgIGIgPSBhO1xuICAgIGEgPSB0bXA7XG4gIH1cbiAgaWYgKGEubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGIubGVuZ3RoO1xuICB9XG4gIGlmIChhLmxlbmd0aCA8PSAzMikge1xuICAgIHJldHVybiBteWVyc18zMihhLCBiKTtcbiAgfVxuICByZXR1cm4gbXllcnNfeChhLCBiKTtcbn07XG5cbmNvbnN0IGNsb3Nlc3QgPSAoc3RyLCBhcnIpID0+IHtcbiAgbGV0IG1pbl9kaXN0YW5jZSA9IEluZmluaXR5O1xuICBsZXQgbWluX2luZGV4ID0gMDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBkaXN0ID0gZGlzdGFuY2Uoc3RyLCBhcnJbaV0pO1xuICAgIGlmIChkaXN0IDwgbWluX2Rpc3RhbmNlKSB7XG4gICAgICBtaW5fZGlzdGFuY2UgPSBkaXN0O1xuICAgICAgbWluX2luZGV4ID0gaTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGFyclttaW5faW5kZXhdO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGNsb3Nlc3QsIGRpc3RhbmNlXG59XG4iLCJcInVzZSBzdHJpY3RcIjtcbi8vIFJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZ2Vla3Nmb3JnZWVrcy5vcmcvamFyby1hbmQtamFyby13aW5rbGVyLXNpbWlsYXJpdHkvXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5leHBvcnRzLmphcm9XaW5rbGVyID0gZXhwb3J0cy5qYXJvID0gdm9pZCAwO1xuLyoqXG4gKlxuICogQHBhcmFtIHN0cjEgU3RyaW5nIDEgZm9yIGNvbXBhcmVcbiAqIEBwYXJhbSBzdHIyIFN0cmluZyAyIGZvciBjb21wYXJlXG4gKiBAcGFyYW0gb3B0aW9ucyB0byBjb250cm9sIGNhc2Ugc2Vuc2l0aXZlIG9yIG5vdFxuICovXG5mdW5jdGlvbiBqYXJvKHN0cjEsIHN0cjIsIG9wdGlvbnMpIHtcbiAgICAvLyBFeGl0IGVhcmx5IGlmIGVpdGhlciBhcmUgZW1wdHkuXG4gICAgaWYgKHN0cjEubGVuZ3RoID09PSAwIHx8IHN0cjIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICAvLyBDb252ZXJ0IHRvIHVwcGVyIGlmIGNhc2Utc2Vuc2l0aXZlIGlzIGZhbHNlLlxuICAgIGlmIChvcHRpb25zICYmICFvcHRpb25zLmNhc2VTZW5zaXRpdmUpIHtcbiAgICAgICAgc3RyMSA9IHN0cjEudG9VcHBlckNhc2UoKTtcbiAgICAgICAgc3RyMiA9IHN0cjIudG9VcHBlckNhc2UoKTtcbiAgICB9XG4gICAgLy8gRXhhY3QgbWF0Y2hcbiAgICBpZiAoc3RyMSA9PT0gc3RyMikge1xuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgLy8gTnVtYmVyIG9mIG1hdGNoZXNcbiAgICB2YXIgbSA9IDA7XG4gICAgLy8gTGVuZ3RoIG9mIHR3byBTdHJpbmdzXG4gICAgdmFyIGxlbjEgPSBzdHIxLmxlbmd0aDtcbiAgICB2YXIgbGVuMiA9IHN0cjIubGVuZ3RoO1xuICAgIC8vIE1heGltdW0gZGlzdGFuY2VcbiAgICB2YXIgd2luZG93ID0gTWF0aC5mbG9vcihNYXRoLm1heChsZW4xLCBsZW4yKSAvIDIpIC0gMTtcbiAgICAvLyBIYXNoIGZvciBtYXRjaGVzXG4gICAgdmFyIHN0cjFIYXNoID0gbmV3IEFycmF5KGxlbjEpO1xuICAgIHZhciBzdHIySGFzaCA9IG5ldyBBcnJheShsZW4yKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjE7IGkrKykge1xuICAgICAgICBmb3IgKHZhciBqID0gTWF0aC5tYXgoMCwgaSAtIHdpbmRvdyk7IGogPD0gTWF0aC5taW4obGVuMiwgaSArIHdpbmRvdyArIDEpOyBqKyspIHtcbiAgICAgICAgICAgIGlmICghc3RyMUhhc2hbaV0gJiYgIXN0cjJIYXNoW2pdICYmIHN0cjFbaV0gPT09IHN0cjJbal0pIHtcbiAgICAgICAgICAgICAgICArK207XG4gICAgICAgICAgICAgICAgc3RyMUhhc2hbaV0gPSBzdHIySGFzaFtqXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gRXhpdCBlYXJseSBpZiBubyBtYXRjaGVzIHdlcmUgZm91bmQuXG4gICAgaWYgKG0gPT09IDApIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIC8vIENvdW50IHRoZSB0cmFuc3Bvc2l0aW9ucy5cbiAgICB2YXIgdCA9IDA7XG4gICAgdmFyIHBvaW50ID0gMDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjE7IGkrKykge1xuICAgICAgICBpZiAoc3RyMUhhc2hbaV0pIHtcbiAgICAgICAgICAgIHdoaWxlICghc3RyMkhhc2hbcG9pbnRdKSB7XG4gICAgICAgICAgICAgICAgcG9pbnQrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzdHIxLmNoYXJBdChpKSAhPT0gc3RyMi5jaGFyQXQocG9pbnQrKykpIHtcbiAgICAgICAgICAgICAgICB0Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdCAvPSAyO1xuICAgIHJldHVybiAobSAvIGxlbjEgKyBtIC8gbGVuMiArIChtIC0gdCkgLyBtKSAvIDM7XG59XG5leHBvcnRzLmphcm8gPSBqYXJvO1xuLyoqXG4gKlxuICogQHBhcmFtIHN0cjEgU3RyaW5nIDEgZm9yIGNvbXBhcmVcbiAqIEBwYXJhbSBzdHIyIFN0cmluZyAyIGZvciBjb21wYXJlXG4gKiBAcGFyYW0gb3B0aW9ucyB0byBjb250cm9sIGNhc2Ugc2Vuc2l0aXZlIG9yIG5vdFxuICovXG5mdW5jdGlvbiBqYXJvV2lua2xlcihzdHIxLCBzdHIyLCBvcHRpb25zKSB7XG4gICAgLy8gSmFybyBEaXN0YW5jZVxuICAgIHZhciBqYXJvRGlzdCA9IGphcm8oc3RyMSwgc3RyMiwgb3B0aW9ucyk7XG4gICAgLy8gU2FtZSBwcmVmaXggbGVuZ3RoLCBtYXhpdW0gaXMgNFxuICAgIHZhciBwcmVmaXggPSAwO1xuICAgIGlmIChqYXJvRGlzdCA+IDAuNykge1xuICAgICAgICB2YXIgbWluSW5kZXggPSBNYXRoLm1pbihzdHIxLmxlbmd0aCwgc3RyMi5sZW5ndGgpO1xuICAgICAgICB2YXIgaSA9IDA7XG4gICAgICAgIHdoaWxlIChzdHIxW2ldID09PSBzdHIyW2ldICYmIGkgPCA0ICYmIGkgPCBtaW5JbmRleCkge1xuICAgICAgICAgICAgKytwcmVmaXg7XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH1cbiAgICAgICAgamFyb0Rpc3QgKz0gMC4xICogcHJlZml4ICogKDEgLSBqYXJvRGlzdCk7XG4gICAgfVxuICAgIHJldHVybiBqYXJvRGlzdDtcbn1cbmV4cG9ydHMuamFyb1dpbmtsZXIgPSBqYXJvV2lua2xlcjtcbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5jb25zdCBWMjAwMF9BVE9NX05BTUVfUE9TID0gMzE7XG5leHBvcnQgZnVuY3Rpb24gZ2V0RmluZ2VycHJpbnRzKG1vbHMsIG1vbm9tZXJzKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgbW9kID0geWllbGQgZ3Jvay5mdW5jdGlvbnMuY2FsbCgnQ2hlbTpnZXRSZEtpdE1vZHVsZScpO1xuICAgICAgICBjb25zdCBmcHMgPSBbXTtcbiAgICAgICAgbGV0IGRpY3QgPSBuZXcgTWFwKCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW9ub21lcnMubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICBkaWN0LnNldChtb25vbWVyc1tpXSwgYFIke01hdGgucG93KDEwLCAoaSArIDEpKX1gKTtcbiAgICAgICAgbW9scyA9IGNoYW5nZVRvVjMwMDAobW9scywgZGljdCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW9scy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgbW9sID0gbW9kLmdldF9tb2wobW9sc1tpXSk7XG4gICAgICAgICAgICBjb25zdCBmcCA9IG1vbC5nZXRfcGF0dGVybl9mcF9hc191aW50OGFycmF5KCk7XG4gICAgICAgICAgICBmcHMucHVzaChmcCk7XG4gICAgICAgICAgICBtb2wgPT09IG51bGwgfHwgbW9sID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtb2wuZGVsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZwcztcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGNoYW5nZVRvVjMwMDAobW9scywgZGljdCkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbW9scy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgY3VyUG9zID0gMDtcbiAgICAgICAgbGV0IGVuZFBvcyA9IDA7XG4gICAgICAgIGxldCBtb2xWMzAwMCA9IGBcbiAgICBEYXRhZ3JvayBtYWNyb21vbGVjdWxlIGhhbmRsZXJcblxuICAwICAwICAwICAwICAwICAwICAgICAgICAgICAgOTk5IFYzMDAwXG5NICBWMzAgQkVHSU4gQ1RBQlxuYDtcbiAgICAgICAgY29uc3QgbW9sID0gbW9sc1tpXTtcbiAgICAgICAgY3VyUG9zID0gbW9sLmluZGV4T2YoJ1xcbicsIGN1clBvcykgKyAxO1xuICAgICAgICBjdXJQb3MgPSBtb2wuaW5kZXhPZignXFxuJywgY3VyUG9zKSArIDE7XG4gICAgICAgIGN1clBvcyA9IG1vbC5pbmRleE9mKCdcXG4nLCBjdXJQb3MpICsgMTtcbiAgICAgICAgY29uc3QgYXRvbU1vbm9tZXJDb3VudHMgPSBwYXJzZUludChtb2wuc3Vic3RyaW5nKGN1clBvcywgY3VyUG9zICsgMykpO1xuICAgICAgICBjb25zdCBib25kTW9ub21lckNvdW50cyA9IHBhcnNlSW50KG1vbC5zdWJzdHJpbmcoY3VyUG9zICsgMywgY3VyUG9zICsgNikpO1xuICAgICAgICBtb2xWMzAwMCArPSBgTSAgVjMwIENPVU5UUyAke2F0b21Nb25vbWVyQ291bnRzfSAke2JvbmRNb25vbWVyQ291bnRzfSAwIDAgMFxcbmA7XG4gICAgICAgIG1vbFYzMDAwICs9ICdNICBWMzAgQkVHSU4gQVRPTVxcbic7XG4gICAgICAgIGZvciAobGV0IGF0b21Sb3dJID0gMDsgYXRvbVJvd0kgPCBhdG9tTW9ub21lckNvdW50czsgYXRvbVJvd0krKykge1xuICAgICAgICAgICAgY3VyUG9zID0gbW9sLmluZGV4T2YoJ1xcbicsIGN1clBvcykgKyAxICsgVjIwMDBfQVRPTV9OQU1FX1BPUztcbiAgICAgICAgICAgIGVuZFBvcyA9IG1vbC5pbmRleE9mKCcgJywgY3VyUG9zKTtcbiAgICAgICAgICAgIGNvbnN0IG1vbm9tZXJOYW1lID0gbW9sLnN1YnN0cmluZyhjdXJQb3MsIGVuZFBvcyk7XG4gICAgICAgICAgICBtb2xWMzAwMCArPSBgTSAgVjMwICR7YXRvbVJvd0kgKyAxfSAke2RpY3QuZ2V0KG1vbm9tZXJOYW1lKX0gMC4wMDAgMC4wMDAgMCAwXFxuYDtcbiAgICAgICAgfVxuICAgICAgICBtb2xWMzAwMCArPSAnTSAgVjMwIEVORCBBVE9NXFxuJztcbiAgICAgICAgbW9sVjMwMDAgKz0gJ00gIFYzMCBCRUdJTiBCT05EXFxuJztcbiAgICAgICAgZm9yIChsZXQgYm9uZFJvd0kgPSAwOyBib25kUm93SSA8IGJvbmRNb25vbWVyQ291bnRzOyBib25kUm93SSsrKSB7XG4gICAgICAgICAgICBjdXJQb3MgPSBtb2wuaW5kZXhPZignXFxuJywgY3VyUG9zKSArIDE7XG4gICAgICAgICAgICBjb25zdCBmaXJzdE1vbm9tZXIgPSBwYXJzZUludChtb2wuc3Vic3RyaW5nKGN1clBvcywgY3VyUG9zICsgMykudHJpbSgpKTtcbiAgICAgICAgICAgIGNvbnN0IHNlY29uZE1vbm9tZXIgPSBwYXJzZUludChtb2wuc3Vic3RyaW5nKGN1clBvcyArIDMsIGN1clBvcyArIDYpLnRyaW0oKSk7XG4gICAgICAgICAgICBjb25zdCBvcmRlciA9IHBhcnNlSW50KG1vbC5zdWJzdHJpbmcoY3VyUG9zICsgNiwgY3VyUG9zICsgOSkudHJpbSgpKTtcbiAgICAgICAgICAgIG1vbFYzMDAwICs9IGBNICBWMzAgJHtib25kUm93SSArIDF9ICR7b3JkZXJ9ICR7Zmlyc3RNb25vbWVyfSAke3NlY29uZE1vbm9tZXJ9XFxuYDtcbiAgICAgICAgfVxuICAgICAgICBtb2xWMzAwMCArPSAnTSAgVjMwIEVORCBCT05EXFxuJztcbiAgICAgICAgbW9sVjMwMDAgKz0gJ00gIFYzMCBFTkQgQ1RBQlxcbic7XG4gICAgICAgIG1vbFYzMDAwICs9ICdNICBFTkQnO1xuICAgICAgICBjb25zb2xlLmxvZyhtb2xWMzAwMCk7XG4gICAgICAgIG1vbHNbaV0gPSBtb2xWMzAwMDtcbiAgICB9XG4gICAgcmV0dXJuIG1vbHM7XG59XG4iLCJleHBvcnQgY29uc3QganNvblNkZk1vbm9tZXJMaWJEaWN0ID0ge1xuICAgICdtb25vbWVyVHlwZSc6IG51bGwsXG4gICAgJ3NtaWxlcyc6IG51bGwsXG4gICAgJ25hbWUnOiAnTW9ub21lck5hbWUnLFxuICAgICdhdXRob3InOiBudWxsLFxuICAgICdtb2xmaWxlJzogJ21vbGVjdWxlJyxcbiAgICAnbmF0dXJhbEFuYWxvZyc6ICdNb25vbWVyTmF0dXJhbEFuYWxvZ0NvZGUnLFxuICAgICdyZ3JvdXBzJzogJ01vbm9tZXJDYXBzJyxcbiAgICAnY3JlYXRlRGF0ZSc6IG51bGwsXG4gICAgJ2lkJzogbnVsbCxcbiAgICAncG9seW1lclR5cGUnOiAnTW9ub21lclR5cGUnLFxuICAgICdzeW1ib2wnOiAnTW9ub21lckNvZGUnXG59O1xuZXhwb3J0IGNvbnN0IFJHUk9VUF9GSUVMRCA9ICdyZ3JvdXBzJztcbmV4cG9ydCBjb25zdCBDQVBfR1JPVVBfU01JTEVTID0gJ2NhcEdyb3VwU21pbGVzJztcbmV4cG9ydCBjb25zdCBSR1JPVVBfQUxURVJfSUQgPSAnYWx0ZXJuYXRlSWQnO1xuZXhwb3J0IGNvbnN0IENBUF9HUk9VUF9OQU1FID0gJ2NhcEdyb3VwTmFtZSc7XG5leHBvcnQgY29uc3QgUkdST1VQX0xBQkVMID0gJ2xhYmVsJztcbmV4cG9ydCBjb25zdCBNT05PTUVSX1NZTUJPTCA9ICdzeW1ib2wnO1xuZXhwb3J0IGNvbnN0IFNERl9NT05PTUVSX05BTUUgPSAnTW9ub21lck5hbWUnO1xuLy8gcmFuZ2Ugb2YgaGV4IG51YmVycyB1c2VkIGluIFBlcFNlYSBsaWJyYXJ5IHRvIGVuZG9kZSBtb25vbWVyc1xuZXhwb3J0IGNvbnN0IE1PTk9NRVJfRU5DT0RFX01JTiA9IDB4MTAwO1xuZXhwb3J0IGNvbnN0IE1PTk9NRVJfRU5DT0RFX01BWCA9IDB4NDBBO1xuIiwiY2xhc3MgQ2VsbCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSAwO1xuICAgICAgICB0aGlzLnBhcmVudEkgPSAwO1xuICAgICAgICB0aGlzLnBhcmVudEogPSAwO1xuICAgIH1cbn1cbjtcbmV4cG9ydCBjbGFzcyBBbGlnbmVkIHtcbiAgICBjb25zdHJ1Y3RvcihzZXExXywgc2VxMl8sIHNjb3JlXykge1xuICAgICAgICB0aGlzLnNlcTEgPSBzZXExXztcbiAgICAgICAgdGhpcy5zZXEyID0gc2VxMl87XG4gICAgICAgIHRoaXMuc2NvcmUgPSBzY29yZV87XG4gICAgfVxufVxuO1xuZXhwb3J0IGNsYXNzIFNlcXVlbmNlQWxpZ25tZW50IHtcbiAgICBjb25zdHJ1Y3RvcihzZXExXywgc2VxMl8sIGdhcF8sIGFsaWduR3JpZF8gPSBcIlwiKSB7XG4gICAgICAgIHRoaXMuc2VxMSA9ICcnO1xuICAgICAgICB0aGlzLnNlcTIgPSAnJztcbiAgICAgICAgdGhpcy5nYXAgPSAxO1xuICAgICAgICB0aGlzLmxlbjEgPSAwO1xuICAgICAgICB0aGlzLmxlbjIgPSAwO1xuICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICB0aGlzLmFsaWduR3JpZCA9IFtdO1xuICAgICAgICB0aGlzLnNjb3JlcyA9IFtdO1xuICAgICAgICB0aGlzLmRwR3JpZCA9IFtdO1xuICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0ge307XG4gICAgICAgIHRoaXMuQkxPU1VNNDUgPSBbWzUsIC0yLCAtMSwgLTIsIC0xLCAtMSwgLTEsIDAsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0xLCAxLCAwLCAtMiwgLTIsIDAsIC0xLCAtMSwgMCwgLTVdLFxuICAgICAgICAgICAgWy0yLCA3LCAwLCAtMSwgLTMsIDEsIDAsIC0yLCAwLCAtMywgLTIsIDMsIC0xLCAtMiwgLTIsIC0xLCAtMSwgLTIsIC0xLCAtMiwgLTEsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDAsIDYsIDIsIC0yLCAwLCAwLCAwLCAxLCAtMiwgLTMsIDAsIC0yLCAtMiwgLTIsIDEsIDAsIC00LCAtMiwgLTMsIDQsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0xLCAyLCA3LCAtMywgMCwgMiwgLTEsIDAsIC00LCAtMywgMCwgLTMsIC00LCAtMSwgMCwgLTEsIC00LCAtMiwgLTMsIDUsIDEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC0zLCAtMiwgLTMsIDEyLCAtMywgLTMsIC0zLCAtMywgLTMsIC0yLCAtMywgLTIsIC0yLCAtNCwgLTEsIC0xLCAtNSwgLTMsIC0xLCAtMiwgLTMsIC0yLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDEsIDAsIDAsIC0zLCA2LCAyLCAtMiwgMSwgLTIsIC0yLCAxLCAwLCAtNCwgLTEsIDAsIC0xLCAtMiwgLTEsIC0zLCAwLCA0LCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAwLCAwLCAyLCAtMywgMiwgNiwgLTIsIDAsIC0zLCAtMiwgMSwgLTIsIC0zLCAwLCAwLCAtMSwgLTMsIC0yLCAtMywgMSwgNCwgLTEsIC01XSxcbiAgICAgICAgICAgIFswLCAtMiwgMCwgLTEsIC0zLCAtMiwgLTIsIDcsIC0yLCAtNCwgLTMsIC0yLCAtMiwgLTMsIC0yLCAwLCAtMiwgLTIsIC0zLCAtMywgLTEsIC0yLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAwLCAxLCAwLCAtMywgMSwgMCwgLTIsIDEwLCAtMywgLTIsIC0xLCAwLCAtMiwgLTIsIC0xLCAtMiwgLTMsIDIsIC0zLCAwLCAwLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTIsIC00LCAtMywgLTIsIC0zLCAtNCwgLTMsIDUsIDIsIC0zLCAyLCAwLCAtMiwgLTIsIC0xLCAtMiwgMCwgMywgLTMsIC0zLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTMsIC0zLCAtMiwgLTIsIC0yLCAtMywgLTIsIDIsIDUsIC0zLCAyLCAxLCAtMywgLTMsIC0xLCAtMiwgMCwgMSwgLTMsIC0yLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAzLCAwLCAwLCAtMywgMSwgMSwgLTIsIC0xLCAtMywgLTMsIDUsIC0xLCAtMywgLTEsIC0xLCAtMSwgLTIsIC0xLCAtMiwgMCwgMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTEsIC0yLCAtMywgLTIsIDAsIC0yLCAtMiwgMCwgMiwgMiwgLTEsIDYsIDAsIC0yLCAtMiwgLTEsIC0yLCAwLCAxLCAtMiwgLTEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0yLCAtMiwgLTQsIC0yLCAtNCwgLTMsIC0zLCAtMiwgMCwgMSwgLTMsIDAsIDgsIC0zLCAtMiwgLTEsIDEsIDMsIDAsIC0zLCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0yLCAtMSwgLTQsIC0xLCAwLCAtMiwgLTIsIC0yLCAtMywgLTEsIC0yLCAtMywgOSwgLTEsIC0xLCAtMywgLTMsIC0zLCAtMiwgLTEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMSwgLTEsIDEsIDAsIC0xLCAwLCAwLCAwLCAtMSwgLTIsIC0zLCAtMSwgLTIsIC0yLCAtMSwgNCwgMiwgLTQsIC0yLCAtMSwgMCwgMCwgMCwgLTVdLFxuICAgICAgICAgICAgWzAsIC0xLCAwLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAyLCA1LCAtMywgLTEsIDAsIDAsIC0xLCAwLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0yLCAtNCwgLTQsIC01LCAtMiwgLTMsIC0yLCAtMywgLTIsIC0yLCAtMiwgLTIsIDEsIC0zLCAtNCwgLTMsIDE1LCAzLCAtMywgLTQsIC0yLCAtMiwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMSwgLTIsIC0yLCAtMywgLTEsIC0yLCAtMywgMiwgMCwgMCwgLTEsIDAsIDMsIC0zLCAtMiwgLTEsIDMsIDgsIC0xLCAtMiwgLTIsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTIsIC0zLCAtMywgLTEsIC0zLCAtMywgLTMsIC0zLCAzLCAxLCAtMiwgMSwgMCwgLTMsIC0xLCAwLCAtMywgLTEsIDUsIC0zLCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTEsIDQsIDUsIC0yLCAwLCAxLCAtMSwgMCwgLTMsIC0zLCAwLCAtMiwgLTMsIC0yLCAwLCAwLCAtNCwgLTIsIC0zLCA0LCAyLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0xLCAwLCAwLCAxLCAtMywgNCwgNCwgLTIsIDAsIC0zLCAtMiwgMSwgLTEsIC0zLCAtMSwgMCwgLTEsIC0yLCAtMiwgLTMsIDIsIDQsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTEsIC0xLCAtMSwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAwLCAwLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAxXV07XG4gICAgICAgIHRoaXMuQkxPU1VNNTAgPSBbWzUsIC0yLCAtMSwgLTIsIC0xLCAtMSwgLTEsIDAsIC0yLCAtMSwgLTIsIC0xLCAtMSwgLTMsIC0xLCAxLCAwLCAtMywgLTIsIDAsIC0yLCAtMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMiwgNywgLTEsIC0yLCAtNCwgMSwgMCwgLTMsIDAsIC00LCAtMywgMywgLTIsIC0zLCAtMywgLTEsIC0xLCAtMywgLTEsIC0zLCAtMSwgMCwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTEsIDcsIDIsIC0yLCAwLCAwLCAwLCAxLCAtMywgLTQsIDAsIC0yLCAtNCwgLTIsIDEsIDAsIC00LCAtMiwgLTMsIDQsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0yLCAyLCA4LCAtNCwgMCwgMiwgLTEsIC0xLCAtNCwgLTQsIC0xLCAtNCwgLTUsIC0xLCAwLCAtMSwgLTUsIC0zLCAtNCwgNSwgMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTQsIC0yLCAtNCwgMTMsIC0zLCAtMywgLTMsIC0zLCAtMiwgLTIsIC0zLCAtMiwgLTIsIC00LCAtMSwgLTEsIC01LCAtMywgLTEsIC0zLCAtMywgLTIsIC01XSxcbiAgICAgICAgICAgIFstMSwgMSwgMCwgMCwgLTMsIDcsIDIsIC0yLCAxLCAtMywgLTIsIDIsIDAsIC00LCAtMSwgMCwgLTEsIC0xLCAtMSwgLTMsIDAsIDQsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDAsIDAsIDIsIC0zLCAyLCA2LCAtMywgMCwgLTQsIC0zLCAxLCAtMiwgLTMsIC0xLCAtMSwgLTEsIC0zLCAtMiwgLTMsIDEsIDUsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTMsIDAsIC0xLCAtMywgLTIsIC0zLCA4LCAtMiwgLTQsIC00LCAtMiwgLTMsIC00LCAtMiwgMCwgLTIsIC0zLCAtMywgLTQsIC0xLCAtMiwgLTIsIC01XSxcbiAgICAgICAgICAgIFstMiwgMCwgMSwgLTEsIC0zLCAxLCAwLCAtMiwgMTAsIC00LCAtMywgMCwgLTEsIC0xLCAtMiwgLTEsIC0yLCAtMywgMiwgLTQsIDAsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIC00LCAtMywgLTQsIC0yLCAtMywgLTQsIC00LCAtNCwgNSwgMiwgLTMsIDIsIDAsIC0zLCAtMywgLTEsIC0zLCAtMSwgNCwgLTQsIC0zLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTQsIC00LCAtMiwgLTIsIC0zLCAtNCwgLTMsIDIsIDUsIC0zLCAzLCAxLCAtNCwgLTMsIC0xLCAtMiwgLTEsIDEsIC00LCAtMywgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgMywgMCwgLTEsIC0zLCAyLCAxLCAtMiwgMCwgLTMsIC0zLCA2LCAtMiwgLTQsIC0xLCAwLCAtMSwgLTMsIC0yLCAtMywgMCwgMSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0yLCAtNCwgLTIsIDAsIC0yLCAtMywgLTEsIDIsIDMsIC0yLCA3LCAwLCAtMywgLTIsIC0xLCAtMSwgMCwgMSwgLTMsIC0xLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0zLCAtMywgLTQsIC01LCAtMiwgLTQsIC0zLCAtNCwgLTEsIDAsIDEsIC00LCAwLCA4LCAtNCwgLTMsIC0yLCAxLCA0LCAtMSwgLTQsIC00LCAtMiwgLTVdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTIsIC0xLCAtNCwgLTEsIC0xLCAtMiwgLTIsIC0zLCAtNCwgLTEsIC0zLCAtNCwgMTAsIC0xLCAtMSwgLTQsIC0zLCAtMywgLTIsIC0xLCAtMiwgLTVdLFxuICAgICAgICAgICAgWzEsIC0xLCAxLCAwLCAtMSwgMCwgLTEsIDAsIC0xLCAtMywgLTMsIDAsIC0yLCAtMywgLTEsIDUsIDIsIC00LCAtMiwgLTIsIDAsIDAsIC0xLCAtNV0sXG4gICAgICAgICAgICBbMCwgLTEsIDAsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTEsIDIsIDUsIC0zLCAtMiwgMCwgMCwgLTEsIDAsIC01XSxcbiAgICAgICAgICAgIFstMywgLTMsIC00LCAtNSwgLTUsIC0xLCAtMywgLTMsIC0zLCAtMywgLTIsIC0zLCAtMSwgMSwgLTQsIC00LCAtMywgMTUsIDIsIC0zLCAtNSwgLTIsIC0zLCAtNV0sXG4gICAgICAgICAgICBbLTIsIC0xLCAtMiwgLTMsIC0zLCAtMSwgLTIsIC0zLCAyLCAtMSwgLTEsIC0yLCAwLCA0LCAtMywgLTIsIC0yLCAyLCA4LCAtMSwgLTMsIC0yLCAtMSwgLTVdLFxuICAgICAgICAgICAgWzAsIC0zLCAtMywgLTQsIC0xLCAtMywgLTMsIC00LCAtNCwgNCwgMSwgLTMsIDEsIC0xLCAtMywgLTIsIDAsIC0zLCAtMSwgNSwgLTQsIC0zLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy0yLCAtMSwgNCwgNSwgLTMsIDAsIDEsIC0xLCAwLCAtNCwgLTQsIDAsIC0zLCAtNCwgLTIsIDAsIDAsIC01LCAtMywgLTQsIDUsIDIsIC0xLCAtNV0sXG4gICAgICAgICAgICBbLTEsIDAsIDAsIDEsIC0zLCA0LCA1LCAtMiwgMCwgLTMsIC0zLCAxLCAtMSwgLTQsIC0xLCAwLCAtMSwgLTIsIC0yLCAtMywgMiwgNSwgLTEsIC01XSxcbiAgICAgICAgICAgIFstMSwgLTEsIC0xLCAtMSwgLTIsIC0xLCAtMSwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0yLCAtMSwgMCwgLTMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTVdLFxuICAgICAgICAgICAgWy01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNSwgMV1dO1xuICAgICAgICB0aGlzLkJMT1NVTTYyID0gW1s0LCAtMSwgLTIsIC0yLCAwLCAtMSwgLTEsIDAsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTIsIC0xLCAxLCAwLCAtMywgLTIsIDAsIC0yLCAtMSwgMCwgLTRdLFxuICAgICAgICAgICAgWy0xLCA1LCAwLCAtMiwgLTMsIDEsIDAsIC0yLCAwLCAtMywgLTIsIDIsIC0xLCAtMywgLTIsIC0xLCAtMSwgLTMsIC0yLCAtMywgLTEsIDAsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTIsIDAsIDYsIDEsIC0zLCAwLCAwLCAwLCAxLCAtMywgLTMsIDAsIC0yLCAtMywgLTIsIDEsIDAsIC00LCAtMiwgLTMsIDMsIDAsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTIsIC0yLCAxLCA2LCAtMywgMCwgMiwgLTEsIC0xLCAtMywgLTQsIC0xLCAtMywgLTMsIC0xLCAwLCAtMSwgLTQsIC0zLCAtMywgNCwgMSwgLTEsIC00XSxcbiAgICAgICAgICAgIFswLCAtMywgLTMsIC0zLCA5LCAtMywgLTQsIC0zLCAtMywgLTEsIC0xLCAtMywgLTEsIC0yLCAtMywgLTEsIC0xLCAtMiwgLTIsIC0xLCAtMywgLTMsIC0yLCAtNF0sXG4gICAgICAgICAgICBbLTEsIDEsIDAsIDAsIC0zLCA1LCAyLCAtMiwgMCwgLTMsIC0yLCAxLCAwLCAtMywgLTEsIDAsIC0xLCAtMiwgLTEsIC0yLCAwLCAzLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0xLCAwLCAwLCAyLCAtNCwgMiwgNSwgLTIsIDAsIC0zLCAtMywgMSwgLTIsIC0zLCAtMSwgMCwgLTEsIC0zLCAtMiwgLTIsIDEsIDQsIC0xLCAtNF0sXG4gICAgICAgICAgICBbMCwgLTIsIDAsIC0xLCAtMywgLTIsIC0yLCA2LCAtMiwgLTQsIC00LCAtMiwgLTMsIC0zLCAtMiwgMCwgLTIsIC0yLCAtMywgLTMsIC0xLCAtMiwgLTEsIC00XSxcbiAgICAgICAgICAgIFstMiwgMCwgMSwgLTEsIC0zLCAwLCAwLCAtMiwgOCwgLTMsIC0zLCAtMSwgLTIsIC0xLCAtMiwgLTEsIC0yLCAtMiwgMiwgLTMsIDAsIDAsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTEsIC0zLCAtMywgLTMsIC0xLCAtMywgLTMsIC00LCAtMywgNCwgMiwgLTMsIDEsIDAsIC0zLCAtMiwgLTEsIC0zLCAtMSwgMywgLTMsIC0zLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy0xLCAtMiwgLTMsIC00LCAtMSwgLTIsIC0zLCAtNCwgLTMsIDIsIDQsIC0yLCAyLCAwLCAtMywgLTIsIC0xLCAtMiwgLTEsIDEsIC00LCAtMywgLTEsIC00XSxcbiAgICAgICAgICAgIFstMSwgMiwgMCwgLTEsIC0zLCAxLCAxLCAtMiwgLTEsIC0zLCAtMiwgNSwgLTEsIC0zLCAtMSwgMCwgLTEsIC0zLCAtMiwgLTIsIDAsIDEsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTEsIC0xLCAtMiwgLTMsIC0xLCAwLCAtMiwgLTMsIC0yLCAxLCAyLCAtMSwgNSwgMCwgLTIsIC0xLCAtMSwgLTEsIC0xLCAxLCAtMywgLTEsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTIsIC0zLCAtMywgLTMsIC0yLCAtMywgLTMsIC0zLCAtMSwgMCwgMCwgLTMsIDAsIDYsIC00LCAtMiwgLTIsIDEsIDMsIC0xLCAtMywgLTMsIC0xLCAtNF0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTEsIC0zLCAtMSwgLTEsIC0yLCAtMiwgLTMsIC0zLCAtMSwgLTIsIC00LCA3LCAtMSwgLTEsIC00LCAtMywgLTIsIC0yLCAtMSwgLTIsIC00XSxcbiAgICAgICAgICAgIFsxLCAtMSwgMSwgMCwgLTEsIDAsIDAsIDAsIC0xLCAtMiwgLTIsIDAsIC0xLCAtMiwgLTEsIDQsIDEsIC0zLCAtMiwgLTIsIDAsIDAsIDAsIC00XSxcbiAgICAgICAgICAgIFswLCAtMSwgMCwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMiwgLTEsIC0xLCAtMSwgLTEsIC0yLCAtMSwgMSwgNSwgLTIsIC0yLCAwLCAtMSwgLTEsIDAsIC00XSxcbiAgICAgICAgICAgIFstMywgLTMsIC00LCAtNCwgLTIsIC0yLCAtMywgLTIsIC0yLCAtMywgLTIsIC0zLCAtMSwgMSwgLTQsIC0zLCAtMiwgMTEsIDIsIC0zLCAtNCwgLTMsIC0yLCAtNF0sXG4gICAgICAgICAgICBbLTIsIC0yLCAtMiwgLTMsIC0yLCAtMSwgLTIsIC0zLCAyLCAtMSwgLTEsIC0yLCAtMSwgMywgLTMsIC0yLCAtMiwgMiwgNywgLTEsIC0zLCAtMiwgLTEsIC00XSxcbiAgICAgICAgICAgIFswLCAtMywgLTMsIC0zLCAtMSwgLTIsIC0yLCAtMywgLTMsIDMsIDEsIC0yLCAxLCAtMSwgLTIsIC0yLCAwLCAtMywgLTEsIDQsIC0zLCAtMiwgLTEsIC00XSxcbiAgICAgICAgICAgIFstMiwgLTEsIDMsIDQsIC0zLCAwLCAxLCAtMSwgMCwgLTMsIC00LCAwLCAtMywgLTMsIC0yLCAwLCAtMSwgLTQsIC0zLCAtMywgNCwgMSwgLTEsIC00XSxcbiAgICAgICAgICAgIFstMSwgMCwgMCwgMSwgLTMsIDMsIDQsIC0yLCAwLCAtMywgLTMsIDEsIC0xLCAtMywgLTEsIDAsIC0xLCAtMywgLTIsIC0yLCAxLCA0LCAtMSwgLTRdLFxuICAgICAgICAgICAgWzAsIC0xLCAtMSwgLTEsIC0yLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMiwgMCwgMCwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTRdLFxuICAgICAgICAgICAgWy00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgLTQsIC00LCAtNCwgMV1dO1xuICAgICAgICB0aGlzLkJMT1NVTTgwID0gW1s3LCAtMywgLTMsIC0zLCAtMSwgLTIsIC0yLCAwLCAtMywgLTMsIC0zLCAtMSwgLTIsIC00LCAtMSwgMiwgMCwgLTUsIC00LCAtMSwgLTMsIC0yLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0zLCA5LCAtMSwgLTMsIC02LCAxLCAtMSwgLTQsIDAsIC01LCAtNCwgMywgLTMsIC01LCAtMywgLTIsIC0yLCAtNSwgLTQsIC00LCAtMiwgMCwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMywgLTEsIDksIDIsIC01LCAwLCAtMSwgLTEsIDEsIC02LCAtNiwgMCwgLTQsIC02LCAtNCwgMSwgMCwgLTcsIC00LCAtNSwgNSwgLTEsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTMsIC0zLCAyLCAxMCwgLTcsIC0xLCAyLCAtMywgLTIsIC03LCAtNywgLTIsIC02LCAtNiwgLTMsIC0xLCAtMiwgLTgsIC02LCAtNiwgNiwgMSwgLTMsIC04XSxcbiAgICAgICAgICAgIFstMSwgLTYsIC01LCAtNywgMTMsIC01LCAtNywgLTYsIC03LCAtMiwgLTMsIC02LCAtMywgLTQsIC02LCAtMiwgLTIsIC01LCAtNSwgLTIsIC02LCAtNywgLTQsIC04XSxcbiAgICAgICAgICAgIFstMiwgMSwgMCwgLTEsIC01LCA5LCAzLCAtNCwgMSwgLTUsIC00LCAyLCAtMSwgLTUsIC0zLCAtMSwgLTEsIC00LCAtMywgLTQsIC0xLCA1LCAtMiwgLThdLFxuICAgICAgICAgICAgWy0yLCAtMSwgLTEsIDIsIC03LCAzLCA4LCAtNCwgMCwgLTYsIC02LCAxLCAtNCwgLTYsIC0yLCAtMSwgLTIsIC02LCAtNSwgLTQsIDEsIDYsIC0yLCAtOF0sXG4gICAgICAgICAgICBbMCwgLTQsIC0xLCAtMywgLTYsIC00LCAtNCwgOSwgLTQsIC03LCAtNywgLTMsIC01LCAtNiwgLTUsIC0xLCAtMywgLTYsIC02LCAtNiwgLTIsIC00LCAtMywgLThdLFxuICAgICAgICAgICAgWy0zLCAwLCAxLCAtMiwgLTcsIDEsIDAsIC00LCAxMiwgLTYsIC01LCAtMSwgLTQsIC0yLCAtNCwgLTIsIC0zLCAtNCwgMywgLTUsIC0xLCAwLCAtMiwgLThdLFxuICAgICAgICAgICAgWy0zLCAtNSwgLTYsIC03LCAtMiwgLTUsIC02LCAtNywgLTYsIDcsIDIsIC01LCAyLCAtMSwgLTUsIC00LCAtMiwgLTUsIC0zLCA0LCAtNiwgLTYsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTMsIC00LCAtNiwgLTcsIC0zLCAtNCwgLTYsIC03LCAtNSwgMiwgNiwgLTQsIDMsIDAsIC01LCAtNCwgLTMsIC00LCAtMiwgMSwgLTcsIC01LCAtMiwgLThdLFxuICAgICAgICAgICAgWy0xLCAzLCAwLCAtMiwgLTYsIDIsIDEsIC0zLCAtMSwgLTUsIC00LCA4LCAtMywgLTUsIC0yLCAtMSwgLTEsIC02LCAtNCwgLTQsIC0xLCAxLCAtMiwgLThdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTQsIC02LCAtMywgLTEsIC00LCAtNSwgLTQsIDIsIDMsIC0zLCA5LCAwLCAtNCwgLTMsIC0xLCAtMywgLTMsIDEsIC01LCAtMywgLTIsIC04XSxcbiAgICAgICAgICAgIFstNCwgLTUsIC02LCAtNiwgLTQsIC01LCAtNiwgLTYsIC0yLCAtMSwgMCwgLTUsIDAsIDEwLCAtNiwgLTQsIC00LCAwLCA0LCAtMiwgLTYsIC02LCAtMywgLThdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTQsIC0zLCAtNiwgLTMsIC0yLCAtNSwgLTQsIC01LCAtNSwgLTIsIC00LCAtNiwgMTIsIC0yLCAtMywgLTcsIC02LCAtNCwgLTQsIC0yLCAtMywgLThdLFxuICAgICAgICAgICAgWzIsIC0yLCAxLCAtMSwgLTIsIC0xLCAtMSwgLTEsIC0yLCAtNCwgLTQsIC0xLCAtMywgLTQsIC0yLCA3LCAyLCAtNiwgLTMsIC0zLCAwLCAtMSwgLTEsIC04XSxcbiAgICAgICAgICAgIFswLCAtMiwgMCwgLTIsIC0yLCAtMSwgLTIsIC0zLCAtMywgLTIsIC0zLCAtMSwgLTEsIC00LCAtMywgMiwgOCwgLTUsIC0zLCAwLCAtMSwgLTIsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTUsIC01LCAtNywgLTgsIC01LCAtNCwgLTYsIC02LCAtNCwgLTUsIC00LCAtNiwgLTMsIDAsIC03LCAtNiwgLTUsIDE2LCAzLCAtNSwgLTgsIC01LCAtNSwgLThdLFxuICAgICAgICAgICAgWy00LCAtNCwgLTQsIC02LCAtNSwgLTMsIC01LCAtNiwgMywgLTMsIC0yLCAtNCwgLTMsIDQsIC02LCAtMywgLTMsIDMsIDExLCAtMywgLTUsIC00LCAtMywgLThdLFxuICAgICAgICAgICAgWy0xLCAtNCwgLTUsIC02LCAtMiwgLTQsIC00LCAtNiwgLTUsIDQsIDEsIC00LCAxLCAtMiwgLTQsIC0zLCAwLCAtNSwgLTMsIDcsIC02LCAtNCwgLTIsIC04XSxcbiAgICAgICAgICAgIFstMywgLTIsIDUsIDYsIC02LCAtMSwgMSwgLTIsIC0xLCAtNiwgLTcsIC0xLCAtNSwgLTYsIC00LCAwLCAtMSwgLTgsIC01LCAtNiwgNiwgMCwgLTMsIC04XSxcbiAgICAgICAgICAgIFstMiwgMCwgLTEsIDEsIC03LCA1LCA2LCAtNCwgMCwgLTYsIC01LCAxLCAtMywgLTYsIC0yLCAtMSwgLTIsIC01LCAtNCwgLTQsIDAsIDYsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTMsIC00LCAtMiwgLTIsIC0zLCAtMiwgLTIsIC0yLCAtMiwgLTIsIC0zLCAtMywgLTEsIC0xLCAtNSwgLTMsIC0yLCAtMywgLTEsIC0yLCAtOF0sXG4gICAgICAgICAgICBbLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAxXV07XG4gICAgICAgIHRoaXMuQkxPU1VNOTAgPSBbWzUsIC0yLCAtMiwgLTMsIC0xLCAtMSwgLTEsIDAsIC0yLCAtMiwgLTIsIC0xLCAtMiwgLTMsIC0xLCAxLCAwLCAtNCwgLTMsIC0xLCAtMiwgLTEsIC0xLCAtNl0sXG4gICAgICAgICAgICBbLTIsIDYsIC0xLCAtMywgLTUsIDEsIC0xLCAtMywgMCwgLTQsIC0zLCAyLCAtMiwgLTQsIC0zLCAtMSwgLTIsIC00LCAtMywgLTMsIC0yLCAwLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0yLCAtMSwgNywgMSwgLTQsIDAsIC0xLCAtMSwgMCwgLTQsIC00LCAwLCAtMywgLTQsIC0zLCAwLCAwLCAtNSwgLTMsIC00LCA0LCAtMSwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMywgLTMsIDEsIDcsIC01LCAtMSwgMSwgLTIsIC0yLCAtNSwgLTUsIC0xLCAtNCwgLTUsIC0zLCAtMSwgLTIsIC02LCAtNCwgLTUsIDQsIDAsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTEsIC01LCAtNCwgLTUsIDksIC00LCAtNiwgLTQsIC01LCAtMiwgLTIsIC00LCAtMiwgLTMsIC00LCAtMiwgLTIsIC00LCAtNCwgLTIsIC00LCAtNSwgLTMsIC02XSxcbiAgICAgICAgICAgIFstMSwgMSwgMCwgLTEsIC00LCA3LCAyLCAtMywgMSwgLTQsIC0zLCAxLCAwLCAtNCwgLTIsIC0xLCAtMSwgLTMsIC0zLCAtMywgLTEsIDQsIC0xLCAtNl0sXG4gICAgICAgICAgICBbLTEsIC0xLCAtMSwgMSwgLTYsIDIsIDYsIC0zLCAtMSwgLTQsIC00LCAwLCAtMywgLTUsIC0yLCAtMSwgLTEsIC01LCAtNCwgLTMsIDAsIDQsIC0yLCAtNl0sXG4gICAgICAgICAgICBbMCwgLTMsIC0xLCAtMiwgLTQsIC0zLCAtMywgNiwgLTMsIC01LCAtNSwgLTIsIC00LCAtNSwgLTMsIC0xLCAtMywgLTQsIC01LCAtNSwgLTIsIC0zLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0yLCAwLCAwLCAtMiwgLTUsIDEsIC0xLCAtMywgOCwgLTQsIC00LCAtMSwgLTMsIC0yLCAtMywgLTIsIC0yLCAtMywgMSwgLTQsIC0xLCAwLCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0yLCAtNCwgLTQsIC01LCAtMiwgLTQsIC00LCAtNSwgLTQsIDUsIDEsIC00LCAxLCAtMSwgLTQsIC0zLCAtMSwgLTQsIC0yLCAzLCAtNSwgLTQsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTIsIC0zLCAtNCwgLTUsIC0yLCAtMywgLTQsIC01LCAtNCwgMSwgNSwgLTMsIDIsIDAsIC00LCAtMywgLTIsIC0zLCAtMiwgMCwgLTUsIC00LCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0xLCAyLCAwLCAtMSwgLTQsIDEsIDAsIC0yLCAtMSwgLTQsIC0zLCA2LCAtMiwgLTQsIC0yLCAtMSwgLTEsIC01LCAtMywgLTMsIC0xLCAxLCAtMSwgLTZdLFxuICAgICAgICAgICAgWy0yLCAtMiwgLTMsIC00LCAtMiwgMCwgLTMsIC00LCAtMywgMSwgMiwgLTIsIDcsIC0xLCAtMywgLTIsIC0xLCAtMiwgLTIsIDAsIC00LCAtMiwgLTEsIC02XSxcbiAgICAgICAgICAgIFstMywgLTQsIC00LCAtNSwgLTMsIC00LCAtNSwgLTUsIC0yLCAtMSwgMCwgLTQsIC0xLCA3LCAtNCwgLTMsIC0zLCAwLCAzLCAtMiwgLTQsIC00LCAtMiwgLTZdLFxuICAgICAgICAgICAgWy0xLCAtMywgLTMsIC0zLCAtNCwgLTIsIC0yLCAtMywgLTMsIC00LCAtNCwgLTIsIC0zLCAtNCwgOCwgLTIsIC0yLCAtNSwgLTQsIC0zLCAtMywgLTIsIC0yLCAtNl0sXG4gICAgICAgICAgICBbMSwgLTEsIDAsIC0xLCAtMiwgLTEsIC0xLCAtMSwgLTIsIC0zLCAtMywgLTEsIC0yLCAtMywgLTIsIDUsIDEsIC00LCAtMywgLTIsIDAsIC0xLCAtMSwgLTZdLFxuICAgICAgICAgICAgWzAsIC0yLCAwLCAtMiwgLTIsIC0xLCAtMSwgLTMsIC0yLCAtMSwgLTIsIC0xLCAtMSwgLTMsIC0yLCAxLCA2LCAtNCwgLTIsIC0xLCAtMSwgLTEsIC0xLCAtNl0sXG4gICAgICAgICAgICBbLTQsIC00LCAtNSwgLTYsIC00LCAtMywgLTUsIC00LCAtMywgLTQsIC0zLCAtNSwgLTIsIDAsIC01LCAtNCwgLTQsIDExLCAyLCAtMywgLTYsIC00LCAtMywgLTZdLFxuICAgICAgICAgICAgWy0zLCAtMywgLTMsIC00LCAtNCwgLTMsIC00LCAtNSwgMSwgLTIsIC0yLCAtMywgLTIsIDMsIC00LCAtMywgLTIsIDIsIDgsIC0zLCAtNCwgLTMsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTEsIC0zLCAtNCwgLTUsIC0yLCAtMywgLTMsIC01LCAtNCwgMywgMCwgLTMsIDAsIC0yLCAtMywgLTIsIC0xLCAtMywgLTMsIDUsIC00LCAtMywgLTIsIC02XSxcbiAgICAgICAgICAgIFstMiwgLTIsIDQsIDQsIC00LCAtMSwgMCwgLTIsIC0xLCAtNSwgLTUsIC0xLCAtNCwgLTQsIC0zLCAwLCAtMSwgLTYsIC00LCAtNCwgNCwgMCwgLTIsIC02XSxcbiAgICAgICAgICAgIFstMSwgMCwgLTEsIDAsIC01LCA0LCA0LCAtMywgMCwgLTQsIC00LCAxLCAtMiwgLTQsIC0yLCAtMSwgLTEsIC00LCAtMywgLTMsIDAsIDQsIC0xLCAtNl0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTIsIC0zLCAtMSwgLTIsIC0yLCAtMiwgLTIsIC0yLCAtMSwgLTEsIC0yLCAtMiwgLTEsIC0xLCAtMywgLTIsIC0yLCAtMiwgLTEsIC0yLCAtNl0sXG4gICAgICAgICAgICBbLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAtNiwgLTYsIC02LCAxXV07XG4gICAgICAgIHRoaXMuTlVDTEVPVElERVMgPSBbWzEsIC0xLCAtMSwgLTFdLFxuICAgICAgICAgICAgWy0xLCAxLCAtMSwgLTFdLFxuICAgICAgICAgICAgWy0xLCAtMSwgMSwgLTFdLFxuICAgICAgICAgICAgWy0xLCAtMSwgLTEsIDFdXTtcbiAgICAgICAgdGhpcy5QQU0zMCA9IFtbNiwgLTcsIC00LCAtMywgLTYsIC00LCAtMiwgLTIsIC03LCAtNSwgLTYsIC03LCAtNSwgLTgsIC0yLCAwLCAtMSwgLTEzLCAtOCwgLTIsIC0zLCAtMywgLTMsIC0xN10sXG4gICAgICAgICAgICBbLTcsIDgsIC02LCAtMTAsIC04LCAtMiwgLTksIC05LCAtMiwgLTUsIC04LCAwLCAtNCwgLTksIC00LCAtMywgLTYsIC0yLCAtMTAsIC04LCAtNywgLTQsIC02LCAtMTddLFxuICAgICAgICAgICAgWy00LCAtNiwgOCwgMiwgLTExLCAtMywgLTIsIC0zLCAwLCAtNSwgLTcsIC0xLCAtOSwgLTksIC02LCAwLCAtMiwgLTgsIC00LCAtOCwgNiwgLTMsIC0zLCAtMTddLFxuICAgICAgICAgICAgWy0zLCAtMTAsIDIsIDgsIC0xNCwgLTIsIDIsIC0zLCAtNCwgLTcsIC0xMiwgLTQsIC0xMSwgLTE1LCAtOCwgLTQsIC01LCAtMTUsIC0xMSwgLTgsIDYsIDEsIC01LCAtMTddLFxuICAgICAgICAgICAgWy02LCAtOCwgLTExLCAtMTQsIDEwLCAtMTQsIC0xNCwgLTksIC03LCAtNiwgLTE1LCAtMTQsIC0xMywgLTEzLCAtOCwgLTMsIC04LCAtMTUsIC00LCAtNiwgLTEyLCAtMTQsIC05LCAtMTddLFxuICAgICAgICAgICAgWy00LCAtMiwgLTMsIC0yLCAtMTQsIDgsIDEsIC03LCAxLCAtOCwgLTUsIC0zLCAtNCwgLTEzLCAtMywgLTUsIC01LCAtMTMsIC0xMiwgLTcsIC0zLCA2LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstMiwgLTksIC0yLCAyLCAtMTQsIDEsIDgsIC00LCAtNSwgLTUsIC05LCAtNCwgLTcsIC0xNCwgLTUsIC00LCAtNiwgLTE3LCAtOCwgLTYsIDEsIDYsIC01LCAtMTddLFxuICAgICAgICAgICAgWy0yLCAtOSwgLTMsIC0zLCAtOSwgLTcsIC00LCA2LCAtOSwgLTExLCAtMTAsIC03LCAtOCwgLTksIC02LCAtMiwgLTYsIC0xNSwgLTE0LCAtNSwgLTMsIC01LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstNywgLTIsIDAsIC00LCAtNywgMSwgLTUsIC05LCA5LCAtOSwgLTYsIC02LCAtMTAsIC02LCAtNCwgLTYsIC03LCAtNywgLTMsIC02LCAtMSwgLTEsIC01LCAtMTddLFxuICAgICAgICAgICAgWy01LCAtNSwgLTUsIC03LCAtNiwgLTgsIC01LCAtMTEsIC05LCA4LCAtMSwgLTYsIC0xLCAtMiwgLTgsIC03LCAtMiwgLTE0LCAtNiwgMiwgLTYsIC02LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstNiwgLTgsIC03LCAtMTIsIC0xNSwgLTUsIC05LCAtMTAsIC02LCAtMSwgNywgLTgsIDEsIC0zLCAtNywgLTgsIC03LCAtNiwgLTcsIC0yLCAtOSwgLTcsIC02LCAtMTddLFxuICAgICAgICAgICAgWy03LCAwLCAtMSwgLTQsIC0xNCwgLTMsIC00LCAtNywgLTYsIC02LCAtOCwgNywgLTIsIC0xNCwgLTYsIC00LCAtMywgLTEyLCAtOSwgLTksIC0yLCAtNCwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTUsIC00LCAtOSwgLTExLCAtMTMsIC00LCAtNywgLTgsIC0xMCwgLTEsIDEsIC0yLCAxMSwgLTQsIC04LCAtNSwgLTQsIC0xMywgLTExLCAtMSwgLTEwLCAtNSwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTgsIC05LCAtOSwgLTE1LCAtMTMsIC0xMywgLTE0LCAtOSwgLTYsIC0yLCAtMywgLTE0LCAtNCwgOSwgLTEwLCAtNiwgLTksIC00LCAyLCAtOCwgLTEwLCAtMTMsIC04LCAtMTddLFxuICAgICAgICAgICAgWy0yLCAtNCwgLTYsIC04LCAtOCwgLTMsIC01LCAtNiwgLTQsIC04LCAtNywgLTYsIC04LCAtMTAsIDgsIC0yLCAtNCwgLTE0LCAtMTMsIC02LCAtNywgLTQsIC01LCAtMTddLFxuICAgICAgICAgICAgWzAsIC0zLCAwLCAtNCwgLTMsIC01LCAtNCwgLTIsIC02LCAtNywgLTgsIC00LCAtNSwgLTYsIC0yLCA2LCAwLCAtNSwgLTcsIC02LCAtMSwgLTUsIC0zLCAtMTddLFxuICAgICAgICAgICAgWy0xLCAtNiwgLTIsIC01LCAtOCwgLTUsIC02LCAtNiwgLTcsIC0yLCAtNywgLTMsIC00LCAtOSwgLTQsIDAsIDcsIC0xMywgLTYsIC0zLCAtMywgLTYsIC00LCAtMTddLFxuICAgICAgICAgICAgWy0xMywgLTIsIC04LCAtMTUsIC0xNSwgLTEzLCAtMTcsIC0xNSwgLTcsIC0xNCwgLTYsIC0xMiwgLTEzLCAtNCwgLTE0LCAtNSwgLTEzLCAxMywgLTUsIC0xNSwgLTEwLCAtMTQsIC0xMSwgLTE3XSxcbiAgICAgICAgICAgIFstOCwgLTEwLCAtNCwgLTExLCAtNCwgLTEyLCAtOCwgLTE0LCAtMywgLTYsIC03LCAtOSwgLTExLCAyLCAtMTMsIC03LCAtNiwgLTUsIDEwLCAtNywgLTYsIC05LCAtNywgLTE3XSxcbiAgICAgICAgICAgIFstMiwgLTgsIC04LCAtOCwgLTYsIC03LCAtNiwgLTUsIC02LCAyLCAtMiwgLTksIC0xLCAtOCwgLTYsIC02LCAtMywgLTE1LCAtNywgNywgLTgsIC02LCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstMywgLTcsIDYsIDYsIC0xMiwgLTMsIDEsIC0zLCAtMSwgLTYsIC05LCAtMiwgLTEwLCAtMTAsIC03LCAtMSwgLTMsIC0xMCwgLTYsIC04LCA2LCAwLCAtNSwgLTE3XSxcbiAgICAgICAgICAgIFstMywgLTQsIC0zLCAxLCAtMTQsIDYsIDYsIC01LCAtMSwgLTYsIC03LCAtNCwgLTUsIC0xMywgLTQsIC01LCAtNiwgLTE0LCAtOSwgLTYsIDAsIDYsIC01LCAtMTddLFxuICAgICAgICAgICAgWy0zLCAtNiwgLTMsIC01LCAtOSwgLTUsIC01LCAtNSwgLTUsIC01LCAtNiwgLTUsIC01LCAtOCwgLTUsIC0zLCAtNCwgLTExLCAtNywgLTUsIC01LCAtNSwgLTUsIC0xN10sXG4gICAgICAgICAgICBbLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIC0xNywgLTE3LCAtMTcsIDFdXTtcbiAgICAgICAgdGhpcy5QQU03MCA9IFtbNSwgLTQsIC0yLCAtMSwgLTQsIC0yLCAtMSwgMCwgLTQsIC0yLCAtNCwgLTQsIC0zLCAtNiwgMCwgMSwgMSwgLTksIC01LCAtMSwgLTEsIC0xLCAtMiwgLTExXSxcbiAgICAgICAgICAgIFstNCwgOCwgLTMsIC02LCAtNSwgMCwgLTUsIC02LCAwLCAtMywgLTYsIDIsIC0yLCAtNywgLTIsIC0xLCAtNCwgMCwgLTcsIC01LCAtNCwgLTIsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy0yLCAtMywgNiwgMywgLTcsIC0xLCAwLCAtMSwgMSwgLTMsIC01LCAwLCAtNSwgLTYsIC0zLCAxLCAwLCAtNiwgLTMsIC01LCA1LCAtMSwgLTIsIC0xMV0sXG4gICAgICAgICAgICBbLTEsIC02LCAzLCA2LCAtOSwgMCwgMywgLTEsIC0xLCAtNSwgLTgsIC0yLCAtNywgLTEwLCAtNCwgLTEsIC0yLCAtMTAsIC03LCAtNSwgNSwgMiwgLTMsIC0xMV0sXG4gICAgICAgICAgICBbLTQsIC01LCAtNywgLTksIDksIC05LCAtOSwgLTYsIC01LCAtNCwgLTEwLCAtOSwgLTksIC04LCAtNSwgLTEsIC01LCAtMTEsIC0yLCAtNCwgLTgsIC05LCAtNiwgLTExXSxcbiAgICAgICAgICAgIFstMiwgMCwgLTEsIDAsIC05LCA3LCAyLCAtNCwgMiwgLTUsIC0zLCAtMSwgLTIsIC05LCAtMSwgLTMsIC0zLCAtOCwgLTgsIC00LCAtMSwgNSwgLTIsIC0xMV0sXG4gICAgICAgICAgICBbLTEsIC01LCAwLCAzLCAtOSwgMiwgNiwgLTIsIC0yLCAtNCwgLTYsIC0yLCAtNCwgLTksIC0zLCAtMiwgLTMsIC0xMSwgLTYsIC00LCAyLCA1LCAtMywgLTExXSxcbiAgICAgICAgICAgIFswLCAtNiwgLTEsIC0xLCAtNiwgLTQsIC0yLCA2LCAtNiwgLTYsIC03LCAtNSwgLTYsIC03LCAtMywgMCwgLTMsIC0xMCwgLTksIC0zLCAtMSwgLTMsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy00LCAwLCAxLCAtMSwgLTUsIDIsIC0yLCAtNiwgOCwgLTYsIC00LCAtMywgLTYsIC00LCAtMiwgLTMsIC00LCAtNSwgLTEsIC00LCAwLCAxLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstMiwgLTMsIC0zLCAtNSwgLTQsIC01LCAtNCwgLTYsIC02LCA3LCAxLCAtNCwgMSwgMCwgLTUsIC00LCAtMSwgLTksIC00LCAzLCAtNCwgLTQsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy00LCAtNiwgLTUsIC04LCAtMTAsIC0zLCAtNiwgLTcsIC00LCAxLCA2LCAtNSwgMiwgLTEsIC01LCAtNiwgLTQsIC00LCAtNCwgMCwgLTYsIC00LCAtNCwgLTExXSxcbiAgICAgICAgICAgIFstNCwgMiwgMCwgLTIsIC05LCAtMSwgLTIsIC01LCAtMywgLTQsIC01LCA2LCAwLCAtOSwgLTQsIC0yLCAtMSwgLTcsIC03LCAtNiwgLTEsIC0yLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstMywgLTIsIC01LCAtNywgLTksIC0yLCAtNCwgLTYsIC02LCAxLCAyLCAwLCAxMCwgLTIsIC01LCAtMywgLTIsIC04LCAtNywgMCwgLTYsIC0zLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstNiwgLTcsIC02LCAtMTAsIC04LCAtOSwgLTksIC03LCAtNCwgMCwgLTEsIC05LCAtMiwgOCwgLTcsIC00LCAtNiwgLTIsIDQsIC01LCAtNywgLTksIC01LCAtMTFdLFxuICAgICAgICAgICAgWzAsIC0yLCAtMywgLTQsIC01LCAtMSwgLTMsIC0zLCAtMiwgLTUsIC01LCAtNCwgLTUsIC03LCA3LCAwLCAtMiwgLTksIC05LCAtMywgLTQsIC0yLCAtMywgLTExXSxcbiAgICAgICAgICAgIFsxLCAtMSwgMSwgLTEsIC0xLCAtMywgLTIsIDAsIC0zLCAtNCwgLTYsIC0yLCAtMywgLTQsIDAsIDUsIDIsIC0zLCAtNSwgLTMsIDAsIC0yLCAtMSwgLTExXSxcbiAgICAgICAgICAgIFsxLCAtNCwgMCwgLTIsIC01LCAtMywgLTMsIC0zLCAtNCwgLTEsIC00LCAtMSwgLTIsIC02LCAtMiwgMiwgNiwgLTgsIC00LCAtMSwgLTEsIC0zLCAtMiwgLTExXSxcbiAgICAgICAgICAgIFstOSwgMCwgLTYsIC0xMCwgLTExLCAtOCwgLTExLCAtMTAsIC01LCAtOSwgLTQsIC03LCAtOCwgLTIsIC05LCAtMywgLTgsIDEzLCAtMywgLTEwLCAtNywgLTEwLCAtNywgLTExXSxcbiAgICAgICAgICAgIFstNSwgLTcsIC0zLCAtNywgLTIsIC04LCAtNiwgLTksIC0xLCAtNCwgLTQsIC03LCAtNywgNCwgLTksIC01LCAtNCwgLTMsIDksIC01LCAtNCwgLTcsIC01LCAtMTFdLFxuICAgICAgICAgICAgWy0xLCAtNSwgLTUsIC01LCAtNCwgLTQsIC00LCAtMywgLTQsIDMsIDAsIC02LCAwLCAtNSwgLTMsIC0zLCAtMSwgLTEwLCAtNSwgNiwgLTUsIC00LCAtMiwgLTExXSxcbiAgICAgICAgICAgIFstMSwgLTQsIDUsIDUsIC04LCAtMSwgMiwgLTEsIDAsIC00LCAtNiwgLTEsIC02LCAtNywgLTQsIDAsIC0xLCAtNywgLTQsIC01LCA1LCAxLCAtMiwgLTExXSxcbiAgICAgICAgICAgIFstMSwgLTIsIC0xLCAyLCAtOSwgNSwgNSwgLTMsIDEsIC00LCAtNCwgLTIsIC0zLCAtOSwgLTIsIC0yLCAtMywgLTEwLCAtNywgLTQsIDEsIDUsIC0zLCAtMTFdLFxuICAgICAgICAgICAgWy0yLCAtMywgLTIsIC0zLCAtNiwgLTIsIC0zLCAtMywgLTMsIC0zLCAtNCwgLTMsIC0zLCAtNSwgLTMsIC0xLCAtMiwgLTcsIC01LCAtMiwgLTIsIC0zLCAtMywgLTExXSxcbiAgICAgICAgICAgIFstMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgLTExLCAtMTEsIC0xMSwgMV1dO1xuICAgICAgICB0aGlzLlBBTTI1MCA9IFtbMiwgLTIsIDAsIDAsIC0yLCAwLCAwLCAxLCAtMSwgLTEsIC0yLCAtMSwgLTEsIC0zLCAxLCAxLCAxLCAtNiwgLTMsIDAsIDAsIDAsIDAsIC04XSxcbiAgICAgICAgICAgIFstMiwgNiwgMCwgLTEsIC00LCAxLCAtMSwgLTMsIDIsIC0yLCAtMywgMywgMCwgLTQsIDAsIDAsIC0xLCAyLCAtNCwgLTIsIC0xLCAwLCAtMSwgLThdLFxuICAgICAgICAgICAgWzAsIDAsIDIsIDIsIC00LCAxLCAxLCAwLCAyLCAtMiwgLTMsIDEsIC0yLCAtMywgMCwgMSwgMCwgLTQsIC0yLCAtMiwgMiwgMSwgMCwgLThdLFxuICAgICAgICAgICAgWzAsIC0xLCAyLCA0LCAtNSwgMiwgMywgMSwgMSwgLTIsIC00LCAwLCAtMywgLTYsIC0xLCAwLCAwLCAtNywgLTQsIC0yLCAzLCAzLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0yLCAtNCwgLTQsIC01LCAxMiwgLTUsIC01LCAtMywgLTMsIC0yLCAtNiwgLTUsIC01LCAtNCwgLTMsIDAsIC0yLCAtOCwgMCwgLTIsIC00LCAtNSwgLTMsIC04XSxcbiAgICAgICAgICAgIFswLCAxLCAxLCAyLCAtNSwgNCwgMiwgLTEsIDMsIC0yLCAtMiwgMSwgLTEsIC01LCAwLCAtMSwgLTEsIC01LCAtNCwgLTIsIDEsIDMsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMCwgLTEsIDEsIDMsIC01LCAyLCA0LCAwLCAxLCAtMiwgLTMsIDAsIC0yLCAtNSwgLTEsIDAsIDAsIC03LCAtNCwgLTIsIDMsIDMsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMSwgLTMsIDAsIDEsIC0zLCAtMSwgMCwgNSwgLTIsIC0zLCAtNCwgLTIsIC0zLCAtNSwgMCwgMSwgMCwgLTcsIC01LCAtMSwgMCwgMCwgLTEsIC04XSxcbiAgICAgICAgICAgIFstMSwgMiwgMiwgMSwgLTMsIDMsIDEsIC0yLCA2LCAtMiwgLTIsIDAsIC0yLCAtMiwgMCwgLTEsIC0xLCAtMywgMCwgLTIsIDEsIDIsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTEsIC0yLCAtMiwgLTIsIC0yLCAtMiwgLTIsIC0zLCAtMiwgNSwgMiwgLTIsIDIsIDEsIC0yLCAtMSwgMCwgLTUsIC0xLCA0LCAtMiwgLTIsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTIsIC0zLCAtMywgLTQsIC02LCAtMiwgLTMsIC00LCAtMiwgMiwgNiwgLTMsIDQsIDIsIC0zLCAtMywgLTIsIC0yLCAtMSwgMiwgLTMsIC0zLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0xLCAzLCAxLCAwLCAtNSwgMSwgMCwgLTIsIDAsIC0yLCAtMywgNSwgMCwgLTUsIC0xLCAwLCAwLCAtMywgLTQsIC0yLCAxLCAwLCAtMSwgLThdLFxuICAgICAgICAgICAgWy0xLCAwLCAtMiwgLTMsIC01LCAtMSwgLTIsIC0zLCAtMiwgMiwgNCwgMCwgNiwgMCwgLTIsIC0yLCAtMSwgLTQsIC0yLCAyLCAtMiwgLTIsIC0xLCAtOF0sXG4gICAgICAgICAgICBbLTMsIC00LCAtMywgLTYsIC00LCAtNSwgLTUsIC01LCAtMiwgMSwgMiwgLTUsIDAsIDksIC01LCAtMywgLTMsIDAsIDcsIC0xLCAtNCwgLTUsIC0yLCAtOF0sXG4gICAgICAgICAgICBbMSwgMCwgMCwgLTEsIC0zLCAwLCAtMSwgMCwgMCwgLTIsIC0zLCAtMSwgLTIsIC01LCA2LCAxLCAwLCAtNiwgLTUsIC0xLCAtMSwgMCwgLTEsIC04XSxcbiAgICAgICAgICAgIFsxLCAwLCAxLCAwLCAwLCAtMSwgMCwgMSwgLTEsIC0xLCAtMywgMCwgLTIsIC0zLCAxLCAyLCAxLCAtMiwgLTMsIC0xLCAwLCAwLCAwLCAtOF0sXG4gICAgICAgICAgICBbMSwgLTEsIDAsIDAsIC0yLCAtMSwgMCwgMCwgLTEsIDAsIC0yLCAwLCAtMSwgLTMsIDAsIDEsIDMsIC01LCAtMywgMCwgMCwgLTEsIDAsIC04XSxcbiAgICAgICAgICAgIFstNiwgMiwgLTQsIC03LCAtOCwgLTUsIC03LCAtNywgLTMsIC01LCAtMiwgLTMsIC00LCAwLCAtNiwgLTIsIC01LCAxNywgMCwgLTYsIC01LCAtNiwgLTQsIC04XSxcbiAgICAgICAgICAgIFstMywgLTQsIC0yLCAtNCwgMCwgLTQsIC00LCAtNSwgMCwgLTEsIC0xLCAtNCwgLTIsIDcsIC01LCAtMywgLTMsIDAsIDEwLCAtMiwgLTMsIC00LCAtMiwgLThdLFxuICAgICAgICAgICAgWzAsIC0yLCAtMiwgLTIsIC0yLCAtMiwgLTIsIC0xLCAtMiwgNCwgMiwgLTIsIDIsIC0xLCAtMSwgLTEsIDAsIC02LCAtMiwgNCwgLTIsIC0yLCAtMSwgLThdLFxuICAgICAgICAgICAgWzAsIC0xLCAyLCAzLCAtNCwgMSwgMywgMCwgMSwgLTIsIC0zLCAxLCAtMiwgLTQsIC0xLCAwLCAwLCAtNSwgLTMsIC0yLCAzLCAyLCAtMSwgLThdLFxuICAgICAgICAgICAgWzAsIDAsIDEsIDMsIC01LCAzLCAzLCAwLCAyLCAtMiwgLTMsIDAsIC0yLCAtNSwgMCwgMCwgLTEsIC02LCAtNCwgLTIsIDIsIDMsIC0xLCAtOF0sXG4gICAgICAgICAgICBbMCwgLTEsIDAsIC0xLCAtMywgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMiwgLTEsIDAsIDAsIC00LCAtMiwgLTEsIC0xLCAtMSwgLTEsIC04XSxcbiAgICAgICAgICAgIFstOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIC04LCAtOCwgLTgsIDFdXTtcbiAgICAgICAgdGhpcy5TQ0hORUlERVIgPSBbWzExLjYsIC0yLjcsIDkuNywgLTEuNywgLTIuNywgLTYuNCwgLTMuOSwgLTUuNiwgNS4xLCAtNS4wLCAzLjYsIC00LjIsIC02LjMsIC0xMy4wLCAtNy4xLCAtMTEuNSwgMC40LCAtNi4wLCAtMS45LCAtNS4zLCAtOC41LCAtMTEuMiwgLTguOSwgLTEwLjgsIDIuMSwgMC4wLCAxLjQsIDAuMiwgLTEwLjIsIC0xMy41LCAtMTMuMCwgLTEyLjUsIC0yLjYsIC04LjUsIC01LjAsIC04LjEsIC02LjMsIC05LjksIC03LjUsIC05LjAsIC03LjEsIC0xMC4yLCAtOC4yLCAtOS4yLCAtOC4yLCAtMTIuNSwgLTExLjEsIC0xMS40LCAtNTAuMCwgLTE0LjgsIC01MC4wLCAtMTMuOCwgLTcuMywgLTEwLjEsIC04LjQsIC05LjEsIC01MC4wLCAtMTMuMCwgLTEzLjUsIC0xMi40LCAtMTAuNywgLTE4LjEsIC0xMS44LCAtMTcuMixdLFxuICAgICAgICAgICAgWy0yLjcsIDEzLjAsIC0zLjMsIDEwLjksIC0zLjUsIC0wLjQsIC0zLjMsIC0xLjgsIC01LjQsIDQuNiwgLTUuNSwgMy4wLCAtMTAuMiwgLTcuOSwgLTkuOSwgLTkuNiwgLTUuMCwgMC41LCAtNS41LCAtMS4wLCAtMTAuMywgLTguMSwgLTkuNCwgLTkuNiwgLTguMSwgLTUuMCwgLTcuMywgLTYuMywgLTEzLjQsIC0xMS4zLCAtMTQuNCwgLTEyLjksIC02LjMsIDAuOCwgLTYuNCwgLTEuMSwgLTcuNCwgLTUuMCwgLTYuMiwgLTYuNSwgLTUuNiwgLTEuNiwgLTQuNywgLTMuMCwgLTEwLjgsIC04LjcsIC0xMS45LCAtMTAuMCwgLTUwLjAsIC02LjIsIC01MC4wLCAtNy41LCAtNi4zLCAtNC4zLCAtNi4yLCAtNS40LCAtNTAuMCwgLTcuMCwgLTE2LjMsIC04LjIsIC0xMy4yLCAtMTIuMywgLTEzLjEsIC0xMy4zLF0sXG4gICAgICAgICAgICBbOS43LCAtMy4zLCAxMS42LCAtMi44LCAtNC41LCAtNi43LCAtMy4xLCAtNi45LCAzLjMsIC01LjUsIDQuOCwgLTUuMSwgLTguOSwgLTEzLjIsIC01LjcsIC0xMi42LCAtMS41LCAtNi4xLCAtMC42LCAtNi4xLCAtMTAuMCwgLTExLjgsIC04LjYsIC0xMS45LCAxLjIsIDAuNSwgMi4yLCAwLjEsIC0xMS44LCAtMTQuMCwgLTExLjksIC0xMy40LCAtNC45LCAtOS4xLCAtMy40LCAtOC45LCAtOC4wLCAtMTAuMCwgLTcuMiwgLTEwLjAsIC05LjEsIC0xMC4yLCAtNy4xLCAtOS45LCAtMTAuMSwgLTEzLjAsIC0xMC42LCAtMTIuNywgLTUwLjAsIC0xNC45LCAtNTAuMCwgLTE0LjQsIC04LjksIC0xMC44LCAtOC45LCAtMTAuNCwgLTUwLjAsIC0xMy4xLCAtMTEuOCwgLTEzLjAsIC0xMi40LCAtMTkuNCwgLTExLjUsIC0xNy44LF0sXG4gICAgICAgICAgICBbLTEuNywgMTAuOSwgLTIuOCwgMTIuOSwgLTIuNywgLTIuMiwgLTIuOCwgMC4yLCAtNC44LCAyLjksIC01LjIsIDUuMiwgLTkuMSwgLTkuNSwgLTkuMCwgLTcuMCwgLTQuMCwgLTEuMCwgLTUuMCwgMS4wLCAtOS4wLCAtOC44LCAtOC45LCAtNy43LCAtNy4wLCAtNi44LCAtNy4xLCAtNC4zLCAtMTIuNCwgLTEyLjksIC0xMy45LCAtMTAuMCwgLTQuOSwgLTAuNywgLTUuNiwgMS40LCAtNi4wLCAtNi41LCAtNi4yLCAtNC44LCAtNS4xLCAtMy4yLCAtNS4wLCAtMS4yLCAtOS44LCAtOS45LCAtMTEuMywgLTguMiwgLTUwLjAsIC03LjYsIC01MC4wLCAtNS4xLCAtNS41LCAtNS44LCAtNS45LCAtNC4yLCAtNTAuMCwgLTguMywgLTE1LjUsIC01LjksIC0xMS42LCAtMTQuMiwgLTEyLjAsIC0xMS42LF0sXG4gICAgICAgICAgICBbLTIuNywgLTMuNSwgLTQuNSwgLTIuNywgMTEuNywgOS4wLCAxMC42LCA5LjYsIC0zLjIsIC0wLjcsIC01LjEsIC0wLjQsIDAuNywgLTQuNiwgLTAuNCwgLTMuNiwgLTQuOCwgLTguOSwgLTYuNSwgLTcuOCwgLTEuNCwgLTQuMSwgLTIuOSwgLTMuMywgLTguMCwgLTkuMSwgLTguMCwgLTguMiwgLTYuMCwgLTkuMywgLTcuNywgLTguNSwgLTYuNCwgLTEwLjEsIC03LjUsIC04LjYsIDIuOCwgLTAuNywgMC45LCAwLjEsIC01LjksIC03LjMsIC02LjUsIC02LjUsIC0wLjQsIC0zLjksIC0yLjYsIC0zLjEsIC01MC4wLCAtMTQuNiwgLTUwLjAsIC0xMi42LCAyLjksIDAuMSwgMS44LCAxLjAsIC01MC4wLCAtOS4yLCAtMTMuNiwgLTcuNywgLTQuOCwgLTEyLjIsIC02LjIsIC0xMS4wLF0sXG4gICAgICAgICAgICBbLTYuNCwgLTAuNCwgLTYuNywgLTIuMiwgOS4wLCAxMi4zLCA5LjgsIDkuNiwgLTcuMSwgMi40LCAtNy4yLCAwLjMsIC0yLjksIC0xLjIsIC0zLjAsIC0zLjMsIC03LjYsIC02LjcsIC04LjEsIC03LjksIC00LjksIC0xLjksIC00LjUsIC0zLjgsIC05LjUsIC03LjgsIC05LjMsIC04LjksIC05LjQsIC03LjEsIC05LjAsIC05LjAsIC05LjQsIC03LjUsIC05LjMsIC05LjIsIC0wLjcsIDIuNiwgMC4yLCAtMC4xLCAtOC4wLCAtNC42LCAtNy43LCAtNi4xLCAtMy42LCAtMS4wLCAtNC4xLCAtMy4xLCAtNTAuMCwgLTExLjYsIC01MC4wLCAtMTEuNiwgMC4yLCAyLjMsIDAuNCwgMC41LCAtNTAuMCwgLTYuNSwgLTE1LjMsIC03LjgsIC04LjQsIC05LjUsIC04LjMsIC0xMS4xLF0sXG4gICAgICAgICAgICBbLTMuOSwgLTMuMywgLTMuMSwgLTIuOCwgMTAuNiwgOS44LCAxMi4yLCA5LjgsIC00LjksIDAuMSwgLTMuNiwgLTAuMiwgLTEuNywgLTQuMSwgMC45LCAtMy41LCAtNS45LCAtOC45LCAtNS42LCAtOC41LCAtMy45LCAtMy45LCAtMi4yLCAtNC41LCAtNy4zLCAtNy41LCAtNi40LCAtOC41LCAtNy4xLCAtOC4yLCAtNi43LCAtNy44LCAtNy45LCAtOS4xLCAtNy4xLCAtOS40LCAwLjksIC0wLjIsIDIuNSwgLTAuMywgLTYuOSwgLTYuNSwgLTUuNSwgLTYuOCwgLTEuNywgLTMuNCwgLTEuNywgLTIuOCwgLTUwLjAsIC0xMy4wLCAtNTAuMCwgLTExLjUsIDEuNSwgMC43LCAyLjcsIDAuNiwgLTUwLjAsIC04LjksIC0xMi4xLCAtNy40LCAtNi4xLCAtMTEuNSwgLTUuNCwgLTEwLjQsXSxcbiAgICAgICAgICAgIFstNS42LCAtMS44LCAtNi45LCAwLjIsIDkuNiwgOS42LCA5LjgsIDExLjYsIC02LjYsIDAuOSwgLTcuMiwgMi41LCAtMi4zLCAtMy40LCAtMi4zLCAtMC42LCAtNi41LCAtOC4yLCAtOC4wLCAtNi4zLCAtMy43LCAtMy41LCAtMy45LCAtMS42LCAtOS45LCAtOC45LCAtOS42LCAtNy4wLCAtOC42LCAtOC45LCAtOC44LCAtNi44LCAtOC42LCAtOC4yLCAtOC44LCAtNi44LCAwLjMsIDAuMSwgMC4yLCAyLjQsIC03LjQsIC02LjIsIC02LjksIC00LjQsIC0yLjksIC0yLjksIC0zLjUsIC0wLjksIC01MC4wLCAtMTIuMiwgLTUwLjAsIC0xMC4xLCAxLjIsIDAuNiwgMS4yLCAyLjQsIC01MC4wLCAtNy42LCAtMTYuMSwgLTUuOCwgLTcuMiwgLTEwLjgsIC03LjQsIC05LjAsXSxcbiAgICAgICAgICAgIFs1LjEsIC01LjQsIDMuMywgLTQuOCwgLTMuMiwgLTcuMSwgLTQuOSwgLTYuNiwgMTMuMywgLTIuOCwgMTEuMiwgLTEuOSwgLTUuNywgLTEyLjUsIC03LjIsIC0xMS42LCAtMC43LCAtNC44LCAtMy4xLCAtNC4zLCAtMTAuMCwgLTExLjYsIC04LjgsIC0xMS43LCAxMC41LCA3LjcsIDkuMSwgOC41LCAtOS44LCAtMTIuNywgLTExLjcsIC0xMS44LCAtNi4zLCAtMTEuNCwgLTguOCwgLTExLjAsIC03LjUsIC0xMC4zLCAtOC4zLCAtOS45LCAtMS45LCAtNi43LCAtNC4xLCAtNi40LCAtNy45LCAtMTIuNSwgLTExLjQsIC0xMS43LCAtNTAuMCwgLTE0LjAsIC01MC4wLCAtMTMuMiwgLTguNSwgLTEwLjQsIC05LjEsIC05LjYsIC01MC4wLCAtOS44LCAtNy43LCAtOC44LCAtMTAuMywgLTE3LjksIC0xMS44LCAtMTYuMCxdLFxuICAgICAgICAgICAgWy01LjAsIDQuNiwgLTUuNSwgMi45LCAtMC43LCAyLjQsIDAuMSwgMC45LCAtMi44LCAxMi44LCAtMi42LCAxMS4wLCAtOC40LCAtNi4zLCAtOC4zLCAtNy43LCAtNi4xLCAtMi45LCAtNi41LCAtNC4yLCAtOC41LCAtNS45LCAtNy41LCAtNy43LCAtNS41LCAtMi40LCAtNS41LCAtNC4xLCAtMTIuOSwgLTEwLjMsIC0xMi43LCAtMTEuMywgLTcuNCwgLTMuMSwgLTcuNCwgLTQuOSwgLTQuNCwgLTEuOCwgLTMuNSwgLTMuNSwgLTEuNiwgMy4wLCAtMC44LCAwLjksIC04LjQsIC02LjMsIC05LjYsIC03LjMsIC01MC4wLCAtOS4wLCAtNTAuMCwgLTkuNywgLTIuMywgLTAuMiwgLTEuMiwgLTEuNSwgLTUwLjAsIC0wLjcsIC0xMy4zLCAtMi4wLCAtMTEuOCwgLTExLjksIC0xMi4zLCAtMTIuNyxdLFxuICAgICAgICAgICAgWzMuNiwgLTUuNSwgNC44LCAtNS4yLCAtNS4xLCAtNy4yLCAtMy42LCAtNy4yLCAxMS4yLCAtMi42LCAxMy40LCAtMi4xLCAtNy43LCAtMTIuNSwgLTUuMywgLTExLjksIC0yLjIsIC00LjQsIC0xLjksIC00LjgsIC0xMC4yLCAtMTEuNSwgLTguMSwgLTEyLjAsIDkuMywgOC4yLCAxMC4wLCA4LjAsIC0xMC44LCAtMTEuOSwgLTEwLjcsIC0xMi40LCAtOC4yLCAtMTEuOCwgLTYuOSwgLTExLjUsIC04LjQsIC05LjksIC03LjEsIC0xMC42LCAtNC43LCAtNi44LCAtMS4yLCAtNy4wLCAtOS44LCAtMTEuNiwgLTkuNiwgLTEyLjEsIC01MC4wLCAtMTQuMSwgLTUwLjAsIC0xMi43LCAtMTAuMCwgLTEwLjgsIC04LjgsIC0xMC41LCAtNTAuMCwgLTkuMiwgLTQuMiwgLTkuMywgLTExLjAsIC0xOC4yLCAtMTEuMSwgLTE2LjEsXSxcbiAgICAgICAgICAgIFstNC4yLCAzLjAsIC01LjEsIDUuMiwgLTAuNCwgMC4zLCAtMC4yLCAyLjUsIC0xLjksIDExLjAsIC0yLjEsIDEzLjIsIC03LjYsIC04LjUsIC04LjAsIC01LjMsIC01LjYsIC00LjUsIC02LjgsIC0yLjQsIC03LjgsIC03LjksIC03LjksIC02LjIsIC01LjcsIC01LjEsIC01LjQsIC0yLjEsIC0xMi40LCAtMTIuMywgLTEzLjEsIC0xMC4xLCAtNi42LCAtNC40LCAtNi45LCAtMi42LCAtMy42LCAtMy44LCAtMy43LCAtMi4wLCAtMS40LCAwLjgsIC0wLjksIDMuMCwgLTguMiwgLTguMSwgLTkuMiwgLTUuOCwgLTUwLjAsIC0xMC4xLCAtNTAuMCwgLTcuNCwgLTEuNywgLTIuMCwgLTEuNSwgLTAuNSwgLTUwLjAsIC0yLjEsIC0xMi42LCAtMC40LCAtMTEuNiwgLTEzLjksIC0xMS40LCAtMTEuMSxdLFxuICAgICAgICAgICAgWy02LjMsIC0xMC4yLCAtOC45LCAtOS4xLCAwLjcsIC0yLjksIC0xLjcsIC0yLjMsIC01LjcsIC04LjQsIC03LjcsIC03LjYsIDEzLjIsIDkuNiwgMy41LCA5LjcsIC04LjcsIC0xMi40LCAtMTAuNywgLTEwLjcsIC03LjgsIC0xMC4yLCAtOC44LCAtOS42LCAtOS41LCAtMTEuOSwgLTEwLjksIC0xMC41LCAyLjMsIC0wLjQsIC0wLjIsIC0wLjMsIC05LjcsIC0xNS41LCAtMTEuNCwgLTEzLjcsIC0zLjAsIC02LjQsIC00LjEsIC01LjQsIC05LjYsIC0xMS45LCAtMTAuNSwgLTExLjgsIDYuMiwgMy4zLCAzLjcsIDMuNiwgLTUwLjAsIC0xMy42LCAtNTAuMCwgLTExLjksIC01LjYsIC04LjgsIC03LjIsIC04LjksIC01MC4wLCAtMTIuNCwgLTE0LjEsIC0xMS42LCAyLjgsIC02LjQsIDAuNSwgLTUuMixdLFxuICAgICAgICAgICAgWy0xMy4wLCAtNy45LCAtMTMuMiwgLTkuNSwgLTQuNiwgLTEuMiwgLTQuMSwgLTMuNCwgLTEyLjUsIC02LjMsIC0xMi41LCAtOC41LCA5LjYsIDEyLjcsIDAuMiwgMTAuNSwgLTEyLjQsIC0xMS42LCAtMTMuMiwgLTEyLjAsIC0xMi40LCAtMTAuMSwgLTExLjYsIC0xMi4wLCAtMTUuMSwgLTEzLjEsIC0xNC4zLCAtMTMuNCwgLTEuNCwgMS40LCAtMS42LCAtMC41LCAtMTQuOSwgLTE0LjMsIC0xNS4yLCAtMTYuOCwgLTcuNywgLTQuNywgLTYuMywgLTYuNiwgLTE0LjYsIC0xMC44LCAtMTIuOCwgLTEzLjAsIDIuMywgNi4wLCAyLjUsIDMuNiwgLTUwLjAsIC0xMS4yLCAtNTAuMCwgLTExLjksIC0xMC41LCAtOS4yLCAtMTAuNSwgLTEwLjUsIC01MC4wLCAtMTAuMywgLTE2LjIsIC0xMS4zLCAtMS43LCAtMy43LCAtMi41LCAtNS40LF0sXG4gICAgICAgICAgICBbLTcuMSwgLTkuOSwgLTUuNywgLTkuMCwgLTAuNCwgLTMuMCwgMC45LCAtMi4zLCAtNy4yLCAtOC4zLCAtNS4zLCAtOC4wLCAzLjUsIDAuMiwgMTQuMywgMS4wLCAtNy4zLCAtMTEuMiwgLTYuOSwgLTkuNywgLTguNSwgLTEwLjIsIC03LjcsIC05LjgsIC0xMC4wLCAtMTAuNCwgLTguNCwgLTEwLjIsIDEuMCwgLTAuNiwgMS43LCAtMC41LCAtMTEuMSwgLTE0LjgsIC05LjcsIC0xNC41LCAtMy43LCAtNS44LCAtMy4xLCAtNS42LCAtMTAuNCwgLTExLjUsIC04LjIsIC0xMS4xLCAwLjYsIC0xLjYsIDEuNiwgLTEuMSwgLTUwLjAsIC0xMi40LCAtNTAuMCwgLTExLjUsIC01LjUsIC04LjAsIC00LjksIC03LjIsIC01MC4wLCAtMTIuNCwgLTEwLjMsIC0xMS42LCAwLjcsIC02LjgsIDIuNCwgLTYuMCxdLFxuICAgICAgICAgICAgWy0xMS41LCAtOS42LCAtMTIuNiwgLTcuMCwgLTMuNiwgLTMuMywgLTMuNSwgLTAuNiwgLTExLjYsIC03LjcsIC0xMS45LCAtNS4zLCA5LjcsIDEwLjUsIDEuMCwgMTIuNiwgLTEyLjAsIC0xMi4yLCAtMTIuNSwgLTkuNywgLTExLjEsIC0xMS4yLCAtMTEuOSwgLTkuNCwgLTEyLjksIC0xNC4zLCAtMTQuMCwgLTExLjksIC0xLjAsIC0wLjQsIC0xLjYsIDEuMiwgLTEzLjksIC0xNS40LCAtMTMuNywgLTEyLjYsIC02LjIsIC02LjcsIC02LjMsIC00LjQsIC0xMy4wLCAtMTIuMiwgLTEzLjAsIC0xMC40LCAyLjksIDMuOCwgMi41LCA1LjgsIC01MC4wLCAtMTIuNSwgLTUwLjAsIC0xMC4yLCAtOS42LCAtOS43LCAtOS42LCAtOC4zLCAtNTAuMCwgLTExLjYsIC0xNS40LCAtOS40LCAtMS4xLCAtNS40LCAtMS42LCAtMy4zLF0sXG4gICAgICAgICAgICBbMC40LCAtNS4wLCAtMS41LCAtNC4wLCAtNC44LCAtNy42LCAtNS45LCAtNi41LCAtMC43LCAtNi4xLCAtMi4yLCAtNS42LCAtOC43LCAtMTIuNCwgLTcuMywgLTEyLjAsIDEyLjgsIDIuMywgMTAuMiwgMy4wLCAwLjAsIC0zLjQsIC0wLjcsIC0zLjIsIDIuNSwgLTAuOCwgMC45LCAwLjIsIC0zLjAsIC03LjIsIC01LjcsIC02LjEsIC0wLjIsIC02LjYsIC0xLjgsIC02LjAsIC01LjMsIC04LjIsIC01LjcsIC03LjYsIC02LjcsIC05LjYsIC03LjUsIC05LjMsIC03LjEsIC0xMC41LCAtOS42LCAtOS40LCAtNTAuMCwgLTguMSwgLTUwLjAsIC03LjIsIC00LjMsIC02LjgsIC01LjcsIC02LjMsIC01MC4wLCAtOS41LCAtOS42LCAtOC45LCAtNi4yLCAtMTIuOCwgLTYuOCwgLTExLjgsXSxcbiAgICAgICAgICAgIFstNi4wLCAwLjUsIC02LjEsIC0xLjAsIC04LjksIC02LjcsIC04LjksIC04LjIsIC00LjgsIC0yLjksIC00LjQsIC00LjUsIC0xMi40LCAtMTEuNiwgLTExLjIsIC0xMi4yLCAyLjMsIDE0LjYsIDEuOSwgMTIuOSwgLTUuNSwgLTIuNiwgLTQuMSwgLTQuNywgLTEuMiwgMy4wLCAtMS4xLCAxLjYsIC04LjAsIC00LjcsIC04LjcsIC02LjAsIC04LjIsIC00LjcsIC03LjgsIC02LjcsIC0xMC4wLCAtOC4zLCAtOC45LCAtOS45LCAtMTAuOCwgLTcuMSwgLTEwLjAsIC05LjIsIC0xMS42LCAtMTAuMSwgLTEyLjMsIC0xMS45LCAtNTAuMCwgMi4yLCAtNTAuMCwgMC45LCAtNy45LCAtNS45LCAtNy40LCAtNi45LCAtNTAuMCwgLTQuNiwgLTExLjYsIC01LjYsIC05LjcsIC01LjksIC05LjksIC03LjMsXSxcbiAgICAgICAgICAgIFstMS45LCAtNS41LCAtMC42LCAtNS4wLCAtNi41LCAtOC4xLCAtNS42LCAtOC4wLCAtMy4xLCAtNi41LCAtMS45LCAtNi44LCAtMTAuNywgLTEzLjIsIC02LjksIC0xMi41LCAxMC4yLCAxLjksIDExLjksIDIuMSwgLTIuMywgLTQuMSwgLTAuNSwgLTQuNiwgLTAuMSwgLTAuOSwgMi40LCAtMC44LCAtNS4xLCAtNi45LCAtNC44LCAtNi43LCAtMi4zLCAtNy4xLCAtMC44LCAtNy4yLCAtNy4yLCAtOC4wLCAtNS42LCAtOC41LCAtOS40LCAtOS43LCAtNy4yLCAtOS44LCAtOS4yLCAtMTEuMSwgLTkuNSwgLTEwLjcsIC01MC4wLCAtOC43LCAtNTAuMCwgLTguNiwgLTYuMSwgLTcuNSwgLTUuNSwgLTcuNywgLTUwLjAsIC0xMC40LCAtNy43LCAtMTAuMCwgLTcuMywgLTEzLjYsIC02LjQsIC0xMy4zLF0sXG4gICAgICAgICAgICBbLTUuMywgLTEuMCwgLTYuMSwgMS4wLCAtNy44LCAtNy45LCAtOC41LCAtNi4zLCAtNC4zLCAtNC4yLCAtNC44LCAtMi40LCAtMTAuNywgLTEyLjAsIC05LjcsIC05LjcsIDMuMCwgMTIuOSwgMi4xLCAxNC43LCAtNC45LCAtMy44LCAtNC4wLCAtMi40LCAtMS4wLCAwLjgsIC0xLjMsIDMuNCwgLTcuNiwgLTUuNywgLTguMSwgLTMuNSwgLTYuOCwgLTUuOCwgLTcuMiwgLTQuMiwgLTguOSwgLTEwLjIsIC04LjQsIC04LjIsIC05LjksIC04LjQsIC05LjcsIC02LjQsIC0xMS4xLCAtMTEuMSwgLTExLjgsIC0xMC4wLCAtNTAuMCwgMC40LCAtNTAuMCwgMi42LCAtNy4yLCAtNy4wLCAtNy40LCAtNS4xLCAtNTAuMCwgLTUuNywgLTkuOCwgLTMuMiwgLTguNCwgLTcuNCwgLTguOSwgLTUuOSxdLFxuICAgICAgICAgICAgWy04LjUsIC0xMC4zLCAtMTAuMCwgLTkuMCwgLTEuNCwgLTQuOSwgLTMuOSwgLTMuNywgLTEwLjAsIC04LjUsIC0xMC4yLCAtNy44LCAtNy44LCAtMTIuNCwgLTguNSwgLTExLjEsIDAuMCwgLTUuNSwgLTIuMywgLTQuOSwgMTIuNiwgMTAuMCwgMTEuMSwgMTAuNSwgLTYuMCwgLTguMywgLTYuOSwgLTcuNSwgLTIuMiwgLTcuNCwgLTUuMywgLTUuOSwgLTguOSwgLTEyLjUsIC05LjQsIC0xMS42LCAtMC43LCAtMy45LCAtMi4zLCAtMy4wLCAtOS4xLCAtOS44LCAtOS4yLCAtOS41LCAtNS42LCAtOS4wLCAtOC4wLCAtOC41LCAtNTAuMCwgLTE1LjMsIC01MC4wLCAtMTQuMSwgMi4zLCAtMS40LCAwLjMsIC0wLjUsIC01MC4wLCAtMTMuNiwgLTE0LjMsIC0xMS41LCAtNS4zLCAtMTMuNywgLTYuMSwgLTEyLjcsXSxcbiAgICAgICAgICAgIFstMTEuMiwgLTguMSwgLTExLjgsIC04LjgsIC00LjEsIC0xLjksIC0zLjksIC0zLjUsIC0xMS42LCAtNS45LCAtMTEuNSwgLTcuOSwgLTEwLjIsIC0xMC4xLCAtMTAuMiwgLTExLjIsIC0zLjQsIC0yLjYsIC00LjEsIC0zLjgsIDEwLjAsIDEzLjEsIDEwLjcsIDEwLjYsIC04LjEsIC01LjIsIC04LjAsIC02LjcsIC02LjEsIC0zLjcsIC03LjUsIC01LjYsIC0xMS4xLCAtMTAuMywgLTEwLjYsIC0xMS45LCAtMy4yLCAtMS4wLCAtMi4yLCAtMi44LCAtMTAuNSwgLTguMSwgLTkuNCwgLTkuNSwgLTguMywgLTYuOSwgLTkuNCwgLTguOCwgLTUwLjAsIC0xMS4zLCAtNTAuMCwgLTEyLjgsIC0wLjYsIDIuMiwgLTAuMywgMC4xLCAtNTAuMCwgLTEwLjEsIC0xNy41LCAtMTEuMSwgLTguNiwgLTkuOSwgLTguNiwgLTExLjksXSxcbiAgICAgICAgICAgIFstOC45LCAtOS40LCAtOC42LCAtOC45LCAtMi45LCAtNC41LCAtMi4yLCAtMy45LCAtOC44LCAtNy41LCAtOC4xLCAtNy45LCAtOC44LCAtMTEuNiwgLTcuNywgLTExLjksIC0wLjcsIC00LjEsIC0wLjUsIC00LjAsIDExLjEsIDEwLjcsIDEzLjIsIDEwLjQsIC01LjcsIC01LjgsIC0zLjUsIC02LjEsIC0zLjYsIC02LjUsIC0zLjMsIC01LjUsIC05LjQsIC0xMS4wLCAtOC43LCAtMTEuMiwgLTEuOCwgLTIuNywgMC43LCAtMy4wLCAtOS4xLCAtOC4yLCAtNy4zLCAtOS40LCAtNy4yLCAtOC4yLCAtNy4yLCAtOC4yLCAtNTAuMCwgLTEzLjIsIC01MC4wLCAtMTMuMywgMC41LCAtMC45LCAxLjgsIC0wLjYsIC01MC4wLCAtMTEuNCwgLTExLjEsIC0xMC41LCAtNi4xLCAtMTIuOSwgLTUuMCwgLTExLjksXSxcbiAgICAgICAgICAgIFstMTAuOCwgLTkuNiwgLTExLjksIC03LjcsIC0zLjMsIC0zLjgsIC00LjUsIC0xLjYsIC0xMS43LCAtNy43LCAtMTIuMCwgLTYuMiwgLTkuNiwgLTEyLjAsIC05LjgsIC05LjQsIC0zLjIsIC00LjcsIC00LjYsIC0yLjQsIDEwLjUsIDEwLjYsIDEwLjQsIDEyLjYsIC04LjIsIC03LjksIC05LjAsIC00LjcsIC02LjEsIC02LjAsIC03LjUsIC0yLjksIC0xMC45LCAtMTIuMiwgLTExLjIsIC0xMC45LCAtMi40LCAtMi45LCAtMi43LCAtMC45LCAtMTAuNCwgLTkuNywgLTEwLjIsIC04LjAsIC04LjQsIC05LjEsIC05LjMsIC02LjUsIC01MC4wLCAtMTMuMywgLTUwLjAsIC0xMS4wLCAtMC4wLCAtMC40LCAtMC40LCAyLjMsIC01MC4wLCAtMTAuOSwgLTE3LjIsIC04LjMsIC04LjMsIC0xMi43LCAtNy44LCAtOS4zLF0sXG4gICAgICAgICAgICBbMi4xLCAtOC4xLCAxLjIsIC03LjAsIC04LjAsIC05LjUsIC03LjMsIC05LjksIDEwLjUsIC01LjUsIDkuMywgLTUuNywgLTkuNSwgLTE1LjEsIC0xMC4wLCAtMTIuOSwgMi41LCAtMS4yLCAtMC4xLCAtMS4wLCAtNi4wLCAtOC4xLCAtNS43LCAtOC4yLCAxMy44LCAxMS4zLCAxMS44LCAxMi4xLCAtNi4wLCAtOS4xLCAtOS4wLCAtOS41LCAtOC45LCAtMTMuNCwgLTEwLjAsIC0xMy4xLCAtOS45LCAtMTEuNywgLTkuOCwgLTEyLjgsIC01LjksIC05LjQsIC02LjUsIC04LjEsIC0xMC43LCAtMTQuMCwgLTEzLjMsIC0xMy45LCAtNTAuMCwgLTExLjksIC01MC4wLCAtOS43LCAtOC45LCAtMTAuOCwgLTkuMCwgLTExLjEsIC01MC4wLCAtNi41LCAtNS4zLCAtNi4zLCAtMTAuNSwgLTE2LjIsIC0xMC40LCAtMTUuMixdLFxuICAgICAgICAgICAgWzAuMCwgLTUuMCwgMC41LCAtNi44LCAtOS4xLCAtNy44LCAtNy41LCAtOC45LCA3LjcsIC0yLjQsIDguMiwgLTUuMSwgLTExLjksIC0xMy4xLCAtMTAuNCwgLTE0LjMsIC0wLjgsIDMuMCwgLTAuOSwgMC44LCAtOC4zLCAtNS4yLCAtNS44LCAtNy45LCAxMS4zLCAxNS4wLCAxMS4yLCAxMi44LCAtOS43LCAtNS4zLCAtOS4yLCAtNy44LCAtMTEuNywgLTEwLjYsIC0xMC4xLCAtMTIuMiwgLTExLjcsIC04LjgsIC04LjksIC0xMS44LCAtOS4zLCAtNS4wLCAtOC4wLCAtOC4yLCAtMTMuNiwgLTExLjQsIC0xMi44LCAtMTMuMCwgLTUwLjAsIC03LjIsIC01MC4wLCAtOC40LCAtMTEuMCwgLTcuNywgLTguNywgLTEwLjIsIC01MC4wLCAtMS41LCAtNy4xLCAtNC45LCAtMTEuMiwgLTExLjYsIC0xMS42LCAtMTUuMCxdLFxuICAgICAgICAgICAgWzEuNCwgLTcuMywgMi4yLCAtNy4xLCAtOC4wLCAtOS4zLCAtNi40LCAtOS42LCA5LjEsIC01LjUsIDEwLjAsIC01LjQsIC0xMC45LCAtMTQuMywgLTguNCwgLTE0LjAsIDAuOSwgLTEuMSwgMi40LCAtMS4zLCAtNi45LCAtOC4wLCAtMy41LCAtOS4wLCAxMS44LCAxMS4yLCAxMy40LCAxMS40LCAtNy4zLCAtOC44LCAtNi41LCAtOC41LCAtMTAuMCwgLTEyLjUsIC03LjgsIC0xMi41LCAtOS42LCAtMTEuMCwgLTcuMSwgLTEwLjcsIC03LjksIC04LjAsIC00LjMsIC05LjQsIC0xMS40LCAtMTIuMywgLTEwLjksIC0xMi45LCAtNTAuMCwgLTExLjgsIC01MC4wLCAtMTEuMiwgLTkuNCwgLTkuOCwgLTcuMywgLTEwLjUsIC01MC4wLCAtNi4yLCAtMi4yLCAtNi43LCAtOS44LCAtMTUuMiwgLTguNSwgLTE0LjksXSxcbiAgICAgICAgICAgIFswLjIsIC02LjMsIDAuMSwgLTQuMywgLTguMiwgLTguOSwgLTguNSwgLTcuMCwgOC41LCAtNC4xLCA4LjAsIC0yLjEsIC0xMC41LCAtMTMuNCwgLTEwLjIsIC0xMS45LCAwLjIsIDEuNiwgLTAuOCwgMy40LCAtNy41LCAtNi43LCAtNi4xLCAtNC43LCAxMi4xLCAxMi44LCAxMS40LCAxNC43LCAtOC43LCAtNy40LCAtOS40LCAtNS4zLCAtOS45LCAtMTEuOCwgLTEwLjUsIC0xMC4zLCAtOS45LCAtMTAuMSwgLTkuMywgLTkuMywgLTguMSwgLTcuMiwgLTguMCwgLTUuMiwgLTEyLjAsIC0xMi4xLCAtMTIuNiwgLTEwLjksIC01MC4wLCAtNy45LCAtNTAuMCwgLTUuMywgLTkuMywgLTguOCwgLTguOSwgLTcuMCwgLTUwLjAsIC0zLjYsIC03LjEsIC0xLjIsIC0xMC4yLCAtMTIuNywgLTkuOSwgLTExLjAsXSxcbiAgICAgICAgICAgIFstMTAuMiwgLTEzLjQsIC0xMS44LCAtMTIuNCwgLTYuMCwgLTkuNCwgLTcuMSwgLTguNiwgLTkuOCwgLTEyLjksIC0xMC44LCAtMTIuNCwgMi4zLCAtMS40LCAxLjAsIC0xLjAsIC0zLjAsIC04LjAsIC01LjEsIC03LjYsIC0yLjIsIC02LjEsIC0zLjYsIC02LjEsIC02LjAsIC05LjcsIC03LjMsIC04LjcsIDExLjIsIDcuOSwgOC45LCA4LjEsIC0xMi4xLCAtMTcuNCwgLTEzLjIsIC0xNi44LCAtNi4zLCAtOS41LCAtNy41LCAtOC44LCAtMTIuNywgLTE1LjIsIC0xMy4xLCAtMTQuMiwgMC4wLCAtMy4xLCAtMS44LCAtMy4xLCAtNTAuMCwgLTEwLjcsIC01MC4wLCAtOS4zLCAtNC42LCAtOC45LCAtNS45LCAtOC4zLCAtNTAuMCwgLTEyLjgsIC05LjYsIC0xMC42LCA5LjUsIC0zLjIsIDguMiwgLTIuOCxdLFxuICAgICAgICAgICAgWy0xMy41LCAtMTEuMywgLTE0LjAsIC0xMi45LCAtOS4zLCAtNy4xLCAtOC4yLCAtOC45LCAtMTIuNywgLTEwLjMsIC0xMS45LCAtMTIuMywgLTAuNCwgMS40LCAtMC42LCAtMC40LCAtNy4yLCAtNC43LCAtNi45LCAtNS43LCAtNy40LCAtMy43LCAtNi41LCAtNi4wLCAtOS4xLCAtNS4zLCAtOC44LCAtNy40LCA3LjksIDExLjksIDcuOCwgOS4zLCAtMTUuMiwgLTE1LjEsIC0xNC42LCAtMTcuMiwgLTkuNywgLTcuMywgLTguMiwgLTkuMiwgLTE1LjAsIC0xMi44LCAtMTQuMSwgLTE0LjksIC0yLjgsIDAuMiwgLTIuOSwgLTIuMywgLTUwLjAsIC03LjQsIC01MC4wLCAtOC43LCAtOS40LCAtNy4zLCAtOS40LCAtOS40LCAtNTAuMCwgLTguMCwgLTExLjksIC05LjcsIDYuNSwgMC41LCA2LjQsIC0xLjgsXSxcbiAgICAgICAgICAgIFstMTMuMCwgLTE0LjQsIC0xMS45LCAtMTMuOSwgLTcuNywgLTkuMCwgLTYuNywgLTguOCwgLTExLjcsIC0xMi43LCAtMTAuNywgLTEzLjEsIC0wLjIsIC0xLjYsIDEuNywgLTEuNiwgLTUuNywgLTguNywgLTQuOCwgLTguMSwgLTUuMywgLTcuNSwgLTMuMywgLTcuNSwgLTkuMCwgLTkuMiwgLTYuNSwgLTkuNCwgOC45LCA3LjgsIDEwLjEsIDcuOCwgLTE0LjMsIC0xNy43LCAtMTMuMCwgLTE3LjgsIC04LjAsIC05LjQsIC02LjIsIC05LjIsIC0xNS4xLCAtMTQuOSwgLTEyLjIsIC0xNC45LCAtMS44LCAtMy4yLCAtMC44LCAtMy4yLCAtNTAuMCwgLTEwLjgsIC01MC4wLCAtOS45LCAtNy4zLCAtOS42LCAtNi40LCAtOS40LCAtNTAuMCwgLTEyLjMsIC04LjcsIC0xMS4zLCA3LjYsIC0zLjMsIDguNywgLTIuOSxdLFxuICAgICAgICAgICAgWy0xMi41LCAtMTIuOSwgLTEzLjQsIC0xMC4wLCAtOC41LCAtOS4wLCAtNy44LCAtNi44LCAtMTEuOCwgLTExLjMsIC0xMi40LCAtMTAuMSwgLTAuMywgLTAuNSwgLTAuNSwgMS4yLCAtNi4xLCAtNi4wLCAtNi43LCAtMy41LCAtNS45LCAtNS42LCAtNS41LCAtMi45LCAtOS41LCAtNy44LCAtOC41LCAtNS4zLCA4LjEsIDkuMywgNy44LCAxMS44LCAtMTQuNCwgLTE1LjcsIC0xNC41LCAtMTQuNiwgLTguNCwgLTguNywgLTcuOSwgLTcuMSwgLTE0LjMsIC0xMy44LCAtMTMuOCwgLTEyLjMsIC0yLjQsIC0yLjIsIC0yLjksIC0wLjIsIC01MC4wLCAtOC45LCAtNTAuMCwgLTcuMSwgLTguMSwgLTkuMSwgLTguNywgLTYuNiwgLTUwLjAsIC05LjcsIC0xMS40LCAtOC4wLCA2LjgsIC0xLjgsIDYuOSwgMC40LF0sXG4gICAgICAgICAgICBbLTIuNiwgLTYuMywgLTQuOSwgLTQuOSwgLTYuNCwgLTkuNCwgLTcuOSwgLTguNiwgLTYuMywgLTcuNCwgLTguMiwgLTYuNiwgLTkuNywgLTE0LjksIC0xMS4xLCAtMTMuOSwgLTAuMiwgLTguMiwgLTIuMywgLTYuOCwgLTguOSwgLTExLjEsIC05LjQsIC0xMC45LCAtOC45LCAtMTEuNywgLTEwLjAsIC05LjksIC0xMi4xLCAtMTUuMiwgLTE0LjMsIC0xNC40LCAxMS4xLCAyLjksIDkuMiwgMy41LCAtMy4wLCAtNy4wLCAtNC4zLCAtNi4yLCAtMi4yLCAtNi42LCAtMy43LCAtNS43LCAtNi4wLCAtMTAuNCwgLTguNiwgLTkuNSwgLTUwLjAsIC0xNS41LCAtNTAuMCwgLTEzLjksIC03LjgsIC0xMC41LCAtOC43LCAtOS42LCAtNTAuMCwgLTE2LjUsIC0xNy4xLCAtMTQuOCwgLTEyLjEsIC0xOC45LCAtMTIuNCwgLTE3LjQsXSxcbiAgICAgICAgICAgIFstOC41LCAwLjgsIC05LjEsIC0wLjcsIC0xMC4xLCAtNy41LCAtOS4xLCAtOC4yLCAtMTEuNCwgLTMuMSwgLTExLjgsIC00LjQsIC0xNS41LCAtMTQuMywgLTE0LjgsIC0xNS40LCAtNi42LCAtNC43LCAtNy4xLCAtNS44LCAtMTIuNSwgLTEwLjMsIC0xMS4wLCAtMTIuMiwgLTEzLjQsIC0xMC42LCAtMTIuNSwgLTExLjgsIC0xNy40LCAtMTUuMSwgLTE3LjcsIC0xNS43LCAyLjksIDEyLjUsIDMuMSwgMTAuMywgLTcuNywgLTUuMiwgLTYuMiwgLTcuMywgLTUuNCwgLTEuNywgLTUuNCwgLTMuNywgLTExLjYsIC05LjEsIC0xMy4wLCAtMTAuOCwgLTUwLjAsIC0xMC4zLCAtNTAuMCwgLTExLjIsIC05LjgsIC04LjMsIC05LjEsIC05LjcsIC01MC4wLCAtMTIuNywgLTIwLjYsIC0xMy4xLCAtMTYuMCwgLTE2LjYsIC0xNy4wLCAtMTguNCxdLFxuICAgICAgICAgICAgWy01LjAsIC02LjQsIC0zLjQsIC01LjYsIC03LjUsIC05LjMsIC03LjEsIC04LjgsIC04LjgsIC03LjQsIC02LjksIC02LjksIC0xMS40LCAtMTUuMiwgLTkuNywgLTEzLjcsIC0xLjgsIC03LjgsIC0wLjgsIC03LjIsIC05LjQsIC0xMC42LCAtOC43LCAtMTEuMiwgLTEwLjAsIC0xMC4xLCAtNy44LCAtMTAuNSwgLTEzLjIsIC0xNC42LCAtMTMuMCwgLTE0LjUsIDkuMiwgMy4xLCAxMC44LCAzLjAsIC00LjUsIC02LjcsIC0yLjcsIC02LjcsIC01LjAsIC02LjgsIC0yLjUsIC02LjcsIC03LjUsIC0xMC40LCAtNy40LCAtMTAuMiwgLTUwLjAsIC0xNS41LCAtNTAuMCwgLTE0LjIsIC04LjksIC0xMC4yLCAtOC41LCAtMTAuMCwgLTUwLjAsIC0xNS42LCAtMTUuMywgLTE1LjUsIC0xMy4wLCAtMTguOCwgLTEyLjYsIC0xOC4zLF0sXG4gICAgICAgICAgICBbLTguMSwgLTEuMSwgLTguOSwgMS40LCAtOC42LCAtOS4yLCAtOS40LCAtNi44LCAtMTEuMCwgLTQuOSwgLTExLjUsIC0yLjYsIC0xMy43LCAtMTYuOCwgLTE0LjUsIC0xMi42LCAtNi4wLCAtNi43LCAtNy4yLCAtNC4yLCAtMTEuNiwgLTExLjksIC0xMS4yLCAtMTAuOSwgLTEzLjEsIC0xMi4yLCAtMTIuNSwgLTEwLjMsIC0xNi44LCAtMTcuMiwgLTE3LjgsIC0xNC42LCAzLjUsIDEwLjMsIDMuMCwgMTIuNCwgLTYuOSwgLTcuNSwgLTYuOCwgLTQuOSwgLTUuNCwgLTQuMiwgLTUuNCwgLTEuMywgLTEwLjgsIC0xMS41LCAtMTIuNCwgLTguMiwgLTUwLjAsIC0xMi41LCAtNTAuMCwgLTguOSwgLTkuMiwgLTEwLjAsIC05LjQsIC03LjksIC01MC4wLCAtMTQuMywgLTE5LjksIC0xMS40LCAtMTYuMiwgLTE5LjIsIC0xNS44LCAtMTUuOSxdLFxuICAgICAgICAgICAgWy02LjMsIC03LjQsIC04LjAsIC02LjAsIDIuOCwgLTAuNywgMC45LCAwLjMsIC03LjUsIC00LjQsIC04LjQsIC0zLjYsIC0zLjAsIC03LjcsIC0zLjcsIC02LjIsIC01LjMsIC0xMC4wLCAtNy4yLCAtOC45LCAtMC43LCAtMy4yLCAtMS44LCAtMi40LCAtOS45LCAtMTEuNywgLTkuNiwgLTkuOSwgLTYuMywgLTkuNywgLTguMCwgLTguNCwgLTMuMCwgLTcuNywgLTQuNSwgLTYuOSwgMTEuMywgOC4yLCA5LjQsIDkuMSwgLTEuMCwgLTMuMywgLTEuOCwgLTIuNCwgMS41LCAtMi4xLCAtMC40LCAtMS4xLCAtNTAuMCwgLTE0LjUsIC01MC4wLCAtMTIuOSwgMi44LCAtMC4wLCAxLjQsIDAuNywgLTUwLjAsIC04LjcsIC0xNC4xLCAtNy41LCAtNS4yLCAtMTIuNSwgLTYuNSwgLTEwLjcsXSxcbiAgICAgICAgICAgIFstOS45LCAtNS4wLCAtMTAuMCwgLTYuNSwgLTAuNywgMi42LCAtMC4yLCAwLjEsIC0xMC4zLCAtMS44LCAtOS45LCAtMy44LCAtNi40LCAtNC43LCAtNS44LCAtNi43LCAtOC4yLCAtOC4zLCAtOC4wLCAtMTAuMiwgLTMuOSwgLTEuMCwgLTIuNywgLTIuOSwgLTExLjcsIC04LjgsIC0xMS4wLCAtMTAuMSwgLTkuNSwgLTcuMywgLTkuNCwgLTguNywgLTcuMCwgLTUuMiwgLTYuNywgLTcuNSwgOC4yLCAxMS42LCA4LjgsIDkuMSwgLTMuNywgLTAuOSwgLTMuMSwgLTMuMCwgLTIuMCwgMS4yLCAtMi4zLCAtMS4zLCAtNTAuMCwgLTEyLjEsIC01MC4wLCAtMTIuNiwgMC4xLCAyLjUsIDAuNywgMC42LCAtNTAuMCwgLTYuMCwgLTE0LjgsIC03LjUsIC04LjYsIC05LjQsIC04LjUsIC0xMS4yLF0sXG4gICAgICAgICAgICBbLTcuNSwgLTYuMiwgLTcuMiwgLTYuMiwgMC45LCAwLjIsIDIuNSwgMC4yLCAtOC4zLCAtMy41LCAtNy4xLCAtMy43LCAtNC4xLCAtNi4zLCAtMy4xLCAtNi4zLCAtNS43LCAtOC45LCAtNS42LCAtOC40LCAtMi4zLCAtMi4yLCAwLjcsIC0yLjcsIC05LjgsIC04LjksIC03LjEsIC05LjMsIC03LjUsIC04LjIsIC02LjIsIC03LjksIC00LjMsIC02LjIsIC0yLjcsIC02LjgsIDkuNCwgOC44LCAxMi4xLCA4LjgsIC0yLjEsIC0yLjAsIDAuMSwgLTIuNCwgMC4wLCAtMS4xLCAxLjMsIC0wLjgsIC01MC4wLCAtMTEuOSwgLTUwLjAsIC0xMi42LCAxLjIsIDAuNywgMy41LCAwLjgsIC01MC4wLCAtNy4xLCAtMTIuNCwgLTcuMSwgLTcuMSwgLTEwLjYsIC01LjAsIC0xMC42LF0sXG4gICAgICAgICAgICBbLTkuMCwgLTYuNSwgLTEwLjAsIC00LjgsIDAuMSwgLTAuMSwgLTAuMywgMi40LCAtOS45LCAtMy41LCAtMTAuNiwgLTIuMCwgLTUuNCwgLTYuNiwgLTUuNiwgLTQuNCwgLTcuNiwgLTkuOSwgLTguNSwgLTguMiwgLTMuMCwgLTIuOCwgLTMuMCwgLTAuOSwgLTEyLjgsIC0xMS44LCAtMTAuNywgLTkuMywgLTguOCwgLTkuMiwgLTkuMiwgLTcuMSwgLTYuMiwgLTcuMywgLTYuNywgLTQuOSwgOS4xLCA5LjEsIDguOCwgMTEuMiwgLTMuMSwgLTMuMCwgLTMuMywgLTEuMCwgLTEuMSwgLTEuNCwgLTIuMCwgMS4yLCAtNTAuMCwgLTEyLjgsIC01MC4wLCAtMTAuOSwgMC44LCAwLjUsIDAuNywgMi4zLCAtNTAuMCwgLTcuNSwgLTE2LjUsIC01LjksIC03LjgsIC0xMS4xLCAtNy44LCAtOS4wLF0sXG4gICAgICAgICAgICBbLTcuMSwgLTUuNiwgLTkuMSwgLTUuMSwgLTUuOSwgLTguMCwgLTYuOSwgLTcuNCwgLTEuOSwgLTEuNiwgLTQuNywgLTEuNCwgLTkuNiwgLTE0LjYsIC0xMC40LCAtMTMuMCwgLTYuNywgLTEwLjgsIC05LjQsIC05LjksIC05LjEsIC0xMC41LCAtOS4xLCAtMTAuNCwgLTUuOSwgLTkuMywgLTcuOSwgLTguMSwgLTEyLjcsIC0xNS4wLCAtMTUuMSwgLTE0LjMsIC0yLjIsIC01LjQsIC01LjAsIC01LjQsIC0xLjAsIC0zLjcsIC0yLjEsIC0zLjEsIDEyLjgsIDkuNiwgMTEuMSwgMTAuMSwgLTQuOCwgLTkuNCwgLTguMSwgLTguNiwgLTUwLjAsIC0xOC4zLCAtNTAuMCwgLTE1LjQsIC01LjksIC03LjUsIC02LjYsIC03LjEsIC01MC4wLCAtOS41LCAtMTEuNywgLTguNCwgLTEyLjUsIC0xNy4zLCAtMTMuMiwgLTE1LjQsXSxcbiAgICAgICAgICAgIFstMTAuMiwgLTEuNiwgLTEwLjIsIC0zLjIsIC03LjMsIC00LjYsIC02LjUsIC02LjIsIC02LjcsIDMuMCwgLTYuOCwgMC44LCAtMTEuOSwgLTEwLjgsIC0xMS41LCAtMTIuMiwgLTkuNiwgLTcuMSwgLTkuNywgLTguNCwgLTkuOCwgLTguMSwgLTguMiwgLTkuNywgLTkuNCwgLTUuMCwgLTguMCwgLTcuMiwgLTE1LjIsIC0xMi44LCAtMTQuOSwgLTEzLjgsIC02LjYsIC0xLjcsIC02LjgsIC00LjIsIC0zLjMsIC0wLjksIC0yLjAsIC0zLjAsIDkuNiwgMTIuOCwgOS43LCAxMC41LCAtOC41LCAtNS42LCAtOS4zLCAtNy44LCAtNTAuMCwgLTEyLjcsIC01MC4wLCAtMTMuOCwgLTYuOCwgLTUuMSwgLTUuMywgLTYuNSwgLTUwLjAsIC00LjEsIC0xMi44LCAtNS44LCAtMTQuNCwgLTE0LjEsIC0xMy42LCAtMTQuOCxdLFxuICAgICAgICAgICAgWy04LjIsIC00LjcsIC03LjEsIC01LjAsIC02LjUsIC03LjcsIC01LjUsIC02LjksIC00LjEsIC0wLjgsIC0xLjIsIC0wLjksIC0xMC41LCAtMTIuOCwgLTguMiwgLTEzLjAsIC03LjUsIC0xMC4wLCAtNy4yLCAtOS43LCAtOS4yLCAtOS40LCAtNy4zLCAtMTAuMiwgLTYuNSwgLTguMCwgLTQuMywgLTguMCwgLTEzLjEsIC0xNC4xLCAtMTIuMiwgLTEzLjgsIC0zLjcsIC01LjQsIC0yLjUsIC01LjQsIC0xLjgsIC0zLjEsIDAuMSwgLTMuMywgMTEuMSwgOS43LCAxMi45LCA5LjgsIC01LjUsIC04LjEsIC01LjQsIC03LjgsIC01MC4wLCAtMTYuNCwgLTUwLjAsIC0xNC44LCAtNS45LCAtNy4xLCAtNC43LCAtNy4yLCAtNTAuMCwgLTguNCwgLTYuNCwgLTguMSwgLTEyLjEsIC0xNi4yLCAtMTAuMywgLTE1LjgsXSxcbiAgICAgICAgICAgIFstOS4yLCAtMy4wLCAtOS45LCAtMS4yLCAtNi41LCAtNi4xLCAtNi44LCAtNC40LCAtNi40LCAwLjksIC03LjAsIDMuMCwgLTExLjgsIC0xMy4wLCAtMTEuMSwgLTEwLjQsIC05LjMsIC05LjIsIC05LjgsIC02LjQsIC05LjUsIC05LjUsIC05LjQsIC04LjAsIC04LjEsIC04LjIsIC05LjQsIC01LjIsIC0xNC4yLCAtMTQuOSwgLTE0LjksIC0xMi4zLCAtNS43LCAtMy43LCAtNi43LCAtMS4zLCAtMi40LCAtMy4wLCAtMi40LCAtMS4wLCAxMC4xLCAxMC41LCA5LjgsIDEzLjEsIC03LjIsIC04LjAsIC04LjQsIC01LjAsIC01MC4wLCAtMTQuNywgLTUwLjAsIC0xMS40LCAtNi4zLCAtNi43LCAtNS44LCAtNS4wLCAtNTAuMCwgLTYuMSwgLTEzLjQsIC0zLjYsIC0xMy4wLCAtMTYuMCwgLTEzLjcsIC0xMy4zLF0sXG4gICAgICAgICAgICBbLTguMiwgLTEwLjgsIC0xMC4xLCAtOS44LCAtMC40LCAtMy42LCAtMS43LCAtMi45LCAtNy45LCAtOC40LCAtOS44LCAtOC4yLCA2LjIsIDIuMywgMC42LCAyLjksIC03LjEsIC0xMS42LCAtOS4yLCAtMTEuMSwgLTUuNiwgLTguMywgLTcuMiwgLTguNCwgLTEwLjcsIC0xMy42LCAtMTEuNCwgLTEyLjAsIDAuMCwgLTIuOCwgLTEuOCwgLTIuNCwgLTYuMCwgLTExLjYsIC03LjUsIC0xMC44LCAxLjUsIC0yLjAsIDAuMCwgLTEuMSwgLTQuOCwgLTguNSwgLTUuNSwgLTcuMiwgMTEuOSwgOC42LCAxMC4wLCA5LjAsIC01MC4wLCAtMTQuMiwgLTUwLjAsIC0xMi44LCAtNC4xLCAtNy40LCAtNS43LCAtNi41LCAtNTAuMCwgLTExLjAsIC0xNC4zLCAtOS45LCAxLjQsIC03LjksIC0wLjcsIC02LjgsXSxcbiAgICAgICAgICAgIFstMTIuNSwgLTguNywgLTEzLjAsIC05LjksIC0zLjksIC0xLjAsIC0zLjQsIC0yLjksIC0xMi41LCAtNi4zLCAtMTEuNiwgLTguMSwgMy4zLCA2LjAsIC0xLjYsIDMuOCwgLTEwLjUsIC0xMC4xLCAtMTEuMSwgLTExLjEsIC05LjAsIC02LjksIC04LjIsIC05LjEsIC0xNC4wLCAtMTEuNCwgLTEyLjMsIC0xMi4xLCAtMy4xLCAwLjIsIC0zLjIsIC0yLjIsIC0xMC40LCAtOS4xLCAtMTAuNCwgLTExLjUsIC0yLjEsIDEuMiwgLTEuMSwgLTEuNCwgLTkuNCwgLTUuNiwgLTguMSwgLTguMCwgOC42LCAxMi40LCA4LjYsIDkuNSwgLTUwLjAsIC0xMC40LCAtNTAuMCwgLTExLjYsIC03LjIsIC01LjcsIC03LjUsIC03LjQsIC01MC4wLCAtOC42LCAtMTUuNywgLTkuNywgLTMuMCwgLTMuNywgLTMuMiwgLTUuOSxdLFxuICAgICAgICAgICAgWy0xMS4xLCAtMTEuOSwgLTEwLjYsIC0xMS4zLCAtMi42LCAtNC4xLCAtMS43LCAtMy41LCAtMTEuNCwgLTkuNiwgLTkuNiwgLTkuMiwgMy43LCAyLjUsIDEuNiwgMi41LCAtOS42LCAtMTIuMywgLTkuNSwgLTExLjgsIC04LjAsIC05LjQsIC03LjIsIC05LjMsIC0xMy4zLCAtMTIuOCwgLTEwLjksIC0xMi42LCAtMS44LCAtMi45LCAtMC44LCAtMi45LCAtOC42LCAtMTMuMCwgLTcuNCwgLTEyLjQsIC0wLjQsIC0yLjMsIDEuMywgLTIuMCwgLTguMSwgLTkuMywgLTUuNCwgLTguNCwgMTAuMCwgOC42LCAxMS40LCA4LjksIC01MC4wLCAtMTMuNywgLTUwLjAsIC0xMy4yLCAtNi4xLCAtOC4xLCAtNS41LCAtNy41LCAtNTAuMCwgLTExLjMsIC0xMi43LCAtMTAuMSwgLTEuNiwgLTcuOCwgLTAuMywgLTcuMixdLFxuICAgICAgICAgICAgWy0xMS40LCAtMTAuMCwgLTEyLjcsIC04LjIsIC0zLjEsIC0zLjEsIC0yLjgsIC0wLjksIC0xMS43LCAtNy4zLCAtMTIuMSwgLTUuOCwgMy42LCAzLjYsIC0xLjEsIDUuOCwgLTkuNCwgLTExLjksIC0xMC43LCAtMTAuMCwgLTguNSwgLTguOCwgLTguMiwgLTYuNSwgLTEzLjksIC0xMy4wLCAtMTIuOSwgLTEwLjksIC0zLjEsIC0yLjMsIC0zLjIsIC0wLjIsIC05LjUsIC0xMC44LCAtMTAuMiwgLTguMiwgLTEuMSwgLTEuMywgLTAuOCwgMS4yLCAtOC42LCAtNy44LCAtNy44LCAtNS4wLCA5LjAsIDkuNSwgOC45LCAxMi4wLCAtNTAuMCwgLTEzLjAsIC01MC4wLCAtMTAuMywgLTYuMiwgLTcuMCwgLTcuMSwgLTUuNCwgLTUwLjAsIC05LjMsIC0xNC4wLCAtOC4yLCAtMi40LCAtNi4zLCAtMi40LCAtMy45LF0sXG4gICAgICAgICAgICBbLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMzMuMywgLTUwLjAsIDMwLjYsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMjkuMiwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsXSxcbiAgICAgICAgICAgIFstMTQuOCwgLTYuMiwgLTE0LjksIC03LjYsIC0xNC42LCAtMTEuNiwgLTEzLjAsIC0xMi4yLCAtMTQuMCwgLTkuMCwgLTE0LjEsIC0xMC4xLCAtMTMuNiwgLTExLjIsIC0xMi40LCAtMTIuNSwgLTguMSwgMi4yLCAtOC43LCAwLjQsIC0xNS4zLCAtMTEuMywgLTEzLjIsIC0xMy4zLCAtMTEuOSwgLTcuMiwgLTExLjgsIC03LjksIC0xMC43LCAtNy40LCAtMTAuOCwgLTguOSwgLTE1LjUsIC0xMC4zLCAtMTUuNSwgLTEyLjUsIC0xNC41LCAtMTIuMSwgLTExLjksIC0xMi44LCAtMTguMywgLTEyLjcsIC0xNi40LCAtMTQuNywgLTE0LjIsIC0xMC40LCAtMTMuNywgLTEzLjAsIC01MC4wLCAxNS4xLCAtNTAuMCwgMTMuMywgLTkuOSwgLTUuOCwgLTguOSwgLTcuNiwgLTUwLjAsIC0xLjUsIC03LjgsIC0zLjAsIC04LjEsIDMuNiwgLTkuNCwgMi4wLF0sXG4gICAgICAgICAgICBbLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMzAuNiwgLTUwLjAsIDM1LjIsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgMjguNSwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsXSxcbiAgICAgICAgICAgIFstMTMuOCwgLTcuNSwgLTE0LjQsIC01LjEsIC0xMi42LCAtMTEuNiwgLTExLjUsIC0xMC4xLCAtMTMuMiwgLTkuNywgLTEyLjcsIC03LjQsIC0xMS45LCAtMTEuOSwgLTExLjUsIC0xMC4yLCAtNy4yLCAwLjksIC04LjYsIDIuNiwgLTE0LjEsIC0xMi44LCAtMTMuMywgLTExLjAsIC05LjcsIC04LjQsIC0xMS4yLCAtNS4zLCAtOS4zLCAtOC43LCAtOS45LCAtNy4xLCAtMTMuOSwgLTExLjIsIC0xNC4yLCAtOC45LCAtMTIuOSwgLTEyLjYsIC0xMi42LCAtMTAuOSwgLTE1LjQsIC0xMy44LCAtMTQuOCwgLTExLjQsIC0xMi44LCAtMTEuNiwgLTEzLjIsIC0xMC4zLCAtNTAuMCwgMTMuMywgLTUwLjAsIDE1LjIsIC04LjYsIC03LjAsIC04LjQsIC00LjgsIC01MC4wLCAtMy4wLCAtNy4xLCAtMC4xLCAtNy4zLCAyLjMsIC04LjcsIDMuOSxdLFxuICAgICAgICAgICAgWy03LjMsIC02LjMsIC04LjksIC01LjUsIDIuOSwgMC4yLCAxLjUsIDEuMiwgLTguNSwgLTIuMywgLTEwLjAsIC0xLjcsIC01LjYsIC0xMC41LCAtNS41LCAtOS42LCAtNC4zLCAtNy45LCAtNi4xLCAtNy4yLCAyLjMsIC0wLjYsIDAuNSwgLTAuMCwgLTguOSwgLTExLjAsIC05LjQsIC05LjMsIC00LjYsIC05LjQsIC03LjMsIC04LjEsIC03LjgsIC05LjgsIC04LjksIC05LjIsIDIuOCwgMC4xLCAxLjIsIDAuOCwgLTUuOSwgLTYuOCwgLTUuOSwgLTYuMywgLTQuMSwgLTcuMiwgLTYuMSwgLTYuMiwgLTUwLjAsIC05LjksIC01MC4wLCAtOC42LCAxMi41LCA5LjQsIDExLjAsIDkuOCwgLTUwLjAsIC00LjgsIC04LjcsIC0zLjUsIC0wLjAsIC04LjYsIC0yLjEsIC03LjAsXSxcbiAgICAgICAgICAgIFstMTAuMSwgLTQuMywgLTEwLjgsIC01LjgsIDAuMSwgMi4zLCAwLjcsIDAuNiwgLTEwLjQsIC0wLjIsIC0xMC44LCAtMi4wLCAtOC44LCAtOS4yLCAtOC4wLCAtOS43LCAtNi44LCAtNS45LCAtNy41LCAtNy4wLCAtMS40LCAyLjIsIC0wLjksIC0wLjQsIC0xMC44LCAtNy43LCAtOS44LCAtOC44LCAtOC45LCAtNy4zLCAtOS42LCAtOS4xLCAtMTAuNSwgLTguMywgLTEwLjIsIC0xMC4wLCAtMC4wLCAyLjUsIDAuNywgMC41LCAtNy41LCAtNS4xLCAtNy4xLCAtNi43LCAtNy40LCAtNS43LCAtOC4xLCAtNy4wLCAtNTAuMCwgLTUuOCwgLTUwLjAsIC03LjAsIDkuNCwgMTIuNywgMTAuMSwgMTAuMCwgLTUwLjAsIC0xLjUsIC0xMS4zLCAtMy4zLCAtNS40LCAtNC4yLCAtNS42LCAtNi44LF0sXG4gICAgICAgICAgICBbLTguNCwgLTYuMiwgLTguOSwgLTUuOSwgMS44LCAwLjQsIDIuNywgMS4yLCAtOS4xLCAtMS4yLCAtOC44LCAtMS41LCAtNy4yLCAtMTAuNSwgLTQuOSwgLTkuNiwgLTUuNywgLTcuNCwgLTUuNSwgLTcuNCwgMC4zLCAtMC4zLCAxLjgsIC0wLjQsIC05LjAsIC04LjcsIC03LjMsIC04LjksIC01LjksIC05LjQsIC02LjQsIC04LjcsIC04LjcsIC05LjEsIC04LjUsIC05LjQsIDEuNCwgMC43LCAzLjUsIDAuNywgLTYuNiwgLTUuMywgLTQuNywgLTUuOCwgLTUuNywgLTcuNSwgLTUuNSwgLTcuMSwgLTUwLjAsIC04LjksIC01MC4wLCAtOC40LCAxMS4wLCAxMC4xLCAxMy4yLCAxMC4yLCAtNTAuMCwgLTQuMiwgLTYuMSwgLTMuNiwgLTMuNSwgLTguNCwgLTEuMiwgLTYuOCxdLFxuICAgICAgICAgICAgWy05LjEsIC01LjQsIC0xMC40LCAtNC4yLCAxLjAsIDAuNSwgMC42LCAyLjQsIC05LjYsIC0xLjUsIC0xMC41LCAtMC41LCAtOC45LCAtMTAuNSwgLTcuMiwgLTguMywgLTYuMywgLTYuOSwgLTcuNywgLTUuMSwgLTAuNSwgMC4xLCAtMC42LCAyLjMsIC0xMS4xLCAtMTAuMiwgLTEwLjUsIC03LjAsIC04LjMsIC05LjQsIC05LjQsIC02LjYsIC05LjYsIC05LjcsIC0xMC4wLCAtNy45LCAwLjcsIDAuNiwgMC44LCAyLjMsIC03LjEsIC02LjUsIC03LjIsIC01LjAsIC02LjUsIC03LjQsIC03LjUsIC01LjQsIC01MC4wLCAtNy42LCAtNTAuMCwgLTQuOCwgOS44LCAxMC4wLCAxMC4yLCAxMi4xLCAtNTAuMCwgLTMuMSwgLTExLjQsIC0wLjcsIC00LjYsIC02LjYsIC00LjksIC0zLjksXSxcbiAgICAgICAgICAgIFstNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAyOS4yLCAtNTAuMCwgMjguNSwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAzMy4zLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCwgLTUwLjAsIC01MC4wLCAtNTAuMCxdLFxuICAgICAgICAgICAgWy0xMy4wLCAtNy4wLCAtMTMuMSwgLTguMywgLTkuMiwgLTYuNSwgLTguOSwgLTcuNiwgLTkuOCwgLTAuNywgLTkuMiwgLTIuMSwgLTEyLjQsIC0xMC4zLCAtMTIuNCwgLTExLjYsIC05LjUsIC00LjYsIC0xMC40LCAtNS43LCAtMTMuNiwgLTEwLjEsIC0xMS40LCAtMTAuOSwgLTYuNSwgLTEuNSwgLTYuMiwgLTMuNiwgLTEyLjgsIC04LjAsIC0xMi4zLCAtOS43LCAtMTYuNSwgLTEyLjcsIC0xNS42LCAtMTQuMywgLTguNywgLTYuMCwgLTcuMSwgLTcuNSwgLTkuNSwgLTQuMSwgLTguNCwgLTYuMSwgLTExLjAsIC04LjYsIC0xMS4zLCAtOS4zLCAtNTAuMCwgLTEuNSwgLTUwLjAsIC0zLjAsIC00LjgsIC0xLjUsIC00LjIsIC0zLjEsIC01MC4wLCAxNi40LCAtNS4xLCAxNC4yLCAtMTAuMSwgLTQuMywgLTEwLjAsIC01LjQsXSxcbiAgICAgICAgICAgIFstMTMuNSwgLTE2LjMsIC0xMS44LCAtMTUuNSwgLTEzLjYsIC0xNS4zLCAtMTIuMSwgLTE2LjEsIC03LjcsIC0xMy4zLCAtNC4yLCAtMTIuNiwgLTE0LjEsIC0xNi4yLCAtMTAuMywgLTE1LjQsIC05LjYsIC0xMS42LCAtNy43LCAtOS44LCAtMTQuMywgLTE3LjUsIC0xMS4xLCAtMTcuMiwgLTUuMywgLTcuMSwgLTIuMiwgLTcuMSwgLTkuNiwgLTExLjksIC04LjcsIC0xMS40LCAtMTcuMSwgLTIwLjYsIC0xNS4zLCAtMTkuOSwgLTE0LjEsIC0xNC44LCAtMTIuNCwgLTE2LjUsIC0xMS43LCAtMTIuOCwgLTYuNCwgLTEzLjQsIC0xNC4zLCAtMTUuNywgLTEyLjcsIC0xNC4wLCAtNTAuMCwgLTcuOCwgLTUwLjAsIC03LjEsIC04LjcsIC0xMS4zLCAtNi4xLCAtMTEuNCwgLTUwLjAsIC01LjEsIDE4LjYsIC00LjgsIC04LjYsIC04LjEsIC00LjUsIC03LjMsXSxcbiAgICAgICAgICAgIFstMTIuNCwgLTguMiwgLTEzLjAsIC01LjksIC03LjcsIC03LjgsIC03LjQsIC01LjgsIC04LjgsIC0yLjAsIC05LjMsIC0wLjQsIC0xMS42LCAtMTEuMywgLTExLjYsIC05LjQsIC04LjksIC01LjYsIC0xMC4wLCAtMy4yLCAtMTEuNSwgLTExLjEsIC0xMC41LCAtOC4zLCAtNi4zLCAtNC45LCAtNi43LCAtMS4yLCAtMTAuNiwgLTkuNywgLTExLjMsIC04LjAsIC0xNC44LCAtMTMuMSwgLTE1LjUsIC0xMS40LCAtNy41LCAtNy41LCAtNy4xLCAtNS45LCAtOC40LCAtNS44LCAtOC4xLCAtMy42LCAtOS45LCAtOS43LCAtMTAuMSwgLTguMiwgLTUwLjAsIC0zLjAsIC01MC4wLCAtMC4xLCAtMy41LCAtMy4zLCAtMy42LCAtMC43LCAtNTAuMCwgMTQuMiwgLTQuOCwgMTYuNCwgLTguOSwgLTUuOCwgLTguOSwgLTMuNCxdLFxuICAgICAgICAgICAgWy0xMC43LCAtMTMuMiwgLTEyLjQsIC0xMS42LCAtNC44LCAtOC40LCAtNi4xLCAtNy4yLCAtMTAuMywgLTExLjgsIC0xMS4wLCAtMTEuNiwgMi44LCAtMS43LCAwLjcsIC0xLjEsIC02LjIsIC05LjcsIC03LjMsIC04LjQsIC01LjMsIC04LjYsIC02LjEsIC04LjMsIC0xMC41LCAtMTEuMiwgLTkuOCwgLTEwLjIsIDkuNSwgNi41LCA3LjYsIDYuOCwgLTEyLjEsIC0xNi4wLCAtMTMuMCwgLTE2LjIsIC01LjIsIC04LjYsIC03LjEsIC03LjgsIC0xMi41LCAtMTQuNCwgLTEyLjEsIC0xMy4wLCAxLjQsIC0zLjAsIC0xLjYsIC0yLjQsIC01MC4wLCAtOC4xLCAtNTAuMCwgLTcuMywgLTAuMCwgLTUuNCwgLTMuNSwgLTQuNiwgLTUwLjAsIC0xMC4xLCAtOC42LCAtOC45LCAxMy4yLCAtMC45LCA5LjcsIC0wLjMsXSxcbiAgICAgICAgICAgIFstMTguMSwgLTEyLjMsIC0xOS40LCAtMTQuMiwgLTEyLjIsIC05LjUsIC0xMS41LCAtMTAuOCwgLTE3LjksIC0xMS45LCAtMTguMiwgLTEzLjksIC02LjQsIC0zLjcsIC02LjgsIC01LjQsIC0xMi44LCAtNS45LCAtMTMuNiwgLTcuNCwgLTEzLjcsIC05LjksIC0xMi45LCAtMTIuNywgLTE2LjIsIC0xMS42LCAtMTUuMiwgLTEyLjcsIC0zLjIsIDAuNSwgLTMuMywgLTEuOCwgLTE4LjksIC0xNi42LCAtMTguOCwgLTE5LjIsIC0xMi41LCAtOS40LCAtMTAuNiwgLTExLjEsIC0xNy4zLCAtMTQuMSwgLTE2LjIsIC0xNi4wLCAtNy45LCAtMy43LCAtNy44LCAtNi4zLCAtNTAuMCwgMy42LCAtNTAuMCwgMi4zLCAtOC42LCAtNC4yLCAtOC40LCAtNi42LCAtNTAuMCwgLTQuMywgLTguMSwgLTUuOCwgLTAuOSwgMTQuMiwgLTEuOCwgMTEuNixdLFxuICAgICAgICAgICAgWy0xMS44LCAtMTMuMSwgLTExLjUsIC0xMi4wLCAtNi4yLCAtOC4zLCAtNS40LCAtNy40LCAtMTEuOCwgLTEyLjMsIC0xMS4xLCAtMTEuNCwgMC41LCAtMi41LCAyLjQsIC0xLjYsIC02LjgsIC05LjksIC02LjQsIC04LjksIC02LjEsIC04LjYsIC01LjAsIC03LjgsIC0xMC40LCAtMTEuNiwgLTguNSwgLTkuOSwgOC4yLCA2LjQsIDguNywgNi45LCAtMTIuNCwgLTE3LjAsIC0xMi42LCAtMTUuOCwgLTYuNSwgLTguNSwgLTUuMCwgLTcuOCwgLTEzLjIsIC0xMy42LCAtMTAuMywgLTEzLjcsIC0wLjcsIC0zLjIsIC0wLjMsIC0yLjQsIC01MC4wLCAtOS40LCAtNTAuMCwgLTguNywgLTIuMSwgLTUuNiwgLTEuMiwgLTQuOSwgLTUwLjAsIC0xMC4wLCAtNC41LCAtOC45LCA5LjcsIC0xLjgsIDExLjMsIC0wLjksXSxcbiAgICAgICAgICAgIFstMTcuMiwgLTEzLjMsIC0xNy44LCAtMTEuNiwgLTExLjAsIC0xMS4xLCAtMTAuNCwgLTkuMCwgLTE2LjAsIC0xMi43LCAtMTYuMSwgLTExLjEsIC01LjIsIC01LjQsIC02LjAsIC0zLjMsIC0xMS44LCAtNy4zLCAtMTMuMywgLTUuOSwgLTEyLjcsIC0xMS45LCAtMTEuOSwgLTkuMywgLTE1LjIsIC0xNS4wLCAtMTQuOSwgLTExLjAsIC0yLjgsIC0xLjgsIC0yLjksIDAuNCwgLTE3LjQsIC0xOC40LCAtMTguMywgLTE1LjksIC0xMC43LCAtMTEuMiwgLTEwLjYsIC05LjAsIC0xNS40LCAtMTQuOCwgLTE1LjgsIC0xMy4zLCAtNi44LCAtNS45LCAtNy4yLCAtMy45LCAtNTAuMCwgMi4wLCAtNTAuMCwgMy45LCAtNy4wLCAtNi44LCAtNi44LCAtMy45LCAtNTAuMCwgLTUuNCwgLTcuMywgLTMuNCwgLTAuMywgMTEuNiwgLTAuOSwgMTQuMSxdXTtcbiAgICAgICAgdGhpcy5UUkFOUyA9IFtbNSwgMCwgMCwgNF0sXG4gICAgICAgICAgICBbMCwgNSwgNCwgMF0sXG4gICAgICAgICAgICBbMCwgNCwgNSwgMF0sXG4gICAgICAgICAgICBbNCwgMCwgMCwgNV1dO1xuICAgICAgICB0aGlzLkNPTkJMTyA9IHsgJ0EnOiAwLCAnUic6IDEsICdOJzogMiwgJ0QnOiAzLCAnQyc6IDQsICdRJzogNSwgJ0UnOiA2LCAnRyc6IDcsICdIJzogOCwgJ0knOiA5LCAnTCc6IDEwLCAnSyc6IDExLCAnTSc6IDEyLCAnRic6IDEzLCAnUCc6IDE0LCAnUyc6IDE1LCAnVCc6IDE2LCAnVyc6IDE3LCAnWSc6IDE4LCAnVic6IDE5LCAnQic6IDIwLCAnWic6IDIxLCAnWCc6IDIyLCAnKic6IDIzIH07XG4gICAgICAgIHRoaXMuQ09OTlVDTCA9IHsgJ0EnOiAwLCAnVCc6IDEsICdDJzogMiwgJ0cnOiAzIH07XG4gICAgICAgIHRoaXMuQ09OU0NITiA9IHsgJ0FBQSc6IDAsICdBQUMnOiAxLCAnQUFHJzogMiwgJ0FBVCc6IDMsICdBQ0EnOiA0LCAnQUNDJzogNSwgJ0FDRyc6IDYsICdBQ1QnOiA3LCAnQUdBJzogOCwgJ0FHQyc6IDksICdBR0cnOiAxMCwgJ0FHVCc6IDExLCAnQVRBJzogMTIsICdBVEMnOiAxMywgJ0FURyc6IDE0LCAnQVRUJzogMTUsICdDQUEnOiAxNiwgJ0NBQyc6IDE3LCAnQ0FHJzogMTgsICdDQVQnOiAxOSwgJ0NDQSc6IDIwLCAnQ0NDJzogMjEsICdDQ0cnOiAyMiwgJ0NDVCc6IDIzLCAnQ0dBJzogMjQsICdDR0MnOiAyNSwgJ0NHRyc6IDI2LCAnQ0dUJzogMjcsICdDVEEnOiAyOCwgJ0NUQyc6IDI5LCAnQ1RHJzogMzAsICdDVFQnOiAzMSwgJ0dBQSc6IDMyLCAnR0FDJzogMzMsICdHQUcnOiAzNCwgJ0dBVCc6IDM1LCAnR0NBJzogMzYsICdHQ0MnOiAzNywgJ0dDRyc6IDM4LCAnR0NUJzogMzksICdHR0EnOiA0MCwgJ0dHQyc6IDQxLCAnR0dHJzogNDIsICdHR1QnOiA0MywgJ0dUQSc6IDQ0LCAnR1RDJzogNDUsICdHVEcnOiA0NiwgJ0dUVCc6IDQ3LCAnVEFBJzogNDgsICdUQUMnOiA0OSwgJ1RBRyc6IDUwLCAnVEFUJzogNTEsICdUQ0EnOiA1MiwgJ1RDQyc6IDUzLCAnVENHJzogNTQsICdUQ1QnOiA1NSwgJ1RHQSc6IDU2LCAnVEdDJzogNTcsICdUR0cnOiA1OCwgJ1RHVCc6IDU5LCAnVFRBJzogNjAsICdUVEMnOiA2MSwgJ1RURyc6IDYyLCAnVFRUJzogNjMgfTtcbiAgICAgICAgdGhpcy5zZXRNZXRob2QoYWxpZ25HcmlkXyk7XG4gICAgICAgIHRoaXMuc2V0U2VxdWVuY2VzKHNlcTFfLCBzZXEyXyk7XG4gICAgICAgIHRoaXMuc2V0R2FwKGdhcF8pO1xuICAgIH1cbiAgICBmaWxsTmVlZGxlbWFuKCkge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSB0aGlzLmxlbjE7IGkrKykge1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bMF0udmFsdWUgPSAtaSAqIHRoaXMuZ2FwO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bMF0ucGFyZW50SSA9IGkgLSAxO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bMF0ucGFyZW50SiA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5sZW4yOyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkWzBdW2ldLnZhbHVlID0gLWkgKiB0aGlzLmdhcDtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkWzBdW2ldLnBhcmVudEkgPSAwO1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbMF1baV0ucGFyZW50SiA9IGkgLSAxO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZpbGxPbmUoaSwgaikge1xuICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZSA9IE1hdGgubWF4KHRoaXMuZHBHcmlkW2kgLSAxXVtqIC0gMV0udmFsdWUgKyB0aGlzLnNjb3Jlc1tpIC0gMV1baiAtIDFdLCBNYXRoLm1heCh0aGlzLmRwR3JpZFtpIC0gMV1bal0udmFsdWUgLSB0aGlzLmdhcCwgdGhpcy5kcEdyaWRbaV1baiAtIDFdLnZhbHVlIC0gdGhpcy5nYXApKTtcbiAgICAgICAgaWYgKHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlID09IHRoaXMuZHBHcmlkW2kgLSAxXVtqIC0gMV0udmFsdWUgKyB0aGlzLnNjb3Jlc1tpIC0gMV1baiAtIDFdKSB7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRJID0gaSAtIDE7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKID0gaiAtIDE7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5kcEdyaWRbaV1bal0udmFsdWUgPT0gdGhpcy5kcEdyaWRbaSAtIDFdW2pdLnZhbHVlIC0gdGhpcy5nYXApIHtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEkgPSBpIC0gMTtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEogPSBqO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SSA9IGk7XG4gICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKID0gaiAtIDE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ3JpZEZyb21OYW1lKHBhdGgpIHtcbiAgICAgICAgc3dpdGNoIChwYXRoKSB7XG4gICAgICAgICAgICBjYXNlICdCTE9TVU00NSc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLkJMT1NVTTQ1O1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQkxPU1VNNTAnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5CTE9TVU01MDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0JMT1NVTTYyJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuQkxPU1VNNjI7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OQkxPO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdCTE9TVU04MCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLkJMT1NVTTgwO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQkxPU1VNOTAnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5CTE9TVU05MDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05CTE87XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1BBTTMwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuUEFNMzA7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9ucyA9IHRoaXMuQ09OQkxPO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdQQU03MCc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLlBBTTcwO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnUEFNMjUwJzpcbiAgICAgICAgICAgICAgICB0aGlzLmFsaWduR3JpZCA9IHRoaXMuUEFNMjUwO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTkJMTztcbiAgICAgICAgICAgICAgICB0aGlzLnN0ZXAgPSAxO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnTlVDTEVPVElERVMnOlxuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ25HcmlkID0gdGhpcy5OVUNMRU9USURFUztcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05OVUNMO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdUUkFOUyc6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLlRSQU5TO1xuICAgICAgICAgICAgICAgIHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLkNPTk5VQ0w7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ1NDSE5FSURFUic6XG4gICAgICAgICAgICAgICAgdGhpcy5hbGlnbkdyaWQgPSB0aGlzLlNDSE5FSURFUjtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5DT05TQ0hOO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RlcCA9IDM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWxsU2NvcmVzKCk7XG4gICAgfVxuICAgIGNvbnN0cnVjdFJlc3VsdChpLCBqKSB7XG4gICAgICAgIGxldCByZXMxID0gXCJcIiwgcmVzMiA9IFwiXCIsIGdhcFMgPSBcIlwiO1xuICAgICAgICBsZXQgdG90YWwgPSB0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnN0ZXA7IGkrKykge1xuICAgICAgICAgICAgZ2FwUyArPSAnfCc7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKGkgPiAwIHx8IGogPiAwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SSA9PSBpKSB7XG4gICAgICAgICAgICAgICAgcmVzMSA9IGdhcFMgKyByZXMxO1xuICAgICAgICAgICAgICAgIHJlczIgPSB0aGlzLnNlcTIuc3Vic3RyKChqIC0gMSkgKiB0aGlzLnN0ZXAsIHRoaXMuc3RlcCkgKyByZXMyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SiA9PSBqKSB7XG4gICAgICAgICAgICAgICAgcmVzMiA9IGdhcFMgKyByZXMyO1xuICAgICAgICAgICAgICAgIHJlczEgPSB0aGlzLnNlcTEuc3Vic3RyKChpIC0gMSkgKiB0aGlzLnN0ZXAsIHRoaXMuc3RlcCkgKyByZXMxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGkgLSAxID49IDApXG4gICAgICAgICAgICAgICAgICAgIHJlczEgPSB0aGlzLnNlcTEuc3Vic3RyKChpIC0gMSkgKiB0aGlzLnN0ZXAsIHRoaXMuc3RlcCkgKyByZXMxO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgcmVzMSA9IGdhcFMgKyByZXMxO1xuICAgICAgICAgICAgICAgIGlmIChqIC0gMSA+PSAwKVxuICAgICAgICAgICAgICAgICAgICByZXMyID0gdGhpcy5zZXEyLnN1YnN0cigoaiAtIDEpICogdGhpcy5zdGVwLCB0aGlzLnN0ZXApICsgcmVzMjtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIHJlczIgPSBnYXBTICsgcmVzMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCB0ZW1wSSA9IGk7XG4gICAgICAgICAgICBpID0gdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50STtcbiAgICAgICAgICAgIGogPSB0aGlzLmRwR3JpZFt0ZW1wSV1bal0ucGFyZW50SjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEFsaWduZWQocmVzMSwgcmVzMiwgdG90YWwpO1xuICAgIH1cbiAgICBmaWxsU2NvcmVzKCkge1xuICAgICAgICB0aGlzLnNjb3JlcyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuMTsgaSsrKSB7XG4gICAgICAgICAgICB0aGlzLnNjb3Jlcy5wdXNoKFtdKTtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5sZW4yOyBqKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNjb3Jlc1tpXS5wdXNoKHRoaXMuYWxpZ25HcmlkW3RoaXMuY29ubmVjdGlvbnNbdGhpcy5zZXExLnN1YnN0cihpICogdGhpcy5zdGVwLCB0aGlzLnN0ZXApXV1bdGhpcy5jb25uZWN0aW9uc1t0aGlzLnNlcTIuc3Vic3RyKGogKiB0aGlzLnN0ZXAsIHRoaXMuc3RlcCldXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdHlwZVJlYygpIHtcbiAgICAgICAgaWYgKC9bQVRHQ10qLy50ZXN0KHRoaXMuc2VxMSkgJiYgL1tBVEdDXSovLnRlc3QodGhpcy5zZXEyKSlcbiAgICAgICAgICAgIHJldHVybiBcIk5VQ0xFT1RJREVTXCI7XG4gICAgICAgIGlmICgvW0FSTkRDUUVHSElMS01GUFNUV1lWQlpYKl0qLy50ZXN0KHRoaXMuc2VxMSkgJiYgL1tBUk5EQ1FFR0hJTEtNRlBTVFdZVkJaWCpdKi8udGVzdCh0aGlzLnNlcTIpKVxuICAgICAgICAgICAgcmV0dXJuIFwiQkxPU1VNNjJcIjtcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJDYW4ndCByZWNvZ25pemUgc2VxdWVuY2UgdHlwZVwiKTtcbiAgICB9XG4gICAgbmVlZGxlbWFuV3VuY2goKSB7XG4gICAgICAgIHRoaXMuZHBHcmlkID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW4xICsgMTsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgcm93ID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMubGVuMiArIDE7IGorKylcbiAgICAgICAgICAgICAgICByb3cucHVzaChuZXcgQ2VsbCgpKTtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkLnB1c2gocm93KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZpbGxOZWVkbGVtYW4oKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5sZW4xOyBpKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAxOyBqIDw9IHRoaXMubGVuMjsgaisrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxsT25lKGksIGopO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdFJlc3VsdCh0aGlzLmxlbjEsIHRoaXMubGVuMik7XG4gICAgfVxuICAgIHNtaXRoV2F0ZXJtYW4oKSB7XG4gICAgICAgIHRoaXMuZHBHcmlkID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW4xICsgMTsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgcm93ID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMubGVuMiArIDE7IGorKylcbiAgICAgICAgICAgICAgICByb3cucHVzaChuZXcgQ2VsbCgpKTtcbiAgICAgICAgICAgIHRoaXMuZHBHcmlkLnB1c2gocm93KTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgYmVzdFZhbCA9IDA7XG4gICAgICAgIGxldCBiZXN0SSA9IDAsIGJlc3RKID0gMDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5sZW4xOyBpKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAxOyBqIDw9IHRoaXMubGVuMjsgaisrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxsT25lKGksIGopO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRwR3JpZFtpXVtqXS52YWx1ZSA8PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlID0gMDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcEdyaWRbaV1bal0ucGFyZW50SSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEogPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLmRwR3JpZFt0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRJXVt0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKXS52YWx1ZSA9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHBHcmlkW2ldW2pdLnBhcmVudEkgPSAwO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRwR3JpZFtpXVtqXS5wYXJlbnRKID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZHBHcmlkW2ldW2pdLnZhbHVlID4gYmVzdFZhbCkge1xuICAgICAgICAgICAgICAgICAgICBiZXN0VmFsID0gdGhpcy5kcEdyaWRbaV1bal0udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGJlc3RJID0gaTtcbiAgICAgICAgICAgICAgICAgICAgYmVzdEogPSBqO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3RSZXN1bHQoYmVzdEksIGJlc3RKKTtcbiAgICB9XG4gICAgc2V0U2VxdWVuY2VzKHNlcTFfLCBzZXEyXykge1xuICAgICAgICB0aGlzLnNlcTEgPSBzZXExXztcbiAgICAgICAgdGhpcy5zZXEyID0gc2VxMl87XG4gICAgICAgIHRoaXMubGVuMSA9IHRoaXMuc2VxMS5sZW5ndGggLyB0aGlzLnN0ZXA7XG4gICAgICAgIHRoaXMubGVuMiA9IHRoaXMuc2VxMi5sZW5ndGggLyB0aGlzLnN0ZXA7XG4gICAgICAgIHRoaXMuZmlsbFNjb3JlcygpO1xuICAgIH1cbiAgICBzZXRHYXAoZ2FwXykge1xuICAgICAgICB0aGlzLmdhcCA9IGdhcF87XG4gICAgfVxuICAgIHNldE1ldGhvZChhbGlnbkdyaWRfID0gXCJcIikge1xuICAgICAgICBpZiAoYWxpZ25HcmlkXyA9PSBcIkFVVE9cIikge1xuICAgICAgICAgICAgYWxpZ25HcmlkXyA9IHRoaXMudHlwZVJlYygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ3JpZEZyb21OYW1lKGFsaWduR3JpZF8pO1xuICAgIH1cbn1cbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5leHBvcnQgZnVuY3Rpb24gZ2V0TWFjcm9Nb2wobW9ub21lcnMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gW107XG4gICAgICAgIGNvbnN0IG1vZHVsZVJka2l0ID0geWllbGQgZ3Jvay5mdW5jdGlvbnMuY2FsbCgnQ2hlbTpnZXRSZEtpdE1vZHVsZScpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vbm9tZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1vbm9tZXJzW2ldLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbW9sID0gbW9kdWxlUmRraXQuZ2V0X21vbChtb25vbWVyc1tpXVtqXVsnbW9sZmlsZSddKTtcbiAgICAgICAgICAgICAgICBjb25zdCBhID0gbW9sLmdldF92M0ttb2xibG9jaygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGljZXMgPSBnZXRJbmRpY2VzKG1vbm9tZXJzW2ldW2pdLCBhKTtcbiAgICAgICAgICAgICAgICBtb25vbWVyc1tpXVtqXVsnaW5kaWNlcyddID0gaW5kaWNlcztcbiAgICAgICAgICAgICAgICBtb25vbWVyc1tpXVtqXVsnbW9sZmlsZSddID0geWllbGQgcm90YXRlQmFja2JvbmVWMzAwMChhLCBpbmRpY2VzKTtcbiAgICAgICAgICAgICAgICBtb2wgPT09IG51bGwgfHwgbW9sID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtb2wuZGVsZXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHQucHVzaChsaW5rVjMwMDAobW9ub21lcnNbaV0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xufVxuZnVuY3Rpb24gZ2V0SW5kaWNlcyhtb25vbWVyLCBtb2xWMzAwMCkge1xuICAgIGNvbnN0IG1vbGZpbGUgPSBtb25vbWVyW1wibW9sZmlsZVwiXTtcbiAgICBsZXQgaW5kZXhTdGFydCA9IG1vbGZpbGUuaW5kZXhPZignTSAgUkdQJywgMCkgKyA4O1xuICAgIGxldCBpbmRleEVuZCA9IG1vbGZpbGUuaW5kZXhPZignXFxuJywgaW5kZXhTdGFydCk7XG4gICAgY29uc3QgaW5kaWNlc0RhdGEgPSBtb2xmaWxlLnN1YnN0cmluZyhpbmRleFN0YXJ0LCBpbmRleEVuZCkucmVwbGFjZUFsbCgnICAnLCAnICcpLnJlcGxhY2VBbGwoJyAgJywgJyAnKTtcbiAgICBsZXQgcGFyc2VkRGF0YSA9IGluZGljZXNEYXRhLnNwbGl0KCcgJyk7XG4gICAgY29uc3QgcmVtRmlyc3QgPSBwYXJzZWREYXRhWzJdID09ICcxJyA/IHBhcnNlSW50KHBhcnNlZERhdGFbMV0pIDogcGFyc2VJbnQocGFyc2VkRGF0YVszXSk7XG4gICAgY29uc3QgcmVtTGFzdCA9IHBhcnNlZERhdGFbMl0gPT0gJzInID8gcGFyc2VJbnQocGFyc2VkRGF0YVsxXSkgOiBwYXJzZUludChwYXJzZWREYXRhWzNdKTtcbiAgICBjb25zdCBudW1iZXJzID0gZXh0cmFjdEF0b21zQm9uZHNOdW1iZXJzVjMwMDAobW9sVjMwMDApO1xuICAgIGxldCBpbmRleEJvbmRzID0gbW9sVjMwMDAuaW5kZXhPZignTSAgVjMwIEJFR0lOIEJPTkQnKTsgLy8gVjMwMDAgaW5kZXggZm9yIGJvbmRzXG4gICAgaW5kZXhCb25kcyA9IG1vbFYzMDAwLmluZGV4T2YoJ1xcbicsIGluZGV4Qm9uZHMpO1xuICAgIGluZGV4U3RhcnQgPSBpbmRleEJvbmRzO1xuICAgIGluZGV4RW5kID0gaW5kZXhCb25kcztcbiAgICBsZXQgZmlyc3QgPSAwO1xuICAgIGxldCBsYXN0ID0gMDtcbiAgICBsZXQgcmVtQm9uZEZpcnN0ID0gMDtcbiAgICBsZXQgcmVtQm9uZExhc3QgPSAwO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgbnVtYmVycy5uYm9uZDsgaisrKSB7XG4gICAgICAgIGlmIChmaXJzdCA9PSAwIHx8IGxhc3QgPT0gMCkge1xuICAgICAgICAgICAgaW5kZXhTdGFydCA9IG1vbFYzMDAwLmluZGV4T2YoJ1YzMCcsIGluZGV4U3RhcnQpICsgNDtcbiAgICAgICAgICAgIGluZGV4RW5kID0gbW9sVjMwMDAuaW5kZXhPZignXFxuJywgaW5kZXhTdGFydCk7XG4gICAgICAgICAgICBjb25zdCBib25kRGF0YSA9IG1vbFYzMDAwLnN1YnN0cmluZyhpbmRleFN0YXJ0LCBpbmRleEVuZCkucmVwbGFjZUFsbCgnICAnLCAnICcpLnJlcGxhY2VBbGwoJyAgJywgJyAnKTtcbiAgICAgICAgICAgIHBhcnNlZERhdGEgPSBib25kRGF0YS5zcGxpdCgnICcpO1xuICAgICAgICAgICAgaWYgKHBhcnNlSW50KHBhcnNlZERhdGFbMl0pID09IHJlbUZpcnN0KSB7XG4gICAgICAgICAgICAgICAgZmlyc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzNdKTtcbiAgICAgICAgICAgICAgICByZW1Cb25kRmlyc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHBhcnNlSW50KHBhcnNlZERhdGFbM10pID09IHJlbUZpcnN0KSB7XG4gICAgICAgICAgICAgICAgZmlyc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzJdKTtcbiAgICAgICAgICAgICAgICByZW1Cb25kRmlyc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHBhcnNlSW50KHBhcnNlZERhdGFbMl0pID09IHJlbUxhc3QpIHtcbiAgICAgICAgICAgICAgICBsYXN0ID0gcGFyc2VJbnQocGFyc2VkRGF0YVszXSk7XG4gICAgICAgICAgICAgICAgcmVtQm9uZExhc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHBhcnNlSW50KHBhcnNlZERhdGFbM10pID09IHJlbUxhc3QpIHtcbiAgICAgICAgICAgICAgICBsYXN0ID0gcGFyc2VJbnQocGFyc2VkRGF0YVsyXSk7XG4gICAgICAgICAgICAgICAgcmVtQm9uZExhc3QgPSBwYXJzZUludChwYXJzZWREYXRhWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyBmaXJzdCwgbGFzdCwgcmVtRmlyc3QsIHJlbUxhc3QsIHJlbUJvbmRGaXJzdCwgcmVtQm9uZExhc3QgfTtcbn1cbmZ1bmN0aW9uIHJvdGF0ZUJhY2tib25lVjMwMDAobW9sQmxvY2ssIGluZGljZXMpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBjb29yZGluYXRlcyA9IGV4dHJhY3RBdG9tRGF0YVYzMDAwKG1vbEJsb2NrKTtcbiAgICAgICAgY29uc3QgbmF0b20gPSBjb29yZGluYXRlcy5hdG9tSW5kZXgubGVuZ3RoO1xuICAgICAgICBjb25zdCBmaXJzdCA9IGluZGljZXNbJ2ZpcnN0J107XG4gICAgICAgIGNvbnN0IGxhc3QgPSBpbmRpY2VzWydsYXN0J107XG4gICAgICAgIGNvbnN0IHhDZW50ZXIgPSAoY29vcmRpbmF0ZXMueFtsYXN0XSArIGNvb3JkaW5hdGVzLnhbZmlyc3RdKSAvIDI7XG4gICAgICAgIGNvbnN0IHlDZW50ZXIgPSAoY29vcmRpbmF0ZXMueVtsYXN0XSArIGNvb3JkaW5hdGVzLnlbZmlyc3RdKSAvIDI7XG4gICAgICAgIC8vcGxhY2UgdG8gY2VudGVyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmF0b207IGkrKykge1xuICAgICAgICAgICAgY29vcmRpbmF0ZXMueFtpXSAtPSB4Q2VudGVyO1xuICAgICAgICAgICAgY29vcmRpbmF0ZXMueVtpXSAtPSB5Q2VudGVyO1xuICAgICAgICB9XG4gICAgICAgIGxldCBhbmdsZSA9IDA7XG4gICAgICAgIGlmIChjb29yZGluYXRlcy54W2ZpcnN0XSA9PSAwKVxuICAgICAgICAgICAgYW5nbGUgPSBjb29yZGluYXRlcy55W2ZpcnN0XSA+IGNvb3JkaW5hdGVzLnlbbGFzdF0gPyBNYXRoLlBJIC8gMiA6IDMgKiBNYXRoLlBJIC8gMjtcbiAgICAgICAgZWxzZSBpZiAoY29vcmRpbmF0ZXMueVtmaXJzdF0gPT0gMClcbiAgICAgICAgICAgIGFuZ2xlID0gY29vcmRpbmF0ZXMueFtmaXJzdF0gPiBjb29yZGluYXRlcy54W2xhc3RdID8gTWF0aC5QSSA6IDA7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGVyaXZhdGl2ZSA9IGNvb3JkaW5hdGVzLnlbZmlyc3RdIC8gY29vcmRpbmF0ZXMueFtmaXJzdF07XG4gICAgICAgICAgICBpZiAoY29vcmRpbmF0ZXMueFtmaXJzdF0gPCBjb29yZGluYXRlcy54W2xhc3RdKVxuICAgICAgICAgICAgICAgIGFuZ2xlID0gZGVyaXZhdGl2ZSA+IDAgPyBNYXRoLlBJIC0gTWF0aC5hdGFuKGRlcml2YXRpdmUpIDogTWF0aC5hdGFuKGRlcml2YXRpdmUpO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGFuZ2xlID0gZGVyaXZhdGl2ZSA+IDAgPyBNYXRoLmF0YW4oZGVyaXZhdGl2ZSkgOiBNYXRoLlBJIC0gTWF0aC5hdGFuKGRlcml2YXRpdmUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvcyA9IE1hdGguY29zKGFuZ2xlKTtcbiAgICAgICAgY29uc3Qgc2luID0gTWF0aC5zaW4oYW5nbGUpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5hdG9tOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHhBZGQgPSBjb29yZGluYXRlcy54W2ldO1xuICAgICAgICAgICAgY29vcmRpbmF0ZXMueFtpXSA9IHhBZGQgKiBjb3MgLSBjb29yZGluYXRlcy55W2ldICogc2luO1xuICAgICAgICAgICAgY29vcmRpbmF0ZXMueVtpXSA9IHhBZGQgKiBzaW4gKyBjb29yZGluYXRlcy55W2ldICogY29zO1xuICAgICAgICB9XG4gICAgICAgIC8vcGxhY2UgdG8gcmlnaHRcbiAgICAgICAgY29uc3QgeFNoaWZ0ID0gY29vcmRpbmF0ZXMueFtmaXJzdF07XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmF0b207IGkrKylcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzLnhbaV0gLT0geFNoaWZ0O1xuICAgICAgICAvL3Jld3JpdGUgbW9sQmxvY2tcbiAgICAgICAgbGV0IGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignTSAgVjMwIEJFR0lOIEFUT00nKTsgLy8gVjMwMDAgaW5kZXggZm9yIGF0b21zIGNvb3JkaW5hdGVzXG4gICAgICAgIGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignXFxuJywgaW5kZXgpO1xuICAgICAgICBsZXQgaW5kZXhFbmQgPSBpbmRleDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuYXRvbTsgaSsrKSB7XG4gICAgICAgICAgICBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJ1YzMCcsIGluZGV4KSArIDQ7XG4gICAgICAgICAgICBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJyAnLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgaW5kZXggPSBtb2xCbG9jay5pbmRleE9mKCcgJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgIGluZGV4RW5kID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KSArIDE7XG4gICAgICAgICAgICBpbmRleEVuZCA9IG1vbEJsb2NrLmluZGV4T2YoJyAnLCBpbmRleEVuZCk7XG4gICAgICAgICAgICBtb2xCbG9jayA9IG1vbEJsb2NrLnNsaWNlKDAsIGluZGV4KSArXG4gICAgICAgICAgICAgICAgY29vcmRpbmF0ZXMueFtpXSArICcgJyArIGNvb3JkaW5hdGVzLnlbaV0gK1xuICAgICAgICAgICAgICAgIG1vbEJsb2NrLnNsaWNlKGluZGV4RW5kKTtcbiAgICAgICAgICAgIGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignXFxuJywgaW5kZXgpICsgMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbW9sQmxvY2s7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBleHRyYWN0QXRvbURhdGFWMzAwMChtb2xCbG9jaykge1xuICAgIGNvbnN0IG51bWJlcnMgPSBleHRyYWN0QXRvbXNCb25kc051bWJlcnNWMzAwMChtb2xCbG9jayk7XG4gICAgbGV0IGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignTSAgVjMwIEJFR0lOIEFUT00nKTsgLy8gVjMwMDAgaW5kZXggZm9yIGF0b21zIGNvb3JkaW5hdGVzXG4gICAgaW5kZXggPSBtb2xCbG9jay5pbmRleE9mKCdcXG4nLCBpbmRleCk7XG4gICAgbGV0IGluZGV4RW5kID0gaW5kZXg7XG4gICAgY29uc3QgaW5kZXhlcyA9IEFycmF5KG51bWJlcnMubmF0b20pO1xuICAgIGNvbnN0IHR5cGVzID0gQXJyYXkobnVtYmVycy5uYXRvbSk7XG4gICAgY29uc3QgeCA9IEFycmF5KG51bWJlcnMubmF0b20pO1xuICAgIGNvbnN0IHkgPSBBcnJheShudW1iZXJzLm5hdG9tKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bWJlcnMubmF0b207IGkrKykge1xuICAgICAgICBpbmRleCA9IG1vbEJsb2NrLmluZGV4T2YoJ1YzMCcsIGluZGV4KSArIDQ7XG4gICAgICAgIGluZGV4RW5kID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgaW5kZXhlc1tpXSA9IHBhcnNlSW50KG1vbEJsb2NrLnN1YnN0cmluZyhpbmRleCwgaW5kZXhFbmQpKTtcbiAgICAgICAgaW5kZXggPSBpbmRleEVuZCArIDE7XG4gICAgICAgIGluZGV4RW5kID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgdHlwZXNbaV0gPSBtb2xCbG9jay5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKTtcbiAgICAgICAgaW5kZXggPSBpbmRleEVuZCArIDE7XG4gICAgICAgIGluZGV4RW5kID0gbW9sQmxvY2suaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgeFtpXSA9IHBhcnNlRmxvYXQobW9sQmxvY2suc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgICAgICBpbmRleCA9IGluZGV4RW5kICsgMTtcbiAgICAgICAgaW5kZXhFbmQgPSBtb2xCbG9jay5pbmRleE9mKCcgJywgaW5kZXgpO1xuICAgICAgICB5W2ldID0gcGFyc2VGbG9hdChtb2xCbG9jay5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSk7XG4gICAgICAgIGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignXFxuJywgaW5kZXgpICsgMTtcbiAgICB9XG4gICAgcmV0dXJuIHsgYXRvbUluZGV4OiBpbmRleGVzLCBhdG9tVHlwZTogdHlwZXMsIHg6IHgsIHk6IHkgfTtcbn1cbmZ1bmN0aW9uIGxpbmtWMzAwMChtb25vbWVycykge1xuICAgIGxldCBtYWNyb01vbEJsb2NrID0gJ1xcbkRhdGFncm9rIG1hY3JvbW9sZWN1bGUgaGFuZGxlclxcblxcbic7XG4gICAgbWFjcm9Nb2xCbG9jayArPSAnICAwICAwICAwICAwICAwICAwICAgICAgICAgICAgOTk5IFYzMDAwXFxuJztcbiAgICBtYWNyb01vbEJsb2NrICs9ICdNICBWMzAgQkVHSU4gQ1RBQlxcbic7XG4gICAgbGV0IGF0b21CbG9jayA9ICcnO1xuICAgIGxldCBib25kQmxvY2sgPSAnJztcbiAgICBsZXQgY29sbGVjdGlvbkJsb2NrID0gJyc7XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IFtdO1xuICAgIGxldCBuYXRvbSA9IDA7XG4gICAgbGV0IG5ib25kID0gMDtcbiAgICBsZXQgeFNoaWZ0ID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1vbm9tZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxldCBtb2xmaWxlID0gbW9ub21lcnNbaV1bJ21vbGZpbGUnXTtcbiAgICAgICAgY29uc3QgZmlyc3QgPSBtb25vbWVyc1tpXVsnaW5kaWNlcyddWydmaXJzdCddO1xuICAgICAgICBjb25zdCBsYXN0ID0gbW9ub21lcnNbaV1bJ2luZGljZXMnXVsnbGFzdCddO1xuICAgICAgICBjb25zdCByZW1GaXJzdCA9IG1vbm9tZXJzW2ldWydpbmRpY2VzJ11bJ3JlbUZpcnN0J107XG4gICAgICAgIGNvbnN0IHJlbUxhc3QgPSBtb25vbWVyc1tpXVsnaW5kaWNlcyddWydyZW1MYXN0J107XG4gICAgICAgIGNvbnN0IHJlbUJvbmRGaXJzdCA9IG1vbm9tZXJzW2ldWydpbmRpY2VzJ11bJ3JlbUJvbmRGaXJzdCddO1xuICAgICAgICBjb25zdCByZW1Cb25kTGFzdCA9IG1vbm9tZXJzW2ldWydpbmRpY2VzJ11bJ3JlbUJvbmRMYXN0J107XG4gICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnJlcGxhY2VBbGwoJygtXFxuTSAgVjMwICcsICcoJylcbiAgICAgICAgICAgIC5yZXBsYWNlQWxsKCctXFxuTSAgVjMwICcsICcnKS5yZXBsYWNlQWxsKCcgKScsICcpJyk7XG4gICAgICAgIGNvbnN0IG51bWJlcnMgPSBleHRyYWN0QXRvbXNCb25kc051bWJlcnNWMzAwMChtb2xmaWxlKTtcbiAgICAgICAgY29uc3QgY29vcmRpbmF0ZXMgPSBleHRyYWN0QXRvbURhdGFWMzAwMChtb2xmaWxlKTtcbiAgICAgICAgbGV0IGluZGV4QXRvbXMgPSBtb2xmaWxlLmluZGV4T2YoJ00gIFYzMCBCRUdJTiBBVE9NJyk7IC8vIFYzMDAwIGluZGV4IGZvciBhdG9tcyBjb29yZGluYXRlc1xuICAgICAgICBpbmRleEF0b21zID0gbW9sZmlsZS5pbmRleE9mKCdcXG4nLCBpbmRleEF0b21zKTtcbiAgICAgICAgbGV0IGluZGV4ID0gaW5kZXhBdG9tcztcbiAgICAgICAgbGV0IGluZGV4RW5kID0gaW5kZXhBdG9tcztcbiAgICAgICAgY29uc3QgdG90YWxTaGlmdCA9IHhTaGlmdCAtIGNvb3JkaW5hdGVzLnhbZmlyc3QgLSAxXTtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBudW1iZXJzLm5hdG9tOyBqKyspIHtcbiAgICAgICAgICAgIGlmIChjb29yZGluYXRlcy5hdG9tSW5kZXhbal0gIT0gcmVtRmlyc3QgJiYgY29vcmRpbmF0ZXMuYXRvbUluZGV4W2pdICE9IHJlbUxhc3QpIHsgLy98fCBpID09IDApIHtcbiAgICAgICAgICAgICAgICAvL3Jld3JpdGUgYXRvbSBudW1iZXJcbiAgICAgICAgICAgICAgICBpbmRleCA9IG1vbGZpbGUuaW5kZXhPZignVjMwJywgaW5kZXgpICsgNDtcbiAgICAgICAgICAgICAgICBpbmRleEVuZCA9IG1vbGZpbGUuaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgICAgICAgICBsZXQgYXRvbU51bWJlciA9IHBhcnNlSW50KG1vbGZpbGUuc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgICAgICAgICAgICAgIGF0b21OdW1iZXIgPSAoYXRvbU51bWJlciA+IHJlbUZpcnN0ICYmIGF0b21OdW1iZXIgPiByZW1MYXN0KSA/IGF0b21OdW1iZXIgLSAyIDpcbiAgICAgICAgICAgICAgICAgICAgKGF0b21OdW1iZXIgPiByZW1GaXJzdCB8fCBhdG9tTnVtYmVyID4gcmVtTGFzdCkgPyBhdG9tTnVtYmVyIC0gMSA6IGF0b21OdW1iZXI7XG4gICAgICAgICAgICAgICAgYXRvbU51bWJlciArPSBuYXRvbTtcbiAgICAgICAgICAgICAgICBtb2xmaWxlID0gbW9sZmlsZS5zbGljZSgwLCBpbmRleCkgKyBhdG9tTnVtYmVyICsgbW9sZmlsZS5zbGljZShpbmRleEVuZCk7XG4gICAgICAgICAgICAgICAgLy9yZXdyaXRlIGNvb3JkaW5hdGVzXG4gICAgICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCcgJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgICAgICBpbmRleEVuZCA9IG1vbGZpbGUuaW5kZXhPZignICcsIGluZGV4KTtcbiAgICAgICAgICAgICAgICBsZXQgY29vcmRpbmF0ZSA9IE1hdGgucm91bmQoMTAwMDAgKiAocGFyc2VGbG9hdChtb2xmaWxlLnN1YnN0cmluZyhpbmRleCwgaW5kZXhFbmQpKSArIHRvdGFsU2hpZnQpKSAvIDEwMDAwO1xuICAgICAgICAgICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnNsaWNlKDAsIGluZGV4KSArIGNvb3JkaW5hdGUgKyBtb2xmaWxlLnNsaWNlKGluZGV4RW5kKTtcbiAgICAgICAgICAgICAgICBpbmRleCA9IG1vbGZpbGUuaW5kZXhPZignICcsIGluZGV4KSArIDE7XG4gICAgICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgY29vcmRpbmF0ZSA9IE1hdGgucm91bmQoMTAwMDAgKiAocGFyc2VGbG9hdChtb2xmaWxlLnN1YnN0cmluZyhpbmRleCwgaW5kZXhFbmQpKSkpIC8gMTAwMDA7XG4gICAgICAgICAgICAgICAgbW9sZmlsZSA9IG1vbGZpbGUuc2xpY2UoMCwgaW5kZXgpICsgY29vcmRpbmF0ZSArIG1vbGZpbGUuc2xpY2UoaW5kZXhFbmQpO1xuICAgICAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCdcXG4nLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJ00gIFYzMCcsIGluZGV4KSAtIDE7XG4gICAgICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJ1xcbicsIGluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgbW9sZmlsZSA9IG1vbGZpbGUuc2xpY2UoMCwgaW5kZXgpICsgbW9sZmlsZS5zbGljZShpbmRleEVuZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXhBdG9tc0VuZCA9IG1vbGZpbGUuaW5kZXhPZignTSAgVjMwIEVORCBBVE9NJyk7XG4gICAgICAgIGF0b21CbG9jayArPSBtb2xmaWxlLnN1YnN0cmluZyhpbmRleEF0b21zICsgMSwgaW5kZXhBdG9tc0VuZCk7XG4gICAgICAgIGxldCBpbmRleEJvbmRzID0gbW9sZmlsZS5pbmRleE9mKCdNICBWMzAgQkVHSU4gQk9ORCcpOyAvLyBWMzAwMCBpbmRleCBmb3IgYm9uZHNcbiAgICAgICAgaW5kZXhCb25kcyA9IG1vbGZpbGUuaW5kZXhPZignXFxuJywgaW5kZXhCb25kcyk7XG4gICAgICAgIGluZGV4ID0gaW5kZXhCb25kcztcbiAgICAgICAgaW5kZXhFbmQgPSBpbmRleEJvbmRzO1xuICAgICAgICBsZXQgYm9uZE51bWJlciA9IDA7XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbnVtYmVycy5uYm9uZDsgaisrKSB7XG4gICAgICAgICAgICAvL3Jld3JpdGUgYm9uZCBudW1iZXJcbiAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCdWMzAnLCBpbmRleCkgKyA0O1xuICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgICAgICBib25kTnVtYmVyID0gcGFyc2VJbnQobW9sZmlsZS5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSk7XG4gICAgICAgICAgICBpZiAoYm9uZE51bWJlciA9PSByZW1Cb25kRmlyc3QgfHwgYm9uZE51bWJlciA9PSByZW1Cb25kTGFzdCkge1xuICAgICAgICAgICAgICAgIGluZGV4RW5kID0gbW9sZmlsZS5pbmRleE9mKCdcXG4nLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgICAgIGluZGV4IC09IDc7XG4gICAgICAgICAgICAgICAgbW9sZmlsZSA9IG1vbGZpbGUuc2xpY2UoMCwgaW5kZXgpICsgbW9sZmlsZS5zbGljZShpbmRleEVuZCk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBib25kTnVtYmVyID0gKGJvbmROdW1iZXIgPiByZW1Cb25kRmlyc3QgJiYgYm9uZE51bWJlciA+IHJlbUJvbmRMYXN0KSA/IGJvbmROdW1iZXIgLSAyIDpcbiAgICAgICAgICAgICAgICAoYm9uZE51bWJlciA+IHJlbUJvbmRGaXJzdCB8fCBib25kTnVtYmVyID4gcmVtQm9uZExhc3QpID8gYm9uZE51bWJlciAtIDEgOiBib25kTnVtYmVyO1xuICAgICAgICAgICAgYm9uZE51bWJlciArPSBuYm9uZDtcbiAgICAgICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnNsaWNlKDAsIGluZGV4KSArIGJvbmROdW1iZXIgKyBtb2xmaWxlLnNsaWNlKGluZGV4RW5kKTtcbiAgICAgICAgICAgIC8vcmV3cml0ZSBhdG9tIHBhaXIgaW4gYm9uZFxuICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCkgKyAxO1xuICAgICAgICAgICAgaW5kZXhFbmQgPSBtb2xmaWxlLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgICAgICAgICBsZXQgYXRvbU51bWJlciA9IHBhcnNlSW50KG1vbGZpbGUuc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgICAgICAgICAgYXRvbU51bWJlciA9IChhdG9tTnVtYmVyID4gcmVtRmlyc3QgJiYgYXRvbU51bWJlciA+IHJlbUxhc3QpID8gYXRvbU51bWJlciAtIDIgOlxuICAgICAgICAgICAgICAgIChhdG9tTnVtYmVyID4gcmVtRmlyc3QgfHwgYXRvbU51bWJlciA+IHJlbUxhc3QpID8gYXRvbU51bWJlciAtIDEgOiBhdG9tTnVtYmVyO1xuICAgICAgICAgICAgYXRvbU51bWJlciArPSBuYXRvbTtcbiAgICAgICAgICAgIG1vbGZpbGUgPSBtb2xmaWxlLnNsaWNlKDAsIGluZGV4KSArIGF0b21OdW1iZXIgKyBtb2xmaWxlLnNsaWNlKGluZGV4RW5kKTtcbiAgICAgICAgICAgIGluZGV4ID0gbW9sZmlsZS5pbmRleE9mKCcgJywgaW5kZXgpICsgMTtcbiAgICAgICAgICAgIGluZGV4RW5kID0gTWF0aC5taW4obW9sZmlsZS5pbmRleE9mKCdcXG4nLCBpbmRleCksIG1vbGZpbGUuaW5kZXhPZignICcsIGluZGV4KSk7XG4gICAgICAgICAgICBhdG9tTnVtYmVyID0gcGFyc2VJbnQobW9sZmlsZS5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSk7XG4gICAgICAgICAgICBhdG9tTnVtYmVyID0gKGF0b21OdW1iZXIgPiByZW1GaXJzdCAmJiBhdG9tTnVtYmVyID4gcmVtTGFzdCkgPyBhdG9tTnVtYmVyIC0gMiA6XG4gICAgICAgICAgICAgICAgKGF0b21OdW1iZXIgPiByZW1GaXJzdCB8fCBhdG9tTnVtYmVyID4gcmVtTGFzdCkgPyBhdG9tTnVtYmVyIC0gMSA6IGF0b21OdW1iZXI7XG4gICAgICAgICAgICBhdG9tTnVtYmVyICs9IG5hdG9tO1xuICAgICAgICAgICAgbW9sZmlsZSA9IG1vbGZpbGUuc2xpY2UoMCwgaW5kZXgpICsgYXRvbU51bWJlciArIG1vbGZpbGUuc2xpY2UoaW5kZXhFbmQpO1xuICAgICAgICAgICAgaW5kZXggPSBtb2xmaWxlLmluZGV4T2YoJ1xcbicsIGluZGV4KSArIDE7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5kZXhCb25kRW5kID0gbW9sZmlsZS5pbmRleE9mKCdNICBWMzAgRU5EIEJPTkQnKTtcbiAgICAgICAgYm9uZEJsb2NrICs9IG1vbGZpbGUuc3Vic3RyaW5nKGluZGV4Qm9uZHMgKyAxLCBpbmRleEJvbmRFbmQpO1xuICAgICAgICAvL2xldCBpbmRleENvbGxlY3Rpb24gPSBtb2xmaWxlLmluZGV4T2YoJ00gIFYzMCBNRExWMzAvU1RFQUJTIEFUT01TPSgnKTsgLy8gVjMwMDAgaW5kZXggZm9yIGNvbGxlY3Rpb25zXG4gICAgICAgIC8vIHdoaWxlIChpbmRleENvbGxlY3Rpb24gIT0gLTEpIHtcbiAgICAgICAgLy8gICBpbmRleENvbGxlY3Rpb24gKz0gMjg7XG4gICAgICAgIC8vICAgY29uc3QgY29sbGVjdGlvbkVuZCA9IG1vbGZpbGUuaW5kZXhPZignKScsIGluZGV4Q29sbGVjdGlvbik7XG4gICAgICAgIC8vICAgY29uc3QgY29sbGVjdGlvbkVudHJpZXMgPSBtb2xmaWxlLnN1YnN0cmluZyhpbmRleENvbGxlY3Rpb24sIGNvbGxlY3Rpb25FbmQpLnNwbGl0KCcgJykuc2xpY2UoMSk7XG4gICAgICAgIC8vICAgY29sbGVjdGlvbkVudHJpZXMuZm9yRWFjaCgoZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIC8vICAgICBjb2xsZWN0aW9uLnB1c2gocGFyc2VJbnQoZSkgKyBuYXRvbSk7XG4gICAgICAgIC8vICAgfSk7XG4gICAgICAgIC8vICAgaW5kZXhDb2xsZWN0aW9uID0gY29sbGVjdGlvbkVuZDtcbiAgICAgICAgLy8gICBpbmRleENvbGxlY3Rpb24gPSBtb2xmaWxlLmluZGV4T2YoJ00gIFYzMCBNRExWMzAvU1RFQUJTIEFUT01TPSgnLCBpbmRleENvbGxlY3Rpb24pO1xuICAgICAgICAvLyB9XG4gICAgICAgIG5hdG9tICs9IG51bWJlcnMubmF0b20gLSAyO1xuICAgICAgICBuYm9uZCArPSBudW1iZXJzLm5ib25kIC0gMjtcbiAgICAgICAgeFNoaWZ0ICs9IGNvb3JkaW5hdGVzLnhbbGFzdF0gLSBjb29yZGluYXRlcy54W2ZpcnN0XSArIDE7XG4gICAgICAgIGlmIChpID09IG1vbm9tZXJzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIG5hdG9tKys7XG4gICAgICAgICAgICBjb25zdCBzaGlmdCA9IHhTaGlmdCArIDAuMjtcbiAgICAgICAgICAgIGF0b21CbG9jayArPSAnTSAgVjMwICcgKyBuYXRvbSArICcgTyAnICsgc2hpZnQgKyAnIDAgMC4wMDAwMDAgMFxcbic7XG4gICAgICAgIH1cbiAgICAgICAgbmJvbmQrKztcbiAgICAgICAgaWYgKGkgPT0gbW9ub21lcnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgY29uc3QgcmlnaHRUZXJtaW5hbCA9IChsYXN0ID4gcmVtRmlyc3QgJiYgbGFzdCA+IHJlbUxhc3QpID8gbGFzdCArIG5hdG9tIC0gKG51bWJlcnMubmF0b20gLSAyKSAtIDMgOlxuICAgICAgICAgICAgICAgIChsYXN0ID4gcmVtRmlyc3QgfHwgbGFzdCA+IHJlbUxhc3QpID8gbGFzdCArIG5hdG9tIC0gKG51bWJlcnMubmF0b20gLSAyKSAtIDIgOlxuICAgICAgICAgICAgICAgICAgICBsYXN0ICsgbmF0b20gLSAobnVtYmVycy5uYXRvbSAtIDIpIC0gMTtcbiAgICAgICAgICAgIGJvbmRCbG9jayArPSAnTSAgVjMwICcgKyBuYm9uZCArICcgMSAnICsgcmlnaHRUZXJtaW5hbCArICcgJyArIG5hdG9tICsgJ1xcbic7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCByaWdodFRlcm1pbmFsID0gKGxhc3QgPiByZW1GaXJzdCAmJiBsYXN0ID4gcmVtTGFzdCkgPyBsYXN0ICsgbmF0b20gLSAobnVtYmVycy5uYXRvbSAtIDIpIC0gMiA6XG4gICAgICAgICAgICAgICAgKGxhc3QgPiByZW1GaXJzdCB8fCBsYXN0ID4gcmVtTGFzdCkgPyBsYXN0ICsgbmF0b20gLSAobnVtYmVycy5uYXRvbSAtIDIpIC0gMSA6XG4gICAgICAgICAgICAgICAgICAgIGxhc3QgKyBuYXRvbSAtIChudW1iZXJzLm5hdG9tIC0gMik7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gbW9ub21lcnNbaSArIDFdWydpbmRpY2VzJ107XG4gICAgICAgICAgICBjb25zdCBuZXh0Rmlyc3QgPSBuZXh0WydmaXJzdCddO1xuICAgICAgICAgICAgY29uc3QgbmV4dFJlbUZpcnN0ID0gbmV4dFsncmVtRmlyc3QnXTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRSZW1MYXN0ID0gbmV4dFsncmVtTGFzdCddO1xuICAgICAgICAgICAgY29uc3QgbGVmdFRlcm1pbmFsID0gKG5leHRGaXJzdCA+IG5leHRSZW1GaXJzdCAmJiBuZXh0Rmlyc3QgPiBuZXh0UmVtTGFzdCkgPyBuZXh0Rmlyc3QgKyBuYXRvbSAtIDIgOlxuICAgICAgICAgICAgICAgIChuZXh0Rmlyc3QgPiBuZXh0UmVtRmlyc3QgfHwgbmV4dEZpcnN0ID4gbmV4dFJlbUxhc3QpID8gbmV4dEZpcnN0ICsgbmF0b20gLSAxIDpcbiAgICAgICAgICAgICAgICAgICAgbmV4dEZpcnN0ICsgbmF0b207XG4gICAgICAgICAgICBib25kQmxvY2sgKz0gJ00gIFYzMCAnICsgbmJvbmQgKyAnIDEgJyArIHJpZ2h0VGVybWluYWwgKyAnICcgKyBsZWZ0VGVybWluYWwgKyAnXFxuJztcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBjb25zdCBlbnRyaWVzID0gNDtcbiAgICAvLyBjb25zdCBjb2xsTnVtYmVyID0gTWF0aC5jZWlsKGNvbGxlY3Rpb24ubGVuZ3RoIC8gZW50cmllcyk7XG4gICAgLy8gY29sbGVjdGlvbkJsb2NrICs9ICdNICBWMzAgTURMVjMwL1NURUFCUyBBVE9NUz0oJyArIGNvbGxlY3Rpb24ubGVuZ3RoICsgJyAtXFxuJztcbiAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IGNvbGxOdW1iZXI7IGkrKykge1xuICAgIC8vICAgY29sbGVjdGlvbkJsb2NrICs9ICdNICBWMzAgJztcbiAgICAvLyAgIGNvbnN0IGVudHJpZXNDdXJyZW50ID0gaSArIDEgPT0gY29sbE51bWJlciA/IGNvbGxlY3Rpb24ubGVuZ3RoIC0gKGNvbGxOdW1iZXIgLSAxKSplbnRyaWVzIDogZW50cmllcztcbiAgICAvLyAgIGZvciAobGV0IGogPSAwOyBqIDwgZW50cmllc0N1cnJlbnQ7IGorKykge1xuICAgIC8vICAgICBjb2xsZWN0aW9uQmxvY2sgKz0gKGogKyAxID09IGVudHJpZXNDdXJyZW50KSA/XG4gICAgLy8gICAgICAgKGkgPT0gY29sbE51bWJlciAtIDEgPyBjb2xsZWN0aW9uW2VudHJpZXMqaSArIGpdICsgJylcXG4nIDogY29sbGVjdGlvbltlbnRyaWVzKmkgKyBqXSArICcgLVxcbicpIDpcbiAgICAvLyAgICAgICBjb2xsZWN0aW9uW2VudHJpZXMqaSArIGpdICsgJyAnO1xuICAgIC8vICAgfVxuICAgIC8vIH1cbiAgICAvL2dlbmVyYXRlIGZpbGVcbiAgICBtYWNyb01vbEJsb2NrICs9ICdNICBWMzAgQ09VTlRTICcgKyBuYXRvbSArICcgJyArIG5ib25kICsgJyAwIDAgMFxcbic7XG4gICAgbWFjcm9Nb2xCbG9jayArPSAnTSAgVjMwIEJFR0lOIEFUT01cXG4nO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gYXRvbUJsb2NrO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gJ00gIFYzMCBFTkQgQVRPTVxcbic7XG4gICAgbWFjcm9Nb2xCbG9jayArPSAnTSAgVjMwIEJFR0lOIEJPTkRcXG4nO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gYm9uZEJsb2NrO1xuICAgIG1hY3JvTW9sQmxvY2sgKz0gJ00gIFYzMCBFTkQgQk9ORFxcbic7XG4gICAgLy9tYWNyb01vbEJsb2NrICs9ICdNICBWMzAgQkVHSU4gQ09MTEVDVElPTlxcbic7XG4gICAgLy9tYWNyb01vbEJsb2NrICs9IGNvbGxlY3Rpb25CbG9jaztcbiAgICAvL21hY3JvTW9sQmxvY2sgKz0gJ00gIFYzMCBFTkQgQ09MTEVDVElPTlxcbic7XG4gICAgbWFjcm9Nb2xCbG9jayArPSAnTSAgVjMwIEVORCBDVEFCXFxuJztcbiAgICBtYWNyb01vbEJsb2NrICs9ICdNICBFTkRcXG4nO1xuICAgIHJldHVybiBtYWNyb01vbEJsb2NrO1xufVxuZnVuY3Rpb24gZXh0cmFjdEF0b21zQm9uZHNOdW1iZXJzVjMwMDAobW9sQmxvY2spIHtcbiAgICBtb2xCbG9jayA9IG1vbEJsb2NrLnJlcGxhY2VBbGwoJ1xccicsICcnKTsgLy9lcXVhbGl6ZSBvbGQgYW5kIG5ldyBzZGYgc3RhbmRhcmRzXG4gICAgbGV0IGluZGV4ID0gbW9sQmxvY2suaW5kZXhPZignQ09VTlRTJykgKyA3OyAvLyBWMzAwMCBpbmRleCBmb3IgYXRvbXMgYW5kIGJvbmRzIG51bWJlclxuICAgIGxldCBpbmRleEVuZCA9IG1vbEJsb2NrLmluZGV4T2YoJyAnLCBpbmRleCk7XG4gICAgY29uc3QgYXRvbXNOdW1iZXIgPSBwYXJzZUludChtb2xCbG9jay5zdWJzdHJpbmcoaW5kZXgsIGluZGV4RW5kKSk7XG4gICAgaW5kZXggPSBpbmRleEVuZCArIDE7XG4gICAgaW5kZXhFbmQgPSBtb2xCbG9jay5pbmRleE9mKCcgJywgaW5kZXgpO1xuICAgIGNvbnN0IGJvbmRzTnVtYmVyID0gcGFyc2VJbnQobW9sQmxvY2suc3Vic3RyaW5nKGluZGV4LCBpbmRleEVuZCkpO1xuICAgIHJldHVybiB7IG5hdG9tOiBhdG9tc051bWJlciwgbmJvbmQ6IGJvbmRzTnVtYmVyIH07XG59XG4iLCJpbXBvcnQgKiBhcyBDIGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgeyBBbWlub2FjaWRzUGFsZXR0ZXMgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvYW1pbm9hY2lkcyc7XG5pbXBvcnQgeyBOdWNsZW90aWRlc1BhbGV0dGVzIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL251Y2xlb3RpZGVzJztcbmltcG9ydCB7IFVua25vd25TZXFQYWxldHRlcyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91bmtub3duJztcbmltcG9ydCB7IFdlYkxvZ28gfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdmlld2Vycy93ZWItbG9nbyc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0IHsgcHJpbnRMZWZ0T3JDZW50ZXJlZCwgRHJhd1N0eWxlIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL2NlbGwtcmVuZGVyZXInO1xuaW1wb3J0IHsgVW5pdHNIYW5kbGVyIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL3VuaXRzLWhhbmRsZXInO1xuY29uc3QgdW5kZWZpbmVkQ29sb3IgPSAncmdiKDEwMCwxMDAsMTAwKSc7XG5jb25zdCBtb25vbWVyVG9TaG9ydEZ1bmN0aW9uID0gV2ViTG9nby5tb25vbWVyVG9TaG9ydDtcbmNvbnN0IGdhcFJlbmRlcmVyID0gNTtcbmZ1bmN0aW9uIGdldFBhbGV0dGVCeVR5cGUocGFsZXR0ZVR5cGUpIHtcbiAgICBzd2l0Y2ggKHBhbGV0dGVUeXBlKSB7XG4gICAgICAgIGNhc2UgJ1BUJzpcbiAgICAgICAgICAgIHJldHVybiBBbWlub2FjaWRzUGFsZXR0ZXMuR3Jva0dyb3VwcztcbiAgICAgICAgY2FzZSAnTlQnOlxuICAgICAgICAgICAgcmV0dXJuIE51Y2xlb3RpZGVzUGFsZXR0ZXMuQ2hyb21hdG9ncmFtO1xuICAgICAgICBjYXNlICdETkEnOlxuICAgICAgICAgICAgcmV0dXJuIE51Y2xlb3RpZGVzUGFsZXR0ZXMuQ2hyb21hdG9ncmFtO1xuICAgICAgICBjYXNlICdSTkEnOlxuICAgICAgICAgICAgcmV0dXJuIE51Y2xlb3RpZGVzUGFsZXR0ZXMuQ2hyb21hdG9ncmFtO1xuICAgICAgICAvLyBvdGhlclxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIFVua25vd25TZXFQYWxldHRlcy5Db2xvcjtcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRVcGRhdGVkV2lkdGgoZ3JpZCwgZywgeCwgdykge1xuICAgIHJldHVybiBncmlkID8gTWF0aC5taW4oZ3JpZC5jYW52YXMud2lkdGggLSB4LCB3KSA6IGcuY2FudmFzLndpZHRoIC0geDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZXNzU2VxdWVuY2Uoc3ViUGFydHMpIHtcbiAgICBjb25zdCBzaW1wbGlmaWVkID0gIXN1YlBhcnRzLnNvbWUoKGFtaW5vLCBpbmRleCkgPT4gYW1pbm8ubGVuZ3RoID4gMSAmJlxuICAgICAgICBpbmRleCAhPSAwICYmXG4gICAgICAgIGluZGV4ICE9IHN1YlBhcnRzLmxlbmd0aCAtIDEpO1xuICAgIGNvbnN0IHRleHQgPSBbXTtcbiAgICBjb25zdCBnYXAgPSBzaW1wbGlmaWVkID8gJycgOiAnICc7XG4gICAgc3ViUGFydHMuZm9yRWFjaCgoYW1pbm8sIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChpbmRleCA8IHN1YlBhcnRzLmxlbmd0aClcbiAgICAgICAgICAgIGFtaW5vICs9IGAke2FtaW5vID8gJycgOiAnLSd9JHtnYXB9YDtcbiAgICAgICAgdGV4dC5wdXNoKGFtaW5vKTtcbiAgICB9KTtcbiAgICByZXR1cm4gW3RleHQsIHNpbXBsaWZpZWRdO1xufVxuZXhwb3J0IGNsYXNzIE1hY3JvbW9sZWN1bGVTZXF1ZW5jZUNlbGxSZW5kZXJlciBleHRlbmRzIERHLkdyaWRDZWxsUmVuZGVyZXIge1xuICAgIGdldCBuYW1lKCkgeyByZXR1cm4gJ3NlcXVlbmNlJzsgfVxuICAgIGdldCBjZWxsVHlwZSgpIHsgcmV0dXJuICdzZXF1ZW5jZSc7IH1cbiAgICBnZXQgZGVmYXVsdEhlaWdodCgpIHsgcmV0dXJuIDMwOyB9XG4gICAgZ2V0IGRlZmF1bHRXaWR0aCgpIHsgcmV0dXJuIDIzMDsgfVxuICAgIG9uTW91c2VNb3ZlKGdyaWRDZWxsLCBlKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAoZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFsaWduZWQpICE9PSAnU0VRLk1TQScpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBtYXhMZW5ndGhXb3Jkc1N1bSA9IGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXBbJ2Jpby1zdW0tbWF4TGVuZ3RoV29yZHMnXTtcbiAgICAgICAgY29uc3QgbWF4SW5kZXggPSBncmlkQ2VsbC5jZWxsLmNvbHVtbi50ZW1wWydiaW8tbWF4SW5kZXgnXTtcbiAgICAgICAgY29uc3QgYXJnc1ggPSBlLm9mZnNldFggLSBncmlkQ2VsbC5ncmlkQ29sdW1uLmxlZnQgKyAoZ3JpZENlbGwuZ3JpZENvbHVtbi5sZWZ0IC0gZ3JpZENlbGwuYm91bmRzLngpO1xuICAgICAgICBsZXQgbGVmdCA9IDA7XG4gICAgICAgIGxldCByaWdodCA9IG1heEluZGV4O1xuICAgICAgICBsZXQgZm91bmQgPSBmYWxzZTtcbiAgICAgICAgbWF4TGVuZ3RoV29yZHNTdW1bbWF4SW5kZXggKyAxXSA9IGFyZ3NYICsgMTtcbiAgICAgICAgbGV0IG1pZCA9IDA7XG4gICAgICAgIGlmIChhcmdzWCA+IG1heExlbmd0aFdvcmRzU3VtWzBdKSB7XG4gICAgICAgICAgICB3aGlsZSAoIWZvdW5kKSB7XG4gICAgICAgICAgICAgICAgbWlkID0gTWF0aC5mbG9vcigocmlnaHQgKyBsZWZ0KSAvIDIpO1xuICAgICAgICAgICAgICAgIGlmIChhcmdzWCA+PSBtYXhMZW5ndGhXb3Jkc1N1bVttaWRdICYmIGFyZ3NYIDw9IG1heExlbmd0aFdvcmRzU3VtW21pZCArIDFdKSB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQgPSBtaWQ7XG4gICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnc1ggPCBtYXhMZW5ndGhXb3Jkc1N1bVttaWRdKSB7XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gbWlkIC0gMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoYXJnc1ggPiBtYXhMZW5ndGhXb3Jkc1N1bVttaWQgKyAxXSkge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gbWlkICsgMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGxlZnQgPT0gcmlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsZWZ0ID0gKGFyZ3NYID49IG1heExlbmd0aFdvcmRzU3VtW2xlZnRdKSA/IGxlZnQgKyAxIDogbGVmdDtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gKF9hID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKCdzZXBhcmF0b3InKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJyc7XG4gICAgICAgIGNvbnN0IHNwbGl0dGVyRnVuYyA9IFdlYkxvZ28uZ2V0U3BsaXR0ZXIoJ3NlcGFyYXRvcicsIHNlcGFyYXRvcik7XG4gICAgICAgIGNvbnN0IHN1YlBhcnRzID0gc3BsaXR0ZXJGdW5jKGdyaWRDZWxsLmNlbGwudmFsdWUpO1xuICAgICAgICAoKCgoX2MgPSAoX2IgPSBzdWJQYXJ0c1tsZWZ0XSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmxlbmd0aCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMCkgPiAwKSkgPyB1aS50b29sdGlwLnNob3codWkuZGl2KHN1YlBhcnRzW2xlZnRdKSwgZS54ICsgMTYsIGUueSArIDE2KSA6IHVpLnRvb2x0aXAuaGlkZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDZWxsIHJlbmRlcmVyIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IGcgQ2FudmFzIHJlbmRlcmluZyBjb250ZXh0LlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IHggY29vcmRpbmF0ZSBvbiB0aGUgY2FudmFzLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IHkgY29vcmRpbmF0ZSBvbiB0aGUgY2FudmFzLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB3IHdpZHRoIG9mIHRoZSBjZWxsLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBoIGhlaWdodCBvZiB0aGUgY2VsbC5cbiAgICAgKiBAcGFyYW0ge0RHLkdyaWRDZWxsfSBncmlkQ2VsbCBHcmlkIGNlbGwuXG4gICAgICogQHBhcmFtIHtERy5HcmlkQ2VsbFN0eWxlfSBjZWxsU3R5bGUgQ2VsbCBzdHlsZS5cbiAgICAgKiBAbWVtYmVyb2YgQWxpZ25lZFNlcXVlbmNlQ2VsbFJlbmRlcmVyXG4gICAgICovXG4gICAgcmVuZGVyKGcsIHgsIHksIHcsIGgsIGdyaWRDZWxsLCBjZWxsU3R5bGUpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBncmlkID0gZ3JpZENlbGwuZ3JpZFJvdyAhPT0gLTEgPyBncmlkQ2VsbC5ncmlkIDogbnVsbDtcbiAgICAgICAgY29uc3QgY2VsbCA9IGdyaWRDZWxsLmNlbGw7XG4gICAgICAgIGNvbnN0IHBhbGV0dGVUeXBlID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKEMuVEFHUy5BTFBIQUJFVCk7XG4gICAgICAgIGNvbnN0IG1pbkRpc3RhbmNlUmVuZGVyZXIgPSA1MDtcbiAgICAgICAgdyA9IGdldFVwZGF0ZWRXaWR0aChncmlkLCBnLCB4LCB3KTtcbiAgICAgICAgZy5zYXZlKCk7XG4gICAgICAgIGcuYmVnaW5QYXRoKCk7XG4gICAgICAgIGcucmVjdCh4LCB5LCB3LCBoKTtcbiAgICAgICAgZy5jbGlwKCk7XG4gICAgICAgIGcuZm9udCA9ICcxMnB4IG1vbm9zcGFjZSc7XG4gICAgICAgIGcudGV4dEJhc2VsaW5lID0gJ3RvcCc7XG4gICAgICAgIC8vVE9ETzogY2FuIHRoaXMgYmUgcmVwbGFjZWQvbWVyZ2VkIHdpdGggc3BsaXRTZXF1ZW5jZT9cbiAgICAgICAgY29uc3QgdW5pdHMgPSBncmlkQ2VsbC5jZWxsLmNvbHVtbi5nZXRUYWcoREcuVEFHUy5VTklUUyk7XG4gICAgICAgIGNvbnN0IHBhbGV0dGUgPSBnZXRQYWxldHRlQnlUeXBlKHBhbGV0dGVUeXBlKTtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gKF9hID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKCdzZXBhcmF0b3InKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJyc7XG4gICAgICAgIGNvbnN0IHNwbGl0TGltaXQgPSBncmlkQ2VsbC5ib3VuZHMud2lkdGggLyA1O1xuICAgICAgICBjb25zdCBzcGxpdHRlckZ1bmMgPSBXZWJMb2dvLmdldFNwbGl0dGVyKHVuaXRzLCBzZXBhcmF0b3IsIGdyaWRDZWxsLmJvdW5kcy53aWR0aCAvIDUpO1xuICAgICAgICBjb25zdCBtYXhMZW5ndGhPZk1vbm9tZXIgPSA4O1xuICAgICAgICBsZXQgbWF4TGVuZ3RoV29yZHMgPSB7fTtcbiAgICAgICAgaWYgKGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldFRhZygnLmNhbGN1bGF0ZWRDZWxsUmVuZGVyJykgIT09IHNwbGl0TGltaXQudG9TdHJpbmcoKSkge1xuICAgICAgICAgICAgbGV0IHNhbXBsZXMgPSAwO1xuICAgICAgICAgICAgd2hpbGUgKHNhbXBsZXMgPCBNYXRoLm1pbihncmlkQ2VsbC5jZWxsLmNvbHVtbi5sZW5ndGgsIDEwMCkpIHtcbiAgICAgICAgICAgICAgICBsZXQgY29sdW1uID0gZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0KHNhbXBsZXMpO1xuICAgICAgICAgICAgICAgIGxldCBzdWJQYXJ0cyA9IHNwbGl0dGVyRnVuYyhjb2x1bW4pO1xuICAgICAgICAgICAgICAgIHN1YlBhcnRzLmZvckVhY2goKGFtaW5vLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBsZXQgdGV4dFNpemUgPSBtb25vbWVyVG9TaG9ydEZ1bmN0aW9uKGFtaW5vLCBtYXhMZW5ndGhPZk1vbm9tZXIpLmxlbmd0aCAqIDcgKyBnYXBSZW5kZXJlcjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRleHRTaXplID4gKChfYSA9IG1heExlbmd0aFdvcmRzW2luZGV4XSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heExlbmd0aFdvcmRzW2luZGV4XSA9IHRleHRTaXplO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA+ICgoX2IgPSBtYXhMZW5ndGhXb3Jkc1snYmlvLW1heEluZGV4J10pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhMZW5ndGhXb3Jkc1snYmlvLW1heEluZGV4J10gPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHNhbXBsZXMgKz0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBtaW5MZW5ndGggPSAzICogNztcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IG1heExlbmd0aFdvcmRzWydiaW8tbWF4SW5kZXgnXTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1heExlbmd0aFdvcmRzW2ldIDwgbWluTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIG1heExlbmd0aFdvcmRzW2ldID0gbWluTGVuZ3RoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBtYXhMZW5ndGhXb3JkU3VtID0ge307XG4gICAgICAgICAgICBtYXhMZW5ndGhXb3JkU3VtWzBdID0gbWF4TGVuZ3RoV29yZHNbMF07XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8PSBtYXhMZW5ndGhXb3Jkc1snYmlvLW1heEluZGV4J107IGkrKykge1xuICAgICAgICAgICAgICAgIG1heExlbmd0aFdvcmRTdW1baV0gPSBtYXhMZW5ndGhXb3JkU3VtW2kgLSAxXSArIG1heExlbmd0aFdvcmRzW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZ3JpZENlbGwuY2VsbC5jb2x1bW4udGVtcCA9IHtcbiAgICAgICAgICAgICAgICAnYmlvLXN1bS1tYXhMZW5ndGhXb3Jkcyc6IG1heExlbmd0aFdvcmRTdW0sXG4gICAgICAgICAgICAgICAgJ2Jpby1tYXhJbmRleCc6IG1heExlbmd0aFdvcmRzWydiaW8tbWF4SW5kZXgnXSxcbiAgICAgICAgICAgICAgICAnYmlvLW1heExlbmd0aFdvcmRzJzogbWF4TGVuZ3RoV29yZHNcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBncmlkQ2VsbC5jZWxsLmNvbHVtbi5zZXRUYWcoJy5jYWxjdWxhdGVkQ2VsbFJlbmRlcicsIHNwbGl0TGltaXQudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBtYXhMZW5ndGhXb3JkcyA9IGdyaWRDZWxsLmNlbGwuY29sdW1uLnRlbXBbJ2Jpby1tYXhMZW5ndGhXb3JkcyddO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN1YlBhcnRzID0gc3BsaXR0ZXJGdW5jKGNlbGwudmFsdWUpO1xuICAgICAgICBsZXQgeDEgPSB4O1xuICAgICAgICBsZXQgY29sb3IgPSB1bmRlZmluZWRDb2xvcjtcbiAgICAgICAgbGV0IGRyYXdTdHlsZSA9IERyYXdTdHlsZS5jbGFzc2ljO1xuICAgICAgICBpZiAoZ3JpZENlbGwuY2VsbC5jb2x1bW4uZ2V0VGFnKCdhbGlnbmVkJykuaW5jbHVkZXMoJ01TQScpICYmIGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldFRhZygndW5pdHMnKSA9PT0gJ3NlcGFyYXRvcicpIHtcbiAgICAgICAgICAgIGRyYXdTdHlsZSA9IERyYXdTdHlsZS5NU0E7XG4gICAgICAgIH1cbiAgICAgICAgc3ViUGFydHMuZXZlcnkoKGFtaW5vLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29sb3IgPSBwYWxldHRlLmdldChhbWlubyk7XG4gICAgICAgICAgICBnLmZpbGxTdHlsZSA9IHVuZGVmaW5lZENvbG9yO1xuICAgICAgICAgICAgbGV0IGxhc3QgPSBpbmRleCA9PT0gc3ViUGFydHMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIHgxID0gcHJpbnRMZWZ0T3JDZW50ZXJlZCh4MSwgeSwgdywgaCwgZywgbW9ub21lclRvU2hvcnRGdW5jdGlvbihhbWlubywgbWF4TGVuZ3RoT2ZNb25vbWVyKSwgY29sb3IsIDAsIHRydWUsIDEuMCwgc2VwYXJhdG9yLCBsYXN0LCBkcmF3U3R5bGUsIG1heExlbmd0aFdvcmRzLCBpbmRleCwgZ3JpZENlbGwpO1xuICAgICAgICAgICAgcmV0dXJuIHgxIC0gbWluRGlzdGFuY2VSZW5kZXJlciAtIGdyaWRDZWxsLmdyaWRDb2x1bW4ubGVmdCArIChncmlkQ2VsbC5ncmlkQ29sdW1uLmxlZnQgLSBncmlkQ2VsbC5ib3VuZHMueCkgPD0gZ3JpZENlbGwuYm91bmRzLndpZHRoO1xuICAgICAgICB9KTtcbiAgICAgICAgZy5yZXN0b3JlKCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgTW9ub21lckNlbGxSZW5kZXJlciBleHRlbmRzIERHLkdyaWRDZWxsUmVuZGVyZXIge1xuICAgIGdldCBuYW1lKCkgeyByZXR1cm4gQy5TRU1fVFlQRVMuTU9OT01FUjsgfVxuICAgIGdldCBjZWxsVHlwZSgpIHsgcmV0dXJuIEMuU0VNX1RZUEVTLk1PTk9NRVI7IH1cbiAgICBnZXQgZGVmYXVsdEhlaWdodCgpIHsgcmV0dXJuIDE1OyB9XG4gICAgZ2V0IGRlZmF1bHRXaWR0aCgpIHsgcmV0dXJuIDMwOyB9XG4gICAgLyoqXG4gICAgICogQ2VsbCByZW5kZXJlciBmdW5jdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEfSBnIENhbnZhcyByZW5kZXJpbmcgY29udGV4dC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCB4IGNvb3JkaW5hdGUgb24gdGhlIGNhbnZhcy5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSB5IGNvb3JkaW5hdGUgb24gdGhlIGNhbnZhcy5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gdyB3aWR0aCBvZiB0aGUgY2VsbC5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gaCBoZWlnaHQgb2YgdGhlIGNlbGwuXG4gICAgICogQHBhcmFtIHtERy5HcmlkQ2VsbH0gZ3JpZENlbGwgR3JpZCBjZWxsLlxuICAgICAqIEBwYXJhbSB7REcuR3JpZENlbGxTdHlsZX0gY2VsbFN0eWxlIENlbGwgc3R5bGUuXG4gICAgICovXG4gICAgcmVuZGVyKGcsIHgsIHksIHcsIGgsIGdyaWRDZWxsLCBfY2VsbFN0eWxlKSB7XG4gICAgICAgIGcuZm9udCA9IGAxMnB4IG1vbm9zcGFjZWA7XG4gICAgICAgIGcudGV4dEJhc2VsaW5lID0gJ21pZGRsZSc7XG4gICAgICAgIGcudGV4dEFsaWduID0gJ2NlbnRlcic7XG4gICAgICAgIGNvbnN0IHBhbGV0dGUgPSBnZXRQYWxldHRlQnlUeXBlKGdyaWRDZWxsLmNlbGwuY29sdW1uLmdldFRhZyhDLlRBR1MuQUxQSEFCRVQpKTtcbiAgICAgICAgY29uc3QgcyA9IGdyaWRDZWxsLmNlbGwudmFsdWUgfHwgJy0nO1xuICAgICAgICBjb25zdCBjb2xvciA9IHBhbGV0dGUuZ2V0KHMpO1xuICAgICAgICBnLmZpbGxTdHlsZSA9IGNvbG9yO1xuICAgICAgICBnLmZpbGxUZXh0KHMsIHggKyAodyAvIDIpLCB5ICsgKGggLyAyKSwgdyk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIE1hY3JvbW9sZWN1bGVEaWZmZXJlbmNlQ2VsbFJlbmRlcmVyIGV4dGVuZHMgREcuR3JpZENlbGxSZW5kZXJlciB7XG4gICAgZ2V0IG5hbWUoKSB7IHJldHVybiAnTWFjcm9tb2xlY3VsZURpZmZlcmVuY2VDUic7IH1cbiAgICBnZXQgY2VsbFR5cGUoKSB7IHJldHVybiBDLlNFTV9UWVBFUy5NQUNST01PTEVDVUxFX0RJRkZFUkVOQ0U7IH1cbiAgICBnZXQgZGVmYXVsdEhlaWdodCgpIHsgcmV0dXJuIDMwOyB9XG4gICAgZ2V0IGRlZmF1bHRXaWR0aCgpIHsgcmV0dXJuIDIzMDsgfVxuICAgIC8qKlxuICAgICAqIENlbGwgcmVuZGVyZXIgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRH0gZyBDYW52YXMgcmVuZGVyaW5nIGNvbnRleHQuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHggeCBjb29yZGluYXRlIG9uIHRoZSBjYW52YXMuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHkgeSBjb29yZGluYXRlIG9uIHRoZSBjYW52YXMuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHcgd2lkdGggb2YgdGhlIGNlbGwuXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGggaGVpZ2h0IG9mIHRoZSBjZWxsLlxuICAgICAqIEBwYXJhbSB7REcuR3JpZENlbGx9IGdyaWRDZWxsIEdyaWQgY2VsbC5cbiAgICAgKiBAcGFyYW0ge0RHLkdyaWRDZWxsU3R5bGV9IGNlbGxTdHlsZSBDZWxsIHN0eWxlLlxuICAgICAqIEBtZW1iZXJvZiBBbGlnbmVkU2VxdWVuY2VEaWZmZXJlbmNlQ2VsbFJlbmRlcmVyXG4gICAgICovXG4gICAgcmVuZGVyKGcsIHgsIHksIHcsIGgsIGdyaWRDZWxsLCBfY2VsbFN0eWxlKSB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgZ3JpZCA9IGdyaWRDZWxsLmdyaWQ7XG4gICAgICAgIGNvbnN0IGNlbGwgPSBncmlkQ2VsbC5jZWxsO1xuICAgICAgICBjb25zdCBzID0gKF9hID0gY2VsbC52YWx1ZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJyc7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IGdyaWRDZWxsLnRhYmxlQ29sdW1uLnRhZ3NbQy5UQUdTLlNFUEFSQVRPUl07XG4gICAgICAgIGNvbnN0IHVuaXRzID0gZ3JpZENlbGwudGFibGVDb2x1bW4udGFnc1tERy5UQUdTLlVOSVRTXTtcbiAgICAgICAgdyA9IGdldFVwZGF0ZWRXaWR0aChncmlkLCBnLCB4LCB3KTtcbiAgICAgICAgZHJhd01vbGVjdWxlRGlmZmVyZW5jZU9uQ2FudmFzKGcsIHgsIHksIHcsIGgsIHMsIHVuaXRzLCBzZXBhcmF0b3IpO1xuICAgIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBkcmF3TW9sZWN1bGVEaWZmZXJlbmNlT25DYW52YXMoZywgeCwgeSwgdywgaCwgcywgdW5pdHMsIHNlcGFyYXRvciwgZnVsbFN0cmluZ0xlbmd0aCkge1xuICAgIC8vVE9ETzogY2FuIHRoaXMgYmUgcmVwbGFjZWQvbWVyZ2VkIHdpdGggc3BsaXRTZXF1ZW5jZT9cbiAgICBjb25zdCBbczEsIHMyXSA9IHMuc3BsaXQoJyMnKTtcbiAgICBjb25zdCBzcGxpdHRlciA9IFdlYkxvZ28uZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcGFyYXRvcik7XG4gICAgY29uc3Qgc3ViUGFydHMxID0gc3BsaXR0ZXIoczEpO1xuICAgIGNvbnN0IHN1YlBhcnRzMiA9IHNwbGl0dGVyKHMyKTtcbiAgICBjb25zdCB0ZXh0U2l6ZTEgPSBnLm1lYXN1cmVUZXh0KHByb2Nlc3NTZXF1ZW5jZShzdWJQYXJ0czEpLmpvaW4oJycpKTtcbiAgICBjb25zdCB0ZXh0U2l6ZTIgPSBnLm1lYXN1cmVUZXh0KHByb2Nlc3NTZXF1ZW5jZShzdWJQYXJ0czIpLmpvaW4oJycpKTtcbiAgICBjb25zdCB0ZXh0V2lkdGggPSBNYXRoLm1heCh0ZXh0U2l6ZTEud2lkdGgsIHRleHRTaXplMi53aWR0aCk7XG4gICAgaWYgKGZ1bGxTdHJpbmdMZW5ndGgpIHtcbiAgICAgICAgdyA9IHRleHRXaWR0aCArIHN1YlBhcnRzMS5sZW5ndGggKiA0O1xuICAgICAgICBnLmNhbnZhcy53aWR0aCA9IHRleHRXaWR0aCArIHN1YlBhcnRzMS5sZW5ndGggKiA0O1xuICAgIH1cbiAgICBsZXQgdXBkYXRlZFggPSBNYXRoLm1heCh4LCB4ICsgKHcgLSAodGV4dFdpZHRoICsgc3ViUGFydHMxLmxlbmd0aCAqIDQpKSAvIDIpO1xuICAgIC8vIDI4IGlzIHRoZSBoZWlnaHQgb2YgdGhlIHR3byBzdWJzdGl0dXRpb25zIG9uIHRvcCBvZiBlYWNoIG90aGVyICsgc3BhY2VcbiAgICBjb25zdCB1cGRhdGVkWSA9IE1hdGgubWF4KHksIHkgKyAoaCAtIDI4KSAvIDIpO1xuICAgIGcuc2F2ZSgpO1xuICAgIGcuYmVnaW5QYXRoKCk7XG4gICAgZy5yZWN0KHgsIHksIGZ1bGxTdHJpbmdMZW5ndGggPyB0ZXh0V2lkdGggKyBzdWJQYXJ0czEubGVuZ3RoICogNCA6IHcsIGgpO1xuICAgIGcuY2xpcCgpO1xuICAgIGcuZm9udCA9ICcxMnB4IG1vbm9zcGFjZSc7XG4gICAgZy50ZXh0QmFzZWxpbmUgPSAndG9wJztcbiAgICBsZXQgcGFsZXR0ZSA9IFVua25vd25TZXFQYWxldHRlcy5Db2xvcjtcbiAgICBpZiAodW5pdHMgIT0gJ0hFTE0nKVxuICAgICAgICBwYWxldHRlID0gZ2V0UGFsZXR0ZUJ5VHlwZSh1bml0cy5zdWJzdHJpbmcodW5pdHMubGVuZ3RoIC0gMikpO1xuICAgIGNvbnN0IHZTaGlmdCA9IDc7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdWJQYXJ0czEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgYW1pbm8xID0gc3ViUGFydHMxW2ldO1xuICAgICAgICBjb25zdCBhbWlubzIgPSBzdWJQYXJ0czJbaV07XG4gICAgICAgIGNvbnN0IGNvbG9yMSA9IHBhbGV0dGUuZ2V0KGFtaW5vMSk7XG4gICAgICAgIGlmIChhbWlubzEgIT0gYW1pbm8yKSB7XG4gICAgICAgICAgICBjb25zdCBjb2xvcjIgPSBwYWxldHRlLmdldChhbWlubzIpO1xuICAgICAgICAgICAgY29uc3Qgc3ViWDAgPSBwcmludExlZnRPckNlbnRlcmVkKHVwZGF0ZWRYLCB1cGRhdGVkWSAtIHZTaGlmdCwgdywgaCwgZywgYW1pbm8xLCBjb2xvcjEsIDAsIHRydWUpO1xuICAgICAgICAgICAgY29uc3Qgc3ViWDEgPSBwcmludExlZnRPckNlbnRlcmVkKHVwZGF0ZWRYLCB1cGRhdGVkWSArIHZTaGlmdCwgdywgaCwgZywgYW1pbm8yLCBjb2xvcjIsIDAsIHRydWUpO1xuICAgICAgICAgICAgdXBkYXRlZFggPSBNYXRoLm1heChzdWJYMSwgc3ViWDApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIHVwZGF0ZWRYID0gcHJpbnRMZWZ0T3JDZW50ZXJlZCh1cGRhdGVkWCwgdXBkYXRlZFksIHcsIGgsIGcsIGFtaW5vMSwgY29sb3IxLCAwLCB0cnVlLCAwLjUpO1xuICAgICAgICB1cGRhdGVkWCArPSA0O1xuICAgIH1cbiAgICBnLnJlc3RvcmUoKTtcbn1cbiIsImV4cG9ydCB2YXIgQ09MVU1OU19OQU1FUztcbihmdW5jdGlvbiAoQ09MVU1OU19OQU1FUykge1xuICAgIENPTFVNTlNfTkFNRVNbXCJTUExJVF9DT0xcIl0gPSBcIn5zcGxpdFwiO1xuICAgIENPTFVNTlNfTkFNRVNbXCJBQ1RJVklUWVwiXSA9IFwifmFjdGl2aXR5XCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIkFDVElWSVRZX1NDQUxFRFwiXSA9IFwiYWN0aXZpdHlfc2NhbGVkXCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIkFMSUdORURfU0VRVUVOQ0VcIl0gPSBcIn5hbGlnbmVkX3NlcXVlbmNlXCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIkFNSU5PX0FDSURfUkVTSURVRVwiXSA9IFwiQUFSXCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIlBPU0lUSU9OXCJdID0gXCJQb3NcIjtcbiAgICBDT0xVTU5TX05BTUVTW1wiUF9WQUxVRVwiXSA9IFwicFZhbHVlXCI7XG4gICAgQ09MVU1OU19OQU1FU1tcIk1FQU5fRElGRkVSRU5DRVwiXSA9IFwiTWVhbiBkaWZmZXJlbmNlXCI7XG59KShDT0xVTU5TX05BTUVTIHx8IChDT0xVTU5TX05BTUVTID0ge30pKTtcbmV4cG9ydCB2YXIgVEFHUztcbihmdW5jdGlvbiAoVEFHUykge1xuICAgIFRBR1NbXCJBQVJcIl0gPSBcIkFBUlwiO1xuICAgIFRBR1NbXCJQT1NJVElPTlwiXSA9IFwiUG9zXCI7XG4gICAgVEFHU1tcIlNFUEFSQVRPUlwiXSA9IFwic2VwYXJhdG9yXCI7XG4gICAgVEFHU1tcIlNFTEVDVElPTlwiXSA9IFwic2VsZWN0aW9uXCI7XG4gICAgVEFHU1tcIkFMUEhBQkVUXCJdID0gXCJhbHBoYWJldFwiO1xuICAgIFRBR1NbXCJBTElHTkVEXCJdID0gXCJhbGlnbmVkXCI7XG59KShUQUdTIHx8IChUQUdTID0ge30pKTtcbmV4cG9ydCB2YXIgU0VNX1RZUEVTO1xuKGZ1bmN0aW9uIChTRU1fVFlQRVMpIHtcbiAgICBTRU1fVFlQRVNbXCJNT05PTUVSXCJdID0gXCJNb25vbWVyXCI7XG4gICAgU0VNX1RZUEVTW1wiTUFDUk9NT0xFQ1VMRV9ESUZGRVJFTkNFXCJdID0gXCJNYWNyb21vbGVjdWxlRGlmZmVyZW5jZVwiO1xuICAgIFNFTV9UWVBFU1tcIkFDVElWSVRZXCJdID0gXCJhY3Rpdml0eVwiO1xuICAgIFNFTV9UWVBFU1tcIkFDVElWSVRZX1NDQUxFRFwiXSA9IFwiYWN0aXZpdHlTY2FsZWRcIjtcbiAgICBTRU1fVFlQRVNbXCJNQUNST01PTEVDVUxFXCJdID0gXCJNYWNyb21vbGVjdWxlXCI7XG59KShTRU1fVFlQRVMgfHwgKFNFTV9UWVBFUyA9IHt9KSk7XG5leHBvcnQgY29uc3QgTVNBID0gJ01TQSc7XG5leHBvcnQgY29uc3QgU1RBVFMgPSAnc3RhdHMnO1xuZXhwb3J0IGNvbnN0IEVNQkVERElOR19TVEFUVVMgPSAnZW1iZWRkaW5nU3RhdHVzJztcbmV4cG9ydCBjb25zdCBQRVBUSURFU19BTkFMWVNJUyA9ICdpc1BlcHRpZGVzQW5hbHlzaXMnO1xuZXhwb3J0IHZhciBGTEFHUztcbihmdW5jdGlvbiAoRkxBR1MpIHtcbiAgICBGTEFHU1tcIkNFTExfQ0hBTkdJTkdcIl0gPSBcImlzQ2VsbENoYW5naW5nXCI7XG59KShGTEFHUyB8fCAoRkxBR1MgPSB7fSkpO1xuZXhwb3J0IGNvbnN0IGFhckdyb3VwcyA9IHtcbiAgICAnUic6ICdQQycsICdIJzogJ1BDJywgJ0snOiAnUEMnLFxuICAgICdEJzogJ05DJywgJ0UnOiAnTkMnLFxuICAgICdTJzogJ1UnLCAnVCc6ICdVJywgJ04nOiAnVScsICdRJzogJ1UnLFxuICAgICdDJzogJ1NDJywgJ1UnOiAnU0MnLCAnRyc6ICdTQycsICdQJzogJ1NDJyxcbiAgICAnQSc6ICdIJywgJ1YnOiAnSCcsICdJJzogJ0gnLCAnTCc6ICdIJywgJ00nOiAnSCcsICdGJzogJ0gnLCAnWSc6ICdIJywgJ1cnOiAnSCcsXG4gICAgJy0nOiAnLScsXG59O1xuZXhwb3J0IGNvbnN0IGdyb3VwRGVzY3JpcHRpb24gPSB7XG4gICAgJ1BDJzogeyAnZGVzY3JpcHRpb24nOiAnUG9zaXRpdmUgQW1pbm8gQWNpZHMsIHdpdGggRWxlY3RyaWNhbGx5IENoYXJnZWQgU2lkZSBDaGFpbnMnLCAnYW1pbm9BY2lkcyc6IFsnUicsICdIJywgJ0snXSB9LFxuICAgICdOQyc6IHsgJ2Rlc2NyaXB0aW9uJzogJ05lZ2F0aXZlIEFtaW5vIEFjaWRzLCB3aXRoIEVsZWN0cmljYWxseSBDaGFyZ2VkIFNpZGUgQ2hhaW5zJywgJ2FtaW5vQWNpZHMnOiBbJ0QnLCAnRSddIH0sXG4gICAgJ1UnOiB7ICdkZXNjcmlwdGlvbic6ICdBbWlubyBBY2lkcyB3aXRoIFBvbGFyIFVuY2hhcmdlZCBTaWRlIENoYWlucycsICdhbWlub0FjaWRzJzogWydTJywgJ1QnLCAnTicsICdRJ10gfSxcbiAgICAnU0MnOiB7ICdkZXNjcmlwdGlvbic6ICdTcGVjaWFsIENhc2VzJywgJ2FtaW5vQWNpZHMnOiBbJ0MnLCAnVScsICdHJywgJ1AnXSB9LFxuICAgICdIJzoge1xuICAgICAgICAnZGVzY3JpcHRpb24nOiAnQW1pbm8gQWNpZHMgd2l0aCBIeWRyb3Bob2JpYyBTaWRlIENoYWluJyxcbiAgICAgICAgJ2FtaW5vQWNpZHMnOiBbJ0EnLCAnVicsICdJJywgJ0wnLCAnTScsICdGJywgJ1knLCAnVyddLFxuICAgIH0sXG4gICAgJy0nOiB7ICdkZXNjcmlwdGlvbic6ICdVbmtub3duIEFtaW5vIEFjaWQnLCAnYW1pbm9BY2lkcyc6IFsnLSddIH0sXG59O1xuIiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgJCBmcm9tICdjYXNoLWRvbSc7XG5pbXBvcnQgeyBOb3RhdGlvbkNvbnZlcnRlciB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9ub3RhdGlvbi1jb252ZXJ0ZXInO1xubGV0IGNvbnZlcnREaWFsb2cgPSBudWxsO1xubGV0IGNvbnZlcnREaWFsb2dTdWJzID0gW107XG4vKipcbiAqIENvbnZlcnRzIG5vdGF0aW9ucyBvZiBhIE1hY3JvbW9sZWN1bGUgY29sdW1uXG4gKlxuICogQHBhcmFtIHtERy5jb2x1bW59IGNvbCBDb2x1bW4gd2l0aCAnTWFjcm9tb2xlY3VsZScgc2VtYW50aWMgdHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydChjb2wpIHtcbiAgICBjb25zdCBjb252ZXJ0ZXIgPSBuZXcgTm90YXRpb25Db252ZXJ0ZXIoY29sKTtcbiAgICBjb25zdCBjdXJyZW50Tm90YXRpb24gPSBjb252ZXJ0ZXIubm90YXRpb247XG4gICAgLy9UT0RPOiByZWFkIGFsbCBub3RhdGlvbnNcbiAgICBjb25zdCBub3RhdGlvbnMgPSBbXG4gICAgICAgIFwiZmFzdGFcIiAvKiBOT1RBVElPTi5GQVNUQSAqLyxcbiAgICAgICAgXCJzZXBhcmF0b3JcIiAvKiBOT1RBVElPTi5TRVBBUkFUT1IgKi8sXG4gICAgICAgIFwiaGVsbVwiIC8qIE5PVEFUSU9OLkhFTE0gKi9cbiAgICBdO1xuICAgIGNvbnN0IHNlcGFyYXRvckFycmF5ID0gWyctJywgJy4nLCAnLyddO1xuICAgIGNvbnN0IGZpbHRlcmVkTm90YXRpb25zID0gbm90YXRpb25zLmZpbHRlcigoZSkgPT4gZSAhPT0gY3VycmVudE5vdGF0aW9uKTtcbiAgICBjb25zdCB0YXJnZXROb3RhdGlvbklucHV0ID0gdWkuY2hvaWNlSW5wdXQoJ0NvbnZlcnQgdG8nLCBmaWx0ZXJlZE5vdGF0aW9uc1swXSwgZmlsdGVyZWROb3RhdGlvbnMpO1xuICAgIGNvbnN0IHNlcGFyYXRvcklucHV0ID0gdWkuY2hvaWNlSW5wdXQoJ1NlcGFyYXRvcicsIHNlcGFyYXRvckFycmF5WzBdLCBzZXBhcmF0b3JBcnJheSk7XG4gICAgLy8gaGlkZSB0aGUgc2VwYXJhdG9yIGlucHV0IGZvciBub24tU0VQQVJBVE9SIHRhcmdldCBub3RhdGlvbnNcbiAgICBjb25zdCB0b2dnbGVTZXBhcmF0b3IgPSAoKSA9PiB7XG4gICAgICAgIGlmICh0YXJnZXROb3RhdGlvbklucHV0LnZhbHVlICE9PSBcInNlcGFyYXRvclwiIC8qIE5PVEFUSU9OLlNFUEFSQVRPUiAqLylcbiAgICAgICAgICAgICQoc2VwYXJhdG9ySW5wdXQucm9vdCkuaGlkZSgpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICAkKHNlcGFyYXRvcklucHV0LnJvb3QpLnNob3coKTtcbiAgICB9O1xuICAgIC8vIHNldCBjb3JyZWN0IHZpc2liaWxpdHkgb24gaW5pdFxuICAgIHRvZ2dsZVNlcGFyYXRvcigpO1xuICAgIHRhcmdldE5vdGF0aW9uSW5wdXQub25DaGFuZ2VkKCgpID0+IHtcbiAgICAgICAgdG9nZ2xlU2VwYXJhdG9yKCk7XG4gICAgfSk7XG4gICAgaWYgKGNvbnZlcnREaWFsb2cgPT0gbnVsbCkge1xuICAgICAgICBjb252ZXJ0RGlhbG9nID0gdWkuZGlhbG9nKCdDb252ZXJ0IHNlcXVlbmNlIG5vdGF0aW9uJylcbiAgICAgICAgICAgIC5hZGQodWkuZGl2KFtcbiAgICAgICAgICAgIHVpLmRpdlRleHQoJ0N1cnJlbnQgbm90YXRpb246ICcgKyBjdXJyZW50Tm90YXRpb24sIHtcbiAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICAndGV4dC1hbGlnbic6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAnZm9udC13ZWlnaHQnOiAnYm9sZCcsXG4gICAgICAgICAgICAgICAgICAgICdmb250LXNpemUnOiAnMTRweCcsXG4gICAgICAgICAgICAgICAgICAgICdwYWRkaW5nJzogJzVweCcsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YXJnZXROb3RhdGlvbklucHV0LnJvb3QsXG4gICAgICAgICAgICBzZXBhcmF0b3JJbnB1dC5yb290XG4gICAgICAgIF0pKVxuICAgICAgICAgICAgLm9uT0soKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0Tm90YXRpb24gPSB0YXJnZXROb3RhdGlvbklucHV0LnZhbHVlO1xuICAgICAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gc2VwYXJhdG9ySW5wdXQudmFsdWU7XG4gICAgICAgICAgICB5aWVsZCBjb252ZXJ0RG8oY29sLCB0YXJnZXROb3RhdGlvbiwgc2VwYXJhdG9yKTtcbiAgICAgICAgfSkpXG4gICAgICAgICAgICAuc2hvdyh7IHg6IDM1MCwgeTogMTAwIH0pO1xuICAgICAgICBjb252ZXJ0RGlhbG9nU3Vicy5wdXNoKGNvbnZlcnREaWFsb2cub25DbG9zZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBjb252ZXJ0RGlhbG9nU3Vicy5mb3JFYWNoKChzKSA9PiB7IHMudW5zdWJzY3JpYmUoKTsgfSk7XG4gICAgICAgICAgICBjb252ZXJ0RGlhbG9nU3VicyA9IFtdO1xuICAgICAgICAgICAgY29udmVydERpYWxvZyA9IG51bGw7XG4gICAgICAgIH0pKTtcbiAgICB9XG59XG5leHBvcnQgZnVuY3Rpb24gY29udmVydERvKHNyY0NvbCwgdGFyZ2V0Tm90YXRpb24sIHNlcGFyYXRvcikge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnRlciA9IG5ldyBOb3RhdGlvbkNvbnZlcnRlcihzcmNDb2wpO1xuICAgICAgICBjb25zdCBuZXdDb2x1bW4gPSBjb252ZXJ0ZXIuY29udmVydCh0YXJnZXROb3RhdGlvbiwgc2VwYXJhdG9yKTtcbiAgICAgICAgc3JjQ29sLmRhdGFGcmFtZS5jb2x1bW5zLmFkZChuZXdDb2x1bW4pO1xuICAgICAgICAvLyBjYWxsIHRvIGNhbGN1bGF0ZSAnY2VsbC5yZW5kZXJlcicgdGFnXG4gICAgICAgIHlpZWxkIGdyb2suZGF0YS5kZXRlY3RTZW1hbnRpY1R5cGVzKHNyY0NvbC5kYXRhRnJhbWUpO1xuICAgICAgICByZXR1cm4gbmV3Q29sdW1uO1xuICAgIH0pO1xufVxuIiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgRmFzdGFGaWxlSGFuZGxlciB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9mYXN0YS1oYW5kbGVyJztcbi8vQHRzLWlnbm9yZVxuaW1wb3J0IEFpb2xpIGZyb20gJ0BiaW93YXNtL2Fpb2xpJztcbmltcG9ydCB7IEFsaWduZWRTZXF1ZW5jZUVuY29kZXIgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvc2VxdWVuY2UtZW5jb2Rlcic7XG5pbXBvcnQgeyBVbml0c0hhbmRsZXIgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvdW5pdHMtaGFuZGxlcic7XG4vKipcbiAqIENvbnZlcnRzIGFycmF5IG9mIHNlcXVlbmNlcyBpbnRvIHNpbXBsZSBmYXN0YSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtzdHJpbmdbXX0gc2VxdWVuY2VzIElucHV0IGxpc3Qgb2Ygc2VxdWVuY2VzLlxuICogQHJldHVybiB7c3RyaW5nfSBGYXN0YS1mb3JtYXR0ZWQgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBfc3RyaW5nc1RvRmFzdGEoc2VxdWVuY2VzKSB7XG4gICAgcmV0dXJuIHNlcXVlbmNlcy5yZWR1Y2UoKGEsIHYsIGkpID0+IGEgKyBgPnNhbXBsZSR7aSArIDF9XFxuJHt2fVxcbmAsICcnKTtcbn1cbi8qKlxuICogUnVucyBBaW9saSBlbnZpcm9ubWVudCB3aXRoIGthbGlnbiB0b29sLlxuICpcbiAqIEBwYXJhbSB7REcuQ29sdW1ufSBzcmNDb2wgQ29sdW1uIHdpdGggc2VxdWVuY2VzLlxuICogQHBhcmFtIHtib29sZWFufSBpc0FsaWduZWQgV2hldGhlciB0aGUgY29sdW1uIGlzIGFsaWduZWQuXG4gKiBAcGFyYW0ge3N0cmluZ30gdW5Vc2VkTmFtZVxuICogQHJldHVybiB7UHJvbWlzZTxERy5Db2x1bW4+fSBBbGlnbmVkIHNlcXVlbmNlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bkthbGlnbihzcmNDb2wsIGlzQWxpZ25lZCA9IGZhbHNlLCB1blVzZWROYW1lID0gJycpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBsZXQgc2VxdWVuY2VzID0gc3JjQ29sLnRvTGlzdCgpO1xuICAgICAgICBpZiAoaXNBbGlnbmVkKVxuICAgICAgICAgICAgc2VxdWVuY2VzID0gc2VxdWVuY2VzLm1hcCgodiwgXykgPT4gQWxpZ25lZFNlcXVlbmNlRW5jb2Rlci5jbGVhbih2KS5yZXBsYWNlKC9cXC0vZywgJycpKTtcbiAgICAgICAgY29uc3QgZmFzdGEgPSBfc3RyaW5nc1RvRmFzdGEoc2VxdWVuY2VzKTtcbiAgICAgICAgY29uc3QgQ0xJID0geWllbGQgbmV3IEFpb2xpKHtcbiAgICAgICAgICAgIHRvb2w6ICdrYWxpZ24nLFxuICAgICAgICAgICAgdmVyc2lvbjogJzMuMy4xJyxcbiAgICAgICAgICAgIHJlaW5pdDogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnNvbGUubG9nKFsnZmFzdGEubGVuZ3RoID0nLCBmYXN0YS5sZW5ndGhdKTtcbiAgICAgICAgeWllbGQgQ0xJLmZzLndyaXRlRmlsZSgnaW5wdXQuZmEnLCBmYXN0YSk7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IHlpZWxkIENMSS5leGVjKCdrYWxpZ24gaW5wdXQuZmEgLWYgZmFzdGEgLW8gcmVzdWx0LmZhc3RhJyk7XG4gICAgICAgIGNvbnNvbGUud2FybihvdXRwdXQpO1xuICAgICAgICBjb25zdCBidWYgPSB5aWVsZCBDTEkuY2F0KCdyZXN1bHQuZmFzdGEnKTtcbiAgICAgICAgaWYgKCFidWYpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGthbGlnbiBvdXRwdXQgbm8gcmVzdWx0YCk7XG4gICAgICAgIGNvbnN0IGZmaCA9IG5ldyBGYXN0YUZpbGVIYW5kbGVyKGJ1Zik7XG4gICAgICAgIGNvbnN0IGFsaWduZWQgPSBmZmguc2VxdWVuY2VzQXJyYXk7IC8vIGFycmF5IG9mIHNlcXVlbmNlcyBleHRyYWN0ZWQgZnJvbSBGQVNUQVxuICAgICAgICBjb25zdCB0Z3RDb2wgPSBERy5Db2x1bW4uZnJvbVN0cmluZ3ModW5Vc2VkTmFtZSwgYWxpZ25lZCk7XG4gICAgICAgIC8vIHVuaXRzXG4gICAgICAgIGNvbnN0IHNyY1VuaXRzID0gc3JjQ29sLmdldFRhZyhERy5UQUdTLlVOSVRTKTtcbiAgICAgICAgLy9hbGlnbmVkXG4gICAgICAgIGNvbnN0IHNyY0FsaWduZWQgPSBzcmNDb2wuZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLmFsaWduZWQpO1xuICAgICAgICBjb25zdCB0Z3RBbGlnbmVkID0gc3JjQWxpZ25lZCArICcuTVNBJztcbiAgICAgICAgLy9hbHBoYWJldFxuICAgICAgICBjb25zdCBzcmNBbHBoYWJldCA9IHNyY0NvbC5nZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxwaGFiZXQpO1xuICAgICAgICB0Z3RDb2wuc2V0VGFnKERHLlRBR1MuVU5JVFMsIHNyY1VuaXRzKTtcbiAgICAgICAgdGd0Q29sLnNldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbGlnbmVkLCB0Z3RBbGlnbmVkKTtcbiAgICAgICAgdGd0Q29sLnNldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5hbHBoYWJldCwgc3JjQWxwaGFiZXQpO1xuICAgICAgICB0Z3RDb2wuc2VtVHlwZSA9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRTtcbiAgICAgICAgcmV0dXJuIHRndENvbDtcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0ZXN0TVNBRW5vdWdoTWVtb3J5KGNvbCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHNlcXVlbmNlc0NvdW50ID0gY29sLmxlbmd0aDtcbiAgICAgICAgY29uc3QgZGVsdGEgPSBzZXF1ZW5jZXNDb3VudCAvIDEwMDtcbiAgICAgICAgZm9yIChsZXQgaSA9IGRlbHRhOyBpIDwgc2VxdWVuY2VzQ291bnQ7IGkgKz0gZGVsdGEpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgeWllbGQgcnVuS2FsaWduKERHLkNvbHVtbi5mcm9tU3RyaW5ncyhjb2wubmFtZSwgY29sLnRvTGlzdCgpLnNsaWNlKDAsIE1hdGgucm91bmQoaSkpKSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHJ1bkthbGlnbiBzdWNjZWVkZWQgb24gJHtpfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHJ1bkthbGlnbiBmYWlsZWQgb24gJHtpfSB3aXRoICcke2Vycm9yfSdgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xufVxuIiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCB7IGdldFNpbWlsYXJpdHlGcm9tRGlzdGFuY2UgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL3V0aWxzL3NyYy9zaW1pbGFyaXR5LW1ldHJpY3MnO1xuaW1wb3J0IHsgQXZhaWxhYmxlTWV0cmljcyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvbWwvc3JjL3R5cGVkLW1ldHJpY3MnO1xuaW1wb3J0IHsgVEFHUyB9IGZyb20gJy4uL3V0aWxzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBkcmF3TW9sZWN1bGVEaWZmZXJlbmNlT25DYW52YXMgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXInO1xuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3RhbmNlcyhjb2wsIHNlcSkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHN0cmluZ0FycmF5ID0gY29sLnRvTGlzdCgpO1xuICAgICAgICBjb25zdCBkaXN0YW5jZXMgPSBuZXcgQXJyYXkoc3RyaW5nQXJyYXkubGVuZ3RoKS5maWxsKDApO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0cmluZ0FycmF5Lmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IHN0cmluZ0FycmF5W2ldID8gQXZhaWxhYmxlTWV0cmljc1snU3RyaW5nJ11bJ0xldmVuc2h0ZWluJ10oc3RyaW5nQXJyYXlbaV0sIHNlcSkgOiBudWxsO1xuICAgICAgICAgICAgZGlzdGFuY2VzW2ldID0gZGlzdGFuY2UgPyBkaXN0YW5jZSAvIE1hdGgubWF4KHN0cmluZ0FycmF5W2ldLmxlbmd0aCwgc2VxLmxlbmd0aCkgOiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkaXN0YW5jZXM7XG4gICAgfSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U2ltaWxhcml0aWVzTWFyaXgoZGltLCBzZXFDb2wsIGRmLCBjb2xOYW1lLCBzaW1BcnIpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBkaXN0YW5jZXMgPSBuZXcgQXJyYXkoc2ltQXJyLmxlbmd0aCkuZmlsbChudWxsKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgIT0gZGltIC0gMTsgKytpKSB7XG4gICAgICAgICAgICBjb25zdCBzZXEgPSBzZXFDb2wuZ2V0KGkpO1xuICAgICAgICAgICAgZGYucm93cy5yZW1vdmVBdCgwLCAxLCBmYWxzZSk7XG4gICAgICAgICAgICBkaXN0YW5jZXNbaV0gPSAoeWllbGQgZ2V0RGlzdGFuY2VzKGRmLmNvbChjb2xOYW1lKSwgc2VxKSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaXN0YW5jZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgZGlzdGFuY2VzW2ldLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgZGlzdGFuY2VzW2ldW2pdID0gZ2V0U2ltaWxhcml0eUZyb21EaXN0YW5jZShkaXN0YW5jZXNbaV1bal0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2ltQXJyW2ldID0gREcuQ29sdW1uLmZyb21MaXN0KERHLkNPTFVNTl9UWVBFLkZMT0FULCAnZGlzdGFuY2VzJywgZGlzdGFuY2VzW2ldKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2ltQXJyO1xuICAgIH0pO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRvb2x0aXBFbGVtZW50KHBhcmFtcykge1xuICAgIGNvbnN0IHRvb2x0aXBFbGVtZW50ID0gdWkuZGl2SChbXSk7XG4gICAgY29uc3QgY29sdW1uTmFtZXMgPSB1aS5kaXZWKFtcbiAgICAgICAgdWkuZGl2VGV4dChwYXJhbXMuc2VxQ29sLm5hbWUpLFxuICAgICAgICB1aS5kaXZUZXh0KHBhcmFtcy5hY3Rpdml0eUNvbC5uYW1lKSxcbiAgICBdKTtcbiAgICBjb2x1bW5OYW1lcy5zdHlsZS5mb250V2VpZ2h0ID0gJ2JvbGQnO1xuICAgIGNvbHVtbk5hbWVzLnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XG4gICAgY29sdW1uTmFtZXMuc3R5bGUuanVzdGlmeUNvbnRlbnQgPSAnc3BhY2UtYmV0d2Vlbic7XG4gICAgdG9vbHRpcEVsZW1lbnQuYXBwZW5kKGNvbHVtbk5hbWVzKTtcbiAgICBwYXJhbXMubGluZS5tb2xzLmZvckVhY2goKG1vbElkeCwgaWR4KSA9PiB7XG4gICAgICAgIGNvbnN0IGFjdGl2aXR5ID0gdWkuZGl2VGV4dChwYXJhbXMuYWN0aXZpdHlDb2wuZ2V0KG1vbElkeCkudG9GaXhlZCgyKSk7XG4gICAgICAgIGFjdGl2aXR5LnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XG4gICAgICAgIGFjdGl2aXR5LnN0eWxlLmp1c3RpZnlDb250ZW50ID0gJ2xlZnQnO1xuICAgICAgICBhY3Rpdml0eS5zdHlsZS5wYWRkaW5nTGVmdCA9ICczMHB4JztcbiAgICAgICAgdG9vbHRpcEVsZW1lbnQuYXBwZW5kKHVpLmRpdlYoW1xuICAgICAgICAgICAgdWkuZGl2VGV4dChwYXJhbXMuc2VxQ29sLmdldChtb2xJZHgpKSxcbiAgICAgICAgICAgIGFjdGl2aXR5LFxuICAgICAgICBdKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRvb2x0aXBFbGVtZW50O1xufVxuZnVuY3Rpb24gbW9sZWN1bGVJbmZvKGRmLCBpZHgsIHNlcUNvbE5hbWUpIHtcbiAgICBsZXQgZGljdCA9IHt9O1xuICAgIGZvciAobGV0IGNvbCBvZiBkZi5jb2x1bW5zKSB7XG4gICAgICAgIGlmIChjb2wubmFtZSAhPT0gc2VxQ29sTmFtZSkge1xuICAgICAgICAgICAgZGljdFtjb2wubmFtZV0gPSBkZi5nZXQoY29sLm5hbWUsIGlkeCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVpLnRhYmxlRnJvbU1hcChkaWN0KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcm9wUGFuZWxFbGVtZW50KHBhcmFtcykge1xuICAgIGNvbnN0IHByb3BQYW5lbCA9IHVpLmRpdigpO1xuICAgIHByb3BQYW5lbC5hcHBlbmQodWkuZGl2VGV4dChwYXJhbXMuc2VxQ29sLm5hbWUsIHsgc3R5bGU6IHsgZm9udFdlaWdodDogJ2JvbGQnIH0gfSkpO1xuICAgIGNvbnN0IHNlcXVlbmNlc0FycmF5ID0gbmV3IEFycmF5KDIpO1xuICAgIGNvbnN0IGFjdGl2aXRpZXNBcnJheSA9IG5ldyBBcnJheSgyKTtcbiAgICBwYXJhbXMubGluZS5tb2xzLmZvckVhY2goKG1vbElkeCwgaWR4KSA9PiB7XG4gICAgICAgIHNlcXVlbmNlc0FycmF5W2lkeF0gPSBwYXJhbXMuc2VxQ29sLmdldChtb2xJZHgpO1xuICAgICAgICBhY3Rpdml0aWVzQXJyYXlbaWR4XSA9IHBhcmFtcy5hY3Rpdml0eUNvbC5nZXQobW9sSWR4KTtcbiAgICB9KTtcbiAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgY2FudmFzLmhlaWdodCA9IDMwO1xuICAgIGNvbnN0IHVuaXRzID0gcGFyYW1zLnNlcUNvbC5nZXRUYWcoREcuVEFHUy5VTklUUyk7XG4gICAgY29uc3Qgc2VwYXJhdG9yID0gcGFyYW1zLnNlcUNvbC5nZXRUYWcoVEFHUy5TRVBBUkFUT1IpO1xuICAgIGRyYXdNb2xlY3VsZURpZmZlcmVuY2VPbkNhbnZhcyhjb250ZXh0LCAwLCAwLCAwLCAzMCwgc2VxdWVuY2VzQXJyYXkuam9pbignIycpLCB1bml0cywgc2VwYXJhdG9yLCB0cnVlKTtcbiAgICBwcm9wUGFuZWwuYXBwZW5kKHVpLmRpdihjYW52YXMsIHsgc3R5bGU6IHsgd2lkdGg6ICczMDBweCcsIG92ZXJmbG93OiAnc2Nyb2xsJyB9IH0pKTtcbiAgICBmdW5jdGlvbiBhZGRGaWxlZFRvUHJvcFBhbmVsKG5hbWUsIHZhbHVlKSB7XG4gICAgICAgIHByb3BQYW5lbC5hcHBlbmQodWkuZGl2SChbXG4gICAgICAgICAgICB1aS5kaXZUZXh0KGAke25hbWV9OiBgLCB7IHN0eWxlOiB7IGZvbnRXZWlnaHQ6ICdib2xkJywgcGFkZGluZ1JpZ2h0OiAnNXB4JyB9IH0pLFxuICAgICAgICAgICAgdWkuZGl2VGV4dCh2YWx1ZS50b0ZpeGVkKDIpKVxuICAgICAgICBdLCB7IHN0eWxlOiB7IHBhZGRpbmdUb3A6ICc1cHgnIH0gfSkpO1xuICAgIH1cbiAgICBhZGRGaWxlZFRvUHJvcFBhbmVsKCdBY3Rpdml0eSBkZWx0YScsIE1hdGguYWJzKGFjdGl2aXRpZXNBcnJheVswXSAtIGFjdGl2aXRpZXNBcnJheVsxXSkpO1xuICAgIGFkZEZpbGVkVG9Qcm9wUGFuZWwoJ0NsaWZmJywgcGFyYW1zLnNhbGkpO1xuICAgIHJldHVybiBwcm9wUGFuZWw7XG59XG4iLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgeyByZWR1Y2VEaW1lbnNpbmFsaXR5V2l0aE5vcm1hbGl6YXRpb24gfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy9zZXF1ZW5jZS1zcGFjZSc7XG5leHBvcnQgZnVuY3Rpb24gc2VxdWVuY2VTcGFjZShzcGFjZVBhcmFtcykge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIGNvZGUgZGVwcmVjYXRlZCBzaW5jZSBzZXFDb2wgaXMgZW5jb2RlZFxuICAgICAgICAvKiAgICBsZXQgcHJlcGFyZWREYXRhOiBhbnk7XG4gICAgICAgICAgaWYgKCEoc3BhY2VQYXJhbXMuc2VxQ29sIS50YWdzW0RHLlRBR1MuVU5JVFNdID09PSAnSEVMTScpKSB7XG4gICAgICAgICAgICBjb25zdCBzZXAgPSBzcGFjZVBhcmFtcy5zZXFDb2wuZ2V0VGFnKFVuaXRzSGFuZGxlci5UQUdTLnNlcGFyYXRvcik7XG4gICAgICAgICAgICBjb25zdCBzZXBGaW5hbCA9IHNlcCA/IHNlcCA9PT0gJy4nID8gJ1xcXFxcXC4nIDogc2VwIDogJy0nO1xuICAgICAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKHNlcEZpbmFsLCAnZycpO1xuICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKEF2YWlsYWJsZU1ldHJpY3NbJ1N0cmluZyddKS5pbmNsdWRlcyhzcGFjZVBhcmFtcy5zaW1pbGFyaXR5TWV0cmljKSlcbiAgICAgICAgICAgICAgcHJlcGFyZWREYXRhID0gc3BhY2VQYXJhbXMuc2VxQ29sLnRvTGlzdCgpLm1hcCgodjogc3RyaW5nKSA9PiB2LnJlcGxhY2UocmVnZXgsICcnKSkgYXMgc3RyaW5nW107XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIHByZXBhcmVkRGF0YSA9IHNwYWNlUGFyYW1zLnNlcUNvbC50b0xpc3QoKS5tYXAoKHY6IHN0cmluZykgPT4gdi5yZXBsYWNlKHJlZ2V4LCAnJykpIGFzIHN0cmluZ1tdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcmVwYXJlZERhdGEgPSBzcGFjZVBhcmFtcy5zZXFDb2wudG9MaXN0KCk7XG4gICAgICAgICAgfSAgKi9cbiAgICAgICAgY29uc3Qgc2VxdWVuY2VTcGFjZVJlc3VsdCA9IHlpZWxkIHJlZHVjZURpbWVuc2luYWxpdHlXaXRoTm9ybWFsaXphdGlvbihzcGFjZVBhcmFtcy5zZXFDb2wudG9MaXN0KCksIHNwYWNlUGFyYW1zLm1ldGhvZE5hbWUsIHNwYWNlUGFyYW1zLnNpbWlsYXJpdHlNZXRyaWMsIHNwYWNlUGFyYW1zLm9wdGlvbnMpO1xuICAgICAgICBjb25zdCBjb2xzID0gc3BhY2VQYXJhbXMuZW1iZWRBeGVzTmFtZXMubWFwKChuYW1lLCBpbmRleCkgPT4gREcuQ29sdW1uLmZyb21GbG9hdDMyQXJyYXkobmFtZSwgc2VxdWVuY2VTcGFjZVJlc3VsdC5lbWJlZGRpbmdbaW5kZXhdKSk7XG4gICAgICAgIHJldHVybiB7IGRpc3RhbmNlOiBzZXF1ZW5jZVNwYWNlUmVzdWx0LmRpc3RhbmNlLCBjb29yZGluYXRlczogbmV3IERHLkNvbHVtbkxpc3QoY29scykgfTtcbiAgICB9KTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbWJlZGRpbmdDb2xzTmFtZXMoZGYpIHtcbiAgICBjb25zdCBheGVzID0gWydFbWJlZF9YJywgJ0VtYmVkX1knXTtcbiAgICBjb25zdCBjb2xOYW1lSW5kID0gZGYuY29sdW1ucy5uYW1lcygpLmZpbHRlcigoaXQpID0+IGl0LmluY2x1ZGVzKGF4ZXNbMF0pKS5sZW5ndGggKyAxO1xuICAgIHJldHVybiBheGVzLm1hcCgoaXQpID0+IGAke2l0fV8ke2NvbE5hbWVJbmR9YCk7XG59XG4iLCJpbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgV2ViTG9nbyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy92aWV3ZXJzL3dlYi1sb2dvJztcbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0IHsgQ0FQX0dST1VQX05BTUUsIENBUF9HUk9VUF9TTUlMRVMsIGpzb25TZGZNb25vbWVyTGliRGljdCwgTU9OT01FUl9FTkNPREVfTUFYLCBNT05PTUVSX0VOQ09ERV9NSU4sIE1PTk9NRVJfU1lNQk9MLCBSR1JPVVBfQUxURVJfSUQsIFJHUk9VUF9GSUVMRCwgUkdST1VQX0xBQkVMLCBTREZfTU9OT01FUl9OQU1FIH0gZnJvbSAnLi4vY29uc3QnO1xuaW1wb3J0IHsgVW5pdHNIYW5kbGVyIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL3VuaXRzLWhhbmRsZXInO1xuZXhwb3J0IGNvbnN0IEhFTE1fQ09SRV9MSUJfRklMRU5BTUUgPSAnL3NhbXBsZXMvSEVMTUNvcmVMaWJyYXJ5Lmpzb24nO1xuZXhwb3J0IGNvbnN0IEhFTE1fQ09SRV9MSUJfTU9OT01FUl9TWU1CT0wgPSAnc3ltYm9sJztcbmV4cG9ydCBjb25zdCBIRUxNX0NPUkVfTElCX01PTEZJTEUgPSAnbW9sZmlsZSc7XG5leHBvcnQgY29uc3QgSEVMTV9DT1JFX0ZJRUxEUyA9IFsnc3ltYm9sJywgJ21vbGZpbGUnLCAncmdyb3VwcycsICduYW1lJ107XG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlTW9ub21lcnMoY29sKSB7XG4gICAgbGV0IGVuY29kZVN5bWJvbCA9IE1PTk9NRVJfRU5DT0RFX01JTjtcbiAgICBjb25zdCBtb25vbWVyU3ltYm9sRGljdCA9IHt9O1xuICAgIGNvbnN0IHVuaXRzID0gY29sLnRhZ3NbREcuVEFHUy5VTklUU107XG4gICAgY29uc3Qgc2VwID0gY29sLmdldFRhZyhVbml0c0hhbmRsZXIuVEFHUy5zZXBhcmF0b3IpO1xuICAgIGNvbnN0IHNwbGl0dGVyRnVuYyA9IFdlYkxvZ28uZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcCk7XG4gICAgY29uc3QgZW5jb2RlZFN0cmluZ0FycmF5ID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2wubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgbGV0IGVuY29kZWRNb25vbWVyU3RyID0gJyc7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJzID0gc3BsaXR0ZXJGdW5jKGNvbC5nZXQoaSkpO1xuICAgICAgICBtb25vbWVycy5mb3JFYWNoKChtKSA9PiB7XG4gICAgICAgICAgICBpZiAoIW1vbm9tZXJTeW1ib2xEaWN0W21dKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVuY29kZVN5bWJvbCA+IE1PTk9NRVJfRU5DT0RFX01BWCkge1xuICAgICAgICAgICAgICAgICAgICBncm9rLnNoZWxsLmVycm9yKGBOb3QgZW5vdWdoIHN5bWJvbHMgdG8gZW5jb2RlIG1vbm9tZXJzYCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBtb25vbWVyU3ltYm9sRGljdFttXSA9IGVuY29kZVN5bWJvbDtcbiAgICAgICAgICAgICAgICBlbmNvZGVTeW1ib2wrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVuY29kZWRNb25vbWVyU3RyICs9IFN0cmluZy5mcm9tQ29kZVBvaW50KG1vbm9tZXJTeW1ib2xEaWN0W21dKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGVuY29kZWRTdHJpbmdBcnJheS5wdXNoKGVuY29kZWRNb25vbWVyU3RyKTtcbiAgICB9XG4gICAgcmV0dXJuIERHLkNvbHVtbi5mcm9tU3RyaW5ncygnZW5jb2RlZE1vbGVjdWxlcycsIGVuY29kZWRTdHJpbmdBcnJheSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9sZmlsZXNGcm9tU2VxKGNvbCwgbW9ub21lcnNMaWJPYmplY3QpIHtcbiAgICBjb25zdCB1bml0cyA9IGNvbC50YWdzW0RHLlRBR1MuVU5JVFNdO1xuICAgIGNvbnN0IHNlcCA9IGNvbC5nZXRUYWcoJ3NlcGFyYXRvcicpO1xuICAgIGNvbnN0IHNwbGl0dGVyRnVuYyA9IFdlYkxvZ28uZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcCk7XG4gICAgY29uc3QgbW9ub21lcnNEaWN0ID0gY3JlYXRlTW9tb21lcnNNb2xEaWN0KG1vbm9tZXJzTGliT2JqZWN0KTtcbiAgICBjb25zdCBtb2xGaWxlcyA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGNvbnN0IG1hY3JvTW9sZWN1bGUgPSBjb2wuZ2V0KGkpO1xuICAgICAgICBjb25zdCBtb25vbWVycyA9IHNwbGl0dGVyRnVuYyhtYWNyb01vbGVjdWxlKTtcbiAgICAgICAgY29uc3QgbW9sRmlsZXNGb3JTZXEgPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBtb25vbWVycy5sZW5ndGg7ICsraikge1xuICAgICAgICAgICAgaWYgKG1vbm9tZXJzW2pdKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFtb25vbWVyc0RpY3RbbW9ub21lcnNbal1dKSB7XG4gICAgICAgICAgICAgICAgICAgIGdyb2suc2hlbGwud2FybmluZyhgTW9ub21lciAke21vbm9tZXJzW2pdfSBpcyBtaXNzaW5nIGluIEhFTE0gbGlicmFyeS4gU3RydWN0dXJlIGNhbm5vdCBiZSBjcmVhdGVkYCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBtb2xGaWxlc0ZvclNlcS5wdXNoKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobW9ub21lcnNEaWN0W21vbm9tZXJzW2pdXSkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBtb2xGaWxlcy5wdXNoKG1vbEZpbGVzRm9yU2VxKTtcbiAgICB9XG4gICAgcmV0dXJuIG1vbEZpbGVzO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vbGZpbGVzRnJvbVNpbmdsZVNlcShjZWxsLCBtb25vbWVyc0xpYk9iamVjdCkge1xuICAgIGNvbnN0IHVuaXRzID0gY2VsbC5jb2x1bW4udGFnc1tERy5UQUdTLlVOSVRTXTtcbiAgICBjb25zdCBzZXAgPSBjZWxsLmNvbHVtbi5nZXRUYWcoJ3NlcGFyYXRvcicpO1xuICAgIGNvbnN0IHNwbGl0dGVyRnVuYyA9IFdlYkxvZ28uZ2V0U3BsaXR0ZXIodW5pdHMsIHNlcCk7XG4gICAgY29uc3QgbW9ub21lcnNEaWN0ID0gY3JlYXRlTW9tb21lcnNNb2xEaWN0KG1vbm9tZXJzTGliT2JqZWN0KTtcbiAgICBjb25zdCBtb2xGaWxlcyA9IFtdO1xuICAgIGNvbnN0IG1hY3JvTW9sZWN1bGUgPSBjZWxsLnZhbHVlO1xuICAgIGNvbnN0IG1vbm9tZXJzID0gc3BsaXR0ZXJGdW5jKG1hY3JvTW9sZWN1bGUpO1xuICAgIGNvbnN0IG1vbEZpbGVzRm9yU2VxID0gW107XG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBtb25vbWVycy5sZW5ndGg7ICsraikge1xuICAgICAgICBpZiAobW9ub21lcnNbal0pIHtcbiAgICAgICAgICAgIGlmICghbW9ub21lcnNEaWN0W21vbm9tZXJzW2pdXSkge1xuICAgICAgICAgICAgICAgIGdyb2suc2hlbGwud2FybmluZyhgTW9ub21lciAke21vbm9tZXJzW2pdfSBpcyBtaXNzaW5nIGluIEhFTE0gbGlicmFyeS4gU3RydWN0dXJlIGNhbm5vdCBiZSBjcmVhdGVkYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtb2xGaWxlc0ZvclNlcS5wdXNoKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobW9ub21lcnNEaWN0W21vbm9tZXJzW2pdXSkpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBtb2xGaWxlcy5wdXNoKG1vbEZpbGVzRm9yU2VxKTtcbiAgICByZXR1cm4gbW9sRmlsZXM7XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTW9tb21lcnNNb2xEaWN0KGxpYikge1xuICAgIGNvbnN0IGRpY3QgPSB7fTtcbiAgICBsaWIuZm9yRWFjaCgoaXQpID0+IHtcbiAgICAgICAgaWYgKGl0Wydwb2x5bWVyVHlwZSddID09PSAnUEVQVElERScpIHtcbiAgICAgICAgICAgIGNvbnN0IG1vbm9tZXJPYmplY3QgPSB7fTtcbiAgICAgICAgICAgIEhFTE1fQ09SRV9GSUVMRFMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICBtb25vbWVyT2JqZWN0W2ZpZWxkXSA9IGl0W2ZpZWxkXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZGljdFtpdFtIRUxNX0NPUkVfTElCX01PTk9NRVJfU1lNQk9MXV0gPSBtb25vbWVyT2JqZWN0O1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGRpY3Q7XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSnNvbk1vbm9tZXJMaWJGcm9tU2RmKHRhYmxlKSB7XG4gICAgY29uc3QgcmVzdWx0TGliID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0YWJsZS5yb3dDb3VudDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IG1vbm9tZXIgPSB7fTtcbiAgICAgICAgT2JqZWN0LmtleXMoanNvblNkZk1vbm9tZXJMaWJEaWN0KS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGlmIChrZXkgPT09IE1PTk9NRVJfU1lNQk9MKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbW9ub21lclN5bWJvbCA9IHRhYmxlLmdldChqc29uU2RmTW9ub21lckxpYkRpY3Rba2V5XSwgaSk7XG4gICAgICAgICAgICAgICAgbW9ub21lcltrZXldID0gbW9ub21lclN5bWJvbCA9PT0gJy4nID8gdGFibGUuZ2V0KFNERl9NT05PTUVSX05BTUUsIGkpIDogbW9ub21lclN5bWJvbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGtleSA9PT0gUkdST1VQX0ZJRUxEKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcmdyb3VwcyA9IHRhYmxlLmdldChqc29uU2RmTW9ub21lckxpYkRpY3Rba2V5XSwgaSkuc3BsaXQoJ1xcbicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGpzb25SZ3JvdXBzID0gW107XG4gICAgICAgICAgICAgICAgcmdyb3Vwcy5mb3JFYWNoKChnKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJncm91cCA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhbHRBdG9tID0gZy5zdWJzdHJpbmcoZy5sYXN0SW5kZXhPZignXScpICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhZGljYWxOdW0gPSBnLm1hdGNoKC9cXFtSKFxcZCspXFxdLylbMV07XG4gICAgICAgICAgICAgICAgICAgIHJncm91cFtDQVBfR1JPVVBfU01JTEVTXSA9IGFsdEF0b20gPT09ICdIJyA/IGBbKjoke3JhZGljYWxOdW19XVtIXWAgOiBgT1sqOiR7cmFkaWNhbE51bX1dYDtcbiAgICAgICAgICAgICAgICAgICAgcmdyb3VwW1JHUk9VUF9BTFRFUl9JRF0gPSBhbHRBdG9tID09PSAnSCcgPyBgUiR7cmFkaWNhbE51bX0tSGAgOiBgUiR7cmFkaWNhbE51bX0tT0hgO1xuICAgICAgICAgICAgICAgICAgICByZ3JvdXBbQ0FQX0dST1VQX05BTUVdID0gYWx0QXRvbSA9PT0gJ0gnID8gYEhgIDogYE9IYDtcbiAgICAgICAgICAgICAgICAgICAgcmdyb3VwW1JHUk9VUF9MQUJFTF0gPSBgUiR7cmFkaWNhbE51bX1gO1xuICAgICAgICAgICAgICAgICAgICBqc29uUmdyb3Vwcy5wdXNoKHJncm91cCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbW9ub21lcltrZXldID0ganNvblJncm91cHM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoanNvblNkZk1vbm9tZXJMaWJEaWN0W2tleV0pXG4gICAgICAgICAgICAgICAgICAgIG1vbm9tZXJba2V5XSA9IHRhYmxlLmdldChqc29uU2RmTW9ub21lckxpYkRpY3Rba2V5XSwgaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXN1bHRMaWIucHVzaChtb25vbWVyKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdExpYjtcbn1cbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgeyBWZFJlZ2lvblR5cGUgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdmQtcmVnaW9ucyc7XG5jb25zdCB2cnQgPSBWZFJlZ2lvblR5cGU7XG4vLyBQb3NpdGlvbnMgb2YgcmVnaW9ucyBmb3IgbnVtYmVyaW5nIHNjaGVtZXNcbi8vIGh0dHA6Ly93d3cuYmlvaW5mLm9yZy51ay9hYnMvaW5mby5odG1sXG4vLyBjb25zdCBpbWd0UmVnaW9uczogVmRSZWdpb25bXSA9IFtcbi8vICAgbmV3IFZkUmVnaW9uKHZydC5GUiwgJ0ZSMScsICdMaWdodCcsIDEsICcxJywgJzI2JyksXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuRlIsICdGUjEnLCAnSGVhdnknLCAxLCAnMScsICcyNicpLFxuLy9cbi8vICAgbmV3IFZkUmVnaW9uKHZydC5DRFIsICdDRFIxJywgJ0xpZ2h0JywgMiwgJzI3JywgJzM4JyksIC8vIDI3LTMyXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuQ0RSLCAnQ0RSMScsICdIZWF2eScsIDIsICcyNycsICczOCcpLCAvLyAyNy0zMlxuLy9cbi8vICAgbmV3IFZkUmVnaW9uKHZydC5GUiwgJ0ZSMicsICdMaWdodCcsIDMsICczOScsICc1NScpLFxuLy8gICBuZXcgVmRSZWdpb24odnJ0LkZSLCAnRlIyJywgJ0hlYXZ5JywgMywgJzM5JywgJzU1JyksXG4vL1xuLy8gICBuZXcgVmRSZWdpb24odnJ0LkNEUiwgJ0NEUjInLCAnTGlnaHQnLCA0LCAnNTYnLCAnNjUnKSxcbi8vICAgbmV3IFZkUmVnaW9uKHZydC5DRFIsICdDRFIyJywgJ0hlYXZ5JywgNCwgJzU2JywgJzY1JyksXG4vL1xuLy8gICBuZXcgVmRSZWdpb24odnJ0LkZSLCAnRlIzJywgJ0xpZ2h0JywgNSwgJzY2JywgJzEwNCcpLFxuLy8gICBuZXcgVmRSZWdpb24odnJ0LkZSLCAnRlIzJywgJ0hlYXZ5JywgNSwgJzY2JywgJzEwNCcpLFxuLy9cbi8vICAgbmV3IFZkUmVnaW9uKHZydC5DRFIsICdDRFIzJywgJ0xpZ2h0JywgNiwgJzEwNScsICcxMTcnKSxcbi8vICAgbmV3IFZkUmVnaW9uKHZydC5DRFIsICdDRFIzJywgJ0hlYXZ5JywgNiwgJzEwNScsICcxMTcnKSxcbi8vXG4vLyAgIG5ldyBWZFJlZ2lvbih2cnQuRlIsICdGUjQnLCAnTGlnaHQnLCA3LCAnMTE4JywgbnVsbC8qMTI3Ki8pLFxuLy8gICBuZXcgVmRSZWdpb24odnJ0LkZSLCAnRlI0JywgJ0hlYXZ5JywgNywgJzExOCcsIG51bGwvKjEyOCovKSxcbi8vIF07XG4vKiogVmlld2VyIHdpdGggdGFicyBiYXNlZCBvbiBkZXNjcmlwdGlvbiBvZiBjaGFpbiByZWdpb25zLlxuICogIFVzZWQgdG8gZGVmaW5lIHJlZ2lvbnMgb2YgYW4gaW1tdW5vZ2xvYnVsaW4gTEMuXG4gKi9cbmV4cG9ydCBjbGFzcyBWZFJlZ2lvbnNWaWV3ZXIgZXh0ZW5kcyBERy5Kc1ZpZXdlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIC8vIHByaXZhdGUgcmVnaW9uc0RmOiBERy5EYXRhRnJhbWU7XG4gICAgICAgIHRoaXMucmVnaW9uc0ZnID0gbnVsbDtcbiAgICAgICAgLy8gcHJpdmF0ZSByZWdpb25zVFY6IERHLlRhYmxlVmlldztcbiAgICAgICAgdGhpcy5yZWdpb25zUm9vdCA9IG51bGw7XG4gICAgICAgIHRoaXMuaXNPcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5wYW5lbE5vZGUgPSBudWxsO1xuICAgICAgICB0aGlzLnJlZ2lvbnMgPSBbXTtcbiAgICAgICAgLy8gI3JlZ2lvbiAtLSBIYW5kbGUgY29udHJvbHMnIGV2ZW50cyAtLVxuICAgICAgICB0aGlzLnJlc2l6aW5nID0gZmFsc2U7XG4gICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgLy8jcmVnaW9uIC0tIFZpZXcgLS1cbiAgICAgICAgdGhpcy5ob3N0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5tYWluTGF5b3V0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5sb2dvcyA9IFtdO1xuICAgICAgICAvLyBUbyBwcmV2ZW50IGFtYmlndW91cyBudW1iZXJpbmcgc2NoZW1lIGluIE1MQlxuICAgICAgICB0aGlzLnJlZ2lvblR5cGVzID0gdGhpcy5zdHJpbmdMaXN0KCdyZWdpb25UeXBlcycsIFt2cnQuQ0RSXSwgeyBjaG9pY2VzOiBPYmplY3QudmFsdWVzKHZydCkuZmlsdGVyKCh0KSA9PiB0ICE9IHZydC5Vbmtub3duKSB9KTtcbiAgICAgICAgdGhpcy5jaGFpbnMgPSB0aGlzLnN0cmluZ0xpc3QoJ2NoYWlucycsIFsnSGVhdnknLCAnTGlnaHQnXSwgeyBjaG9pY2VzOiBbJ0hlYXZ5JywgJ0xpZ2h0J10gfSk7XG4gICAgICAgIHRoaXMuc2VxdWVuY2VDb2x1bW5OYW1lUG9zdGZpeCA9IHRoaXMuc3RyaW5nKCdzZXF1ZW5jZUNvbHVtbk5hbWVQb3N0Zml4JywgJ2NoYWluIHNlcXVlbmNlJyk7XG4gICAgICAgIHRoaXMuc2tpcEVtcHR5UG9zaXRpb25zID0gdGhpcy5ib29sKCdza2lwRW1wdHlQb3NpdGlvbnMnLCBmYWxzZSk7XG4gICAgICAgIHRoaXMucG9zaXRpb25XaWR0aCA9IHRoaXMuZmxvYXQoJ3Bvc2l0aW9uV2lkdGgnLCAxNik7XG4gICAgfVxuICAgIGdldCBkZigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YUZyYW1lO1xuICAgIH1cbiAgICAvLyBUT0RPOiAub25UYWJsZUF0dGFjaGVkIGlzIG5vdCBjYWxsaW5nIG9uIGRhdGFGcmFtZSBzZXQsIG9uUHJvcGVydHlDaGFuZ2VkICBhbHNvIG5vdCBjYWxsaW5nXG4gICAgc2V0RGYodmFsdWUsIHJlZ2lvbnMpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1ZkUmVnaW9uc1ZpZXdlci5zZXREZigpJyk7XG4gICAgICAgICAgICB5aWVsZCB0aGlzLmRlc3Ryb3lWaWV3KCk7XG4gICAgICAgICAgICB0aGlzLnJlZ2lvbnMgPSByZWdpb25zO1xuICAgICAgICAgICAgdGhpcy5kYXRhRnJhbWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHlpZWxkIHRoaXMuYnVpbGRWaWV3KCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBpbml0KCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgLy8jcmVnaW9uIHJlZ2lvbnNERiB3aXRoIGZpbHRlclxuICAgICAgICAgICAgLy8gdGhpcy5yZWdpb25zRGYgPSBERy5EYXRhRnJhbWUuZnJvbU9iamVjdHModGhpcy5yZWdpb25zKTtcbiAgICAgICAgICAgIC8vIHRoaXMucmVnaW9uc0RmLnJvd3MuZmlsdGVyKChyb3cpID0+IHJvdy5uYW1lID09ICdDRFIxJyk7XG4gICAgICAgICAgICAvLyAvLyBUbyBhdmFpbGFibGUgb3B0aW9ucyAvXG4gICAgICAgICAgICAvLyB0aGlzLnJlZ2lvbnNGZyA9IChhd2FpdCB0aGlzLnJlZ2lvbnNEZi5wbG90LmZyb21UeXBlKERHLlZJRVdFUi5GSUxURVJTLCB7XG4gICAgICAgICAgICAvLyAgIC8vIGNvbHVtbk5hbWVzOiBbJ25hbWUnLF0sXG4gICAgICAgICAgICAvLyAgIHNob3dGaWx0ZXJDb3VudHNJbmRpY2F0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgIC8vICAgc2hvd0hlYWRlcjogZmFsc2UsXG4gICAgICAgICAgICAvLyAgIHNob3dTZWFyY2hCb3g6IGZhbHNlLFxuICAgICAgICAgICAgLy8gICBmaWx0ZXJzOiBbXG4gICAgICAgICAgICAvLyAgICAge3R5cGU6IERHLkZJTFRFUl9UWVBFLkNBVEVHT1JJQ0FMLCBjb2x1bW46ICd0eXBlJywgbGFiZWw6ICdSZWdpb24gbmFtZScsIHNob3dIaXN0b2dyYW06IGZhbHNlfSxcbiAgICAgICAgICAgIC8vICAgICB7dHlwZTogREcuRklMVEVSX1RZUEUuQ0FURUdPUklDQUwsIGNvbHVtbjogJ25hbWUnLCBsYWJlbDogJ1JlZ2lvbiB0eXBlJywgc2hvd0hpc3RvZ3JhbTogZmFsc2V9LFxuICAgICAgICAgICAgLy8gICBdLFxuICAgICAgICAgICAgLy8gICB0aXRsZTogJ1JlZ2lvbnMgZmlsdGVyJyxcbiAgICAgICAgICAgIC8vICAgc2hvd1RpdGxlOiB0cnVlLFxuICAgICAgICAgICAgLy8gICBkZXNjcmlwdGlvbjogJ0ZpbHRlciBmb3IgcmVnaW9ucyBvZiBtdWx0aXBsZSBhbGlnbm1lbnQgYnkgSU1HVCBub21lbmNsYXR1cmUnLFxuICAgICAgICAgICAgLy8gICBzb21lUHJvcGVydHk6ICdIZWxsbycsXG4gICAgICAgICAgICAvLyB9KSkgYXMgREcuRmlsdGVyR3JvdXA7XG4gICAgICAgICAgICAvLyNlbmRyZWdpb24gcmVnaW9uc0RGIHdpdGggZmlsdGVyXG4gICAgICAgICAgICAvLyB0aGlzLm1sYlZpZXcuZG9ja01hbmFnZXIuZG9jayh0aGlzLnJlZ2lvbnNGZy5yb290LCBERy5ET0NLX1RZUEUuTEVGVCwgcm9vdE5vZGUsICdGaWx0ZXIgcmVnaW9ucycsIDAuMik7XG4gICAgICAgICAgICB0aGlzLnN1YnMucHVzaCh1aS5vblNpemVDaGFuZ2VkKHRoaXMucm9vdCkuc3Vic2NyaWJlKHRoaXMucm9vdE9uU2l6ZUNoYW5nZWQuYmluZCh0aGlzKSkpO1xuICAgICAgICAgICAgLy8gcnhqcy5mcm9tRXZlbnQodGhpcy5yb290LCAnbW91c2Vtb3ZlJykuc3Vic2NyaWJlKHRoaXMub25Nb3VzZU1vdmVSb290LmJpbmQodGhpcykpO1xuICAgICAgICAgICAgdGhpcy5yb290LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25Nb3VzZU1vdmVSb290LmJpbmQodGhpcykpO1xuICAgICAgICAgICAgeWllbGQgdGhpcy5idWlsZFZpZXcoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG9uVGFibGVBdHRhY2hlZCgpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHlpZWxkIHRoaXMuaW5pdCgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgb25Qcm9wZXJ0eUNoYW5nZWQocHJvcGVydHkpIHtcbiAgICAgICAgY29uc3QgX3N1cGVyID0gT2JqZWN0LmNyZWF0ZShudWxsLCB7XG4gICAgICAgICAgICBvblByb3BlcnR5Q2hhbmdlZDogeyBnZXQ6ICgpID0+IHN1cGVyLm9uUHJvcGVydHlDaGFuZ2VkIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBfc3VwZXIub25Qcm9wZXJ0eUNoYW5nZWQuY2FsbCh0aGlzLCBwcm9wZXJ0eSk7XG4gICAgICAgICAgICBpZiAocHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHByb3BlcnR5Lm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncmVnaW9uVHlwZXMnOlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NoYWlucyc6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc2VxdWVuY2VDb2x1bW5OYW1lUG9zdGZpeCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc2tpcEVtcHR5UG9zaXRpb25zJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZvciAobGV0IG9yZGVySSA9IDA7IG9yZGVySSA8IHRoaXMubG9nb3MubGVuZ3RoOyBvcmRlckkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICBmb3IgKGxldCBjaGFpbkkgPSAwOyBjaGFpbkkgPCB0aGlzLmNoYWlucy5sZW5ndGg7IGNoYWluSSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgY29uc3QgY2hhaW46IHN0cmluZyA9IHRoaXMuY2hhaW5zW2NoYWluSV07XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgdGhpcy5sb2dvc1tvcmRlckldW2NoYWluXS5zZXRPcHRpb25zKHtza2lwRW1wdHlQb3NpdGlvbnM6IHRoaXMuc2tpcEVtcHR5UG9zaXRpb25zfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuY2FsY1NpemUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoaXMuZGVzdHJveVZpZXcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoaXMuYnVpbGRWaWV3KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncG9zaXRpb25XaWR0aCc6XG4gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGlzLmRlc3Ryb3lWaWV3KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGlzLmJ1aWxkVmlldygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmVzZXQoKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBvcGVuKG1sYlZpZXcpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc09wZW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNPcGVuZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMucGFuZWxOb2RlID0gbWxiVmlldy5kb2NrTWFuYWdlci5kb2NrKHRoaXMucm9vdCwgREcuRE9DS19UWVBFLlRPUCwgbnVsbCwgJ1JlZ2lvbnMnLCAwLjIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc2hvdyhtbGJWaWV3KSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByb290T25TaXplQ2hhbmdlZChhcmdzKSB7XG4gICAgICAgIHRoaXMuY2FsY1NpemUoKTtcbiAgICB9XG4gICAgZGVzdHJveVZpZXcoKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBVbnN1YnNjcmliZSBmcm9tIGFuZCByZW1vdmUgYWxsIHZpZXcgZWxlbWVudHNcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYFZkUmVnaW9uc1ZpZXdlci5kZXN0cm95VmlldyggbWFpbkxheW91dCA9ICR7IXRoaXMubWFpbkxheW91dCA/ICdub25lJyA6ICd2YWx1ZSd9IClgKTtcbiAgICAgICAgICAgIGlmICh0aGlzLm1haW5MYXlvdXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIC8vIHRoaXMucm9vdC5yZW1vdmVDaGlsZCh0aGlzLmhvc3QpO1xuICAgICAgICAgICAgICAgIHRoaXMubWFpbkxheW91dC5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhvc3QucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLm1haW5MYXlvdXQgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYnVpbGRWaWV3KCkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnVmRSZWdpb25zVmlld2VyLmJ1aWxkVmlldygpIHN0YXJ0Jyk7XG4gICAgICAgICAgICBjb25zdCBjb2xOYW1lcyA9IE9iamVjdC5hc3NpZ24oe30sIC4uLnRoaXMuY2hhaW5zLm1hcCgoY2hhaW4pID0+ICh7IFtjaGFpbl06IGAke2NoYWlufSAke3RoaXMuc2VxdWVuY2VDb2x1bW5OYW1lUG9zdGZpeH1gIH0pKSk7XG4gICAgICAgICAgICBjb25zdCByZWdpb25zRmlsdGVyZWQgPSB0aGlzLnJlZ2lvbnMuZmlsdGVyKChyKSA9PiB0aGlzLnJlZ2lvblR5cGVzLmluY2x1ZGVzKHIudHlwZSkpO1xuICAgICAgICAgICAgY29uc3Qgb3JkZXJMaXN0ID0gQXJyYXkuZnJvbShuZXcgU2V0KHJlZ2lvbnNGaWx0ZXJlZC5tYXAoKHIpID0+IHIub3JkZXIpKSkuc29ydCgpO1xuICAgICAgICAgICAgdGhpcy5sb2dvcyA9IFtdO1xuICAgICAgICAgICAgZm9yIChsZXQgb3JkZXJJID0gMDsgb3JkZXJJIDwgb3JkZXJMaXN0Lmxlbmd0aDsgb3JkZXJJKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWdpb25DaGFpbnMgPSB7fTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoYWluIG9mIHRoaXMuY2hhaW5zKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lvbiA9IHJlZ2lvbnNGaWx0ZXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoKHIpID0+IHIub3JkZXIgPT0gb3JkZXJMaXN0W29yZGVySV0gJiYgci5jaGFpbiA9PSBjaGFpbik7XG4gICAgICAgICAgICAgICAgICAgIHJlZ2lvbkNoYWluc1tjaGFpbl0gPSAoeWllbGQgdGhpcy5kYXRhRnJhbWUucGxvdC5mcm9tVHlwZSgnV2ViTG9nbycsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcXVlbmNlQ29sdW1uTmFtZTogY29sTmFtZXNbY2hhaW5dLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRQb3NpdGlvbk5hbWU6IHJlZ2lvbi5wb3NpdGlvblN0YXJ0TmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZFBvc2l0aW9uTmFtZTogcmVnaW9uLnBvc2l0aW9uRW5kTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpeFdpZHRoOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2tpcEVtcHR5UG9zaXRpb25zOiB0aGlzLnNraXBFbXB0eVBvc2l0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uV2lkdGg6IHRoaXMucG9zaXRpb25XaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBXZWJMb2dvIGNyZWF0aW9uIGZpcmVzIG9uUm9vdFNpemVDaGFuZ2VkIGV2ZW50IGV2ZW4gYmVmb3JlIGNvbnRyb2wgYmVpbmcgYWRkZWQgdG8gdGhpcy5sb2dvc1xuICAgICAgICAgICAgICAgIHRoaXMubG9nb3Nbb3JkZXJJXSA9IHJlZ2lvbkNoYWlucztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHVpLnRhYmxlRnJvbU1hcCgpXG4gICAgICAgICAgICAvLyBERy5IdG1sVGFibGUuY3JlYXRlKClcbiAgICAgICAgICAgIHRoaXMubWFpbkxheW91dCA9IHVpLnRhYmxlKHRoaXMuY2hhaW5zLCAoY2hhaW4pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50cyA9IFtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBjaGFpbiBsYWJlbFxuICAgICAgICAgICAgICAgICAgICAuLi4ob3JkZXJMaXN0Lmxlbmd0aCA+IDAgPyBbdWkuZGl2KGNoYWluLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAncm90YXRlKC05MGRlZyknLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250OiAnMTJweCBSb2JvdG8sIFJvYm90byBMb2NhbCwgc2Fucy1zZXJpZicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTZweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogJzI0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiAnNnB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KV0gOiBbXSksXG4gICAgICAgICAgICAgICAgICAgIC8vIExpc3Qgd2l0aCBjb250cm9scyBmb3IgcmVnaW9uc1xuICAgICAgICAgICAgICAgICAgICAuLi5bLi4uQXJyYXkob3JkZXJMaXN0Lmxlbmd0aCkua2V5cygpXS5tYXAoKG9yZGVySSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2wgPSB0aGlzLmxvZ29zW29yZGVySV1bY2hhaW5dO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2wucm9vdC5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNEaXYgPSB1aS5kaXYoW3dsLnJvb3RdIC8qYCR7Y2hhaW59ICR7cmVnaW9uc0ZpbHRlcmVkW3JJXX1gKi8sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luVG9wOiAnNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiAnNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNEaXY7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudHM7XG4gICAgICAgICAgICB9LCBbJycsIC4uLlsuLi5BcnJheShvcmRlckxpc3QubGVuZ3RoKS5rZXlzKCldLm1hcCgob3JkZXJJKSA9PiByZWdpb25zRmlsdGVyZWQuZmluZCgocikgPT4gci5vcmRlciA9PSBvcmRlckxpc3Rbb3JkZXJJXSAmJiByLmNoYWluID09IHRoaXMuY2hhaW5zWzBdKS5uYW1lIHx8ICdOYW1lJyldKTtcbiAgICAgICAgICAgIHRoaXMubWFpbkxheW91dC5jbGFzc05hbWUgPSAnbWxiLXZkLXJlZ2lvbnMtdmlld2VyLXRhYmxlMic7XG4gICAgICAgICAgICAvLyB0aGlzLm1haW5MYXlvdXQuc3R5bGUuYmFja2dyb3VuZCA9ICcjRUVFRUZGJztcbiAgICAgICAgICAgIC8vIHRoaXMubWFpbkxheW91dC5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XG4gICAgICAgICAgICAvLyB0aGlzLm1haW5MYXlvdXQuc3R5bGUuYm9yZGVyID0gJzFweCBzb2xpZCBibGFjayc7XG4gICAgICAgICAgICBjb25zdCBjb2xvciA9IGAjZmZiYiR7TWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAyNTUpLnRvU3RyaW5nKDE2KX1gO1xuICAgICAgICAgICAgdGhpcy5ob3N0ID0gdWkuYm94KHRoaXMubWFpbkxheW91dCwgeyAvKnN0eWxlOiB7YmFja2dyb3VuZENvbG9yOiBjb2xvcn0qL30pO1xuICAgICAgICAgICAgdGhpcy5yb290LmFwcGVuZENoaWxkKHRoaXMuaG9zdCk7XG4gICAgICAgICAgICB0aGlzLnJvb3Quc3R5bGUub3ZlcmZsb3dYID0gJ2F1dG8nO1xuICAgICAgICAgICAgdGhpcy5jYWxjU2l6ZSgpO1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygnVmRSZWdpb25zVmlld2VyLmJ1aWxkVmlldygpIGVuZCcpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY2FsY1NpemUoKSB7XG4gICAgICAgIGNvbnN0IGxvZ29IZWlnaHQgPSAodGhpcy5yb290LmNsaWVudEhlaWdodCAtIDU0KSAvIHRoaXMuY2hhaW5zLmxlbmd0aDtcbiAgICAgICAgY29uc3QgbWF4SGVpZ2h0ID0gTWF0aC5taW4obG9nb0hlaWdodCwgTWF0aC5tYXgoLi4udGhpcy5sb2dvcy5tYXAoKHdsRGljdCkgPT4gTWF0aC5tYXgoLi4uT2JqZWN0LnZhbHVlcyh3bERpY3QpLm1hcCgod2wpID0+IHdsLm1heEhlaWdodCkpKSkpO1xuICAgICAgICBmb3IgKGxldCBvcmRlckkgPSAwOyBvcmRlckkgPCB0aGlzLmxvZ29zLmxlbmd0aDsgb3JkZXJJKyspIHtcbiAgICAgICAgICAgIGZvciAobGV0IGNoYWluSSA9IDA7IGNoYWluSSA8IHRoaXMuY2hhaW5zLmxlbmd0aDsgY2hhaW5JKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGFpbiA9IHRoaXMuY2hhaW5zW2NoYWluSV07XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dvc1tvcmRlckldW2NoYWluXS5yb290LnN0eWxlLmhlaWdodCA9IGAke21heEhlaWdodH1weGA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8jZW5kcmVnaW9uIC0tIFZpZXcgLS1cbiAgICBvbk1vdXNlTW92ZVJvb3QoZSkge1xuICAgICAgICAvLyB1aS50b29sdGlwLnNob3coJ3RleHQnLCBlLnggKyA4LCBlLnkgKyA4LCk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBvbk1vdXNlTW92ZVJvb3QuKCB4OiAke2UueH0sIHk6ICR7ZS55fSApYCk7XG4gICAgfVxufVxuIiwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHsgZ2V0TW9sZmlsZXNGcm9tU2luZ2xlU2VxIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgZ2V0TWFjcm9Nb2wgfSBmcm9tICcuLi91dGlscy9hdG9taWMtd29ya3MnO1xuLyoqXG4gKiAzRCByZXByZXNlbnRhdGlvbiB3aWRnZXQgb2YgbWFjcm9tb2xlY3VsZS5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAcGFyYW0ge0RHLkNlbGx9IG1hY3JvTW9sZWN1bGUgbWFjcm9tb2xlY3VsZSBjZWxsLlxuICogQHBhcmFtIHthbnlbXX0gbW9ub21lcnNMaWJPYmplY3RcbiAqIEByZXR1cm4ge1Byb21pc2U8REcuV2lkZ2V0Pn0gV2lkZ2V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVwcmVzZW50YXRpb25zV2lkZ2V0KG1hY3JvTW9sZWN1bGUsIG1vbm9tZXJzTGliT2JqZWN0KSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgcGkgPSBERy5UYXNrQmFyUHJvZ3Jlc3NJbmRpY2F0b3IuY3JlYXRlKCdDcmVhdGluZyAzRCB2aWV3Jyk7XG4gICAgICAgIGxldCB3aWRnZXRIb3N0O1xuICAgICAgICBsZXQgbW9sQmxvY2szRCA9ICcnO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhdG9taWNDb2RlcyA9IGdldE1vbGZpbGVzRnJvbVNpbmdsZVNlcShtYWNyb01vbGVjdWxlLCBtb25vbWVyc0xpYk9iamVjdCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgZ2V0TWFjcm9Nb2woYXRvbWljQ29kZXMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vbEJsb2NrMkQgPSByZXN1bHRbMF07XG4gICAgICAgICAgICAgICAgbW9sQmxvY2szRCA9ICh5aWVsZCBncm9rLmZ1bmN0aW9ucy5jYWxsKCdCaW86RW1iZWQnLCB7IG1vbEJsb2NrMkQgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIG1vbEJsb2NrM0QgPSBtb2xCbG9jazNELnJlcGxhY2VBbGwoJ1xcXFxuJywgJ1xcbicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0cmluZ0Jsb2IgPSBuZXcgQmxvYihbbW9sQmxvY2szRF0sIHsgdHlwZTogJ3RleHQvcGxhaW4nIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5nbEhvc3QgPSB1aS5kaXYoW10sIHsgY2xhc3NlczogJ2Q0LW5nbC12aWV3ZXInLCBpZDogJ25nbC0zZC1ob3N0JyB9KTtcbiAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFnZSA9IG5ldyBOR0wuU3RhZ2UobmdsSG9zdCwgeyBiYWNrZ3JvdW5kQ29sb3I6ICd3aGl0ZScgfSk7XG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgICAgICAgICAgc3RhZ2UubG9hZEZpbGUoc3RyaW5nQmxvYiwgeyBleHQ6ICdzZGYnIH0pLnRoZW4oZnVuY3Rpb24gKGNvbXApIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhZ2Uuc2V0U2l6ZSgzMDAsIDMwMCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbXAuYWRkUmVwcmVzZW50YXRpb24oJ2JhbGwrc3RpY2snKTtcbiAgICAgICAgICAgICAgICAgICAgY29tcC5hdXRvVmlldygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNrZXRjaCA9IGdyb2suY2hlbS5zdmdNb2wobW9sQmxvY2szRCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFuZWwgPSB1aS5kaXZIKFtza2V0Y2hdKTtcbiAgICAgICAgICAgICAgICB3aWRnZXRIb3N0ID0gdWkuZGl2KFtwYW5lbCwgbmdsSG9zdF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICB3aWRnZXRIb3N0ID0gdWkuZGl2VGV4dCgnQ291bGRuXFwndCBnZXQgcGVwdGlkZSBzdHJ1Y3R1cmUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgd2lkZ2V0SG9zdCA9IHVpLmRpdlRleHQoJ0NvdWxkblxcJ3QgZ2V0IHBlcHRpZGUgc3RydWN0dXJlJyk7XG4gICAgICAgIH1cbiAgICAgICAgcGkuY2xvc2UoKTtcbiAgICAgICAgcmV0dXJuIG5ldyBERy5XaWRnZXQod2lkZ2V0SG9zdCk7XG4gICAgfSk7XG59XG4iLCJtb2R1bGUuZXhwb3J0cyA9ICQ7IiwibW9kdWxlLmV4cG9ydHMgPSBERzsiLCJtb2R1bGUuZXhwb3J0cyA9IGdyb2s7IiwibW9kdWxlLmV4cG9ydHMgPSByeGpzOyIsIm1vZHVsZS5leHBvcnRzID0gdWk7IiwibW9kdWxlLmV4cG9ydHMgPSB3dTsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuLy8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbl9fd2VicGFja19yZXF1aXJlX18ubSA9IF9fd2VicGFja19tb2R1bGVzX187XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiLy8gVGhpcyBmdW5jdGlvbiBhbGxvdyB0byByZWZlcmVuY2UgYXN5bmMgY2h1bmtzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnUgPSAoY2h1bmtJZCkgPT4ge1xuXHQvLyByZXR1cm4gdXJsIGZvciBmaWxlbmFtZXMgYmFzZWQgb24gdGVtcGxhdGVcblx0cmV0dXJuIFwiXCIgKyBjaHVua0lkICsgXCIuanNcIjtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5nID0gKGZ1bmN0aW9uKCkge1xuXHRpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKSByZXR1cm4gZ2xvYmFsVGhpcztcblx0dHJ5IHtcblx0XHRyZXR1cm4gdGhpcyB8fCBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcblx0fVxufSkoKTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwidmFyIHNjcmlwdFVybDtcbmlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLmcuaW1wb3J0U2NyaXB0cykgc2NyaXB0VXJsID0gX193ZWJwYWNrX3JlcXVpcmVfXy5nLmxvY2F0aW9uICsgXCJcIjtcbnZhciBkb2N1bWVudCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5kb2N1bWVudDtcbmlmICghc2NyaXB0VXJsICYmIGRvY3VtZW50KSB7XG5cdGlmIChkb2N1bWVudC5jdXJyZW50U2NyaXB0KVxuXHRcdHNjcmlwdFVybCA9IGRvY3VtZW50LmN1cnJlbnRTY3JpcHQuc3JjXG5cdGlmICghc2NyaXB0VXJsKSB7XG5cdFx0dmFyIHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcInNjcmlwdFwiKTtcblx0XHRpZihzY3JpcHRzLmxlbmd0aCkgc2NyaXB0VXJsID0gc2NyaXB0c1tzY3JpcHRzLmxlbmd0aCAtIDFdLnNyY1xuXHR9XG59XG4vLyBXaGVuIHN1cHBvcnRpbmcgYnJvd3NlcnMgd2hlcmUgYW4gYXV0b21hdGljIHB1YmxpY1BhdGggaXMgbm90IHN1cHBvcnRlZCB5b3UgbXVzdCBzcGVjaWZ5IGFuIG91dHB1dC5wdWJsaWNQYXRoIG1hbnVhbGx5IHZpYSBjb25maWd1cmF0aW9uXG4vLyBvciBwYXNzIGFuIGVtcHR5IHN0cmluZyAoXCJcIikgYW5kIHNldCB0aGUgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gdmFyaWFibGUgZnJvbSB5b3VyIGNvZGUgdG8gdXNlIHlvdXIgb3duIGxvZ2ljLlxuaWYgKCFzY3JpcHRVcmwpIHRocm93IG5ldyBFcnJvcihcIkF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBicm93c2VyXCIpO1xuc2NyaXB0VXJsID0gc2NyaXB0VXJsLnJlcGxhY2UoLyMuKiQvLCBcIlwiKS5yZXBsYWNlKC9cXD8uKiQvLCBcIlwiKS5yZXBsYWNlKC9cXC9bXlxcL10rJC8sIFwiL1wiKTtcbl9fd2VicGFja19yZXF1aXJlX18ucCA9IHNjcmlwdFVybDsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmIgPSBkb2N1bWVudC5iYXNlVVJJIHx8IHNlbGYubG9jYXRpb24uaHJlZjtcblxuLy8gb2JqZWN0IHRvIHN0b3JlIGxvYWRlZCBhbmQgbG9hZGluZyBjaHVua3Ncbi8vIHVuZGVmaW5lZCA9IGNodW5rIG5vdCBsb2FkZWQsIG51bGwgPSBjaHVuayBwcmVsb2FkZWQvcHJlZmV0Y2hlZFxuLy8gW3Jlc29sdmUsIHJlamVjdCwgUHJvbWlzZV0gPSBjaHVuayBsb2FkaW5nLCAwID0gY2h1bmsgbG9hZGVkXG52YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuXHRcInBhY2thZ2VcIjogMFxufTtcblxuLy8gbm8gY2h1bmsgb24gZGVtYW5kIGxvYWRpbmdcblxuLy8gbm8gcHJlZmV0Y2hpbmdcblxuLy8gbm8gcHJlbG9hZGVkXG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3RcblxuLy8gbm8gb24gY2h1bmtzIGxvYWRlZFxuXG4vLyBubyBqc29ucCBmdW5jdGlvbiIsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuLyogRG8gbm90IGNoYW5nZSB0aGVzZSBpbXBvcnQgbGluZXMgdG8gbWF0Y2ggZXh0ZXJuYWwgbW9kdWxlcyBpbiB3ZWJwYWNrIGNvbmZpZ3VyYXRpb24gKi9cbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5leHBvcnQgY29uc3QgX3BhY2thZ2UgPSBuZXcgREcuUGFja2FnZSgpO1xuaW1wb3J0IHsgTWFjcm9tb2xlY3VsZURpZmZlcmVuY2VDZWxsUmVuZGVyZXIsIE1vbm9tZXJDZWxsUmVuZGVyZXIgfSBmcm9tICcuL3V0aWxzL2NlbGwtcmVuZGVyZXInO1xuaW1wb3J0IHsgV2ViTG9nbyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy92aWV3ZXJzL3dlYi1sb2dvJztcbmltcG9ydCB7IFZkUmVnaW9uc1ZpZXdlciB9IGZyb20gJy4vdmlld2Vycy92ZC1yZWdpb25zLXZpZXdlcic7XG5pbXBvcnQgeyBydW5LYWxpZ24gfSBmcm9tICcuL3V0aWxzL211bHRpcGxlLXNlcXVlbmNlLWFsaWdubWVudCc7XG5pbXBvcnQgeyBTZXF1ZW5jZUFsaWdubWVudCB9IGZyb20gJy4vc2VxX2FsaWduJztcbmltcG9ydCB7IGdldEVtYmVkZGluZ0NvbHNOYW1lcywgc2VxdWVuY2VTcGFjZSB9IGZyb20gJy4vdXRpbHMvc2VxdWVuY2Utc3BhY2UnO1xuaW1wb3J0IHsgZ2V0QWN0aXZpdHlDbGlmZnMgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL21sL3NyYy92aWV3ZXJzL2FjdGl2aXR5LWNsaWZmcyc7XG5pbXBvcnQgeyBjcmVhdGVQcm9wUGFuZWxFbGVtZW50LCBjcmVhdGVUb29sdGlwRWxlbWVudCwgZ2V0U2ltaWxhcml0aWVzTWFyaXggfSBmcm9tICcuL3V0aWxzL3NlcXVlbmNlLWFjdGl2aXR5LWNsaWZmcyc7XG5pbXBvcnQgeyBjcmVhdGVKc29uTW9ub21lckxpYkZyb21TZGYsIGVuY29kZU1vbm9tZXJzLCBnZXRNb2xmaWxlc0Zyb21TZXEsIEhFTE1fQ09SRV9MSUJfRklMRU5BTUUgfSBmcm9tICcuL3V0aWxzL3V0aWxzJztcbmltcG9ydCB7IGdldE1hY3JvTW9sIH0gZnJvbSAnLi91dGlscy9hdG9taWMtd29ya3MnO1xuaW1wb3J0IHsgTWFjcm9tb2xlY3VsZVNlcXVlbmNlQ2VsbFJlbmRlcmVyIH0gZnJvbSAnLi91dGlscy9jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7IGNvbnZlcnQgfSBmcm9tICcuL3V0aWxzL2NvbnZlcnQnO1xuaW1wb3J0IHsgcmVwcmVzZW50YXRpb25zV2lkZ2V0IH0gZnJvbSAnLi93aWRnZXRzL3JlcHJlc2VudGF0aW9ucyc7XG5pbXBvcnQgeyBVbml0c0hhbmRsZXIgfSBmcm9tICdAZGF0YWdyb2stbGlicmFyaWVzL2Jpby9zcmMvdXRpbHMvdW5pdHMtaGFuZGxlcic7XG5pbXBvcnQgeyBGYXN0YUZpbGVIYW5kbGVyIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy9iaW8vc3JjL3V0aWxzL2Zhc3RhLWhhbmRsZXInO1xuaW1wb3J0IHsgcmVtb3ZlRW1wdHlTdHJpbmdSb3dzIH0gZnJvbSAnQGRhdGFncm9rLWxpYnJhcmllcy91dGlscy9zcmMvZGF0YWZyYW1lLXV0aWxzJztcbmltcG9ydCB7IHNwbGl0QWxpZ25lZFNlcXVlbmNlcyB9IGZyb20gJ0BkYXRhZ3Jvay1saWJyYXJpZXMvYmlvL3NyYy91dGlscy9zcGxpdHRlcic7XG5pbXBvcnQgKiBhcyBDIGZyb20gJy4vdXRpbHMvY29uc3RhbnRzJztcbmltcG9ydCB7IGdldEZpbmdlcnByaW50cyB9IGZyb20gJy4vY2FsY3VsYXRpb25zL2ZpbmdlcnByaW50cyc7XG4vL3RhZ3M6IGluaXRcbmV4cG9ydCBmdW5jdGlvbiBpbml0QmlvKCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgfSk7XG59XG4vL25hbWU6IGZhc3RhU2VxdWVuY2VDZWxsUmVuZGVyZXJcbi8vdGFnczogY2VsbFJlbmRlcmVyXG4vL21ldGEuY2VsbFR5cGU6IHNlcXVlbmNlXG4vL21ldGEuY29sdW1uVGFnczogcXVhbGl0eT1NYWNyb21vbGVjdWxlLCB1bml0cz1mYXN0YVxuLy9vdXRwdXQ6IGdyaWRfY2VsbF9yZW5kZXJlciByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiBmYXN0YVNlcXVlbmNlQ2VsbFJlbmRlcmVyKCkge1xuICAgIHJldHVybiBuZXcgTWFjcm9tb2xlY3VsZVNlcXVlbmNlQ2VsbFJlbmRlcmVyKCk7XG59XG4vL25hbWU6IHNlcGFyYXRvclNlcXVlbmNlQ2VsbFJlbmRlcmVyXG4vL3RhZ3M6IGNlbGxSZW5kZXJlclxuLy9tZXRhLmNlbGxUeXBlOiBzZXF1ZW5jZVxuLy9tZXRhLmNvbHVtblRhZ3M6IHF1YWxpdHk9TWFjcm9tb2xlY3VsZSwgdW5pdHM9c2VwYXJhdG9yXG4vL291dHB1dDogZ3JpZF9jZWxsX3JlbmRlcmVyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIHNlcGFyYXRvclNlcXVlbmNlQ2VsbFJlbmRlcmVyKCkge1xuICAgIHJldHVybiBuZXcgTWFjcm9tb2xlY3VsZVNlcXVlbmNlQ2VsbFJlbmRlcmVyKCk7XG59XG5mdW5jdGlvbiBjaGVja0lucHV0Q29sdW1uVWkoY29sLCBuYW1lLCBhbGxvd2VkTm90YXRpb25zID0gW10sIGFsbG93ZWRBbHBoYWJldHMgPSBbXSkge1xuICAgIGNvbnN0IFtyZXMsIG1zZ10gPSBjaGVja0lucHV0Q29sdW1uKGNvbCwgbmFtZSwgYWxsb3dlZE5vdGF0aW9ucywgYWxsb3dlZEFscGhhYmV0cyk7XG4gICAgaWYgKCFyZXMpXG4gICAgICAgIGdyb2suc2hlbGwud2FybmluZyhtc2cpO1xuICAgIHJldHVybiByZXM7XG59XG5leHBvcnQgZnVuY3Rpb24gY2hlY2tJbnB1dENvbHVtbihjb2wsIG5hbWUsIGFsbG93ZWROb3RhdGlvbnMgPSBbXSwgYWxsb3dlZEFscGhhYmV0cyA9IFtdKSB7XG4gICAgbGV0IHJlcyA9IHRydWU7XG4gICAgbGV0IG1zZyA9ICcnO1xuICAgIGNvbnN0IHVoID0gbmV3IFVuaXRzSGFuZGxlcihjb2wpO1xuICAgIGlmIChjb2wuc2VtVHlwZSAhPT0gREcuU0VNVFlQRS5NQUNST01PTEVDVUxFKSB7XG4gICAgICAgIGdyb2suc2hlbGwud2FybmluZyhuYW1lICsgJyBhbmFseXNpcyBpcyBhbGxvd2VkIGZvciBNYWNyb21vbGVjdWxlcyBzZW1hbnRpYyB0eXBlJyk7XG4gICAgICAgIHJlcyA9IGZhbHNlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3Qgbm90YXRpb24gPSB1aC5ub3RhdGlvbjtcbiAgICAgICAgaWYgKGFsbG93ZWROb3RhdGlvbnMubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgIWFsbG93ZWROb3RhdGlvbnMuc29tZSgobikgPT4gbm90YXRpb24udG9VcHBlckNhc2UoKSA9PSAobi50b1VwcGVyQ2FzZSgpKSkpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vdGF0aW9uQWRkID0gYWxsb3dlZE5vdGF0aW9ucy5sZW5ndGggPT0gMCA/ICdhbnkgbm90YXRpb24nIDpcbiAgICAgICAgICAgICAgICAoYG5vdGF0aW9uJHthbGxvd2VkTm90YXRpb25zLmxlbmd0aCA+IDEgPyAncycgOiAnJ30gJHthbGxvd2VkTm90YXRpb25zLm1hcCgobikgPT4gYFwiJHtufVwiYCkuam9pbignLCAnKX0gYCk7XG4gICAgICAgICAgICBtc2cgPSBgJHtuYW1lfSArICcgYW5hbHlzaXMgaXMgYWxsb3dlZCBmb3IgTWFjcm9tb2xlY3VsZXMgd2l0aCBub3RhdGlvbiAke25vdGF0aW9uQWRkfS5gO1xuICAgICAgICAgICAgcmVzID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIXVoLmlzSGVsbSgpKSB7XG4gICAgICAgICAgICAvLyBhbHBoYWJldCBpcyBub3Qgc3BlY2lmaWVkIGZvciAnaGVsbScgbm90YXRpb25cbiAgICAgICAgICAgIGNvbnN0IGFscGhhYmV0ID0gdWguYWxwaGFiZXQ7XG4gICAgICAgICAgICBpZiAoYWxsb3dlZEFscGhhYmV0cy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAgICAgIWFsbG93ZWRBbHBoYWJldHMuc29tZSgoYSkgPT4gYWxwaGFiZXQudG9VcHBlckNhc2UoKSA9PSAoYS50b1VwcGVyQ2FzZSgpKSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhbHBoYWJldEFkZCA9IGFsbG93ZWRBbHBoYWJldHMubGVuZ3RoID09IDAgPyAnYW55IGFscGhhYmV0JyA6XG4gICAgICAgICAgICAgICAgICAgIChgYWxwaGFiZXQke2FsbG93ZWRBbHBoYWJldHMubGVuZ3RoID4gMSA/ICdzJyA6ICcnfSAke2FsbG93ZWRBbHBoYWJldHMubWFwKChhKSA9PiBgXCIke2F9XCJgKS5qb2luKCcsICcpfS5gKTtcbiAgICAgICAgICAgICAgICBtc2cgPSBgJHtuYW1lfSArICcgYW5hbHlzaXMgaXMgYWxsb3dlZCBmb3IgTWFjcm9tb2xlY3VsZXMgd2l0aCBhbHBoYWJldCAke2FscGhhYmV0QWRkfS5gO1xuICAgICAgICAgICAgICAgIHJlcyA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbcmVzLCBtc2ddO1xufVxuLy9uYW1lOiBzZXF1ZW5jZUFsaWdubWVudFxuLy9pbnB1dDogc3RyaW5nIGFsaWduVHlwZSB7Y2hvaWNlczogWydMb2NhbCBhbGlnbm1lbnQnLCAnR2xvYmFsIGFsaWdubWVudCddfVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbi8vaW5wdXQ6IHN0cmluZyBhbGlnblRhYmxlIHtjaG9pY2VzOiBbJ0FVVE8nLCAnTlVDTEVPVElERVMnLCAnQkxPU1VNNDUnLCAnQkxPU1VNNTAnLCdCTE9TVU02MicsJ0JMT1NVTTgwJywnQkxPU1VNOTAnLCdQQU0zMCcsJ1BBTTcwJywnUEFNMjUwJywnU0NITkVJREVSJywnVFJBTlMnXX1cbi8vaW5wdXQ6IGRvdWJsZSBnYXBcbi8vaW5wdXQ6IHN0cmluZyBzZXExXG4vL2lucHV0OiBzdHJpbmcgc2VxMlxuLy9vdXRwdXQ6IG9iamVjdCByZXNcbmV4cG9ydCBmdW5jdGlvbiBzZXF1ZW5jZUFsaWdubWVudChhbGlnblR5cGUsIGFsaWduVGFibGUsIGdhcCwgc2VxMSwgc2VxMikge1xuICAgIGNvbnN0IHRvQWxpZ24gPSBuZXcgU2VxdWVuY2VBbGlnbm1lbnQoc2VxMSwgc2VxMiwgZ2FwLCBhbGlnblRhYmxlKTtcbiAgICBjb25zdCByZXMgPSBhbGlnblR5cGUgPT0gJ0xvY2FsIGFsaWdubWVudCcgPyB0b0FsaWduLnNtaXRoV2F0ZXJtYW4oKSA6IHRvQWxpZ24ubmVlZGxlbWFuV3VuY2goKTtcbiAgICByZXR1cm4gcmVzO1xufVxuLy9uYW1lOiBXZWJMb2dvXG4vL2Rlc2NyaXB0aW9uOiBXZWJMb2dvIHZpZXdlclxuLy90YWdzOiB2aWV3ZXIsIHBhbmVsXG4vL291dHB1dDogdmlld2VyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIHdlYkxvZ29WaWV3ZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBXZWJMb2dvKCk7XG59XG4vL25hbWU6IFZkUmVnaW9uc1xuLy9kZXNjcmlwdGlvbjogVi1Eb21haW4gcmVnaW9ucyB2aWV3ZXJcbi8vdGFnczogdmlld2VyLCBwYW5lbFxuLy9vdXRwdXQ6IHZpZXdlciByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiB2ZFJlZ2lvblZpZXdlcigpIHtcbiAgICByZXR1cm4gbmV3IFZkUmVnaW9uc1ZpZXdlcigpO1xufVxuLy90b3AtbWVudTogQmlvIHwgU2VxdWVuY2UgQWN0aXZpdHkgQ2xpZmZzLi4uXG4vL25hbWU6IFNlcXVlbmNlIEFjdGl2aXR5IENsaWZmc1xuLy9kZXNjcmlwdGlvbjogZGV0ZWN0IGFjdGl2aXR5IGNsaWZmc1xuLy9pbnB1dDogZGF0YWZyYW1lIHRhYmxlIFtJbnB1dCBkYXRhIHRhYmxlXVxuLy9pbnB1dDogY29sdW1uIG1hY3JvTW9sZWN1bGUge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG4vL2lucHV0OiBjb2x1bW4gYWN0aXZpdGllc1xuLy9pbnB1dDogZG91YmxlIHNpbWlsYXJpdHkgPSA4MCBbU2ltaWxhcml0eSBjdXRvZmZdXG4vL2lucHV0OiBzdHJpbmcgbWV0aG9kTmFtZSB7IGNob2ljZXM6W1wiVU1BUFwiLCBcInQtU05FXCIsIFwiU1BFXCJdIH1cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpdml0eUNsaWZmcyhkZiwgbWFjcm9Nb2xlY3VsZSwgYWN0aXZpdGllcywgc2ltaWxhcml0eSwgbWV0aG9kTmFtZSkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmICghY2hlY2tJbnB1dENvbHVtblVpKG1hY3JvTW9sZWN1bGUsICdBY3Rpdml0eSBDbGlmZnMnKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgZW5jb2RlZENvbCA9IGVuY29kZU1vbm9tZXJzKG1hY3JvTW9sZWN1bGUpO1xuICAgICAgICBpZiAoIWVuY29kZWRDb2wpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGF4ZXNOYW1lcyA9IGdldEVtYmVkZGluZ0NvbHNOYW1lcyhkZik7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICAnU1BFJzogeyBjeWNsZXM6IDIwMDAsIGxhbWJkYTogMS4wLCBkbGFtYmRhOiAwLjAwMDUgfSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgdGFncyA9IHtcbiAgICAgICAgICAgICd1bml0cyc6IG1hY3JvTW9sZWN1bGUudGFnc1sndW5pdHMnXSxcbiAgICAgICAgICAgICdhbGlnbmVkJzogbWFjcm9Nb2xlY3VsZS50YWdzWydhbGlnbmVkJ10sXG4gICAgICAgICAgICAnc2VwYXJhdG9yJzogbWFjcm9Nb2xlY3VsZS50YWdzWydzZXBhcmF0b3InXSxcbiAgICAgICAgICAgICdhbHBoYWJldCc6IG1hY3JvTW9sZWN1bGUudGFnc1snYWxwaGFiZXQnXSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgc3AgPSB5aWVsZCBnZXRBY3Rpdml0eUNsaWZmcyhkZiwgbWFjcm9Nb2xlY3VsZSwgZW5jb2RlZENvbCwgYXhlc05hbWVzLCAnQWN0aXZpdHkgY2xpZmZzJywgYWN0aXZpdGllcywgc2ltaWxhcml0eSwgJ0xldmVuc2h0ZWluJywgbWV0aG9kTmFtZSwgREcuU0VNVFlQRS5NQUNST01PTEVDVUxFLCB0YWdzLCBzZXF1ZW5jZVNwYWNlLCBnZXRTaW1pbGFyaXRpZXNNYXJpeCwgY3JlYXRlVG9vbHRpcEVsZW1lbnQsIGNyZWF0ZVByb3BQYW5lbEVsZW1lbnQsIG9wdGlvbnNbbWV0aG9kTmFtZV0pO1xuICAgICAgICByZXR1cm4gc3A7XG4gICAgfSk7XG59XG4vL3RvcC1tZW51OiBCaW8gfCBTZXF1ZW5jZSBTcGFjZS4uLlxuLy9uYW1lOiBTZXF1ZW5jZSBTcGFjZVxuLy9pbnB1dDogZGF0YWZyYW1lIHRhYmxlXG4vL2lucHV0OiBjb2x1bW4gbWFjcm9Nb2xlY3VsZSB7IHNlbVR5cGU6IE1hY3JvbW9sZWN1bGUgfVxuLy9pbnB1dDogc3RyaW5nIG1ldGhvZE5hbWUgeyBjaG9pY2VzOltcIlVNQVBcIiwgXCJ0LVNORVwiLCBcIlNQRVwiXSB9XG4vL2lucHV0OiBzdHJpbmcgc2ltaWxhcml0eU1ldHJpYyB7IGNob2ljZXM6W1wiTGV2ZW5zaHRlaW5cIiwgXCJUYW5pbW90b1wiXSB9XG4vL2lucHV0OiBib29sIHBsb3RFbWJlZGRpbmdzID0gdHJ1ZVxuZXhwb3J0IGZ1bmN0aW9uIHNlcXVlbmNlU3BhY2VUb3BNZW51KHRhYmxlLCBtYWNyb01vbGVjdWxlLCBtZXRob2ROYW1lLCBzaW1pbGFyaXR5TWV0cmljID0gJ0xldmVuc2h0ZWluJywgcGxvdEVtYmVkZGluZ3MpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBpZiAoIWNoZWNrSW5wdXRDb2x1bW5VaShtYWNyb01vbGVjdWxlLCAnQWN0aXZpdHkgQ2xpZmZzJykpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGVuY29kZWRDb2wgPSBlbmNvZGVNb25vbWVycyhtYWNyb01vbGVjdWxlKTtcbiAgICAgICAgaWYgKCFlbmNvZGVkQ29sKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBlbWJlZENvbHNOYW1lcyA9IGdldEVtYmVkZGluZ0NvbHNOYW1lcyh0YWJsZSk7XG4gICAgICAgIGNvbnN0IHdpdGhvdXRFbXB0eVZhbHVlcyA9IERHLkRhdGFGcmFtZS5mcm9tQ29sdW1ucyhbZW5jb2RlZENvbF0pLmNsb25lKCk7XG4gICAgICAgIGNvbnN0IGVtcHR5VmFsc0lkeHMgPSByZW1vdmVFbXB0eVN0cmluZ1Jvd3Mod2l0aG91dEVtcHR5VmFsdWVzLCBlbmNvZGVkQ29sKTtcbiAgICAgICAgY29uc3QgY2hlbVNwYWNlUGFyYW1zID0ge1xuICAgICAgICAgICAgc2VxQ29sOiB3aXRob3V0RW1wdHlWYWx1ZXMuY29sKGVuY29kZWRDb2wubmFtZSksXG4gICAgICAgICAgICBtZXRob2ROYW1lOiBtZXRob2ROYW1lLFxuICAgICAgICAgICAgc2ltaWxhcml0eU1ldHJpYzogc2ltaWxhcml0eU1ldHJpYyxcbiAgICAgICAgICAgIGVtYmVkQXhlc05hbWVzOiBlbWJlZENvbHNOYW1lc1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBzZXF1ZW5jZVNwYWNlUmVzID0geWllbGQgc2VxdWVuY2VTcGFjZShjaGVtU3BhY2VQYXJhbXMpO1xuICAgICAgICBjb25zdCBlbWJlZGRpbmdzID0gc2VxdWVuY2VTcGFjZVJlcy5jb29yZGluYXRlcztcbiAgICAgICAgZm9yIChjb25zdCBjb2wgb2YgZW1iZWRkaW5ncykge1xuICAgICAgICAgICAgY29uc3QgbGlzdFZhbHVlcyA9IGNvbC50b0xpc3QoKTtcbiAgICAgICAgICAgIGVtcHR5VmFsc0lkeHMuZm9yRWFjaCgoaW5kKSA9PiBsaXN0VmFsdWVzLnNwbGljZShpbmQsIDAsIG51bGwpKTtcbiAgICAgICAgICAgIHRhYmxlLmNvbHVtbnMuYWRkKERHLkNvbHVtbi5mcm9tTGlzdCgnZG91YmxlJywgY29sLm5hbWUsIGxpc3RWYWx1ZXMpKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgc3A7XG4gICAgICAgIGlmIChwbG90RW1iZWRkaW5ncykge1xuICAgICAgICAgICAgZm9yIChjb25zdCB2IG9mIGdyb2suc2hlbGwudmlld3MpIHtcbiAgICAgICAgICAgICAgICBpZiAodi5uYW1lID09PSB0YWJsZS5uYW1lKVxuICAgICAgICAgICAgICAgICAgICBzcCA9IHYuc2NhdHRlclBsb3QoeyB4OiBlbWJlZENvbHNOYW1lc1swXSwgeTogZW1iZWRDb2xzTmFtZXNbMV0sIHRpdGxlOiAnU2VxdWVuY2Ugc3BhY2UnIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzcDtcbiAgICB9KTtcbn1cbjtcbi8vdG9wLW1lbnU6IEJpbyB8IFRvIEF0b21pYyBMZXZlbC4uLlxuLy9uYW1lOiBUbyBBdG9taWMgTGV2ZWxcbi8vZGVzY3JpcHRpb246IHJldHVybnMgbW9sZmlsZXMgZm9yIGVhY2ggbW9ub21lciBmcm9tIEhFTE0gbGlicmFyeVxuLy9pbnB1dDogZGF0YWZyYW1lIGRmIFtJbnB1dCBkYXRhIHRhYmxlXVxuLy9pbnB1dDogY29sdW1uIG1hY3JvTW9sZWN1bGUge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG5leHBvcnQgZnVuY3Rpb24gdG9BdG9taWNMZXZlbChkZiwgbWFjcm9Nb2xlY3VsZSkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmIChERy5GdW5jLmZpbmQoeyBwYWNrYWdlOiAnQ2hlbScsIG5hbWU6ICdnZXRSZEtpdE1vZHVsZScgfSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBncm9rLnNoZWxsLndhcm5pbmcoJ1RyYW5zZm9ybWF0aW9uIHRvIGF0b21pYyBsZXZlbCByZXF1aXJlcyBwYWNrYWdlIFwiQ2hlbVwiIGluc3RhbGxlZC4nKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNoZWNrSW5wdXRDb2x1bW5VaShtYWNyb01vbGVjdWxlLCAnVG8gQXRvbWljIExldmVsJykpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG1vbm9tZXJzTGliRmlsZSA9IHlpZWxkIF9wYWNrYWdlLmZpbGVzLnJlYWRBc1RleHQoSEVMTV9DT1JFX0xJQl9GSUxFTkFNRSk7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJzTGliT2JqZWN0ID0gSlNPTi5wYXJzZShtb25vbWVyc0xpYkZpbGUpO1xuICAgICAgICBjb25zdCBhdG9taWNDb2RlcyA9IGdldE1vbGZpbGVzRnJvbVNlcShtYWNyb01vbGVjdWxlLCBtb25vbWVyc0xpYk9iamVjdCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIGdldE1hY3JvTW9sKGF0b21pY0NvZGVzKTtcbiAgICAgICAgY29uc3QgY29sID0gREcuQ29sdW1uLmZyb21TdHJpbmdzKCdyZWdlbmVyYXRlZCcsIHJlc3VsdCk7XG4gICAgICAgIGNvbC5zZW1UeXBlID0gREcuU0VNVFlQRS5NT0xFQ1VMRTtcbiAgICAgICAgY29sLnRhZ3NbREcuVEFHUy5VTklUU10gPSAnbW9sYmxvY2snO1xuICAgICAgICBkZi5jb2x1bW5zLmFkZChjb2wsIHRydWUpO1xuICAgICAgICB5aWVsZCBncm9rLmRhdGEuZGV0ZWN0U2VtYW50aWNUeXBlcyhkZik7XG4gICAgfSk7XG59XG4vL3RvcC1tZW51OiBCaW8gfCBNU0EuLi5cbi8vbmFtZTogTVNBXG4vL2lucHV0OiBkYXRhZnJhbWUgdGFibGVcbi8vaW5wdXQ6IGNvbHVtbiBzZXF1ZW5jZSB7IHNlbVR5cGU6IE1hY3JvbW9sZWN1bGUsIHVuaXRzOiBbJ2Zhc3RhJ10sIGFscGhhYmV0OiBbJ0ROQScsICdSTkEnLCAnUFQnXSB9XG4vL291dHB1dDogY29sdW1uIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIG11bHRpcGxlU2VxdWVuY2VBbGlnbm1lbnRBbnkodGFibGUsIGNvbCkge1xuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IGZ1bmMgPSBERy5GdW5jLmZpbmQoeyBwYWNrYWdlOiAnQmlvJywgbmFtZTogJ211bHRpcGxlU2VxdWVuY2VBbGlnbm1lbnRBbnknIH0pWzBdO1xuICAgICAgICBpZiAoIWNoZWNrSW5wdXRDb2x1bW5VaShjb2wsICdNU0EnLCBbJ2Zhc3RhJ10sIFsnRE5BJywgJ1JOQScsICdQVCddKSlcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjb25zdCB1blVzZWROYW1lID0gdGFibGUuY29sdW1ucy5nZXRVbnVzZWROYW1lKGBtc2EoJHtjb2wubmFtZX0pYCk7XG4gICAgICAgIGNvbnN0IG1zYUNvbCA9IHlpZWxkIHJ1bkthbGlnbihjb2wsIGZhbHNlLCB1blVzZWROYW1lKTtcbiAgICAgICAgdGFibGUuY29sdW1ucy5hZGQobXNhQ29sKTtcbiAgICAgICAgLy8gVGhpcyBjYWxsIGlzIHJlcXVpcmVkIHRvIGVuYWJsZSBjZWxsIHJlbmRlcmVyIGFjdGl2YXRpb25cbiAgICAgICAgeWllbGQgZ3Jvay5kYXRhLmRldGVjdFNlbWFudGljVHlwZXModGFibGUpO1xuICAgICAgICAvLyBjb25zdCB0djogREcuVGFibGVWaWV3ID0gZ3Jvay5zaGVsbC50djtcbiAgICAgICAgLy8gdHYuZ3JpZC5pbnZhbGlkYXRlKCk7XG4gICAgICAgIHJldHVybiBtc2FDb2w7XG4gICAgfSk7XG59XG4vL25hbWU6IEJpbyB8IE1TQVxuLy90YWdzOiBiaW8sIHBhbmVsXG4vL2lucHV0OiBjb2x1bW4gc2VxdWVuY2UgeyBzZW1UeXBlOiBNYWNyb21vbGVjdWxlIH1cbi8vb3V0cHV0OiBjb2x1bW4gcmVzdWx0XG5leHBvcnQgZnVuY3Rpb24gcGFuZWxNU0EoY29sKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgcmV0dXJuIG11bHRpcGxlU2VxdWVuY2VBbGlnbm1lbnRBbnkoY29sLmRhdGFGcmFtZSwgY29sKTtcbiAgICB9KTtcbn1cbi8vbmFtZTogQ29tcG9zaXRpb24gQW5hbHlzaXNcbi8vdG9wLW1lbnU6IEJpbyB8IENvbXBvc2l0aW9uIEFuYWx5c2lzXG4vL291dHB1dDogdmlld2VyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBvc2l0aW9uQW5hbHlzaXMoKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgLy8gSGlnaGVyIHByaW9yaXR5IGZvciBjb2x1bW5zIHdpdGggTVNBIGRhdGEgdG8gc2hvdyB3aXRoIFdlYkxvZ28uXG4gICAgICAgIGNvbnN0IHR2ID0gZ3Jvay5zaGVsbC50djtcbiAgICAgICAgY29uc3QgZGYgPSB0di5kYXRhRnJhbWU7XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCBjb2xMaXN0ID0gZGYuY29sdW1ucy50b0xpc3QoKS5maWx0ZXIoKGNvbCkgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbC5zZW1UeXBlICE9IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSlcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBjb2xVSCA9IG5ldyBVbml0c0hhbmRsZXIoY29sKTtcbiAgICAgICAgICAgIC8vIFRPRE86IHByZXZlbnQgZm9yIGN5Y2xpYywgYnJhbmNoZWQgb3IgbXVsdGlwbGUgY2hhaW5zIGluIEhlbG1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IChjb2wpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICghY2hlY2tJbnB1dENvbHVtblVpKGNvbCwgJ0NvbXBvc2l0aW9uJykpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3Qgd2xWaWV3ZXIgPSB0di5hZGRWaWV3ZXIoJ1dlYkxvZ28nLCB7IHNlcXVlbmNlQ29sdW1uTmFtZTogY29sLm5hbWUgfSk7XG4gICAgICAgICAgICBncm9rLnNoZWxsLnR2LmRvY2tNYW5hZ2VyLmRvY2sod2xWaWV3ZXIsIERHLkRPQ0tfVFlQRS5ET1dOLCBudWxsLCAnQ29tcG9zaXRpb24gYW5hbHlzaXMnLCAwLjI1KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBjb2wgPSBudWxsO1xuICAgICAgICBpZiAoY29sTGlzdC5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgZ3Jvay5zaGVsbC5lcnJvcignQ3VycmVudCB0YWJsZSBkb2VzIG5vdCBjb250YWluIHNlcXVlbmNlcycpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGNvbExpc3QubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgY29uc3QgY29sTGlzdE5hbWVzID0gY29sTGlzdC5tYXAoKGNvbCkgPT4gY29sLm5hbWUpO1xuICAgICAgICAgICAgY29uc3QgY29sSW5wdXQgPSB1aS5jaG9pY2VJbnB1dCgnQ29sdW1uJywgY29sTGlzdE5hbWVzWzBdLCBjb2xMaXN0TmFtZXMpO1xuICAgICAgICAgICAgdWkuZGlhbG9nKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJ1ItR3JvdXBzIEFuYWx5c2lzJyxcbiAgICAgICAgICAgICAgICBoZWxwVXJsOiAnL2hlbHAvZG9tYWlucy9iaW8vbWFjcm9tb2xlY3VsZXMubWQjY29tcG9zaXRpb24tYW5hbHlzaXMnXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5hZGQodWkuZGl2KFtcbiAgICAgICAgICAgICAgICBjb2xJbnB1dCxcbiAgICAgICAgICAgIF0pKVxuICAgICAgICAgICAgICAgIC5vbk9LKCgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sID0gKF9hID0gY29sTGlzdC5maW5kKChjb2wpID0+IGNvbC5uYW1lID09IGNvbElucHV0LnZhbHVlKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAoY29sKVxuICAgICAgICAgICAgICAgICAgICB5aWVsZCBoYW5kbGVyKGNvbCk7XG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAuc2hvdygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29sID0gY29sTGlzdFswXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWNvbClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgeWllbGQgaGFuZGxlcihjb2wpO1xuICAgIH0pO1xufVxuLy90b3AtbWVudTogQmlvIHwgU2RmIHRvIEpzb24gbGliLi4uXG4vL25hbWU6IHNkZlRvSnNvbkxpYlxuLy9pbnB1dDogZGF0YWZyYW1lIHRhYmxlXG5leHBvcnQgZnVuY3Rpb24gc2RmVG9Kc29uTGliKHRhYmxlKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QganNvbk1vbm9tZXJMaWJyYXJ5ID0gY3JlYXRlSnNvbk1vbm9tZXJMaWJGcm9tU2RmKHRhYmxlKTtcbiAgICB9KTtcbn1cbi8vbmFtZTogUmVwcmVzZW50YXRpb25zXG4vL3RhZ3M6IHBhbmVsLCB3aWRnZXRzXG4vL2lucHV0OiBjZWxsIG1hY3JvTW9sZWN1bGUge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG4vL291dHB1dDogd2lkZ2V0IHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIHBlcHRpZGVNb2xlY3VsZShtYWNyb01vbGVjdWxlKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgbW9ub21lcnNMaWJGaWxlID0geWllbGQgX3BhY2thZ2UuZmlsZXMucmVhZEFzVGV4dChIRUxNX0NPUkVfTElCX0ZJTEVOQU1FKTtcbiAgICAgICAgY29uc3QgbW9ub21lcnNMaWJPYmplY3QgPSBKU09OLnBhcnNlKG1vbm9tZXJzTGliRmlsZSk7XG4gICAgICAgIHJldHVybiByZXByZXNlbnRhdGlvbnNXaWRnZXQobWFjcm9Nb2xlY3VsZSwgbW9ub21lcnNMaWJPYmplY3QpO1xuICAgIH0pO1xufVxuLy9uYW1lOiBpbXBvcnRGYXN0YVxuLy9kZXNjcmlwdGlvbjogT3BlbnMgRkFTVEEgZmlsZVxuLy90YWdzOiBmaWxlLWhhbmRsZXJcbi8vbWV0YS5leHQ6IGZhc3RhLCBmbmEsIGZmbiwgZmFhLCBmcm4sIGZhLCBmc3Rcbi8vaW5wdXQ6IHN0cmluZyBmaWxlQ29udGVudFxuLy9vdXRwdXQ6IGxpc3QgdGFibGVzXG5leHBvcnQgZnVuY3Rpb24gaW1wb3J0RmFzdGEoZmlsZUNvbnRlbnQpIHtcbiAgICBjb25zdCBmZmggPSBuZXcgRmFzdGFGaWxlSGFuZGxlcihmaWxlQ29udGVudCk7XG4gICAgcmV0dXJuIGZmaC5pbXBvcnRGYXN0YSgpO1xufVxuLy9uYW1lOiBCaW8gfCBDb252ZXJ0IC4uLlxuLy9mcmllbmRseS1uYW1lOiBCaW8gfCBDb252ZXJ0XG4vL3RhZ3M6IHBhbmVsLCBiaW9cbi8vaW5wdXQ6IGNvbHVtbiBjb2wge3NlbVR5cGU6IE1hY3JvbW9sZWN1bGV9XG5leHBvcnQgZnVuY3Rpb24gY29udmVydFBhbmVsKGNvbCkge1xuICAgIGNvbnZlcnQoY29sKTtcbn1cbi8vbmFtZTogbW9ub21lckNlbGxSZW5kZXJlclxuLy90YWdzOiBjZWxsUmVuZGVyZXJcbi8vbWV0YS5jZWxsVHlwZTogTW9ub21lclxuLy9vdXRwdXQ6IGdyaWRfY2VsbF9yZW5kZXJlciByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiBtb25vbWVyQ2VsbFJlbmRlcmVyKCkge1xuICAgIHJldHVybiBuZXcgTW9ub21lckNlbGxSZW5kZXJlcigpO1xufVxuLy9uYW1lOiBNYWNyb21vbGVjdWxlRGlmZmVyZW5jZUNlbGxSZW5kZXJlclxuLy90YWdzOiBjZWxsUmVuZGVyZXJcbi8vbWV0YS5jZWxsVHlwZTogTWFjcm9tb2xlY3VsZURpZmZlcmVuY2Vcbi8vbWV0YS5jb2x1bW5UYWdzOiBxdWFsaXR5PU1hY3JvbW9sZWN1bGVEaWZmZXJlbmNlXG4vL291dHB1dDogZ3JpZF9jZWxsX3JlbmRlcmVyIHJlc3VsdFxuZXhwb3J0IGZ1bmN0aW9uIG1hY3JvbW9sZWN1bGVEaWZmZXJlbmNlQ2VsbFJlbmRlcmVyKCkge1xuICAgIHJldHVybiBuZXcgTWFjcm9tb2xlY3VsZURpZmZlcmVuY2VDZWxsUmVuZGVyZXIoKTtcbn1cbi8vbmFtZTogdGVzdERldGVjdE1hY3JvbW9sZWN1bGVcbi8vaW5wdXQ6IHN0cmluZyBwYXRoIHtjaG9pY2VzOiBbJ0RlbW86RmlsZXMvJywgJ1N5c3RlbTpBcHBEYXRhLyddfVxuLy9vdXRwdXQ6IGRhdGFmcmFtZSByZXN1bHRcbmV4cG9ydCBmdW5jdGlvbiB0ZXN0RGV0ZWN0TWFjcm9tb2xlY3VsZShwYXRoKSB7XG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3QgcGkgPSBERy5UYXNrQmFyUHJvZ3Jlc3NJbmRpY2F0b3IuY3JlYXRlKCdUZXN0IGRldGVjdE1hY3JvbW9sZWN1bGUuLi4nKTtcbiAgICAgICAgY29uc3QgZmlsZUxpc3QgPSB5aWVsZCBncm9rLmRhcGkuZmlsZXMubGlzdChwYXRoLCB0cnVlLCAnJyk7XG4gICAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgICBjb25zdCBmaWxlTGlzdFRvVGVzdCA9IGZpbGVMaXN0LmZpbHRlcigoZmkpID0+IGZpLmZpbGVOYW1lLmVuZHNXaXRoKCcuY3N2JykpO1xuICAgICAgICBsZXQgcmVhZHlDb3VudCA9IDA7XG4gICAgICAgIGNvbnN0IHJlcyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGZpbGVJbmZvIG9mIGZpbGVMaXN0VG9UZXN0KSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNzdiA9IHlpZWxkIGdyb2suZGFwaS5maWxlcy5yZWFkQXNUZXh0KHBhdGggKyBmaWxlSW5mby5mdWxsUGF0aCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGYgPSBERy5EYXRhRnJhbWUuZnJvbUNzdihjc3YpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY29sIG9mIGRmLmNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VtVHlwZSA9IHlpZWxkIGdyb2suZnVuY3Rpb25zLmNhbGwoJ0JpbzpkZXRlY3RNYWNyb21vbGVjdWxlJywgeyBjb2w6IGNvbCB9KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbVR5cGUgPT09IERHLlNFTVRZUEUuTUFDUk9NT0xFQ1VMRSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLndhcm4oYGZpbGU6ICR7ZmlsZUluZm8ucGF0aH0sIGNvbHVtbjogJHtjb2wubmFtZX0sIGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gIGBzZW1UeXBlOiAke3NlbVR5cGV9LCB1bml0czogJHtjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS53YXJuKCdmaWxlOiBcIicgKyBmaWxlSW5mby5wYXRoICsgJ1wiLCBzZW1UeXBlOiBcIicgKyBzZW1UeXBlICsgJ1wiLCAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgJ3VuaXRzOiBcIicgKyBjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpICsgJ1wiJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZTogZmlsZUluZm8ucGF0aCwgcmVzdWx0OiAnZGV0ZWN0ZWQnLCBjb2x1bW46IGNvbC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGB1bml0czogJHtjb2wuZ2V0VGFnKERHLlRBR1MuVU5JVFMpfWBcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUuZXJyb3IoJ2ZpbGU6ICcgKyBmaWxlSW5mby5wYXRoICsgJywgZXJyb3I6ICcgKyBleC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICByZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGZpbGU6IGZpbGVJbmZvLnBhdGgsIHJlc3VsdDogJ2Vycm9yJywgY29sdW1uOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogZXJyLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICByZWFkeUNvdW50ICs9IDE7XG4gICAgICAgICAgICAgICAgcGkudXBkYXRlKDEwMCAqIHJlYWR5Q291bnQgLyBmaWxlTGlzdFRvVGVzdC5sZW5ndGgsIGBUZXN0ICR7ZmlsZUluZm8uZmlsZU5hbWV9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZ3Jvay5zaGVsbC5pbmZvKCdUZXN0IERlbW86RmlsZXMgZm9yIGRldGVjdE1hY3JvbW9sZWN1bGUgZmluaXNoZWQuJyk7XG4gICAgICAgIHBpLmNsb3NlKCk7XG4gICAgICAgIGNvbnN0IHJlc0RmID0gREcuRGF0YUZyYW1lLmZyb21PYmplY3RzKHJlcyk7XG4gICAgICAgIHJlc0RmLm5hbWUgPSBgZGF0YXNldHNfZGV0ZWN0TWFjcm9tb2xlY3VsZV8ke3BhdGh9YDtcbiAgICAgICAgcmV0dXJuIHJlc0RmO1xuICAgIH0pO1xufVxuLy9uYW1lOiBCaW8gfCBTcGxpdCB0byBtb25vbWVyc1xuLy90YWdzOiBwYW5lbCwgYmlvXG4vL2lucHV0OiBjb2x1bW4gY29sIHtzZW1UeXBlOiBNYWNyb21vbGVjdWxlfVxuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0VG9Nb25vbWVycyhjb2wpIHtcbiAgICBpZiAoIWNvbC5nZXRUYWcoVW5pdHNIYW5kbGVyLlRBR1MuYWxpZ25lZCkuaW5jbHVkZXMoQy5NU0EpKVxuICAgICAgICByZXR1cm4gZ3Jvay5zaGVsbC5lcnJvcignU3BsaXR0aW5nIGlzIGFwcGxpY2FibGUgb25seSBmb3IgYWxpZ25lZCBzZXF1ZW5jZXMnKTtcbiAgICBjb25zdCB0ZW1wRGYgPSBzcGxpdEFsaWduZWRTZXF1ZW5jZXMoY29sKTtcbiAgICBjb25zdCBvcmlnaW5hbERmID0gY29sLmRhdGFGcmFtZTtcbiAgICBmb3IgKGNvbnN0IHRlbXBDb2wgb2YgdGVtcERmLmNvbHVtbnMpIHtcbiAgICAgICAgY29uc3QgbmV3Q29sID0gb3JpZ2luYWxEZi5jb2x1bW5zLmFkZCh0ZW1wQ29sKTtcbiAgICAgICAgbmV3Q29sLnNlbVR5cGUgPSBDLlNFTV9UWVBFUy5NT05PTUVSO1xuICAgICAgICBuZXdDb2wuc2V0VGFnKERHLlRBR1MuQ0VMTF9SRU5ERVJFUiwgQy5TRU1fVFlQRVMuTU9OT01FUik7XG4gICAgICAgIG5ld0NvbC5zZXRUYWcoQy5UQUdTLkFMUEhBQkVULCBjb2wuZ2V0VGFnKEMuVEFHUy5BTFBIQUJFVCkpO1xuICAgIH1cbiAgICBncm9rLnNoZWxsLnR2LmdyaWQuaW52YWxpZGF0ZSgpO1xufVxuLy9uYW1lOiBCaW86IGdldEhlbG1Nb25vbWVyc1xuLy9pbnB1dDogY29sdW1uIGNvbCB7c2VtVHlwZTogTWFjcm9tb2xlY3VsZX1cbmV4cG9ydCBmdW5jdGlvbiBnZXRIZWxtTW9ub21lcnMoc2VxQ29sKSB7XG4gICAgY29uc3Qgc3RhdHMgPSBXZWJMb2dvLmdldFN0YXRzKHNlcUNvbCwgMSwgV2ViTG9nby5zcGxpdHRlckFzSGVsbSk7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHN0YXRzLmZyZXEpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIG1hY3JvbW9sZWN1bGVzRmluZ2VycHJpbnRzKG1jb2wpIHtcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBncm9rLmZ1bmN0aW9ucy5jYWxsKCdDaGVtOmdldFJkS2l0TW9kdWxlJyk7XG4gICAgICAgIGNvbnN0IG1vbm9tZXJzID0gZ2V0SGVsbU1vbm9tZXJzKG1jb2wpO1xuICAgICAgICBjb25zdCBtb2xzID0geWllbGQgZ3Jvay5mdW5jdGlvbnMuY2FsbCgnSEVMTTpnZXRNb2xGaWxlcycsIHsgbWNvbDogbWNvbCB9KTtcbiAgICAgICAgcmV0dXJuIGdldEZpbmdlcnByaW50cyhtb2xzLnRvTGlzdCgpLCBtb25vbWVycyk7XG4gICAgfSk7XG59XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=
|