@carto/kepler.gl 0.0.69-alpha.hackathon-3dtiles.5 → 0.0.69-alpha.hackathon-3dtiles.6

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.
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.set3dBuildingColor = exports.loadCustomMapStyle = exports.mapStyleChange = exports.loadMapStyleErr = exports.loadMapStyles = exports.requestMapStyles = exports.mapConfigChange = exports.inputMapStyle = exports.addCustomMapStyle = void 0;
8
+ exports.set3dBuildingColor = exports.loadCustomMapStyle = exports.setTiles3dSketchValue = exports.mapStyleChange = exports.loadMapStyleErr = exports.loadMapStyles = exports.requestMapStyles = exports.mapConfigChange = exports.inputMapStyle = exports.addCustomMapStyle = void 0;
9
9
 
10
10
  var _reduxActions = require("redux-actions");
11
11
 
@@ -122,6 +122,18 @@ exports.loadMapStyleErr = loadMapStyleErr;
122
122
  var mapStyleChange = (0, _reduxActions.createAction)(_actionTypes["default"].MAP_STYLE_CHANGE, function (styleType) {
123
123
  return styleType;
124
124
  });
125
+ /**
126
+ * Set Tiles3D sketch value
127
+ * @memberof mapStyleActions
128
+ * @param sketchValue - 0.0 - 1.0
129
+ * @type {typeof import('./map-style-actions').setTiles3dSketchValue}
130
+ * @public
131
+ */
132
+
133
+ exports.mapStyleChange = mapStyleChange;
134
+ var setTiles3dSketchValue = (0, _reduxActions.createAction)(_actionTypes["default"].SET_TILES_3D_SKETCH_VALUE, function (sketchValue) {
135
+ return sketchValue;
136
+ });
125
137
  /**
126
138
  * Callback when a custom map style object is received
127
139
  * @memberof mapStyleActions
@@ -133,7 +145,7 @@ var mapStyleChange = (0, _reduxActions.createAction)(_actionTypes["default"].MAP
133
145
  * @public
134
146
  */
135
147
 
136
- exports.mapStyleChange = mapStyleChange;
148
+ exports.setTiles3dSketchValue = setTiles3dSketchValue;
137
149
  var loadCustomMapStyle = (0, _reduxActions.createAction)(_actionTypes["default"].LOAD_CUSTOM_MAP_STYLE, function (customMapStyle) {
138
150
  return customMapStyle;
139
151
  }); // SET_3D_BUILDING_COLOR
@@ -164,4 +176,4 @@ var set3dBuildingColor = (0, _reduxActions.createAction)(_actionTypes["default"]
164
176
  exports.set3dBuildingColor = set3dBuildingColor;
165
177
  var mapStyleActions = null;
166
178
  /* eslint-enable no-unused-vars */
167
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hY3Rpb25zL21hcC1zdHlsZS1hY3Rpb25zLmpzIl0sIm5hbWVzIjpbImFkZEN1c3RvbU1hcFN0eWxlIiwiQWN0aW9uVHlwZXMiLCJBRERfQ1VTVE9NX01BUF9TVFlMRSIsImlucHV0TWFwU3R5bGUiLCJJTlBVVF9NQVBfU1RZTEUiLCJpbnB1dFN0eWxlIiwibWFwU3RhdGUiLCJtYXBDb25maWdDaGFuZ2UiLCJNQVBfQ09ORklHX0NIQU5HRSIsIm1hcFN0eWxlIiwicmVxdWVzdE1hcFN0eWxlcyIsIlJFUVVFU1RfTUFQX1NUWUxFUyIsIm1hcFN0eWxlcyIsImxvYWRNYXBTdHlsZXMiLCJMT0FEX01BUF9TVFlMRVMiLCJuZXdTdHlsZXMiLCJsb2FkTWFwU3R5bGVFcnIiLCJMT0FEX01BUF9TVFlMRV9FUlIiLCJlcnJvciIsIm1hcFN0eWxlQ2hhbmdlIiwiTUFQX1NUWUxFX0NIQU5HRSIsInN0eWxlVHlwZSIsImxvYWRDdXN0b21NYXBTdHlsZSIsIkxPQURfQ1VTVE9NX01BUF9TVFlMRSIsImN1c3RvbU1hcFN0eWxlIiwic2V0M2RCdWlsZGluZ0NvbG9yIiwiU0VUXzNEX0JVSUxESU5HX0NPTE9SIiwiY29sb3IiLCJtYXBTdHlsZUFjdGlvbnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sSUFBTUEsaUJBQWlCLEdBQUcsZ0NBQWFDLHdCQUFZQyxvQkFBekIsQ0FBMUI7QUFFUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDTyxJQUFNQyxhQUFhLEdBQUcsZ0NBQWFGLHdCQUFZRyxlQUF6QixFQUEwQyxVQUFDQyxVQUFELEVBQWFDLFFBQWI7QUFBQSxTQUEyQjtBQUNoR0QsSUFBQUEsVUFBVSxFQUFWQSxVQURnRztBQUVoR0MsSUFBQUEsUUFBUSxFQUFSQTtBQUZnRyxHQUEzQjtBQUFBLENBQTFDLENBQXRCO0FBS1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNPLElBQU1DLGVBQWUsR0FBRyxnQ0FBYU4sd0JBQVlPLGlCQUF6QixFQUE0QyxVQUFBQyxRQUFRO0FBQUEsU0FBSUEsUUFBSjtBQUFBLENBQXBELENBQXhCO0FBRVA7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDTyxJQUFNQyxnQkFBZ0IsR0FBRyxnQ0FDOUJULHdCQUFZVSxrQkFEa0IsRUFFOUIsVUFBQUMsU0FBUztBQUFBLFNBQUlBLFNBQUo7QUFBQSxDQUZxQixDQUF6QjtBQUlQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDTyxJQUFNQyxhQUFhLEdBQUcsZ0NBQWFaLHdCQUFZYSxlQUF6QixFQUEwQyxVQUFBQyxTQUFTO0FBQUEsU0FBSUEsU0FBSjtBQUFBLENBQW5ELENBQXRCO0FBRVA7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNPLElBQU1DLGVBQWUsR0FBRyxnQ0FBYWYsd0JBQVlnQixrQkFBekIsRUFBNkMsVUFBQUMsS0FBSztBQUFBLFNBQUlBLEtBQUo7QUFBQSxDQUFsRCxDQUF4QjtBQUVQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDTyxJQUFNQyxjQUFjLEdBQUcsZ0NBQWFsQix3QkFBWW1CLGdCQUF6QixFQUEyQyxVQUFBQyxTQUFTO0FBQUEsU0FBSUEsU0FBSjtBQUFBLENBQXBELENBQXZCO0FBRVA7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNPLElBQU1DLGtCQUFrQixHQUFHLGdDQUNoQ3JCLHdCQUFZc0IscUJBRG9CLEVBRWhDLFVBQUFDLGNBQWM7QUFBQSxTQUFJQSxjQUFKO0FBQUEsQ0FGa0IsQ0FBM0IsQyxDQUtQOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDTyxJQUFNQyxrQkFBa0IsR0FBRyxnQ0FBYXhCLHdCQUFZeUIscUJBQXpCLEVBQWdELFVBQUFDLEtBQUs7QUFBQSxTQUFJQSxLQUFKO0FBQUEsQ0FBckQsQ0FBM0I7QUFFUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQTtBQUNBOzs7QUFDQSxJQUFNQyxlQUFlLEdBQUcsSUFBeEI7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7Y3JlYXRlQWN0aW9ufSBmcm9tICdyZWR1eC1hY3Rpb25zJztcbmltcG9ydCBBY3Rpb25UeXBlcyBmcm9tICdjb25zdGFudHMvYWN0aW9uLXR5cGVzJztcblxuLyoqXG4gKiBBZGQgbWFwIHN0eWxlIGZyb20gdXNlciBpbnB1dCB0byByZWR1Y2VyIGFuZCBzZXQgaXQgdG8gY3VycmVudCBzdHlsZVxuICogVGhpcyBhY3Rpb24gaXMgY2FsbGVkIHdoZW4gdXNlciBjbGljayBjb25maXJtIGFmdGVyIHB1dHRpbmcgaW4gYSB2YWxpZCBzdHlsZSB1cmwgaW4gdGhlIGN1c3RvbSBtYXAgc3R5bGUgZGlhbG9nLlxuICogSXQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZnJvbSBvdXRzaWRlIGtlcGxlci5nbCB3aXRob3V0IGEgdmFsaWQgYGlucHV0U3R5bGVgIGluIHRoZSBgbWFwU3R5bGVgIHJlZHVjZXIuXG4gKiBwYXJhbSB7dm9pZH1cbiAqIEBtZW1iZXJvZiBtYXBTdHlsZUFjdGlvbnNcbiAqIEB0eXBlIHt0eXBlb2YgaW1wb3J0KCcuL21hcC1zdHlsZS1hY3Rpb25zJykuYWRkQ3VzdG9tTWFwU3R5bGV9XG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBhZGRDdXN0b21NYXBTdHlsZSA9IGNyZWF0ZUFjdGlvbihBY3Rpb25UeXBlcy5BRERfQ1VTVE9NX01BUF9TVFlMRSk7XG5cbi8qKlxuICogSW5wdXQgYSBjdXN0b20gbWFwIHN0eWxlIG9iamVjdFxuICogQG1lbWJlcm9mIG1hcFN0eWxlQWN0aW9uc1xuICogQHBhcmFtIGlucHV0U3R5bGVcbiAqIEBwYXJhbSBpbnB1dFN0eWxlLnVybCAtIHN0eWxlIHVybCBlLmcuIGAnbWFwYm94Oi8vc3R5bGVzL2hlc2hhbi94eHh4eHl5eXl6enonYFxuICogQHBhcmFtIGlucHV0U3R5bGUuaWQgLSBzdHlsZSBpZCBlLmcuIGAnY3VzdG9tX3N0eWxlXzEnYFxuICogQHBhcmFtIGlucHV0U3R5bGUuc3R5bGUgLSBhY3R1YWwgbWFwYm94IHN0eWxlIGpzb25cbiAqIEBwYXJhbSBpbnB1dFN0eWxlLmxhYmVsIC0gc3R5bGUgbmFtZVxuICogQHBhcmFtIGlucHV0U3R5bGUuYWNjZXNzVG9rZW4gLSBtYXBib3ggYWNjZXNzIHRva2VuXG4gKiBAcGFyYW0gaW5wdXRTdHlsZS5pY29uIC0gaWNvbiBpbWFnZSBkYXRhIHVybFxuICogQHBhcmFtIFttYXBTdGF0ZV0gLSBtYXBTdGF0ZSBpcyBvcHRpb25hbFxuICogQHR5cGUge3R5cGVvZiBpbXBvcnQoJy4vbWFwLXN0eWxlLWFjdGlvbnMnKS5pbnB1dE1hcFN0eWxlfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgaW5wdXRNYXBTdHlsZSA9IGNyZWF0ZUFjdGlvbihBY3Rpb25UeXBlcy5JTlBVVF9NQVBfU1RZTEUsIChpbnB1dFN0eWxlLCBtYXBTdGF0ZSkgPT4gKHtcbiAgaW5wdXRTdHlsZSxcbiAgbWFwU3RhdGVcbn0pKTtcblxuLyoqXG4gKiBVcGRhdGUgYHZpc2libGVMYXllckdyb3Vwc2B0byBjaGFuZ2UgbGF5ZXIgZ3JvdXAgdmlzaWJpbGl0eVxuICogQG1lbWJlcm9mIG1hcFN0eWxlQWN0aW9uc1xuICogQHBhcmFtIG1hcFN0eWxlIG5ldyBjb25maWcgYHt2aXNpYmxlTGF5ZXJHcm91cHM6IHtsYWJlbDogZmFsc2UsIHJvYWQ6IHRydWUsIGJhY2tncm91bmQ6IHRydWV9fWBcbiAqIEB0eXBlIHt0eXBlb2YgaW1wb3J0KCcuL21hcC1zdHlsZS1hY3Rpb25zJykubWFwQ29uZmlnQ2hhbmdlfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgbWFwQ29uZmlnQ2hhbmdlID0gY3JlYXRlQWN0aW9uKEFjdGlvblR5cGVzLk1BUF9DT05GSUdfQ0hBTkdFLCBtYXBTdHlsZSA9PiBtYXBTdHlsZSk7XG5cbi8qKlxuICogUmVxdWVzdCBtYXAgc3R5bGUgc3R5bGUgb2JqZWN0IGJhc2VkIG9uIHN0eWxlLnVybC5cbiAqIEBtZW1iZXJvZiBtYXBTdHlsZUFjdGlvbnNcbiAqIEB0eXBlIHt0eXBlb2YgaW1wb3J0KCcuL21hcC1zdHlsZS1hY3Rpb25zJykucmVxdWVzdE1hcFN0eWxlc31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHJlcXVlc3RNYXBTdHlsZXMgPSBjcmVhdGVBY3Rpb24oXG4gIEFjdGlvblR5cGVzLlJFUVVFU1RfTUFQX1NUWUxFUyxcbiAgbWFwU3R5bGVzID0+IG1hcFN0eWxlc1xuKTtcbi8qKlxuICogQ2FsbGJhY2sgd2hlbiBsb2FkIG1hcCBzdHlsZSBzdWNjZXNzXG4gKiBAbWVtYmVyb2YgbWFwU3R5bGVBY3Rpb25zXG4gKiBAcGFyYW0gbmV3U3R5bGVzIGEgYHtbaWRdOiBzdHlsZX1gIG1hcHBpbmdcbiAqIEB0eXBlIHt0eXBlb2YgaW1wb3J0KCcuL21hcC1zdHlsZS1hY3Rpb25zJykubG9hZE1hcFN0eWxlc31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRNYXBTdHlsZXMgPSBjcmVhdGVBY3Rpb24oQWN0aW9uVHlwZXMuTE9BRF9NQVBfU1RZTEVTLCBuZXdTdHlsZXMgPT4gbmV3U3R5bGVzKTtcblxuLyoqXG4gKiBDYWxsYmFjayB3aGVuIGxvYWQgbWFwIHN0eWxlIGVycm9yXG4gKiBAbWVtYmVyb2YgbWFwU3R5bGVBY3Rpb25zXG4gKiBAcGFyYW0gZXJyb3JcbiAqIEB0eXBlIHt0eXBlb2YgaW1wb3J0KCcuL21hcC1zdHlsZS1hY3Rpb25zJykubG9hZE1hcFN0eWxlRXJyfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgbG9hZE1hcFN0eWxlRXJyID0gY3JlYXRlQWN0aW9uKEFjdGlvblR5cGVzLkxPQURfTUFQX1NUWUxFX0VSUiwgZXJyb3IgPT4gZXJyb3IpO1xuXG4vKipcbiAqIENoYW5nZSB0byBhbm90aGVyIG1hcCBzdHlsZS4gVGhlIHNlbGVjdGVkIHN0eWxlIHNob3VsZCBhbHJlYWR5IGJlZW4gbG9hZGVkIGludG8gYG1hcFN0eWxlLm1hcFN0eWxlc2BcbiAqIEBtZW1iZXJvZiBtYXBTdHlsZUFjdGlvbnNcbiAqIEBwYXJhbSBzdHlsZVR5cGUgdGhlIHN0eWxlIHRvIGNoYW5nZSB0b1xuICogQHR5cGUge3R5cGVvZiBpbXBvcnQoJy4vbWFwLXN0eWxlLWFjdGlvbnMnKS5tYXBTdHlsZUNoYW5nZX1cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IG1hcFN0eWxlQ2hhbmdlID0gY3JlYXRlQWN0aW9uKEFjdGlvblR5cGVzLk1BUF9TVFlMRV9DSEFOR0UsIHN0eWxlVHlwZSA9PiBzdHlsZVR5cGUpO1xuXG4vKipcbiAqIENhbGxiYWNrIHdoZW4gYSBjdXN0b20gbWFwIHN0eWxlIG9iamVjdCBpcyByZWNlaXZlZFxuICogQG1lbWJlcm9mIG1hcFN0eWxlQWN0aW9uc1xuICogQHBhcmFtIGN1c3RvbU1hcFN0eWxlXG4gKiBAcGFyYW0gY3VzdG9tTWFwU3R5bGUuaWNvblxuICogQHBhcmFtIGN1c3RvbU1hcFN0eWxlLnN0eWxlXG4gKiBAcGFyYW0gY3VzdG9tTWFwU3R5bGUuZXJyb3JcbiAqIEB0eXBlIHt0eXBlb2YgaW1wb3J0KCcuL21hcC1zdHlsZS1hY3Rpb25zJykubG9hZEN1c3RvbU1hcFN0eWxlfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgbG9hZEN1c3RvbU1hcFN0eWxlID0gY3JlYXRlQWN0aW9uKFxuICBBY3Rpb25UeXBlcy5MT0FEX0NVU1RPTV9NQVBfU1RZTEUsXG4gIGN1c3RvbU1hcFN0eWxlID0+IGN1c3RvbU1hcFN0eWxlXG4pO1xuXG4vLyBTRVRfM0RfQlVJTERJTkdfQ09MT1Jcbi8qKlxuICogU2V0IDNkIGJ1aWxkaW5nIGxheWVyIGdyb3VwIGNvbG9yXG4gKiBAbWVtYmVyb2YgbWFwU3R5bGVBY3Rpb25zXG4gKiBAcGFyYW0gY29sb3IgLSBbciwgZywgYl1cbiAqIEB0eXBlIHt0eXBlb2YgaW1wb3J0KCcuL21hcC1zdHlsZS1hY3Rpb25zJykuc2V0M2RCdWlsZGluZ0NvbG9yfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0M2RCdWlsZGluZ0NvbG9yID0gY3JlYXRlQWN0aW9uKEFjdGlvblR5cGVzLlNFVF8zRF9CVUlMRElOR19DT0xPUiwgY29sb3IgPT4gY29sb3IpO1xuXG4vKipcbiAqIEFjdGlvbnMgaGFuZGxlZCBtb3N0bHkgYnkgIGBtYXBTdHlsZWAgcmVkdWNlci5cbiAqIFRoZXkgbWFuYWdlIHRoZSBkaXNwbGF5IG9mIGJhc2UgbWFwLCBzdWNoIGFzIGxvYWRpbmcgYW5kIHJlY2VpdmluZyBiYXNlIG1hcCBzdHlsZXMsXG4gKiBoaWRpbmcgYW5kIHNob3dpbmcgbWFwIGxheWVycywgdXNlciBpbnB1dCBvZiBjdXN0b20gbWFwIHN0eWxlIHVybC5cbiAqXG4gKiBAcHVibGljXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4vLyBAdHMtaWdub3JlXG5jb25zdCBtYXBTdHlsZUFjdGlvbnMgPSBudWxsO1xuLyogZXNsaW50LWVuYWJsZSBuby11bnVzZWQtdmFycyAqL1xuIl19
179
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hY3Rpb25zL21hcC1zdHlsZS1hY3Rpb25zLmpzIl0sIm5hbWVzIjpbImFkZEN1c3RvbU1hcFN0eWxlIiwiQWN0aW9uVHlwZXMiLCJBRERfQ1VTVE9NX01BUF9TVFlMRSIsImlucHV0TWFwU3R5bGUiLCJJTlBVVF9NQVBfU1RZTEUiLCJpbnB1dFN0eWxlIiwibWFwU3RhdGUiLCJtYXBDb25maWdDaGFuZ2UiLCJNQVBfQ09ORklHX0NIQU5HRSIsIm1hcFN0eWxlIiwicmVxdWVzdE1hcFN0eWxlcyIsIlJFUVVFU1RfTUFQX1NUWUxFUyIsIm1hcFN0eWxlcyIsImxvYWRNYXBTdHlsZXMiLCJMT0FEX01BUF9TVFlMRVMiLCJuZXdTdHlsZXMiLCJsb2FkTWFwU3R5bGVFcnIiLCJMT0FEX01BUF9TVFlMRV9FUlIiLCJlcnJvciIsIm1hcFN0eWxlQ2hhbmdlIiwiTUFQX1NUWUxFX0NIQU5HRSIsInN0eWxlVHlwZSIsInNldFRpbGVzM2RTa2V0Y2hWYWx1ZSIsIlNFVF9USUxFU18zRF9TS0VUQ0hfVkFMVUUiLCJza2V0Y2hWYWx1ZSIsImxvYWRDdXN0b21NYXBTdHlsZSIsIkxPQURfQ1VTVE9NX01BUF9TVFlMRSIsImN1c3RvbU1hcFN0eWxlIiwic2V0M2RCdWlsZGluZ0NvbG9yIiwiU0VUXzNEX0JVSUxESU5HX0NPTE9SIiwiY29sb3IiLCJtYXBTdHlsZUFjdGlvbnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sSUFBTUEsaUJBQWlCLEdBQUcsZ0NBQWFDLHdCQUFZQyxvQkFBekIsQ0FBMUI7QUFFUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDTyxJQUFNQyxhQUFhLEdBQUcsZ0NBQWFGLHdCQUFZRyxlQUF6QixFQUEwQyxVQUFDQyxVQUFELEVBQWFDLFFBQWI7QUFBQSxTQUEyQjtBQUNoR0QsSUFBQUEsVUFBVSxFQUFWQSxVQURnRztBQUVoR0MsSUFBQUEsUUFBUSxFQUFSQTtBQUZnRyxHQUEzQjtBQUFBLENBQTFDLENBQXRCO0FBS1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNPLElBQU1DLGVBQWUsR0FBRyxnQ0FBYU4sd0JBQVlPLGlCQUF6QixFQUE0QyxVQUFBQyxRQUFRO0FBQUEsU0FBSUEsUUFBSjtBQUFBLENBQXBELENBQXhCO0FBRVA7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDTyxJQUFNQyxnQkFBZ0IsR0FBRyxnQ0FDOUJULHdCQUFZVSxrQkFEa0IsRUFFOUIsVUFBQUMsU0FBUztBQUFBLFNBQUlBLFNBQUo7QUFBQSxDQUZxQixDQUF6QjtBQUlQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDTyxJQUFNQyxhQUFhLEdBQUcsZ0NBQWFaLHdCQUFZYSxlQUF6QixFQUEwQyxVQUFBQyxTQUFTO0FBQUEsU0FBSUEsU0FBSjtBQUFBLENBQW5ELENBQXRCO0FBRVA7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNPLElBQU1DLGVBQWUsR0FBRyxnQ0FBYWYsd0JBQVlnQixrQkFBekIsRUFBNkMsVUFBQUMsS0FBSztBQUFBLFNBQUlBLEtBQUo7QUFBQSxDQUFsRCxDQUF4QjtBQUVQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDTyxJQUFNQyxjQUFjLEdBQUcsZ0NBQWFsQix3QkFBWW1CLGdCQUF6QixFQUEyQyxVQUFBQyxTQUFTO0FBQUEsU0FBSUEsU0FBSjtBQUFBLENBQXBELENBQXZCO0FBRVA7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNPLElBQU1DLHFCQUFxQixHQUFHLGdDQUNuQ3JCLHdCQUFZc0IseUJBRHVCLEVBRW5DLFVBQUFDLFdBQVc7QUFBQSxTQUFJQSxXQUFKO0FBQUEsQ0FGd0IsQ0FBOUI7QUFLUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ08sSUFBTUMsa0JBQWtCLEdBQUcsZ0NBQ2hDeEIsd0JBQVl5QixxQkFEb0IsRUFFaEMsVUFBQUMsY0FBYztBQUFBLFNBQUlBLGNBQUo7QUFBQSxDQUZrQixDQUEzQixDLENBS1A7O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNPLElBQU1DLGtCQUFrQixHQUFHLGdDQUFhM0Isd0JBQVk0QixxQkFBekIsRUFBZ0QsVUFBQUMsS0FBSztBQUFBLFNBQUlBLEtBQUo7QUFBQSxDQUFyRCxDQUEzQjtBQUVQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBO0FBQ0E7OztBQUNBLElBQU1DLGVBQWUsR0FBRyxJQUF4QjtBQUNBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtjcmVhdGVBY3Rpb259IGZyb20gJ3JlZHV4LWFjdGlvbnMnO1xuaW1wb3J0IEFjdGlvblR5cGVzIGZyb20gJ2NvbnN0YW50cy9hY3Rpb24tdHlwZXMnO1xuXG4vKipcbiAqIEFkZCBtYXAgc3R5bGUgZnJvbSB1c2VyIGlucHV0IHRvIHJlZHVjZXIgYW5kIHNldCBpdCB0byBjdXJyZW50IHN0eWxlXG4gKiBUaGlzIGFjdGlvbiBpcyBjYWxsZWQgd2hlbiB1c2VyIGNsaWNrIGNvbmZpcm0gYWZ0ZXIgcHV0dGluZyBpbiBhIHZhbGlkIHN0eWxlIHVybCBpbiB0aGUgY3VzdG9tIG1hcCBzdHlsZSBkaWFsb2cuXG4gKiBJdCBzaG91bGQgbm90IGJlIGNhbGxlZCBmcm9tIG91dHNpZGUga2VwbGVyLmdsIHdpdGhvdXQgYSB2YWxpZCBgaW5wdXRTdHlsZWAgaW4gdGhlIGBtYXBTdHlsZWAgcmVkdWNlci5cbiAqIHBhcmFtIHt2b2lkfVxuICogQG1lbWJlcm9mIG1hcFN0eWxlQWN0aW9uc1xuICogQHR5cGUge3R5cGVvZiBpbXBvcnQoJy4vbWFwLXN0eWxlLWFjdGlvbnMnKS5hZGRDdXN0b21NYXBTdHlsZX1cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGFkZEN1c3RvbU1hcFN0eWxlID0gY3JlYXRlQWN0aW9uKEFjdGlvblR5cGVzLkFERF9DVVNUT01fTUFQX1NUWUxFKTtcblxuLyoqXG4gKiBJbnB1dCBhIGN1c3RvbSBtYXAgc3R5bGUgb2JqZWN0XG4gKiBAbWVtYmVyb2YgbWFwU3R5bGVBY3Rpb25zXG4gKiBAcGFyYW0gaW5wdXRTdHlsZVxuICogQHBhcmFtIGlucHV0U3R5bGUudXJsIC0gc3R5bGUgdXJsIGUuZy4gYCdtYXBib3g6Ly9zdHlsZXMvaGVzaGFuL3h4eHh4eXl5eXp6eidgXG4gKiBAcGFyYW0gaW5wdXRTdHlsZS5pZCAtIHN0eWxlIGlkIGUuZy4gYCdjdXN0b21fc3R5bGVfMSdgXG4gKiBAcGFyYW0gaW5wdXRTdHlsZS5zdHlsZSAtIGFjdHVhbCBtYXBib3ggc3R5bGUganNvblxuICogQHBhcmFtIGlucHV0U3R5bGUubGFiZWwgLSBzdHlsZSBuYW1lXG4gKiBAcGFyYW0gaW5wdXRTdHlsZS5hY2Nlc3NUb2tlbiAtIG1hcGJveCBhY2Nlc3MgdG9rZW5cbiAqIEBwYXJhbSBpbnB1dFN0eWxlLmljb24gLSBpY29uIGltYWdlIGRhdGEgdXJsXG4gKiBAcGFyYW0gW21hcFN0YXRlXSAtIG1hcFN0YXRlIGlzIG9wdGlvbmFsXG4gKiBAdHlwZSB7dHlwZW9mIGltcG9ydCgnLi9tYXAtc3R5bGUtYWN0aW9ucycpLmlucHV0TWFwU3R5bGV9XG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBpbnB1dE1hcFN0eWxlID0gY3JlYXRlQWN0aW9uKEFjdGlvblR5cGVzLklOUFVUX01BUF9TVFlMRSwgKGlucHV0U3R5bGUsIG1hcFN0YXRlKSA9PiAoe1xuICBpbnB1dFN0eWxlLFxuICBtYXBTdGF0ZVxufSkpO1xuXG4vKipcbiAqIFVwZGF0ZSBgdmlzaWJsZUxheWVyR3JvdXBzYHRvIGNoYW5nZSBsYXllciBncm91cCB2aXNpYmlsaXR5XG4gKiBAbWVtYmVyb2YgbWFwU3R5bGVBY3Rpb25zXG4gKiBAcGFyYW0gbWFwU3R5bGUgbmV3IGNvbmZpZyBge3Zpc2libGVMYXllckdyb3Vwczoge2xhYmVsOiBmYWxzZSwgcm9hZDogdHJ1ZSwgYmFja2dyb3VuZDogdHJ1ZX19YFxuICogQHR5cGUge3R5cGVvZiBpbXBvcnQoJy4vbWFwLXN0eWxlLWFjdGlvbnMnKS5tYXBDb25maWdDaGFuZ2V9XG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBtYXBDb25maWdDaGFuZ2UgPSBjcmVhdGVBY3Rpb24oQWN0aW9uVHlwZXMuTUFQX0NPTkZJR19DSEFOR0UsIG1hcFN0eWxlID0+IG1hcFN0eWxlKTtcblxuLyoqXG4gKiBSZXF1ZXN0IG1hcCBzdHlsZSBzdHlsZSBvYmplY3QgYmFzZWQgb24gc3R5bGUudXJsLlxuICogQG1lbWJlcm9mIG1hcFN0eWxlQWN0aW9uc1xuICogQHR5cGUge3R5cGVvZiBpbXBvcnQoJy4vbWFwLXN0eWxlLWFjdGlvbnMnKS5yZXF1ZXN0TWFwU3R5bGVzfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgcmVxdWVzdE1hcFN0eWxlcyA9IGNyZWF0ZUFjdGlvbihcbiAgQWN0aW9uVHlwZXMuUkVRVUVTVF9NQVBfU1RZTEVTLFxuICBtYXBTdHlsZXMgPT4gbWFwU3R5bGVzXG4pO1xuLyoqXG4gKiBDYWxsYmFjayB3aGVuIGxvYWQgbWFwIHN0eWxlIHN1Y2Nlc3NcbiAqIEBtZW1iZXJvZiBtYXBTdHlsZUFjdGlvbnNcbiAqIEBwYXJhbSBuZXdTdHlsZXMgYSBge1tpZF06IHN0eWxlfWAgbWFwcGluZ1xuICogQHR5cGUge3R5cGVvZiBpbXBvcnQoJy4vbWFwLXN0eWxlLWFjdGlvbnMnKS5sb2FkTWFwU3R5bGVzfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgbG9hZE1hcFN0eWxlcyA9IGNyZWF0ZUFjdGlvbihBY3Rpb25UeXBlcy5MT0FEX01BUF9TVFlMRVMsIG5ld1N0eWxlcyA9PiBuZXdTdHlsZXMpO1xuXG4vKipcbiAqIENhbGxiYWNrIHdoZW4gbG9hZCBtYXAgc3R5bGUgZXJyb3JcbiAqIEBtZW1iZXJvZiBtYXBTdHlsZUFjdGlvbnNcbiAqIEBwYXJhbSBlcnJvclxuICogQHR5cGUge3R5cGVvZiBpbXBvcnQoJy4vbWFwLXN0eWxlLWFjdGlvbnMnKS5sb2FkTWFwU3R5bGVFcnJ9XG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBsb2FkTWFwU3R5bGVFcnIgPSBjcmVhdGVBY3Rpb24oQWN0aW9uVHlwZXMuTE9BRF9NQVBfU1RZTEVfRVJSLCBlcnJvciA9PiBlcnJvcik7XG5cbi8qKlxuICogQ2hhbmdlIHRvIGFub3RoZXIgbWFwIHN0eWxlLiBUaGUgc2VsZWN0ZWQgc3R5bGUgc2hvdWxkIGFscmVhZHkgYmVlbiBsb2FkZWQgaW50byBgbWFwU3R5bGUubWFwU3R5bGVzYFxuICogQG1lbWJlcm9mIG1hcFN0eWxlQWN0aW9uc1xuICogQHBhcmFtIHN0eWxlVHlwZSB0aGUgc3R5bGUgdG8gY2hhbmdlIHRvXG4gKiBAdHlwZSB7dHlwZW9mIGltcG9ydCgnLi9tYXAtc3R5bGUtYWN0aW9ucycpLm1hcFN0eWxlQ2hhbmdlfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgbWFwU3R5bGVDaGFuZ2UgPSBjcmVhdGVBY3Rpb24oQWN0aW9uVHlwZXMuTUFQX1NUWUxFX0NIQU5HRSwgc3R5bGVUeXBlID0+IHN0eWxlVHlwZSk7XG5cbi8qKlxuICogU2V0IFRpbGVzM0Qgc2tldGNoIHZhbHVlXG4gKiBAbWVtYmVyb2YgbWFwU3R5bGVBY3Rpb25zXG4gKiBAcGFyYW0gc2tldGNoVmFsdWUgLSAwLjAgLSAxLjBcbiAqIEB0eXBlIHt0eXBlb2YgaW1wb3J0KCcuL21hcC1zdHlsZS1hY3Rpb25zJykuc2V0VGlsZXMzZFNrZXRjaFZhbHVlfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0VGlsZXMzZFNrZXRjaFZhbHVlID0gY3JlYXRlQWN0aW9uKFxuICBBY3Rpb25UeXBlcy5TRVRfVElMRVNfM0RfU0tFVENIX1ZBTFVFLFxuICBza2V0Y2hWYWx1ZSA9PiBza2V0Y2hWYWx1ZVxuKTtcblxuLyoqXG4gKiBDYWxsYmFjayB3aGVuIGEgY3VzdG9tIG1hcCBzdHlsZSBvYmplY3QgaXMgcmVjZWl2ZWRcbiAqIEBtZW1iZXJvZiBtYXBTdHlsZUFjdGlvbnNcbiAqIEBwYXJhbSBjdXN0b21NYXBTdHlsZVxuICogQHBhcmFtIGN1c3RvbU1hcFN0eWxlLmljb25cbiAqIEBwYXJhbSBjdXN0b21NYXBTdHlsZS5zdHlsZVxuICogQHBhcmFtIGN1c3RvbU1hcFN0eWxlLmVycm9yXG4gKiBAdHlwZSB7dHlwZW9mIGltcG9ydCgnLi9tYXAtc3R5bGUtYWN0aW9ucycpLmxvYWRDdXN0b21NYXBTdHlsZX1cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRDdXN0b21NYXBTdHlsZSA9IGNyZWF0ZUFjdGlvbihcbiAgQWN0aW9uVHlwZXMuTE9BRF9DVVNUT01fTUFQX1NUWUxFLFxuICBjdXN0b21NYXBTdHlsZSA9PiBjdXN0b21NYXBTdHlsZVxuKTtcblxuLy8gU0VUXzNEX0JVSUxESU5HX0NPTE9SXG4vKipcbiAqIFNldCAzZCBidWlsZGluZyBsYXllciBncm91cCBjb2xvclxuICogQG1lbWJlcm9mIG1hcFN0eWxlQWN0aW9uc1xuICogQHBhcmFtIGNvbG9yIC0gW3IsIGcsIGJdXG4gKiBAdHlwZSB7dHlwZW9mIGltcG9ydCgnLi9tYXAtc3R5bGUtYWN0aW9ucycpLnNldDNkQnVpbGRpbmdDb2xvcn1cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldDNkQnVpbGRpbmdDb2xvciA9IGNyZWF0ZUFjdGlvbihBY3Rpb25UeXBlcy5TRVRfM0RfQlVJTERJTkdfQ09MT1IsIGNvbG9yID0+IGNvbG9yKTtcblxuLyoqXG4gKiBBY3Rpb25zIGhhbmRsZWQgbW9zdGx5IGJ5ICBgbWFwU3R5bGVgIHJlZHVjZXIuXG4gKiBUaGV5IG1hbmFnZSB0aGUgZGlzcGxheSBvZiBiYXNlIG1hcCwgc3VjaCBhcyBsb2FkaW5nIGFuZCByZWNlaXZpbmcgYmFzZSBtYXAgc3R5bGVzLFxuICogaGlkaW5nIGFuZCBzaG93aW5nIG1hcCBsYXllcnMsIHVzZXIgaW5wdXQgb2YgY3VzdG9tIG1hcCBzdHlsZSB1cmwuXG4gKlxuICogQHB1YmxpY1xuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuLy8gQHRzLWlnbm9yZVxuY29uc3QgbWFwU3R5bGVBY3Rpb25zID0gbnVsbDtcbi8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLXZhcnMgKi9cbiJdfQ==
@@ -198,11 +198,7 @@ var hueSaturationEffect = new _core.PostProcessEffect(_shadertools.hueSaturation
198
198
  });
199
199
  var vibranceEffect = new _core.PostProcessEffect(_shadertools.vibrance, {
200
200
  amount: 1
201
- });
202
- var inkEffect = new _core.PostProcessEffect(_shadertools.ink, {
203
- strength: 0.3
204
- });
205
- var allEffects = [lightingEffect, hueSaturationEffect, brightnessContrastEffect, vibranceEffect, inkEffect]; // Performance debugging
201
+ }); // Performance debugging
206
202
 
207
203
  var trackers = {};
208
204
  var PERF_DEBUG = (_window = window) === null || _window === void 0 ? void 0 : (_window$location = _window.location) === null || _window$location === void 0 ? void 0 : (_window$location$sear = _window$location.search) === null || _window$location$sear === void 0 ? void 0 : _window$location$sear.includes('PERF_DEBUG');
@@ -291,6 +287,9 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
291
287
  }
292
288
  }
293
289
  });
290
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "sketchValue", function (props) {
291
+ return props === null || props === void 0 ? void 0 : props.sketchValue;
292
+ });
294
293
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "layersSelector", function (props) {
295
294
  return props.layers;
296
295
  });
@@ -502,7 +501,8 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
502
501
  var _trackers$drawCount,
503
502
  _this$props$deckGlPro,
504
503
  _this2 = this,
505
- _this$props$deckGlPro2;
504
+ _this$props$deckGlPro2,
505
+ _mapStyle$bottomMapSt;
506
506
 
507
507
  var _this$props5 = this.props,
508
508
  mapState = _this$props5.mapState,
@@ -567,7 +567,7 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
567
567
 
568
568
  var effects = [];
569
569
 
570
- if (mapStyle.bottomMapStyle.type === 'gmaps_3d') {
570
+ if (((_mapStyle$bottomMapSt = mapStyle.bottomMapStyle) === null || _mapStyle$bottomMapSt === void 0 ? void 0 : _mapStyle$bottomMapSt.type) === 'gmaps_3d') {
571
571
  // Inject 3D tiles when map style is Voyager without layers
572
572
  deckGlLayers = deckGlLayers.filter(function (l) {
573
573
  return Boolean(l && l.clone);
@@ -579,6 +579,10 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
579
579
  deckGlLayers.push(tiles3d.clone());
580
580
 
581
581
  if (mapStyle.styleType === 'google-3d-sketch') {
582
+ var inkEffect = new _core.PostProcessEffect(_shadertools.ink, {
583
+ strength: mapStyle.sketchValue || 0.2
584
+ });
585
+ var allEffects = [lightingEffect, hueSaturationEffect, brightnessContrastEffect, vibranceEffect, inkEffect];
582
586
  effects = allEffects;
583
587
  }
584
588
  } // Limit renders
@@ -671,6 +675,7 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
671
675
  mapState = _this$props6.mapState,
672
676
  mapStyle = _this$props6.mapStyle,
673
677
  mapStateActions = _this$props6.mapStateActions,
678
+ sketchValue = _this$props6.sketchValue,
674
679
  layers = _this$props6.layers,
675
680
  MapComponent = _this$props6.MapComponent,
676
681
  datasets = _this$props6.datasets,
@@ -731,6 +736,7 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
731
736
  key: "bottom",
732
737
  ref: this._setMapboxMap,
733
738
  mapStyle: mapStyle.bottomMapStyle,
739
+ sketchValue: sketchValue,
734
740
  getCursor: this.props.hoverInfo ? function () {
735
741
  return 'pointer';
736
742
  } : undefined,
@@ -802,6 +808,7 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
802
808
  mapState: _propTypes["default"].object.isRequired,
803
809
  mapControls: _propTypes["default"].object.isRequired,
804
810
  mapStyle: _propTypes["default"].object.isRequired,
811
+ sketchValue: _propTypes["default"].number,
805
812
  mapboxApiAccessToken: _propTypes["default"].string.isRequired,
806
813
  mapboxApiUrl: _propTypes["default"].string,
807
814
  visStateActions: _propTypes["default"].object.isRequired,
@@ -831,4 +838,4 @@ function MapContainerFactory(MapPopover, MapControl, Editor) {
831
838
  MapContainer.displayName = 'MapContainer';
832
839
  return MapContainer;
833
840
  }
834
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL21hcC1jb250YWluZXIuanMiXSwibmFtZXMiOlsiR09PR0xFX01BUFNfQVBJX0tFWSIsIkN1c3RvbVRpbGUzRExheWVyIiwibGF5ZXIiLCJ2aWV3cG9ydCIsImxvZFpvb20iLCJNYXRoIiwibG9nMiIsInByb3BzIiwidGlsZSIsImxvZE1ldHJpY1ZhbHVlIiwiem9vbSIsIlRpbGUzRExheWVyIiwiaCIsInRpbGVzM2QiLCJpZCIsImRhdGEiLCJvblRpbGVzZXRMb2FkIiwidGlsZXNldDNkIiwib3B0aW9ucyIsIm1heGltdW1TY3JlZW5TcGFjZUVycm9yIiwiX29uVGlsZUxvYWRFcnJvciIsIm9uVHJhdmVyc2FsQ29tcGxldGUiLCJzZWxlY3RlZFRpbGVzIiwibWluTG9kIiwiSW5maW5pdHkiLCJmaWx0ZXJlZCIsImZpbHRlciIsInQiLCJsZW5ndGgiLCJtYXAiLCJib3VuZGluZ0JveCIsInJlZHVjZSIsImEiLCJuIiwibG9hZE9wdGlvbnMiLCJmZXRjaCIsImhlYWRlcnMiLCJvcGVyYXRpb24iLCJ0ZXJyYWluRXh0ZW5zaW9uIiwiVGVycmFpbkV4dGVuc2lvbiIsImFtYmllbnRMaWdodCIsIkFtYmllbnRMaWdodCIsImNvbG9yIiwiaW50ZW5zaXR5Iiwic3VuTGlnaHQiLCJfU3VuTGlnaHQiLCJ0aW1lc3RhbXAiLCJfc2hhZG93IiwibGlnaHRpbmdFZmZlY3QiLCJMaWdodGluZ0VmZmVjdCIsInNoYWRvd0NvbG9yIiwiYnJpZ2h0bmVzc0NvbnRyYXN0RWZmZWN0IiwiUG9zdFByb2Nlc3NFZmZlY3QiLCJicmlnaHRuZXNzQ29udHJhc3QiLCJjb250cmFzdCIsImJyaWdodG5lc3MiLCJodWVTYXR1cmF0aW9uRWZmZWN0IiwiaHVlU2F0dXJhdGlvbiIsImh1ZSIsInNhdHVyYXRpb24iLCJ2aWJyYW5jZUVmZmVjdCIsInZpYnJhbmNlIiwiYW1vdW50IiwiaW5rRWZmZWN0IiwiaW5rIiwic3RyZW5ndGgiLCJhbGxFZmZlY3RzIiwidHJhY2tlcnMiLCJQRVJGX0RFQlVHIiwid2luZG93IiwibG9jYXRpb24iLCJzZWFyY2giLCJpbmNsdWRlcyIsImRyYXdDb3VudCIsInZpZXdwb3J0Q2hhbmdlQ291bnQiLCJMYXllciIsIlRpbGVMYXllciIsIk1BUF9TVFlMRSIsImNvbnRhaW5lciIsImRpc3BsYXkiLCJwb3NpdGlvbiIsIndpZHRoIiwiaGVpZ2h0IiwidG9wIiwicG9pbnRlckV2ZW50cyIsIk1BUEJPWEdMX1NUWUxFX1VQREFURSIsIk1BUEJPWEdMX1JFTkRFUiIsIlRSQU5TSVRJT05fRFVSQVRJT04iLCJBdHRyaWJ1dGlvbiIsIk1hcENvbnRhaW5lckZhY3RvcnkiLCJkZXBzIiwiTWFwUG9wb3ZlckZhY3RvcnkiLCJNYXBDb250cm9sRmFjdG9yeSIsIkVkaXRvckZhY3RvcnkiLCJNYXBQb3BvdmVyIiwiTWFwQ29udHJvbCIsIkVkaXRvciIsIk1hcENvbnRhaW5lciIsImRpbWVuc2lvbnMiLCJwcmltYXJ5IiwiaXNFeHBvcnQiLCJtYXBTdGF0ZUFjdGlvbnMiLCJ1cGRhdGVNYXAiLCJsYXllcnMiLCJsYXllckRhdGEiLCJtYXBMYXllcnMiLCJsYXllck9yZGVyIiwicG9wdXBTZXR0aW5ncyIsImxheWVyc1NlbGVjdG9yIiwibGF5ZXJEYXRhU2VsZWN0b3IiLCJtYXBMYXllcnNTZWxlY3RvciIsInBvcHVwU2V0dGluZ3NTZWxlY3RvciIsInByZXBhcmVMYXllcnNUb1JlbmRlciIsInByZXBhcmVMYXllcnNGb3JEZWNrIiwiZmlsdGVycyIsImZpbHRlcnNTZWxlY3RvciIsImYiLCJ0eXBlIiwiRklMVEVSX1RZUEVTIiwicG9seWdvbiIsImxheWVyT3JkZXJTZWxlY3RvciIsImxheWVyc1RvUmVuZGVyU2VsZWN0b3IiLCJnZW5lcmF0ZU1hcGJveExheWVycyIsInZpc1N0YXRlQWN0aW9ucyIsIm9uTGF5ZXJDbGljayIsImlkeCIsImNvbG9yRG9tYWluIiwibGF5ZXJDb25maWdDaGFuZ2UiLCJsYXllcklkIiwiaW5kZXgiLCJtYXBJbmRleCIsInRvZ2dsZUxheWVyRm9yTWFwIiwicHJldmlvdXNMYXllcnMiLCJfdXBkYXRlTWFwYm94TGF5ZXJzIiwib25NYXBTdHlsZUxvYWRlZCIsIl9tYXAiLCJtYXBib3giLCJnZXRNYXAiLCJvbiIsIl9vbk1hcGJveFN0eWxlVXBkYXRlIiwib25NYXBSZW5kZXIiLCJnZXRNYXBib3hSZWYiLCJnbCIsImxheWVyQmxlbmRpbmciLCJlcnJvciIsIm1lc3NhZ2UiLCJzZXRTdGF0ZSIsImNvbnRleHRMb3N0IiwiZXJyb3JNZXNzYWdlIiwibm90aWZpY2F0aW9uSWQiLCJfZGVja0dMRXJyb3JzRWxhcHNlZCIsImxhc3RTaG93biIsIkRhdGUiLCJub3ciLCJUSFJPVFRMRV9OT1RJRklDQVRJT05fVElNRSIsInVpU3RhdGVBY3Rpb25zIiwiYWRkTm90aWZpY2F0aW9uIiwidmlld1N0YXRlIiwiaW50ZXJhY3Rpb25TdGF0ZSIsImluY3JlbWVudCIsInJlc3RWaWV3U3RhdGUiLCJuZXh0IiwiaW5UcmFuc2l0aW9uIiwib25WaWV3U3RhdGVDaGFuZ2UiLCJwYW5lbElkIiwidG9nZ2xlTWFwQ29udHJvbCIsIl9kZWNrIiwiX3JlZiIsIl9oYXNSZW5kZXJlZCIsIl9tb3VzZVBvc2l0aW9uIiwiY3VycmVudCIsIl9oYW5kbGVSZXNpemUiLCJzdGF0ZSIsIm9mZiIsIm9uRGVja0luaXRpYWxpemVkIiwibGF5ZXJzVG9SZW5kZXIiLCJsbmdMYXQiLCJzY3JlZW5Db29yZCIsInByb2plY3QiLCJ4IiwieSIsImxheWVyc0ZvckRlY2siLCJtYXBTdGF0ZSIsIm1hcFN0eWxlIiwibWFwYm94QXBpQWNjZXNzVG9rZW4iLCJtYXBib3hBcGlVcmwiLCJtYXNrUG9seWdvbiIsImRlY2tHbExheWVycyIsImRlY2tHbFByb3BzIiwiZGF0YUxheWVycyIsInNsaWNlIiwicmV2ZXJzZSIsIm92ZXJsYXlzIiwibGF5ZXJDYWxsYmFja3MiLCJvblNldExheWVyRG9tYWluIiwidmFsIiwiX29uTGF5ZXJTZXREb21haW4iLCJsYXllck92ZXJsYXkiLCJjb25jYXQiLCJsYXllcnNPblRvcCIsInB1c2giLCJTb2xpZFBvbHlnb25MYXllciIsIk1BU0tfTEFZRVJfSUQiLCJPUEVSQVRJT04iLCJNQVNLIiwiZGF0YUNvbXBhcmF0b3IiLCJvbGREYXRhIiwiZ2V0UG9seWdvbiIsImQiLCJnZXRGaWxsQ29sb3IiLCJ2aXNpYmxlTGF5ZXJHcm91cHMiLCJUaHJlZURCdWlsZGluZ0xheWVyIiwidGhyZWVEQnVpbGRpbmdDb2xvciIsInVwZGF0ZVRyaWdnZXJzIiwiZWZmZWN0cyIsImJvdHRvbU1hcFN0eWxlIiwibCIsIkJvb2xlYW4iLCJjbG9uZSIsImV4dGVuc2lvbnMiLCJzdHlsZVR5cGUiLCJoYXNSZW5kZXJlZCIsInJlc2V0SGFzUmVuZGVyZWQiLCJfb25WaWV3cG9ydENoYW5nZSIsIm9wdHMiLCJfb25CZWZvcmVSZW5kZXIiLCJvbkxheWVySG92ZXIiLCJlIiwiX29uRGVja0Vycm9yIiwiY29tcCIsImRlY2siLCJfb25EZWNrSW5pdGlhbGl6ZWQiLCJpc05hTiIsInZpc2liaWxpdHlCeVpvb20iLCJtaW4iLCJtYXgiLCJjdXJyZW50Wm9vbVJhbmdlIiwicm91bmQiLCJtYXBib3hMYXllcnMiLCJtYXBib3hMYXllcnNTZWxlY3RvciIsIk9iamVjdCIsImtleXMiLCJpc1N0eWxlTG9hZGVkIiwiTWFwQ29tcG9uZW50IiwiZGF0YXNldHMiLCJtYXBDb250cm9scyIsImxvY2FsZSIsImludGVyYWN0aW9uQ29uZmlnIiwiZWRpdG9yIiwibGF5ZXJzRm9yRGVja1NlbGVjdG9yIiwibWFwUHJvcHMiLCJwcmVzZXJ2ZURyYXdpbmdCdWZmZXIiLCJ0cmFuc2Zvcm1SZXF1ZXN0IiwiaXNFZGl0IiwibWFwRHJhdyIsImFjdGl2ZSIsImhhc0dlb2NvZGVyTGF5ZXIiLCJmaW5kIiwiR0VPQ09ERVJfTEFZRVJfSUQiLCJpc1NwbGl0IiwibW91c2VQb3NpdGlvbiIsIm5lZWRzQmFzZW1hcCIsIkxPQ0FMRV9DT0RFUyIsImRyYWdSb3RhdGUiLCJyZWFkT25seSIsInNjYWxlIiwiZ2VvY29kZXIiLCJlbmFibGVkIiwidG9nZ2xlUGVyc3BlY3RpdmUiLCJ0b2dnbGVTcGxpdE1hcCIsIl9oYW5kbGVNYXBUb2dnbGVMYXllciIsIl90b2dnbGVNYXBDb250cm9sIiwic2V0RWRpdG9yTW9kZSIsInNldExvY2FsZSIsInRvZ2dsZUVkaXRvclZpc2liaWxpdHkiLCJfc2V0TWFwYm94TWFwIiwiaG92ZXJJbmZvIiwidW5kZWZpbmVkIiwiZXZ0IiwicG9pbnQiLCJfcmVuZGVyRGVja092ZXJsYXkiLCJfcmVuZGVyTWFwYm94T3ZlcmxheXMiLCJwb2x5Z29uRmlsdGVycyIsImRlbGV0ZUZlYXR1cmUiLCJzZXRTZWxlY3RlZEZlYXR1cmUiLCJzZXRGZWF0dXJlcyIsInNldFBvbHlnb25GaWx0ZXJMYXllciIsInZpc2libGUiLCJ0b3BNYXBTdHlsZSIsIl9yZW5kZXJNYXBQb3BvdmVyIiwiZ2xvYmUiLCJfcmVuZGVyTWFwIiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsInN0cmluZyIsImFycmF5T2YiLCJhbnkiLCJib29sIiwiY2xpY2tlZCIsIm9uTWFwVG9nZ2xlTGF5ZXIiLCJmdW5jIiwibnVtYmVyIiwiTWFwYm94R0xNYXAiLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBUUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBT0E7O0FBQ0E7O0FBR0E7O0FBNkVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUExRUEsSUFBTUEsbUJBQW1CLEdBQUcseUNBQTVCOztJQUVNQyxpQjs7Ozs7Ozs7Ozs7O1dBQ0osOEJBQWtDO0FBQUEsVUFBbEJDLEtBQWtCLFFBQWxCQSxLQUFrQjtBQUFBLFVBQVhDLFFBQVcsUUFBWEEsUUFBVztB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QUFBQSxhQUFhLEVBQUUwTCxzQkFBVUM7QUE5QlIsR0FGcUQ7QUFBQSxtQ0FDcEVyTSxZQURvRSxrQkFtQ2xEO0FBQ3BCa0osSUFBQUEsWUFBWSxFQUFFNkQsc0JBRE07QUFFcEJwSCxJQUFBQSxXQUFXLEVBQUUsRUFGTztBQUdwQjNELElBQUFBLEtBQUssRUFBRSxDQUhhO0FBSXBCOUIsSUFBQUEsT0FBTyxFQUFFO0FBSlcsR0FuQ2tEO0FBNGhCMUVGLEVBQUFBLFlBQVksQ0FBQ2dOLFdBQWIsR0FBMkIsY0FBM0I7QUFFQSxTQUFPaE4sWUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuLy8gbGlicmFyaWVzXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnQsIGNyZWF0ZVJlZn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBNYXBib3hHTE1hcCBmcm9tICdyZWFjdC1tYXAtZ2wnO1xuaW1wb3J0IERlY2tHTCBmcm9tICdAZGVjay5nbC9yZWFjdCc7XG5pbXBvcnQge2NyZWF0ZVNlbGVjdG9yfSBmcm9tICdyZXNlbGVjdCc7XG5pbXBvcnQge1xuICBPUEVSQVRJT04sXG4gIExheWVyLFxuICBBbWJpZW50TGlnaHQsXG4gIExpZ2h0aW5nRWZmZWN0LFxuICBQb3N0UHJvY2Vzc0VmZmVjdCxcbiAgX1N1bkxpZ2h0XG59IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IHticmlnaHRuZXNzQ29udHJhc3QsIGh1ZVNhdHVyYXRpb24sIGluaywgdmlicmFuY2V9IGZyb20gJ0BsdW1hLmdsL3NoYWRlcnRvb2xzJztcbmltcG9ydCB7U29saWRQb2x5Z29uTGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2xheWVycyc7XG5pbXBvcnQge1RpbGVMYXllcn0gZnJvbSAnQGRlY2suZ2wvZ2VvLWxheWVycyc7XG5pbXBvcnQge2Vycm9yTm90aWZpY2F0aW9ufSBmcm9tICd1dGlscy9ub3RpZmljYXRpb25zLXV0aWxzJztcblxuLy8gY29tcG9uZW50c1xuaW1wb3J0IE1hcFBvcG92ZXJGYWN0b3J5IGZyb20gJ2NvbXBvbmVudHMvbWFwL21hcC1wb3BvdmVyJztcbmltcG9ydCBNYXBDb250cm9sRmFjdG9yeSBmcm9tICdjb21wb25lbnRzL21hcC9tYXAtY29udHJvbCc7XG5pbXBvcnQge1N0eWxlZE1hcENvbnRhaW5lciwgU3R5bGVkQXR0cmJ1dGlvbn0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgRWRpdG9yRmFjdG9yeSBmcm9tICcuL2VkaXRvci9lZGl0b3InO1xuXG4vLyB1dGlsc1xuaW1wb3J0IHtnZW5lcmF0ZU1hcGJveExheWVycywgdXBkYXRlTWFwYm94TGF5ZXJzfSBmcm9tICdsYXllcnMvbWFwYm94LXV0aWxzJztcbmltcG9ydCB7c2V0TGF5ZXJCbGVuZGluZ30gZnJvbSAndXRpbHMvZ2wtdXRpbHMnO1xuaW1wb3J0IHt0cmFuc2Zvcm1SZXF1ZXN0fSBmcm9tICd1dGlscy9tYXAtc3R5bGUtdXRpbHMvbWFwYm94LXV0aWxzJztcbmltcG9ydCB7cmVuZGVyRGVja0dsTGF5ZXIsIHByZXBhcmVMYXllcnNUb1JlbmRlciwgcHJlcGFyZUxheWVyc0ZvckRlY2t9IGZyb20gJ3V0aWxzL2xheWVyLXV0aWxzJztcblxuLy8gZGVmYXVsdC1zZXR0aW5nc1xuaW1wb3J0IFRocmVlREJ1aWxkaW5nTGF5ZXIgZnJvbSAnZGVja2dsLWxheWVycy8zZC1idWlsZGluZy1sYXllci8zZC1idWlsZGluZy1sYXllcic7XG5pbXBvcnQge1xuICBGSUxURVJfVFlQRVMsXG4gIEdFT0NPREVSX0xBWUVSX0lELFxuICBNQVNLX0xBWUVSX0lELFxuICBUSFJPVFRMRV9OT1RJRklDQVRJT05fVElNRVxufSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5cbmltcG9ydCB7b2JzZXJ2ZURpbWVuc2lvbnMsIHVub2JzZXJ2ZURpbWVuc2lvbnN9IGZyb20gJy4uL3V0aWxzL29ic2VydmUtZGltZW5zaW9ucyc7XG5pbXBvcnQge0xPQ0FMRV9DT0RFU30gZnJvbSAnbG9jYWxpemF0aW9uL2xvY2FsZXMnO1xuXG4vLyAzRCB0aWxlc1xuaW1wb3J0IHtfVGVycmFpbkV4dGVuc2lvbiBhcyBUZXJyYWluRXh0ZW5zaW9ufSBmcm9tICdAZGVjay5nbC9leHRlbnNpb25zJztcbmltcG9ydCB7VGlsZTNETGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2dlby1sYXllcnMnO1xuXG5jb25zdCBHT09HTEVfTUFQU19BUElfS0VZID0gJ0FJemFTeUNwdlF5bWM1d2pTWUlzeHkzUlYxd2lkTTNwM2g3OENBayc7XG5cbmNsYXNzIEN1c3RvbVRpbGUzRExheWVyIGV4dGVuZHMgVGlsZTNETGF5ZXIge1xuICBmaWx0ZXJTdWJMYXllcih7bGF5ZXIsIHZpZXdwb3J0fSkge1xuICAgIC8vIERvIG5vdCBzaG93IHRpbGVzIHdoaWNoIGFyZSBtYW55IGxheWVycyB0b28gbG93IGluIHJlc29sdXRpb24gKGF2b2lkcyBhcnRpZmFjdHMpXG4gICAgY29uc3QgbG9kWm9vbSA9IDIyIC0gTWF0aC5sb2cyKGxheWVyLnByb3BzLnRpbGUubG9kTWV0cmljVmFsdWUpO1xuICAgIHJldHVybiBsb2Rab29tID4gdmlld3BvcnQ/Lnpvb207XG4gIH1cbn1cblxubGV0IGggPSAwO1xuY29uc3QgdGlsZXMzZCA9IG5ldyBDdXN0b21UaWxlM0RMYXllcih7XG4gIGlkOiAnZ29vZ2xlLTNkLXRpbGVzJyxcbiAgZGF0YTogJ2h0dHBzOi8vdGlsZS5nb29nbGVhcGlzLmNvbS92MS8zZHRpbGVzL3Jvb3QuanNvbicsXG4gIG9uVGlsZXNldExvYWQ6IHRpbGVzZXQzZCA9PiB7XG4gICAgdGlsZXNldDNkLm9wdGlvbnMubWF4aW11bVNjcmVlblNwYWNlRXJyb3IgPSA1O1xuICAgIHRpbGVzZXQzZC5fb25UaWxlTG9hZEVycm9yID0gKCkgPT4ge307XG4gICAgdGlsZXNldDNkLm9wdGlvbnMub25UcmF2ZXJzYWxDb21wbGV0ZSA9IHNlbGVjdGVkVGlsZXMgPT4ge1xuICAgICAgbGV0IG1pbkxvZCA9IEluZmluaXR5O1xuICAgICAgZm9yIChjb25zdCB7bG9kTWV0cmljVmFsdWV9IG9mIHNlbGVjdGVkVGlsZXMpIHtcbiAgICAgICAgaWYgKGxvZE1ldHJpY1ZhbHVlIDwgbWluTG9kKSBtaW5Mb2QgPSBsb2RNZXRyaWNWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZpbHRlcmVkID0gc2VsZWN0ZWRUaWxlcy5maWx0ZXIodCA9PiB0LmxvZE1ldHJpY1ZhbHVlIDwgNCAqIG1pbkxvZCk7XG5cbiAgICAgIC8vIEhhY2t5IHdheSB0byBvYnRhaW4gaGVpZ2h0IGFib3ZlIHNlYSBsZXZlbCB0byBpbXByb3ZlIGNvbnRyb2xzXG4gICAgICBpZiAoZmlsdGVyZWQubGVuZ3RoKSB7XG4gICAgICAgIGggPSBmaWx0ZXJlZC5tYXAodCA9PiB0LmJvdW5kaW5nQm94WzBdWzJdKS5yZWR1Y2UoKGEsIG4pID0+IGEgKyBuKSAvIGZpbHRlcmVkLmxlbmd0aDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHNlbGVjdGVkVGlsZXM7XG4gICAgfTtcbiAgfSxcbiAgbG9hZE9wdGlvbnM6IHtcbiAgICBmZXRjaDoge2hlYWRlcnM6IHsnWC1HT09HLUFQSS1LRVknOiBHT09HTEVfTUFQU19BUElfS0VZfX1cbiAgfSxcbiAgLy8gQHRzLWlnbm9yZVxuICBvcGVyYXRpb246ICd0ZXJyYWluK2RyYXcnIC8vIFJlcXVpcmVkIHRvIGVuYWJsZSBkcmFwaW5nIG9mIG90aGVyIGxheWVyc1xufSk7XG5jb25zdCB0ZXJyYWluRXh0ZW5zaW9uID0gbmV3IFRlcnJhaW5FeHRlbnNpb24oKTtcblxuLy8gRWZmZWN0c1xuY29uc3QgYW1iaWVudExpZ2h0ID0gbmV3IEFtYmllbnRMaWdodCh7Y29sb3I6IFsyNTUsIDI1NSwgMjU1XSwgaW50ZW5zaXR5OiAxfSk7XG5jb25zdCBzdW5MaWdodCA9IG5ldyBfU3VuTGlnaHQoe1xuICB0aW1lc3RhbXA6IDE2ODM4Njk5MTU3NzcsXG4gIGNvbG9yOiBbMjU1LCAyNTUsIDI1NV0sXG4gIGludGVuc2l0eTogMSxcbiAgX3NoYWRvdzogdHJ1ZVxufSk7XG5jb25zdCBsaWdodGluZ0VmZmVjdCA9IG5ldyBMaWdodGluZ0VmZmVjdCh7XG4gIGFtYmllbnRMaWdodCxcbiAgc3VuTGlnaHRcbn0pO1xubGlnaHRpbmdFZmZlY3Quc2hhZG93Q29sb3IgPSBbMCwgMCwgMCwgMF07XG5cbmNvbnN0IGJyaWdodG5lc3NDb250cmFzdEVmZmVjdCA9IG5ldyBQb3N0UHJvY2Vzc0VmZmVjdChicmlnaHRuZXNzQ29udHJhc3QsIHtcbiAgY29udHJhc3Q6IDAsXG4gIGJyaWdodG5lc3M6IDAuMlxufSk7XG5cbmNvbnN0IGh1ZVNhdHVyYXRpb25FZmZlY3QgPSBuZXcgUG9zdFByb2Nlc3NFZmZlY3QoaHVlU2F0dXJhdGlvbiwge2h1ZTogMCwgc2F0dXJhdGlvbjogMC4zfSk7XG5cbmNvbnN0IHZpYnJhbmNlRWZmZWN0ID0gbmV3IFBvc3RQcm9jZXNzRWZmZWN0KHZpYnJhbmNlLCB7YW1vdW50OiAxfSk7XG5cbmNvbnN0IGlua0VmZmVjdCA9IG5ldyBQb3N0UHJvY2Vzc0VmZmVjdChpbmssIHtzdHJlbmd0aDogMC4zfSk7XG5cbmNvbnN0IGFsbEVmZmVjdHMgPSBbXG4gIGxpZ2h0aW5nRWZmZWN0LFxuICBodWVTYXR1cmF0aW9uRWZmZWN0LFxuICBicmlnaHRuZXNzQ29udHJhc3RFZmZlY3QsXG4gIHZpYnJhbmNlRWZmZWN0LFxuICBpbmtFZmZlY3Rcbl07XG5cbi8vIFBlcmZvcm1hbmNlIGRlYnVnZ2luZ1xuaW1wb3J0IHtjcmVhdGVUcmFja2VyLCBjcmVhdGVMYXllclVwZGF0ZVRyYWNrZXIsIHJlbmRlclBlcmZvcm1hbmNlU3RhdHN9IGZyb20gJy4vcGVyZm9ybWFuY2UnO1xuY29uc3QgdHJhY2tlcnMgPSB7fTtcbmNvbnN0IFBFUkZfREVCVUcgPSB3aW5kb3c/LmxvY2F0aW9uPy5zZWFyY2g/LmluY2x1ZGVzKCdQRVJGX0RFQlVHJyk7XG5pZiAoUEVSRl9ERUJVRykge1xuICB0cmFja2Vycy5kcmF3Q291bnQgPSBjcmVhdGVUcmFja2VyKCdkcmF3cycpO1xuICB0cmFja2Vycy52aWV3cG9ydENoYW5nZUNvdW50ID0gY3JlYXRlVHJhY2tlcigndmlld3BvcnQgY2hhbmdlcycpO1xuICBjcmVhdGVMYXllclVwZGF0ZVRyYWNrZXIoJ3N0YXRlIHVwZGF0ZXMnLCBbTGF5ZXIsIFRpbGVMYXllcl0pO1xufVxuXG4vKiogQHR5cGUge3tba2V5OiBzdHJpbmddOiBSZWFjdC5DU1NQcm9wZXJ0aWVzfX0gKi9cbmNvbnN0IE1BUF9TVFlMRSA9IHtcbiAgY29udGFpbmVyOiB7XG4gICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBoZWlnaHQ6ICcxMDAlJ1xuICB9LFxuICB0b3A6IHtcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICB0b3A6ICcwcHgnLFxuICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIGhlaWdodDogJzEwMCUnXG4gIH1cbn07XG5cbmNvbnN0IE1BUEJPWEdMX1NUWUxFX1VQREFURSA9ICdzdHlsZS5sb2FkJztcbmNvbnN0IE1BUEJPWEdMX1JFTkRFUiA9ICdyZW5kZXInO1xuY29uc3QgVFJBTlNJVElPTl9EVVJBVElPTiA9IDA7XG5cbmV4cG9ydCBjb25zdCBBdHRyaWJ1dGlvbiA9ICgpID0+IChcbiAgPFN0eWxlZEF0dHJidXRpb24+XG4gICAgPGRpdiBjbGFzc05hbWU9XCJhdHRyaXRpb24tbG9nb1wiPlxuICAgICAgQmFzZW1hcCBieTpcbiAgICAgIDxhXG4gICAgICAgIGNsYXNzTmFtZT1cIm1hcGJveGdsLWN0cmwtbG9nb1wiXG4gICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cubWFwYm94LmNvbS9cIlxuICAgICAgICBhcmlhLWxhYmVsPVwiTWFwYm94IGxvZ29cIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzTmFtZT1cImF0dHJpdGlvbi1saW5rXCI+XG4gICAgICA8YSBocmVmPVwiaHR0cHM6Ly9rZXBsZXIuZ2wvcG9saWN5L1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj5cbiAgICAgICAgwqkga2VwbGVyLmdsIHx7JyAnfVxuICAgICAgPC9hPlxuICAgICAgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm1hcGJveC5jb20vYWJvdXQvbWFwcy9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+XG4gICAgICAgIMKpIE1hcGJveCB8eycgJ31cbiAgICAgIDwvYT5cbiAgICAgIDxhIGhyZWY9XCJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj5cbiAgICAgICAgwqkgT3BlblN0cmVldE1hcCB8eycgJ31cbiAgICAgIDwvYT5cbiAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5tYXBib3guY29tL21hcC1mZWVkYmFjay9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+XG4gICAgICAgIDxzdHJvbmc+SW1wcm92ZSB0aGlzIG1hcDwvc3Ryb25nPlxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L1N0eWxlZEF0dHJidXRpb24+XG4pO1xuXG5NYXBDb250YWluZXJGYWN0b3J5LmRlcHMgPSBbTWFwUG9wb3ZlckZhY3RvcnksIE1hcENvbnRyb2xGYWN0b3J5LCBFZGl0b3JGYWN0b3J5XTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTWFwQ29udGFpbmVyRmFjdG9yeShNYXBQb3BvdmVyLCBNYXBDb250cm9sLCBFZGl0b3IpIHtcbiAgY2xhc3MgTWFwQ29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgLy8gcmVxdWlyZWRcbiAgICAgIGRhdGFzZXRzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgaW50ZXJhY3Rpb25Db25maWc6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIGxheWVyQmxlbmRpbmc6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIGxheWVyT3JkZXI6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLmlzUmVxdWlyZWQsXG4gICAgICBsYXllckRhdGE6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLmlzUmVxdWlyZWQsXG4gICAgICBsYXllcnM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLmlzUmVxdWlyZWQsXG4gICAgICBmaWx0ZXJzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KS5pc1JlcXVpcmVkLFxuICAgICAgbWFwU3RhdGU6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIG1hcENvbnRyb2xzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBtYXBTdHlsZTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgbWFwYm94QXBpQWNjZXNzVG9rZW46IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIG1hcGJveEFwaVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIHZpc1N0YXRlQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgbWFwU3RhdGVBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICB1aVN0YXRlQWN0aW9uczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuXG4gICAgICAvLyBvcHRpb25hbFxuICAgICAgcHJpbWFyeTogUHJvcFR5cGVzLmJvb2wsIC8vIHByaW1hcnkgb25lIHdpbGwgYmUgcmVwb3J0aW5nIGl0cyBzaXplIHRvIGFwcFN0YXRlXG4gICAgICByZWFkT25seTogUHJvcFR5cGVzLmJvb2wsXG4gICAgICBpc0V4cG9ydDogUHJvcFR5cGVzLmJvb2wsXG4gICAgICBjbGlja2VkOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgaG92ZXJJbmZvOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgbWFwTGF5ZXJzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgb25NYXBUb2dnbGVMYXllcjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICBvbk1hcFN0eWxlTG9hZGVkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgIG9uTWFwUmVuZGVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgIGdldE1hcGJveFJlZjogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICBpbmRleDogUHJvcFR5cGVzLm51bWJlcixcbiAgICAgIHBvcHVwU2V0dGluZ3M6IFByb3BUeXBlcy5vYmplY3RcbiAgICB9O1xuXG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIE1hcENvbXBvbmVudDogTWFwYm94R0xNYXAsXG4gICAgICBkZWNrR2xQcm9wczoge30sXG4gICAgICBpbmRleDogMCxcbiAgICAgIHByaW1hcnk6IHRydWVcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgIHN1cGVyKHByb3BzKTtcblxuICAgICAgdGhpcy5wcmV2aW91c0xheWVycyA9IHtcbiAgICAgICAgLy8gW2xheWVycy5pZF06IG1hcGJveExheWVyQ29uZmlnXG4gICAgICB9O1xuXG4gICAgICB0aGlzLl9kZWNrID0gbnVsbDtcbiAgICAgIHRoaXMuX3JlZiA9IGNyZWF0ZVJlZigpO1xuXG4gICAgICAvLyBSZW5kZXIgbGltaXRpbmcgbWVjaGFuaXNtXG4gICAgICB0aGlzLl9oYXNSZW5kZXJlZCA9IGNyZWF0ZVJlZigpO1xuICAgICAgdGhpcy5fbW91c2VQb3NpdGlvbiA9IGNyZWF0ZVJlZigpO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgb2JzZXJ2ZURpbWVuc2lvbnModGhpcy5fcmVmLmN1cnJlbnQsIHRoaXMuX2hhbmRsZVJlc2l6ZSk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgICAgY29uc3QgY29udGV4dExvc3QgPSB0aGlzLnN0YXRlPy5jb250ZXh0TG9zdDtcblxuICAgICAgaWYgKGNvbnRleHRMb3N0KSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby1kaWQtdXBkYXRlLXNldC1zdGF0ZVxuICAgICAgICB0aGlzLnNldFN0YXRlKHtjb250ZXh0TG9zdDogZmFsc2V9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIC8vIHVuYmluZCBtYXBib3hnbCBldmVudCBsaXN0ZW5lclxuICAgICAgaWYgKHRoaXMuX21hcCkge1xuICAgICAgICB0aGlzLl9tYXAub2ZmKE1BUEJPWEdMX1NUWUxFX1VQREFURSk7XG4gICAgICAgIHRoaXMuX21hcC5vZmYoTUFQQk9YR0xfUkVOREVSKTtcbiAgICAgIH1cbiAgICAgIHVub2JzZXJ2ZURpbWVuc2lvbnModGhpcy5fcmVmLmN1cnJlbnQpO1xuICAgIH1cblxuICAgIF9oYW5kbGVSZXNpemUgPSBkaW1lbnNpb25zID0+IHtcbiAgICAgIGNvbnN0IHtwcmltYXJ5LCBpc0V4cG9ydH0gPSB0aGlzLnByb3BzO1xuICAgICAgaWYgKHByaW1hcnkpIHtcbiAgICAgICAgY29uc3Qge21hcFN0YXRlQWN0aW9uc30gPSB0aGlzLnByb3BzO1xuICAgICAgICBpZiAoIWlzRXhwb3J0ICYmIGRpbWVuc2lvbnMgJiYgZGltZW5zaW9ucy53aWR0aCA+IDAgJiYgZGltZW5zaW9ucy5oZWlnaHQgPiAwKSB7XG4gICAgICAgICAgbWFwU3RhdGVBY3Rpb25zLnVwZGF0ZU1hcChkaW1lbnNpb25zKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBsYXllcnNTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLmxheWVycztcbiAgICBsYXllckRhdGFTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLmxheWVyRGF0YTtcbiAgICBtYXBMYXllcnNTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLm1hcExheWVycztcbiAgICBsYXllck9yZGVyU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5sYXllck9yZGVyO1xuICAgIHBvcHVwU2V0dGluZ3NTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLnBvcHVwU2V0dGluZ3M7XG5cbiAgICBsYXllcnNUb1JlbmRlclNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB0aGlzLmxheWVyc1NlbGVjdG9yLFxuICAgICAgdGhpcy5sYXllckRhdGFTZWxlY3RvcixcbiAgICAgIHRoaXMubWFwTGF5ZXJzU2VsZWN0b3IsXG4gICAgICB0aGlzLnBvcHVwU2V0dGluZ3NTZWxlY3RvcixcbiAgICAgIHByZXBhcmVMYXllcnNUb1JlbmRlclxuICAgICk7XG4gICAgbGF5ZXJzRm9yRGVja1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB0aGlzLmxheWVyc1NlbGVjdG9yLFxuICAgICAgdGhpcy5sYXllckRhdGFTZWxlY3RvcixcbiAgICAgIHByZXBhcmVMYXllcnNGb3JEZWNrXG4gICAgKTtcbiAgICBmaWx0ZXJzU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5maWx0ZXJzO1xuICAgIHBvbHlnb25GaWx0ZXJzID0gY3JlYXRlU2VsZWN0b3IodGhpcy5maWx0ZXJzU2VsZWN0b3IsIGZpbHRlcnMgPT5cbiAgICAgIGZpbHRlcnMuZmlsdGVyKGYgPT4gZi50eXBlID09PSBGSUxURVJfVFlQRVMucG9seWdvbilcbiAgICApO1xuXG4gICAgbWFwYm94TGF5ZXJzU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIHRoaXMubGF5ZXJzU2VsZWN0b3IsXG4gICAgICB0aGlzLmxheWVyRGF0YVNlbGVjdG9yLFxuICAgICAgdGhpcy5sYXllck9yZGVyU2VsZWN0b3IsXG4gICAgICB0aGlzLmxheWVyc1RvUmVuZGVyU2VsZWN0b3IsXG4gICAgICBnZW5lcmF0ZU1hcGJveExheWVyc1xuICAgICk7XG5cbiAgICAvKiBjb21wb25lbnQgcHJpdmF0ZSBmdW5jdGlvbnMgKi9cbiAgICBfb25DbG9zZU1hcFBvcG92ZXIgPSAoKSA9PiB7XG4gICAgICB0aGlzLnByb3BzLnZpc1N0YXRlQWN0aW9ucy5vbkxheWVyQ2xpY2sobnVsbCk7XG4gICAgfTtcblxuICAgIF9vbkxheWVyU2V0RG9tYWluID0gKGlkeCwgY29sb3JEb21haW4pID0+IHtcbiAgICAgIHRoaXMucHJvcHMudmlzU3RhdGVBY3Rpb25zLmxheWVyQ29uZmlnQ2hhbmdlKHRoaXMucHJvcHMubGF5ZXJzW2lkeF0sIHtcbiAgICAgICAgY29sb3JEb21haW5cbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfaGFuZGxlTWFwVG9nZ2xlTGF5ZXIgPSBsYXllcklkID0+IHtcbiAgICAgIGNvbnN0IHtpbmRleDogbWFwSW5kZXggPSAwLCB2aXNTdGF0ZUFjdGlvbnN9ID0gdGhpcy5wcm9wcztcbiAgICAgIHZpc1N0YXRlQWN0aW9ucy50b2dnbGVMYXllckZvck1hcChtYXBJbmRleCwgbGF5ZXJJZCk7XG4gICAgfTtcblxuICAgIF9vbk1hcGJveFN0eWxlVXBkYXRlID0gKCkgPT4ge1xuICAgICAgLy8gZm9yY2UgcmVmcmVzaCBtYXBib3hnbCBsYXllcnNcbiAgICAgIHRoaXMucHJldmlvdXNMYXllcnMgPSB7fTtcbiAgICAgIHRoaXMuX3VwZGF0ZU1hcGJveExheWVycygpO1xuXG4gICAgICBpZiAodHlwZW9mIHRoaXMucHJvcHMub25NYXBTdHlsZUxvYWRlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLnByb3BzLm9uTWFwU3R5bGVMb2FkZWQodGhpcy5fbWFwKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3NldE1hcGJveE1hcCA9IG1hcGJveCA9PiB7XG4gICAgICBpZiAoIXRoaXMuX21hcCAmJiBtYXBib3gpIHtcbiAgICAgICAgdGhpcy5fbWFwID0gbWFwYm94LmdldE1hcCgpO1xuICAgICAgICAvLyBpIG5vdGljZWQgaW4gY2VydGFpbiBjb250ZXh0IHdlIGRvbid0IGFjY2VzcyB0aGUgYWN0dWFsIG1hcCBlbGVtZW50XG4gICAgICAgIGlmICghdGhpcy5fbWFwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIGJpbmQgbWFwYm94Z2wgZXZlbnQgbGlzdGVuZXJcbiAgICAgICAgdGhpcy5fbWFwLm9uKE1BUEJPWEdMX1NUWUxFX1VQREFURSwgdGhpcy5fb25NYXBib3hTdHlsZVVwZGF0ZSk7XG5cbiAgICAgICAgdGhpcy5fbWFwLm9uKE1BUEJPWEdMX1JFTkRFUiwgKCkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vbk1hcFJlbmRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vbk1hcFJlbmRlcih0aGlzLl9tYXApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnByb3BzLmdldE1hcGJveFJlZikge1xuICAgICAgICAvLyBUaGUgcGFyZW50IGNvbXBvbmVudCBjYW4gZ2FpbiBhY2Nlc3MgdG8gb3VyIE1hcGJveEdsTWFwIGJ5XG4gICAgICAgIC8vIHByb3ZpZGluZyB0aGlzIGNhbGxiYWNrLiBOb3RlIHRoYXQgJ21hcGJveCcgd2lsbCBiZSBudWxsIHdoZW4gdGhlXG4gICAgICAgIC8vIHJlZiBpcyB1bnNldCAoZS5nLiB3aGVuIGEgc3BsaXQgbWFwIGlzIGNsb3NlZCkuXG4gICAgICAgIHRoaXMucHJvcHMuZ2V0TWFwYm94UmVmKG1hcGJveCwgdGhpcy5wcm9wcy5pbmRleCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIF9vbkRlY2tJbml0aWFsaXplZChnbCkge1xuICAgICAgaWYgKHRoaXMucHJvcHMub25EZWNrSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbkRlY2tJbml0aWFsaXplZCh0aGlzLl9kZWNrLCBnbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgX29uQmVmb3JlUmVuZGVyID0gKHtnbH0pID0+IHtcbiAgICAgIHNldExheWVyQmxlbmRpbmcoZ2wsIHRoaXMucHJvcHMubGF5ZXJCbGVuZGluZyk7XG4gICAgfTtcblxuICAgIF9vbkRlY2tFcnJvciA9IChlcnJvciwgbGF5ZXIpID0+IHtcbiAgICAgIGlmIChlcnJvcj8ubWVzc2FnZSA9PT0gJ1dlYkdMIGNvbnRleHQgaXMgbG9zdCcpIHtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Y29udGV4dExvc3Q6IHRydWV9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgQW4gZXJyb3IgaW4gZGVjay5nbDogJHtlcnJvcj8ubWVzc2FnZX0gaW4gJHtsYXllcj8uaWR9YDtcbiAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbklkID0gYCR7bGF5ZXI/LmlkfS0ke2Vycm9yPy5tZXNzYWdlfWA7XG5cbiAgICAgIC8vIFRocm90dGxlIGVycm9yIG5vdGlmaWNhdGlvbnMsIGFzIFJlYWN0IGRvZXNuJ3QgbGlrZSB0b28gbWFueSBzdGF0ZSBjaGFuZ2VzIGZyb20gaGVyZS5cbiAgICAgIHRoaXMuX2RlY2tHTEVycm9yc0VsYXBzZWQgPSB0aGlzLl9kZWNrR0xFcnJvcnNFbGFwc2VkIHx8IHt9O1xuICAgICAgY29uc3QgbGFzdFNob3duID0gdGhpcy5fZGVja0dMRXJyb3JzRWxhcHNlZFtub3RpZmljYXRpb25JZF07XG4gICAgICBpZiAoIWxhc3RTaG93biB8fCBsYXN0U2hvd24gPCBEYXRlLm5vdygpIC0gVEhST1RUTEVfTk9USUZJQ0FUSU9OX1RJTUUpIHtcbiAgICAgICAgdGhpcy5fZGVja0dMRXJyb3JzRWxhcHNlZFtub3RpZmljYXRpb25JZF0gPSBEYXRlLm5vdygpO1xuXG4gICAgICAgIC8vIENyZWF0ZSBuZXcgZXJyb3Igbm90aWZpY2F0aW9uIG9yIHVwZGF0ZSBleGlzdGluZyBvbmUgd2l0aCBzYW1lIGlkLlxuICAgICAgICAvLyBVcGRhdGUgaXMgcmVxdWlyZWQgdG8gcHJlc2VydmUgdGhlIG9yZGVyIG9mIG5vdGlmaWNhdGlvbnMgYXMgdGhleSBwcm9iYWJseSBhcmUgZ29pbmcgdG8gXCJqdW1wXCIgYmFzZWQgb24gb3JkZXIgb2YgZXJyb3JzLlxuICAgICAgICBjb25zdCB7dWlTdGF0ZUFjdGlvbnN9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgdWlTdGF0ZUFjdGlvbnMuYWRkTm90aWZpY2F0aW9uKFxuICAgICAgICAgIGVycm9yTm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgICAgIGlkOiBub3RpZmljYXRpb25JZFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8qIGNvbXBvbmVudCByZW5kZXIgZnVuY3Rpb25zICovXG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG4gICAgX3JlbmRlck1hcFBvcG92ZXIobGF5ZXJzVG9SZW5kZXIpIHtcbiAgICAgIC8vIE92ZXJyaWRlbiBpbiBCdWlsZGVyOiBmZWF0dXJlcy9idWlsZGVyL3VpL0tlcGxlckdsL01hcENvbnRhaW5lci9NYXBDb250YWluZXIudHN4XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKiBlc2xpbnQtZW5hYmxlIGNvbXBsZXhpdHkgKi9cblxuICAgIF9nZXRIb3ZlclhZKHZpZXdwb3J0LCBsbmdMYXQpIHtcbiAgICAgIGNvbnN0IHNjcmVlbkNvb3JkID0gIXZpZXdwb3J0IHx8ICFsbmdMYXQgPyBudWxsIDogdmlld3BvcnQucHJvamVjdChsbmdMYXQpO1xuICAgICAgcmV0dXJuIHNjcmVlbkNvb3JkICYmIHt4OiBzY3JlZW5Db29yZFswXSwgeTogc2NyZWVuQ29vcmRbMV19O1xuICAgIH1cblxuICAgIF9yZW5kZXJEZWNrT3ZlcmxheShsYXllcnNGb3JEZWNrKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG1hcFN0YXRlLFxuICAgICAgICBtYXBTdHlsZSxcbiAgICAgICAgbGF5ZXJEYXRhLFxuICAgICAgICBsYXllck9yZGVyLFxuICAgICAgICBsYXllcnMsXG4gICAgICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICAgICAgbWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gICAgICAgIG1hcGJveEFwaVVybCxcbiAgICAgICAgbWFza1BvbHlnb25cbiAgICAgIH0gPSB0aGlzLnByb3BzO1xuICAgICAgdHJhY2tlcnMuZHJhd0NvdW50Py5pbmNyZW1lbnQoKTtcblxuICAgICAgLy8gaW5pdGlhbGlzZSBsYXllcnMgZnJvbSBwcm9wcyBpZiBleGlzdHNcbiAgICAgIGxldCBkZWNrR2xMYXllcnMgPSB0aGlzLnByb3BzLmRlY2tHbFByb3BzPy5sYXllcnMgfHwgW107XG5cbiAgICAgIC8vIHdhaXQgdW50aWwgZGF0YSBpcyByZWFkeSBiZWZvcmUgcmVuZGVyIGRhdGEgbGF5ZXJzXG4gICAgICBpZiAobGF5ZXJEYXRhICYmIGxheWVyRGF0YS5sZW5ndGgpIHtcbiAgICAgICAgLy8gbGFzdCBsYXllciByZW5kZXIgZmlyc3RcbiAgICAgICAgY29uc3QgZGF0YUxheWVycyA9IGxheWVyT3JkZXJcbiAgICAgICAgICAuc2xpY2UoKVxuICAgICAgICAgIC5yZXZlcnNlKClcbiAgICAgICAgICAuZmlsdGVyKGlkeCA9PiBsYXllcnNGb3JEZWNrW2xheWVyc1tpZHhdLmlkXSlcbiAgICAgICAgICAucmVkdWNlKChvdmVybGF5cywgaWR4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYXllckNhbGxiYWNrcyA9IHtcbiAgICAgICAgICAgICAgb25TZXRMYXllckRvbWFpbjogdmFsID0+IHRoaXMuX29uTGF5ZXJTZXREb21haW4oaWR4LCB2YWwpXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgbGF5ZXJPdmVybGF5ID0gcmVuZGVyRGVja0dsTGF5ZXIodGhpcy5wcm9wcywgbGF5ZXJDYWxsYmFja3MsIGlkeCk7XG4gICAgICAgICAgICByZXR1cm4gb3ZlcmxheXMuY29uY2F0KGxheWVyT3ZlcmxheSB8fCBbXSk7XG4gICAgICAgICAgfSwgW10pO1xuICAgICAgICBkZWNrR2xMYXllcnMgPSBkZWNrR2xMYXllcnMuY29uY2F0KGRhdGFMYXllcnMpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5wcm9wcy5kZWNrR2xQcm9wcz8ubGF5ZXJzT25Ub3ApIHtcbiAgICAgICAgZGVja0dsTGF5ZXJzID0gZGVja0dsTGF5ZXJzLmNvbmNhdCh0aGlzLnByb3BzLmRlY2tHbFByb3BzLmxheWVyc09uVG9wKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1hc2tQb2x5Z29uKSB7XG4gICAgICAgIGRlY2tHbExheWVycy5wdXNoKFxuICAgICAgICAgIG5ldyBTb2xpZFBvbHlnb25MYXllcih7XG4gICAgICAgICAgICBpZDogTUFTS19MQVlFUl9JRCxcbiAgICAgICAgICAgIG9wZXJhdGlvbjogT1BFUkFUSU9OLk1BU0ssXG4gICAgICAgICAgICBkYXRhOiBbbWFza1BvbHlnb25dLFxuICAgICAgICAgICAgZGF0YUNvbXBhcmF0b3I6IChkYXRhLCBvbGREYXRhKSA9PiBkYXRhWzBdID09PSBvbGREYXRhWzBdLFxuICAgICAgICAgICAgZ2V0UG9seWdvbjogZCA9PiBkLFxuICAgICAgICAgICAgZ2V0RmlsbENvbG9yOiBbMjU1LCAyNTUsIDI1NSwgMjU1XVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtYXBTdHlsZS52aXNpYmxlTGF5ZXJHcm91cHNbJzNkIGJ1aWxkaW5nJ10pIHtcbiAgICAgICAgZGVja0dsTGF5ZXJzLnB1c2goXG4gICAgICAgICAgbmV3IFRocmVlREJ1aWxkaW5nTGF5ZXIoe1xuICAgICAgICAgICAgaWQ6ICdfa2VwbGVyZ2xfM2QtYnVpbGRpbmcnLFxuICAgICAgICAgICAgbWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gICAgICAgICAgICBtYXBib3hBcGlVcmwsXG4gICAgICAgICAgICB0aHJlZURCdWlsZGluZ0NvbG9yOiBtYXBTdHlsZS50aHJlZURCdWlsZGluZ0NvbG9yLFxuICAgICAgICAgICAgdXBkYXRlVHJpZ2dlcnM6IHtcbiAgICAgICAgICAgICAgZ2V0RmlsbENvbG9yOiBtYXBTdHlsZS50aHJlZURCdWlsZGluZ0NvbG9yXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgbGV0IGVmZmVjdHMgPSBbXTtcbiAgICAgIGlmIChtYXBTdHlsZS5ib3R0b21NYXBTdHlsZS50eXBlID09PSAnZ21hcHNfM2QnKSB7XG4gICAgICAgIC8vIEluamVjdCAzRCB0aWxlcyB3aGVuIG1hcCBzdHlsZSBpcyBWb3lhZ2VyIHdpdGhvdXQgbGF5ZXJzXG4gICAgICAgIGRlY2tHbExheWVycyA9IGRlY2tHbExheWVyc1xuICAgICAgICAgIC5maWx0ZXIobCA9PiBCb29sZWFuKGwgJiYgbC5jbG9uZSkpXG4gICAgICAgICAgLm1hcChsID0+IGwuY2xvbmUoe2V4dGVuc2lvbnM6IFsuLi5sLnByb3BzLmV4dGVuc2lvbnMsIHRlcnJhaW5FeHRlbnNpb25dfSkpO1xuICAgICAgICBkZWNrR2xMYXllcnMucHVzaCh0aWxlczNkLmNsb25lKCkpO1xuXG4gICAgICAgIGlmIChtYXBTdHlsZS5zdHlsZVR5cGUgPT09ICdnb29nbGUtM2Qtc2tldGNoJykge1xuICAgICAgICAgIGVmZmVjdHMgPSBhbGxFZmZlY3RzO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIExpbWl0IHJlbmRlcnNcbiAgICAgIGNvbnN0IGhhc1JlbmRlcmVkID0gdGhpcy5faGFzUmVuZGVyZWQ7XG4gICAgICBjb25zdCByZXNldEhhc1JlbmRlcmVkID0gKCkgPT4gKGhhc1JlbmRlcmVkLmN1cnJlbnQgPSBmYWxzZSk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8RGVja0dMXG4gICAgICAgICAgY29udHJvbGxlcj17dHJ1ZX1cbiAgICAgICAgICB7Li4udGhpcy5wcm9wcy5kZWNrR2xQcm9wc31cbiAgICAgICAgICB2aWV3U3RhdGU9e21hcFN0YXRlfVxuICAgICAgICAgIG9uVmlld1N0YXRlQ2hhbmdlPXsoe3ZpZXdTdGF0ZSwgaW50ZXJhY3Rpb25TdGF0ZX0pID0+IHtcbiAgICAgICAgICAgIC8vIExpbWl0IHVwZGF0ZXMgKHByZXZlbnRzIGZyZWV6ZXMgd2hlbiBkZXYgdG9vbHMgb3BlbilcbiAgICAgICAgICAgIGlmICghaGFzUmVuZGVyZWQuY3VycmVudCAmJiB2aWV3U3RhdGUud2lkdGggPiAxICYmIHZpZXdTdGF0ZS5oZWlnaHQgPiAxKSB7XG4gICAgICAgICAgICAgIGhhc1JlbmRlcmVkLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICAgICAgICB0aGlzLl9vblZpZXdwb3J0Q2hhbmdlKHZpZXdTdGF0ZSwgaW50ZXJhY3Rpb25TdGF0ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICBpZD1cImRlZmF1bHQtZGVja2dsLW92ZXJsYXlcIlxuICAgICAgICAgIGxheWVycz17ZGVja0dsTGF5ZXJzfVxuICAgICAgICAgIGVmZmVjdHM9e2VmZmVjdHN9XG4gICAgICAgICAgb25CZWZvcmVSZW5kZXI9e29wdHMgPT4ge1xuICAgICAgICAgICAgcmVzZXRIYXNSZW5kZXJlZCgpO1xuICAgICAgICAgICAgdGhpcy5fb25CZWZvcmVSZW5kZXIob3B0cyk7XG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbkhvdmVyPXt2aXNTdGF0ZUFjdGlvbnMub25MYXllckhvdmVyfVxuICAgICAgICAgIG9uQ2xpY2s9e3Zpc1N0YXRlQWN0aW9ucy5vbkxheWVyQ2xpY2t9XG4gICAgICAgICAgb25FcnJvcj17ZSA9PiB7XG4gICAgICAgICAgICBkZWJ1Z2dlcjtcbiAgICAgICAgICAgIHRoaXMuX29uRGVja0Vycm9yKGUpO1xuICAgICAgICAgIH19XG4gICAgICAgICAgcmVmPXtjb21wID0+IHtcbiAgICAgICAgICAgIGlmIChjb21wICYmIGNvbXAuZGVjayAmJiBjb21wLmRlY2sgIT09IHRoaXMuX2RlY2spIHtcbiAgICAgICAgICAgICAgdGhpcy5fZGVjayA9IGNvbXAuZGVjaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uV2ViR0xJbml0aWFsaXplZD17Z2wgPT4gdGhpcy5fb25EZWNrSW5pdGlhbGl6ZWQoZ2wpfVxuICAgICAgICAgIGxheWVyRmlsdGVyPXsoe2xheWVyLCB2aWV3cG9ydH0pID0+IHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgaXNOYU4obGF5ZXIucHJvcHMudmlzaWJpbGl0eUJ5Wm9vbT8ubWluKSB8fFxuICAgICAgICAgICAgICBpc05hTihsYXllci5wcm9wcy52aXNpYmlsaXR5Qnlab29tPy5tYXgpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Wm9vbVJhbmdlID0gTWF0aC5yb3VuZChtYXBTdGF0ZS56b29tKTtcblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgbGF5ZXIucHJvcHMudmlzaWJpbGl0eUJ5Wm9vbS5taW4gPD0gY3VycmVudFpvb21SYW5nZSAmJlxuICAgICAgICAgICAgICBsYXllci5wcm9wcy52aXNpYmlsaXR5Qnlab29tLm1heCA+PSBjdXJyZW50Wm9vbVJhbmdlXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cblxuICAgIF91cGRhdGVNYXBib3hMYXllcnMoKSB7XG4gICAgICBjb25zdCBtYXBib3hMYXllcnMgPSB0aGlzLm1hcGJveExheWVyc1NlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgaWYgKCFPYmplY3Qua2V5cyhtYXBib3hMYXllcnMpLmxlbmd0aCAmJiAhT2JqZWN0LmtleXModGhpcy5wcmV2aW91c0xheWVycykubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdXBkYXRlTWFwYm94TGF5ZXJzKHRoaXMuX21hcCwgbWFwYm94TGF5ZXJzLCB0aGlzLnByZXZpb3VzTGF5ZXJzKTtcblxuICAgICAgdGhpcy5wcmV2aW91c0xheWVycyA9IG1hcGJveExheWVycztcbiAgICB9XG5cbiAgICBfcmVuZGVyTWFwYm94T3ZlcmxheXMoKSB7XG4gICAgICBpZiAodGhpcy5fbWFwICYmIHRoaXMuX21hcC5pc1N0eWxlTG9hZGVkKCkpIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlTWFwYm94TGF5ZXJzKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgX29uVmlld3BvcnRDaGFuZ2UgPSAodmlld1N0YXRlLCBpbnRlcmFjdGlvblN0YXRlKSA9PiB7XG4gICAgICB0cmFja2Vycy52aWV3cG9ydENoYW5nZUNvdW50Py5pbmNyZW1lbnQoKTtcblxuICAgICAgY29uc3Qge3dpZHRoLCBoZWlnaHQsIC4uLnJlc3RWaWV3U3RhdGV9ID0gdmlld1N0YXRlO1xuICAgICAgY29uc3Qge3ByaW1hcnksIGlzRXhwb3J0fSA9IHRoaXMucHJvcHM7XG4gICAgICAvLyByZWFjdC1tYXAtZ2wgc2VuZHMgMCwwIGRpbWVuc2lvbnMgZHVyaW5nIGluaXRpYWxpemF0aW9uXG4gICAgICAvLyBhZnRlciB3ZSBoYXZlIHJlY2VpdmVkIHByb3BlciBkaW1lbnNpb25zIGZyb20gb2JzZXJ2ZURpbWVuc2lvbnNcbiAgICAgIGNvbnN0IG5leHQgPSB7XG4gICAgICAgIC4uLih3aWR0aCA+IDAgJiYgaGVpZ2h0ID4gMCA/IHZpZXdTdGF0ZSA6IHJlc3RWaWV3U3RhdGUpLFxuXG4gICAgICAgIC8vIEF1dG8tdXBkYXRlIHRoZSBjYW1lcmEgaGVpZ2h0IGFjY29yZGluZyB0byAzRCB0aWxlcywgZXhjZXB0IHdoZW4gdHJhbnNpdGlvbmluZ1xuICAgICAgICAuLi4oaW50ZXJhY3Rpb25TdGF0ZSAmJiAhaW50ZXJhY3Rpb25TdGF0ZS5pblRyYW5zaXRpb24gJiYge3Bvc2l0aW9uOiBbMCwgMCwgaF19KVxuICAgICAgICAvLyBlbmFibGluZyB0cmFuc2l0aW9uIGluIHR3byBtYXBzIG1heSBsZWFkIHRvIGVuZGxlc3MgdXBkYXRlIGxvb3BzXG4gICAgICAgIC8vIHRyYW5zaXRpb25EdXJhdGlvbjogcHJpbWFyeSA/IFRSQU5TSVRJT05fRFVSQVRJT04gOiAwIC8vIERpc2FibGUgZm9yIDNEIHRpbGVzIHRyYW5zaXRpb25zXG4gICAgICB9O1xuICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLm9uVmlld1N0YXRlQ2hhbmdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25WaWV3U3RhdGVDaGFuZ2UobmV4dCk7XG4gICAgICB9XG5cbiAgICAgIGlmICghaXNFeHBvcnQpIHtcbiAgICAgICAgdGhpcy5wcm9wcy5tYXBTdGF0ZUFjdGlvbnMudXBkYXRlTWFwKG5leHQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfdG9nZ2xlTWFwQ29udHJvbCA9IHBhbmVsSWQgPT4ge1xuICAgICAgY29uc3Qge2luZGV4LCB1aVN0YXRlQWN0aW9uc30gPSB0aGlzLnByb3BzO1xuXG4gICAgICB1aVN0YXRlQWN0aW9ucy50b2dnbGVNYXBDb250cm9sKHBhbmVsSWQsIGluZGV4KTtcbiAgICB9O1xuXG4gICAgLyogZXNsaW50LWRpc2FibGUgY29tcGxleGl0eSAqL1xuICAgIF9yZW5kZXJNYXAoKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIG1hcFN0YXRlLFxuICAgICAgICBtYXBTdHlsZSxcbiAgICAgICAgbWFwU3RhdGVBY3Rpb25zLFxuICAgICAgICBsYXllcnMsXG4gICAgICAgIE1hcENvbXBvbmVudCxcbiAgICAgICAgZGF0YXNldHMsXG4gICAgICAgIG1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICAgICAgICBtYXBib3hBcGlVcmwsXG4gICAgICAgIG1hcENvbnRyb2xzLFxuICAgICAgICBpc0V4cG9ydCxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICB1aVN0YXRlQWN0aW9ucyxcbiAgICAgICAgdmlzU3RhdGVBY3Rpb25zLFxuICAgICAgICBpbnRlcmFjdGlvbkNvbmZpZyxcbiAgICAgICAgZWRpdG9yLFxuICAgICAgICBpbmRleCxcbiAgICAgICAgcHJpbWFyeVxuICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGNvbnN0IGxheWVyc1RvUmVuZGVyID0gdGhpcy5sYXllcnNUb1JlbmRlclNlbGVjdG9yKHRoaXMucHJvcHMpO1xuICAgICAgY29uc3QgbGF5ZXJzRm9yRGVjayA9IHRoaXMubGF5ZXJzRm9yRGVja1NlbGVjdG9yKHRoaXMucHJvcHMpO1xuXG4gICAgICBjb25zdCBtYXBQcm9wcyA9IHtcbiAgICAgICAgLi4ubWFwU3RhdGUsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICBwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6IHRydWUsXG4gICAgICAgIG1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICAgICAgICBtYXBib3hBcGlVcmwsXG4gICAgICAgIHRyYW5zZm9ybVJlcXVlc3RcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGlzRWRpdCA9IChtYXBDb250cm9scy5tYXBEcmF3IHx8IHt9KS5hY3RpdmU7XG5cbiAgICAgIGNvbnN0IGhhc0dlb2NvZGVyTGF5ZXIgPSBsYXllcnMuZmluZChsID0+IGwuaWQgPT09IEdFT0NPREVSX0xBWUVSX0lEKTtcbiAgICAgIGNvbnN0IGlzU3BsaXQgPSBCb29sZWFuKG1hcFN0YXRlLmlzU3BsaXQpO1xuICAgICAgY29uc3QgbW91c2VQb3NpdGlvbiA9IHRoaXMuX21vdXNlUG9zaXRpb247XG5cbiAgICAgIGNvbnN0IG5lZWRzQmFzZW1hcCA9IG1hcFN0eWxlLmJvdHRvbU1hcFN0eWxlLnR5cGUgIT09ICdnbWFwc18zZCc7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPE1hcENvbnRyb2xcbiAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgIGF2YWlsYWJsZUxvY2FsZXM9e09iamVjdC5rZXlzKExPQ0FMRV9DT0RFUyl9XG4gICAgICAgICAgICBkcmFnUm90YXRlPXttYXBTdGF0ZS5kcmFnUm90YXRlfVxuICAgICAgICAgICAgaXNTcGxpdD17aXNTcGxpdH1cbiAgICAgICAgICAgIHByaW1hcnk9e3ByaW1hcnl9XG4gICAgICAgICAgICBpc0V4cG9ydD17aXNFeHBvcnR9XG4gICAgICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgICAgIGxheWVyc1RvUmVuZGVyPXtsYXllcnNUb1JlbmRlcn1cbiAgICAgICAgICAgIG1hcEluZGV4PXtpbmRleH1cbiAgICAgICAgICAgIG1hcENvbnRyb2xzPXttYXBDb250cm9sc31cbiAgICAgICAgICAgIHJlYWRPbmx5PXt0aGlzLnByb3BzLnJlYWRPbmx5fVxuICAgICAgICAgICAgc2NhbGU9e21hcFN0YXRlLnNjYWxlIHx8IDF9XG4gICAgICAgICAgICB0b3A9e2ludGVyYWN0aW9uQ29uZmlnLmdlb2NvZGVyICYmIGludGVyYWN0aW9uQ29uZmlnLmdlb2NvZGVyLmVuYWJsZWQgPyA1MiA6IDB9XG4gICAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICAgIGxvY2FsZT17bG9jYWxlfVxuICAgICAgICAgICAgb25Ub2dnbGVQZXJzcGVjdGl2ZT17bWFwU3RhdGVBY3Rpb25zLnRvZ2dsZVBlcnNwZWN0aXZlfVxuICAgICAgICAgICAgb25Ub2dnbGVTcGxpdE1hcD17bWFwU3RhdGVBY3Rpb25zLnRvZ2dsZVNwbGl0TWFwfVxuICAgICAgICAgICAgb25NYXBUb2dnbGVMYXllcj17dGhpcy5faGFuZGxlTWFwVG9nZ2xlTGF5ZXJ9XG4gICAgICAgICAgICBvblRvZ2dsZU1hcENvbnRyb2w9e3RoaXMuX3RvZ2dsZU1hcENvbnRyb2x9XG4gICAgICAgICAgICBvblNldEVkaXRvck1vZGU9e3Zpc1N0YXRlQWN0aW9ucy5zZXRFZGl0b3JNb2RlfVxuICAgICAgICAgICAgb25TZXRMb2NhbGU9e3VpU3RhdGVBY3Rpb25zLnNldExvY2FsZX1cbiAgICAgICAgICAgIG9uVG9nZ2xlRWRpdG9yVmlzaWJpbGl0eT17dmlzU3RhdGVBY3Rpb25zLnRvZ2dsZUVkaXRvclZpc2liaWxpdHl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7bmVlZHNCYXNlbWFwID8gKFxuICAgICAgICAgICAgPE1hcENvbXBvbmVudFxuICAgICAgICAgICAgICB7Li4ubWFwUHJvcHN9XG4gICAgICAgICAgICAgIGtleT1cImJvdHRvbVwiXG4gICAgICAgICAgICAgIHJlZj17dGhpcy5fc2V0TWFwYm94TWFwfVxuICAgICAgICAgICAgICBtYXBTdHlsZT17bWFwU3R5bGUuYm90dG9tTWFwU3R5bGV9XG4gICAgICAgICAgICAgIGdldEN1cnNvcj17dGhpcy5wcm9wcy5ob3ZlckluZm8gPyAoKSA9PiAncG9pbnRlcicgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgIG9uTW91c2VNb3ZlPXtldnQgPT4ge1xuICAgICAgICAgICAgICAgIC8vIFNlbmRpbmcgbW91c2UgbW92ZSB1cGRhdGVzIHZpYSBSZWR1eCBpcyBleHBlbnNpdmUuIFN0b3JlXG4gICAgICAgICAgICAgICAgLy8gbG9jYWxseSBhbmQgcmVseSBvbiBkZWNrLmdsIHRvIGRyaXZlIHJlbmRlciB1cGRhdGVzXG4gICAgICAgICAgICAgICAgLy8gU2VlIEJ1aWxkZXI6IGZlYXR1cmVzL2J1aWxkZXIvdWkvS2VwbGVyR2wvTWFwQ29udGFpbmVyL01hcENvbnRhaW5lci50c3hcbiAgICAgICAgICAgICAgICBtb3VzZVBvc2l0aW9uLmN1cnJlbnQgPSB7bW91c2VQb3NpdGlvbjogZXZ0LnBvaW50fTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge1BFUkZfREVCVUcgJiYgcmVuZGVyUGVyZm9ybWFuY2VTdGF0cygpfVxuICAgICAgICAgICAgICB7dGhpcy5fcmVuZGVyRGVja092ZXJsYXkobGF5ZXJzRm9yRGVjayl9XG4gICAgICAgICAgICAgIHt0aGlzLl9yZW5kZXJNYXBib3hPdmVybGF5cygpfVxuICAgICAgICAgICAgICA8RWRpdG9yXG4gICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgICAgICBlZGl0b3I9e2VkaXRvcn1cbiAgICAgICAgICAgICAgICBmaWx0ZXJzPXt0aGlzLnBvbHlnb25GaWx0ZXJzKHRoaXMucHJvcHMpfVxuICAgICAgICAgICAgICAgIGlzRW5hYmxlZD17aXNFZGl0fVxuICAgICAgICAgICAgICAgIGxheWVycz17bGF5ZXJzfVxuICAgICAgICAgICAgICAgIGxheWVyc1RvUmVuZGVyPXtsYXllcnNUb1JlbmRlcn1cbiAgICAgICAgICAgICAgICBvbkRlbGV0ZUZlYXR1cmU9e3Zpc1N0YXRlQWN0aW9ucy5kZWxldGVGZWF0dXJlfVxuICAgICAgICAgICAgICAgIG9uU2VsZWN0PXt2aXNTdGF0ZUFjdGlvbnMuc2V0U2VsZWN0ZWRGZWF0dXJlfVxuICAgICAgICAgICAgICAgIG9uVXBkYXRlPXt2aXNTdGF0ZUFjdGlvbnMuc2V0RmVhdHVyZXN9XG4gICAgICAgICAgICAgICAgb25Ub2dnbGVQb2x5Z29uRmlsdGVyPXt2aXNTdGF0ZUFjdGlvbnMuc2V0UG9seWdvbkZpbHRlckxheWVyfVxuICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICBwb2ludGVyRXZlbnRzOiBpc0VkaXQgPyAnYWxsJyA6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgICAgZGlzcGxheTogZWRpdG9yLnZpc2libGUgPyAnYmxvY2snIDogJ25vbmUnXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvTWFwQ29tcG9uZW50PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7UEVSRl9ERUJVRyAmJiByZW5kZXJQZXJmb3JtYW5jZVN0YXRzKCl9XG4gICAgICAgICAgICAgIHt0aGlzLl9yZW5kZXJEZWNrT3ZlcmxheShsYXllcnNGb3JEZWNrKX1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICl9XG4gICAgICAgICAge21hcFN0eWxlLnRvcE1hcFN0eWxlIHx8IGhhc0dlb2NvZGVyTGF5ZXIgPyAoXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXtNQVBfU1RZTEUudG9wfT5cbiAgICAgICAgICAgICAgPE1hcENvbXBvbmVudCB7Li4ubWFwUHJvcHN9IGtleT1cInRvcFwiIG1hcFN0eWxlPXttYXBTdHlsZS50b3BNYXBTdHlsZX0+XG4gICAgICAgICAgICAgICAge3RoaXMuX3JlbmRlckRlY2tPdmVybGF5KHtbR0VPQ09ERVJfTEFZRVJfSURdOiB0cnVlfSl9XG4gICAgICAgICAgICAgIDwvTWFwQ29tcG9uZW50PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAge3RoaXMuX3JlbmRlck1hcFBvcG92ZXIobGF5ZXJzVG9SZW5kZXIpfVxuICAgICAgICAgIHshaXNTcGxpdCB8fCBpbmRleCA9PT0gMSA/IDxBdHRyaWJ1dGlvbiAvPiA6IG51bGx9XG4gICAgICAgIDwvPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7bWFwU3RhdGUsIG1hcFN0eWxlfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBjb250ZXh0TG9zdCA9IHRoaXMuc3RhdGU/LmNvbnRleHRMb3N0O1xuXG4gICAgICBpZiAoY29udGV4dExvc3QpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRNYXBDb250YWluZXIgcmVmPXt0aGlzLl9yZWZ9IHN0eWxlPXtNQVBfU1RZTEUuY29udGFpbmVyfSBnbG9iZT17bWFwU3RhdGUuZ2xvYmV9PlxuICAgICAgICAgIHttYXBTdHlsZS5ib3R0b21NYXBTdHlsZSAmJiB0aGlzLl9yZW5kZXJNYXAoKX1cbiAgICAgICAgPC9TdHlsZWRNYXBDb250YWluZXI+XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIE1hcENvbnRhaW5lci5kaXNwbGF5TmFtZSA9ICdNYXBDb250YWluZXInO1xuXG4gIHJldHVybiBNYXBDb250YWluZXI7XG59XG4iXX0=
841
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL21hcC1jb250YWluZXIuanMiXSwibmFtZXMiOlsiR09PR0xFX01BUFNfQVBJX0tFWSIsIkN1c3RvbVRpbGUzRExheWVyIiwibGF5ZXIiLCJ2aWV3cG9ydCIsImxvZFpvb20iLCJNYXRoIiwibG9nMiIsInByb3BzIiwidGlsZSIsImxvZE1ldHJpY1ZhbHVlIiwiem9vbSIsIlRpbGUzRExheWVyIiwiaCIsInRpbGVzM2QiLCJpZCIsImRhdGEiLCJvblRpbGVzZXRMb2FkIiwidGlsZXNldDNkIiwib3B0aW9ucyIsIm1heGltdW1TY3JlZW5TcGFjZUVycm9yIiwiX29uVGlsZUxvYWRFcnJvciIsIm9uVHJhdmVyc2FsQ29tcGxldGUiLCJzZWxlY3RlZFRpbGVzIiwibWluTG9kIiwiSW5maW5pdHkiLCJmaWx0ZXJlZCIsImZpbHRlciIsInQiLCJsZW5ndGgiLCJtYXAiLCJib3VuZGluZ0JveCIsInJlZHVjZSIsImEiLCJuIiwibG9hZE9wdGlvbnMiLCJmZXRjaCIsImhlYWRlcnMiLCJvcGVyYXRpb24iLCJ0ZXJyYWluRXh0ZW5zaW9uIiwiVGVycmFpbkV4dGVuc2lvbiIsImFtYmllbnRMaWdodCIsIkFtYmllbnRMaWdodCIsImNvbG9yIiwiaW50ZW5zaXR5Iiwic3VuTGlnaHQiLCJfU3VuTGlnaHQiLCJ0aW1lc3RhbXAiLCJfc2hhZG93IiwibGlnaHRpbmdFZmZlY3QiLCJMaWdodGluZ0VmZmVjdCIsInNoYWRvd0NvbG9yIiwiYnJpZ2h0bmVzc0NvbnRyYXN0RWZmZWN0IiwiUG9zdFByb2Nlc3NFZmZlY3QiLCJicmlnaHRuZXNzQ29udHJhc3QiLCJjb250cmFzdCIsImJyaWdodG5lc3MiLCJodWVTYXR1cmF0aW9uRWZmZWN0IiwiaHVlU2F0dXJhdGlvbiIsImh1ZSIsInNhdHVyYXRpb24iLCJ2aWJyYW5jZUVmZmVjdCIsInZpYnJhbmNlIiwiYW1vdW50IiwidHJhY2tlcnMiLCJQRVJGX0RFQlVHIiwid2luZG93IiwibG9jYXRpb24iLCJzZWFyY2giLCJpbmNsdWRlcyIsImRyYXdDb3VudCIsInZpZXdwb3J0Q2hhbmdlQ291bnQiLCJMYXllciIsIlRpbGVMYXllciIsIk1BUF9TVFlMRSIsImNvbnRhaW5lciIsImRpc3BsYXkiLCJwb3NpdGlvbiIsIndpZHRoIiwiaGVpZ2h0IiwidG9wIiwicG9pbnRlckV2ZW50cyIsIk1BUEJPWEdMX1NUWUxFX1VQREFURSIsIk1BUEJPWEdMX1JFTkRFUiIsIlRSQU5TSVRJT05fRFVSQVRJT04iLCJBdHRyaWJ1dGlvbiIsIk1hcENvbnRhaW5lckZhY3RvcnkiLCJkZXBzIiwiTWFwUG9wb3ZlckZhY3RvcnkiLCJNYXBDb250cm9sRmFjdG9yeSIsIkVkaXRvckZhY3RvcnkiLCJNYXBQb3BvdmVyIiwiTWFwQ29udHJvbCIsIkVkaXRvciIsIk1hcENvbnRhaW5lciIsImRpbWVuc2lvbnMiLCJwcmltYXJ5IiwiaXNFeHBvcnQiLCJtYXBTdGF0ZUFjdGlvbnMiLCJ1cGRhdGVNYXAiLCJza2V0Y2hWYWx1ZSIsImxheWVycyIsImxheWVyRGF0YSIsIm1hcExheWVycyIsImxheWVyT3JkZXIiLCJwb3B1cFNldHRpbmdzIiwibGF5ZXJzU2VsZWN0b3IiLCJsYXllckRhdGFTZWxlY3RvciIsIm1hcExheWVyc1NlbGVjdG9yIiwicG9wdXBTZXR0aW5nc1NlbGVjdG9yIiwicHJlcGFyZUxheWVyc1RvUmVuZGVyIiwicHJlcGFyZUxheWVyc0ZvckRlY2siLCJmaWx0ZXJzIiwiZmlsdGVyc1NlbGVjdG9yIiwiZiIsInR5cGUiLCJGSUxURVJfVFlQRVMiLCJwb2x5Z29uIiwibGF5ZXJPcmRlclNlbGVjdG9yIiwibGF5ZXJzVG9SZW5kZXJTZWxlY3RvciIsImdlbmVyYXRlTWFwYm94TGF5ZXJzIiwidmlzU3RhdGVBY3Rpb25zIiwib25MYXllckNsaWNrIiwiaWR4IiwiY29sb3JEb21haW4iLCJsYXllckNvbmZpZ0NoYW5nZSIsImxheWVySWQiLCJpbmRleCIsIm1hcEluZGV4IiwidG9nZ2xlTGF5ZXJGb3JNYXAiLCJwcmV2aW91c0xheWVycyIsIl91cGRhdGVNYXBib3hMYXllcnMiLCJvbk1hcFN0eWxlTG9hZGVkIiwiX21hcCIsIm1hcGJveCIsImdldE1hcCIsIm9uIiwiX29uTWFwYm94U3R5bGVVcGRhdGUiLCJvbk1hcFJlbmRlciIsImdldE1hcGJveFJlZiIsImdsIiwibGF5ZXJCbGVuZGluZyIsImVycm9yIiwibWVzc2FnZSIsInNldFN0YXRlIiwiY29udGV4dExvc3QiLCJlcnJvck1lc3NhZ2UiLCJub3RpZmljYXRpb25JZCIsIl9kZWNrR0xFcnJvcnNFbGFwc2VkIiwibGFzdFNob3duIiwiRGF0ZSIsIm5vdyIsIlRIUk9UVExFX05PVElGSUNBVElPTl9USU1FIiwidWlTdGF0ZUFjdGlvbnMiLCJhZGROb3RpZmljYXRpb24iLCJ2aWV3U3RhdGUiLCJpbnRlcmFjdGlvblN0YXRlIiwiaW5jcmVtZW50IiwicmVzdFZpZXdTdGF0ZSIsIm5leHQiLCJpblRyYW5zaXRpb24iLCJvblZpZXdTdGF0ZUNoYW5nZSIsInBhbmVsSWQiLCJ0b2dnbGVNYXBDb250cm9sIiwiX2RlY2siLCJfcmVmIiwiX2hhc1JlbmRlcmVkIiwiX21vdXNlUG9zaXRpb24iLCJjdXJyZW50IiwiX2hhbmRsZVJlc2l6ZSIsInN0YXRlIiwib2ZmIiwib25EZWNrSW5pdGlhbGl6ZWQiLCJsYXllcnNUb1JlbmRlciIsImxuZ0xhdCIsInNjcmVlbkNvb3JkIiwicHJvamVjdCIsIngiLCJ5IiwibGF5ZXJzRm9yRGVjayIsIm1hcFN0YXRlIiwibWFwU3R5bGUiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1hcGJveEFwaVVybCIsIm1hc2tQb2x5Z29uIiwiZGVja0dsTGF5ZXJzIiwiZGVja0dsUHJvcHMiLCJkYXRhTGF5ZXJzIiwic2xpY2UiLCJyZXZlcnNlIiwib3ZlcmxheXMiLCJsYXllckNhbGxiYWNrcyIsIm9uU2V0TGF5ZXJEb21haW4iLCJ2YWwiLCJfb25MYXllclNldERvbWFpbiIsImxheWVyT3ZlcmxheSIsImNvbmNhdCIsImxheWVyc09uVG9wIiwicHVzaCIsIlNvbGlkUG9seWdvbkxheWVyIiwiTUFTS19MQVlFUl9JRCIsIk9QRVJBVElPTiIsIk1BU0siLCJkYXRhQ29tcGFyYXRvciIsIm9sZERhdGEiLCJnZXRQb2x5Z29uIiwiZCIsImdldEZpbGxDb2xvciIsInZpc2libGVMYXllckdyb3VwcyIsIlRocmVlREJ1aWxkaW5nTGF5ZXIiLCJ0aHJlZURCdWlsZGluZ0NvbG9yIiwidXBkYXRlVHJpZ2dlcnMiLCJlZmZlY3RzIiwiYm90dG9tTWFwU3R5bGUiLCJsIiwiQm9vbGVhbiIsImNsb25lIiwiZXh0ZW5zaW9ucyIsInN0eWxlVHlwZSIsImlua0VmZmVjdCIsImluayIsInN0cmVuZ3RoIiwiYWxsRWZmZWN0cyIsImhhc1JlbmRlcmVkIiwicmVzZXRIYXNSZW5kZXJlZCIsIl9vblZpZXdwb3J0Q2hhbmdlIiwib3B0cyIsIl9vbkJlZm9yZVJlbmRlciIsIm9uTGF5ZXJIb3ZlciIsImUiLCJfb25EZWNrRXJyb3IiLCJjb21wIiwiZGVjayIsIl9vbkRlY2tJbml0aWFsaXplZCIsImlzTmFOIiwidmlzaWJpbGl0eUJ5Wm9vbSIsIm1pbiIsIm1heCIsImN1cnJlbnRab29tUmFuZ2UiLCJyb3VuZCIsIm1hcGJveExheWVycyIsIm1hcGJveExheWVyc1NlbGVjdG9yIiwiT2JqZWN0Iiwia2V5cyIsImlzU3R5bGVMb2FkZWQiLCJNYXBDb21wb25lbnQiLCJkYXRhc2V0cyIsIm1hcENvbnRyb2xzIiwibG9jYWxlIiwiaW50ZXJhY3Rpb25Db25maWciLCJlZGl0b3IiLCJsYXllcnNGb3JEZWNrU2VsZWN0b3IiLCJtYXBQcm9wcyIsInByZXNlcnZlRHJhd2luZ0J1ZmZlciIsInRyYW5zZm9ybVJlcXVlc3QiLCJpc0VkaXQiLCJtYXBEcmF3IiwiYWN0aXZlIiwiaGFzR2VvY29kZXJMYXllciIsImZpbmQiLCJHRU9DT0RFUl9MQVlFUl9JRCIsImlzU3BsaXQiLCJtb3VzZVBvc2l0aW9uIiwibmVlZHNCYXNlbWFwIiwiTE9DQUxFX0NPREVTIiwiZHJhZ1JvdGF0ZSIsInJlYWRPbmx5Iiwic2NhbGUiLCJnZW9jb2RlciIsImVuYWJsZWQiLCJ0b2dnbGVQZXJzcGVjdGl2ZSIsInRvZ2dsZVNwbGl0TWFwIiwiX2hhbmRsZU1hcFRvZ2dsZUxheWVyIiwiX3RvZ2dsZU1hcENvbnRyb2wiLCJzZXRFZGl0b3JNb2RlIiwic2V0TG9jYWxlIiwidG9nZ2xlRWRpdG9yVmlzaWJpbGl0eSIsIl9zZXRNYXBib3hNYXAiLCJob3ZlckluZm8iLCJ1bmRlZmluZWQiLCJldnQiLCJwb2ludCIsIl9yZW5kZXJEZWNrT3ZlcmxheSIsIl9yZW5kZXJNYXBib3hPdmVybGF5cyIsInBvbHlnb25GaWx0ZXJzIiwiZGVsZXRlRmVhdHVyZSIsInNldFNlbGVjdGVkRmVhdHVyZSIsInNldEZlYXR1cmVzIiwic2V0UG9seWdvbkZpbHRlckxheWVyIiwidmlzaWJsZSIsInRvcE1hcFN0eWxlIiwiX3JlbmRlck1hcFBvcG92ZXIiLCJnbG9iZSIsIl9yZW5kZXJNYXAiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJvYmplY3QiLCJpc1JlcXVpcmVkIiwic3RyaW5nIiwiYXJyYXlPZiIsImFueSIsIm51bWJlciIsImJvb2wiLCJjbGlja2VkIiwib25NYXBUb2dnbGVMYXllciIsImZ1bmMiLCJNYXBib3hHTE1hcCIsImRpc3BsYXlOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFCQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFRQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQTs7QUFDQTs7QUFPQTs7QUFDQTs7QUFHQTs7QUFtRUE7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWhFQSxJQUFNQSxtQkFBbUIsR0FBRyx5Q0FBNUI7O0lBRU1DLGlCOzs7Ozs7Ozs7Ozs7V0FDSiw4QkFBa0M7QUFBQSxVQUFsQkMsS0FBa0IsUUFBbEJBLEtBQWtCO0FBQUEsVUFBWEMsUUFB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SUFBQUEsU0FBUyxFQUFFZ00sc0JBQVVDLE1BekJKO0FBMEJqQlEsSUFBQUEsZ0JBQWdCLEVBQUVULHNCQUFVVSxJQTFCWDtBQTJCakI3SyxJQUFBQSxnQkFBZ0IsRUFBRW1LLHNCQUFVVSxJQTNCWDtBQTRCakJ2SyxJQUFBQSxXQUFXLEVBQUU2SixzQkFBVVUsSUE1Qk47QUE2QmpCdEssSUFBQUEsWUFBWSxFQUFFNEosc0JBQVVVLElBN0JQO0FBOEJqQmxMLElBQUFBLEtBQUssRUFBRXdLLHNCQUFVTSxNQTlCQTtBQStCakJwTSxJQUFBQSxhQUFhLEVBQUU4TCxzQkFBVUM7QUEvQlIsR0FGcUQ7QUFBQSxtQ0FDcEUxTSxZQURvRSxrQkFvQ2xEO0FBQ3BCdUosSUFBQUEsWUFBWSxFQUFFNkQsc0JBRE07QUFFcEJ4SCxJQUFBQSxXQUFXLEVBQUUsRUFGTztBQUdwQjNELElBQUFBLEtBQUssRUFBRSxDQUhhO0FBSXBCL0IsSUFBQUEsT0FBTyxFQUFFO0FBSlcsR0FwQ2tEO0FBd2lCMUVGLEVBQUFBLFlBQVksQ0FBQ3FOLFdBQWIsR0FBMkIsY0FBM0I7QUFFQSxTQUFPck4sWUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuLy8gbGlicmFyaWVzXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnQsIGNyZWF0ZVJlZn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBNYXBib3hHTE1hcCBmcm9tICdyZWFjdC1tYXAtZ2wnO1xuaW1wb3J0IERlY2tHTCBmcm9tICdAZGVjay5nbC9yZWFjdCc7XG5pbXBvcnQge2NyZWF0ZVNlbGVjdG9yfSBmcm9tICdyZXNlbGVjdCc7XG5pbXBvcnQge1xuICBPUEVSQVRJT04sXG4gIExheWVyLFxuICBBbWJpZW50TGlnaHQsXG4gIExpZ2h0aW5nRWZmZWN0LFxuICBQb3N0UHJvY2Vzc0VmZmVjdCxcbiAgX1N1bkxpZ2h0XG59IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IHticmlnaHRuZXNzQ29udHJhc3QsIGh1ZVNhdHVyYXRpb24sIGluaywgdmlicmFuY2V9IGZyb20gJ0BsdW1hLmdsL3NoYWRlcnRvb2xzJztcbmltcG9ydCB7U29saWRQb2x5Z29uTGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2xheWVycyc7XG5pbXBvcnQge1RpbGVMYXllcn0gZnJvbSAnQGRlY2suZ2wvZ2VvLWxheWVycyc7XG5pbXBvcnQge2Vycm9yTm90aWZpY2F0aW9ufSBmcm9tICd1dGlscy9ub3RpZmljYXRpb25zLXV0aWxzJztcblxuLy8gY29tcG9uZW50c1xuaW1wb3J0IE1hcFBvcG92ZXJGYWN0b3J5IGZyb20gJ2NvbXBvbmVudHMvbWFwL21hcC1wb3BvdmVyJztcbmltcG9ydCBNYXBDb250cm9sRmFjdG9yeSBmcm9tICdjb21wb25lbnRzL21hcC9tYXAtY29udHJvbCc7XG5pbXBvcnQge1N0eWxlZE1hcENvbnRhaW5lciwgU3R5bGVkQXR0cmJ1dGlvbn0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgRWRpdG9yRmFjdG9yeSBmcm9tICcuL2VkaXRvci9lZGl0b3InO1xuXG4vLyB1dGlsc1xuaW1wb3J0IHtnZW5lcmF0ZU1hcGJveExheWVycywgdXBkYXRlTWFwYm94TGF5ZXJzfSBmcm9tICdsYXllcnMvbWFwYm94LXV0aWxzJztcbmltcG9ydCB7c2V0TGF5ZXJCbGVuZGluZ30gZnJvbSAndXRpbHMvZ2wtdXRpbHMnO1xuaW1wb3J0IHt0cmFuc2Zvcm1SZXF1ZXN0fSBmcm9tICd1dGlscy9tYXAtc3R5bGUtdXRpbHMvbWFwYm94LXV0aWxzJztcbmltcG9ydCB7cmVuZGVyRGVja0dsTGF5ZXIsIHByZXBhcmVMYXllcnNUb1JlbmRlciwgcHJlcGFyZUxheWVyc0ZvckRlY2t9IGZyb20gJ3V0aWxzL2xheWVyLXV0aWxzJztcblxuLy8gZGVmYXVsdC1zZXR0aW5nc1xuaW1wb3J0IFRocmVlREJ1aWxkaW5nTGF5ZXIgZnJvbSAnZGVja2dsLWxheWVycy8zZC1idWlsZGluZy1sYXllci8zZC1idWlsZGluZy1sYXllcic7XG5pbXBvcnQge1xuICBGSUxURVJfVFlQRVMsXG4gIEdFT0NPREVSX0xBWUVSX0lELFxuICBNQVNLX0xBWUVSX0lELFxuICBUSFJPVFRMRV9OT1RJRklDQVRJT05fVElNRVxufSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5cbmltcG9ydCB7b2JzZXJ2ZURpbWVuc2lvbnMsIHVub2JzZXJ2ZURpbWVuc2lvbnN9IGZyb20gJy4uL3V0aWxzL29ic2VydmUtZGltZW5zaW9ucyc7XG5pbXBvcnQge0xPQ0FMRV9DT0RFU30gZnJvbSAnbG9jYWxpemF0aW9uL2xvY2FsZXMnO1xuXG4vLyAzRCB0aWxlc1xuaW1wb3J0IHtfVGVycmFpbkV4dGVuc2lvbiBhcyBUZXJyYWluRXh0ZW5zaW9ufSBmcm9tICdAZGVjay5nbC9leHRlbnNpb25zJztcbmltcG9ydCB7VGlsZTNETGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2dlby1sYXllcnMnO1xuXG5jb25zdCBHT09HTEVfTUFQU19BUElfS0VZID0gJ0FJemFTeUNwdlF5bWM1d2pTWUlzeHkzUlYxd2lkTTNwM2g3OENBayc7XG5cbmNsYXNzIEN1c3RvbVRpbGUzRExheWVyIGV4dGVuZHMgVGlsZTNETGF5ZXIge1xuICBmaWx0ZXJTdWJMYXllcih7bGF5ZXIsIHZpZXdwb3J0fSkge1xuICAgIC8vIERvIG5vdCBzaG93IHRpbGVzIHdoaWNoIGFyZSBtYW55IGxheWVycyB0b28gbG93IGluIHJlc29sdXRpb24gKGF2b2lkcyBhcnRpZmFjdHMpXG4gICAgY29uc3QgbG9kWm9vbSA9IDIyIC0gTWF0aC5sb2cyKGxheWVyLnByb3BzLnRpbGUubG9kTWV0cmljVmFsdWUpO1xuICAgIHJldHVybiBsb2Rab29tID4gdmlld3BvcnQ/Lnpvb207XG4gIH1cbn1cblxubGV0IGggPSAwO1xuY29uc3QgdGlsZXMzZCA9IG5ldyBDdXN0b21UaWxlM0RMYXllcih7XG4gIGlkOiAnZ29vZ2xlLTNkLXRpbGVzJyxcbiAgZGF0YTogJ2h0dHBzOi8vdGlsZS5nb29nbGVhcGlzLmNvbS92MS8zZHRpbGVzL3Jvb3QuanNvbicsXG4gIG9uVGlsZXNldExvYWQ6IHRpbGVzZXQzZCA9PiB7XG4gICAgdGlsZXNldDNkLm9wdGlvbnMubWF4aW11bVNjcmVlblNwYWNlRXJyb3IgPSA1O1xuICAgIHRpbGVzZXQzZC5fb25UaWxlTG9hZEVycm9yID0gKCkgPT4ge307XG4gICAgdGlsZXNldDNkLm9wdGlvbnMub25UcmF2ZXJzYWxDb21wbGV0ZSA9IHNlbGVjdGVkVGlsZXMgPT4ge1xuICAgICAgbGV0IG1pbkxvZCA9IEluZmluaXR5O1xuICAgICAgZm9yIChjb25zdCB7bG9kTWV0cmljVmFsdWV9IG9mIHNlbGVjdGVkVGlsZXMpIHtcbiAgICAgICAgaWYgKGxvZE1ldHJpY1ZhbHVlIDwgbWluTG9kKSBtaW5Mb2QgPSBsb2RNZXRyaWNWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZpbHRlcmVkID0gc2VsZWN0ZWRUaWxlcy5maWx0ZXIodCA9PiB0LmxvZE1ldHJpY1ZhbHVlIDwgNCAqIG1pbkxvZCk7XG5cbiAgICAgIC8vIEhhY2t5IHdheSB0byBvYnRhaW4gaGVpZ2h0IGFib3ZlIHNlYSBsZXZlbCB0byBpbXByb3ZlIGNvbnRyb2xzXG4gICAgICBpZiAoZmlsdGVyZWQubGVuZ3RoKSB7XG4gICAgICAgIGggPSBmaWx0ZXJlZC5tYXAodCA9PiB0LmJvdW5kaW5nQm94WzBdWzJdKS5yZWR1Y2UoKGEsIG4pID0+IGEgKyBuKSAvIGZpbHRlcmVkLmxlbmd0aDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHNlbGVjdGVkVGlsZXM7XG4gICAgfTtcbiAgfSxcbiAgbG9hZE9wdGlvbnM6IHtcbiAgICBmZXRjaDoge2hlYWRlcnM6IHsnWC1HT09HLUFQSS1LRVknOiBHT09HTEVfTUFQU19BUElfS0VZfX1cbiAgfSxcbiAgLy8gQHRzLWlnbm9yZVxuICBvcGVyYXRpb246ICd0ZXJyYWluK2RyYXcnIC8vIFJlcXVpcmVkIHRvIGVuYWJsZSBkcmFwaW5nIG9mIG90aGVyIGxheWVyc1xufSk7XG5jb25zdCB0ZXJyYWluRXh0ZW5zaW9uID0gbmV3IFRlcnJhaW5FeHRlbnNpb24oKTtcblxuLy8gRWZmZWN0c1xuY29uc3QgYW1iaWVudExpZ2h0ID0gbmV3IEFtYmllbnRMaWdodCh7Y29sb3I6IFsyNTUsIDI1NSwgMjU1XSwgaW50ZW5zaXR5OiAxfSk7XG5jb25zdCBzdW5MaWdodCA9IG5ldyBfU3VuTGlnaHQoe1xuICB0aW1lc3RhbXA6IDE2ODM4Njk5MTU3NzcsXG4gIGNvbG9yOiBbMjU1LCAyNTUsIDI1NV0sXG4gIGludGVuc2l0eTogMSxcbiAgX3NoYWRvdzogdHJ1ZVxufSk7XG5jb25zdCBsaWdodGluZ0VmZmVjdCA9IG5ldyBMaWdodGluZ0VmZmVjdCh7XG4gIGFtYmllbnRMaWdodCxcbiAgc3VuTGlnaHRcbn0pO1xubGlnaHRpbmdFZmZlY3Quc2hhZG93Q29sb3IgPSBbMCwgMCwgMCwgMF07XG5cbmNvbnN0IGJyaWdodG5lc3NDb250cmFzdEVmZmVjdCA9IG5ldyBQb3N0UHJvY2Vzc0VmZmVjdChicmlnaHRuZXNzQ29udHJhc3QsIHtcbiAgY29udHJhc3Q6IDAsXG4gIGJyaWdodG5lc3M6IDAuMlxufSk7XG5cbmNvbnN0IGh1ZVNhdHVyYXRpb25FZmZlY3QgPSBuZXcgUG9zdFByb2Nlc3NFZmZlY3QoaHVlU2F0dXJhdGlvbiwge2h1ZTogMCwgc2F0dXJhdGlvbjogMC4zfSk7XG5cbmNvbnN0IHZpYnJhbmNlRWZmZWN0ID0gbmV3IFBvc3RQcm9jZXNzRWZmZWN0KHZpYnJhbmNlLCB7YW1vdW50OiAxfSk7XG5cbi8vIFBlcmZvcm1hbmNlIGRlYnVnZ2luZ1xuaW1wb3J0IHtjcmVhdGVUcmFja2VyLCBjcmVhdGVMYXllclVwZGF0ZVRyYWNrZXIsIHJlbmRlclBlcmZvcm1hbmNlU3RhdHN9IGZyb20gJy4vcGVyZm9ybWFuY2UnO1xuY29uc3QgdHJhY2tlcnMgPSB7fTtcbmNvbnN0IFBFUkZfREVCVUcgPSB3aW5kb3c/LmxvY2F0aW9uPy5zZWFyY2g/LmluY2x1ZGVzKCdQRVJGX0RFQlVHJyk7XG5pZiAoUEVSRl9ERUJVRykge1xuICB0cmFja2Vycy5kcmF3Q291bnQgPSBjcmVhdGVUcmFja2VyKCdkcmF3cycpO1xuICB0cmFja2Vycy52aWV3cG9ydENoYW5nZUNvdW50ID0gY3JlYXRlVHJhY2tlcigndmlld3BvcnQgY2hhbmdlcycpO1xuICBjcmVhdGVMYXllclVwZGF0ZVRyYWNrZXIoJ3N0YXRlIHVwZGF0ZXMnLCBbTGF5ZXIsIFRpbGVMYXllcl0pO1xufVxuXG4vKiogQHR5cGUge3tba2V5OiBzdHJpbmddOiBSZWFjdC5DU1NQcm9wZXJ0aWVzfX0gKi9cbmNvbnN0IE1BUF9TVFlMRSA9IHtcbiAgY29udGFpbmVyOiB7XG4gICAgZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBoZWlnaHQ6ICcxMDAlJ1xuICB9LFxuICB0b3A6IHtcbiAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICB0b3A6ICcwcHgnLFxuICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICAgIGhlaWdodDogJzEwMCUnXG4gIH1cbn07XG5cbmNvbnN0IE1BUEJPWEdMX1NUWUxFX1VQREFURSA9ICdzdHlsZS5sb2FkJztcbmNvbnN0IE1BUEJPWEdMX1JFTkRFUiA9ICdyZW5kZXInO1xuY29uc3QgVFJBTlNJVElPTl9EVVJBVElPTiA9IDA7XG5cbmV4cG9ydCBjb25zdCBBdHRyaWJ1dGlvbiA9ICgpID0+IChcbiAgPFN0eWxlZEF0dHJidXRpb24+XG4gICAgPGRpdiBjbGFzc05hbWU9XCJhdHRyaXRpb24tbG9nb1wiPlxuICAgICAgQmFzZW1hcCBieTpcbiAgICAgIDxhXG4gICAgICAgIGNsYXNzTmFtZT1cIm1hcGJveGdsLWN0cmwtbG9nb1wiXG4gICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICBocmVmPVwiaHR0cHM6Ly93d3cubWFwYm94LmNvbS9cIlxuICAgICAgICBhcmlhLWxhYmVsPVwiTWFwYm94IGxvZ29cIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzTmFtZT1cImF0dHJpdGlvbi1saW5rXCI+XG4gICAgICA8YSBocmVmPVwiaHR0cHM6Ly9rZXBsZXIuZ2wvcG9saWN5L1wiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj5cbiAgICAgICAgwqkga2VwbGVyLmdsIHx7JyAnfVxuICAgICAgPC9hPlxuICAgICAgPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm1hcGJveC5jb20vYWJvdXQvbWFwcy9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+XG4gICAgICAgIMKpIE1hcGJveCB8eycgJ31cbiAgICAgIDwvYT5cbiAgICAgIDxhIGhyZWY9XCJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiIHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIj5cbiAgICAgICAgwqkgT3BlblN0cmVldE1hcCB8eycgJ31cbiAgICAgIDwvYT5cbiAgICAgIDxhIGhyZWY9XCJodHRwczovL3d3dy5tYXBib3guY29tL21hcC1mZWVkYmFjay9cIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCI+XG4gICAgICAgIDxzdHJvbmc+SW1wcm92ZSB0aGlzIG1hcDwvc3Ryb25nPlxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L1N0eWxlZEF0dHJidXRpb24+XG4pO1xuXG5NYXBDb250YWluZXJGYWN0b3J5LmRlcHMgPSBbTWFwUG9wb3ZlckZhY3RvcnksIE1hcENvbnRyb2xGYWN0b3J5LCBFZGl0b3JGYWN0b3J5XTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTWFwQ29udGFpbmVyRmFjdG9yeShNYXBQb3BvdmVyLCBNYXBDb250cm9sLCBFZGl0b3IpIHtcbiAgY2xhc3MgTWFwQ29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgLy8gcmVxdWlyZWRcbiAgICAgIGRhdGFzZXRzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgaW50ZXJhY3Rpb25Db25maWc6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIGxheWVyQmxlbmRpbmc6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIGxheWVyT3JkZXI6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLmlzUmVxdWlyZWQsXG4gICAgICBsYXllckRhdGE6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLmlzUmVxdWlyZWQsXG4gICAgICBsYXllcnM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLmlzUmVxdWlyZWQsXG4gICAgICBmaWx0ZXJzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KS5pc1JlcXVpcmVkLFxuICAgICAgbWFwU3RhdGU6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIG1hcENvbnRyb2xzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBtYXBTdHlsZTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgc2tldGNoVmFsdWU6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgICAgbWFwYm94QXBpVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgICAgdmlzU3RhdGVBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBtYXBTdGF0ZUFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIHVpU3RhdGVBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG5cbiAgICAgIC8vIG9wdGlvbmFsXG4gICAgICBwcmltYXJ5OiBQcm9wVHlwZXMuYm9vbCwgLy8gcHJpbWFyeSBvbmUgd2lsbCBiZSByZXBvcnRpbmcgaXRzIHNpemUgdG8gYXBwU3RhdGVcbiAgICAgIHJlYWRPbmx5OiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgIGlzRXhwb3J0OiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgIGNsaWNrZWQ6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICBob3ZlckluZm86IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICBtYXBMYXllcnM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICBvbk1hcFRvZ2dsZUxheWVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgIG9uTWFwU3R5bGVMb2FkZWQ6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgb25NYXBSZW5kZXI6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgZ2V0TWFwYm94UmVmOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgIGluZGV4OiBQcm9wVHlwZXMubnVtYmVyLFxuICAgICAgcG9wdXBTZXR0aW5nczogUHJvcFR5cGVzLm9iamVjdFxuICAgIH07XG5cbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgTWFwQ29tcG9uZW50OiBNYXBib3hHTE1hcCxcbiAgICAgIGRlY2tHbFByb3BzOiB7fSxcbiAgICAgIGluZGV4OiAwLFxuICAgICAgcHJpbWFyeTogdHJ1ZVxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgICAgc3VwZXIocHJvcHMpO1xuXG4gICAgICB0aGlzLnByZXZpb3VzTGF5ZXJzID0ge1xuICAgICAgICAvLyBbbGF5ZXJzLmlkXTogbWFwYm94TGF5ZXJDb25maWdcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuX2RlY2sgPSBudWxsO1xuICAgICAgdGhpcy5fcmVmID0gY3JlYXRlUmVmKCk7XG5cbiAgICAgIC8vIFJlbmRlciBsaW1pdGluZyBtZWNoYW5pc21cbiAgICAgIHRoaXMuX2hhc1JlbmRlcmVkID0gY3JlYXRlUmVmKCk7XG4gICAgICB0aGlzLl9tb3VzZVBvc2l0aW9uID0gY3JlYXRlUmVmKCk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICBvYnNlcnZlRGltZW5zaW9ucyh0aGlzLl9yZWYuY3VycmVudCwgdGhpcy5faGFuZGxlUmVzaXplKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgICBjb25zdCBjb250ZXh0TG9zdCA9IHRoaXMuc3RhdGU/LmNvbnRleHRMb3N0O1xuXG4gICAgICBpZiAoY29udGV4dExvc3QpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLWRpZC11cGRhdGUtc2V0LXN0YXRlXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe2NvbnRleHRMb3N0OiBmYWxzZX0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgLy8gdW5iaW5kIG1hcGJveGdsIGV2ZW50IGxpc3RlbmVyXG4gICAgICBpZiAodGhpcy5fbWFwKSB7XG4gICAgICAgIHRoaXMuX21hcC5vZmYoTUFQQk9YR0xfU1RZTEVfVVBEQVRFKTtcbiAgICAgICAgdGhpcy5fbWFwLm9mZihNQVBCT1hHTF9SRU5ERVIpO1xuICAgICAgfVxuICAgICAgdW5vYnNlcnZlRGltZW5zaW9ucyh0aGlzLl9yZWYuY3VycmVudCk7XG4gICAgfVxuXG4gICAgX2hhbmRsZVJlc2l6ZSA9IGRpbWVuc2lvbnMgPT4ge1xuICAgICAgY29uc3Qge3ByaW1hcnksIGlzRXhwb3J0fSA9IHRoaXMucHJvcHM7XG4gICAgICBpZiAocHJpbWFyeSkge1xuICAgICAgICBjb25zdCB7bWFwU3RhdGVBY3Rpb25zfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIGlmICghaXNFeHBvcnQgJiYgZGltZW5zaW9ucyAmJiBkaW1lbnNpb25zLndpZHRoID4gMCAmJiBkaW1lbnNpb25zLmhlaWdodCA+IDApIHtcbiAgICAgICAgICBtYXBTdGF0ZUFjdGlvbnMudXBkYXRlTWFwKGRpbWVuc2lvbnMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIHNrZXRjaFZhbHVlID0gcHJvcHMgPT4gcHJvcHM/LnNrZXRjaFZhbHVlO1xuICAgIGxheWVyc1NlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMubGF5ZXJzO1xuICAgIGxheWVyRGF0YVNlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMubGF5ZXJEYXRhO1xuICAgIG1hcExheWVyc1NlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMubWFwTGF5ZXJzO1xuICAgIGxheWVyT3JkZXJTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLmxheWVyT3JkZXI7XG4gICAgcG9wdXBTZXR0aW5nc1NlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMucG9wdXBTZXR0aW5ncztcblxuICAgIGxheWVyc1RvUmVuZGVyU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIHRoaXMubGF5ZXJzU2VsZWN0b3IsXG4gICAgICB0aGlzLmxheWVyRGF0YVNlbGVjdG9yLFxuICAgICAgdGhpcy5tYXBMYXllcnNTZWxlY3RvcixcbiAgICAgIHRoaXMucG9wdXBTZXR0aW5nc1NlbGVjdG9yLFxuICAgICAgcHJlcGFyZUxheWVyc1RvUmVuZGVyXG4gICAgKTtcbiAgICBsYXllcnNGb3JEZWNrU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIHRoaXMubGF5ZXJzU2VsZWN0b3IsXG4gICAgICB0aGlzLmxheWVyRGF0YVNlbGVjdG9yLFxuICAgICAgcHJlcGFyZUxheWVyc0ZvckRlY2tcbiAgICApO1xuICAgIGZpbHRlcnNTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLmZpbHRlcnM7XG4gICAgcG9seWdvbkZpbHRlcnMgPSBjcmVhdGVTZWxlY3Rvcih0aGlzLmZpbHRlcnNTZWxlY3RvciwgZmlsdGVycyA9PlxuICAgICAgZmlsdGVycy5maWx0ZXIoZiA9PiBmLnR5cGUgPT09IEZJTFRFUl9UWVBFUy5wb2x5Z29uKVxuICAgICk7XG5cbiAgICBtYXBib3hMYXllcnNTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgdGhpcy5sYXllcnNTZWxlY3RvcixcbiAgICAgIHRoaXMubGF5ZXJEYXRhU2VsZWN0b3IsXG4gICAgICB0aGlzLmxheWVyT3JkZXJTZWxlY3RvcixcbiAgICAgIHRoaXMubGF5ZXJzVG9SZW5kZXJTZWxlY3RvcixcbiAgICAgIGdlbmVyYXRlTWFwYm94TGF5ZXJzXG4gICAgKTtcblxuICAgIC8qIGNvbXBvbmVudCBwcml2YXRlIGZ1bmN0aW9ucyAqL1xuICAgIF9vbkNsb3NlTWFwUG9wb3ZlciA9ICgpID0+IHtcbiAgICAgIHRoaXMucHJvcHMudmlzU3RhdGVBY3Rpb25zLm9uTGF5ZXJDbGljayhudWxsKTtcbiAgICB9O1xuXG4gICAgX29uTGF5ZXJTZXREb21haW4gPSAoaWR4LCBjb2xvckRvbWFpbikgPT4ge1xuICAgICAgdGhpcy5wcm9wcy52aXNTdGF0ZUFjdGlvbnMubGF5ZXJDb25maWdDaGFuZ2UodGhpcy5wcm9wcy5sYXllcnNbaWR4XSwge1xuICAgICAgICBjb2xvckRvbWFpblxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIF9oYW5kbGVNYXBUb2dnbGVMYXllciA9IGxheWVySWQgPT4ge1xuICAgICAgY29uc3Qge2luZGV4OiBtYXBJbmRleCA9IDAsIHZpc1N0YXRlQWN0aW9uc30gPSB0aGlzLnByb3BzO1xuICAgICAgdmlzU3RhdGVBY3Rpb25zLnRvZ2dsZUxheWVyRm9yTWFwKG1hcEluZGV4LCBsYXllcklkKTtcbiAgICB9O1xuXG4gICAgX29uTWFwYm94U3R5bGVVcGRhdGUgPSAoKSA9PiB7XG4gICAgICAvLyBmb3JjZSByZWZyZXNoIG1hcGJveGdsIGxheWVyc1xuICAgICAgdGhpcy5wcmV2aW91c0xheWVycyA9IHt9O1xuICAgICAgdGhpcy5fdXBkYXRlTWFwYm94TGF5ZXJzKCk7XG5cbiAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vbk1hcFN0eWxlTG9hZGVkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25NYXBTdHlsZUxvYWRlZCh0aGlzLl9tYXApO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBfc2V0TWFwYm94TWFwID0gbWFwYm94ID0+IHtcbiAgICAgIGlmICghdGhpcy5fbWFwICYmIG1hcGJveCkge1xuICAgICAgICB0aGlzLl9tYXAgPSBtYXBib3guZ2V0TWFwKCk7XG4gICAgICAgIC8vIGkgbm90aWNlZCBpbiBjZXJ0YWluIGNvbnRleHQgd2UgZG9uJ3QgYWNjZXNzIHRoZSBhY3R1YWwgbWFwIGVsZW1lbnRcbiAgICAgICAgaWYgKCF0aGlzLl9tYXApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gYmluZCBtYXBib3hnbCBldmVudCBsaXN0ZW5lclxuICAgICAgICB0aGlzLl9tYXAub24oTUFQQk9YR0xfU1RZTEVfVVBEQVRFLCB0aGlzLl9vbk1hcGJveFN0eWxlVXBkYXRlKTtcblxuICAgICAgICB0aGlzLl9tYXAub24oTUFQQk9YR0xfUkVOREVSLCAoKSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLm9uTWFwUmVuZGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uTWFwUmVuZGVyKHRoaXMuX21hcCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMucHJvcHMuZ2V0TWFwYm94UmVmKSB7XG4gICAgICAgIC8vIFRoZSBwYXJlbnQgY29tcG9uZW50IGNhbiBnYWluIGFjY2VzcyB0byBvdXIgTWFwYm94R2xNYXAgYnlcbiAgICAgICAgLy8gcHJvdmlkaW5nIHRoaXMgY2FsbGJhY2suIE5vdGUgdGhhdCAnbWFwYm94JyB3aWxsIGJlIG51bGwgd2hlbiB0aGVcbiAgICAgICAgLy8gcmVmIGlzIHVuc2V0IChlLmcuIHdoZW4gYSBzcGxpdCBtYXAgaXMgY2xvc2VkKS5cbiAgICAgICAgdGhpcy5wcm9wcy5nZXRNYXBib3hSZWYobWFwYm94LCB0aGlzLnByb3BzLmluZGV4KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX29uRGVja0luaXRpYWxpemVkKGdsKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5vbkRlY2tJbml0aWFsaXplZCkge1xuICAgICAgICB0aGlzLnByb3BzLm9uRGVja0luaXRpYWxpemVkKHRoaXMuX2RlY2ssIGdsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfb25CZWZvcmVSZW5kZXIgPSAoe2dsfSkgPT4ge1xuICAgICAgc2V0TGF5ZXJCbGVuZGluZyhnbCwgdGhpcy5wcm9wcy5sYXllckJsZW5kaW5nKTtcbiAgICB9O1xuXG4gICAgX29uRGVja0Vycm9yID0gKGVycm9yLCBsYXllcikgPT4ge1xuICAgICAgaWYgKGVycm9yPy5tZXNzYWdlID09PSAnV2ViR0wgY29udGV4dCBpcyBsb3N0Jykge1xuICAgICAgICB0aGlzLnNldFN0YXRlKHtjb250ZXh0TG9zdDogdHJ1ZX0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGBBbiBlcnJvciBpbiBkZWNrLmdsOiAke2Vycm9yPy5tZXNzYWdlfSBpbiAke2xheWVyPy5pZH1gO1xuICAgICAgY29uc3Qgbm90aWZpY2F0aW9uSWQgPSBgJHtsYXllcj8uaWR9LSR7ZXJyb3I/Lm1lc3NhZ2V9YDtcblxuICAgICAgLy8gVGhyb3R0bGUgZXJyb3Igbm90aWZpY2F0aW9ucywgYXMgUmVhY3QgZG9lc24ndCBsaWtlIHRvbyBtYW55IHN0YXRlIGNoYW5nZXMgZnJvbSBoZXJlLlxuICAgICAgdGhpcy5fZGVja0dMRXJyb3JzRWxhcHNlZCA9IHRoaXMuX2RlY2tHTEVycm9yc0VsYXBzZWQgfHwge307XG4gICAgICBjb25zdCBsYXN0U2hvd24gPSB0aGlzLl9kZWNrR0xFcnJvcnNFbGFwc2VkW25vdGlmaWNhdGlvbklkXTtcbiAgICAgIGlmICghbGFzdFNob3duIHx8IGxhc3RTaG93biA8IERhdGUubm93KCkgLSBUSFJPVFRMRV9OT1RJRklDQVRJT05fVElNRSkge1xuICAgICAgICB0aGlzLl9kZWNrR0xFcnJvcnNFbGFwc2VkW25vdGlmaWNhdGlvbklkXSA9IERhdGUubm93KCk7XG5cbiAgICAgICAgLy8gQ3JlYXRlIG5ldyBlcnJvciBub3RpZmljYXRpb24gb3IgdXBkYXRlIGV4aXN0aW5nIG9uZSB3aXRoIHNhbWUgaWQuXG4gICAgICAgIC8vIFVwZGF0ZSBpcyByZXF1aXJlZCB0byBwcmVzZXJ2ZSB0aGUgb3JkZXIgb2Ygbm90aWZpY2F0aW9ucyBhcyB0aGV5IHByb2JhYmx5IGFyZSBnb2luZyB0byBcImp1bXBcIiBiYXNlZCBvbiBvcmRlciBvZiBlcnJvcnMuXG4gICAgICAgIGNvbnN0IHt1aVN0YXRlQWN0aW9uc30gPSB0aGlzLnByb3BzO1xuICAgICAgICB1aVN0YXRlQWN0aW9ucy5hZGROb3RpZmljYXRpb24oXG4gICAgICAgICAgZXJyb3JOb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3JNZXNzYWdlLFxuICAgICAgICAgICAgaWQ6IG5vdGlmaWNhdGlvbklkXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLyogY29tcG9uZW50IHJlbmRlciBmdW5jdGlvbnMgKi9cblxuICAgIC8qIGVzbGludC1kaXNhYmxlIGNvbXBsZXhpdHkgKi9cbiAgICBfcmVuZGVyTWFwUG9wb3ZlcihsYXllcnNUb1JlbmRlcikge1xuICAgICAgLy8gT3ZlcnJpZGVuIGluIEJ1aWxkZXI6IGZlYXR1cmVzL2J1aWxkZXIvdWkvS2VwbGVyR2wvTWFwQ29udGFpbmVyL01hcENvbnRhaW5lci50c3hcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8qIGVzbGludC1lbmFibGUgY29tcGxleGl0eSAqL1xuXG4gICAgX2dldEhvdmVyWFkodmlld3BvcnQsIGxuZ0xhdCkge1xuICAgICAgY29uc3Qgc2NyZWVuQ29vcmQgPSAhdmlld3BvcnQgfHwgIWxuZ0xhdCA/IG51bGwgOiB2aWV3cG9ydC5wcm9qZWN0KGxuZ0xhdCk7XG4gICAgICByZXR1cm4gc2NyZWVuQ29vcmQgJiYge3g6IHNjcmVlbkNvb3JkWzBdLCB5OiBzY3JlZW5Db29yZFsxXX07XG4gICAgfVxuXG4gICAgX3JlbmRlckRlY2tPdmVybGF5KGxheWVyc0ZvckRlY2spIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgbWFwU3RhdGUsXG4gICAgICAgIG1hcFN0eWxlLFxuICAgICAgICBsYXllckRhdGEsXG4gICAgICAgIGxheWVyT3JkZXIsXG4gICAgICAgIGxheWVycyxcbiAgICAgICAgdmlzU3RhdGVBY3Rpb25zLFxuICAgICAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgICAgICAgbWFwYm94QXBpVXJsLFxuICAgICAgICBtYXNrUG9seWdvblxuICAgICAgfSA9IHRoaXMucHJvcHM7XG4gICAgICB0cmFja2Vycy5kcmF3Q291bnQ/LmluY3JlbWVudCgpO1xuXG4gICAgICAvLyBpbml0aWFsaXNlIGxheWVycyBmcm9tIHByb3BzIGlmIGV4aXN0c1xuICAgICAgbGV0IGRlY2tHbExheWVycyA9IHRoaXMucHJvcHMuZGVja0dsUHJvcHM/LmxheWVycyB8fCBbXTtcblxuICAgICAgLy8gd2FpdCB1bnRpbCBkYXRhIGlzIHJlYWR5IGJlZm9yZSByZW5kZXIgZGF0YSBsYXllcnNcbiAgICAgIGlmIChsYXllckRhdGEgJiYgbGF5ZXJEYXRhLmxlbmd0aCkge1xuICAgICAgICAvLyBsYXN0IGxheWVyIHJlbmRlciBmaXJzdFxuICAgICAgICBjb25zdCBkYXRhTGF5ZXJzID0gbGF5ZXJPcmRlclxuICAgICAgICAgIC5zbGljZSgpXG4gICAgICAgICAgLnJldmVyc2UoKVxuICAgICAgICAgIC5maWx0ZXIoaWR4ID0+IGxheWVyc0ZvckRlY2tbbGF5ZXJzW2lkeF0uaWRdKVxuICAgICAgICAgIC5yZWR1Y2UoKG92ZXJsYXlzLCBpZHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxheWVyQ2FsbGJhY2tzID0ge1xuICAgICAgICAgICAgICBvblNldExheWVyRG9tYWluOiB2YWwgPT4gdGhpcy5fb25MYXllclNldERvbWFpbihpZHgsIHZhbClcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBsYXllck92ZXJsYXkgPSByZW5kZXJEZWNrR2xMYXllcih0aGlzLnByb3BzLCBsYXllckNhbGxiYWNrcywgaWR4KTtcbiAgICAgICAgICAgIHJldHVybiBvdmVybGF5cy5jb25jYXQobGF5ZXJPdmVybGF5IHx8IFtdKTtcbiAgICAgICAgICB9LCBbXSk7XG4gICAgICAgIGRlY2tHbExheWVycyA9IGRlY2tHbExheWVycy5jb25jYXQoZGF0YUxheWVycyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnByb3BzLmRlY2tHbFByb3BzPy5sYXllcnNPblRvcCkge1xuICAgICAgICBkZWNrR2xMYXllcnMgPSBkZWNrR2xMYXllcnMuY29uY2F0KHRoaXMucHJvcHMuZGVja0dsUHJvcHMubGF5ZXJzT25Ub3ApO1xuICAgICAgfVxuXG4gICAgICBpZiAobWFza1BvbHlnb24pIHtcbiAgICAgICAgZGVja0dsTGF5ZXJzLnB1c2goXG4gICAgICAgICAgbmV3IFNvbGlkUG9seWdvbkxheWVyKHtcbiAgICAgICAgICAgIGlkOiBNQVNLX0xBWUVSX0lELFxuICAgICAgICAgICAgb3BlcmF0aW9uOiBPUEVSQVRJT04uTUFTSyxcbiAgICAgICAgICAgIGRhdGE6IFttYXNrUG9seWdvbl0sXG4gICAgICAgICAgICBkYXRhQ29tcGFyYXRvcjogKGRhdGEsIG9sZERhdGEpID0+IGRhdGFbMF0gPT09IG9sZERhdGFbMF0sXG4gICAgICAgICAgICBnZXRQb2x5Z29uOiBkID0+IGQsXG4gICAgICAgICAgICBnZXRGaWxsQ29sb3I6IFsyNTUsIDI1NSwgMjU1LCAyNTVdXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1hcFN0eWxlLnZpc2libGVMYXllckdyb3Vwc1snM2QgYnVpbGRpbmcnXSkge1xuICAgICAgICBkZWNrR2xMYXllcnMucHVzaChcbiAgICAgICAgICBuZXcgVGhyZWVEQnVpbGRpbmdMYXllcih7XG4gICAgICAgICAgICBpZDogJ19rZXBsZXJnbF8zZC1idWlsZGluZycsXG4gICAgICAgICAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgICAgICAgICAgIG1hcGJveEFwaVVybCxcbiAgICAgICAgICAgIHRocmVlREJ1aWxkaW5nQ29sb3I6IG1hcFN0eWxlLnRocmVlREJ1aWxkaW5nQ29sb3IsXG4gICAgICAgICAgICB1cGRhdGVUcmlnZ2Vyczoge1xuICAgICAgICAgICAgICBnZXRGaWxsQ29sb3I6IG1hcFN0eWxlLnRocmVlREJ1aWxkaW5nQ29sb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBsZXQgZWZmZWN0cyA9IFtdO1xuICAgICAgaWYgKG1hcFN0eWxlLmJvdHRvbU1hcFN0eWxlPy50eXBlID09PSAnZ21hcHNfM2QnKSB7XG4gICAgICAgIC8vIEluamVjdCAzRCB0aWxlcyB3aGVuIG1hcCBzdHlsZSBpcyBWb3lhZ2VyIHdpdGhvdXQgbGF5ZXJzXG4gICAgICAgIGRlY2tHbExheWVycyA9IGRlY2tHbExheWVyc1xuICAgICAgICAgIC5maWx0ZXIobCA9PiBCb29sZWFuKGwgJiYgbC5jbG9uZSkpXG4gICAgICAgICAgLm1hcChsID0+IGwuY2xvbmUoe2V4dGVuc2lvbnM6IFsuLi5sLnByb3BzLmV4dGVuc2lvbnMsIHRlcnJhaW5FeHRlbnNpb25dfSkpO1xuICAgICAgICBkZWNrR2xMYXllcnMucHVzaCh0aWxlczNkLmNsb25lKCkpO1xuXG4gICAgICAgIGlmIChtYXBTdHlsZS5zdHlsZVR5cGUgPT09ICdnb29nbGUtM2Qtc2tldGNoJykge1xuICAgICAgICAgIGNvbnN0IGlua0VmZmVjdCA9IG5ldyBQb3N0UHJvY2Vzc0VmZmVjdChpbmssIHtzdHJlbmd0aDogbWFwU3R5bGUuc2tldGNoVmFsdWUgfHwgMC4yfSk7XG4gICAgICAgICAgY29uc3QgYWxsRWZmZWN0cyA9IFtcbiAgICAgICAgICAgIGxpZ2h0aW5nRWZmZWN0LFxuICAgICAgICAgICAgaHVlU2F0dXJhdGlvbkVmZmVjdCxcbiAgICAgICAgICAgIGJyaWdodG5lc3NDb250cmFzdEVmZmVjdCxcbiAgICAgICAgICAgIHZpYnJhbmNlRWZmZWN0LFxuICAgICAgICAgICAgaW5rRWZmZWN0XG4gICAgICAgICAgXTtcbiAgICAgICAgICBlZmZlY3RzID0gYWxsRWZmZWN0cztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBMaW1pdCByZW5kZXJzXG4gICAgICBjb25zdCBoYXNSZW5kZXJlZCA9IHRoaXMuX2hhc1JlbmRlcmVkO1xuICAgICAgY29uc3QgcmVzZXRIYXNSZW5kZXJlZCA9ICgpID0+IChoYXNSZW5kZXJlZC5jdXJyZW50ID0gZmFsc2UpO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPERlY2tHTFxuICAgICAgICAgIGNvbnRyb2xsZXI9e3RydWV9XG4gICAgICAgICAgey4uLnRoaXMucHJvcHMuZGVja0dsUHJvcHN9XG4gICAgICAgICAgdmlld1N0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICBvblZpZXdTdGF0ZUNoYW5nZT17KHt2aWV3U3RhdGUsIGludGVyYWN0aW9uU3RhdGV9KSA9PiB7XG4gICAgICAgICAgICAvLyBMaW1pdCB1cGRhdGVzIChwcmV2ZW50cyBmcmVlemVzIHdoZW4gZGV2IHRvb2xzIG9wZW4pXG4gICAgICAgICAgICBpZiAoIWhhc1JlbmRlcmVkLmN1cnJlbnQgJiYgdmlld1N0YXRlLndpZHRoID4gMSAmJiB2aWV3U3RhdGUuaGVpZ2h0ID4gMSkge1xuICAgICAgICAgICAgICBoYXNSZW5kZXJlZC5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgdGhpcy5fb25WaWV3cG9ydENoYW5nZSh2aWV3U3RhdGUsIGludGVyYWN0aW9uU3RhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH19XG4gICAgICAgICAgaWQ9XCJkZWZhdWx0LWRlY2tnbC1vdmVybGF5XCJcbiAgICAgICAgICBsYXllcnM9e2RlY2tHbExheWVyc31cbiAgICAgICAgICBlZmZlY3RzPXtlZmZlY3RzfVxuICAgICAgICAgIG9uQmVmb3JlUmVuZGVyPXtvcHRzID0+IHtcbiAgICAgICAgICAgIHJlc2V0SGFzUmVuZGVyZWQoKTtcbiAgICAgICAgICAgIHRoaXMuX29uQmVmb3JlUmVuZGVyKG9wdHMpO1xuICAgICAgICAgIH19XG4gICAgICAgICAgb25Ib3Zlcj17dmlzU3RhdGVBY3Rpb25zLm9uTGF5ZXJIb3Zlcn1cbiAgICAgICAgICBvbkNsaWNrPXt2aXNTdGF0ZUFjdGlvbnMub25MYXllckNsaWNrfVxuICAgICAgICAgIG9uRXJyb3I9e2UgPT4ge1xuICAgICAgICAgICAgZGVidWdnZXI7XG4gICAgICAgICAgICB0aGlzLl9vbkRlY2tFcnJvcihlKTtcbiAgICAgICAgICB9fVxuICAgICAgICAgIHJlZj17Y29tcCA9PiB7XG4gICAgICAgICAgICBpZiAoY29tcCAmJiBjb21wLmRlY2sgJiYgY29tcC5kZWNrICE9PSB0aGlzLl9kZWNrKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2RlY2sgPSBjb21wLmRlY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbldlYkdMSW5pdGlhbGl6ZWQ9e2dsID0+IHRoaXMuX29uRGVja0luaXRpYWxpemVkKGdsKX1cbiAgICAgICAgICBsYXllckZpbHRlcj17KHtsYXllciwgdmlld3BvcnR9KSA9PiB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGlzTmFOKGxheWVyLnByb3BzLnZpc2liaWxpdHlCeVpvb20/Lm1pbikgfHxcbiAgICAgICAgICAgICAgaXNOYU4obGF5ZXIucHJvcHMudmlzaWJpbGl0eUJ5Wm9vbT8ubWF4KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY3VycmVudFpvb21SYW5nZSA9IE1hdGgucm91bmQobWFwU3RhdGUuem9vbSk7XG5cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIGxheWVyLnByb3BzLnZpc2liaWxpdHlCeVpvb20ubWluIDw9IGN1cnJlbnRab29tUmFuZ2UgJiZcbiAgICAgICAgICAgICAgbGF5ZXIucHJvcHMudmlzaWJpbGl0eUJ5Wm9vbS5tYXggPj0gY3VycmVudFpvb21SYW5nZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBfdXBkYXRlTWFwYm94TGF5ZXJzKCkge1xuICAgICAgY29uc3QgbWFwYm94TGF5ZXJzID0gdGhpcy5tYXBib3hMYXllcnNTZWxlY3Rvcih0aGlzLnByb3BzKTtcbiAgICAgIGlmICghT2JqZWN0LmtleXMobWFwYm94TGF5ZXJzKS5sZW5ndGggJiYgIU9iamVjdC5rZXlzKHRoaXMucHJldmlvdXNMYXllcnMpLmxlbmd0aCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHVwZGF0ZU1hcGJveExheWVycyh0aGlzLl9tYXAsIG1hcGJveExheWVycywgdGhpcy5wcmV2aW91c0xheWVycyk7XG5cbiAgICAgIHRoaXMucHJldmlvdXNMYXllcnMgPSBtYXBib3hMYXllcnM7XG4gICAgfVxuXG4gICAgX3JlbmRlck1hcGJveE92ZXJsYXlzKCkge1xuICAgICAgaWYgKHRoaXMuX21hcCAmJiB0aGlzLl9tYXAuaXNTdHlsZUxvYWRlZCgpKSB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZU1hcGJveExheWVycygpO1xuICAgICAgfVxuICAgIH1cblxuICAgIF9vblZpZXdwb3J0Q2hhbmdlID0gKHZpZXdTdGF0ZSwgaW50ZXJhY3Rpb25TdGF0ZSkgPT4ge1xuICAgICAgdHJhY2tlcnMudmlld3BvcnRDaGFuZ2VDb3VudD8uaW5jcmVtZW50KCk7XG5cbiAgICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0LCAuLi5yZXN0Vmlld1N0YXRlfSA9IHZpZXdTdGF0ZTtcbiAgICAgIGNvbnN0IHtwcmltYXJ5LCBpc0V4cG9ydH0gPSB0aGlzLnByb3BzO1xuICAgICAgLy8gcmVhY3QtbWFwLWdsIHNlbmRzIDAsMCBkaW1lbnNpb25zIGR1cmluZyBpbml0aWFsaXphdGlvblxuICAgICAgLy8gYWZ0ZXIgd2UgaGF2ZSByZWNlaXZlZCBwcm9wZXIgZGltZW5zaW9ucyBmcm9tIG9ic2VydmVEaW1lbnNpb25zXG4gICAgICBjb25zdCBuZXh0ID0ge1xuICAgICAgICAuLi4od2lkdGggPiAwICYmIGhlaWdodCA+IDAgPyB2aWV3U3RhdGUgOiByZXN0Vmlld1N0YXRlKSxcblxuICAgICAgICAvLyBBdXRvLXVwZGF0ZSB0aGUgY2FtZXJhIGhlaWdodCBhY2NvcmRpbmcgdG8gM0QgdGlsZXMsIGV4Y2VwdCB3aGVuIHRyYW5zaXRpb25pbmdcbiAgICAgICAgLi4uKGludGVyYWN0aW9uU3RhdGUgJiYgIWludGVyYWN0aW9uU3RhdGUuaW5UcmFuc2l0aW9uICYmIHtwb3NpdGlvbjogWzAsIDAsIGhdfSlcbiAgICAgICAgLy8gZW5hYmxpbmcgdHJhbnNpdGlvbiBpbiB0d28gbWFwcyBtYXkgbGVhZCB0byBlbmRsZXNzIHVwZGF0ZSBsb29wc1xuICAgICAgICAvLyB0cmFuc2l0aW9uRHVyYXRpb246IHByaW1hcnkgPyBUUkFOU0lUSU9OX0RVUkFUSU9OIDogMCAvLyBEaXNhYmxlIGZvciAzRCB0aWxlcyB0cmFuc2l0aW9uc1xuICAgICAgfTtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vblZpZXdTdGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLnByb3BzLm9uVmlld1N0YXRlQ2hhbmdlKG5leHQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWlzRXhwb3J0KSB7XG4gICAgICAgIHRoaXMucHJvcHMubWFwU3RhdGVBY3Rpb25zLnVwZGF0ZU1hcChuZXh0KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX3RvZ2dsZU1hcENvbnRyb2wgPSBwYW5lbElkID0+IHtcbiAgICAgIGNvbnN0IHtpbmRleCwgdWlTdGF0ZUFjdGlvbnN9ID0gdGhpcy5wcm9wcztcblxuICAgICAgdWlTdGF0ZUFjdGlvbnMudG9nZ2xlTWFwQ29udHJvbChwYW5lbElkLCBpbmRleCk7XG4gICAgfTtcblxuICAgIC8qIGVzbGludC1kaXNhYmxlIGNvbXBsZXhpdHkgKi9cbiAgICBfcmVuZGVyTWFwKCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBtYXBTdGF0ZSxcbiAgICAgICAgbWFwU3R5bGUsXG4gICAgICAgIG1hcFN0YXRlQWN0aW9ucyxcbiAgICAgICAgc2tldGNoVmFsdWUsXG4gICAgICAgIGxheWVycyxcbiAgICAgICAgTWFwQ29tcG9uZW50LFxuICAgICAgICBkYXRhc2V0cyxcbiAgICAgICAgbWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gICAgICAgIG1hcGJveEFwaVVybCxcbiAgICAgICAgbWFwQ29udHJvbHMsXG4gICAgICAgIGlzRXhwb3J0LFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgICAgICB2aXNTdGF0ZUFjdGlvbnMsXG4gICAgICAgIGludGVyYWN0aW9uQ29uZmlnLFxuICAgICAgICBlZGl0b3IsXG4gICAgICAgIGluZGV4LFxuICAgICAgICBwcmltYXJ5XG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgY29uc3QgbGF5ZXJzVG9SZW5kZXIgPSB0aGlzLmxheWVyc1RvUmVuZGVyU2VsZWN0b3IodGhpcy5wcm9wcyk7XG4gICAgICBjb25zdCBsYXllcnNGb3JEZWNrID0gdGhpcy5sYXllcnNGb3JEZWNrU2VsZWN0b3IodGhpcy5wcm9wcyk7XG5cbiAgICAgIGNvbnN0IG1hcFByb3BzID0ge1xuICAgICAgICAuLi5tYXBTdGF0ZSxcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIHByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZSxcbiAgICAgICAgbWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gICAgICAgIG1hcGJveEFwaVVybCxcbiAgICAgICAgdHJhbnNmb3JtUmVxdWVzdFxuICAgICAgfTtcblxuICAgICAgY29uc3QgaXNFZGl0ID0gKG1hcENvbnRyb2xzLm1hcERyYXcgfHwge30pLmFjdGl2ZTtcblxuICAgICAgY29uc3QgaGFzR2VvY29kZXJMYXllciA9IGxheWVycy5maW5kKGwgPT4gbC5pZCA9PT0gR0VPQ09ERVJfTEFZRVJfSUQpO1xuICAgICAgY29uc3QgaXNTcGxpdCA9IEJvb2xlYW4obWFwU3RhdGUuaXNTcGxpdCk7XG4gICAgICBjb25zdCBtb3VzZVBvc2l0aW9uID0gdGhpcy5fbW91c2VQb3NpdGlvbjtcblxuICAgICAgY29uc3QgbmVlZHNCYXNlbWFwID0gbWFwU3R5bGUuYm90dG9tTWFwU3R5bGUudHlwZSAhPT0gJ2dtYXBzXzNkJztcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8TWFwQ29udHJvbFxuICAgICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgICAgYXZhaWxhYmxlTG9jYWxlcz17T2JqZWN0LmtleXMoTE9DQUxFX0NPREVTKX1cbiAgICAgICAgICAgIGRyYWdSb3RhdGU9e21hcFN0YXRlLmRyYWdSb3RhdGV9XG4gICAgICAgICAgICBpc1NwbGl0PXtpc1NwbGl0fVxuICAgICAgICAgICAgcHJpbWFyeT17cHJpbWFyeX1cbiAgICAgICAgICAgIGlzRXhwb3J0PXtpc0V4cG9ydH1cbiAgICAgICAgICAgIGxheWVycz17bGF5ZXJzfVxuICAgICAgICAgICAgbGF5ZXJzVG9SZW5kZXI9e2xheWVyc1RvUmVuZGVyfVxuICAgICAgICAgICAgbWFwSW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgbWFwQ29udHJvbHM9e21hcENvbnRyb2xzfVxuICAgICAgICAgICAgcmVhZE9ubHk9e3RoaXMucHJvcHMucmVhZE9ubHl9XG4gICAgICAgICAgICBzY2FsZT17bWFwU3RhdGUuc2NhbGUgfHwgMX1cbiAgICAgICAgICAgIHRvcD17aW50ZXJhY3Rpb25Db25maWcuZ2VvY29kZXIgJiYgaW50ZXJhY3Rpb25Db25maWcuZ2VvY29kZXIuZW5hYmxlZCA/IDUyIDogMH1cbiAgICAgICAgICAgIGVkaXRvcj17ZWRpdG9yfVxuICAgICAgICAgICAgbG9jYWxlPXtsb2NhbGV9XG4gICAgICAgICAgICBvblRvZ2dsZVBlcnNwZWN0aXZlPXttYXBTdGF0ZUFjdGlvbnMudG9nZ2xlUGVyc3BlY3RpdmV9XG4gICAgICAgICAgICBvblRvZ2dsZVNwbGl0TWFwPXttYXBTdGF0ZUFjdGlvbnMudG9nZ2xlU3BsaXRNYXB9XG4gICAgICAgICAgICBvbk1hcFRvZ2dsZUxheWVyPXt0aGlzLl9oYW5kbGVNYXBUb2dnbGVMYXllcn1cbiAgICAgICAgICAgIG9uVG9nZ2xlTWFwQ29udHJvbD17dGhpcy5fdG9nZ2xlTWFwQ29udHJvbH1cbiAgICAgICAgICAgIG9uU2V0RWRpdG9yTW9kZT17dmlzU3RhdGVBY3Rpb25zLnNldEVkaXRvck1vZGV9XG4gICAgICAgICAgICBvblNldExvY2FsZT17dWlTdGF0ZUFjdGlvbnMuc2V0TG9jYWxlfVxuICAgICAgICAgICAgb25Ub2dnbGVFZGl0b3JWaXNpYmlsaXR5PXt2aXNTdGF0ZUFjdGlvbnMudG9nZ2xlRWRpdG9yVmlzaWJpbGl0eX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHtuZWVkc0Jhc2VtYXAgPyAoXG4gICAgICAgICAgICA8TWFwQ29tcG9uZW50XG4gICAgICAgICAgICAgIHsuLi5tYXBQcm9wc31cbiAgICAgICAgICAgICAga2V5PVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgcmVmPXt0aGlzLl9zZXRNYXBib3hNYXB9XG4gICAgICAgICAgICAgIG1hcFN0eWxlPXttYXBTdHlsZS5ib3R0b21NYXBTdHlsZX1cbiAgICAgICAgICAgICAgc2tldGNoVmFsdWU9e3NrZXRjaFZhbHVlfVxuICAgICAgICAgICAgICBnZXRDdXJzb3I9e3RoaXMucHJvcHMuaG92ZXJJbmZvID8gKCkgPT4gJ3BvaW50ZXInIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICBvbk1vdXNlTW92ZT17ZXZ0ID0+IHtcbiAgICAgICAgICAgICAgICAvLyBTZW5kaW5nIG1vdXNlIG1vdmUgdXBkYXRlcyB2aWEgUmVkdXggaXMgZXhwZW5zaXZlLiBTdG9yZVxuICAgICAgICAgICAgICAgIC8vIGxvY2FsbHkgYW5kIHJlbHkgb24gZGVjay5nbCB0byBkcml2ZSByZW5kZXIgdXBkYXRlc1xuICAgICAgICAgICAgICAgIC8vIFNlZSBCdWlsZGVyOiBmZWF0dXJlcy9idWlsZGVyL3VpL0tlcGxlckdsL01hcENvbnRhaW5lci9NYXBDb250YWluZXIudHN4XG4gICAgICAgICAgICAgICAgbW91c2VQb3NpdGlvbi5jdXJyZW50ID0ge21vdXNlUG9zaXRpb246IGV2dC5wb2ludH07XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtQRVJGX0RFQlVHICYmIHJlbmRlclBlcmZvcm1hbmNlU3RhdHMoKX1cbiAgICAgICAgICAgICAge3RoaXMuX3JlbmRlckRlY2tPdmVybGF5KGxheWVyc0ZvckRlY2spfVxuICAgICAgICAgICAgICB7dGhpcy5fcmVuZGVyTWFwYm94T3ZlcmxheXMoKX1cbiAgICAgICAgICAgICAgPEVkaXRvclxuICAgICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICAgICAgICAgICAgZmlsdGVycz17dGhpcy5wb2x5Z29uRmlsdGVycyh0aGlzLnByb3BzKX1cbiAgICAgICAgICAgICAgICBpc0VuYWJsZWQ9e2lzRWRpdH1cbiAgICAgICAgICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgICAgICAgICBsYXllcnNUb1JlbmRlcj17bGF5ZXJzVG9SZW5kZXJ9XG4gICAgICAgICAgICAgICAgb25EZWxldGVGZWF0dXJlPXt2aXNTdGF0ZUFjdGlvbnMuZGVsZXRlRmVhdHVyZX1cbiAgICAgICAgICAgICAgICBvblNlbGVjdD17dmlzU3RhdGVBY3Rpb25zLnNldFNlbGVjdGVkRmVhdHVyZX1cbiAgICAgICAgICAgICAgICBvblVwZGF0ZT17dmlzU3RhdGVBY3Rpb25zLnNldEZlYXR1cmVzfVxuICAgICAgICAgICAgICAgIG9uVG9nZ2xlUG9seWdvbkZpbHRlcj17dmlzU3RhdGVBY3Rpb25zLnNldFBvbHlnb25GaWx0ZXJMYXllcn1cbiAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgcG9pbnRlckV2ZW50czogaXNFZGl0ID8gJ2FsbCcgOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGVkaXRvci52aXNpYmxlID8gJ2Jsb2NrJyA6ICdub25lJ1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L01hcENvbXBvbmVudD5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAge1BFUkZfREVCVUcgJiYgcmVuZGVyUGVyZm9ybWFuY2VTdGF0cygpfVxuICAgICAgICAgICAgICB7dGhpcy5fcmVuZGVyRGVja092ZXJsYXkobGF5ZXJzRm9yRGVjayl9XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApfVxuICAgICAgICAgIHttYXBTdHlsZS50b3BNYXBTdHlsZSB8fCBoYXNHZW9jb2RlckxheWVyID8gKFxuICAgICAgICAgICAgPGRpdiBzdHlsZT17TUFQX1NUWUxFLnRvcH0+XG4gICAgICAgICAgICAgIDxNYXBDb21wb25lbnQgey4uLm1hcFByb3BzfSBrZXk9XCJ0b3BcIiBtYXBTdHlsZT17bWFwU3R5bGUudG9wTWFwU3R5bGV9PlxuICAgICAgICAgICAgICAgIHt0aGlzLl9yZW5kZXJEZWNrT3ZlcmxheSh7W0dFT0NPREVSX0xBWUVSX0lEXTogdHJ1ZX0pfVxuICAgICAgICAgICAgICA8L01hcENvbXBvbmVudD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIHt0aGlzLl9yZW5kZXJNYXBQb3BvdmVyKGxheWVyc1RvUmVuZGVyKX1cbiAgICAgICAgICB7IWlzU3BsaXQgfHwgaW5kZXggPT09IDEgPyA8QXR0cmlidXRpb24gLz4gOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge21hcFN0YXRlLCBtYXBTdHlsZX0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgY29udGV4dExvc3QgPSB0aGlzLnN0YXRlPy5jb250ZXh0TG9zdDtcblxuICAgICAgaWYgKGNvbnRleHRMb3N0KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkTWFwQ29udGFpbmVyIHJlZj17dGhpcy5fcmVmfSBzdHlsZT17TUFQX1NUWUxFLmNvbnRhaW5lcn0gZ2xvYmU9e21hcFN0YXRlLmdsb2JlfT5cbiAgICAgICAgICB7bWFwU3R5bGUuYm90dG9tTWFwU3R5bGUgJiYgdGhpcy5fcmVuZGVyTWFwKCl9XG4gICAgICAgIDwvU3R5bGVkTWFwQ29udGFpbmVyPlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBNYXBDb250YWluZXIuZGlzcGxheU5hbWUgPSAnTWFwQ29udGFpbmVyJztcblxuICByZXR1cm4gTWFwQ29udGFpbmVyO1xufVxuIl19
@@ -74,6 +74,9 @@ function MapManagerFactory(MapStyleSelector, LayerGroupSelector, ColorSelector)
74
74
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "setColorSelector", function (props) {
75
75
  return props.mapStyleActions.set3dBuildingColor;
76
76
  });
77
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "setTiles3dSketchValue", function (props) {
78
+ return props.mapStyleActions.setTiles3dSketchValue;
79
+ });
77
80
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_toggleSelecting", function () {
78
81
  _this.setState({
79
82
  isSelecting: !_this.state.isSelecting
@@ -152,4 +155,4 @@ function MapManagerFactory(MapStyleSelector, LayerGroupSelector, ColorSelector)
152
155
 
153
156
  var _default = MapManagerFactory;
154
157
  exports["default"] = _default;
155
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvbWFwLW1hbmFnZXIuanMiXSwibmFtZXMiOlsiTWFwTWFuYWdlckZhY3RvcnkiLCJkZXBzIiwiTWFwU3R5bGVTZWxlY3RvckZhY3RvcnkiLCJMYXllckdyb3VwU2VsZWN0b3JGYWN0b3J5IiwiQ29sb3JTZWxlY3RvckZhY3RvcnkiLCJNYXBTdHlsZVNlbGVjdG9yIiwiTGF5ZXJHcm91cFNlbGVjdG9yIiwiQ29sb3JTZWxlY3RvciIsIk1hcE1hbmFnZXIiLCJpc1NlbGVjdGluZyIsInByb3BzIiwibWFwU3R5bGUiLCJ0aHJlZURCdWlsZGluZ0NvbG9yIiwibWFwU3R5bGVBY3Rpb25zIiwic2V0M2RCdWlsZGluZ0NvbG9yIiwic2V0U3RhdGUiLCJzdGF0ZSIsInZhbCIsIm1hcFN0eWxlQ2hhbmdlIiwiX3RvZ2dsZVNlbGVjdGluZyIsImludGwiLCJzaG93QWRkTWFwU3R5bGVNb2RhbCIsImN1cnJlbnRTdHlsZSIsIm1hcFN0eWxlcyIsInN0eWxlVHlwZSIsImVkaXRhYmxlTGF5ZXJzIiwibGF5ZXJHcm91cHMiLCJtYXAiLCJsZyIsInNsdWciLCJoYXNCdWlsZGluZ0xheWVyIiwidmlzaWJsZUxheWVyR3JvdXBzIiwiY29sb3JTZXRTZWxlY3RvciIsImJ1aWxkaW5nQ29sb3JTZWxlY3RvciIsInNldENvbG9yU2VsZWN0b3IiLCJzZWxlY3RlZENvbG9yIiwic2V0Q29sb3IiLCJpc1JhbmdlIiwibGFiZWwiLCJmb3JtYXRNZXNzYWdlIiwiaWQiLCJjb2xvclNldHMiLCJfc2VsZWN0U3R5bGUiLCJsZW5ndGgiLCJ0b3BMYXllckdyb3VwcyIsIm1hcENvbmZpZ0NoYW5nZSIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJmdW5jIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUVBOztB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RUUsVUFBQSxjQUFjLEVBQUVOLGNBRmxCO0FBR0UsVUFBQSxTQUFTLEVBQUVkLFFBQVEsQ0FBQ2lDLGNBSHRCO0FBSUUsVUFBQSxRQUFRLEVBQUUvQixlQUFlLENBQUNnQztBQUo1QixVQURELEdBT0csSUFkTixlQWVFLGdDQUFDLGtDQUFELHFCQUNFLGdDQUFDLGFBQUQ7QUFBZSxVQUFBLFNBQVMsRUFBRUosU0FBMUI7QUFBcUMsVUFBQSxRQUFRLEVBQUUsQ0FBQ1g7QUFBaEQsVUFERixDQWZGLGVBa0JFLGdDQUFDLHdCQUFEO0FBQVEsVUFBQSxTQUFTLEVBQUMsc0JBQWxCO0FBQXlDLFVBQUEsT0FBTyxFQUFFVCxvQkFBbEQ7QUFBd0UsVUFBQSxTQUFTO0FBQWpGLHdCQUNFLGdDQUFDLFVBQUQ7QUFBSyxVQUFBLE1BQU0sRUFBQztBQUFaLFVBREYsZUFFRSxnQ0FBQyw4QkFBRDtBQUFrQixVQUFBLEVBQUUsRUFBRTtBQUF0QixVQUZGLENBbEJGLENBREYsQ0FERjtBQTJCRDtBQXpFMkU7QUFBQTtBQUFBLElBQ3JEeUIsZ0JBRHFEOztBQUFBLG1DQUN4RXRDLFVBRHdFLGVBRXpEO0FBQ2pCRyxJQUFBQSxRQUFRLEVBQUVvQyxzQkFBVUMsTUFBVixDQUFpQkMsVUFEVjtBQUVqQnBDLElBQUFBLGVBQWUsRUFBRWtDLHNCQUFVQyxNQUFWLENBQWlCQyxVQUZqQjtBQUdqQjVCLElBQUFBLG9CQUFvQixFQUFFMEIsc0JBQVVHLElBQVYsQ0FBZUQ7QUFIcEIsR0FGeUQ7QUEyRTlFLFNBQU8sMkJBQVd6QyxVQUFYLENBQVA7QUFDRDs7ZUFFY1IsaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmltcG9ydCB7QnV0dG9uLCBTaWRlUGFuZWxTZWN0aW9ufSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgTWFwU3R5bGVTZWxlY3RvckZhY3RvcnkgZnJvbSAnY29tcG9uZW50cy9zaWRlLXBhbmVsL21hcC1zdHlsZS1wYW5lbC9tYXAtc3R5bGUtc2VsZWN0b3InO1xuaW1wb3J0IExheWVyR3JvdXBTZWxlY3RvckZhY3RvcnkgZnJvbSAnY29tcG9uZW50cy9zaWRlLXBhbmVsL21hcC1zdHlsZS1wYW5lbC9tYXAtbGF5ZXItc2VsZWN0b3InO1xuXG5pbXBvcnQge0FkZH0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vaWNvbnMnO1xuaW1wb3J0IHtjcmVhdGVTZWxlY3Rvcn0gZnJvbSAncmVzZWxlY3QnO1xuaW1wb3J0IHtpbmplY3RJbnRsfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnbG9jYWxpemF0aW9uJztcbmltcG9ydCBDb2xvclNlbGVjdG9yRmFjdG9yeSBmcm9tICcuL2xheWVyLXBhbmVsL2NvbG9yLXNlbGVjdG9yJztcblxuTWFwTWFuYWdlckZhY3RvcnkuZGVwcyA9IFtNYXBTdHlsZVNlbGVjdG9yRmFjdG9yeSwgTGF5ZXJHcm91cFNlbGVjdG9yRmFjdG9yeSwgQ29sb3JTZWxlY3RvckZhY3RvcnldO1xuXG5mdW5jdGlvbiBNYXBNYW5hZ2VyRmFjdG9yeShNYXBTdHlsZVNlbGVjdG9yLCBMYXllckdyb3VwU2VsZWN0b3IsIENvbG9yU2VsZWN0b3IpIHtcbiAgY2xhc3MgTWFwTWFuYWdlciBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIG1hcFN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBtYXBTdHlsZUFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIHNob3dBZGRNYXBTdHlsZU1vZGFsOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkXG4gICAgfTtcblxuICAgIHN0YXRlID0ge1xuICAgICAgaXNTZWxlY3Rpbmc6IGZhbHNlXG4gICAgfTtcblxuICAgIGJ1aWxkaW5nQ29sb3JTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLm1hcFN0eWxlLnRocmVlREJ1aWxkaW5nQ29sb3I7XG4gICAgc2V0Q29sb3JTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLm1hcFN0eWxlQWN0aW9ucy5zZXQzZEJ1aWxkaW5nQ29sb3I7XG5cbiAgICBfdG9nZ2xlU2VsZWN0aW5nID0gKCkgPT4ge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7aXNTZWxlY3Rpbmc6ICF0aGlzLnN0YXRlLmlzU2VsZWN0aW5nfSk7XG4gICAgfTtcblxuICAgIF9zZWxlY3RTdHlsZSA9IHZhbCA9PiB7XG4gICAgICBjb25zdCB7bWFwU3R5bGVBY3Rpb25zfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCB7bWFwU3R5bGVDaGFuZ2V9ID0gbWFwU3R5bGVBY3Rpb25zO1xuICAgICAgbWFwU3R5bGVDaGFuZ2UodmFsKTtcbiAgICAgIHRoaXMuX3RvZ2dsZVNlbGVjdGluZygpO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7bWFwU3R5bGUsIGludGwsIG1hcFN0eWxlQWN0aW9ucywgc2hvd0FkZE1hcFN0eWxlTW9kYWx9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IGN1cnJlbnRTdHlsZSA9IG1hcFN0eWxlLm1hcFN0eWxlc1ttYXBTdHlsZS5zdHlsZVR5cGVdIHx8IHt9O1xuICAgICAgY29uc3QgZWRpdGFibGVMYXllcnMgPSAoY3VycmVudFN0eWxlLmxheWVyR3JvdXBzIHx8IFtdKS5tYXAobGcgPT4gbGcuc2x1Zyk7XG4gICAgICBjb25zdCBoYXNCdWlsZGluZ0xheWVyID0gbWFwU3R5bGUudmlzaWJsZUxheWVyR3JvdXBzWyczZCBidWlsZGluZyddO1xuICAgICAgY29uc3QgY29sb3JTZXRTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgICB0aGlzLmJ1aWxkaW5nQ29sb3JTZWxlY3RvcixcbiAgICAgICAgdGhpcy5zZXRDb2xvclNlbGVjdG9yLFxuICAgICAgICAoc2VsZWN0ZWRDb2xvciwgc2V0Q29sb3IpID0+IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzZWxlY3RlZENvbG9yLFxuICAgICAgICAgICAgc2V0Q29sb3IsXG4gICAgICAgICAgICBpc1JhbmdlOiBmYWxzZSxcbiAgICAgICAgICAgIGxhYmVsOiBpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbWFwTWFuYWdlci4zZEJ1aWxkaW5nQ29sb3InfSlcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGNvbG9yU2V0cyA9IGNvbG9yU2V0U2VsZWN0b3IodGhpcy5wcm9wcyk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWFwLXN0eWxlLXBhbmVsXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxNYXBTdHlsZVNlbGVjdG9yXG4gICAgICAgICAgICAgIG1hcFN0eWxlPXttYXBTdHlsZX1cbiAgICAgICAgICAgICAgaXNTZWxlY3Rpbmc9e3RoaXMuc3RhdGUuaXNTZWxlY3Rpbmd9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLl9zZWxlY3RTdHlsZX1cbiAgICAgICAgICAgICAgdG9nZ2xlQWN0aXZlPXt0aGlzLl90b2dnbGVTZWxlY3Rpbmd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge2VkaXRhYmxlTGF5ZXJzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgPExheWVyR3JvdXBTZWxlY3RvclxuICAgICAgICAgICAgICAgIGxheWVycz17bWFwU3R5bGUudmlzaWJsZUxheWVyR3JvdXBzfVxuICAgICAgICAgICAgICAgIGVkaXRhYmxlTGF5ZXJzPXtlZGl0YWJsZUxheWVyc31cbiAgICAgICAgICAgICAgICB0b3BMYXllcnM9e21hcFN0eWxlLnRvcExheWVyR3JvdXBzfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXttYXBTdHlsZUFjdGlvbnMubWFwQ29uZmlnQ2hhbmdlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICAgICAgPENvbG9yU2VsZWN0b3IgY29sb3JTZXRzPXtjb2xvclNldHN9IGRpc2FibGVkPXshaGFzQnVpbGRpbmdMYXllcn0gLz5cbiAgICAgICAgICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICAgIDxCdXR0b24gY2xhc3NOYW1lPVwiYWRkLW1hcC1zdHlsZS1idXR0b25cIiBvbkNsaWNrPXtzaG93QWRkTWFwU3R5bGVNb2RhbH0gc2Vjb25kYXJ5PlxuICAgICAgICAgICAgICA8QWRkIGhlaWdodD1cIjEycHhcIiAvPlxuICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21hcE1hbmFnZXIuYWRkTWFwU3R5bGUnfSAvPlxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGluamVjdEludGwoTWFwTWFuYWdlcik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1hcE1hbmFnZXJGYWN0b3J5O1xuIl19
158
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvbWFwLW1hbmFnZXIuanMiXSwibmFtZXMiOlsiTWFwTWFuYWdlckZhY3RvcnkiLCJkZXBzIiwiTWFwU3R5bGVTZWxlY3RvckZhY3RvcnkiLCJMYXllckdyb3VwU2VsZWN0b3JGYWN0b3J5IiwiQ29sb3JTZWxlY3RvckZhY3RvcnkiLCJNYXBTdHlsZVNlbGVjdG9yIiwiTGF5ZXJHcm91cFNlbGVjdG9yIiwiQ29sb3JTZWxlY3RvciIsIk1hcE1hbmFnZXIiLCJpc1NlbGVjdGluZyIsInByb3BzIiwibWFwU3R5bGUiLCJ0aHJlZURCdWlsZGluZ0NvbG9yIiwibWFwU3R5bGVBY3Rpb25zIiwic2V0M2RCdWlsZGluZ0NvbG9yIiwic2V0VGlsZXMzZFNrZXRjaFZhbHVlIiwic2V0U3RhdGUiLCJzdGF0ZSIsInZhbCIsIm1hcFN0eWxlQ2hhbmdlIiwiX3RvZ2dsZVNlbGVjdGluZyIsImludGwiLCJzaG93QWRkTWFwU3R5bGVNb2RhbCIsImN1cnJlbnRTdHlsZSIsIm1hcFN0eWxlcyIsInN0eWxlVHlwZSIsImVkaXRhYmxlTGF5ZXJzIiwibGF5ZXJHcm91cHMiLCJtYXAiLCJsZyIsInNsdWciLCJoYXNCdWlsZGluZ0xheWVyIiwidmlzaWJsZUxheWVyR3JvdXBzIiwiY29sb3JTZXRTZWxlY3RvciIsImJ1aWxkaW5nQ29sb3JTZWxlY3RvciIsInNldENvbG9yU2VsZWN0b3IiLCJzZWxlY3RlZENvbG9yIiwic2V0Q29sb3IiLCJpc1JhbmdlIiwibGFiZWwiLCJmb3JtYXRNZXNzYWdlIiwiaWQiLCJjb2xvclNldHMiLCJfc2VsZWN0U3R5bGUiLCJsZW5ndGgiLCJ0b3BMYXllckdyb3VwcyIsIm1hcENvbmZpZ0NoYW5nZSIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJmdW5jIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztB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QUt2QjtBQUpyQixVQURGLEVBT0dNLGNBQWMsQ0FBQ2tCLE1BQWYsZ0JBQ0MsZ0NBQUMsa0JBQUQ7QUFDRSxVQUFBLE1BQU0sRUFBRWpDLFFBQVEsQ0FBQ3FCLGtCQURuQjtBQUVFLFVBQUEsY0FBYyxFQUFFTixjQUZsQjtBQUdFLFVBQUEsU0FBUyxFQUFFZixRQUFRLENBQUNrQyxjQUh0QjtBQUlFLFVBQUEsUUFBUSxFQUFFaEMsZUFBZSxDQUFDaUM7QUFKNUIsVUFERCxHQU9HLElBZE4sZUFlRSxnQ0FBQyxrQ0FBRCxxQkFDRSxnQ0FBQyxhQUFEO0FBQWUsVUFBQSxTQUFTLEVBQUVKLFNBQTFCO0FBQXFDLFVBQUEsUUFBUSxFQUFFLENBQUNYO0FBQWhELFVBREYsQ0FmRixlQWtCRSxnQ0FBQyx3QkFBRDtBQUFRLFVBQUEsU0FBUyxFQUFDLHNCQUFsQjtBQUF5QyxVQUFBLE9BQU8sRUFBRVQsb0JBQWxEO0FBQXdFLFVBQUEsU0FBUztBQUFqRix3QkFDRSxnQ0FBQyxVQUFEO0FBQUssVUFBQSxNQUFNLEVBQUM7QUFBWixVQURGLGVBRUUsZ0NBQUMsOEJBQUQ7QUFBa0IsVUFBQSxFQUFFLEVBQUU7QUFBdEIsVUFGRixDQWxCRixDQURGLENBREY7QUEyQkQ7QUExRTJFO0FBQUE7QUFBQSxJQUNyRHlCLGdCQURxRDs7QUFBQSxtQ0FDeEV2QyxVQUR3RSxlQUV6RDtBQUNqQkcsSUFBQUEsUUFBUSxFQUFFcUMsc0JBQVVDLE1BQVYsQ0FBaUJDLFVBRFY7QUFFakJyQyxJQUFBQSxlQUFlLEVBQUVtQyxzQkFBVUMsTUFBVixDQUFpQkMsVUFGakI7QUFHakI1QixJQUFBQSxvQkFBb0IsRUFBRTBCLHNCQUFVRyxJQUFWLENBQWVEO0FBSHBCLEdBRnlEO0FBNEU5RSxTQUFPLDJCQUFXMUMsVUFBWCxDQUFQO0FBQ0Q7O2VBRWNSLGlCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5pbXBvcnQge0J1dHRvbiwgU2lkZVBhbmVsU2VjdGlvbn0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IE1hcFN0eWxlU2VsZWN0b3JGYWN0b3J5IGZyb20gJ2NvbXBvbmVudHMvc2lkZS1wYW5lbC9tYXAtc3R5bGUtcGFuZWwvbWFwLXN0eWxlLXNlbGVjdG9yJztcbmltcG9ydCBMYXllckdyb3VwU2VsZWN0b3JGYWN0b3J5IGZyb20gJ2NvbXBvbmVudHMvc2lkZS1wYW5lbC9tYXAtc3R5bGUtcGFuZWwvbWFwLWxheWVyLXNlbGVjdG9yJztcblxuaW1wb3J0IHtBZGR9IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2ljb25zJztcbmltcG9ydCB7Y3JlYXRlU2VsZWN0b3J9IGZyb20gJ3Jlc2VsZWN0JztcbmltcG9ydCB7aW5qZWN0SW50bH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ2xvY2FsaXphdGlvbic7XG5pbXBvcnQgQ29sb3JTZWxlY3RvckZhY3RvcnkgZnJvbSAnLi9sYXllci1wYW5lbC9jb2xvci1zZWxlY3Rvcic7XG5cbk1hcE1hbmFnZXJGYWN0b3J5LmRlcHMgPSBbTWFwU3R5bGVTZWxlY3RvckZhY3RvcnksIExheWVyR3JvdXBTZWxlY3RvckZhY3RvcnksIENvbG9yU2VsZWN0b3JGYWN0b3J5XTtcblxuZnVuY3Rpb24gTWFwTWFuYWdlckZhY3RvcnkoTWFwU3R5bGVTZWxlY3RvciwgTGF5ZXJHcm91cFNlbGVjdG9yLCBDb2xvclNlbGVjdG9yKSB7XG4gIGNsYXNzIE1hcE1hbmFnZXIgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICBtYXBTdHlsZTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgbWFwU3R5bGVBY3Rpb25zOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBzaG93QWRkTWFwU3R5bGVNb2RhbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZFxuICAgIH07XG5cbiAgICBzdGF0ZSA9IHtcbiAgICAgIGlzU2VsZWN0aW5nOiBmYWxzZVxuICAgIH07XG5cbiAgICBidWlsZGluZ0NvbG9yU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5tYXBTdHlsZS50aHJlZURCdWlsZGluZ0NvbG9yO1xuICAgIHNldENvbG9yU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5tYXBTdHlsZUFjdGlvbnMuc2V0M2RCdWlsZGluZ0NvbG9yO1xuICAgIHNldFRpbGVzM2RTa2V0Y2hWYWx1ZSA9IHByb3BzID0+IHByb3BzLm1hcFN0eWxlQWN0aW9ucy5zZXRUaWxlczNkU2tldGNoVmFsdWU7XG5cbiAgICBfdG9nZ2xlU2VsZWN0aW5nID0gKCkgPT4ge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7aXNTZWxlY3Rpbmc6ICF0aGlzLnN0YXRlLmlzU2VsZWN0aW5nfSk7XG4gICAgfTtcblxuICAgIF9zZWxlY3RTdHlsZSA9IHZhbCA9PiB7XG4gICAgICBjb25zdCB7bWFwU3R5bGVBY3Rpb25zfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCB7bWFwU3R5bGVDaGFuZ2V9ID0gbWFwU3R5bGVBY3Rpb25zO1xuICAgICAgbWFwU3R5bGVDaGFuZ2UodmFsKTtcbiAgICAgIHRoaXMuX3RvZ2dsZVNlbGVjdGluZygpO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7bWFwU3R5bGUsIGludGwsIG1hcFN0eWxlQWN0aW9ucywgc2hvd0FkZE1hcFN0eWxlTW9kYWx9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IGN1cnJlbnRTdHlsZSA9IG1hcFN0eWxlLm1hcFN0eWxlc1ttYXBTdHlsZS5zdHlsZVR5cGVdIHx8IHt9O1xuICAgICAgY29uc3QgZWRpdGFibGVMYXllcnMgPSAoY3VycmVudFN0eWxlLmxheWVyR3JvdXBzIHx8IFtdKS5tYXAobGcgPT4gbGcuc2x1Zyk7XG4gICAgICBjb25zdCBoYXNCdWlsZGluZ0xheWVyID0gbWFwU3R5bGUudmlzaWJsZUxheWVyR3JvdXBzWyczZCBidWlsZGluZyddO1xuICAgICAgY29uc3QgY29sb3JTZXRTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgICB0aGlzLmJ1aWxkaW5nQ29sb3JTZWxlY3RvcixcbiAgICAgICAgdGhpcy5zZXRDb2xvclNlbGVjdG9yLFxuICAgICAgICAoc2VsZWN0ZWRDb2xvciwgc2V0Q29sb3IpID0+IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzZWxlY3RlZENvbG9yLFxuICAgICAgICAgICAgc2V0Q29sb3IsXG4gICAgICAgICAgICBpc1JhbmdlOiBmYWxzZSxcbiAgICAgICAgICAgIGxhYmVsOiBpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnbWFwTWFuYWdlci4zZEJ1aWxkaW5nQ29sb3InfSlcbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGNvbG9yU2V0cyA9IGNvbG9yU2V0U2VsZWN0b3IodGhpcy5wcm9wcyk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWFwLXN0eWxlLXBhbmVsXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxNYXBTdHlsZVNlbGVjdG9yXG4gICAgICAgICAgICAgIG1hcFN0eWxlPXttYXBTdHlsZX1cbiAgICAgICAgICAgICAgaXNTZWxlY3Rpbmc9e3RoaXMuc3RhdGUuaXNTZWxlY3Rpbmd9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLl9zZWxlY3RTdHlsZX1cbiAgICAgICAgICAgICAgdG9nZ2xlQWN0aXZlPXt0aGlzLl90b2dnbGVTZWxlY3Rpbmd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAge2VkaXRhYmxlTGF5ZXJzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgPExheWVyR3JvdXBTZWxlY3RvclxuICAgICAgICAgICAgICAgIGxheWVycz17bWFwU3R5bGUudmlzaWJsZUxheWVyR3JvdXBzfVxuICAgICAgICAgICAgICAgIGVkaXRhYmxlTGF5ZXJzPXtlZGl0YWJsZUxheWVyc31cbiAgICAgICAgICAgICAgICB0b3BMYXllcnM9e21hcFN0eWxlLnRvcExheWVyR3JvdXBzfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXttYXBTdHlsZUFjdGlvbnMubWFwQ29uZmlnQ2hhbmdlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICAgICAgPENvbG9yU2VsZWN0b3IgY29sb3JTZXRzPXtjb2xvclNldHN9IGRpc2FibGVkPXshaGFzQnVpbGRpbmdMYXllcn0gLz5cbiAgICAgICAgICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICAgIDxCdXR0b24gY2xhc3NOYW1lPVwiYWRkLW1hcC1zdHlsZS1idXR0b25cIiBvbkNsaWNrPXtzaG93QWRkTWFwU3R5bGVNb2RhbH0gc2Vjb25kYXJ5PlxuICAgICAgICAgICAgICA8QWRkIGhlaWdodD1cIjEycHhcIiAvPlxuICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21hcE1hbmFnZXIuYWRkTWFwU3R5bGUnfSAvPlxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGluamVjdEludGwoTWFwTWFuYWdlcik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1hcE1hbmFnZXJGYWN0b3J5O1xuIl19