@carto/kepler.gl 0.0.86-alpha.deck9.1-2 → 0.0.87

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.
@@ -116,7 +116,7 @@ var KEPLER_GL_NAME = exports.KEPLER_GL_NAME = 'kepler.gl';
116
116
  // Since we are injecting this during the build process with babel
117
117
  // while developing VERSION is not defined, we capture the exception and return
118
118
  // an empty string which will allow us to retrieve the latest umd version
119
- var KEPLER_GL_VERSION = exports.KEPLER_GL_VERSION = "0.0.86-alpha.deck9.1-2";
119
+ var KEPLER_GL_VERSION = exports.KEPLER_GL_VERSION = "0.0.87";
120
120
  var KEPLER_GL_WEBSITE = exports.KEPLER_GL_WEBSITE = 'http://kepler.gl/';
121
121
  var DIMENSIONS = exports.DIMENSIONS = {
122
122
  sidePanel: {
@@ -829,4 +829,4 @@ var ZOOM_LEVEL_LIMITS = exports.ZOOM_LEVEL_LIMITS = {
829
829
  min: 0,
830
830
  max: 21
831
831
  };
832
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfa2V5bWlycm9yIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVhY3RNYXBHbERyYXciLCJfZDNTY2FsZSIsIl9pY29ucyIsIl91dGlscyIsIl9jdXN0b21TY2FsZXMiLCJfdG9vbHRpcCIsIl90eXBlcyIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiQUNUSU9OX1BSRUZJWCIsImV4cG9ydHMiLCJDTE9VREZST05UIiwiSUNPTl9QUkVGSVgiLCJjb25jYXQiLCJERUZBVUxUX01BUEJPWF9BUElfVVJMIiwiREFUQV9UQUJMRV9JRCIsIkRFTEVURV9EQVRBX0lEIiwiQUREX0RBVEFfSUQiLCJFWFBPUlRfSU1BR0VfSUQiLCJFWFBPUlRfREFUQV9JRCIsIkFERF9NQVBfU1RZTEVfSUQiLCJFWFBPUlRfTUFQX0lEIiwiU0FWRV9NQVBfSUQiLCJPVkVSV1JJVEVfTUFQX0lEIiwiU0hBUkVfTUFQX0lEIiwiS0VQTEVSX0dMX05BTUUiLCJLRVBMRVJfR0xfVkVSU0lPTiIsIktFUExFUl9HTF9XRUJTSVRFIiwiRElNRU5TSU9OUyIsInNpZGVQYW5lbCIsIndpZHRoIiwibWFyZ2luIiwidG9wIiwibGVmdCIsImJvdHRvbSIsInJpZ2h0IiwiaGVhZGVySGVpZ2h0IiwibWFwQ29udHJvbCIsInBhZGRpbmciLCJtYXBMZWdlbmQiLCJwaW5uZWQiLCJUSEVNRSIsImtleU1pcnJvciIsImxpZ2h0IiwiZGFyayIsImJhc2UiLCJTSURFQkFSX1BBTkVMUyIsImlkIiwibGFiZWwiLCJpY29uQ29tcG9uZW50IiwiTGF5ZXJzIiwib25DbGljayIsIkZpbHRlckZ1bm5lbCIsIkN1cnNvckNsaWNrIiwiU2V0dGluZ3MiLCJQQU5FTFMiLCJERUZBVUxUX0xBWUVSX0dST1VQUyIsInNsdWciLCJfcmVmIiwibWF0Y2giLCJkZWZhdWx0VmlzaWJpbGl0eSIsIl9yZWYyIiwiX3JlZjMiLCJfcmVmNCIsIl9yZWY1IiwiX3JlZjYiLCJERUZBVUxUX01BUF9TVFlMRVMiLCJ1cmwiLCJpY29uIiwibGF5ZXJHcm91cHMiLCJHRU9KU09OX0ZJRUxEUyIsImdlb2pzb24iLCJJQ09OX0ZJRUxEUyIsIlRSSVBfUE9JTlRfRklFTERTIiwiVFJJUF9BUkNfRklFTERTIiwibGF0MCIsImxuZzAiLCJsYXQxIiwibG5nMSIsIkZJTFRFUl9UWVBFUyIsInJhbmdlIiwic2VsZWN0IiwiaW5wdXQiLCJ0aW1lUmFuZ2UiLCJtdWx0aVNlbGVjdCIsInBvbHlnb24iLCJTQ0FMRV9UWVBFUyIsIm9yZGluYWwiLCJxdWFudGlsZSIsInF1YW50aXplIiwibGluZWFyIiwic3FydCIsImxvZyIsInBvaW50IiwiY3VzdG9tIiwibG9nYXJpdGhtaWMiLCJpZGVudGl0eSIsIlNDQUxFX0ZVTkMiLCJzY2FsZUxpbmVhciIsInNjYWxlUXVhbnRpemUiLCJzY2FsZVF1YW50aWxlIiwic2NhbGVPcmRpbmFsIiwic2NhbGVTcXJ0Iiwic2NhbGVMb2ciLCJzY2FsZVBvaW50Iiwic2NhbGVUaHJlc2hvbGQiLCJzY2FsZUlkZW50aXR5IiwiQUxMX0ZJRUxEX1RZUEVTIiwiZGF0ZSIsImludGVnZXIiLCJyZWFsIiwic3RyaW5nIiwidGltZXN0YW1wIiwiU09SVF9PUkRFUiIsIkFTQ0VORElORyIsIkRFU0NFTkRJTkciLCJVTlNPUlQiLCJUQUJMRV9PUFRJT04iLCJTT1JUX0FTQyIsIlNPUlRfREVTIiwiUElOIiwiVU5QSU4iLCJDT1BZIiwiVEFCTEVfT1BUSU9OX0xJU1QiLCJ2YWx1ZSIsImRpc3BsYXkiLCJBcnJvd1VwIiwiY29uZGl0aW9uIiwicHJvcHMiLCJzb3J0TW9kZSIsIkFycm93RG93biIsIkNhbmNlbCIsImlzU29ydGVkIiwiUGluIiwiaXNQaW5uZWQiLCJDbGlwYm9hcmQiLCJPUkFOR0UiLCJQSU5LIiwiUFVSUExFIiwiQkxVRSIsIkJMVUUyIiwiQkxVRTMiLCJHUkVFTiIsIlJFRCIsIkZJTEVEX1RZUEVfRElTUExBWSIsImNvbG9yIiwiRklFTERfQ09MT1JTIiwiSElHSExJR0hfQ09MT1JfM0QiLCJDSEFOTkVMX1NDQUxFUyIsInJhZGl1cyIsInNpemUiLCJjdXN0b21NYXJrZXIiLCJjb2xvckFnZ3IiLCJzaXplQWdnciIsIkFHR1JFR0FUSU9OX1RZUEVTIiwiY291bnQiLCJhdmVyYWdlIiwibWF4aW11bSIsIm1pbmltdW0iLCJtZWRpYW4iLCJzdGRldiIsInN1bSIsInZhcmlhbmNlIiwibW9kZSIsImNvdW50VW5pcXVlIiwiYW55VmFsdWUiLCJGSUVMRF9UWVBFU19BR0dSRUdBVE9SUyIsIkZJRUxEX0FHR1JFR0FUT1JTIiwiZGlzcGxheU5hbWUiLCJsaW5lYXJGaWVsZFNjYWxlRnVuY3Rpb25zIiwibGluZWFyRmllbGRBZ2dyU2NhbGVGdW5jdGlvbnMiLCJvcmRpbmFsRmllbGRTY2FsZUZ1bmN0aW9ucyIsIm9yZGluYWxGaWVsZEFnZ3JTY2FsZUZ1bmN0aW9ucyIsIm5vdFN1cHBvcnRlZFNjYWxlT3B0cyIsIm5vdFN1cHBvcnRBZ2dyT3B0cyIsIkRFRkFVTFRfQUdHUkVHQVRJT04iLCJGSUVMRF9PUFRTIiwidHlwZSIsInNjYWxlIiwiZm9ybWF0IiwibGVnZW5kIiwiZCIsInRvb2x0aXAiLCJUT09MVElQX0ZPUk1BVF9UWVBFUyIsIk5PTkUiLCJERUNJTUFMIiwiUEVSQ0VOVEFHRSIsIkRBVEUiLCJEQVRFX1RJTUUiLCJCT09MRUFOIiwiQ0hBTk5FTF9TQ0FMRV9TVVBQT1JURURfRklFTERTIiwicmVkdWNlIiwiYWNjdSIsImtleSIsImZ0IiwiREVGQVVMVF9MQVlFUl9DT0xPUiIsInRyaXBBcmMiLCJiZWdpbnRyaXBfbGF0IiwiZHJvcG9mZl9sYXQiLCJyZXF1ZXN0X2xhdCIsIkRFRkFVTFRfVE9PTFRJUF9GSUVMRFMiLCJOT19WQUxVRV9DT0xPUiIsIlVOS05PV05fQ09MT1IiLCJMQVlFUl9CTEVORElOR1MiLCJhZGRpdGl2ZSIsImJsZW5kRnVuYyIsImJsZW5kRXF1YXRpb24iLCJub3JtYWwiLCJzdWJ0cmFjdGl2ZSIsIk1BWF9ERUZBVUxUX1RPT0xUSVBTIiwiUkVTT0xVVElPTlMiLCJPTkVfWCIsIlRXT19YIiwiRVhQT1JUX0lNR19SQVRJT1MiLCJTQ1JFRU4iLCJGT1VSX0JZX1RIUkVFIiwiU0lYVEVFTl9CWV9OSU5FIiwiQ1VTVE9NIiwiU2NyZWVuUmF0aW9PcHRpb24iLCJnZXRTaXplIiwic2NyZWVuVyIsInNjcmVlbkgiLCJoZWlnaHQiLCJDdXN0b21SYXRpb09wdGlvbiIsImhpZGRlbiIsIm1hcFciLCJtYXBIIiwiRm91ckJ5VGhyZWVSYXRpb09wdGlvbiIsIk1hdGgiLCJyb3VuZCIsIlNpeHRlZW5CeU5pbmVSYXRpb09wdGlvbiIsIkVYUE9SVF9JTUdfUkFUSU9fT1BUSU9OUyIsIk9uZVhSZXNvbHV0aW9uT3B0aW9uIiwiYXZhaWxhYmxlIiwiVHdvWFJlc29sdXRpb25PcHRpb24iLCJFWFBPUlRfSU1HX1JFU09MVVRJT05fT1BUSU9OUyIsIkVYUE9SVF9EQVRBX1RZUEUiLCJDU1YiLCJFWFBPUlRfREFUQV9UWVBFX09QVElPTlMiLCJ0b0xvd2VyQ2FzZSIsIkVYUE9SVF9NQVBfRk9STUFUUyIsIkhUTUwiLCJKU09OIiwiRVhQT1JUX0hUTUxfTUFQX01PREVTIiwiUkVBRCIsIkVESVQiLCJFWFBPUlRfTUFQX0ZPUk1BVF9PUFRJT05TIiwiZW50cmllcyIsIm1hcCIsImVudHJ5IiwiRVhQT1JUX0hUTUxfTUFQX01PREVfT1BUSU9OUyIsImdldEhUTUxNYXBNb2RlVGlsZVVybCIsIkRFRkFVTFRfVVVJRF9DT1VOVCIsIkRFRkFVTFRfTk9USUZJQ0FUSU9OX01FU1NBR0UiLCJERUZBVUxUX05PVElGSUNBVElPTl9UWVBFUyIsImluZm8iLCJlcnJvciIsIndhcm5pbmciLCJzdWNjZXNzIiwiREVGQVVMVF9OT1RJRklDQVRJT05fVE9QSUNTIiwiZ2xvYmFsIiwiZmlsZSIsIlRIUk9UVExFX05PVElGSUNBVElPTl9USU1FIiwiQkFTRV9TUEVFRCIsIkZQUyIsIkFOSU1BVElPTl9XSU5ET1ciLCJmcmVlIiwiaW5jcmVtZW50YWwiLCJpbnRlcnZhbCIsIkRFRkFVTFRfVElNRV9GT1JNQVQiLCJTUEVFRF9DT05UUk9MX1JBTkdFIiwiU1BFRURfQ09OVFJPTF9TVEVQIiwiR0VPQ09ERVJfREFUQVNFVF9OQU1FIiwiR0VPQ09ERVJfTEFZRVJfSUQiLCJHRU9DT0RFUl9HRU9fT0ZGU0VUIiwiR0VPQ09ERVJfSUNPTl9DT0xPUiIsIkdFT0NPREVSX0lDT05fU0laRSIsIkVESVRPUl9NT0RFUyIsIlJFQURfT05MWSIsIkVkaXRvck1vZGVzIiwiRFJBV19QT0xZR09OIiwiRFJBV19SRUNUQU5HTEUiLCJFRElUX1ZFUlRFWCIsIkVESVRPUl9BVkFJTEFCTEVfTEFZRVJTIiwiTEFZRVJfVFlQRVMiLCJoZXhhZ29uIiwiYXJjIiwibGluZSIsImhleGFnb25JZCIsIk1BWF9HUFVfRklMVEVSUyIsIk1BUF9USFVNQk5BSUxfRElNRU5TSU9OIiwiTUFQX0lORk9fQ0hBUkFDVEVSIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsIkxPQURJTkdfTUVUSE9EUyIsInVwbG9hZCIsInN0b3JhZ2UiLCJEQVRBU0VUX0ZPUk1BVFMiLCJyb3ciLCJjc3YiLCJrZXBsZXJnbCIsIk1BUF9DT05UUk9MUyIsInZpc2libGVMYXllcnMiLCJ0b2dnbGUzZCIsInNwbGl0TWFwIiwibWFwRHJhdyIsIm1hcExvY2FsZSIsIk1BU0tfTEFZRVJfSUQiLCJaT09NX0xFVkVMX0xJTUlUUyIsIm1pbiIsIm1heCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQga2V5TWlycm9yIGZyb20gJ2tleW1pcnJvcic7XG5pbXBvcnQge0VkaXRvck1vZGVzfSBmcm9tICdyZWFjdC1tYXAtZ2wtZHJhdyc7XG5cbmltcG9ydCB7Q29sb3J9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IHtcbiAgc2NhbGVMaW5lYXIsXG4gIHNjYWxlUXVhbnRpemUsXG4gIHNjYWxlUXVhbnRpbGUsXG4gIHNjYWxlT3JkaW5hbCxcbiAgc2NhbGVTcXJ0LFxuICBzY2FsZUxvZyxcbiAgc2NhbGVQb2ludCxcbiAgc2NhbGVUaHJlc2hvbGRcbn0gZnJvbSAnZDMtc2NhbGUnO1xuaW1wb3J0IHtcbiAgTGF5ZXJzLFxuICBGaWx0ZXJGdW5uZWwsXG4gIFNldHRpbmdzLFxuICBDdXJzb3JDbGljayxcbiAgUGluLFxuICBBcnJvd0Rvd24sXG4gIEFycm93VXAsXG4gIENsaXBib2FyZCxcbiAgQ2FuY2VsXG59IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2ljb25zJztcbmltcG9ydCB7Z2V0SFRNTE1hcE1vZGVUaWxlVXJsfSBmcm9tICd1dGlscy91dGlscyc7XG5pbXBvcnQge3NjYWxlSWRlbnRpdHl9IGZyb20gJ3V0aWxzL2N1c3RvbS1zY2FsZXMnO1xuaW1wb3J0IHtUT09MVElQX0ZPUk1BVF9UWVBFU30gZnJvbSAnLi90b29sdGlwJztcbmltcG9ydCB7TEFZRVJfVFlQRVN9IGZyb20gJ2xheWVycy90eXBlcyc7XG5pbXBvcnQge1JHQkFDb2xvcn0gZnJvbSAncmVkdWNlcnMnO1xuXG5leHBvcnQgY29uc3QgQUNUSU9OX1BSRUZJWCA9ICdAQGtlcGxlci5nbC8nO1xuZXhwb3J0IGNvbnN0IENMT1VERlJPTlQgPSAnaHR0cHM6Ly9kMWEzZjRzcGF6enJwNC5jbG91ZGZyb250Lm5ldC9rZXBsZXIuZ2wnO1xuZXhwb3J0IGNvbnN0IElDT05fUFJFRklYID0gYCR7Q0xPVURGUk9OVH0vZ2VvZHVkZWA7XG5leHBvcnQgY29uc3QgREVGQVVMVF9NQVBCT1hfQVBJX1VSTCA9ICdodHRwczovL2FwaS5tYXBib3guY29tJztcblxuLy8gTW9kYWwgSWRzXG4vKipcbiAqIE1vZGFsIGlkOiBkYXRhIHRhYmxlXG4gKiBAY29uc3RhbnRcbiAqIEB0eXBlIHtzdHJpbmd9XG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBEQVRBX1RBQkxFX0lEID0gJ2RhdGFUYWJsZSc7XG4vKipcbiAqIE1vZGFsIGlkOiBkZWxldGUgZGF0YXNldCBjb25maXJtIGRpYWxvZ1xuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgREVMRVRFX0RBVEFfSUQgPSAnZGVsZXRlRGF0YSc7XG4vKipcbiAqIE1vZGFsIGlkOiBhZGQgZGF0YSBtb2RhbFxuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgQUREX0RBVEFfSUQgPSAnYWRkRGF0YSc7XG4vKipcbiAqIE1vZGFsIGlkOiBleHBvcnQgaW1hZ2UgbW9kYWxcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9JTUFHRV9JRCA9ICdleHBvcnRJbWFnZSc7XG4vKipcbiAqIE1vZGFsIGlkOiBleHBvcnQgZGF0YSBtb2RhbFxuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgRVhQT1JUX0RBVEFfSUQgPSAnZXhwb3J0RGF0YSc7XG4vKipcbiAqIE1vZGFsIGlkOiBhZGQgY3VzdG9tIG1hcCBzdHlsZSBtb2RhbFxuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgQUREX01BUF9TVFlMRV9JRCA9ICdhZGRNYXBTdHlsZSc7XG4vKipcbiAqIE1vZGFsIGlkOiBleHBvcnQgbWFwIG1vZGFsXG4gKiBAY29uc3RhbnRcbiAqIEB0eXBlIHtzdHJpbmd9XG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBFWFBPUlRfTUFQX0lEID0gJ2V4cG9ydE1hcCc7XG4vKipcbiAqIE1vZGFsIGlkOiBzYXZlIG1hcCBtb2RhbFxuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgU0FWRV9NQVBfSUQgPSAnc2F2ZU1hcCc7XG4vKipcbiAqIE1vZGFsIGlkOiBjb25maXJtIHRvIG92ZXJ3cml0ZSBzYXZlZCBtYXBcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IE9WRVJXUklURV9NQVBfSUQgPSAnb3ZlcndyaXRlTWFwJztcbi8qKlxuICogTW9kYWwgaWQ6IHNoYXJlIG1hcCB1cmwgbW9kYWxcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IFNIQVJFX01BUF9JRCA9ICdzaGFyZU1hcCc7XG5cbmV4cG9ydCBjb25zdCBLRVBMRVJfR0xfTkFNRSA9ICdrZXBsZXIuZ2wnO1xuXG4vLyBfX1BBQ0tBR0VfVkVSU0lPTl9fIGlzIGF1dG9tYXRpY2FsbHkgaW5qZWN0ZWQgYnkgQmFiZWwvV2VicGFjayBkdXJpbmcgdGhlIGJ1aWxkaW5nIHByb2Nlc3Ncbi8vIFNpbmNlIHdlIGFyZSBpbmplY3RpbmcgdGhpcyBkdXJpbmcgdGhlIGJ1aWxkIHByb2Nlc3Mgd2l0aCBiYWJlbFxuLy8gd2hpbGUgZGV2ZWxvcGluZyBWRVJTSU9OIGlzIG5vdCBkZWZpbmVkLCB3ZSBjYXB0dXJlIHRoZSBleGNlcHRpb24gYW5kIHJldHVyblxuLy8gYW4gZW1wdHkgc3RyaW5nIHdoaWNoIHdpbGwgYWxsb3cgdXMgdG8gcmV0cmlldmUgdGhlIGxhdGVzdCB1bWQgdmVyc2lvblxuZXhwb3J0IGNvbnN0IEtFUExFUl9HTF9WRVJTSU9OID0gJ19fUEFDS0FHRV9WRVJTSU9OX18nO1xuZXhwb3J0IGNvbnN0IEtFUExFUl9HTF9XRUJTSVRFID0gJ2h0dHA6Ly9rZXBsZXIuZ2wvJztcblxuZXhwb3J0IGNvbnN0IERJTUVOU0lPTlMgPSB7XG4gIHNpZGVQYW5lbDoge1xuICAgIHdpZHRoOiAzMDAsXG4gICAgbWFyZ2luOiB7dG9wOiAyMCwgbGVmdDogMjAsIGJvdHRvbTogMzAsIHJpZ2h0OiAyMH0sXG4gICAgaGVhZGVySGVpZ2h0OiA5NlxuICB9LFxuICBtYXBDb250cm9sOiB7XG4gICAgd2lkdGg6IDE4NCxcbiAgICBwYWRkaW5nOiAxMixcbiAgICBtYXBMZWdlbmQ6IHtcbiAgICAgIHBpbm5lZDoge1xuICAgICAgICBib3R0b206IDIyLFxuICAgICAgICByaWdodDogMTJcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogVGhlbWUgbmFtZSB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gYEtlcGxlckdsYCBgcHJvcC50aGVtZWAuXG4gKiBBdmFpbGFibGUgdGhlbWVzIGFyZSBgVEhFTUUubGlnaHRgIGFuZCBgVEhFTUUuZGFya2AuIERlZmF1bHQgdGhlbWUgaXMgYFRIRU1FLmRhcmtgXG4gKiBAY29uc3RhbnRcbiAqIEB0eXBlIHtvYmplY3R9XG4gKiBAcHVibGljXG4gKiBAZXhhbXBsZVxuICogYGBganNcbiAqIGNvbnN0IE1hcCA9ICgpID0+IDxLZXBsZXJHbCB0aGVtZT17VEhFTUUubGlnaHR9IGlkPVwibWFwXCIvPlxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBUSEVNRSA9IGtleU1pcnJvcih7XG4gIGxpZ2h0OiBudWxsLFxuICBkYXJrOiBudWxsLFxuICBiYXNlOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IFNJREVCQVJfUEFORUxTID0gW1xuICB7XG4gICAgaWQ6ICdsYXllcicsXG4gICAgbGFiZWw6ICdzaWRlYmFyLnBhbmVscy5sYXllcicsXG4gICAgaWNvbkNvbXBvbmVudDogTGF5ZXJzLFxuICAgIG9uQ2xpY2s6IG51bGxcbiAgfSxcbiAge1xuICAgIGlkOiAnZmlsdGVyJyxcbiAgICBsYWJlbDogJ3NpZGViYXIucGFuZWxzLmZpbHRlcicsXG4gICAgaWNvbkNvbXBvbmVudDogRmlsdGVyRnVubmVsLFxuICAgIG9uQ2xpY2s6IG51bGxcbiAgfSxcbiAge1xuICAgIGlkOiAnaW50ZXJhY3Rpb24nLFxuICAgIGxhYmVsOiAnc2lkZWJhci5wYW5lbHMuaW50ZXJhY3Rpb24nLFxuICAgIGljb25Db21wb25lbnQ6IEN1cnNvckNsaWNrLFxuICAgIG9uQ2xpY2s6IG51bGxcbiAgfSxcbiAge1xuICAgIGlkOiAnbWFwJyxcbiAgICBsYWJlbDogJ3NpZGViYXIucGFuZWxzLmJhc2VtYXAnLFxuICAgIGljb25Db21wb25lbnQ6IFNldHRpbmdzLFxuICAgIG9uQ2xpY2s6IG51bGxcbiAgfVxuXTtcblxuLy8gYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuZXhwb3J0IGNvbnN0IFBBTkVMUyA9IFNJREVCQVJfUEFORUxTO1xuXG4vLyBNQVAgU1RZTEVTXG5cbnR5cGUgREVGQVVMVF9MQVlFUl9HUk9VUCA9IHtcbiAgc2x1Zzogc3RyaW5nO1xuICBmaWx0ZXI6ICh2YWx1ZSkgPT4gYm9vbGVhbjtcbiAgZGVmYXVsdFZpc2liaWxpdHk6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9MQVlFUl9HUk9VUFM6IERFRkFVTFRfTEFZRVJfR1JPVVBbXSA9IFtcbiAge1xuICAgIHNsdWc6ICdsYWJlbCcsXG4gICAgZmlsdGVyOiAoe2lkfSkgPT4gaWQubWF0Y2goLyg/PShsYWJlbHxwbGFjZS18cG9pLSkpLyksXG4gICAgZGVmYXVsdFZpc2liaWxpdHk6IHRydWVcbiAgfSxcbiAge1xuICAgIHNsdWc6ICdyb2FkJyxcbiAgICBmaWx0ZXI6ICh7aWR9KSA9PiBpZC5tYXRjaCgvKD89KHJvYWR8cmFpbHdheXx0dW5uZWx8c3RyZWV0fGJyaWRnZSkpKD8hLipsYWJlbCkvKSxcbiAgICBkZWZhdWx0VmlzaWJpbGl0eTogdHJ1ZVxuICB9LFxuICB7XG4gICAgc2x1ZzogJ2JvcmRlcicsXG4gICAgZmlsdGVyOiAoe2lkfSkgPT4gaWQubWF0Y2goL2JvcmRlcnxib3VuZGFyaWVzLyksXG4gICAgZGVmYXVsdFZpc2liaWxpdHk6IGZhbHNlXG4gIH0sXG4gIHtcbiAgICBzbHVnOiAnYnVpbGRpbmcnLFxuICAgIGZpbHRlcjogKHtpZH0pID0+IGlkLm1hdGNoKC9idWlsZGluZy8pLFxuICAgIGRlZmF1bHRWaXNpYmlsaXR5OiB0cnVlXG4gIH0sXG4gIHtcbiAgICBzbHVnOiAnd2F0ZXInLFxuICAgIGZpbHRlcjogKHtpZH0pID0+IGlkLm1hdGNoKC8oPz0od2F0ZXJ8c3RyZWFtfGZlcnJ5KSkvKSxcbiAgICBkZWZhdWx0VmlzaWJpbGl0eTogdHJ1ZVxuICB9LFxuICB7XG4gICAgc2x1ZzogJ2xhbmQnLFxuICAgIGZpbHRlcjogKHtpZH0pID0+IGlkLm1hdGNoKC8oPz0ocGFya3N8bGFuZGNvdmVyfGluZHVzdHJpYWx8c2FuZHxoaWxsc2hhZGUpKS8pLFxuICAgIGRlZmF1bHRWaXNpYmlsaXR5OiB0cnVlXG4gIH0sXG4gIHtcbiAgICBzbHVnOiAnM2QgYnVpbGRpbmcnLFxuICAgIGZpbHRlcjogKCkgPT4gZmFsc2UsXG4gICAgZGVmYXVsdFZpc2liaWxpdHk6IGZhbHNlXG4gIH1cbl07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX01BUF9TVFlMRVMgPSBbXG4gIHtcbiAgICBpZDogJ2RhcmsnLFxuICAgIGxhYmVsOiAnRGFyaycsXG4gICAgdXJsOiAnbWFwYm94Oi8vc3R5bGVzL3ViZXJkYXRhL2Nqb3FiYmY2bDlrMzAyc2w5NnR5dmthMDknLFxuICAgIGljb246IGAke0lDT05fUFJFRklYfS9VQkVSX0RBUktfVjIucG5nYCxcbiAgICBsYXllckdyb3VwczogREVGQVVMVF9MQVlFUl9HUk9VUFNcbiAgfSxcbiAge1xuICAgIGlkOiAnbGlnaHQnLFxuICAgIGxhYmVsOiAnTGlnaHQnLFxuICAgIHVybDogJ21hcGJveDovL3N0eWxlcy91YmVyZGF0YS9jam9xYjlqMzM5azFmMnNsOXQ1aWM1Ym40JyxcbiAgICBpY29uOiBgJHtJQ09OX1BSRUZJWH0vVUJFUl9MSUdIVF9WMi5wbmdgLFxuICAgIGxheWVyR3JvdXBzOiBERUZBVUxUX0xBWUVSX0dST1VQU1xuICB9LFxuICB7XG4gICAgaWQ6ICdtdXRlZCcsXG4gICAgbGFiZWw6ICdNdXRlZCBMaWdodCcsXG4gICAgdXJsOiAnbWFwYm94Oi8vc3R5bGVzL3ViZXJkYXRhL2NqZnlsMDNrcDF0dWwyc21mNXYydGJkZDQnLFxuICAgIGljb246IGAke0lDT05fUFJFRklYfS9VQkVSX01VVEVEX0xJR0hULnBuZ2AsXG4gICAgbGF5ZXJHcm91cHM6IERFRkFVTFRfTEFZRVJfR1JPVVBTXG4gIH0sXG4gIHtcbiAgICBpZDogJ211dGVkX25pZ2h0JyxcbiAgICBsYWJlbDogJ011dGVkIE5pZ2h0JyxcbiAgICB1cmw6ICdtYXBib3g6Ly9zdHlsZXMvdWJlcmRhdGEvY2pmeGhsaWttYWoxYjJzb3l6ZXZueXdncycsXG4gICAgaWNvbjogYCR7SUNPTl9QUkVGSVh9L1VCRVJfTVVURURfTklHSFQucG5nYCxcbiAgICBsYXllckdyb3VwczogREVGQVVMVF9MQVlFUl9HUk9VUFNcbiAgfSxcbiAge1xuICAgIGlkOiAnc2F0ZWxsaXRlJyxcbiAgICBsYWJlbDogJ1NhdGVsbGl0ZScsXG4gICAgdXJsOiBgbWFwYm94Oi8vc3R5bGVzL21hcGJveC9zYXRlbGxpdGUtdjlgLFxuICAgIGljb246IGAke0lDT05fUFJFRklYfS9VQkVSX1NBVEVMTElURS5wbmdgXG4gIH1cbl07XG5cbmV4cG9ydCBjb25zdCBHRU9KU09OX0ZJRUxEUyA9IHtcbiAgZ2VvanNvbjogWydfZ2VvanNvbicsICdhbGxfcG9pbnRzJywgJ2dlb2pzb24nXVxufTtcblxuZXhwb3J0IGNvbnN0IElDT05fRklFTERTID0ge1xuICBpY29uOiBbJ2ljb24nXVxufTtcblxuZXhwb3J0IGNvbnN0IFRSSVBfUE9JTlRfRklFTERTOiBbc3RyaW5nLCBzdHJpbmddW10gPSBbXG4gIFsnbGF0JywgJ2xuZyddLFxuICBbJ2xhdCcsICdsb24nXSxcbiAgWydsYXRpdHVkZScsICdsb25naXR1ZGUnXVxuXTtcblxuZXhwb3J0IGNvbnN0IFRSSVBfQVJDX0ZJRUxEUyA9IHtcbiAgbGF0MDogJ2JlZ2ludHJpcCcsXG4gIGxuZzA6ICdiZWdpbnRyaXAnLFxuICBsYXQxOiAnZHJvcG9mZicsXG4gIGxuZzE6ICdkcm9wb2ZmJ1xufTtcblxuZXhwb3J0IGNvbnN0IEZJTFRFUl9UWVBFUyA9IGtleU1pcnJvcih7XG4gIHJhbmdlOiBudWxsLFxuICBzZWxlY3Q6IG51bGwsXG4gIGlucHV0OiBudWxsLFxuICB0aW1lUmFuZ2U6IG51bGwsXG4gIG11bHRpU2VsZWN0OiBudWxsLFxuICBwb2x5Z29uOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IFNDQUxFX1RZUEVTID0ga2V5TWlycm9yKHtcbiAgb3JkaW5hbDogbnVsbCxcbiAgcXVhbnRpbGU6IG51bGwsXG4gIHF1YW50aXplOiBudWxsLFxuICBsaW5lYXI6IG51bGwsXG4gIHNxcnQ6IG51bGwsXG4gIGxvZzogbnVsbCxcblxuICAvLyBvcmRpbmFsIGRvbWFpbiB0byBsaW5lYXIgcmFuZ2VcbiAgcG9pbnQ6IG51bGwsXG4gIGN1c3RvbTogbnVsbCxcbiAgLy8gVUktb25seSB0eXBlLCByZXNvbHZpbmcgYXMgY3VzdG9tXG4gIGxvZ2FyaXRobWljOiBudWxsLFxuICBpZGVudGl0eTogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBTQ0FMRV9GVU5DID0ge1xuICBbU0NBTEVfVFlQRVMubGluZWFyXTogc2NhbGVMaW5lYXIsXG4gIFtTQ0FMRV9UWVBFUy5xdWFudGl6ZV06IHNjYWxlUXVhbnRpemUsXG4gIFtTQ0FMRV9UWVBFUy5xdWFudGlsZV06IHNjYWxlUXVhbnRpbGUsXG4gIFtTQ0FMRV9UWVBFUy5vcmRpbmFsXTogc2NhbGVPcmRpbmFsLFxuICBbU0NBTEVfVFlQRVMuc3FydF06IHNjYWxlU3FydCxcbiAgW1NDQUxFX1RZUEVTLmxvZ106IHNjYWxlTG9nLFxuICBbU0NBTEVfVFlQRVMucG9pbnRdOiBzY2FsZVBvaW50LFxuICBbU0NBTEVfVFlQRVMuY3VzdG9tXTogc2NhbGVUaHJlc2hvbGQsXG4gIFtTQ0FMRV9UWVBFUy5pZGVudGl0eV06IHNjYWxlSWRlbnRpdHlcbn07XG5cbmV4cG9ydCBjb25zdCBBTExfRklFTERfVFlQRVMgPSBrZXlNaXJyb3Ioe1xuICBib29sZWFuOiBudWxsLFxuICBkYXRlOiBudWxsLFxuICBnZW9qc29uOiBudWxsLFxuICBpbnRlZ2VyOiBudWxsLFxuICByZWFsOiBudWxsLFxuICBzdHJpbmc6IG51bGwsXG4gIHRpbWVzdGFtcDogbnVsbCxcbiAgcG9pbnQ6IG51bGxcbn0pO1xuXG4vLyBEYXRhIFRhYmxlXG5leHBvcnQgY29uc3QgU09SVF9PUkRFUiA9IGtleU1pcnJvcih7XG4gIEFTQ0VORElORzogbnVsbCxcbiAgREVTQ0VORElORzogbnVsbCxcbiAgVU5TT1JUOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IFRBQkxFX09QVElPTiA9IGtleU1pcnJvcih7XG4gIFNPUlRfQVNDOiBudWxsLFxuICBTT1JUX0RFUzogbnVsbCxcbiAgVU5TT1JUOiBudWxsLFxuICBQSU46IG51bGwsXG4gIFVOUElOOiBudWxsLFxuICBDT1BZOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IFRBQkxFX09QVElPTl9MSVNUID0gW1xuICB7XG4gICAgdmFsdWU6IFRBQkxFX09QVElPTi5TT1JUX0FTQyxcbiAgICBkaXNwbGF5OiAnU29ydCBBc2NlbmRpbmcnLFxuICAgIGljb246IEFycm93VXAsXG4gICAgY29uZGl0aW9uOiBwcm9wcyA9PiBwcm9wcy5zb3J0TW9kZSAhPT0gU09SVF9PUkRFUi5BU0NFTkRJTkdcbiAgfSxcbiAge1xuICAgIHZhbHVlOiBUQUJMRV9PUFRJT04uU09SVF9ERVMsXG4gICAgZGlzcGxheTogJ1NvcnQgRGVzY2VuZGluZycsXG4gICAgaWNvbjogQXJyb3dEb3duLFxuICAgIGNvbmRpdGlvbjogcHJvcHMgPT4gcHJvcHMuc29ydE1vZGUgIT09IFNPUlRfT1JERVIuREVTQ0VORElOR1xuICB9LFxuICB7XG4gICAgdmFsdWU6IFRBQkxFX09QVElPTi5VTlNPUlQsXG4gICAgZGlzcGxheTogJ1Vuc29ydCBDb2x1bW4nLFxuICAgIGljb246IENhbmNlbCxcbiAgICBjb25kaXRpb246IHByb3BzID0+IHByb3BzLmlzU29ydGVkXG4gIH0sXG4gIHt2YWx1ZTogVEFCTEVfT1BUSU9OLlBJTiwgZGlzcGxheTogJ1BpbiBDb2x1bW4nLCBpY29uOiBQaW4sIGNvbmRpdGlvbjogcHJvcHMgPT4gIXByb3BzLmlzUGlubmVkfSxcbiAge1xuICAgIHZhbHVlOiBUQUJMRV9PUFRJT04uVU5QSU4sXG4gICAgZGlzcGxheTogJ1VucGluIENvbHVtbicsXG4gICAgaWNvbjogQ2FuY2VsLFxuICAgIGNvbmRpdGlvbjogcHJvcHMgPT4gcHJvcHMuaXNQaW5uZWRcbiAgfSxcbiAge3ZhbHVlOiBUQUJMRV9PUFRJT04uQ09QWSwgZGlzcGxheTogJ0NvcHkgQ29sdW1uJywgaWNvbjogQ2xpcGJvYXJkfVxuXTtcblxuY29uc3QgT1JBTkdFID0gJzI0OCwgMTk0LCAyOCc7XG5jb25zdCBQSU5LID0gJzIzMSwgMTg5LCAxOTQnO1xuY29uc3QgUFVSUExFID0gJzE2MCwgMTA2LCAyMDYnO1xuY29uc3QgQkxVRSA9ICcxNDAsIDIxMCwgMjA1JztcbmNvbnN0IEJMVUUyID0gJzEwNiwgMTYwLCAyMDYnO1xuY29uc3QgQkxVRTMgPSAnMCwgMTcyLCAyMzcnO1xuY29uc3QgR1JFRU4gPSAnMTA2LCAxNjAsIDU2JztcbmNvbnN0IFJFRCA9ICcyMzcsIDg4LCAxMDYnO1xuXG5leHBvcnQgY29uc3QgRklMRURfVFlQRV9ESVNQTEFZID0ge1xuICBbQUxMX0ZJRUxEX1RZUEVTLmJvb2xlYW5dOiB7XG4gICAgbGFiZWw6ICdib29sJyxcbiAgICBjb2xvcjogUElOS1xuICB9LFxuICBbQUxMX0ZJRUxEX1RZUEVTLmRhdGVdOiB7XG4gICAgbGFiZWw6ICdkYXRlJyxcbiAgICBjb2xvcjogUFVSUExFXG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMuZ2VvanNvbl06IHtcbiAgICBsYWJlbDogJ2dlbycsXG4gICAgY29sb3I6IEJMVUUyXG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMuaW50ZWdlcl06IHtcbiAgICBsYWJlbDogJ251bWJlcicsXG4gICAgY29sb3I6IE9SQU5HRVxuICB9LFxuICBbQUxMX0ZJRUxEX1RZUEVTLnJlYWxdOiB7XG4gICAgbGFiZWw6ICdudW1iZXInLFxuICAgIGNvbG9yOiBPUkFOR0VcbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy5zdHJpbmddOiB7XG4gICAgbGFiZWw6ICdzdHJpbmcnLFxuICAgIGNvbG9yOiBCTFVFXG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMudGltZXN0YW1wXToge1xuICAgIGxhYmVsOiAndGltZScsXG4gICAgY29sb3I6IEdSRUVOXG4gIH0sXG4gIC8vIGZpZWxkIHBhaXJzXG4gIFtBTExfRklFTERfVFlQRVMucG9pbnRdOiB7XG4gICAgbGFiZWw6ICdwb2ludCcsXG4gICAgY29sb3I6IEJMVUUzXG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBGSUVMRF9DT0xPUlMgPSB7XG4gIGRlZmF1bHQ6IFJFRFxufTtcbmV4cG9ydCBjb25zdCBISUdITElHSF9DT0xPUl8zRDogUkdCQUNvbG9yID0gWzI1NSwgMjU1LCAyNTUsIDYwXTtcbmV4cG9ydCBjb25zdCBDSEFOTkVMX1NDQUxFUyA9IGtleU1pcnJvcih7XG4gIGNvbG9yOiBudWxsLFxuICByYWRpdXM6IG51bGwsXG4gIHNpemU6IG51bGwsXG4gIGN1c3RvbU1hcmtlcjogbnVsbCxcbiAgY29sb3JBZ2dyOiBudWxsLFxuICBzaXplQWdncjogbnVsbCxcbiAgaWRlbnRpdHk6IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgQUdHUkVHQVRJT05fVFlQRVM6IHtcbiAgLy8gZGVmYXVsdFxuICBjb3VudDogJ2NvdW50JztcbiAgLy8gbGluZWFyXG4gIGF2ZXJhZ2U6ICdhdmVyYWdlJztcbiAgbWF4aW11bTogJ21heGltdW0nO1xuICBtaW5pbXVtOiAnbWluaW11bSc7XG4gIG1lZGlhbjogJ21lZGlhbic7XG4gIHN0ZGV2OiAnc3RkZXYnO1xuICBzdW06ICdzdW0nO1xuICB2YXJpYW5jZTogJ3ZhcmlhbmNlJztcbiAgLy8gb3JkaW5hbFxuICBtb2RlOiAnbW9kZSc7XG4gIGNvdW50VW5pcXVlOiAnY291bnQgdW5pcXVlJztcbiAgYW55VmFsdWU6ICdhbnlfdmFsdWUnXG59ID0ge1xuICAvLyBkZWZhdWx0XG4gIGNvdW50OiAnY291bnQnLFxuICAvLyBsaW5lYXJcbiAgYXZlcmFnZTogJ2F2ZXJhZ2UnLFxuICBtYXhpbXVtOiAnbWF4aW11bScsXG4gIG1pbmltdW06ICdtaW5pbXVtJyxcbiAgbWVkaWFuOiAnbWVkaWFuJyxcbiAgc3RkZXY6ICdzdGRldicsXG4gIHN1bTogJ3N1bScsXG4gIHZhcmlhbmNlOiAndmFyaWFuY2UnLFxuICAvLyBvcmRpbmFsXG4gIG1vZGU6ICdtb2RlJyxcbiAgY291bnRVbmlxdWU6ICdjb3VudCB1bmlxdWUnLFxuICBhbnlWYWx1ZTogJ2FueV92YWx1ZSdcbn07XG5cbmV4cG9ydCBjb25zdCBGSUVMRF9UWVBFU19BR0dSRUdBVE9SUyA9IHtcbiAgZGF0ZTogbnVsbCxcbiAgZ2VvanNvbjogbnVsbCxcbiAgaW50ZWdlcjogW1xuICAgIEFHR1JFR0FUSU9OX1RZUEVTLmNvdW50LFxuICAgIEFHR1JFR0FUSU9OX1RZUEVTLmF2ZXJhZ2UsXG4gICAgQUdHUkVHQVRJT05fVFlQRVMubWF4aW11bSxcbiAgICBBR0dSRUdBVElPTl9UWVBFUy5taW5pbXVtLFxuICAgIEFHR1JFR0FUSU9OX1RZUEVTLnN0ZGV2LFxuICAgIEFHR1JFR0FUSU9OX1RZUEVTLnN1bSxcbiAgICBBR0dSRUdBVElPTl9UWVBFUy52YXJpYW5jZVxuICBdLFxuICByZWFsOiBbXG4gICAgQUdHUkVHQVRJT05fVFlQRVMuY291bnQsXG4gICAgQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZSxcbiAgICBBR0dSRUdBVElPTl9UWVBFUy5tYXhpbXVtLFxuICAgIEFHR1JFR0FUSU9OX1RZUEVTLm1pbmltdW0sXG4gICAgQUdHUkVHQVRJT05fVFlQRVMuc3RkZXYsXG4gICAgQUdHUkVHQVRJT05fVFlQRVMuc3VtLFxuICAgIEFHR1JFR0FUSU9OX1RZUEVTLnZhcmlhbmNlXG4gIF0sXG4gIHN0cmluZzogW0FHR1JFR0FUSU9OX1RZUEVTLm1vZGUsIEFHR1JFR0FUSU9OX1RZUEVTLmFueVZhbHVlXSxcbiAgdGltZXN0YW1wOiBudWxsLFxuICBwb2ludDogbnVsbFxufTtcblxuZXhwb3J0IGNvbnN0IEZJRUxEX0FHR1JFR0FUT1JTID0gW1xuICB7XG4gICAgaWQ6IEFHR1JFR0FUSU9OX1RZUEVTLmNvdW50LFxuICAgIGRpc3BsYXlOYW1lOiAnQ09VTlQnXG4gIH0sXG4gIHtcbiAgICBpZDogQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZSxcbiAgICBkaXNwbGF5TmFtZTogJ0FWRydcbiAgfSxcbiAge1xuICAgIGlkOiBBR0dSRUdBVElPTl9UWVBFUy5tYXhpbXVtLFxuICAgIGRpc3BsYXlOYW1lOiAnTUFYJ1xuICB9LFxuICB7XG4gICAgaWQ6IEFHR1JFR0FUSU9OX1RZUEVTLm1pbmltdW0sXG4gICAgZGlzcGxheU5hbWU6ICdNSU4nXG4gIH0sXG4gIHtcbiAgICBpZDogQUdHUkVHQVRJT05fVFlQRVMuc3RkZXYsXG4gICAgZGlzcGxheU5hbWU6ICdTVERFVidcbiAgfSxcbiAge1xuICAgIGlkOiBBR0dSRUdBVElPTl9UWVBFUy5zdW0sXG4gICAgZGlzcGxheU5hbWU6ICdTVU0nXG4gIH0sXG4gIHtcbiAgICBpZDogQUdHUkVHQVRJT05fVFlQRVMudmFyaWFuY2UsXG4gICAgZGlzcGxheU5hbWU6ICdWQVJJQU5DRSdcbiAgfSxcbiAge1xuICAgIGlkOiBBR0dSRUdBVElPTl9UWVBFUy5tb2RlLFxuICAgIGRpc3BsYXlOYW1lOiAnTU9ERSdcbiAgfSxcbiAge1xuICAgIGlkOiBBR0dSRUdBVElPTl9UWVBFUy5hbnlWYWx1ZSxcbiAgICBkaXNwbGF5TmFtZTogJ0FOWSBWQUxVRSdcbiAgfVxuXTtcblxuZXhwb3J0IGNvbnN0IGxpbmVhckZpZWxkU2NhbGVGdW5jdGlvbnMgPSB7XG4gIFtDSEFOTkVMX1NDQUxFUy5jb2xvcl06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGUsIFNDQUxFX1RZUEVTLmN1c3RvbV0sXG4gIFtDSEFOTkVMX1NDQUxFUy5yYWRpdXNdOiBbU0NBTEVfVFlQRVMuc3FydF0sXG4gIFtDSEFOTkVMX1NDQUxFUy5zaXplXTogW1NDQUxFX1RZUEVTLmxpbmVhciwgU0NBTEVfVFlQRVMuc3FydCwgU0NBTEVfVFlQRVMubG9nXSxcbiAgW0NIQU5ORUxfU0NBTEVTLmN1c3RvbU1hcmtlcl06IFtTQ0FMRV9UWVBFUy5vcmRpbmFsXSxcbiAgW0NIQU5ORUxfU0NBTEVTLmlkZW50aXR5XTogW11cbn07XG5cbmV4cG9ydCBjb25zdCBsaW5lYXJGaWVsZEFnZ3JTY2FsZUZ1bmN0aW9ucyA9IHtcbiAgW0NIQU5ORUxfU0NBTEVTLmNvbG9yQWdncl06IHtcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMuY291bnRdOiBbU0NBTEVfVFlQRVMuY3VzdG9tXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZV06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGUsIFNDQUxFX1RZUEVTLmN1c3RvbV0sXG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLm1heGltdW1dOiBbU0NBTEVfVFlQRVMucXVhbnRpemUsIFNDQUxFX1RZUEVTLnF1YW50aWxlLCBTQ0FMRV9UWVBFUy5jdXN0b21dLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5taW5pbXVtXTogW1NDQUxFX1RZUEVTLnF1YW50aXplLCBTQ0FMRV9UWVBFUy5xdWFudGlsZSwgU0NBTEVfVFlQRVMuY3VzdG9tXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMubWVkaWFuXTogW1NDQUxFX1RZUEVTLnF1YW50aXplLCBTQ0FMRV9UWVBFUy5xdWFudGlsZSwgU0NBTEVfVFlQRVMuY3VzdG9tXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMuc3RkZXZdOiBbU0NBTEVfVFlQRVMucXVhbnRpemUsIFNDQUxFX1RZUEVTLnF1YW50aWxlLCBTQ0FMRV9UWVBFUy5jdXN0b21dLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5zdW1dOiBbU0NBTEVfVFlQRVMucXVhbnRpemUsIFNDQUxFX1RZUEVTLnF1YW50aWxlLCBTQ0FMRV9UWVBFUy5jdXN0b21dLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy52YXJpYW5jZV06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGUsIFNDQUxFX1RZUEVTLmN1c3RvbV1cbiAgfSxcblxuICBbQ0hBTk5FTF9TQ0FMRVMuc2l6ZUFnZ3JdOiB7XG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLmNvdW50XTogW1NDQUxFX1RZUEVTLmxpbmVhciwgU0NBTEVfVFlQRVMuc3FydCwgU0NBTEVfVFlQRVMubG9nXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZV06IFtTQ0FMRV9UWVBFUy5saW5lYXIsIFNDQUxFX1RZUEVTLnNxcnQsIFNDQUxFX1RZUEVTLmxvZ10sXG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLm1heGltdW1dOiBbU0NBTEVfVFlQRVMubGluZWFyLCBTQ0FMRV9UWVBFUy5zcXJ0LCBTQ0FMRV9UWVBFUy5sb2ddLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5taW5pbXVtXTogW1NDQUxFX1RZUEVTLmxpbmVhciwgU0NBTEVfVFlQRVMuc3FydCwgU0NBTEVfVFlQRVMubG9nXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMubWVkaWFuXTogW1NDQUxFX1RZUEVTLmxpbmVhciwgU0NBTEVfVFlQRVMuc3FydCwgU0NBTEVfVFlQRVMubG9nXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMuc3RkZXZdOiBbU0NBTEVfVFlQRVMubGluZWFyLCBTQ0FMRV9UWVBFUy5zcXJ0LCBTQ0FMRV9UWVBFUy5sb2ddLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5zdW1dOiBbU0NBTEVfVFlQRVMubGluZWFyLCBTQ0FMRV9UWVBFUy5zcXJ0LCBTQ0FMRV9UWVBFUy5sb2ddLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy52YXJpYW5jZV06IFtTQ0FMRV9UWVBFUy5saW5lYXIsIFNDQUxFX1RZUEVTLnNxcnQsIFNDQUxFX1RZUEVTLmxvZ11cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IG9yZGluYWxGaWVsZFNjYWxlRnVuY3Rpb25zID0ge1xuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JdOiBbU0NBTEVfVFlQRVMub3JkaW5hbF0sXG4gIFtDSEFOTkVMX1NDQUxFUy5yYWRpdXNdOiBbU0NBTEVfVFlQRVMucG9pbnRdLFxuICBbQ0hBTk5FTF9TQ0FMRVMuc2l6ZV06IFtTQ0FMRV9UWVBFUy5wb2ludF0sXG4gIFtDSEFOTkVMX1NDQUxFUy5jdXN0b21NYXJrZXJdOiBbU0NBTEVfVFlQRVMub3JkaW5hbF0sXG4gIFtDSEFOTkVMX1NDQUxFUy5pZGVudGl0eV06IFtdXG59O1xuXG5leHBvcnQgY29uc3Qgb3JkaW5hbEZpZWxkQWdnclNjYWxlRnVuY3Rpb25zID0ge1xuICAvLyBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JBZ2dyXTogW1NDQUxFX1RZUEVTLm9yZGluYWwsIFNDQUxFX1RZUEVTLmxpbmVhcl0sXG4gIFtDSEFOTkVMX1NDQUxFUy5jb2xvckFnZ3JdOiB7XG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLm1vZGVdOiBbU0NBTEVfVFlQRVMub3JkaW5hbF0sXG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLmFueVZhbHVlXTogW1NDQUxFX1RZUEVTLm9yZGluYWxdLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5jb3VudFVuaXF1ZV06IFtcbiAgICAgIFNDQUxFX1RZUEVTLnF1YW50aXplLFxuICAgICAgU0NBTEVfVFlQRVMucXVhbnRpbGUsXG4gICAgICBTQ0FMRV9UWVBFUy5jdXN0b21cbiAgICBdXG4gIH0sXG5cbiAgW0NIQU5ORUxfU0NBTEVTLnNpemVBZ2dyXToge1xuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5tb2RlXTogW1NDQUxFX1RZUEVTLm9yZGluYWxdLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5hbnlWYWx1ZV06IFtTQ0FMRV9UWVBFUy5vcmRpbmFsXVxuICB9XG59O1xuXG5leHBvcnQgY29uc3Qgbm90U3VwcG9ydGVkU2NhbGVPcHRzID0ge1xuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JdOiBbXSxcbiAgW0NIQU5ORUxfU0NBTEVTLnJhZGl1c106IFtdLFxuICBbQ0hBTk5FTF9TQ0FMRVMuc2l6ZV06IFtdLFxuICBbQ0hBTk5FTF9TQ0FMRVMuY3VzdG9tTWFya2VyXTogW10sXG4gIFtDSEFOTkVMX1NDQUxFUy5pZGVudGl0eV06IFtdXG59O1xuXG5leHBvcnQgY29uc3Qgbm90U3VwcG9ydEFnZ3JPcHRzID0ge1xuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JBZ2dyXToge30sXG4gIFtDSEFOTkVMX1NDQUxFUy5zaXplQWdncl06IHt9XG59O1xuXG4vKipcbiAqIERlZmF1bHQgYWdncmVnYXRpb24gYXJlIGJhc2VkIG9uIG9jdW50XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0FHR1JFR0FUSU9OID0ge1xuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JBZ2dyXToge1xuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5jb3VudF06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGUsIFNDQUxFX1RZUEVTLmN1c3RvbV1cbiAgfSxcbiAgW0NIQU5ORUxfU0NBTEVTLnNpemVBZ2dyXToge1xuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5jb3VudF06IFtTQ0FMRV9UWVBFUy5saW5lYXIsIFNDQUxFX1RZUEVTLnNxcnQsIFNDQUxFX1RZUEVTLmxvZ11cbiAgfVxufTtcblxuLyoqXG4gKiBEZWZpbmUgd2hhdCB0eXBlIG9mIHNjYWxlIG9wZXJhdGlvbiBpcyBhbGxvd2VkIG9uIGVhY2ggdHlwZSBvZiBmaWVsZHNcbiAqL1xuZXhwb3J0IGNvbnN0IEZJRUxEX09QVFMgPSB7XG4gIHN0cmluZzoge1xuICAgIHR5cGU6ICdjYXRlZ29yaWNhbCcsXG4gICAgc2NhbGU6IHtcbiAgICAgIC4uLm9yZGluYWxGaWVsZFNjYWxlRnVuY3Rpb25zLFxuICAgICAgLi4ub3JkaW5hbEZpZWxkQWdnclNjYWxlRnVuY3Rpb25zXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGxlZ2VuZDogZCA9PiBkLFxuICAgICAgdG9vbHRpcDogW11cbiAgICB9XG4gIH0sXG4gIHJlYWw6IHtcbiAgICB0eXBlOiAnbnVtZXJpY2FsJyxcbiAgICBzY2FsZToge1xuICAgICAgLi4ubGluZWFyRmllbGRTY2FsZUZ1bmN0aW9ucyxcbiAgICAgIC4uLmxpbmVhckZpZWxkQWdnclNjYWxlRnVuY3Rpb25zXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGxlZ2VuZDogZCA9PiBkLFxuICAgICAgdG9vbHRpcDogW1xuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5OT05FLFxuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5ERUNJTUFMLFxuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5QRVJDRU5UQUdFXG4gICAgICBdXG4gICAgfVxuICB9LFxuICB0aW1lc3RhbXA6IHtcbiAgICB0eXBlOiAndGltZScsXG4gICAgc2NhbGU6IHtcbiAgICAgIC4uLmxpbmVhckZpZWxkU2NhbGVGdW5jdGlvbnMsXG4gICAgICAuLi5ub3RTdXBwb3J0QWdnck9wdHNcbiAgICB9LFxuICAgIGZvcm1hdDoge1xuICAgICAgbGVnZW5kOiBkID0+IGQsXG4gICAgICB0b29sdGlwOiBbXG4gICAgICAgIFRPT0xUSVBfRk9STUFUX1RZUEVTLk5PTkUsXG4gICAgICAgIFRPT0xUSVBfRk9STUFUX1RZUEVTLkRBVEUsXG4gICAgICAgIFRPT0xUSVBfRk9STUFUX1RZUEVTLkRBVEVfVElNRVxuICAgICAgXVxuICAgIH1cbiAgfSxcbiAgaW50ZWdlcjoge1xuICAgIHR5cGU6ICdudW1lcmljYWwnLFxuICAgIHNjYWxlOiB7XG4gICAgICAuLi5saW5lYXJGaWVsZFNjYWxlRnVuY3Rpb25zLFxuICAgICAgLi4ubGluZWFyRmllbGRBZ2dyU2NhbGVGdW5jdGlvbnNcbiAgICB9LFxuICAgIGZvcm1hdDoge1xuICAgICAgbGVnZW5kOiBkID0+IGQsXG4gICAgICB0b29sdGlwOiBbXG4gICAgICAgIFRPT0xUSVBfRk9STUFUX1RZUEVTLk5PTkUsXG4gICAgICAgIFRPT0xUSVBfRk9STUFUX1RZUEVTLkRFQ0lNQUwsXG4gICAgICAgIFRPT0xUSVBfRk9STUFUX1RZUEVTLlBFUkNFTlRBR0VcbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIGJvb2xlYW46IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgc2NhbGU6IHtcbiAgICAgIC4uLm9yZGluYWxGaWVsZFNjYWxlRnVuY3Rpb25zLFxuICAgICAgLi4ub3JkaW5hbEZpZWxkQWdnclNjYWxlRnVuY3Rpb25zXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGxlZ2VuZDogZCA9PiBkLFxuICAgICAgdG9vbHRpcDogW1RPT0xUSVBfRk9STUFUX1RZUEVTLk5PTkUsIFRPT0xUSVBfRk9STUFUX1RZUEVTLkJPT0xFQU5dXG4gICAgfVxuICB9LFxuICBkYXRlOiB7XG4gICAgc2NhbGU6IHtcbiAgICAgIC4uLm9yZGluYWxGaWVsZFNjYWxlRnVuY3Rpb25zLFxuICAgICAgLi4ub3JkaW5hbEZpZWxkQWdnclNjYWxlRnVuY3Rpb25zXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGxlZ2VuZDogZCA9PiBkLFxuICAgICAgdG9vbHRpcDogW1RPT0xUSVBfRk9STUFUX1RZUEVTLk5PTkUsIFRPT0xUSVBfRk9STUFUX1RZUEVTLkRBVEVdXG4gICAgfVxuICB9LFxuICBnZW9qc29uOiB7XG4gICAgdHlwZTogJ2dlb21ldHJ5JyxcbiAgICBzY2FsZToge1xuICAgICAgLi4ubm90U3VwcG9ydGVkU2NhbGVPcHRzLFxuICAgICAgLi4ubm90U3VwcG9ydEFnZ3JPcHRzXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGxlZ2VuZDogZCA9PiAnLi4uJyxcbiAgICAgIHRvb2x0aXA6IFtdXG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgQ0hBTk5FTF9TQ0FMRV9TVVBQT1JURURfRklFTERTID0gT2JqZWN0LmtleXMoQ0hBTk5FTF9TQ0FMRVMpLnJlZHVjZShcbiAgKGFjY3UsIGtleSkgPT4gKHtcbiAgICAuLi5hY2N1LFxuICAgIFtrZXldOiBPYmplY3Qua2V5cyhGSUVMRF9PUFRTKS5maWx0ZXIoZnQgPT4gT2JqZWN0LmtleXMoRklFTERfT1BUU1tmdF0uc2NhbGVba2V5XSkubGVuZ3RoKVxuICB9KSxcbiAge31cbik7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBWUVSX0NPTE9SID0ge1xuICB0cmlwQXJjOiAnIzkyMjZDNicsXG4gIGJlZ2ludHJpcF9sYXQ6ICcjMUU5NkJFJyxcbiAgZHJvcG9mZl9sYXQ6ICcjRkY5OTFGJyxcbiAgcmVxdWVzdF9sYXQ6ICcjNTJBMzUzJ1xufTtcblxuLy8gbGV0IHVzZXIgcGFzcyBpbiBkZWZhdWx0IHRvb2x0aXAgZmllbGRzXG5leHBvcnQgY29uc3QgREVGQVVMVF9UT09MVElQX0ZJRUxEUzogYW55W10gPSBbXTtcblxuZXhwb3J0IGNvbnN0IE5PX1ZBTFVFX0NPTE9SOiBDb2xvciA9IFswLCAwLCAwLCAwXTtcbmV4cG9ydCBjb25zdCBVTktOT1dOX0NPTE9SOiBDb2xvciA9IFsxMzQsIDE0MSwgMTQ1XTtcblxuZXhwb3J0IGNvbnN0IExBWUVSX0JMRU5ESU5HUyA9IHtcbiAgYWRkaXRpdmU6IHtcbiAgICBsYWJlbDogJ2xheWVyQmxlbmRpbmcuYWRkaXRpdmUnLFxuICAgIGJsZW5kRnVuYzogWydTUkNfQUxQSEEnLCAnRFNUX0FMUEhBJ10sXG4gICAgYmxlbmRFcXVhdGlvbjogJ0ZVTkNfQUREJ1xuICB9LFxuICBub3JtYWw6IHtcbiAgICAvLyByZWZlcmVuY2UgdG9cbiAgICAvLyBodHRwczovL2xpbW51LmNvbS93ZWJnbC1ibGVuZGluZy15b3VyZS1wcm9iYWJseS13cm9uZy9cbiAgICBsYWJlbDogJ2xheWVyQmxlbmRpbmcubm9ybWFsJyxcbiAgICBibGVuZEZ1bmM6IFsnU1JDX0FMUEhBJywgJ09ORV9NSU5VU19TUkNfQUxQSEEnLCAnT05FJywgJ09ORV9NSU5VU19TUkNfQUxQSEEnXSxcbiAgICBibGVuZEVxdWF0aW9uOiBbJ0ZVTkNfQUREJywgJ0ZVTkNfQUREJ11cbiAgfSxcbiAgc3VidHJhY3RpdmU6IHtcbiAgICBsYWJlbDogJ2xheWVyQmxlbmRpbmcuc3VidHJhY3RpdmUnLFxuICAgIGJsZW5kRnVuYzogWydPTkUnLCAnT05FX01JTlVTX0RTVF9DT0xPUicsICdTUkNfQUxQSEEnLCAnRFNUX0FMUEhBJ10sXG4gICAgYmxlbmRFcXVhdGlvbjogWydGVU5DX1NVQlRSQUNUJywgJ0ZVTkNfQUREJ11cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IE1BWF9ERUZBVUxUX1RPT0xUSVBTID0gNTtcblxuZXhwb3J0IGNvbnN0IFJFU09MVVRJT05TID0ga2V5TWlycm9yKHtcbiAgT05FX1g6IG51bGwsXG4gIFRXT19YOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IEVYUE9SVF9JTUdfUkFUSU9TID0ga2V5TWlycm9yKHtcbiAgU0NSRUVOOiBudWxsLFxuICBGT1VSX0JZX1RIUkVFOiBudWxsLFxuICBTSVhURUVOX0JZX05JTkU6IG51bGwsXG4gIENVU1RPTTogbnVsbFxufSk7XG5cbmV4cG9ydCB0eXBlIEltYWdlUmF0aW9PcHRpb24gPSB7XG4gIGlkOiBrZXlvZiB0eXBlb2YgRVhQT1JUX0lNR19SQVRJT1M7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIGdldFNpemU6IChzY3JlZW5XOiBudW1iZXIsIHNjcmVlbkg6IG51bWJlcikgPT4ge3dpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyfTtcbn07XG5cbmV4cG9ydCBjb25zdCBTY3JlZW5SYXRpb09wdGlvbjogSW1hZ2VSYXRpb09wdGlvbiA9IHtcbiAgaWQ6IEVYUE9SVF9JTUdfUkFUSU9TLlNDUkVFTixcbiAgbGFiZWw6ICdtb2RhbC5leHBvcnRJbWFnZS5yYXRpb09yaWdpbmFsU2NyZWVuJyxcbiAgZ2V0U2l6ZTogKHNjcmVlblcsIHNjcmVlbkgpID0+ICh7d2lkdGg6IHNjcmVlblcsIGhlaWdodDogc2NyZWVuSH0pXG59O1xuZXhwb3J0IGNvbnN0IEN1c3RvbVJhdGlvT3B0aW9uOiBJbWFnZVJhdGlvT3B0aW9uID0ge1xuICBpZDogRVhQT1JUX0lNR19SQVRJT1MuQ1VTVE9NLFxuICBoaWRkZW46IHRydWUsXG4gIGxhYmVsOiAnbW9kYWwuZXhwb3J0SW1hZ2UucmF0aW9DdXN0b20nLFxuICBnZXRTaXplOiAobWFwVywgbWFwSCkgPT4gKHt3aWR0aDogbWFwVywgaGVpZ2h0OiBtYXBIfSlcbn07XG5leHBvcnQgY29uc3QgRm91ckJ5VGhyZWVSYXRpb09wdGlvbjogSW1hZ2VSYXRpb09wdGlvbiA9IHtcbiAgaWQ6IEVYUE9SVF9JTUdfUkFUSU9TLkZPVVJfQllfVEhSRUUsXG4gIGxhYmVsOiAnbW9kYWwuZXhwb3J0SW1hZ2UucmF0aW80XzMnLFxuICBnZXRTaXplOiAoc2NyZWVuVywgc2NyZWVuSCkgPT4gKHtcbiAgICB3aWR0aDogc2NyZWVuVyxcbiAgICBoZWlnaHQ6IE1hdGgucm91bmQoc2NyZWVuVyAqIDAuNzUpXG4gIH0pXG59O1xuZXhwb3J0IGNvbnN0IFNpeHRlZW5CeU5pbmVSYXRpb09wdGlvbjogSW1hZ2VSYXRpb09wdGlvbiA9IHtcbiAgaWQ6IEVYUE9SVF9JTUdfUkFUSU9TLlNJWFRFRU5fQllfTklORSxcbiAgbGFiZWw6ICdtb2RhbC5leHBvcnRJbWFnZS5yYXRpbzE2XzknLFxuICBnZXRTaXplOiAoc2NyZWVuVywgc2NyZWVuSCkgPT4gKHtcbiAgICB3aWR0aDogc2NyZWVuVyxcbiAgICBoZWlnaHQ6IE1hdGgucm91bmQoc2NyZWVuVyAqIDAuNTYyNSlcbiAgfSlcbn07XG5cbmV4cG9ydCBjb25zdCBFWFBPUlRfSU1HX1JBVElPX09QVElPTlM6IFJlYWRvbmx5QXJyYXk8SW1hZ2VSYXRpb09wdGlvbj4gPSBbXG4gIFNjcmVlblJhdGlvT3B0aW9uLFxuICBDdXN0b21SYXRpb09wdGlvbixcbiAgRm91ckJ5VGhyZWVSYXRpb09wdGlvbixcbiAgU2l4dGVlbkJ5TmluZVJhdGlvT3B0aW9uXG5dO1xuXG5leHBvcnQgdHlwZSBJbWFnZVJlc29sdXRpb25PcHRpb24gPSB7XG4gIGlkOiBrZXlvZiB0eXBlb2YgUkVTT0xVVElPTlM7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGF2YWlsYWJsZTogYm9vbGVhbjtcbiAgc2NhbGU6IG51bWJlcjtcbiAgZ2V0U2l6ZTogKHNjcmVlblc6IG51bWJlciwgc2NyZWVuSDogbnVtYmVyKSA9PiB7d2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXJ9O1xufTtcblxuZXhwb3J0IGNvbnN0IE9uZVhSZXNvbHV0aW9uT3B0aW9uOiBJbWFnZVJlc29sdXRpb25PcHRpb24gPSB7XG4gIGlkOiBSRVNPTFVUSU9OUy5PTkVfWCxcbiAgbGFiZWw6ICcxeCcsXG4gIGF2YWlsYWJsZTogdHJ1ZSxcbiAgc2NhbGU6IDEsXG4gIGdldFNpemU6IChzY3JlZW5XLCBzY3JlZW5IKSA9PiAoe1xuICAgIHdpZHRoOiBzY3JlZW5XLFxuICAgIGhlaWdodDogc2NyZWVuSFxuICB9KVxufTtcblxuZXhwb3J0IGNvbnN0IFR3b1hSZXNvbHV0aW9uT3B0aW9uOiBJbWFnZVJlc29sdXRpb25PcHRpb24gPSB7XG4gIGlkOiBSRVNPTFVUSU9OUy5UV09fWCxcbiAgbGFiZWw6ICcyeCcsXG4gIGF2YWlsYWJsZTogdHJ1ZSxcbiAgc2NhbGU6IDIsXG4gIGdldFNpemU6IChzY3JlZW5XLCBzY3JlZW5IKSA9PiAoe1xuICAgIHdpZHRoOiBzY3JlZW5XICogMixcbiAgICBoZWlnaHQ6IHNjcmVlbkggKiAyXG4gIH0pXG59O1xuXG5leHBvcnQgY29uc3QgRVhQT1JUX0lNR19SRVNPTFVUSU9OX09QVElPTlM6IFJlYWRvbmx5QXJyYXk8SW1hZ2VSZXNvbHV0aW9uT3B0aW9uPiA9IFtcbiAgT25lWFJlc29sdXRpb25PcHRpb24sXG4gIFR3b1hSZXNvbHV0aW9uT3B0aW9uXG5dO1xuXG5leHBvcnQgY29uc3QgRVhQT1JUX0RBVEFfVFlQRSA9IGtleU1pcnJvcih7XG4gIENTVjogbnVsbFxuICAvLyBTSEFQRUZJTEU6IG51bGwsXG4gIC8vIEpTT046IG51bGwsXG4gIC8vIEdFT0pTT046IG51bGwsXG4gIC8vIFRPUE9KU09OOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IEVYUE9SVF9EQVRBX1RZUEVfT1BUSU9OUyA9IFtcbiAge1xuICAgIGlkOiBFWFBPUlRfREFUQV9UWVBFLkNTVixcbiAgICBsYWJlbDogRVhQT1JUX0RBVEFfVFlQRS5DU1YudG9Mb3dlckNhc2UoKSxcbiAgICBhdmFpbGFibGU6IHRydWVcbiAgfVxuICAvLyB7XG4gIC8vICAgaWQ6IEVYUE9SVF9EQVRBX1RZUEUuU0hBUEVGSUxFLFxuICAvLyAgIGxhYmVsOiAnc2hhcGVmaWxlJyxcbiAgLy8gICBhdmFpbGFibGU6IGZhbHNlXG4gIC8vIH0sXG4gIC8vIHtcbiAgLy8gICBpZDogRVhQT1JUX0RBVEFfVFlQRS5KU09OLFxuICAvLyAgIGxhYmVsOiAnanNvbicsXG4gIC8vICAgYXZhaWxhYmxlOiBmYWxzZVxuICAvLyB9LFxuICAvLyB7XG4gIC8vICAgaWQ6IEVYUE9SVF9EQVRBX1RZUEUuR0VPSlNPTixcbiAgLy8gICBsYWJlbDogJ2dlb2pzb24nLFxuICAvLyAgIGF2YWlsYWJsZTogZmFsc2VcbiAgLy8gfSxcbiAgLy8ge1xuICAvLyAgIGlkOiBFWFBPUlRfREFUQV9UWVBFLlRPUE9KU09OLFxuICAvLyAgIGxhYmVsOiAndG9wb2pzb24nLFxuICAvLyAgIGF2YWlsYWJsZTogZmFsc2VcbiAgLy8gfVxuXTtcblxuLy8gRXhwb3J0IG1hcCB0eXBlc1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9NQVBfRk9STUFUUyA9IGtleU1pcnJvcih7XG4gIEhUTUw6IG51bGwsXG4gIEpTT046IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgRVhQT1JUX0hUTUxfTUFQX01PREVTID0ga2V5TWlycm9yKHtcbiAgUkVBRDogbnVsbCxcbiAgRURJVDogbnVsbFxufSk7XG5cbi8vIEV4cG9ydCBtYXAgb3B0aW9uc1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9NQVBfRk9STUFUX09QVElPTlMgPSBPYmplY3QuZW50cmllcyhFWFBPUlRfTUFQX0ZPUk1BVFMpLm1hcChcbiAgKGVudHJ5OiBbc3RyaW5nLCBhbnldKSA9PiAoe1xuICAgIGlkOiBlbnRyeVswXSxcbiAgICBsYWJlbDogZW50cnlbMV0udG9Mb3dlckNhc2UoKSxcbiAgICBhdmFpbGFibGU6IHRydWVcbiAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBFWFBPUlRfSFRNTF9NQVBfTU9ERV9PUFRJT05TID0gT2JqZWN0LmVudHJpZXMoRVhQT1JUX0hUTUxfTUFQX01PREVTKS5tYXAoXG4gIChlbnRyeTogW3N0cmluZywgYW55XSkgPT4gKHtcbiAgICBpZDogZW50cnlbMF0sXG4gICAgbGFiZWw6IGBtb2RhbC5leHBvcnRNYXAuaHRtbC4ke2VudHJ5WzFdLnRvTG93ZXJDYXNlKCl9YCxcbiAgICBhdmFpbGFibGU6IHRydWUsXG4gICAgdXJsOiBnZXRIVE1MTWFwTW9kZVRpbGVVcmwoZW50cnlbMV0pXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9VVUlEX0NPVU5UID0gNjtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTk9USUZJQ0FUSU9OX01FU1NBR0UgPSAnTUVTU0FHRV9OT1RfUFJPVklERUQnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9OT1RJRklDQVRJT05fVFlQRVMgPSBrZXlNaXJyb3Ioe1xuICBpbmZvOiBudWxsLFxuICBlcnJvcjogbnVsbCxcbiAgd2FybmluZzogbnVsbCxcbiAgc3VjY2VzczogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX05PVElGSUNBVElPTl9UT1BJQ1MgPSBrZXlNaXJyb3Ioe1xuICBnbG9iYWw6IG51bGwsXG4gIGZpbGU6IG51bGxcbn0pO1xuXG4vLyBNaW5pbXVtIHRpbWUgYmV0d2VlbiBpZGVudGljYWwgbm90aWZpY2F0aW9ucyBhYm91dCBkZWNrLmdsIGVycm9yc1xuZXhwb3J0IGNvbnN0IFRIUk9UVExFX05PVElGSUNBVElPTl9USU1FID0gMjUwMDtcblxuLy8gQW5pbWF0aW9uXG5leHBvcnQgY29uc3QgQkFTRV9TUEVFRCA9IDYwMDtcbmV4cG9ydCBjb25zdCBGUFMgPSA2MDtcblxuLyoqXG4gKiA0IEFuaW1hdGlvbiBXaW5kb3cgVHlwZXNcbiAqIDEuIGZyZWVcbiAqICB8LT4gIHwtPlxuICogQ3VycmVudCB0aW1lIGlzIGEgZml4ZWQgcmFuZ2UsIGFuaW1hdGlvbiBjb250cm9sbGVyIGNhbGxzIG5leHQgYW5pbWF0aW9uIGZyYW1lcyBjb250aW51b3VzbHkgdG8gYW5pbWF0aW9uIGEgbW92aW5nIHdpbmRvd1xuICogVGhlIGluY3JlbWVudCBpZCBiYXNlZCBvbiBkb21haW4gLyBCQVNFX1NQRUVEICogU1BFRURcbiAqXG4gKiAyLiBpbmNyZW1lbnRhbFxuICogfCAgICB8LT5cbiAqIFNhbWUgYXMgZnJlZSwgY3VycmVudCB0aW1lIGlzIGEgZ3Jvd2luZyByYW5nZSwgb25seSB0aGUgbWF4IHZhbHVlIG9mIHJhbmdlIGluY3JlbWVudCBkdXJpbmcgYW5pbWF0aW9uLlxuICogVGhlIGluY3JlbWVudCBpcyBhbHNvIGJhc2VkIG9uIGRvbWFpbiAvIEJBU0VfU1BFRUQgKiBTUEVFRFxuICpcbiAqIDMuIHBvaW50XG4gKiBvIC0+IG9cbiAqIEN1cnJlbnQgdGltZSBpcyBhIHBvaW50LCBhbmltYXRpb24gY29udHJvbGxlciBjYWxscyBuZXh0IGFuaW1hdGlvbiBmcmFtZSBjb250aW51b3VzbHkgdG8gYW5pbWF0aW9uIGEgbW92aW5nIHBvaW50XG4gKiBUaGUgaW5jcmVtZW50IGlzIGJhc2VkIG9uIGRvbWFpbiAvIEJBU0VfU1BFRUQgKiBTUEVFRFxuICpcbiAqIDQuIGludGVydmFsXG4gKiBvIH4+IG9cbiAqIEN1cnJlbnQgdGltZSBpcyBhIHBvaW50LiBBbiBhcnJheSBvZiBzb3J0ZWQgdGltZSBzdGVwcyBuZWVkIHRvIGJlIHByb3ZpZGVkLlxuICogYW5pbWF0aW9uIGNvbnRyb2xsZXIgY2FsbHMgbmV4dCBhbmltYXRpb24gYXQgYSBpbnRlcnZhbCB3aGVuIHRoZSBwb2ludCBqdW1wcyB0byB0aGUgbmV4dCBzdGVwXG4gKi9cbmV4cG9ydCBjb25zdCBBTklNQVRJT05fV0lORE9XID0ga2V5TWlycm9yKHtcbiAgZnJlZTogbnVsbCxcbiAgaW5jcmVtZW50YWw6IG51bGwsXG4gIHBvaW50OiBudWxsLFxuICBpbnRlcnZhbDogbnVsbFxufSk7XG5leHBvcnQgY29uc3QgREVGQVVMVF9USU1FX0ZPUk1BVCA9ICdNTS9ERC9ZWSBISDptbTpzc2EnO1xuZXhwb3J0IGNvbnN0IFNQRUVEX0NPTlRST0xfUkFOR0U6IFtudW1iZXIsIG51bWJlcl0gPSBbMCwgMTBdO1xuZXhwb3J0IGNvbnN0IFNQRUVEX0NPTlRST0xfU1RFUCA9IDAuMDAxO1xuXG4vLyBHZW9jb2RlclxuZXhwb3J0IGNvbnN0IEdFT0NPREVSX0RBVEFTRVRfTkFNRSA9ICdnZW9jb2Rlcl9kYXRhc2V0JztcbmV4cG9ydCBjb25zdCBHRU9DT0RFUl9MQVlFUl9JRCA9ICdnZW9jb2Rlcl9sYXllcic7XG5leHBvcnQgY29uc3QgR0VPQ09ERVJfR0VPX09GRlNFVCA9IDAuMDU7XG5leHBvcnQgY29uc3QgR0VPQ09ERVJfSUNPTl9DT0xPUjogW251bWJlciwgbnVtYmVyLCBudW1iZXJdID0gWzI1NSwgMCwgMF07XG5leHBvcnQgY29uc3QgR0VPQ09ERVJfSUNPTl9TSVpFID0gODA7XG5cbi8vIFdlIGNvdWxkIHVzZSBkaXJlY3RseSByZWFjdC1tYXAtZ2wtZHJhdyBFZGl0b3JNb2RlIGJ1dCB0aGlzIHdvdWxkXG4vLyBjcmVhdGUgYSBkaXJlY3QgZGVwZW5kZW5jeSB3aXRoIHJlYWN0LW1hcC1nbC1kcmF3XG4vLyBDcmVhdGVkIHRoaXMgbWFwIHRvIGJlIGluZGVwZW5kZW50IGZyb20gcmVhY3QtbWFwLWdsLWRyYXdcbmV4cG9ydCBjb25zdCBFRElUT1JfTU9ERVMgPSB7XG4gIFJFQURfT05MWTogRWRpdG9yTW9kZXMuUkVBRF9PTkxZLFxuICBEUkFXX1BPTFlHT046IEVkaXRvck1vZGVzLkRSQVdfUE9MWUdPTixcbiAgRFJBV19SRUNUQU5HTEU6IEVkaXRvck1vZGVzLkRSQVdfUkVDVEFOR0xFLFxuICBFRElUOiBFZGl0b3JNb2Rlcy5FRElUX1ZFUlRFWFxufTtcblxuZXhwb3J0IGNvbnN0IEVESVRPUl9BVkFJTEFCTEVfTEFZRVJTOiBzdHJpbmdbXSA9IFtcbiAgTEFZRVJfVFlQRVMucG9pbnQsXG4gIExBWUVSX1RZUEVTLmhleGFnb24sXG4gIExBWUVSX1RZUEVTLmFyYyxcbiAgTEFZRVJfVFlQRVMubGluZSxcbiAgTEFZRVJfVFlQRVMuaGV4YWdvbklkXG5dO1xuLy8gR1BVIEZpbHRlcmluZ1xuLyoqXG4gKiBNYXggbnVtYmVyIG9mIGZpbHRlciB2YWx1ZSBidWZmZXJzIHRoYXQgZGVjay5nbCBwcm92aWRlc1xuICovXG5leHBvcnQgY29uc3QgTUFYX0dQVV9GSUxURVJTID0gNDtcbmV4cG9ydCBjb25zdCBNQVBfVEhVTUJOQUlMX0RJTUVOU0lPTiA9IHtcbiAgd2lkdGg6IDMwMCxcbiAgaGVpZ2h0OiAyMDBcbn07XG5cbmV4cG9ydCBjb25zdCBNQVBfSU5GT19DSEFSQUNURVIgPSB7XG4gIHRpdGxlOiAxMDAsXG4gIGRlc2NyaXB0aW9uOiAxMDBcbn07XG5cbi8vIExvYWQgZGF0YVxuZXhwb3J0IGNvbnN0IExPQURJTkdfTUVUSE9EUyA9IGtleU1pcnJvcih7XG4gIHVwbG9hZDogbnVsbCxcbiAgc3RvcmFnZTogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBEQVRBU0VUX0ZPUk1BVFMgPSBrZXlNaXJyb3Ioe1xuICByb3c6IG51bGwsXG4gIGdlb2pzb246IG51bGwsXG4gIGNzdjogbnVsbCxcbiAga2VwbGVyZ2w6IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgTUFQX0NPTlRST0xTID0ga2V5TWlycm9yKHtcbiAgdmlzaWJsZUxheWVyczogbnVsbCxcbiAgbWFwTGVnZW5kOiBudWxsLFxuICB0b2dnbGUzZDogbnVsbCxcbiAgc3BsaXRNYXA6IG51bGwsXG4gIG1hcERyYXc6IG51bGwsXG4gIG1hcExvY2FsZTogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBNQVNLX0xBWUVSX0lEID0gJ21hc2tfbGF5ZXInO1xuXG5leHBvcnQgY29uc3QgWk9PTV9MRVZFTF9MSU1JVFMgPSB7XG4gIG1pbjogMCxcbiAgbWF4OiAyMVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFvQkEsSUFBQUEsVUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZUFBQSxHQUFBRCxPQUFBO0FBR0EsSUFBQUUsUUFBQSxHQUFBRixPQUFBO0FBVUEsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBV0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssYUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sUUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sTUFBQSxHQUFBUCxPQUFBO0FBQXlDLFNBQUFRLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFB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QkFBVyxDQUFDRztBQUNwQixDQUFDO0FBRU0sSUFBTUMsdUJBQWlDLEdBQUFqUixPQUFBLENBQUFpUix1QkFBQSxHQUFHLENBQy9DQyxrQkFBVyxDQUFDL0wsS0FBSyxFQUNqQitMLGtCQUFXLENBQUNDLE9BQU8sRUFDbkJELGtCQUFXLENBQUNFLEdBQUcsRUFDZkYsa0JBQVcsQ0FBQ0csSUFBSSxFQUNoQkgsa0JBQVcsQ0FBQ0ksU0FBUyxDQUN0QjtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ08sSUFBTUMsZUFBZSxHQUFBdlIsT0FBQSxDQUFBdVIsZUFBQSxHQUFHLENBQUM7QUFDekIsSUFBTUMsdUJBQXVCLEdBQUF4UixPQUFBLENBQUF3Uix1QkFBQSxHQUFHO0VBQ3JDcFEsS0FBSyxFQUFFLEdBQUc7RUFDVmdNLE1BQU0sRUFBRTtBQUNWLENBQUM7QUFFTSxJQUFNcUUsa0JBQWtCLEdBQUF6UixPQUFBLENBQUF5UixrQkFBQSxHQUFHO0VBQ2hDQyxLQUFLLEVBQUUsR0FBRztFQUNWQyxXQUFXLEVBQUU7QUFDZixDQUFDOztBQUVEO0FBQ08sSUFBTUMsZUFBZSxHQUFBNVIsT0FBQSxDQUFBNFIsZUFBQSxHQUFHLElBQUE1UCxxQkFBUyxFQUFDO0VBQ3ZDNlAsTUFBTSxFQUFFLElBQUk7RUFDWkMsT0FBTyxFQUFFO0FBQ1gsQ0FBQyxDQUFDO0FBRUssSUFBTUMsZUFBZSxHQUFBL1IsT0FBQSxDQUFBK1IsZUFBQSxHQUFHLElBQUEvUCxxQkFBUyxFQUFDO0VBQ3ZDZ1EsR0FBRyxFQUFFLElBQUk7RUFDVG5PLE9BQU8sRUFBRSxJQUFJO0VBQ2JvTyxHQUFHLEVBQUUsSUFBSTtFQUNUQyxRQUFRLEVBQUU7QUFDWixDQUFDLENBQUM7QUFFSyxJQUFNQyxZQUFZLEdBQUFuUyxPQUFBLENBQUFtUyxZQUFBLEdBQUcsSUFBQW5RLHFCQUFTLEVBQUM7RUFDcENvUSxhQUFhLEVBQUUsSUFBSTtFQUNuQnZRLFNBQVMsRUFBRSxJQUFJO0VBQ2Z3USxRQUFRLEVBQUUsSUFBSTtFQUNkQyxRQUFRLEVBQUUsSUFBSTtFQUNkQyxPQUFPLEVBQUUsSUFBSTtFQUNiQyxTQUFTLEVBQUU7QUFDYixDQUFDLENBQUM7QUFFSyxJQUFNQyxhQUFhLEdBQUF6UyxPQUFBLENBQUF5UyxhQUFBLEdBQUcsWUFBWTtBQUVsQyxJQUFNQyxpQkFBaUIsR0FBQTFTLE9BQUEsQ0FBQTBTLGlCQUFBLEdBQUc7RUFDL0JDLEdBQUcsRUFBRSxDQUFDO0VBQ05DLEdBQUcsRUFBRTtBQUNQLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
832
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfa2V5bWlycm9yIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmVhY3RNYXBHbERyYXciLCJfZDNTY2FsZSIsIl9pY29ucyIsIl91dGlscyIsIl9jdXN0b21TY2FsZXMiLCJfdG9vbHRpcCIsIl90eXBlcyIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiQUNUSU9OX1BSRUZJWCIsImV4cG9ydHMiLCJDTE9VREZST05UIiwiSUNPTl9QUkVGSVgiLCJjb25jYXQiLCJERUZBVUxUX01BUEJPWF9BUElfVVJMIiwiREFUQV9UQUJMRV9JRCIsIkRFTEVURV9EQVRBX0lEIiwiQUREX0RBVEFfSUQiLCJFWFBPUlRfSU1BR0VfSUQiLCJFWFBPUlRfREFUQV9JRCIsIkFERF9NQVBfU1RZTEVfSUQiLCJFWFBPUlRfTUFQX0lEIiwiU0FWRV9NQVBfSUQiLCJPVkVSV1JJVEVfTUFQX0lEIiwiU0hBUkVfTUFQX0lEIiwiS0VQTEVSX0dMX05BTUUiLCJLRVBMRVJfR0xfVkVSU0lPTiIsIktFUExFUl9HTF9XRUJTSVRFIiwiRElNRU5TSU9OUyIsInNpZGVQYW5lbCIsIndpZHRoIiwibWFyZ2luIiwidG9wIiwibGVmdCIsImJvdHRvbSIsInJpZ2h0IiwiaGVhZGVySGVpZ2h0IiwibWFwQ29udHJvbCIsInBhZGRpbmciLCJtYXBMZWdlbmQiLCJwaW5uZWQiLCJUSEVNRSIsImtleU1pcnJvciIsImxpZ2h0IiwiZGFyayIsImJhc2UiLCJTSURFQkFSX1BBTkVMUyIsImlkIiwibGFiZWwiLCJpY29uQ29tcG9uZW50IiwiTGF5ZXJzIiwib25DbGljayIsIkZpbHRlckZ1bm5lbCIsIkN1cnNvckNsaWNrIiwiU2V0dGluZ3MiLCJQQU5FTFMiLCJERUZBVUxUX0xBWUVSX0dST1VQUyIsInNsdWciLCJfcmVmIiwibWF0Y2giLCJkZWZhdWx0VmlzaWJpbGl0eSIsIl9yZWYyIiwiX3JlZjMiLCJfcmVmNCIsIl9yZWY1IiwiX3JlZjYiLCJERUZBVUxUX01BUF9TVFlMRVMiLCJ1cmwiLCJpY29uIiwibGF5ZXJHcm91cHMiLCJHRU9KU09OX0ZJRUxEUyIsImdlb2pzb24iLCJJQ09OX0ZJRUxEUyIsIlRSSVBfUE9JTlRfRklFTERTIiwiVFJJUF9BUkNfRklFTERTIiwibGF0MCIsImxuZzAiLCJsYXQxIiwibG5nMSIsIkZJTFRFUl9UWVBFUyIsInJhbmdlIiwic2VsZWN0IiwiaW5wdXQiLCJ0aW1lUmFuZ2UiLCJtdWx0aVNlbGVjdCIsInBvbHlnb24iLCJTQ0FMRV9UWVBFUyIsIm9yZGluYWwiLCJxdWFudGlsZSIsInF1YW50aXplIiwibGluZWFyIiwic3FydCIsImxvZyIsInBvaW50IiwiY3VzdG9tIiwibG9nYXJpdGhtaWMiLCJpZGVudGl0eSIsIlNDQUxFX0ZVTkMiLCJzY2FsZUxpbmVhciIsInNjYWxlUXVhbnRpemUiLCJzY2FsZVF1YW50aWxlIiwic2NhbGVPcmRpbmFsIiwic2NhbGVTcXJ0Iiwic2NhbGVMb2ciLCJzY2FsZVBvaW50Iiwic2NhbGVUaHJlc2hvbGQiLCJzY2FsZUlkZW50aXR5IiwiQUxMX0ZJRUxEX1RZUEVTIiwiZGF0ZSIsImludGVnZXIiLCJyZWFsIiwic3RyaW5nIiwidGltZXN0YW1wIiwiU09SVF9PUkRFUiIsIkFTQ0VORElORyIsIkRFU0NFTkRJTkciLCJVTlNPUlQiLCJUQUJMRV9PUFRJT04iLCJTT1JUX0FTQyIsIlNPUlRfREVTIiwiUElOIiwiVU5QSU4iLCJDT1BZIiwiVEFCTEVfT1BUSU9OX0xJU1QiLCJ2YWx1ZSIsImRpc3BsYXkiLCJBcnJvd1VwIiwiY29uZGl0aW9uIiwicHJvcHMiLCJzb3J0TW9kZSIsIkFycm93RG93biIsIkNhbmNlbCIsImlzU29ydGVkIiwiUGluIiwiaXNQaW5uZWQiLCJDbGlwYm9hcmQiLCJPUkFOR0UiLCJQSU5LIiwiUFVSUExFIiwiQkxVRSIsIkJMVUUyIiwiQkxVRTMiLCJHUkVFTiIsIlJFRCIsIkZJTEVEX1RZUEVfRElTUExBWSIsImNvbG9yIiwiRklFTERfQ09MT1JTIiwiSElHSExJR0hfQ09MT1JfM0QiLCJDSEFOTkVMX1NDQUxFUyIsInJhZGl1cyIsInNpemUiLCJjdXN0b21NYXJrZXIiLCJjb2xvckFnZ3IiLCJzaXplQWdnciIsIkFHR1JFR0FUSU9OX1RZUEVTIiwiY291bnQiLCJhdmVyYWdlIiwibWF4aW11bSIsIm1pbmltdW0iLCJtZWRpYW4iLCJzdGRldiIsInN1bSIsInZhcmlhbmNlIiwibW9kZSIsImNvdW50VW5pcXVlIiwiYW55VmFsdWUiLCJGSUVMRF9UWVBFU19BR0dSRUdBVE9SUyIsIkZJRUxEX0FHR1JFR0FUT1JTIiwiZGlzcGxheU5hbWUiLCJsaW5lYXJGaWVsZFNjYWxlRnVuY3Rpb25zIiwibGluZWFyRmllbGRBZ2dyU2NhbGVGdW5jdGlvbnMiLCJvcmRpbmFsRmllbGRTY2FsZUZ1bmN0aW9ucyIsIm9yZGluYWxGaWVsZEFnZ3JTY2FsZUZ1bmN0aW9ucyIsIm5vdFN1cHBvcnRlZFNjYWxlT3B0cyIsIm5vdFN1cHBvcnRBZ2dyT3B0cyIsIkRFRkFVTFRfQUdHUkVHQVRJT04iLCJGSUVMRF9PUFRTIiwidHlwZSIsInNjYWxlIiwiZm9ybWF0IiwibGVnZW5kIiwiZCIsInRvb2x0aXAiLCJUT09MVElQX0ZPUk1BVF9UWVBFUyIsIk5PTkUiLCJERUNJTUFMIiwiUEVSQ0VOVEFHRSIsIkRBVEUiLCJEQVRFX1RJTUUiLCJCT09MRUFOIiwiQ0hBTk5FTF9TQ0FMRV9TVVBQT1JURURfRklFTERTIiwicmVkdWNlIiwiYWNjdSIsImtleSIsImZ0IiwiREVGQVVMVF9MQVlFUl9DT0xPUiIsInRyaXBBcmMiLCJiZWdpbnRyaXBfbGF0IiwiZHJvcG9mZl9sYXQiLCJyZXF1ZXN0X2xhdCIsIkRFRkFVTFRfVE9PTFRJUF9GSUVMRFMiLCJOT19WQUxVRV9DT0xPUiIsIlVOS05PV05fQ09MT1IiLCJMQVlFUl9CTEVORElOR1MiLCJhZGRpdGl2ZSIsImJsZW5kRnVuYyIsImJsZW5kRXF1YXRpb24iLCJub3JtYWwiLCJzdWJ0cmFjdGl2ZSIsIk1BWF9ERUZBVUxUX1RPT0xUSVBTIiwiUkVTT0xVVElPTlMiLCJPTkVfWCIsIlRXT19YIiwiRVhQT1JUX0lNR19SQVRJT1MiLCJTQ1JFRU4iLCJGT1VSX0JZX1RIUkVFIiwiU0lYVEVFTl9CWV9OSU5FIiwiQ1VTVE9NIiwiU2NyZWVuUmF0aW9PcHRpb24iLCJnZXRTaXplIiwic2NyZWVuVyIsInNjcmVlbkgiLCJoZWlnaHQiLCJDdXN0b21SYXRpb09wdGlvbiIsImhpZGRlbiIsIm1hcFciLCJtYXBIIiwiRm91ckJ5VGhyZWVSYXRpb09wdGlvbiIsIk1hdGgiLCJyb3VuZCIsIlNpeHRlZW5CeU5pbmVSYXRpb09wdGlvbiIsIkVYUE9SVF9JTUdfUkFUSU9fT1BUSU9OUyIsIk9uZVhSZXNvbHV0aW9uT3B0aW9uIiwiYXZhaWxhYmxlIiwiVHdvWFJlc29sdXRpb25PcHRpb24iLCJFWFBPUlRfSU1HX1JFU09MVVRJT05fT1BUSU9OUyIsIkVYUE9SVF9EQVRBX1RZUEUiLCJDU1YiLCJFWFBPUlRfREFUQV9UWVBFX09QVElPTlMiLCJ0b0xvd2VyQ2FzZSIsIkVYUE9SVF9NQVBfRk9STUFUUyIsIkhUTUwiLCJKU09OIiwiRVhQT1JUX0hUTUxfTUFQX01PREVTIiwiUkVBRCIsIkVESVQiLCJFWFBPUlRfTUFQX0ZPUk1BVF9PUFRJT05TIiwiZW50cmllcyIsIm1hcCIsImVudHJ5IiwiRVhQT1JUX0hUTUxfTUFQX01PREVfT1BUSU9OUyIsImdldEhUTUxNYXBNb2RlVGlsZVVybCIsIkRFRkFVTFRfVVVJRF9DT1VOVCIsIkRFRkFVTFRfTk9USUZJQ0FUSU9OX01FU1NBR0UiLCJERUZBVUxUX05PVElGSUNBVElPTl9UWVBFUyIsImluZm8iLCJlcnJvciIsIndhcm5pbmciLCJzdWNjZXNzIiwiREVGQVVMVF9OT1RJRklDQVRJT05fVE9QSUNTIiwiZ2xvYmFsIiwiZmlsZSIsIlRIUk9UVExFX05PVElGSUNBVElPTl9USU1FIiwiQkFTRV9TUEVFRCIsIkZQUyIsIkFOSU1BVElPTl9XSU5ET1ciLCJmcmVlIiwiaW5jcmVtZW50YWwiLCJpbnRlcnZhbCIsIkRFRkFVTFRfVElNRV9GT1JNQVQiLCJTUEVFRF9DT05UUk9MX1JBTkdFIiwiU1BFRURfQ09OVFJPTF9TVEVQIiwiR0VPQ09ERVJfREFUQVNFVF9OQU1FIiwiR0VPQ09ERVJfTEFZRVJfSUQiLCJHRU9DT0RFUl9HRU9fT0ZGU0VUIiwiR0VPQ09ERVJfSUNPTl9DT0xPUiIsIkdFT0NPREVSX0lDT05fU0laRSIsIkVESVRPUl9NT0RFUyIsIlJFQURfT05MWSIsIkVkaXRvck1vZGVzIiwiRFJBV19QT0xZR09OIiwiRFJBV19SRUNUQU5HTEUiLCJFRElUX1ZFUlRFWCIsIkVESVRPUl9BVkFJTEFCTEVfTEFZRVJTIiwiTEFZRVJfVFlQRVMiLCJoZXhhZ29uIiwiYXJjIiwibGluZSIsImhleGFnb25JZCIsIk1BWF9HUFVfRklMVEVSUyIsIk1BUF9USFVNQk5BSUxfRElNRU5TSU9OIiwiTUFQX0lORk9fQ0hBUkFDVEVSIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsIkxPQURJTkdfTUVUSE9EUyIsInVwbG9hZCIsInN0b3JhZ2UiLCJEQVRBU0VUX0ZPUk1BVFMiLCJyb3ciLCJjc3YiLCJrZXBsZXJnbCIsIk1BUF9DT05UUk9MUyIsInZpc2libGVMYXllcnMiLCJ0b2dnbGUzZCIsInNwbGl0TWFwIiwibWFwRHJhdyIsIm1hcExvY2FsZSIsIk1BU0tfTEFZRVJfSUQiLCJaT09NX0xFVkVMX0xJTUlUUyIsIm1pbiIsIm1heCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQga2V5TWlycm9yIGZyb20gJ2tleW1pcnJvcic7XG5pbXBvcnQge0VkaXRvck1vZGVzfSBmcm9tICdyZWFjdC1tYXAtZ2wtZHJhdyc7XG5cbmltcG9ydCB7Q29sb3J9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IHtcbiAgc2NhbGVMaW5lYXIsXG4gIHNjYWxlUXVhbnRpemUsXG4gIHNjYWxlUXVhbnRpbGUsXG4gIHNjYWxlT3JkaW5hbCxcbiAgc2NhbGVTcXJ0LFxuICBzY2FsZUxvZyxcbiAgc2NhbGVQb2ludCxcbiAgc2NhbGVUaHJlc2hvbGRcbn0gZnJvbSAnZDMtc2NhbGUnO1xuaW1wb3J0IHtcbiAgTGF5ZXJzLFxuICBGaWx0ZXJGdW5uZWwsXG4gIFNldHRpbmdzLFxuICBDdXJzb3JDbGljayxcbiAgUGluLFxuICBBcnJvd0Rvd24sXG4gIEFycm93VXAsXG4gIENsaXBib2FyZCxcbiAgQ2FuY2VsXG59IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2ljb25zJztcbmltcG9ydCB7Z2V0SFRNTE1hcE1vZGVUaWxlVXJsfSBmcm9tICd1dGlscy91dGlscyc7XG5pbXBvcnQge3NjYWxlSWRlbnRpdHl9IGZyb20gJ3V0aWxzL2N1c3RvbS1zY2FsZXMnO1xuaW1wb3J0IHtUT09MVElQX0ZPUk1BVF9UWVBFU30gZnJvbSAnLi90b29sdGlwJztcbmltcG9ydCB7TEFZRVJfVFlQRVN9IGZyb20gJ2xheWVycy90eXBlcyc7XG5pbXBvcnQge1JHQkFDb2xvcn0gZnJvbSAncmVkdWNlcnMnO1xuXG5leHBvcnQgY29uc3QgQUNUSU9OX1BSRUZJWCA9ICdAQGtlcGxlci5nbC8nO1xuZXhwb3J0IGNvbnN0IENMT1VERlJPTlQgPSAnaHR0cHM6Ly9kMWEzZjRzcGF6enJwNC5jbG91ZGZyb250Lm5ldC9rZXBsZXIuZ2wnO1xuZXhwb3J0IGNvbnN0IElDT05fUFJFRklYID0gYCR7Q0xPVURGUk9OVH0vZ2VvZHVkZWA7XG5leHBvcnQgY29uc3QgREVGQVVMVF9NQVBCT1hfQVBJX1VSTCA9ICdodHRwczovL2FwaS5tYXBib3guY29tJztcblxuLy8gTW9kYWwgSWRzXG4vKipcbiAqIE1vZGFsIGlkOiBkYXRhIHRhYmxlXG4gKiBAY29uc3RhbnRcbiAqIEB0eXBlIHtzdHJpbmd9XG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBEQVRBX1RBQkxFX0lEID0gJ2RhdGFUYWJsZSc7XG4vKipcbiAqIE1vZGFsIGlkOiBkZWxldGUgZGF0YXNldCBjb25maXJtIGRpYWxvZ1xuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgREVMRVRFX0RBVEFfSUQgPSAnZGVsZXRlRGF0YSc7XG4vKipcbiAqIE1vZGFsIGlkOiBhZGQgZGF0YSBtb2RhbFxuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgQUREX0RBVEFfSUQgPSAnYWRkRGF0YSc7XG4vKipcbiAqIE1vZGFsIGlkOiBleHBvcnQgaW1hZ2UgbW9kYWxcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9JTUFHRV9JRCA9ICdleHBvcnRJbWFnZSc7XG4vKipcbiAqIE1vZGFsIGlkOiBleHBvcnQgZGF0YSBtb2RhbFxuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgRVhQT1JUX0RBVEFfSUQgPSAnZXhwb3J0RGF0YSc7XG4vKipcbiAqIE1vZGFsIGlkOiBhZGQgY3VzdG9tIG1hcCBzdHlsZSBtb2RhbFxuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgQUREX01BUF9TVFlMRV9JRCA9ICdhZGRNYXBTdHlsZSc7XG4vKipcbiAqIE1vZGFsIGlkOiBleHBvcnQgbWFwIG1vZGFsXG4gKiBAY29uc3RhbnRcbiAqIEB0eXBlIHtzdHJpbmd9XG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBFWFBPUlRfTUFQX0lEID0gJ2V4cG9ydE1hcCc7XG4vKipcbiAqIE1vZGFsIGlkOiBzYXZlIG1hcCBtb2RhbFxuICogQGNvbnN0YW50XG4gKiBAdHlwZSB7c3RyaW5nfVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgU0FWRV9NQVBfSUQgPSAnc2F2ZU1hcCc7XG4vKipcbiAqIE1vZGFsIGlkOiBjb25maXJtIHRvIG92ZXJ3cml0ZSBzYXZlZCBtYXBcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IE9WRVJXUklURV9NQVBfSUQgPSAnb3ZlcndyaXRlTWFwJztcbi8qKlxuICogTW9kYWwgaWQ6IHNoYXJlIG1hcCB1cmwgbW9kYWxcbiAqIEBjb25zdGFudFxuICogQHR5cGUge3N0cmluZ31cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IFNIQVJFX01BUF9JRCA9ICdzaGFyZU1hcCc7XG5cbmV4cG9ydCBjb25zdCBLRVBMRVJfR0xfTkFNRSA9ICdrZXBsZXIuZ2wnO1xuXG4vLyBfX1BBQ0tBR0VfVkVSU0lPTl9fIGlzIGF1dG9tYXRpY2FsbHkgaW5qZWN0ZWQgYnkgQmFiZWwvV2VicGFjayBkdXJpbmcgdGhlIGJ1aWxkaW5nIHByb2Nlc3Ncbi8vIFNpbmNlIHdlIGFyZSBpbmplY3RpbmcgdGhpcyBkdXJpbmcgdGhlIGJ1aWxkIHByb2Nlc3Mgd2l0aCBiYWJlbFxuLy8gd2hpbGUgZGV2ZWxvcGluZyBWRVJTSU9OIGlzIG5vdCBkZWZpbmVkLCB3ZSBjYXB0dXJlIHRoZSBleGNlcHRpb24gYW5kIHJldHVyblxuLy8gYW4gZW1wdHkgc3RyaW5nIHdoaWNoIHdpbGwgYWxsb3cgdXMgdG8gcmV0cmlldmUgdGhlIGxhdGVzdCB1bWQgdmVyc2lvblxuZXhwb3J0IGNvbnN0IEtFUExFUl9HTF9WRVJTSU9OID0gJ19fUEFDS0FHRV9WRVJTSU9OX18nO1xuZXhwb3J0IGNvbnN0IEtFUExFUl9HTF9XRUJTSVRFID0gJ2h0dHA6Ly9rZXBsZXIuZ2wvJztcblxuZXhwb3J0IGNvbnN0IERJTUVOU0lPTlMgPSB7XG4gIHNpZGVQYW5lbDoge1xuICAgIHdpZHRoOiAzMDAsXG4gICAgbWFyZ2luOiB7dG9wOiAyMCwgbGVmdDogMjAsIGJvdHRvbTogMzAsIHJpZ2h0OiAyMH0sXG4gICAgaGVhZGVySGVpZ2h0OiA5NlxuICB9LFxuICBtYXBDb250cm9sOiB7XG4gICAgd2lkdGg6IDE4NCxcbiAgICBwYWRkaW5nOiAxMixcbiAgICBtYXBMZWdlbmQ6IHtcbiAgICAgIHBpbm5lZDoge1xuICAgICAgICBib3R0b206IDIyLFxuICAgICAgICByaWdodDogMTJcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogVGhlbWUgbmFtZSB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gYEtlcGxlckdsYCBgcHJvcC50aGVtZWAuXG4gKiBBdmFpbGFibGUgdGhlbWVzIGFyZSBgVEhFTUUubGlnaHRgIGFuZCBgVEhFTUUuZGFya2AuIERlZmF1bHQgdGhlbWUgaXMgYFRIRU1FLmRhcmtgXG4gKiBAY29uc3RhbnRcbiAqIEB0eXBlIHtvYmplY3R9XG4gKiBAcHVibGljXG4gKiBAZXhhbXBsZVxuICogYGBganNcbiAqIGNvbnN0IE1hcCA9ICgpID0+IDxLZXBsZXJHbCB0aGVtZT17VEhFTUUubGlnaHR9IGlkPVwibWFwXCIvPlxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBUSEVNRSA9IGtleU1pcnJvcih7XG4gIGxpZ2h0OiBudWxsLFxuICBkYXJrOiBudWxsLFxuICBiYXNlOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IFNJREVCQVJfUEFORUxTID0gW1xuICB7XG4gICAgaWQ6ICdsYXllcicsXG4gICAgbGFiZWw6ICdzaWRlYmFyLnBhbmVscy5sYXllcicsXG4gICAgaWNvbkNvbXBvbmVudDogTGF5ZXJzLFxuICAgIG9uQ2xpY2s6IG51bGxcbiAgfSxcbiAge1xuICAgIGlkOiAnZmlsdGVyJyxcbiAgICBsYWJlbDogJ3NpZGViYXIucGFuZWxzLmZpbHRlcicsXG4gICAgaWNvbkNvbXBvbmVudDogRmlsdGVyRnVubmVsLFxuICAgIG9uQ2xpY2s6IG51bGxcbiAgfSxcbiAge1xuICAgIGlkOiAnaW50ZXJhY3Rpb24nLFxuICAgIGxhYmVsOiAnc2lkZWJhci5wYW5lbHMuaW50ZXJhY3Rpb24nLFxuICAgIGljb25Db21wb25lbnQ6IEN1cnNvckNsaWNrLFxuICAgIG9uQ2xpY2s6IG51bGxcbiAgfSxcbiAge1xuICAgIGlkOiAnbWFwJyxcbiAgICBsYWJlbDogJ3NpZGViYXIucGFuZWxzLmJhc2VtYXAnLFxuICAgIGljb25Db21wb25lbnQ6IFNldHRpbmdzLFxuICAgIG9uQ2xpY2s6IG51bGxcbiAgfVxuXTtcblxuLy8gYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuZXhwb3J0IGNvbnN0IFBBTkVMUyA9IFNJREVCQVJfUEFORUxTO1xuXG4vLyBNQVAgU1RZTEVTXG5cbnR5cGUgREVGQVVMVF9MQVlFUl9HUk9VUCA9IHtcbiAgc2x1Zzogc3RyaW5nO1xuICBmaWx0ZXI6ICh2YWx1ZSkgPT4gYm9vbGVhbjtcbiAgZGVmYXVsdFZpc2liaWxpdHk6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9MQVlFUl9HUk9VUFM6IERFRkFVTFRfTEFZRVJfR1JPVVBbXSA9IFtcbiAge1xuICAgIHNsdWc6ICdsYWJlbCcsXG4gICAgZmlsdGVyOiAoe2lkfSkgPT4gaWQubWF0Y2goLyg/PShsYWJlbHxwbGFjZS18cG9pLSkpLyksXG4gICAgZGVmYXVsdFZpc2liaWxpdHk6IHRydWVcbiAgfSxcbiAge1xuICAgIHNsdWc6ICdyb2FkJyxcbiAgICBmaWx0ZXI6ICh7aWR9KSA9PiBpZC5tYXRjaCgvKD89KHJvYWR8cmFpbHdheXx0dW5uZWx8c3RyZWV0fGJyaWRnZSkpKD8hLipsYWJlbCkvKSxcbiAgICBkZWZhdWx0VmlzaWJpbGl0eTogdHJ1ZVxuICB9LFxuICB7XG4gICAgc2x1ZzogJ2JvcmRlcicsXG4gICAgZmlsdGVyOiAoe2lkfSkgPT4gaWQubWF0Y2goL2JvcmRlcnxib3VuZGFyaWVzLyksXG4gICAgZGVmYXVsdFZpc2liaWxpdHk6IGZhbHNlXG4gIH0sXG4gIHtcbiAgICBzbHVnOiAnYnVpbGRpbmcnLFxuICAgIGZpbHRlcjogKHtpZH0pID0+IGlkLm1hdGNoKC9idWlsZGluZy8pLFxuICAgIGRlZmF1bHRWaXNpYmlsaXR5OiB0cnVlXG4gIH0sXG4gIHtcbiAgICBzbHVnOiAnd2F0ZXInLFxuICAgIGZpbHRlcjogKHtpZH0pID0+IGlkLm1hdGNoKC8oPz0od2F0ZXJ8c3RyZWFtfGZlcnJ5KSkvKSxcbiAgICBkZWZhdWx0VmlzaWJpbGl0eTogdHJ1ZVxuICB9LFxuICB7XG4gICAgc2x1ZzogJ2xhbmQnLFxuICAgIGZpbHRlcjogKHtpZH0pID0+IGlkLm1hdGNoKC8oPz0ocGFya3N8bGFuZGNvdmVyfGluZHVzdHJpYWx8c2FuZHxoaWxsc2hhZGUpKS8pLFxuICAgIGRlZmF1bHRWaXNpYmlsaXR5OiB0cnVlXG4gIH0sXG4gIHtcbiAgICBzbHVnOiAnM2QgYnVpbGRpbmcnLFxuICAgIGZpbHRlcjogKCkgPT4gZmFsc2UsXG4gICAgZGVmYXVsdFZpc2liaWxpdHk6IGZhbHNlXG4gIH1cbl07XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX01BUF9TVFlMRVMgPSBbXG4gIHtcbiAgICBpZDogJ2RhcmsnLFxuICAgIGxhYmVsOiAnRGFyaycsXG4gICAgdXJsOiAnbWFwYm94Oi8vc3R5bGVzL3ViZXJkYXRhL2Nqb3FiYmY2bDlrMzAyc2w5NnR5dmthMDknLFxuICAgIGljb246IGAke0lDT05fUFJFRklYfS9VQkVSX0RBUktfVjIucG5nYCxcbiAgICBsYXllckdyb3VwczogREVGQVVMVF9MQVlFUl9HUk9VUFNcbiAgfSxcbiAge1xuICAgIGlkOiAnbGlnaHQnLFxuICAgIGxhYmVsOiAnTGlnaHQnLFxuICAgIHVybDogJ21hcGJveDovL3N0eWxlcy91YmVyZGF0YS9jam9xYjlqMzM5azFmMnNsOXQ1aWM1Ym40JyxcbiAgICBpY29uOiBgJHtJQ09OX1BSRUZJWH0vVUJFUl9MSUdIVF9WMi5wbmdgLFxuICAgIGxheWVyR3JvdXBzOiBERUZBVUxUX0xBWUVSX0dST1VQU1xuICB9LFxuICB7XG4gICAgaWQ6ICdtdXRlZCcsXG4gICAgbGFiZWw6ICdNdXRlZCBMaWdodCcsXG4gICAgdXJsOiAnbWFwYm94Oi8vc3R5bGVzL3ViZXJkYXRhL2NqZnlsMDNrcDF0dWwyc21mNXYydGJkZDQnLFxuICAgIGljb246IGAke0lDT05fUFJFRklYfS9VQkVSX01VVEVEX0xJR0hULnBuZ2AsXG4gICAgbGF5ZXJHcm91cHM6IERFRkFVTFRfTEFZRVJfR1JPVVBTXG4gIH0sXG4gIHtcbiAgICBpZDogJ211dGVkX25pZ2h0JyxcbiAgICBsYWJlbDogJ011dGVkIE5pZ2h0JyxcbiAgICB1cmw6ICdtYXBib3g6Ly9zdHlsZXMvdWJlcmRhdGEvY2pmeGhsaWttYWoxYjJzb3l6ZXZueXdncycsXG4gICAgaWNvbjogYCR7SUNPTl9QUkVGSVh9L1VCRVJfTVVURURfTklHSFQucG5nYCxcbiAgICBsYXllckdyb3VwczogREVGQVVMVF9MQVlFUl9HUk9VUFNcbiAgfSxcbiAge1xuICAgIGlkOiAnc2F0ZWxsaXRlJyxcbiAgICBsYWJlbDogJ1NhdGVsbGl0ZScsXG4gICAgdXJsOiBgbWFwYm94Oi8vc3R5bGVzL21hcGJveC9zYXRlbGxpdGUtdjlgLFxuICAgIGljb246IGAke0lDT05fUFJFRklYfS9VQkVSX1NBVEVMTElURS5wbmdgXG4gIH1cbl07XG5cbmV4cG9ydCBjb25zdCBHRU9KU09OX0ZJRUxEUyA9IHtcbiAgZ2VvanNvbjogWydfZ2VvanNvbicsICdhbGxfcG9pbnRzJywgJ2dlb2pzb24nXVxufTtcblxuZXhwb3J0IGNvbnN0IElDT05fRklFTERTID0ge1xuICBpY29uOiBbJ2ljb24nXVxufTtcblxuZXhwb3J0IGNvbnN0IFRSSVBfUE9JTlRfRklFTERTOiBbc3RyaW5nLCBzdHJpbmddW10gPSBbXG4gIFsnbGF0JywgJ2xuZyddLFxuICBbJ2xhdCcsICdsb24nXSxcbiAgWydsYXRpdHVkZScsICdsb25naXR1ZGUnXVxuXTtcblxuZXhwb3J0IGNvbnN0IFRSSVBfQVJDX0ZJRUxEUyA9IHtcbiAgbGF0MDogJ2JlZ2ludHJpcCcsXG4gIGxuZzA6ICdiZWdpbnRyaXAnLFxuICBsYXQxOiAnZHJvcG9mZicsXG4gIGxuZzE6ICdkcm9wb2ZmJ1xufTtcblxuZXhwb3J0IGNvbnN0IEZJTFRFUl9UWVBFUyA9IGtleU1pcnJvcih7XG4gIHJhbmdlOiBudWxsLFxuICBzZWxlY3Q6IG51bGwsXG4gIGlucHV0OiBudWxsLFxuICB0aW1lUmFuZ2U6IG51bGwsXG4gIG11bHRpU2VsZWN0OiBudWxsLFxuICBwb2x5Z29uOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IFNDQUxFX1RZUEVTID0ga2V5TWlycm9yKHtcbiAgb3JkaW5hbDogbnVsbCxcbiAgcXVhbnRpbGU6IG51bGwsXG4gIHF1YW50aXplOiBudWxsLFxuICBsaW5lYXI6IG51bGwsXG4gIHNxcnQ6IG51bGwsXG4gIGxvZzogbnVsbCxcblxuICAvLyBvcmRpbmFsIGRvbWFpbiB0byBsaW5lYXIgcmFuZ2VcbiAgcG9pbnQ6IG51bGwsXG4gIGN1c3RvbTogbnVsbCxcbiAgLy8gVUktb25seSB0eXBlLCByZXNvbHZpbmcgYXMgY3VzdG9tXG4gIGxvZ2FyaXRobWljOiBudWxsLFxuICBpZGVudGl0eTogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBTQ0FMRV9GVU5DID0ge1xuICBbU0NBTEVfVFlQRVMubGluZWFyXTogc2NhbGVMaW5lYXIsXG4gIFtTQ0FMRV9UWVBFUy5xdWFudGl6ZV06IHNjYWxlUXVhbnRpemUsXG4gIFtTQ0FMRV9UWVBFUy5xdWFudGlsZV06IHNjYWxlUXVhbnRpbGUsXG4gIFtTQ0FMRV9UWVBFUy5vcmRpbmFsXTogc2NhbGVPcmRpbmFsLFxuICBbU0NBTEVfVFlQRVMuc3FydF06IHNjYWxlU3FydCxcbiAgW1NDQUxFX1RZUEVTLmxvZ106IHNjYWxlTG9nLFxuICBbU0NBTEVfVFlQRVMucG9pbnRdOiBzY2FsZVBvaW50LFxuICBbU0NBTEVfVFlQRVMuY3VzdG9tXTogc2NhbGVUaHJlc2hvbGQsXG4gIFtTQ0FMRV9UWVBFUy5pZGVudGl0eV06IHNjYWxlSWRlbnRpdHlcbn07XG5cbmV4cG9ydCBjb25zdCBBTExfRklFTERfVFlQRVMgPSBrZXlNaXJyb3Ioe1xuICBib29sZWFuOiBudWxsLFxuICBkYXRlOiBudWxsLFxuICBnZW9qc29uOiBudWxsLFxuICBpbnRlZ2VyOiBudWxsLFxuICByZWFsOiBudWxsLFxuICBzdHJpbmc6IG51bGwsXG4gIHRpbWVzdGFtcDogbnVsbCxcbiAgcG9pbnQ6IG51bGxcbn0pO1xuXG4vLyBEYXRhIFRhYmxlXG5leHBvcnQgY29uc3QgU09SVF9PUkRFUiA9IGtleU1pcnJvcih7XG4gIEFTQ0VORElORzogbnVsbCxcbiAgREVTQ0VORElORzogbnVsbCxcbiAgVU5TT1JUOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IFRBQkxFX09QVElPTiA9IGtleU1pcnJvcih7XG4gIFNPUlRfQVNDOiBudWxsLFxuICBTT1JUX0RFUzogbnVsbCxcbiAgVU5TT1JUOiBudWxsLFxuICBQSU46IG51bGwsXG4gIFVOUElOOiBudWxsLFxuICBDT1BZOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IFRBQkxFX09QVElPTl9MSVNUID0gW1xuICB7XG4gICAgdmFsdWU6IFRBQkxFX09QVElPTi5TT1JUX0FTQyxcbiAgICBkaXNwbGF5OiAnU29ydCBBc2NlbmRpbmcnLFxuICAgIGljb246IEFycm93VXAsXG4gICAgY29uZGl0aW9uOiBwcm9wcyA9PiBwcm9wcy5zb3J0TW9kZSAhPT0gU09SVF9PUkRFUi5BU0NFTkRJTkdcbiAgfSxcbiAge1xuICAgIHZhbHVlOiBUQUJMRV9PUFRJT04uU09SVF9ERVMsXG4gICAgZGlzcGxheTogJ1NvcnQgRGVzY2VuZGluZycsXG4gICAgaWNvbjogQXJyb3dEb3duLFxuICAgIGNvbmRpdGlvbjogcHJvcHMgPT4gcHJvcHMuc29ydE1vZGUgIT09IFNPUlRfT1JERVIuREVTQ0VORElOR1xuICB9LFxuICB7XG4gICAgdmFsdWU6IFRBQkxFX09QVElPTi5VTlNPUlQsXG4gICAgZGlzcGxheTogJ1Vuc29ydCBDb2x1bW4nLFxuICAgIGljb246IENhbmNlbCxcbiAgICBjb25kaXRpb246IHByb3BzID0+IHByb3BzLmlzU29ydGVkXG4gIH0sXG4gIHt2YWx1ZTogVEFCTEVfT1BUSU9OLlBJTiwgZGlzcGxheTogJ1BpbiBDb2x1bW4nLCBpY29uOiBQaW4sIGNvbmRpdGlvbjogcHJvcHMgPT4gIXByb3BzLmlzUGlubmVkfSxcbiAge1xuICAgIHZhbHVlOiBUQUJMRV9PUFRJT04uVU5QSU4sXG4gICAgZGlzcGxheTogJ1VucGluIENvbHVtbicsXG4gICAgaWNvbjogQ2FuY2VsLFxuICAgIGNvbmRpdGlvbjogcHJvcHMgPT4gcHJvcHMuaXNQaW5uZWRcbiAgfSxcbiAge3ZhbHVlOiBUQUJMRV9PUFRJT04uQ09QWSwgZGlzcGxheTogJ0NvcHkgQ29sdW1uJywgaWNvbjogQ2xpcGJvYXJkfVxuXTtcblxuY29uc3QgT1JBTkdFID0gJzI0OCwgMTk0LCAyOCc7XG5jb25zdCBQSU5LID0gJzIzMSwgMTg5LCAxOTQnO1xuY29uc3QgUFVSUExFID0gJzE2MCwgMTA2LCAyMDYnO1xuY29uc3QgQkxVRSA9ICcxNDAsIDIxMCwgMjA1JztcbmNvbnN0IEJMVUUyID0gJzEwNiwgMTYwLCAyMDYnO1xuY29uc3QgQkxVRTMgPSAnMCwgMTcyLCAyMzcnO1xuY29uc3QgR1JFRU4gPSAnMTA2LCAxNjAsIDU2JztcbmNvbnN0IFJFRCA9ICcyMzcsIDg4LCAxMDYnO1xuXG5leHBvcnQgY29uc3QgRklMRURfVFlQRV9ESVNQTEFZID0ge1xuICBbQUxMX0ZJRUxEX1RZUEVTLmJvb2xlYW5dOiB7XG4gICAgbGFiZWw6ICdib29sJyxcbiAgICBjb2xvcjogUElOS1xuICB9LFxuICBbQUxMX0ZJRUxEX1RZUEVTLmRhdGVdOiB7XG4gICAgbGFiZWw6ICdkYXRlJyxcbiAgICBjb2xvcjogUFVSUExFXG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMuZ2VvanNvbl06IHtcbiAgICBsYWJlbDogJ2dlbycsXG4gICAgY29sb3I6IEJMVUUyXG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMuaW50ZWdlcl06IHtcbiAgICBsYWJlbDogJ251bWJlcicsXG4gICAgY29sb3I6IE9SQU5HRVxuICB9LFxuICBbQUxMX0ZJRUxEX1RZUEVTLnJlYWxdOiB7XG4gICAgbGFiZWw6ICdudW1iZXInLFxuICAgIGNvbG9yOiBPUkFOR0VcbiAgfSxcbiAgW0FMTF9GSUVMRF9UWVBFUy5zdHJpbmddOiB7XG4gICAgbGFiZWw6ICdzdHJpbmcnLFxuICAgIGNvbG9yOiBCTFVFXG4gIH0sXG4gIFtBTExfRklFTERfVFlQRVMudGltZXN0YW1wXToge1xuICAgIGxhYmVsOiAndGltZScsXG4gICAgY29sb3I6IEdSRUVOXG4gIH0sXG4gIC8vIGZpZWxkIHBhaXJzXG4gIFtBTExfRklFTERfVFlQRVMucG9pbnRdOiB7XG4gICAgbGFiZWw6ICdwb2ludCcsXG4gICAgY29sb3I6IEJMVUUzXG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBGSUVMRF9DT0xPUlMgPSB7XG4gIGRlZmF1bHQ6IFJFRFxufTtcbmV4cG9ydCBjb25zdCBISUdITElHSF9DT0xPUl8zRDogUkdCQUNvbG9yID0gWzI1NSwgMjU1LCAyNTUsIDYwXTtcbmV4cG9ydCBjb25zdCBDSEFOTkVMX1NDQUxFUyA9IGtleU1pcnJvcih7XG4gIGNvbG9yOiBudWxsLFxuICByYWRpdXM6IG51bGwsXG4gIHNpemU6IG51bGwsXG4gIGN1c3RvbU1hcmtlcjogbnVsbCxcbiAgY29sb3JBZ2dyOiBudWxsLFxuICBzaXplQWdncjogbnVsbCxcbiAgaWRlbnRpdHk6IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgQUdHUkVHQVRJT05fVFlQRVM6IHtcbiAgLy8gZGVmYXVsdFxuICBjb3VudDogJ2NvdW50JztcbiAgLy8gbGluZWFyXG4gIGF2ZXJhZ2U6ICdhdmVyYWdlJztcbiAgbWF4aW11bTogJ21heGltdW0nO1xuICBtaW5pbXVtOiAnbWluaW11bSc7XG4gIG1lZGlhbjogJ21lZGlhbic7XG4gIHN0ZGV2OiAnc3RkZXYnO1xuICBzdW06ICdzdW0nO1xuICB2YXJpYW5jZTogJ3ZhcmlhbmNlJztcbiAgLy8gb3JkaW5hbFxuICBtb2RlOiAnbW9kZSc7XG4gIGNvdW50VW5pcXVlOiAnY291bnQgdW5pcXVlJztcbiAgYW55VmFsdWU6ICdhbnlfdmFsdWUnXG59ID0ge1xuICAvLyBkZWZhdWx0XG4gIGNvdW50OiAnY291bnQnLFxuICAvLyBsaW5lYXJcbiAgYXZlcmFnZTogJ2F2ZXJhZ2UnLFxuICBtYXhpbXVtOiAnbWF4aW11bScsXG4gIG1pbmltdW06ICdtaW5pbXVtJyxcbiAgbWVkaWFuOiAnbWVkaWFuJyxcbiAgc3RkZXY6ICdzdGRldicsXG4gIHN1bTogJ3N1bScsXG4gIHZhcmlhbmNlOiAndmFyaWFuY2UnLFxuICAvLyBvcmRpbmFsXG4gIG1vZGU6ICdtb2RlJyxcbiAgY291bnRVbmlxdWU6ICdjb3VudCB1bmlxdWUnLFxuICBhbnlWYWx1ZTogJ2FueV92YWx1ZSdcbn07XG5cbmV4cG9ydCBjb25zdCBGSUVMRF9UWVBFU19BR0dSRUdBVE9SUyA9IHtcbiAgZGF0ZTogbnVsbCxcbiAgZ2VvanNvbjogbnVsbCxcbiAgaW50ZWdlcjogW1xuICAgIEFHR1JFR0FUSU9OX1RZUEVTLmNvdW50LFxuICAgIEFHR1JFR0FUSU9OX1RZUEVTLmF2ZXJhZ2UsXG4gICAgQUdHUkVHQVRJT05fVFlQRVMubWF4aW11bSxcbiAgICBBR0dSRUdBVElPTl9UWVBFUy5taW5pbXVtLFxuICAgIEFHR1JFR0FUSU9OX1RZUEVTLnN0ZGV2LFxuICAgIEFHR1JFR0FUSU9OX1RZUEVTLnN1bSxcbiAgICBBR0dSRUdBVElPTl9UWVBFUy52YXJpYW5jZVxuICBdLFxuICByZWFsOiBbXG4gICAgQUdHUkVHQVRJT05fVFlQRVMuY291bnQsXG4gICAgQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZSxcbiAgICBBR0dSRUdBVElPTl9UWVBFUy5tYXhpbXVtLFxuICAgIEFHR1JFR0FUSU9OX1RZUEVTLm1pbmltdW0sXG4gICAgQUdHUkVHQVRJT05fVFlQRVMuc3RkZXYsXG4gICAgQUdHUkVHQVRJT05fVFlQRVMuc3VtLFxuICAgIEFHR1JFR0FUSU9OX1RZUEVTLnZhcmlhbmNlXG4gIF0sXG4gIHN0cmluZzogW0FHR1JFR0FUSU9OX1RZUEVTLm1vZGUsIEFHR1JFR0FUSU9OX1RZUEVTLmFueVZhbHVlXSxcbiAgdGltZXN0YW1wOiBudWxsLFxuICBwb2ludDogbnVsbFxufTtcblxuZXhwb3J0IGNvbnN0IEZJRUxEX0FHR1JFR0FUT1JTID0gW1xuICB7XG4gICAgaWQ6IEFHR1JFR0FUSU9OX1RZUEVTLmNvdW50LFxuICAgIGRpc3BsYXlOYW1lOiAnQ09VTlQnXG4gIH0sXG4gIHtcbiAgICBpZDogQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZSxcbiAgICBkaXNwbGF5TmFtZTogJ0FWRydcbiAgfSxcbiAge1xuICAgIGlkOiBBR0dSRUdBVElPTl9UWVBFUy5tYXhpbXVtLFxuICAgIGRpc3BsYXlOYW1lOiAnTUFYJ1xuICB9LFxuICB7XG4gICAgaWQ6IEFHR1JFR0FUSU9OX1RZUEVTLm1pbmltdW0sXG4gICAgZGlzcGxheU5hbWU6ICdNSU4nXG4gIH0sXG4gIHtcbiAgICBpZDogQUdHUkVHQVRJT05fVFlQRVMuc3RkZXYsXG4gICAgZGlzcGxheU5hbWU6ICdTVERFVidcbiAgfSxcbiAge1xuICAgIGlkOiBBR0dSRUdBVElPTl9UWVBFUy5zdW0sXG4gICAgZGlzcGxheU5hbWU6ICdTVU0nXG4gIH0sXG4gIHtcbiAgICBpZDogQUdHUkVHQVRJT05fVFlQRVMudmFyaWFuY2UsXG4gICAgZGlzcGxheU5hbWU6ICdWQVJJQU5DRSdcbiAgfSxcbiAge1xuICAgIGlkOiBBR0dSRUdBVElPTl9UWVBFUy5tb2RlLFxuICAgIGRpc3BsYXlOYW1lOiAnTU9ERSdcbiAgfSxcbiAge1xuICAgIGlkOiBBR0dSRUdBVElPTl9UWVBFUy5hbnlWYWx1ZSxcbiAgICBkaXNwbGF5TmFtZTogJ0FOWSBWQUxVRSdcbiAgfVxuXTtcblxuZXhwb3J0IGNvbnN0IGxpbmVhckZpZWxkU2NhbGVGdW5jdGlvbnMgPSB7XG4gIFtDSEFOTkVMX1NDQUxFUy5jb2xvcl06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGUsIFNDQUxFX1RZUEVTLmN1c3RvbV0sXG4gIFtDSEFOTkVMX1NDQUxFUy5yYWRpdXNdOiBbU0NBTEVfVFlQRVMuc3FydF0sXG4gIFtDSEFOTkVMX1NDQUxFUy5zaXplXTogW1NDQUxFX1RZUEVTLmxpbmVhciwgU0NBTEVfVFlQRVMuc3FydCwgU0NBTEVfVFlQRVMubG9nXSxcbiAgW0NIQU5ORUxfU0NBTEVTLmN1c3RvbU1hcmtlcl06IFtTQ0FMRV9UWVBFUy5vcmRpbmFsXSxcbiAgW0NIQU5ORUxfU0NBTEVTLmlkZW50aXR5XTogW11cbn07XG5cbmV4cG9ydCBjb25zdCBsaW5lYXJGaWVsZEFnZ3JTY2FsZUZ1bmN0aW9ucyA9IHtcbiAgW0NIQU5ORUxfU0NBTEVTLmNvbG9yQWdncl06IHtcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMuY291bnRdOiBbU0NBTEVfVFlQRVMuY3VzdG9tXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZV06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGUsIFNDQUxFX1RZUEVTLmN1c3RvbV0sXG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLm1heGltdW1dOiBbU0NBTEVfVFlQRVMucXVhbnRpemUsIFNDQUxFX1RZUEVTLnF1YW50aWxlLCBTQ0FMRV9UWVBFUy5jdXN0b21dLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5taW5pbXVtXTogW1NDQUxFX1RZUEVTLnF1YW50aXplLCBTQ0FMRV9UWVBFUy5xdWFudGlsZSwgU0NBTEVfVFlQRVMuY3VzdG9tXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMubWVkaWFuXTogW1NDQUxFX1RZUEVTLnF1YW50aXplLCBTQ0FMRV9UWVBFUy5xdWFudGlsZSwgU0NBTEVfVFlQRVMuY3VzdG9tXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMuc3RkZXZdOiBbU0NBTEVfVFlQRVMucXVhbnRpemUsIFNDQUxFX1RZUEVTLnF1YW50aWxlLCBTQ0FMRV9UWVBFUy5jdXN0b21dLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5zdW1dOiBbU0NBTEVfVFlQRVMucXVhbnRpemUsIFNDQUxFX1RZUEVTLnF1YW50aWxlLCBTQ0FMRV9UWVBFUy5jdXN0b21dLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy52YXJpYW5jZV06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGUsIFNDQUxFX1RZUEVTLmN1c3RvbV1cbiAgfSxcblxuICBbQ0hBTk5FTF9TQ0FMRVMuc2l6ZUFnZ3JdOiB7XG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLmNvdW50XTogW1NDQUxFX1RZUEVTLmxpbmVhciwgU0NBTEVfVFlQRVMuc3FydCwgU0NBTEVfVFlQRVMubG9nXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMuYXZlcmFnZV06IFtTQ0FMRV9UWVBFUy5saW5lYXIsIFNDQUxFX1RZUEVTLnNxcnQsIFNDQUxFX1RZUEVTLmxvZ10sXG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLm1heGltdW1dOiBbU0NBTEVfVFlQRVMubGluZWFyLCBTQ0FMRV9UWVBFUy5zcXJ0LCBTQ0FMRV9UWVBFUy5sb2ddLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5taW5pbXVtXTogW1NDQUxFX1RZUEVTLmxpbmVhciwgU0NBTEVfVFlQRVMuc3FydCwgU0NBTEVfVFlQRVMubG9nXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMubWVkaWFuXTogW1NDQUxFX1RZUEVTLmxpbmVhciwgU0NBTEVfVFlQRVMuc3FydCwgU0NBTEVfVFlQRVMubG9nXSxcbiAgICBbQUdHUkVHQVRJT05fVFlQRVMuc3RkZXZdOiBbU0NBTEVfVFlQRVMubGluZWFyLCBTQ0FMRV9UWVBFUy5zcXJ0LCBTQ0FMRV9UWVBFUy5sb2ddLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5zdW1dOiBbU0NBTEVfVFlQRVMubGluZWFyLCBTQ0FMRV9UWVBFUy5zcXJ0LCBTQ0FMRV9UWVBFUy5sb2ddLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy52YXJpYW5jZV06IFtTQ0FMRV9UWVBFUy5saW5lYXIsIFNDQUxFX1RZUEVTLnNxcnQsIFNDQUxFX1RZUEVTLmxvZ11cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IG9yZGluYWxGaWVsZFNjYWxlRnVuY3Rpb25zID0ge1xuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JdOiBbU0NBTEVfVFlQRVMub3JkaW5hbF0sXG4gIFtDSEFOTkVMX1NDQUxFUy5yYWRpdXNdOiBbU0NBTEVfVFlQRVMucG9pbnRdLFxuICBbQ0hBTk5FTF9TQ0FMRVMuc2l6ZV06IFtTQ0FMRV9UWVBFUy5wb2ludF0sXG4gIFtDSEFOTkVMX1NDQUxFUy5jdXN0b21NYXJrZXJdOiBbU0NBTEVfVFlQRVMub3JkaW5hbF0sXG4gIFtDSEFOTkVMX1NDQUxFUy5pZGVudGl0eV06IFtdXG59O1xuXG5leHBvcnQgY29uc3Qgb3JkaW5hbEZpZWxkQWdnclNjYWxlRnVuY3Rpb25zID0ge1xuICAvLyBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JBZ2dyXTogW1NDQUxFX1RZUEVTLm9yZGluYWwsIFNDQUxFX1RZUEVTLmxpbmVhcl0sXG4gIFtDSEFOTkVMX1NDQUxFUy5jb2xvckFnZ3JdOiB7XG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLm1vZGVdOiBbU0NBTEVfVFlQRVMub3JkaW5hbF0sXG4gICAgW0FHR1JFR0FUSU9OX1RZUEVTLmFueVZhbHVlXTogW1NDQUxFX1RZUEVTLm9yZGluYWxdLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5jb3VudFVuaXF1ZV06IFtcbiAgICAgIFNDQUxFX1RZUEVTLnF1YW50aXplLFxuICAgICAgU0NBTEVfVFlQRVMucXVhbnRpbGUsXG4gICAgICBTQ0FMRV9UWVBFUy5jdXN0b21cbiAgICBdXG4gIH0sXG5cbiAgW0NIQU5ORUxfU0NBTEVTLnNpemVBZ2dyXToge1xuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5tb2RlXTogW1NDQUxFX1RZUEVTLm9yZGluYWxdLFxuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5hbnlWYWx1ZV06IFtTQ0FMRV9UWVBFUy5vcmRpbmFsXVxuICB9XG59O1xuXG5leHBvcnQgY29uc3Qgbm90U3VwcG9ydGVkU2NhbGVPcHRzID0ge1xuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JdOiBbXSxcbiAgW0NIQU5ORUxfU0NBTEVTLnJhZGl1c106IFtdLFxuICBbQ0hBTk5FTF9TQ0FMRVMuc2l6ZV06IFtdLFxuICBbQ0hBTk5FTF9TQ0FMRVMuY3VzdG9tTWFya2VyXTogW10sXG4gIFtDSEFOTkVMX1NDQUxFUy5pZGVudGl0eV06IFtdXG59O1xuXG5leHBvcnQgY29uc3Qgbm90U3VwcG9ydEFnZ3JPcHRzID0ge1xuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JBZ2dyXToge30sXG4gIFtDSEFOTkVMX1NDQUxFUy5zaXplQWdncl06IHt9XG59O1xuXG4vKipcbiAqIERlZmF1bHQgYWdncmVnYXRpb24gYXJlIGJhc2VkIG9uIG9jdW50XG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0FHR1JFR0FUSU9OID0ge1xuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3JBZ2dyXToge1xuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5jb3VudF06IFtTQ0FMRV9UWVBFUy5xdWFudGl6ZSwgU0NBTEVfVFlQRVMucXVhbnRpbGUsIFNDQUxFX1RZUEVTLmN1c3RvbV1cbiAgfSxcbiAgW0NIQU5ORUxfU0NBTEVTLnNpemVBZ2dyXToge1xuICAgIFtBR0dSRUdBVElPTl9UWVBFUy5jb3VudF06IFtTQ0FMRV9UWVBFUy5saW5lYXIsIFNDQUxFX1RZUEVTLnNxcnQsIFNDQUxFX1RZUEVTLmxvZ11cbiAgfVxufTtcblxuLyoqXG4gKiBEZWZpbmUgd2hhdCB0eXBlIG9mIHNjYWxlIG9wZXJhdGlvbiBpcyBhbGxvd2VkIG9uIGVhY2ggdHlwZSBvZiBmaWVsZHNcbiAqL1xuZXhwb3J0IGNvbnN0IEZJRUxEX09QVFMgPSB7XG4gIHN0cmluZzoge1xuICAgIHR5cGU6ICdjYXRlZ29yaWNhbCcsXG4gICAgc2NhbGU6IHtcbiAgICAgIC4uLm9yZGluYWxGaWVsZFNjYWxlRnVuY3Rpb25zLFxuICAgICAgLi4ub3JkaW5hbEZpZWxkQWdnclNjYWxlRnVuY3Rpb25zXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGxlZ2VuZDogZCA9PiBkLFxuICAgICAgdG9vbHRpcDogW11cbiAgICB9XG4gIH0sXG4gIHJlYWw6IHtcbiAgICB0eXBlOiAnbnVtZXJpY2FsJyxcbiAgICBzY2FsZToge1xuICAgICAgLi4ubGluZWFyRmllbGRTY2FsZUZ1bmN0aW9ucyxcbiAgICAgIC4uLmxpbmVhckZpZWxkQWdnclNjYWxlRnVuY3Rpb25zXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGxlZ2VuZDogZCA9PiBkLFxuICAgICAgdG9vbHRpcDogW1xuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5OT05FLFxuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5ERUNJTUFMLFxuICAgICAgICBUT09MVElQX0ZPUk1BVF9UWVBFUy5QRVJDRU5UQUdFXG4gICAgICBdXG4gICAgfVxuICB9LFxuICB0aW1lc3RhbXA6IHtcbiAgICB0eXBlOiAndGltZScsXG4gICAgc2NhbGU6IHtcbiAgICAgIC4uLmxpbmVhckZpZWxkU2NhbGVGdW5jdGlvbnMsXG4gICAgICAuLi5ub3RTdXBwb3J0QWdnck9wdHNcbiAgICB9LFxuICAgIGZvcm1hdDoge1xuICAgICAgbGVnZW5kOiBkID0+IGQsXG4gICAgICB0b29sdGlwOiBbXG4gICAgICAgIFRPT0xUSVBfRk9STUFUX1RZUEVTLk5PTkUsXG4gICAgICAgIFRPT0xUSVBfRk9STUFUX1RZUEVTLkRBVEUsXG4gICAgICAgIFRPT0xUSVBfRk9STUFUX1RZUEVTLkRBVEVfVElNRVxuICAgICAgXVxuICAgIH1cbiAgfSxcbiAgaW50ZWdlcjoge1xuICAgIHR5cGU6ICdudW1lcmljYWwnLFxuICAgIHNjYWxlOiB7XG4gICAgICAuLi5saW5lYXJGaWVsZFNjYWxlRnVuY3Rpb25zLFxuICAgICAgLi4ubGluZWFyRmllbGRBZ2dyU2NhbGVGdW5jdGlvbnNcbiAgICB9LFxuICAgIGZvcm1hdDoge1xuICAgICAgbGVnZW5kOiBkID0+IGQsXG4gICAgICB0b29sdGlwOiBbXG4gICAgICAgIFRPT0xUSVBfRk9STUFUX1RZUEVTLk5PTkUsXG4gICAgICAgIFRPT0xUSVBfRk9STUFUX1RZUEVTLkRFQ0lNQUwsXG4gICAgICAgIFRPT0xUSVBfRk9STUFUX1RZUEVTLlBFUkNFTlRBR0VcbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIGJvb2xlYW46IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgc2NhbGU6IHtcbiAgICAgIC4uLm9yZGluYWxGaWVsZFNjYWxlRnVuY3Rpb25zLFxuICAgICAgLi4ub3JkaW5hbEZpZWxkQWdnclNjYWxlRnVuY3Rpb25zXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGxlZ2VuZDogZCA9PiBkLFxuICAgICAgdG9vbHRpcDogW1RPT0xUSVBfRk9STUFUX1RZUEVTLk5PTkUsIFRPT0xUSVBfRk9STUFUX1RZUEVTLkJPT0xFQU5dXG4gICAgfVxuICB9LFxuICBkYXRlOiB7XG4gICAgc2NhbGU6IHtcbiAgICAgIC4uLm9yZGluYWxGaWVsZFNjYWxlRnVuY3Rpb25zLFxuICAgICAgLi4ub3JkaW5hbEZpZWxkQWdnclNjYWxlRnVuY3Rpb25zXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGxlZ2VuZDogZCA9PiBkLFxuICAgICAgdG9vbHRpcDogW1RPT0xUSVBfRk9STUFUX1RZUEVTLk5PTkUsIFRPT0xUSVBfRk9STUFUX1RZUEVTLkRBVEVdXG4gICAgfVxuICB9LFxuICBnZW9qc29uOiB7XG4gICAgdHlwZTogJ2dlb21ldHJ5JyxcbiAgICBzY2FsZToge1xuICAgICAgLi4ubm90U3VwcG9ydGVkU2NhbGVPcHRzLFxuICAgICAgLi4ubm90U3VwcG9ydEFnZ3JPcHRzXG4gICAgfSxcbiAgICBmb3JtYXQ6IHtcbiAgICAgIGxlZ2VuZDogZCA9PiAnLi4uJyxcbiAgICAgIHRvb2x0aXA6IFtdXG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgQ0hBTk5FTF9TQ0FMRV9TVVBQT1JURURfRklFTERTID0gT2JqZWN0LmtleXMoQ0hBTk5FTF9TQ0FMRVMpLnJlZHVjZShcbiAgKGFjY3UsIGtleSkgPT4gKHtcbiAgICAuLi5hY2N1LFxuICAgIFtrZXldOiBPYmplY3Qua2V5cyhGSUVMRF9PUFRTKS5maWx0ZXIoZnQgPT4gT2JqZWN0LmtleXMoRklFTERfT1BUU1tmdF0uc2NhbGVba2V5XSkubGVuZ3RoKVxuICB9KSxcbiAge31cbik7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBWUVSX0NPTE9SID0ge1xuICB0cmlwQXJjOiAnIzkyMjZDNicsXG4gIGJlZ2ludHJpcF9sYXQ6ICcjMUU5NkJFJyxcbiAgZHJvcG9mZl9sYXQ6ICcjRkY5OTFGJyxcbiAgcmVxdWVzdF9sYXQ6ICcjNTJBMzUzJ1xufTtcblxuLy8gbGV0IHVzZXIgcGFzcyBpbiBkZWZhdWx0IHRvb2x0aXAgZmllbGRzXG5leHBvcnQgY29uc3QgREVGQVVMVF9UT09MVElQX0ZJRUxEUzogYW55W10gPSBbXTtcblxuZXhwb3J0IGNvbnN0IE5PX1ZBTFVFX0NPTE9SOiBDb2xvciA9IFswLCAwLCAwLCAwXTtcbmV4cG9ydCBjb25zdCBVTktOT1dOX0NPTE9SOiBDb2xvciA9IFsxMzQsIDE0MSwgMTQ1XTtcblxuZXhwb3J0IGNvbnN0IExBWUVSX0JMRU5ESU5HUyA9IHtcbiAgYWRkaXRpdmU6IHtcbiAgICBsYWJlbDogJ2xheWVyQmxlbmRpbmcuYWRkaXRpdmUnLFxuICAgIGJsZW5kRnVuYzogWydTUkNfQUxQSEEnLCAnRFNUX0FMUEhBJ10sXG4gICAgYmxlbmRFcXVhdGlvbjogJ0ZVTkNfQUREJ1xuICB9LFxuICBub3JtYWw6IHtcbiAgICAvLyByZWZlcmVuY2UgdG9cbiAgICAvLyBodHRwczovL2xpbW51LmNvbS93ZWJnbC1ibGVuZGluZy15b3VyZS1wcm9iYWJseS13cm9uZy9cbiAgICBsYWJlbDogJ2xheWVyQmxlbmRpbmcubm9ybWFsJyxcbiAgICBibGVuZEZ1bmM6IFsnU1JDX0FMUEhBJywgJ09ORV9NSU5VU19TUkNfQUxQSEEnLCAnT05FJywgJ09ORV9NSU5VU19TUkNfQUxQSEEnXSxcbiAgICBibGVuZEVxdWF0aW9uOiBbJ0ZVTkNfQUREJywgJ0ZVTkNfQUREJ11cbiAgfSxcbiAgc3VidHJhY3RpdmU6IHtcbiAgICBsYWJlbDogJ2xheWVyQmxlbmRpbmcuc3VidHJhY3RpdmUnLFxuICAgIGJsZW5kRnVuYzogWydPTkUnLCAnT05FX01JTlVTX0RTVF9DT0xPUicsICdTUkNfQUxQSEEnLCAnRFNUX0FMUEhBJ10sXG4gICAgYmxlbmRFcXVhdGlvbjogWydGVU5DX1NVQlRSQUNUJywgJ0ZVTkNfQUREJ11cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IE1BWF9ERUZBVUxUX1RPT0xUSVBTID0gNTtcblxuZXhwb3J0IGNvbnN0IFJFU09MVVRJT05TID0ga2V5TWlycm9yKHtcbiAgT05FX1g6IG51bGwsXG4gIFRXT19YOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IEVYUE9SVF9JTUdfUkFUSU9TID0ga2V5TWlycm9yKHtcbiAgU0NSRUVOOiBudWxsLFxuICBGT1VSX0JZX1RIUkVFOiBudWxsLFxuICBTSVhURUVOX0JZX05JTkU6IG51bGwsXG4gIENVU1RPTTogbnVsbFxufSk7XG5cbmV4cG9ydCB0eXBlIEltYWdlUmF0aW9PcHRpb24gPSB7XG4gIGlkOiBrZXlvZiB0eXBlb2YgRVhQT1JUX0lNR19SQVRJT1M7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIGdldFNpemU6IChzY3JlZW5XOiBudW1iZXIsIHNjcmVlbkg6IG51bWJlcikgPT4ge3dpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyfTtcbn07XG5cbmV4cG9ydCBjb25zdCBTY3JlZW5SYXRpb09wdGlvbjogSW1hZ2VSYXRpb09wdGlvbiA9IHtcbiAgaWQ6IEVYUE9SVF9JTUdfUkFUSU9TLlNDUkVFTixcbiAgbGFiZWw6ICdtb2RhbC5leHBvcnRJbWFnZS5yYXRpb09yaWdpbmFsU2NyZWVuJyxcbiAgZ2V0U2l6ZTogKHNjcmVlblcsIHNjcmVlbkgpID0+ICh7d2lkdGg6IHNjcmVlblcsIGhlaWdodDogc2NyZWVuSH0pXG59O1xuZXhwb3J0IGNvbnN0IEN1c3RvbVJhdGlvT3B0aW9uOiBJbWFnZVJhdGlvT3B0aW9uID0ge1xuICBpZDogRVhQT1JUX0lNR19SQVRJT1MuQ1VTVE9NLFxuICBoaWRkZW46IHRydWUsXG4gIGxhYmVsOiAnbW9kYWwuZXhwb3J0SW1hZ2UucmF0aW9DdXN0b20nLFxuICBnZXRTaXplOiAobWFwVywgbWFwSCkgPT4gKHt3aWR0aDogbWFwVywgaGVpZ2h0OiBtYXBIfSlcbn07XG5leHBvcnQgY29uc3QgRm91ckJ5VGhyZWVSYXRpb09wdGlvbjogSW1hZ2VSYXRpb09wdGlvbiA9IHtcbiAgaWQ6IEVYUE9SVF9JTUdfUkFUSU9TLkZPVVJfQllfVEhSRUUsXG4gIGxhYmVsOiAnbW9kYWwuZXhwb3J0SW1hZ2UucmF0aW80XzMnLFxuICBnZXRTaXplOiAoc2NyZWVuVywgc2NyZWVuSCkgPT4gKHtcbiAgICB3aWR0aDogc2NyZWVuVyxcbiAgICBoZWlnaHQ6IE1hdGgucm91bmQoc2NyZWVuVyAqIDAuNzUpXG4gIH0pXG59O1xuZXhwb3J0IGNvbnN0IFNpeHRlZW5CeU5pbmVSYXRpb09wdGlvbjogSW1hZ2VSYXRpb09wdGlvbiA9IHtcbiAgaWQ6IEVYUE9SVF9JTUdfUkFUSU9TLlNJWFRFRU5fQllfTklORSxcbiAgbGFiZWw6ICdtb2RhbC5leHBvcnRJbWFnZS5yYXRpbzE2XzknLFxuICBnZXRTaXplOiAoc2NyZWVuVywgc2NyZWVuSCkgPT4gKHtcbiAgICB3aWR0aDogc2NyZWVuVyxcbiAgICBoZWlnaHQ6IE1hdGgucm91bmQoc2NyZWVuVyAqIDAuNTYyNSlcbiAgfSlcbn07XG5cbmV4cG9ydCBjb25zdCBFWFBPUlRfSU1HX1JBVElPX09QVElPTlM6IFJlYWRvbmx5QXJyYXk8SW1hZ2VSYXRpb09wdGlvbj4gPSBbXG4gIFNjcmVlblJhdGlvT3B0aW9uLFxuICBDdXN0b21SYXRpb09wdGlvbixcbiAgRm91ckJ5VGhyZWVSYXRpb09wdGlvbixcbiAgU2l4dGVlbkJ5TmluZVJhdGlvT3B0aW9uXG5dO1xuXG5leHBvcnQgdHlwZSBJbWFnZVJlc29sdXRpb25PcHRpb24gPSB7XG4gIGlkOiBrZXlvZiB0eXBlb2YgUkVTT0xVVElPTlM7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGF2YWlsYWJsZTogYm9vbGVhbjtcbiAgc2NhbGU6IG51bWJlcjtcbiAgZ2V0U2l6ZTogKHNjcmVlblc6IG51bWJlciwgc2NyZWVuSDogbnVtYmVyKSA9PiB7d2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXJ9O1xufTtcblxuZXhwb3J0IGNvbnN0IE9uZVhSZXNvbHV0aW9uT3B0aW9uOiBJbWFnZVJlc29sdXRpb25PcHRpb24gPSB7XG4gIGlkOiBSRVNPTFVUSU9OUy5PTkVfWCxcbiAgbGFiZWw6ICcxeCcsXG4gIGF2YWlsYWJsZTogdHJ1ZSxcbiAgc2NhbGU6IDEsXG4gIGdldFNpemU6IChzY3JlZW5XLCBzY3JlZW5IKSA9PiAoe1xuICAgIHdpZHRoOiBzY3JlZW5XLFxuICAgIGhlaWdodDogc2NyZWVuSFxuICB9KVxufTtcblxuZXhwb3J0IGNvbnN0IFR3b1hSZXNvbHV0aW9uT3B0aW9uOiBJbWFnZVJlc29sdXRpb25PcHRpb24gPSB7XG4gIGlkOiBSRVNPTFVUSU9OUy5UV09fWCxcbiAgbGFiZWw6ICcyeCcsXG4gIGF2YWlsYWJsZTogdHJ1ZSxcbiAgc2NhbGU6IDIsXG4gIGdldFNpemU6IChzY3JlZW5XLCBzY3JlZW5IKSA9PiAoe1xuICAgIHdpZHRoOiBzY3JlZW5XICogMixcbiAgICBoZWlnaHQ6IHNjcmVlbkggKiAyXG4gIH0pXG59O1xuXG5leHBvcnQgY29uc3QgRVhQT1JUX0lNR19SRVNPTFVUSU9OX09QVElPTlM6IFJlYWRvbmx5QXJyYXk8SW1hZ2VSZXNvbHV0aW9uT3B0aW9uPiA9IFtcbiAgT25lWFJlc29sdXRpb25PcHRpb24sXG4gIFR3b1hSZXNvbHV0aW9uT3B0aW9uXG5dO1xuXG5leHBvcnQgY29uc3QgRVhQT1JUX0RBVEFfVFlQRSA9IGtleU1pcnJvcih7XG4gIENTVjogbnVsbFxuICAvLyBTSEFQRUZJTEU6IG51bGwsXG4gIC8vIEpTT046IG51bGwsXG4gIC8vIEdFT0pTT046IG51bGwsXG4gIC8vIFRPUE9KU09OOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IEVYUE9SVF9EQVRBX1RZUEVfT1BUSU9OUyA9IFtcbiAge1xuICAgIGlkOiBFWFBPUlRfREFUQV9UWVBFLkNTVixcbiAgICBsYWJlbDogRVhQT1JUX0RBVEFfVFlQRS5DU1YudG9Mb3dlckNhc2UoKSxcbiAgICBhdmFpbGFibGU6IHRydWVcbiAgfVxuICAvLyB7XG4gIC8vICAgaWQ6IEVYUE9SVF9EQVRBX1RZUEUuU0hBUEVGSUxFLFxuICAvLyAgIGxhYmVsOiAnc2hhcGVmaWxlJyxcbiAgLy8gICBhdmFpbGFibGU6IGZhbHNlXG4gIC8vIH0sXG4gIC8vIHtcbiAgLy8gICBpZDogRVhQT1JUX0RBVEFfVFlQRS5KU09OLFxuICAvLyAgIGxhYmVsOiAnanNvbicsXG4gIC8vICAgYXZhaWxhYmxlOiBmYWxzZVxuICAvLyB9LFxuICAvLyB7XG4gIC8vICAgaWQ6IEVYUE9SVF9EQVRBX1RZUEUuR0VPSlNPTixcbiAgLy8gICBsYWJlbDogJ2dlb2pzb24nLFxuICAvLyAgIGF2YWlsYWJsZTogZmFsc2VcbiAgLy8gfSxcbiAgLy8ge1xuICAvLyAgIGlkOiBFWFBPUlRfREFUQV9UWVBFLlRPUE9KU09OLFxuICAvLyAgIGxhYmVsOiAndG9wb2pzb24nLFxuICAvLyAgIGF2YWlsYWJsZTogZmFsc2VcbiAgLy8gfVxuXTtcblxuLy8gRXhwb3J0IG1hcCB0eXBlc1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9NQVBfRk9STUFUUyA9IGtleU1pcnJvcih7XG4gIEhUTUw6IG51bGwsXG4gIEpTT046IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgRVhQT1JUX0hUTUxfTUFQX01PREVTID0ga2V5TWlycm9yKHtcbiAgUkVBRDogbnVsbCxcbiAgRURJVDogbnVsbFxufSk7XG5cbi8vIEV4cG9ydCBtYXAgb3B0aW9uc1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9NQVBfRk9STUFUX09QVElPTlMgPSBPYmplY3QuZW50cmllcyhFWFBPUlRfTUFQX0ZPUk1BVFMpLm1hcChcbiAgKGVudHJ5OiBbc3RyaW5nLCBhbnldKSA9PiAoe1xuICAgIGlkOiBlbnRyeVswXSxcbiAgICBsYWJlbDogZW50cnlbMV0udG9Mb3dlckNhc2UoKSxcbiAgICBhdmFpbGFibGU6IHRydWVcbiAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBFWFBPUlRfSFRNTF9NQVBfTU9ERV9PUFRJT05TID0gT2JqZWN0LmVudHJpZXMoRVhQT1JUX0hUTUxfTUFQX01PREVTKS5tYXAoXG4gIChlbnRyeTogW3N0cmluZywgYW55XSkgPT4gKHtcbiAgICBpZDogZW50cnlbMF0sXG4gICAgbGFiZWw6IGBtb2RhbC5leHBvcnRNYXAuaHRtbC4ke2VudHJ5WzFdLnRvTG93ZXJDYXNlKCl9YCxcbiAgICBhdmFpbGFibGU6IHRydWUsXG4gICAgdXJsOiBnZXRIVE1MTWFwTW9kZVRpbGVVcmwoZW50cnlbMV0pXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9VVUlEX0NPVU5UID0gNjtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTk9USUZJQ0FUSU9OX01FU1NBR0UgPSAnTUVTU0FHRV9OT1RfUFJPVklERUQnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9OT1RJRklDQVRJT05fVFlQRVMgPSBrZXlNaXJyb3Ioe1xuICBpbmZvOiBudWxsLFxuICBlcnJvcjogbnVsbCxcbiAgd2FybmluZzogbnVsbCxcbiAgc3VjY2VzczogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX05PVElGSUNBVElPTl9UT1BJQ1MgPSBrZXlNaXJyb3Ioe1xuICBnbG9iYWw6IG51bGwsXG4gIGZpbGU6IG51bGxcbn0pO1xuXG4vLyBNaW5pbXVtIHRpbWUgYmV0d2VlbiBpZGVudGljYWwgbm90aWZpY2F0aW9ucyBhYm91dCBkZWNrLmdsIGVycm9yc1xuZXhwb3J0IGNvbnN0IFRIUk9UVExFX05PVElGSUNBVElPTl9USU1FID0gMjUwMDtcblxuLy8gQW5pbWF0aW9uXG5leHBvcnQgY29uc3QgQkFTRV9TUEVFRCA9IDYwMDtcbmV4cG9ydCBjb25zdCBGUFMgPSA2MDtcblxuLyoqXG4gKiA0IEFuaW1hdGlvbiBXaW5kb3cgVHlwZXNcbiAqIDEuIGZyZWVcbiAqICB8LT4gIHwtPlxuICogQ3VycmVudCB0aW1lIGlzIGEgZml4ZWQgcmFuZ2UsIGFuaW1hdGlvbiBjb250cm9sbGVyIGNhbGxzIG5leHQgYW5pbWF0aW9uIGZyYW1lcyBjb250aW51b3VzbHkgdG8gYW5pbWF0aW9uIGEgbW92aW5nIHdpbmRvd1xuICogVGhlIGluY3JlbWVudCBpZCBiYXNlZCBvbiBkb21haW4gLyBCQVNFX1NQRUVEICogU1BFRURcbiAqXG4gKiAyLiBpbmNyZW1lbnRhbFxuICogfCAgICB8LT5cbiAqIFNhbWUgYXMgZnJlZSwgY3VycmVudCB0aW1lIGlzIGEgZ3Jvd2luZyByYW5nZSwgb25seSB0aGUgbWF4IHZhbHVlIG9mIHJhbmdlIGluY3JlbWVudCBkdXJpbmcgYW5pbWF0aW9uLlxuICogVGhlIGluY3JlbWVudCBpcyBhbHNvIGJhc2VkIG9uIGRvbWFpbiAvIEJBU0VfU1BFRUQgKiBTUEVFRFxuICpcbiAqIDMuIHBvaW50XG4gKiBvIC0+IG9cbiAqIEN1cnJlbnQgdGltZSBpcyBhIHBvaW50LCBhbmltYXRpb24gY29udHJvbGxlciBjYWxscyBuZXh0IGFuaW1hdGlvbiBmcmFtZSBjb250aW51b3VzbHkgdG8gYW5pbWF0aW9uIGEgbW92aW5nIHBvaW50XG4gKiBUaGUgaW5jcmVtZW50IGlzIGJhc2VkIG9uIGRvbWFpbiAvIEJBU0VfU1BFRUQgKiBTUEVFRFxuICpcbiAqIDQuIGludGVydmFsXG4gKiBvIH4+IG9cbiAqIEN1cnJlbnQgdGltZSBpcyBhIHBvaW50LiBBbiBhcnJheSBvZiBzb3J0ZWQgdGltZSBzdGVwcyBuZWVkIHRvIGJlIHByb3ZpZGVkLlxuICogYW5pbWF0aW9uIGNvbnRyb2xsZXIgY2FsbHMgbmV4dCBhbmltYXRpb24gYXQgYSBpbnRlcnZhbCB3aGVuIHRoZSBwb2ludCBqdW1wcyB0byB0aGUgbmV4dCBzdGVwXG4gKi9cbmV4cG9ydCBjb25zdCBBTklNQVRJT05fV0lORE9XID0ga2V5TWlycm9yKHtcbiAgZnJlZTogbnVsbCxcbiAgaW5jcmVtZW50YWw6IG51bGwsXG4gIHBvaW50OiBudWxsLFxuICBpbnRlcnZhbDogbnVsbFxufSk7XG5leHBvcnQgY29uc3QgREVGQVVMVF9USU1FX0ZPUk1BVCA9ICdNTS9ERC9ZWSBISDptbTpzc2EnO1xuZXhwb3J0IGNvbnN0IFNQRUVEX0NPTlRST0xfUkFOR0U6IFtudW1iZXIsIG51bWJlcl0gPSBbMCwgMTBdO1xuZXhwb3J0IGNvbnN0IFNQRUVEX0NPTlRST0xfU1RFUCA9IDAuMDAxO1xuXG4vLyBHZW9jb2RlclxuZXhwb3J0IGNvbnN0IEdFT0NPREVSX0RBVEFTRVRfTkFNRSA9ICdnZW9jb2Rlcl9kYXRhc2V0JztcbmV4cG9ydCBjb25zdCBHRU9DT0RFUl9MQVlFUl9JRCA9ICdnZW9jb2Rlcl9sYXllcic7XG5leHBvcnQgY29uc3QgR0VPQ09ERVJfR0VPX09GRlNFVCA9IDAuMDU7XG5leHBvcnQgY29uc3QgR0VPQ09ERVJfSUNPTl9DT0xPUjogW251bWJlciwgbnVtYmVyLCBudW1iZXJdID0gWzI1NSwgMCwgMF07XG5leHBvcnQgY29uc3QgR0VPQ09ERVJfSUNPTl9TSVpFID0gODA7XG5cbi8vIFdlIGNvdWxkIHVzZSBkaXJlY3RseSByZWFjdC1tYXAtZ2wtZHJhdyBFZGl0b3JNb2RlIGJ1dCB0aGlzIHdvdWxkXG4vLyBjcmVhdGUgYSBkaXJlY3QgZGVwZW5kZW5jeSB3aXRoIHJlYWN0LW1hcC1nbC1kcmF3XG4vLyBDcmVhdGVkIHRoaXMgbWFwIHRvIGJlIGluZGVwZW5kZW50IGZyb20gcmVhY3QtbWFwLWdsLWRyYXdcbmV4cG9ydCBjb25zdCBFRElUT1JfTU9ERVMgPSB7XG4gIFJFQURfT05MWTogRWRpdG9yTW9kZXMuUkVBRF9PTkxZLFxuICBEUkFXX1BPTFlHT046IEVkaXRvck1vZGVzLkRSQVdfUE9MWUdPTixcbiAgRFJBV19SRUNUQU5HTEU6IEVkaXRvck1vZGVzLkRSQVdfUkVDVEFOR0xFLFxuICBFRElUOiBFZGl0b3JNb2Rlcy5FRElUX1ZFUlRFWFxufTtcblxuZXhwb3J0IGNvbnN0IEVESVRPUl9BVkFJTEFCTEVfTEFZRVJTOiBzdHJpbmdbXSA9IFtcbiAgTEFZRVJfVFlQRVMucG9pbnQsXG4gIExBWUVSX1RZUEVTLmhleGFnb24sXG4gIExBWUVSX1RZUEVTLmFyYyxcbiAgTEFZRVJfVFlQRVMubGluZSxcbiAgTEFZRVJfVFlQRVMuaGV4YWdvbklkXG5dO1xuLy8gR1BVIEZpbHRlcmluZ1xuLyoqXG4gKiBNYXggbnVtYmVyIG9mIGZpbHRlciB2YWx1ZSBidWZmZXJzIHRoYXQgZGVjay5nbCBwcm92aWRlc1xuICovXG5leHBvcnQgY29uc3QgTUFYX0dQVV9GSUxURVJTID0gNDtcbmV4cG9ydCBjb25zdCBNQVBfVEhVTUJOQUlMX0RJTUVOU0lPTiA9IHtcbiAgd2lkdGg6IDMwMCxcbiAgaGVpZ2h0OiAyMDBcbn07XG5cbmV4cG9ydCBjb25zdCBNQVBfSU5GT19DSEFSQUNURVIgPSB7XG4gIHRpdGxlOiAxMDAsXG4gIGRlc2NyaXB0aW9uOiAxMDBcbn07XG5cbi8vIExvYWQgZGF0YVxuZXhwb3J0IGNvbnN0IExPQURJTkdfTUVUSE9EUyA9IGtleU1pcnJvcih7XG4gIHVwbG9hZDogbnVsbCxcbiAgc3RvcmFnZTogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBEQVRBU0VUX0ZPUk1BVFMgPSBrZXlNaXJyb3Ioe1xuICByb3c6IG51bGwsXG4gIGdlb2pzb246IG51bGwsXG4gIGNzdjogbnVsbCxcbiAga2VwbGVyZ2w6IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgTUFQX0NPTlRST0xTID0ga2V5TWlycm9yKHtcbiAgdmlzaWJsZUxheWVyczogbnVsbCxcbiAgbWFwTGVnZW5kOiBudWxsLFxuICB0b2dnbGUzZDogbnVsbCxcbiAgc3BsaXRNYXA6IG51bGwsXG4gIG1hcERyYXc6IG51bGwsXG4gIG1hcExvY2FsZTogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBNQVNLX0xBWUVSX0lEID0gJ21hc2tfbGF5ZXInO1xuXG5leHBvcnQgY29uc3QgWk9PTV9MRVZFTF9MSU1JVFMgPSB7XG4gIG1pbjogMCxcbiAgbWF4OiAyMVxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFvQkEsSUFBQUEsVUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZUFBQSxHQUFBRCxPQUFBO0FBR0EsSUFBQUUsUUFBQSxHQUFBRixPQUFBO0FBVUEsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBV0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssYUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sUUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sTUFBQSxHQUFBUCxPQUFBO0FBQXlDLFNBQUFRLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFB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QUFXLENBQUNHO0FBQ3BCLENBQUM7QUFFTSxJQUFNQyx1QkFBaUMsR0FBQWpSLE9BQUEsQ0FBQWlSLHVCQUFBLEdBQUcsQ0FDL0NDLGtCQUFXLENBQUMvTCxLQUFLLEVBQ2pCK0wsa0JBQVcsQ0FBQ0MsT0FBTyxFQUNuQkQsa0JBQVcsQ0FBQ0UsR0FBRyxFQUNmRixrQkFBVyxDQUFDRyxJQUFJLEVBQ2hCSCxrQkFBVyxDQUFDSSxTQUFTLENBQ3RCO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDTyxJQUFNQyxlQUFlLEdBQUF2UixPQUFBLENBQUF1UixlQUFBLEdBQUcsQ0FBQztBQUN6QixJQUFNQyx1QkFBdUIsR0FBQXhSLE9BQUEsQ0FBQXdSLHVCQUFBLEdBQUc7RUFDckNwUSxLQUFLLEVBQUUsR0FBRztFQUNWZ00sTUFBTSxFQUFFO0FBQ1YsQ0FBQztBQUVNLElBQU1xRSxrQkFBa0IsR0FBQXpSLE9BQUEsQ0FBQXlSLGtCQUFBLEdBQUc7RUFDaENDLEtBQUssRUFBRSxHQUFHO0VBQ1ZDLFdBQVcsRUFBRTtBQUNmLENBQUM7O0FBRUQ7QUFDTyxJQUFNQyxlQUFlLEdBQUE1UixPQUFBLENBQUE0UixlQUFBLEdBQUcsSUFBQTVQLHFCQUFTLEVBQUM7RUFDdkM2UCxNQUFNLEVBQUUsSUFBSTtFQUNaQyxPQUFPLEVBQUU7QUFDWCxDQUFDLENBQUM7QUFFSyxJQUFNQyxlQUFlLEdBQUEvUixPQUFBLENBQUErUixlQUFBLEdBQUcsSUFBQS9QLHFCQUFTLEVBQUM7RUFDdkNnUSxHQUFHLEVBQUUsSUFBSTtFQUNUbk8sT0FBTyxFQUFFLElBQUk7RUFDYm9PLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLFFBQVEsRUFBRTtBQUNaLENBQUMsQ0FBQztBQUVLLElBQU1DLFlBQVksR0FBQW5TLE9BQUEsQ0FBQW1TLFlBQUEsR0FBRyxJQUFBblEscUJBQVMsRUFBQztFQUNwQ29RLGFBQWEsRUFBRSxJQUFJO0VBQ25CdlEsU0FBUyxFQUFFLElBQUk7RUFDZndRLFFBQVEsRUFBRSxJQUFJO0VBQ2RDLFFBQVEsRUFBRSxJQUFJO0VBQ2RDLE9BQU8sRUFBRSxJQUFJO0VBQ2JDLFNBQVMsRUFBRTtBQUNiLENBQUMsQ0FBQztBQUVLLElBQU1DLGFBQWEsR0FBQXpTLE9BQUEsQ0FBQXlTLGFBQUEsR0FBRyxZQUFZO0FBRWxDLElBQU1DLGlCQUFpQixHQUFBMVMsT0FBQSxDQUFBMFMsaUJBQUEsR0FBRztFQUMvQkMsR0FBRyxFQUFFLENBQUM7RUFDTkMsR0FBRyxFQUFFO0FBQ1AsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1,3 +1,4 @@
1
+ /// <reference types="h3-js" />
1
2
  import Layer, { LayerBaseConfig, LayerColorConfig, LayerColumn, LayerCoverageConfig, LayerSizeConfig } from '../base-layer';
2
3
  import { GeoJsonLayer } from '@deck.gl/layers';
3
4
  import { H3HexagonLayer } from '@deck.gl/geo-layers';
@@ -155,7 +156,7 @@ export default class HexagonIdLayer extends Layer {
155
156
  renderLayer(opts: any): (H3HexagonLayer<any, {}> | GeoJsonLayer<any, {
156
157
  data: {
157
158
  geometry: {
158
- coordinates: number[][];
159
+ coordinates: import("h3-js").CoordPair[];
159
160
  type: string;
160
161
  };
161
162
  properties: any;
@@ -212,7 +212,7 @@ var HexagonIdLayer = exports["default"] = /*#__PURE__*/function (_Layer) {
212
212
  return getHexId({
213
213
  index: index
214
214
  });
215
- }).filter(_h3Utils.h3IsValid);
215
+ }).filter(_h3Utils.isValidCell);
216
216
 
217
217
  // save a reference of centroids to dataToFeature
218
218
  // so we don't have to re calculate it again
@@ -318,4 +318,4 @@ var HexagonIdLayer = exports["default"] = /*#__PURE__*/function (_Layer) {
318
318
  }
319
319
  }]);
320
320
  }(_baseLayer["default"]);
321
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYmFzZUxheWVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGF0YXNldFV0aWxzIiwiX2xheWVycyIsIl9nZW9MYXllcnMiLCJfZW5oYW5jZWRDb2x1bW5MYXllciIsIl9oM1V0aWxzIiwiX2gzSGV4YWdvbkxheWVySWNvbiIsIl9kZWZhdWx0U2V0dGluZ3MiLCJfZGF0YVV0aWxzIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsImNhbGwiLCJfc3VwZXJQcm9wR2V0IiwicCIsIl9nZXQyIiwiREVGQVVMVF9MSU5FX1NDQUxFX1ZBTFVFIiwiaGV4SWRSZXF1aXJlZENvbHVtbnMiLCJleHBvcnRzIiwiaGV4SWRBY2Nlc3NvciIsIl9yZWYiLCJoZXhfaWQiLCJkYyIsImQiLCJ2YWx1ZUF0IiwiaW5kZXgiLCJmaWVsZElkeCIsImRlZmF1bHRFbGV2YXRpb24iLCJkZWZhdWx0Q292ZXJhZ2UiLCJIZXhhZ29uSWRWaXNDb25maWdzIiwib3BhY2l0eSIsImNvbG9yUmFuZ2UiLCJjb3ZlcmFnZSIsImVuYWJsZTNkIiwic2l6ZVJhbmdlIiwiY292ZXJhZ2VSYW5nZSIsImVsZXZhdGlvblNjYWxlIiwiZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvciIsIkhleGFnb25JZExheWVyIiwiX0xheWVyIiwicHJvcHMiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJkYXRhVG9GZWF0dXJlIiwiY2VudHJvaWRzIiwicmVnaXN0ZXJWaXNDb25maWciLCJnZXRQb3NpdGlvbkFjY2Vzc29yIiwiZGF0YUNvbnRhaW5lciIsImNvbmZpZyIsImNvbHVtbnMiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsImdldCIsIkgzSGV4YWdvbkxheWVySWNvbiIsInZpc3VhbENoYW5uZWxzIiwiY29sb3IiLCJhY2Nlc3NvciIsInNpemUiLCJwcm9wZXJ0eSIsIm51bGxWYWx1ZSIsImNvbmRpdGlvbiIsInZpc0NvbmZpZyIsImRlZmF1bHRWYWx1ZSIsImZpZWxkIiwic2NhbGUiLCJkb21haW4iLCJyYW5nZSIsImNoYW5uZWxTY2FsZVR5cGUiLCJDSEFOTkVMX1NDQUxFUyIsInJhZGl1cyIsInZhbHVlIiwic2V0SW5pdGlhbExheWVyQ29uZmlnIiwiZGF0YXNldCIsImRlZmF1bHRDb2xvckZpZWxkIiwiZmluZERlZmF1bHRDb2xvckZpZWxkIiwidXBkYXRlTGF5ZXJDb25maWciLCJjb2xvckZpZWxkIiwidXBkYXRlTGF5ZXJWaXN1YWxDaGFubmVsIiwiZ2V0RGVmYXVsdExheWVyQ29uZmlnIiwidW5kZWZpbmVkIiwiY292ZXJhZ2VGaWVsZCIsImNvdmVyYWdlRG9tYWluIiwiY292ZXJhZ2VTY2FsZSIsImNhbGN1bGF0ZURhdGFBdHRyaWJ1dGUiLCJfcmVmMiIsImdldEhleElkIiwiZmlsdGVyZWRJbmRleCIsImRhdGEiLCJpIiwiaWQiLCJjZW50cm9pZCIsImZvcm1hdExheWVyRGF0YSIsImRhdGFzZXRzIiwib2xkTGF5ZXJEYXRhIiwib3B0IiwiZGF0YUlkIiwiX2RhdGFzZXRzJHRoaXMkY29uZmlnIiwiZ3B1RmlsdGVyIiwiX3RoaXMkdXBkYXRlRGF0YSIsInVwZGF0ZURhdGEiLCJhY2Nlc3NvcnMiLCJnZXRBdHRyaWJ1dGVBY2Nlc3NvcnMiLCJnZXRGaWx0ZXJWYWx1ZSIsImZpbHRlclZhbHVlQWNjZXNzb3IiLCJ1cGRhdGVMYXllck1ldGEiLCJ2YWxpZEhleGFnb25JZHMiLCJtYXAiLCJoM0lzVmFsaWQiLCJnZXRDZW50cm9pZCIsInZlcnRpY2VzIiwiZ2V0VmVydGljZXMiLCJmbGF0IiwibGF0Qm91bmRzIiwiZ2V0TGF0TG5nQm91bmRzIiwibG5nQm91bmRzIiwiYm91bmRzIiwidXBkYXRlTWV0YSIsInJlbmRlckxheWVyIiwib3B0cyIsIm9iamVjdEhvdmVyZWQiLCJ1cGRhdGVUcmlnZ2VycyIsImdldFZpc3VhbENoYW5uZWxVcGRhdGVUcmlnZ2VycyIsImgzSGV4YWdvbkxheWVyVHJpZ2dlcnMiLCJnZXRIZXhhZ29uIiwiZ2V0RmlsbENvbG9yIiwiZ2V0RWxldmF0aW9uIiwiZmlsdGVyVmFsdWVVcGRhdGVUcmlnZ2VycyIsImNvbHVtbkxheWVyVHJpZ2dlcnMiLCJnZXRDb3ZlcmFnZSIsImRlZmF1bHRMYXllclByb3BzIiwiZ2V0RGVmYXVsdERlY2tMYXllclByb3BzIiwiaG92ZXJlZE9iamVjdCIsImhhc0hvdmVyZWRPYmplY3QiLCJIM0hleGFnb25MYXllciIsIndyYXBMb25naXR1ZGUiLCJ4IiwiYXV0b0hpZ2hsaWdodCIsImhpZ2hsaWdodENvbG9yIiwiSElHSExJR0hfQ09MT1JfM0QiLCJleHRydWRlZCIsIl9zdWJMYXllclByb3BzIiwidHlwZSIsIkVuaGFuY2VkQ29sdW1uTGF5ZXIiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwic2l6ZUZpZWxkIiwiR2VvSnNvbkxheWVyIiwiZ2V0RGVmYXVsdEhvdmVyTGF5ZXJQcm9wcyIsImlkVG9Qb2x5Z29uR2VvIiwiZ2V0TGluZUNvbG9yIiwibGluZVdpZHRoU2NhbGUiLCJmaW5kRGVmYXVsdExheWVyUHJvcHMiLCJfcmVmMyIsIl9yZWYzJGZpZWxkcyIsImZpZWxkcyIsImhleEZpZWxkcyIsImdldEhleEZpZWxkcyIsImYiLCJpc1Zpc2libGUiLCJsYWJlbCIsImRpc3BsYXlOYW1lIiwibmFtZSIsImZpbmRJbmRleCIsImZpZCIsIkxheWVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xheWVycy9oMy1oZXhhZ29uLWxheWVyL2gzLWhleGFnb24tbGF5ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IExheWVyLCB7XG4gIExheWVyQmFzZUNvbmZpZyxcbiAgTGF5ZXJDb2xvckNvbmZpZyxcbiAgTGF5ZXJDb2x1bW4sXG4gIExheWVyQ292ZXJhZ2VDb25maWcsXG4gIExheWVyU2l6ZUNvbmZpZ1xufSBmcm9tICcuLi9iYXNlLWxheWVyJztcbmltcG9ydCB7ZmluZERlZmF1bHRDb2xvckZpZWxkfSBmcm9tICd1dGlscy9kYXRhc2V0LXV0aWxzJztcbmltcG9ydCB7R2VvSnNvbkxheWVyfSBmcm9tICdAZGVjay5nbC9sYXllcnMnO1xuaW1wb3J0IHtIM0hleGFnb25MYXllcn0gZnJvbSAnQGRlY2suZ2wvZ2VvLWxheWVycyc7XG5pbXBvcnQgRW5oYW5jZWRDb2x1bW5MYXllciBmcm9tICdkZWNrZ2wtbGF5ZXJzL2NvbHVtbi1sYXllci9lbmhhbmNlZC1jb2x1bW4tbGF5ZXInO1xuaW1wb3J0IHtnZXRDZW50cm9pZCwgaWRUb1BvbHlnb25HZW8sIGgzSXNWYWxpZCwgZ2V0SGV4RmllbGRzLCBDZW50cm9pZCwgIGdldFZlcnRpY2VzfSBmcm9tICcuL2gzLXV0aWxzJztcbmltcG9ydCBIM0hleGFnb25MYXllckljb24gZnJvbSAnLi9oMy1oZXhhZ29uLWxheWVyLWljb24nO1xuaW1wb3J0IHtDSEFOTkVMX1NDQUxFUywgSElHSExJR0hfQ09MT1JfM0R9IGZyb20gJ2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcbmltcG9ydCB7Z2V0TGF0TG5nQm91bmRzfSBmcm9tICd1dGlscy9kYXRhLXV0aWxzJztcblxuaW1wb3J0IHtjcmVhdGVEYXRhQ29udGFpbmVyfSBmcm9tICd1dGlscy90YWJsZS11dGlscyc7XG5pbXBvcnQge1xuICBWaXNDb25maWdCb29sZWFuLFxuICBWaXNDb25maWdDb2xvclJhbmdlLFxuICBWaXNDb25maWdOdW1iZXIsXG4gIFZpc0NvbmZpZ1JhbmdlXG59IGZyb20gJy4uL2xheWVyLWZhY3RvcnknO1xuaW1wb3J0IHtNZXJnZX0gZnJvbSAnLi4vLi4vcmVkdWNlcnMnO1xuaW1wb3J0IHtEYXRhQ29udGFpbmVySW50ZXJmYWNlfSBmcm9tICcuLi8uLi91dGlscy90YWJsZS11dGlscy9kYXRhLWNvbnRhaW5lci1pbnRlcmZhY2UnO1xuaW1wb3J0IHtDb2xvclJhbmdlfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29sb3ItcmFuZ2VzJztcbmltcG9ydCB7S2VwbGVyVGFibGV9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuZXhwb3J0IHR5cGUgSGV4YWdvbklkTGF5ZXJDb2x1bW5zQ29uZmlnID0ge1xuICBoZXhfaWQ6IExheWVyQ29sdW1uO1xufTtcblxuZXhwb3J0IHR5cGUgSGV4YWdvbklkTGF5ZXJWaXNDb25maWdTZXR0aW5ncyA9IHtcbiAgb3BhY2l0eTogVmlzQ29uZmlnTnVtYmVyO1xuICBjb2xvclJhbmdlOiBWaXNDb25maWdDb2xvclJhbmdlO1xuICBjb3ZlcmFnZTogVmlzQ29uZmlnTnVtYmVyO1xuICBlbmFibGUzZDogVmlzQ29uZmlnQm9vbGVhbjtcbiAgc2l6ZVJhbmdlOiBWaXNDb25maWdSYW5nZTtcbiAgY292ZXJhZ2VSYW5nZTogVmlzQ29uZmlnUmFuZ2U7XG4gIGVsZXZhdGlvblNjYWxlOiBWaXNDb25maWdOdW1iZXI7XG4gIGVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3I6IFZpc0NvbmZpZ0Jvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBIZXhhZ29uSWRMYXllclZpc0NvbmZpZyA9IHtcbiAgb3BhY2l0eTogbnVtYmVyO1xuICBjb2xvclJhbmdlOiBDb2xvclJhbmdlO1xuICBjb3ZlcmFnZTogbnVtYmVyO1xuICBlbmFibGUzZDogYm9vbGVhbjtcbiAgc2l6ZVJhbmdlOiBbbnVtYmVyLCBudW1iZXJdO1xuICBjb3ZlcmFnZVJhbmdlOiBbbnVtYmVyLCBudW1iZXJdO1xuICBlbGV2YXRpb25TY2FsZTogbnVtYmVyO1xuICBlbmFibGVFbGV2YXRpb25ab29tRmFjdG9yOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgSGV4YWdvbklkTGF5ZXJWaXN1YWxDaGFubmVsQ29uZmlnID0gTGF5ZXJDb2xvckNvbmZpZyAmXG4gIExheWVyU2l6ZUNvbmZpZyAmXG4gIExheWVyQ292ZXJhZ2VDb25maWc7XG5leHBvcnQgdHlwZSBIZXhhZ29uSWRMYXllckNvbmZpZyA9IE1lcmdlPFxuICBMYXllckJhc2VDb25maWcsXG4gIHtjb2x1bW5zOiBIZXhhZ29uSWRMYXllckNvbHVtbnNDb25maWc7IHZpc0NvbmZpZzogSGV4YWdvbklkTGF5ZXJWaXNDb25maWd9XG4+ICZcbiAgSGV4YWdvbklkTGF5ZXJWaXN1YWxDaGFubmVsQ29uZmlnO1xuXG5leHBvcnQgdHlwZSBIZXhhZ29uSWRMYXllckRhdGEgPSB7aW5kZXg6IG51bWJlcjsgaWQ7IGNlbnRyb2lkOiBDZW50cm9pZH07XG5cbmNvbnN0IERFRkFVTFRfTElORV9TQ0FMRV9WQUxVRSA9IDg7XG5cbmV4cG9ydCBjb25zdCBoZXhJZFJlcXVpcmVkQ29sdW1uczogWydoZXhfaWQnXSA9IFsnaGV4X2lkJ107XG5leHBvcnQgY29uc3QgaGV4SWRBY2Nlc3NvciA9ICh7aGV4X2lkfTogSGV4YWdvbklkTGF5ZXJDb2x1bW5zQ29uZmlnKSA9PiAoXG4gIGRjOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlXG4pID0+IGQgPT4gZGMudmFsdWVBdChkLmluZGV4LCBoZXhfaWQuZmllbGRJZHgpO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdEVsZXZhdGlvbiA9IDUwMDtcbmV4cG9ydCBjb25zdCBkZWZhdWx0Q292ZXJhZ2UgPSAxO1xuXG5leHBvcnQgY29uc3QgSGV4YWdvbklkVmlzQ29uZmlnczoge1xuICBvcGFjaXR5OiAnb3BhY2l0eSc7XG4gIGNvbG9yUmFuZ2U6ICdjb2xvclJhbmdlJztcbiAgY292ZXJhZ2U6ICdjb3ZlcmFnZSc7XG4gIGVuYWJsZTNkOiAnZW5hYmxlM2QnO1xuICBzaXplUmFuZ2U6ICdlbGV2YXRpb25SYW5nZSc7XG4gIGNvdmVyYWdlUmFuZ2U6ICdjb3ZlcmFnZVJhbmdlJztcbiAgZWxldmF0aW9uU2NhbGU6ICdlbGV2YXRpb25TY2FsZSc7XG4gIGVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3I6ICdlbmFibGVFbGV2YXRpb25ab29tRmFjdG9yJztcbn0gPSB7XG4gIG9wYWNpdHk6ICdvcGFjaXR5JyxcbiAgY29sb3JSYW5nZTogJ2NvbG9yUmFuZ2UnLFxuICBjb3ZlcmFnZTogJ2NvdmVyYWdlJyxcbiAgZW5hYmxlM2Q6ICdlbmFibGUzZCcsXG4gIHNpemVSYW5nZTogJ2VsZXZhdGlvblJhbmdlJyxcbiAgY292ZXJhZ2VSYW5nZTogJ2NvdmVyYWdlUmFuZ2UnLFxuICBlbGV2YXRpb25TY2FsZTogJ2VsZXZhdGlvblNjYWxlJyxcbiAgZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvcjogJ2VuYWJsZUVsZXZhdGlvblpvb21GYWN0b3InXG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIZXhhZ29uSWRMYXllciBleHRlbmRzIExheWVyIHtcbiAgZGF0YVRvRmVhdHVyZToge2NlbnRyb2lkczogQ2VudHJvaWRbXX07XG5cbiAgZGVjbGFyZSBjb25maWc6IEhleGFnb25JZExheWVyQ29uZmlnO1xuICBkZWNsYXJlIHZpc0NvbmZpZ1NldHRpbmdzOiBIZXhhZ29uSWRMYXllclZpc0NvbmZpZ1NldHRpbmdzO1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLmRhdGFUb0ZlYXR1cmUgPSB7Y2VudHJvaWRzOiBbXX07XG4gICAgdGhpcy5yZWdpc3RlclZpc0NvbmZpZyhIZXhhZ29uSWRWaXNDb25maWdzKTtcbiAgICB0aGlzLmdldFBvc2l0aW9uQWNjZXNzb3IgPSAoZGF0YUNvbnRhaW5lcjogRGF0YUNvbnRhaW5lckludGVyZmFjZSkgPT5cbiAgICAgIGhleElkQWNjZXNzb3IodGhpcy5jb25maWcuY29sdW1ucykoZGF0YUNvbnRhaW5lcik7XG4gIH1cblxuICBnZXQgdHlwZSgpOiAnaGV4YWdvbklkJyB7XG4gICAgcmV0dXJuICdoZXhhZ29uSWQnO1xuICB9XG5cbiAgZ2V0IG5hbWUoKTogJ0gzJyB7XG4gICAgcmV0dXJuICdIMyc7XG4gIH1cblxuICBnZXQgcmVxdWlyZWRMYXllckNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIGhleElkUmVxdWlyZWRDb2x1bW5zO1xuICB9XG5cbiAgZ2V0IGxheWVySWNvbigpIHtcbiAgICAvLyB1c2UgaGV4YWdvbiBsYXllciBpY29uIGZvciBub3dcbiAgICByZXR1cm4gSDNIZXhhZ29uTGF5ZXJJY29uO1xuICB9XG5cbiAgZ2V0IHZpc3VhbENoYW5uZWxzKCkge1xuICAgIGNvbnN0IHZpc3VhbENoYW5uZWxzID0gc3VwZXIudmlzdWFsQ2hhbm5lbHM7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiB7XG4gICAgICAgIC4uLnZpc3VhbENoYW5uZWxzLmNvbG9yLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldEZpbGxDb2xvcidcbiAgICAgIH0sXG4gICAgICBzaXplOiB7XG4gICAgICAgIC4uLnZpc3VhbENoYW5uZWxzLnNpemUsXG4gICAgICAgIHByb3BlcnR5OiAnaGVpZ2h0JyxcbiAgICAgICAgYWNjZXNzb3I6ICdnZXRFbGV2YXRpb24nLFxuICAgICAgICBudWxsVmFsdWU6IDAsXG4gICAgICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcuZW5hYmxlM2QsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdEVsZXZhdGlvblxuICAgICAgfSxcbiAgICAgIGNvdmVyYWdlOiB7XG4gICAgICAgIHByb3BlcnR5OiAnY292ZXJhZ2UnLFxuICAgICAgICBmaWVsZDogJ2NvdmVyYWdlRmllbGQnLFxuICAgICAgICBzY2FsZTogJ2NvdmVyYWdlU2NhbGUnLFxuICAgICAgICBkb21haW46ICdjb3ZlcmFnZURvbWFpbicsXG4gICAgICAgIHJhbmdlOiAnY292ZXJhZ2VSYW5nZScsXG4gICAgICAgIGtleTogJ2NvdmVyYWdlJyxcbiAgICAgICAgY2hhbm5lbFNjYWxlVHlwZTogQ0hBTk5FTF9TQ0FMRVMucmFkaXVzLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldENvdmVyYWdlJyxcbiAgICAgICAgbnVsbFZhbHVlOiAwLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRDb3ZlcmFnZVxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBzZXRJbml0aWFsTGF5ZXJDb25maWcoZGF0YXNldCkge1xuICAgIGNvbnN0IGRlZmF1bHRDb2xvckZpZWxkID0gZmluZERlZmF1bHRDb2xvckZpZWxkKGRhdGFzZXQpO1xuXG4gICAgaWYgKGRlZmF1bHRDb2xvckZpZWxkKSB7XG4gICAgICB0aGlzLnVwZGF0ZUxheWVyQ29uZmlnPEhleGFnb25JZExheWVyQ29uZmlnPih7XG4gICAgICAgIGNvbG9yRmllbGQ6IGRlZmF1bHRDb2xvckZpZWxkXG4gICAgICB9KTtcbiAgICAgIHRoaXMudXBkYXRlTGF5ZXJWaXN1YWxDaGFubmVsKGRhdGFzZXQsICdjb2xvcicpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc3RhdGljIGZpbmREZWZhdWx0TGF5ZXJQcm9wcyh7ZmllbGRzID0gW10sIGRhdGFDb250YWluZXJ9OiBLZXBsZXJUYWJsZSkge1xuICAgIGNvbnN0IGhleEZpZWxkcyA9IGdldEhleEZpZWxkcyhmaWVsZHMsIGRhdGFDb250YWluZXIpO1xuICAgIGlmICghaGV4RmllbGRzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHtwcm9wczogW119O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBwcm9wczogaGV4RmllbGRzLm1hcChmID0+ICh7XG4gICAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgbGFiZWw6IGYuZGlzcGxheU5hbWUgfHwgZi5uYW1lLFxuICAgICAgICBjb2x1bW5zOiB7XG4gICAgICAgICAgaGV4X2lkOiB7XG4gICAgICAgICAgICB2YWx1ZTogZi5uYW1lLFxuICAgICAgICAgICAgZmllbGRJZHg6IGZpZWxkcy5maW5kSW5kZXgoZmlkID0+IGZpZC5uYW1lID09PSBmLm5hbWUpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KSlcbiAgICB9O1xuICB9XG5cbiAgZ2V0RGVmYXVsdExheWVyQ29uZmlnKHByb3BzID0ge30pIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3VwZXIuZ2V0RGVmYXVsdExheWVyQ29uZmlnKHByb3BzKSxcblxuICAgICAgLy8gYWRkIGhlaWdodCB2aXN1YWwgY2hhbm5lbFxuICAgICAgY292ZXJhZ2VGaWVsZDogbnVsbCxcbiAgICAgIGNvdmVyYWdlRG9tYWluOiBbMCwgMV0sXG4gICAgICBjb3ZlcmFnZVNjYWxlOiAnbGluZWFyJ1xuICAgIH07XG4gIH1cblxuICBjYWxjdWxhdGVEYXRhQXR0cmlidXRlKHtkYXRhQ29udGFpbmVyLCBmaWx0ZXJlZEluZGV4fTogS2VwbGVyVGFibGUsIGdldEhleElkKSB7XG4gICAgY29uc3QgZGF0YTogSGV4YWdvbklkTGF5ZXJEYXRhW10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsdGVyZWRJbmRleC5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgaW5kZXggPSBmaWx0ZXJlZEluZGV4W2ldO1xuICAgICAgY29uc3QgaWQgPSBnZXRIZXhJZCh7aW5kZXh9KTtcbiAgICAgIGNvbnN0IGNlbnRyb2lkID0gdGhpcy5kYXRhVG9GZWF0dXJlLmNlbnRyb2lkc1tpbmRleF07XG5cbiAgICAgIGlmIChjZW50cm9pZCkge1xuICAgICAgICBkYXRhLnB1c2goe1xuICAgICAgICAgIGluZGV4LFxuICAgICAgICAgIGlkLFxuICAgICAgICAgIGNlbnRyb2lkXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIC8vIFRPRE86IGZpeCBjb21wbGV4aXR5XG4gIC8qIGVzbGludC1kaXNhYmxlIGNvbXBsZXhpdHkgKi9cbiAgZm9ybWF0TGF5ZXJEYXRhKGRhdGFzZXRzLCBvbGRMYXllckRhdGEsIG9wdCA9IHt9KSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmRhdGFJZCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBjb25zdCB7Z3B1RmlsdGVyLCBkYXRhQ29udGFpbmVyfSA9IGRhdGFzZXRzW3RoaXMuY29uZmlnLmRhdGFJZF07XG4gICAgY29uc3QgZ2V0SGV4SWQgPSB0aGlzLmdldFBvc2l0aW9uQWNjZXNzb3IoZGF0YUNvbnRhaW5lcik7XG4gICAgY29uc3Qge2RhdGF9ID0gdGhpcy51cGRhdGVEYXRhKGRhdGFzZXRzLCBvbGRMYXllckRhdGEpO1xuICAgIGNvbnN0IGFjY2Vzc29ycyA9IHRoaXMuZ2V0QXR0cmlidXRlQWNjZXNzb3JzKHtkYXRhQ29udGFpbmVyfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIGdldEhleElkLFxuICAgICAgZ2V0RmlsdGVyVmFsdWU6IGdwdUZpbHRlci5maWx0ZXJWYWx1ZUFjY2Vzc29yKGRhdGFDb250YWluZXIpKCksXG4gICAgICAuLi5hY2Nlc3NvcnNcbiAgICB9O1xuICB9XG4gIC8qIGVzbGludC1lbmFibGUgY29tcGxleGl0eSAqL1xuXG4gIHVwZGF0ZUxheWVyTWV0YShkYXRhQ29udGFpbmVyLCBnZXRIZXhJZCkge1xuICAgIGNvbnN0IHZhbGlkSGV4YWdvbklkcyA9IGRhdGFDb250YWluZXIubWFwKChkLCBpbmRleCkgPT4gZ2V0SGV4SWQoe2luZGV4fSkpLmZpbHRlcihoM0lzVmFsaWQpO1xuXG4gICAgLy8gc2F2ZSBhIHJlZmVyZW5jZSBvZiBjZW50cm9pZHMgdG8gZGF0YVRvRmVhdHVyZVxuICAgIC8vIHNvIHdlIGRvbid0IGhhdmUgdG8gcmUgY2FsY3VsYXRlIGl0IGFnYWluXG4gICAgY29uc3QgY2VudHJvaWRzID0gdmFsaWRIZXhhZ29uSWRzLm1hcChpZCA9PiBnZXRDZW50cm9pZCh7aWR9KSk7XG4gICAgdGhpcy5kYXRhVG9GZWF0dXJlID0ge2NlbnRyb2lkc307XG5cbiAgICBjb25zdCB2ZXJ0aWNlcyA9IHZhbGlkSGV4YWdvbklkcy5tYXAoaWQgPT4gZ2V0VmVydGljZXMoe2lkfSkpLmZsYXQoKTtcbiAgICAvLyB1c2luZyB0aGUgc2FtZSB3YXkgdG8gY29tcHV0ZSBib3VuZHMgYXMgaW4gYmFzZS1sYXllci5qcywgZXZlbiBpZiBpdCdzIGNvbXBsaWNhdGVkIGFuZCBub3QgdmVyeSBlZmZpY2llbnRcbiAgICBjb25zdCBsYXRCb3VuZHMgPSBnZXRMYXRMbmdCb3VuZHModmVydGljZXMsIDEsIFstOTAsIDkwXSk7XG4gICAgY29uc3QgbG5nQm91bmRzID0gZ2V0TGF0TG5nQm91bmRzKHZlcnRpY2VzLCAwLCBbLTE4MCwgMTgwXSk7XG5cbiAgICBjb25zdCBib3VuZHMgPVxuICAgICAgIWxhdEJvdW5kcyB8fCAhbG5nQm91bmRzID8gbnVsbCA6IFtsbmdCb3VuZHNbMF0sIGxhdEJvdW5kc1swXSwgbG5nQm91bmRzWzFdLCBsYXRCb3VuZHNbMV1dO1xuICAgIHRoaXMudXBkYXRlTWV0YSh7Ym91bmRzfSk7XG4gIH1cblxuICByZW5kZXJMYXllcihvcHRzKSB7XG4gICAgY29uc3Qge2RhdGEsIGdwdUZpbHRlciwgb2JqZWN0SG92ZXJlZH0gPSBvcHRzO1xuICAgIGNvbnN0IHtjb25maWd9ID0gdGhpcztcbiAgICBjb25zdCB7dmlzQ29uZmlnfSA9IGNvbmZpZztcbiAgICBjb25zdCB1cGRhdGVUcmlnZ2VycyA9IHRoaXMuZ2V0VmlzdWFsQ2hhbm5lbFVwZGF0ZVRyaWdnZXJzKCk7XG5cbiAgICBjb25zdCBoM0hleGFnb25MYXllclRyaWdnZXJzID0ge1xuICAgICAgZ2V0SGV4YWdvbjogdGhpcy5jb25maWcuY29sdW1ucyxcbiAgICAgIGdldEZpbGxDb2xvcjogdXBkYXRlVHJpZ2dlcnMuZ2V0RmlsbENvbG9yLFxuICAgICAgZ2V0RWxldmF0aW9uOiB1cGRhdGVUcmlnZ2Vycy5nZXRFbGV2YXRpb24sXG4gICAgICBnZXRGaWx0ZXJWYWx1ZTogZ3B1RmlsdGVyLmZpbHRlclZhbHVlVXBkYXRlVHJpZ2dlcnNcbiAgICB9O1xuXG4gICAgY29uc3QgY29sdW1uTGF5ZXJUcmlnZ2VycyA9IHtcbiAgICAgIGdldENvdmVyYWdlOiB1cGRhdGVUcmlnZ2Vycy5nZXRDb3ZlcmFnZVxuICAgIH07XG5cbiAgICBjb25zdCBkZWZhdWx0TGF5ZXJQcm9wcyA9IHRoaXMuZ2V0RGVmYXVsdERlY2tMYXllclByb3BzKG9wdHMpO1xuICAgIGNvbnN0IGhvdmVyZWRPYmplY3QgPSB0aGlzLmhhc0hvdmVyZWRPYmplY3Qob2JqZWN0SG92ZXJlZCk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgbmV3IEgzSGV4YWdvbkxheWVyKHtcbiAgICAgICAgLi4uZGVmYXVsdExheWVyUHJvcHMsXG4gICAgICAgIC4uLmRhdGEsXG4gICAgICAgIHdyYXBMb25naXR1ZGU6IGZhbHNlLFxuXG4gICAgICAgIGdldEhleGFnb246ICh4OiBhbnkpID0+IHguaWQsXG5cbiAgICAgICAgLy8gY292ZXJhZ2VcbiAgICAgICAgY292ZXJhZ2U6IGNvbmZpZy5jb3ZlcmFnZUZpZWxkID8gMSA6IHZpc0NvbmZpZy5jb3ZlcmFnZSxcblxuICAgICAgICAvLyBoaWdobGlnaHRcbiAgICAgICAgYXV0b0hpZ2hsaWdodDogdmlzQ29uZmlnLmVuYWJsZTNkLFxuICAgICAgICBoaWdobGlnaHRDb2xvcjogSElHSExJR0hfQ09MT1JfM0QsXG5cbiAgICAgICAgLy8gZWxldmF0aW9uXG4gICAgICAgIGV4dHJ1ZGVkOiB2aXNDb25maWcuZW5hYmxlM2QsXG4gICAgICAgIGVsZXZhdGlvblNjYWxlOiB2aXNDb25maWcuZWxldmF0aW9uU2NhbGUsXG5cbiAgICAgICAgLy8gcmVuZGVyXG4gICAgICAgIHVwZGF0ZVRyaWdnZXJzOiBoM0hleGFnb25MYXllclRyaWdnZXJzLFxuICAgICAgICBfc3ViTGF5ZXJQcm9wczoge1xuICAgICAgICAgICdoZXhhZ29uLWNlbGwnOiB7XG4gICAgICAgICAgICB0eXBlOiBFbmhhbmNlZENvbHVtbkxheWVyLFxuICAgICAgICAgICAgZ2V0Q292ZXJhZ2U6IGRhdGEuZ2V0Q292ZXJhZ2UsXG4gICAgICAgICAgICB1cGRhdGVUcmlnZ2VyczogY29sdW1uTGF5ZXJUcmlnZ2Vyc1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICAuLi4oaG92ZXJlZE9iamVjdCAmJiAhY29uZmlnLnNpemVGaWVsZFxuICAgICAgICA/IFtcbiAgICAgICAgICAgIG5ldyBHZW9Kc29uTGF5ZXIoe1xuICAgICAgICAgICAgICAuLi50aGlzLmdldERlZmF1bHRIb3ZlckxheWVyUHJvcHMoKSxcbiAgICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICAgICAgICBkYXRhOiBbaWRUb1BvbHlnb25HZW8oaG92ZXJlZE9iamVjdCldLFxuICAgICAgICAgICAgICBnZXRMaW5lQ29sb3I6IGNvbmZpZy5oaWdobGlnaHRDb2xvcixcbiAgICAgICAgICAgICAgbGluZVdpZHRoU2NhbGU6IERFRkFVTFRfTElORV9TQ0FMRV9WQUxVRSxcbiAgICAgICAgICAgICAgd3JhcExvbmdpdHVkZTogZmFsc2VcbiAgICAgICAgICAg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
321
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYmFzZUxheWVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGF0YXNldFV0aWxzIiwiX2xheWVycyIsIl9nZW9MYXllcnMiLCJfZW5oYW5jZWRDb2x1bW5MYXllciIsIl9oM1V0aWxzIiwiX2gzSGV4YWdvbkxheWVySWNvbiIsIl9kZWZhdWx0U2V0dGluZ3MiLCJfZGF0YVV0aWxzIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsImNhbGwiLCJfc3VwZXJQcm9wR2V0IiwicCIsIl9nZXQyIiwiREVGQVVMVF9MSU5FX1NDQUxFX1ZBTFVFIiwiaGV4SWRSZXF1aXJlZENvbHVtbnMiLCJleHBvcnRzIiwiaGV4SWRBY2Nlc3NvciIsIl9yZWYiLCJoZXhfaWQiLCJkYyIsImQiLCJ2YWx1ZUF0IiwiaW5kZXgiLCJmaWVsZElkeCIsImRlZmF1bHRFbGV2YXRpb24iLCJkZWZhdWx0Q292ZXJhZ2UiLCJIZXhhZ29uSWRWaXNDb25maWdzIiwib3BhY2l0eSIsImNvbG9yUmFuZ2UiLCJjb3ZlcmFnZSIsImVuYWJsZTNkIiwic2l6ZVJhbmdlIiwiY292ZXJhZ2VSYW5nZSIsImVsZXZhdGlvblNjYWxlIiwiZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvciIsIkhleGFnb25JZExheWVyIiwiX0xheWVyIiwicHJvcHMiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJkYXRhVG9GZWF0dXJlIiwiY2VudHJvaWRzIiwicmVnaXN0ZXJWaXNDb25maWciLCJnZXRQb3NpdGlvbkFjY2Vzc29yIiwiZGF0YUNvbnRhaW5lciIsImNvbmZpZyIsImNvbHVtbnMiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsImdldCIsIkgzSGV4YWdvbkxheWVySWNvbiIsInZpc3VhbENoYW5uZWxzIiwiY29sb3IiLCJhY2Nlc3NvciIsInNpemUiLCJwcm9wZXJ0eSIsIm51bGxWYWx1ZSIsImNvbmRpdGlvbiIsInZpc0NvbmZpZyIsImRlZmF1bHRWYWx1ZSIsImZpZWxkIiwic2NhbGUiLCJkb21haW4iLCJyYW5nZSIsImNoYW5uZWxTY2FsZVR5cGUiLCJDSEFOTkVMX1NDQUxFUyIsInJhZGl1cyIsInZhbHVlIiwic2V0SW5pdGlhbExheWVyQ29uZmlnIiwiZGF0YXNldCIsImRlZmF1bHRDb2xvckZpZWxkIiwiZmluZERlZmF1bHRDb2xvckZpZWxkIiwidXBkYXRlTGF5ZXJDb25maWciLCJjb2xvckZpZWxkIiwidXBkYXRlTGF5ZXJWaXN1YWxDaGFubmVsIiwiZ2V0RGVmYXVsdExheWVyQ29uZmlnIiwidW5kZWZpbmVkIiwiY292ZXJhZ2VGaWVsZCIsImNvdmVyYWdlRG9tYWluIiwiY292ZXJhZ2VTY2FsZSIsImNhbGN1bGF0ZURhdGFBdHRyaWJ1dGUiLCJfcmVmMiIsImdldEhleElkIiwiZmlsdGVyZWRJbmRleCIsImRhdGEiLCJpIiwiaWQiLCJjZW50cm9pZCIsImZvcm1hdExheWVyRGF0YSIsImRhdGFzZXRzIiwib2xkTGF5ZXJEYXRhIiwib3B0IiwiZGF0YUlkIiwiX2RhdGFzZXRzJHRoaXMkY29uZmlnIiwiZ3B1RmlsdGVyIiwiX3RoaXMkdXBkYXRlRGF0YSIsInVwZGF0ZURhdGEiLCJhY2Nlc3NvcnMiLCJnZXRBdHRyaWJ1dGVBY2Nlc3NvcnMiLCJnZXRGaWx0ZXJWYWx1ZSIsImZpbHRlclZhbHVlQWNjZXNzb3IiLCJ1cGRhdGVMYXllck1ldGEiLCJ2YWxpZEhleGFnb25JZHMiLCJtYXAiLCJpc1ZhbGlkQ2VsbCIsImdldENlbnRyb2lkIiwidmVydGljZXMiLCJnZXRWZXJ0aWNlcyIsImZsYXQiLCJsYXRCb3VuZHMiLCJnZXRMYXRMbmdCb3VuZHMiLCJsbmdCb3VuZHMiLCJib3VuZHMiLCJ1cGRhdGVNZXRhIiwicmVuZGVyTGF5ZXIiLCJvcHRzIiwib2JqZWN0SG92ZXJlZCIsInVwZGF0ZVRyaWdnZXJzIiwiZ2V0VmlzdWFsQ2hhbm5lbFVwZGF0ZVRyaWdnZXJzIiwiaDNIZXhhZ29uTGF5ZXJUcmlnZ2VycyIsImdldEhleGFnb24iLCJnZXRGaWxsQ29sb3IiLCJnZXRFbGV2YXRpb24iLCJmaWx0ZXJWYWx1ZVVwZGF0ZVRyaWdnZXJzIiwiY29sdW1uTGF5ZXJUcmlnZ2VycyIsImdldENvdmVyYWdlIiwiZGVmYXVsdExheWVyUHJvcHMiLCJnZXREZWZhdWx0RGVja0xheWVyUHJvcHMiLCJob3ZlcmVkT2JqZWN0IiwiaGFzSG92ZXJlZE9iamVjdCIsIkgzSGV4YWdvbkxheWVyIiwid3JhcExvbmdpdHVkZSIsIngiLCJhdXRvSGlnaGxpZ2h0IiwiaGlnaGxpZ2h0Q29sb3IiLCJISUdITElHSF9DT0xPUl8zRCIsImV4dHJ1ZGVkIiwiX3N1YkxheWVyUHJvcHMiLCJ0eXBlIiwiRW5oYW5jZWRDb2x1bW5MYXllciIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJzaXplRmllbGQiLCJHZW9Kc29uTGF5ZXIiLCJnZXREZWZhdWx0SG92ZXJMYXllclByb3BzIiwiaWRUb1BvbHlnb25HZW8iLCJnZXRMaW5lQ29sb3IiLCJsaW5lV2lkdGhTY2FsZSIsImZpbmREZWZhdWx0TGF5ZXJQcm9wcyIsIl9yZWYzIiwiX3JlZjMkZmllbGRzIiwiZmllbGRzIiwiaGV4RmllbGRzIiwiZ2V0SGV4RmllbGRzIiwiZiIsImlzVmlzaWJsZSIsImxhYmVsIiwiZGlzcGxheU5hbWUiLCJuYW1lIiwiZmluZEluZGV4IiwiZmlkIiwiTGF5ZXIiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGF5ZXJzL2gzLWhleGFnb24tbGF5ZXIvaDMtaGV4YWdvbi1sYXllci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgTGF5ZXIsIHtcbiAgTGF5ZXJCYXNlQ29uZmlnLFxuICBMYXllckNvbG9yQ29uZmlnLFxuICBMYXllckNvbHVtbixcbiAgTGF5ZXJDb3ZlcmFnZUNvbmZpZyxcbiAgTGF5ZXJTaXplQ29uZmlnXG59IGZyb20gJy4uL2Jhc2UtbGF5ZXInO1xuaW1wb3J0IHtmaW5kRGVmYXVsdENvbG9yRmllbGR9IGZyb20gJ3V0aWxzL2RhdGFzZXQtdXRpbHMnO1xuaW1wb3J0IHtHZW9Kc29uTGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2xheWVycyc7XG5pbXBvcnQge0gzSGV4YWdvbkxheWVyfSBmcm9tICdAZGVjay5nbC9nZW8tbGF5ZXJzJztcbmltcG9ydCBFbmhhbmNlZENvbHVtbkxheWVyIGZyb20gJ2RlY2tnbC1sYXllcnMvY29sdW1uLWxheWVyL2VuaGFuY2VkLWNvbHVtbi1sYXllcic7XG5pbXBvcnQge1xuICBnZXRDZW50cm9pZCxcbiAgaWRUb1BvbHlnb25HZW8sXG4gIGlzVmFsaWRDZWxsLFxuICBnZXRIZXhGaWVsZHMsXG4gIENlbnRyb2lkLFxuICBnZXRWZXJ0aWNlc1xufSBmcm9tICcuL2gzLXV0aWxzJztcbmltcG9ydCBIM0hleGFnb25MYXllckljb24gZnJvbSAnLi9oMy1oZXhhZ29uLWxheWVyLWljb24nO1xuaW1wb3J0IHtDSEFOTkVMX1NDQUxFUywgSElHSExJR0hfQ09MT1JfM0R9IGZyb20gJ2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcbmltcG9ydCB7Z2V0TGF0TG5nQm91bmRzfSBmcm9tICd1dGlscy9kYXRhLXV0aWxzJztcblxuaW1wb3J0IHtjcmVhdGVEYXRhQ29udGFpbmVyfSBmcm9tICd1dGlscy90YWJsZS11dGlscyc7XG5pbXBvcnQge1xuICBWaXNDb25maWdCb29sZWFuLFxuICBWaXNDb25maWdDb2xvclJhbmdlLFxuICBWaXNDb25maWdOdW1iZXIsXG4gIFZpc0NvbmZpZ1JhbmdlXG59IGZyb20gJy4uL2xheWVyLWZhY3RvcnknO1xuaW1wb3J0IHtNZXJnZX0gZnJvbSAnLi4vLi4vcmVkdWNlcnMnO1xuaW1wb3J0IHtEYXRhQ29udGFpbmVySW50ZXJmYWNlfSBmcm9tICcuLi8uLi91dGlscy90YWJsZS11dGlscy9kYXRhLWNvbnRhaW5lci1pbnRlcmZhY2UnO1xuaW1wb3J0IHtDb2xvclJhbmdlfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29sb3ItcmFuZ2VzJztcbmltcG9ydCB7S2VwbGVyVGFibGV9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuZXhwb3J0IHR5cGUgSGV4YWdvbklkTGF5ZXJDb2x1bW5zQ29uZmlnID0ge1xuICBoZXhfaWQ6IExheWVyQ29sdW1uO1xufTtcblxuZXhwb3J0IHR5cGUgSGV4YWdvbklkTGF5ZXJWaXNDb25maWdTZXR0aW5ncyA9IHtcbiAgb3BhY2l0eTogVmlzQ29uZmlnTnVtYmVyO1xuICBjb2xvclJhbmdlOiBWaXNDb25maWdDb2xvclJhbmdlO1xuICBjb3ZlcmFnZTogVmlzQ29uZmlnTnVtYmVyO1xuICBlbmFibGUzZDogVmlzQ29uZmlnQm9vbGVhbjtcbiAgc2l6ZVJhbmdlOiBWaXNDb25maWdSYW5nZTtcbiAgY292ZXJhZ2VSYW5nZTogVmlzQ29uZmlnUmFuZ2U7XG4gIGVsZXZhdGlvblNjYWxlOiBWaXNDb25maWdOdW1iZXI7XG4gIGVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3I6IFZpc0NvbmZpZ0Jvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBIZXhhZ29uSWRMYXllclZpc0NvbmZpZyA9IHtcbiAgb3BhY2l0eTogbnVtYmVyO1xuICBjb2xvclJhbmdlOiBDb2xvclJhbmdlO1xuICBjb3ZlcmFnZTogbnVtYmVyO1xuICBlbmFibGUzZDogYm9vbGVhbjtcbiAgc2l6ZVJhbmdlOiBbbnVtYmVyLCBudW1iZXJdO1xuICBjb3ZlcmFnZVJhbmdlOiBbbnVtYmVyLCBudW1iZXJdO1xuICBlbGV2YXRpb25TY2FsZTogbnVtYmVyO1xuICBlbmFibGVFbGV2YXRpb25ab29tRmFjdG9yOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgSGV4YWdvbklkTGF5ZXJWaXN1YWxDaGFubmVsQ29uZmlnID0gTGF5ZXJDb2xvckNvbmZpZyAmXG4gIExheWVyU2l6ZUNvbmZpZyAmXG4gIExheWVyQ292ZXJhZ2VDb25maWc7XG5leHBvcnQgdHlwZSBIZXhhZ29uSWRMYXllckNvbmZpZyA9IE1lcmdlPFxuICBMYXllckJhc2VDb25maWcsXG4gIHtjb2x1bW5zOiBIZXhhZ29uSWRMYXllckNvbHVtbnNDb25maWc7IHZpc0NvbmZpZzogSGV4YWdvbklkTGF5ZXJWaXNDb25maWd9XG4+ICZcbiAgSGV4YWdvbklkTGF5ZXJWaXN1YWxDaGFubmVsQ29uZmlnO1xuXG5leHBvcnQgdHlwZSBIZXhhZ29uSWRMYXllckRhdGEgPSB7aW5kZXg6IG51bWJlcjsgaWQ7IGNlbnRyb2lkOiBDZW50cm9pZH07XG5cbmNvbnN0IERFRkFVTFRfTElORV9TQ0FMRV9WQUxVRSA9IDg7XG5cbmV4cG9ydCBjb25zdCBoZXhJZFJlcXVpcmVkQ29sdW1uczogWydoZXhfaWQnXSA9IFsnaGV4X2lkJ107XG5leHBvcnQgY29uc3QgaGV4SWRBY2Nlc3NvciA9ICh7aGV4X2lkfTogSGV4YWdvbklkTGF5ZXJDb2x1bW5zQ29uZmlnKSA9PiAoXG4gIGRjOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlXG4pID0+IGQgPT4gZGMudmFsdWVBdChkLmluZGV4LCBoZXhfaWQuZmllbGRJZHgpO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdEVsZXZhdGlvbiA9IDUwMDtcbmV4cG9ydCBjb25zdCBkZWZhdWx0Q292ZXJhZ2UgPSAxO1xuXG5leHBvcnQgY29uc3QgSGV4YWdvbklkVmlzQ29uZmlnczoge1xuICBvcGFjaXR5OiAnb3BhY2l0eSc7XG4gIGNvbG9yUmFuZ2U6ICdjb2xvclJhbmdlJztcbiAgY292ZXJhZ2U6ICdjb3ZlcmFnZSc7XG4gIGVuYWJsZTNkOiAnZW5hYmxlM2QnO1xuICBzaXplUmFuZ2U6ICdlbGV2YXRpb25SYW5nZSc7XG4gIGNvdmVyYWdlUmFuZ2U6ICdjb3ZlcmFnZVJhbmdlJztcbiAgZWxldmF0aW9uU2NhbGU6ICdlbGV2YXRpb25TY2FsZSc7XG4gIGVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3I6ICdlbmFibGVFbGV2YXRpb25ab29tRmFjdG9yJztcbn0gPSB7XG4gIG9wYWNpdHk6ICdvcGFjaXR5JyxcbiAgY29sb3JSYW5nZTogJ2NvbG9yUmFuZ2UnLFxuICBjb3ZlcmFnZTogJ2NvdmVyYWdlJyxcbiAgZW5hYmxlM2Q6ICdlbmFibGUzZCcsXG4gIHNpemVSYW5nZTogJ2VsZXZhdGlvblJhbmdlJyxcbiAgY292ZXJhZ2VSYW5nZTogJ2NvdmVyYWdlUmFuZ2UnLFxuICBlbGV2YXRpb25TY2FsZTogJ2VsZXZhdGlvblNjYWxlJyxcbiAgZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvcjogJ2VuYWJsZUVsZXZhdGlvblpvb21GYWN0b3InXG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIZXhhZ29uSWRMYXllciBleHRlbmRzIExheWVyIHtcbiAgZGF0YVRvRmVhdHVyZToge2NlbnRyb2lkczogQ2VudHJvaWRbXX07XG5cbiAgZGVjbGFyZSBjb25maWc6IEhleGFnb25JZExheWVyQ29uZmlnO1xuICBkZWNsYXJlIHZpc0NvbmZpZ1NldHRpbmdzOiBIZXhhZ29uSWRMYXllclZpc0NvbmZpZ1NldHRpbmdzO1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgICB0aGlzLmRhdGFUb0ZlYXR1cmUgPSB7Y2VudHJvaWRzOiBbXX07XG4gICAgdGhpcy5yZWdpc3RlclZpc0NvbmZpZyhIZXhhZ29uSWRWaXNDb25maWdzKTtcbiAgICB0aGlzLmdldFBvc2l0aW9uQWNjZXNzb3IgPSAoZGF0YUNvbnRhaW5lcjogRGF0YUNvbnRhaW5lckludGVyZmFjZSkgPT5cbiAgICAgIGhleElkQWNjZXNzb3IodGhpcy5jb25maWcuY29sdW1ucykoZGF0YUNvbnRhaW5lcik7XG4gIH1cblxuICBnZXQgdHlwZSgpOiAnaGV4YWdvbklkJyB7XG4gICAgcmV0dXJuICdoZXhhZ29uSWQnO1xuICB9XG5cbiAgZ2V0IG5hbWUoKTogJ0gzJyB7XG4gICAgcmV0dXJuICdIMyc7XG4gIH1cblxuICBnZXQgcmVxdWlyZWRMYXllckNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIGhleElkUmVxdWlyZWRDb2x1bW5zO1xuICB9XG5cbiAgZ2V0IGxheWVySWNvbigpIHtcbiAgICAvLyB1c2UgaGV4YWdvbiBsYXllciBpY29uIGZvciBub3dcbiAgICByZXR1cm4gSDNIZXhhZ29uTGF5ZXJJY29uO1xuICB9XG5cbiAgZ2V0IHZpc3VhbENoYW5uZWxzKCkge1xuICAgIGNvbnN0IHZpc3VhbENoYW5uZWxzID0gc3VwZXIudmlzdWFsQ2hhbm5lbHM7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiB7XG4gICAgICAgIC4uLnZpc3VhbENoYW5uZWxzLmNvbG9yLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldEZpbGxDb2xvcidcbiAgICAgIH0sXG4gICAgICBzaXplOiB7XG4gICAgICAgIC4uLnZpc3VhbENoYW5uZWxzLnNpemUsXG4gICAgICAgIHByb3BlcnR5OiAnaGVpZ2h0JyxcbiAgICAgICAgYWNjZXNzb3I6ICdnZXRFbGV2YXRpb24nLFxuICAgICAgICBudWxsVmFsdWU6IDAsXG4gICAgICAgIGNvbmRpdGlvbjogY29uZmlnID0+IGNvbmZpZy52aXNDb25maWcuZW5hYmxlM2QsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdEVsZXZhdGlvblxuICAgICAgfSxcbiAgICAgIGNvdmVyYWdlOiB7XG4gICAgICAgIHByb3BlcnR5OiAnY292ZXJhZ2UnLFxuICAgICAgICBmaWVsZDogJ2NvdmVyYWdlRmllbGQnLFxuICAgICAgICBzY2FsZTogJ2NvdmVyYWdlU2NhbGUnLFxuICAgICAgICBkb21haW46ICdjb3ZlcmFnZURvbWFpbicsXG4gICAgICAgIHJhbmdlOiAnY292ZXJhZ2VSYW5nZScsXG4gICAgICAgIGtleTogJ2NvdmVyYWdlJyxcbiAgICAgICAgY2hhbm5lbFNjYWxlVHlwZTogQ0hBTk5FTF9TQ0FMRVMucmFkaXVzLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldENvdmVyYWdlJyxcbiAgICAgICAgbnVsbFZhbHVlOiAwLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRDb3ZlcmFnZVxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBzZXRJbml0aWFsTGF5ZXJDb25maWcoZGF0YXNldCkge1xuICAgIGNvbnN0IGRlZmF1bHRDb2xvckZpZWxkID0gZmluZERlZmF1bHRDb2xvckZpZWxkKGRhdGFzZXQpO1xuXG4gICAgaWYgKGRlZmF1bHRDb2xvckZpZWxkKSB7XG4gICAgICB0aGlzLnVwZGF0ZUxheWVyQ29uZmlnPEhleGFnb25JZExheWVyQ29uZmlnPih7XG4gICAgICAgIGNvbG9yRmllbGQ6IGRlZmF1bHRDb2xvckZpZWxkXG4gICAgICB9KTtcbiAgICAgIHRoaXMudXBkYXRlTGF5ZXJWaXN1YWxDaGFubmVsKGRhdGFzZXQsICdjb2xvcicpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc3RhdGljIGZpbmREZWZhdWx0TGF5ZXJQcm9wcyh7ZmllbGRzID0gW10sIGRhdGFDb250YWluZXJ9OiBLZXBsZXJUYWJsZSkge1xuICAgIGNvbnN0IGhleEZpZWxkcyA9IGdldEhleEZpZWxkcyhmaWVsZHMsIGRhdGFDb250YWluZXIpO1xuICAgIGlmICghaGV4RmllbGRzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHtwcm9wczogW119O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBwcm9wczogaGV4RmllbGRzLm1hcChmID0+ICh7XG4gICAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgbGFiZWw6IGYuZGlzcGxheU5hbWUgfHwgZi5uYW1lLFxuICAgICAgICBjb2x1bW5zOiB7XG4gICAgICAgICAgaGV4X2lkOiB7XG4gICAgICAgICAgICB2YWx1ZTogZi5uYW1lLFxuICAgICAgICAgICAgZmllbGRJZHg6IGZpZWxkcy5maW5kSW5kZXgoZmlkID0+IGZpZC5uYW1lID09PSBmLm5hbWUpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KSlcbiAgICB9O1xuICB9XG5cbiAgZ2V0RGVmYXVsdExheWVyQ29uZmlnKHByb3BzID0ge30pIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3VwZXIuZ2V0RGVmYXVsdExheWVyQ29uZmlnKHByb3BzKSxcblxuICAgICAgLy8gYWRkIGhlaWdodCB2aXN1YWwgY2hhbm5lbFxuICAgICAgY292ZXJhZ2VGaWVsZDogbnVsbCxcbiAgICAgIGNvdmVyYWdlRG9tYWluOiBbMCwgMV0sXG4gICAgICBjb3ZlcmFnZVNjYWxlOiAnbGluZWFyJ1xuICAgIH07XG4gIH1cblxuICBjYWxjdWxhdGVEYXRhQXR0cmlidXRlKHtkYXRhQ29udGFpbmVyLCBmaWx0ZXJlZEluZGV4fTogS2VwbGVyVGFibGUsIGdldEhleElkKSB7XG4gICAgY29uc3QgZGF0YTogSGV4YWdvbklkTGF5ZXJEYXRhW10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsdGVyZWRJbmRleC5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgaW5kZXggPSBmaWx0ZXJlZEluZGV4W2ldO1xuICAgICAgY29uc3QgaWQgPSBnZXRIZXhJZCh7aW5kZXh9KTtcbiAgICAgIGNvbnN0IGNlbnRyb2lkID0gdGhpcy5kYXRhVG9GZWF0dXJlLmNlbnRyb2lkc1tpbmRleF07XG5cbiAgICAgIGlmIChjZW50cm9pZCkge1xuICAgICAgICBkYXRhLnB1c2goe1xuICAgICAgICAgIGluZGV4LFxuICAgICAgICAgIGlkLFxuICAgICAgICAgIGNlbnRyb2lkXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIC8vIFRPRE86IGZpeCBjb21wbGV4aXR5XG4gIC8qIGVzbGludC1kaXNhYmxlIGNvbXBsZXhpdHkgKi9cbiAgZm9ybWF0TGF5ZXJEYXRhKGRhdGFzZXRzLCBvbGRMYXllckRhdGEsIG9wdCA9IHt9KSB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmRhdGFJZCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBjb25zdCB7Z3B1RmlsdGVyLCBkYXRhQ29udGFpbmVyfSA9IGRhdGFzZXRzW3RoaXMuY29uZmlnLmRhdGFJZF07XG4gICAgY29uc3QgZ2V0SGV4SWQgPSB0aGlzLmdldFBvc2l0aW9uQWNjZXNzb3IoZGF0YUNvbnRhaW5lcik7XG4gICAgY29uc3Qge2RhdGF9ID0gdGhpcy51cGRhdGVEYXRhKGRhdGFzZXRzLCBvbGRMYXllckRhdGEpO1xuICAgIGNvbnN0IGFjY2Vzc29ycyA9IHRoaXMuZ2V0QXR0cmlidXRlQWNjZXNzb3JzKHtkYXRhQ29udGFpbmVyfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIGdldEhleElkLFxuICAgICAgZ2V0RmlsdGVyVmFsdWU6IGdwdUZpbHRlci5maWx0ZXJWYWx1ZUFjY2Vzc29yKGRhdGFDb250YWluZXIpKCksXG4gICAgICAuLi5hY2Nlc3NvcnNcbiAgICB9O1xuICB9XG4gIC8qIGVzbGludC1lbmFibGUgY29tcGxleGl0eSAqL1xuXG4gIHVwZGF0ZUxheWVyTWV0YShkYXRhQ29udGFpbmVyLCBnZXRIZXhJZCkge1xuICAgIGNvbnN0IHZhbGlkSGV4YWdvbklkcyA9IGRhdGFDb250YWluZXIubWFwKChkLCBpbmRleCkgPT4gZ2V0SGV4SWQoe2luZGV4fSkpLmZpbHRlcihpc1ZhbGlkQ2VsbCk7XG5cbiAgICAvLyBzYXZlIGEgcmVmZXJlbmNlIG9mIGNlbnRyb2lkcyB0byBkYXRhVG9GZWF0dXJlXG4gICAgLy8gc28gd2UgZG9uJ3QgaGF2ZSB0byByZSBjYWxjdWxhdGUgaXQgYWdhaW5cbiAgICBjb25zdCBjZW50cm9pZHMgPSB2YWxpZEhleGFnb25JZHMubWFwKGlkID0+IGdldENlbnRyb2lkKHtpZH0pKTtcbiAgICB0aGlzLmRhdGFUb0ZlYXR1cmUgPSB7Y2VudHJvaWRzfTtcblxuICAgIGNvbnN0IHZlcnRpY2VzID0gdmFsaWRIZXhhZ29uSWRzLm1hcChpZCA9PiBnZXRWZXJ0aWNlcyh7aWR9KSkuZmxhdCgpO1xuICAgIC8vIHVzaW5nIHRoZSBzYW1lIHdheSB0byBjb21wdXRlIGJvdW5kcyBhcyBpbiBiYXNlLWxheWVyLmpzLCBldmVuIGlmIGl0J3MgY29tcGxpY2F0ZWQgYW5kIG5vdCB2ZXJ5IGVmZmljaWVudFxuICAgIGNvbnN0IGxhdEJvdW5kcyA9IGdldExhdExuZ0JvdW5kcyh2ZXJ0aWNlcywgMSwgWy05MCwgOTBdKTtcbiAgICBjb25zdCBsbmdCb3VuZHMgPSBnZXRMYXRMbmdCb3VuZHModmVydGljZXMsIDAsIFstMTgwLCAxODBdKTtcblxuICAgIGNvbnN0IGJvdW5kcyA9XG4gICAgICAhbGF0Qm91bmRzIHx8ICFsbmdCb3VuZHMgPyBudWxsIDogW2xuZ0JvdW5kc1swXSwgbGF0Qm91bmRzWzBdLCBsbmdCb3VuZHNbMV0sIGxhdEJvdW5kc1sxXV07XG4gICAgdGhpcy51cGRhdGVNZXRhKHtib3VuZHN9KTtcbiAgfVxuXG4gIHJlbmRlckxheWVyKG9wdHMpIHtcbiAgICBjb25zdCB7ZGF0YSwgZ3B1RmlsdGVyLCBvYmplY3RIb3ZlcmVkfSA9IG9wdHM7XG4gICAgY29uc3Qge2NvbmZpZ30gPSB0aGlzO1xuICAgIGNvbnN0IHt2aXNDb25maWd9ID0gY29uZmlnO1xuICAgIGNvbnN0IHVwZGF0ZVRyaWdnZXJzID0gdGhpcy5nZXRWaXN1YWxDaGFubmVsVXBkYXRlVHJpZ2dlcnMoKTtcblxuICAgIGNvbnN0IGgzSGV4YWdvbkxheWVyVHJpZ2dlcnMgPSB7XG4gICAgICBnZXRIZXhhZ29uOiB0aGlzLmNvbmZpZy5jb2x1bW5zLFxuICAgICAgZ2V0RmlsbENvbG9yOiB1cGRhdGVUcmlnZ2Vycy5nZXRGaWxsQ29sb3IsXG4gICAgICBnZXRFbGV2YXRpb246IHVwZGF0ZVRyaWdnZXJzLmdldEVsZXZhdGlvbixcbiAgICAgIGdldEZpbHRlclZhbHVlOiBncHVGaWx0ZXIuZmlsdGVyVmFsdWVVcGRhdGVUcmlnZ2Vyc1xuICAgIH07XG5cbiAgICBjb25zdCBjb2x1bW5MYXllclRyaWdnZXJzID0ge1xuICAgICAgZ2V0Q292ZXJhZ2U6IHVwZGF0ZVRyaWdnZXJzLmdldENvdmVyYWdlXG4gICAgfTtcblxuICAgIGNvbnN0IGRlZmF1bHRMYXllclByb3BzID0gdGhpcy5nZXREZWZhdWx0RGVja0xheWVyUHJvcHMob3B0cyk7XG4gICAgY29uc3QgaG92ZXJlZE9iamVjdCA9IHRoaXMuaGFzSG92ZXJlZE9iamVjdChvYmplY3RIb3ZlcmVkKTtcblxuICAgIHJldHVybiBbXG4gICAgICBuZXcgSDNIZXhhZ29uTGF5ZXIoe1xuICAgICAgICAuLi5kZWZhdWx0TGF5ZXJQcm9wcyxcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgd3JhcExvbmdpdHVkZTogZmFsc2UsXG5cbiAgICAgICAgZ2V0SGV4YWdvbjogKHg6IGFueSkgPT4geC5pZCxcblxuICAgICAgICAvLyBjb3ZlcmFnZVxuICAgICAgICBjb3ZlcmFnZTogY29uZmlnLmNvdmVyYWdlRmllbGQgPyAxIDogdmlzQ29uZmlnLmNvdmVyYWdlLFxuXG4gICAgICAgIC8vIGhpZ2hsaWdodFxuICAgICAgICBhdXRvSGlnaGxpZ2h0OiB2aXNDb25maWcuZW5hYmxlM2QsXG4gICAgICAgIGhpZ2hsaWdodENvbG9yOiBISUdITElHSF9DT0xPUl8zRCxcblxuICAgICAgICAvLyBlbGV2YXRpb25cbiAgICAgICAgZXh0cnVkZWQ6IHZpc0NvbmZpZy5lbmFibGUzZCxcbiAgICAgICAgZWxldmF0aW9uU2NhbGU6IHZpc0NvbmZpZy5lbGV2YXRpb25TY2FsZSxcblxuICAgICAgICAvLyByZW5kZXJcbiAgICAgICAgdXBkYXRlVHJpZ2dlcnM6IGgzSGV4YWdvbkxheWVyVHJpZ2dlcnMsXG4gICAgICAgIF9zdWJMYXllclByb3BzOiB7XG4gICAgICAgICAgJ2hleGFnb24tY2VsbCc6IHtcbiAgICAgICAgICAgIHR5cGU6IEVuaGFuY2VkQ29sdW1uTGF5ZXIsXG4gICAgICAgICAgICBnZXRDb3ZlcmFnZTogZGF0YS5nZXRDb3ZlcmFnZSxcbiAgICAgICAgICAgIHVwZGF0ZVRyaWdnZXJzOiBjb2x1bW5MYXllclRyaWdnZXJzXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIC4uLihob3ZlcmVkT2JqZWN0ICYmICFjb25maWcuc2l6ZUZpZWxkXG4gICAgICAgID8gW1xuICAgICAgICAgICAgbmV3IEdlb0pzb25MYXllcih7XG4gICAgICAgICAgICAgIC4uLnRoaXMuZ2V0RGVmYXVsdEhvdmVyTGF5ZXJQcm9wcygpLFxuICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgICAgICAgIGRhdGE6IFtpZFRvUG9seWdvbkdlbyhob3ZlcmVkT2JqZWN0KV0sXG4gICAgICAgICAgICAgIGdldExpbmVDb2xvcjogY29uZmlnLmhpZ2hsaWdodENvbG9yLFxuICAgICAgICAgICAgICBsaW5lV2lkdGhTY2FsZTogREVGQVVMVF9MSU5FX1NDQUxFX1ZBTFVFLFxuICAgICAgICAgICAgICB3cmFwTG9uZ2l0dWRlOiBmYWxzZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICBdXG4gICAgICAgIDogW10pXG4gICAgXTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFvQkEsSUFBQUEsVUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBT0EsSUFBQUMsYUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksb0JBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFFBQUEsR0FBQUwsT0FBQTtBQVFBLElBQUFNLG1CQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxnQkFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsVUFBQSxHQUFBUixPQUFBO0FBQWlELFNBQUFTLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFXLFNBQUEsQ0FBQVosQ0FBQSxJQUFBWSxTQUFBLENBQUFaLENBQUEsUUFBQUEsQ0FBQSxPQUFBRixPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxPQUFBYSxPQUFBLFdB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
@@ -1,17 +1,17 @@
1
- import { h3GetResolution, H3Index, h3IsValid } from 'h3-js';
2
- export { h3GetResolution, h3IsValid };
1
+ import { getResolution, H3IndexInput, isValidCell } from 'h3-js';
2
+ export { getResolution, isValidCell };
3
3
  export type Centroid = [number, number];
4
4
  export declare function getVertices({ id }: {
5
- id: H3Index;
6
- }): number[][];
5
+ id: H3IndexInput;
6
+ }): import("h3-js").CoordPair[];
7
7
  export declare function getCentroid({ id }: {
8
- id: H3Index;
8
+ id: H3IndexInput;
9
9
  }): Centroid;
10
10
  export declare function idToPolygonGeo(object?: {
11
- id: H3Index;
11
+ id: H3IndexInput;
12
12
  }, properties?: any): {
13
13
  geometry: {
14
- coordinates: number[][];
14
+ coordinates: import("h3-js").CoordPair[];
15
15
  type: string;
16
16
  };
17
17
  properties: any;
@@ -5,21 +5,21 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getCentroid = getCentroid;
7
7
  exports.getHexFields = void 0;
8
- exports.getVertices = getVertices;
9
- Object.defineProperty(exports, "h3GetResolution", {
8
+ Object.defineProperty(exports, "getResolution", {
10
9
  enumerable: true,
11
10
  get: function get() {
12
- return _h3Js.h3GetResolution;
11
+ return _h3Js.getResolution;
13
12
  }
14
13
  });
15
- Object.defineProperty(exports, "h3IsValid", {
14
+ exports.getVertices = getVertices;
15
+ exports.idToPolygonGeo = idToPolygonGeo;
16
+ exports.isHexField = void 0;
17
+ Object.defineProperty(exports, "isValidCell", {
16
18
  enumerable: true,
17
19
  get: function get() {
18
- return _h3Js.h3IsValid;
20
+ return _h3Js.isValidCell;
19
21
  }
20
22
  });
21
- exports.idToPolygonGeo = idToPolygonGeo;
22
- exports.isHexField = void 0;
23
23
  var _h3Js = require("h3-js");
24
24
  var _defaultSettings = require("../../constants/default-settings");
25
25
  var _dataUtils = require("../../utils/data-utils");
@@ -47,14 +47,14 @@ var _dataUtils = require("../../utils/data-utils");
47
47
  function getVertices(_ref) {
48
48
  var id = _ref.id;
49
49
  // always reverse it
50
- return (0, _h3Js.h3ToGeoBoundary)(id, true);
50
+ return (0, _h3Js.cellToBoundary)(id, true);
51
51
  }
52
52
 
53
53
  // get centroid should return [lon, lat]
54
54
  function getCentroid(_ref2) {
55
55
  var id = _ref2.id;
56
56
  // always reverse it to [lng, lat]
57
- return (0, _h3Js.h3ToGeo)(id).reverse();
57
+ return (0, _h3Js.cellToLatLng)(id).reverse();
58
58
  }
59
59
  function idToPolygonGeo(object, properties) {
60
60
  if (!(object !== null && object !== void 0 && object.id)) {
@@ -76,11 +76,11 @@ var isHexField = exports.isHexField = function isHexField(field, fieldIdx, dataC
76
76
  var firstDP = dataContainer.find(function (d) {
77
77
  return (0, _dataUtils.notNullorUndefined)(d.valueAt(fieldIdx));
78
78
  }, true);
79
- return firstDP && (0, _h3Js.h3IsValid)(firstDP.valueAt(fieldIdx));
79
+ return firstDP && (0, _h3Js.isValidCell)(firstDP.valueAt(fieldIdx));
80
80
  };
81
81
  var getHexFields = exports.getHexFields = function getHexFields(fields, dataContainer) {
82
82
  return fields.filter(function (f, i) {
83
83
  return isHexField(f, i, dataContainer);
84
84
  });
85
85
  };
86
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaDNKcyIsInJlcXVpcmUiLCJfZGVmYXVsdFNldHRpbmdzIiwiX2RhdGFVdGlscyIsImdldFZlcnRpY2VzIiwiX3JlZiIsImlkIiwiaDNUb0dlb0JvdW5kYXJ5IiwiZ2V0Q2VudHJvaWQiLCJfcmVmMiIsImgzVG9HZW8iLCJyZXZlcnNlIiwiaWRUb1BvbHlnb25HZW8iLCJvYmplY3QiLCJwcm9wZXJ0aWVzIiwidmVydGljZXMiLCJnZW9tZXRyeSIsImNvb3JkaW5hdGVzIiwidHlwZSIsImlzSGV4RmllbGQiLCJleHBvcnRzIiwiZmllbGQiLCJmaWVsZElkeCIsImRhdGFDb250YWluZXIiLCJBTExfRklFTERfVFlQRVMiLCJzdHJpbmciLCJmaXJzdERQIiwiZmluZCIsImQiLCJub3ROdWxsb3JVbmRlZmluZWQiLCJ2YWx1ZUF0IiwiaDNJc1ZhbGlkIiwiZ2V0SGV4RmllbGRzIiwiZmllbGRzIiwiZmlsdGVyIiwiZiIsImkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGF5ZXJzL2gzLWhleGFnb24tbGF5ZXIvaDMtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtoM0dldFJlc29sdXRpb24sIEgzSW5kZXgsIGgzSXNWYWxpZCwgaDNUb0dlbywgaDNUb0dlb0JvdW5kYXJ5fSBmcm9tICdoMy1qcyc7XG5pbXBvcnQge0FMTF9GSUVMRF9UWVBFU30gZnJvbSAnY29uc3RhbnRzL2RlZmF1bHQtc2V0dGluZ3MnO1xuaW1wb3J0IHtub3ROdWxsb3JVbmRlZmluZWR9IGZyb20gJ3V0aWxzL2RhdGEtdXRpbHMnO1xuXG5leHBvcnQge2gzR2V0UmVzb2x1dGlvbiwgaDNJc1ZhbGlkfTtcblxuZXhwb3J0IHR5cGUgQ2VudHJvaWQgPSBbbnVtYmVyLCBudW1iZXJdO1xuXG4vLyBnZXQgdmVydGljZXMgc2hvdWxkIHJldHVybiBbbG9uLCBsYXRdXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVydGljZXMoe2lkfToge2lkOiBIM0luZGV4fSkge1xuICAvLyBhbHdheXMgcmV2ZXJzZSBpdFxuICByZXR1cm4gaDNUb0dlb0JvdW5kYXJ5KGlkLCB0cnVlKTtcbn1cblxuLy8gZ2V0IGNlbnRyb2lkIHNob3VsZCByZXR1cm4gW2xvbiwgbGF0XVxuZXhwb3J0IGZ1bmN0aW9uIGdldENlbnRyb2lkKHtpZH06IHtpZDogSDNJbmRleH0pOiBDZW50cm9pZCB7XG4gIC8vIGFsd2F5cyByZXZlcnNlIGl0IHRvIFtsbmcsIGxhdF1cbiAgcmV0dXJuIGgzVG9HZW8oaWQpLnJldmVyc2UoKSBhcyBDZW50cm9pZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlkVG9Qb2x5Z29uR2VvKG9iamVjdD86IHtpZDogSDNJbmRleH0sIHByb3BlcnRpZXM/OiBhbnkpIHtcbiAgaWYgKCFvYmplY3Q/LmlkKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCB2ZXJ0aWNlcyA9IGdldFZlcnRpY2VzKG9iamVjdCk7XG5cbiAgcmV0dXJuIHtcbiAgICBnZW9tZXRyeToge1xuICAgICAgY29vcmRpbmF0ZXM6IHZlcnRpY2VzLFxuICAgICAgdHlwZTogJ0xpbmVTdHJpbmcnXG4gICAgfSxcbiAgICBwcm9wZXJ0aWVzXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBpc0hleEZpZWxkID0gKGZpZWxkLCBmaWVsZElkeCwgZGF0YUNvbnRhaW5lcikgPT4ge1xuICBpZiAoZmllbGQudHlwZSAhPT0gQUxMX0ZJRUxEX1RZUEVTLnN0cmluZykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGZpcnN0RFAgPSBkYXRhQ29udGFpbmVyLmZpbmQoZCA9PiBub3ROdWxsb3JVbmRlZmluZWQoZC52YWx1ZUF0KGZpZWxkSWR4KSksIHRydWUpO1xuICByZXR1cm4gZmlyc3REUCAmJiBoM0lzVmFsaWQoZmlyc3REUC52YWx1ZUF0KGZpZWxkSWR4KSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0SGV4RmllbGRzID0gKGZpZWxkcywgZGF0YUNvbnRhaW5lcikgPT5cbiAgZmllbGRzLmZpbHRlcigoZiwgaSkgPT4gaXNIZXhGaWVsZChmLCBpLCBkYXRhQ29udGFpbmVyKSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkEsSUFBQUEsS0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZ0JBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFVBQUEsR0FBQUYsT0FBQTtBQXRCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFVQTtBQUNPLFNBQVNHLFdBQVdBLENBQUFDLElBQUEsRUFBc0I7RUFBQSxJQUFwQkMsRUFBRSxHQUFBRCxJQUFBLENBQUZDLEVBQUU7RUFDN0I7RUFDQSxPQUFPLElBQUFDLHFCQUFlLEVBQUNELEVBQUUsRUFBRSxJQUFJLENBQUM7QUFDbEM7O0FBRUE7QUFDTyxTQUFTRSxXQUFXQSxDQUFBQyxLQUFBLEVBQWdDO0VBQUEsSUFBOUJILEVBQUUsR0FBQUcsS0FBQSxDQUFGSCxFQUFFO0VBQzdCO0VBQ0EsT0FBTyxJQUFBSSxhQUFPLEVBQUNKLEVBQUUsQ0FBQyxDQUFDSyxPQUFPLENBQUMsQ0FBQztBQUM5QjtBQUVPLFNBQVNDLGNBQWNBLENBQUNDLE1BQXNCLEVBQUVDLFVBQWdCLEVBQUU7RUFDdkUsSUFBSSxFQUFDRCxNQUFNLGFBQU5BLE1BQU0sZUFBTkEsTUFBTSxDQUFFUCxFQUFFLEdBQUU7SUFDZixPQUFPLElBQUk7RUFDYjtFQUVBLElBQU1TLFFBQVEsR0FBR1gsV0FBVyxDQUFDUyxNQUFNLENBQUM7RUFFcEMsT0FBTztJQUNMRyxRQUFRLEVBQUU7TUFDUkMsV0FBVyxFQUFFRixRQUFRO01BQ3JCRyxJQUFJLEVBQUU7SUFDUixDQUFDO0lBQ0RKLFVBQVUsRUFBVkE7RUFDRixDQUFDO0FBQ0g7QUFFTyxJQUFNSyxVQUFVLEdBQUFDLE9BQUEsQ0FBQUQsVUFBQSxHQUFHLFNBQWJBLFVBQVVBLENBQUlFLEtBQUssRUFBRUMsUUFBUSxFQUFFQyxhQUFhLEVBQUs7RUFDNUQsSUFBSUYsS0FBSyxDQUFDSCxJQUFJLEtBQUtNLGdDQUFlLENBQUNDLE1BQU0sRUFBRTtJQUN6QyxPQUFPLEtBQUs7RUFDZDtFQUVBLElBQU1DLE9BQU8sR0FBR0gsYUFBYSxDQUFDSSxJQUFJLENBQUMsVUFBQUMsQ0FBQztJQUFBLE9BQUksSUFBQUMsNkJBQWtCLEVBQUNELENBQUMsQ0FBQ0UsT0FBTyxDQUFDUixRQUFRLENBQUMsQ0FBQztFQUFBLEdBQUUsSUFBSSxDQUFDO0VBQ3RGLE9BQU9JLE9BQU8sSUFBSSxJQUFBSyxlQUFTLEVBQUNMLE9BQU8sQ0FBQ0ksT0FBTyxDQUFDUixRQUFRLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRU0sSUFBTVUsWUFBWSxHQUFBWixPQUFBLENBQUFZLFlBQUEsR0FBRyxTQUFmQSxZQUFZQSxDQUFJQyxNQUFNLEVBQUVWLGFBQWE7RUFBQSxPQUNoRFUsTUFBTSxDQUFDQyxNQUFNLENBQUMsVUFBQ0MsQ0FBQyxFQUFFQyxDQUFDO0lBQUEsT0FBS2pCLFVBQVUsQ0FBQ2dCLENBQUMsRUFBRUMsQ0FBQyxFQUFFYixhQUFhLENBQUM7RUFBQSxFQUFDO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
86
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaDNKcyIsInJlcXVpcmUiLCJfZGVmYXVsdFNldHRpbmdzIiwiX2RhdGFVdGlscyIsImdldFZlcnRpY2VzIiwiX3JlZiIsImlkIiwiY2VsbFRvQm91bmRhcnkiLCJnZXRDZW50cm9pZCIsIl9yZWYyIiwiY2VsbFRvTGF0TG5nIiwicmV2ZXJzZSIsImlkVG9Qb2x5Z29uR2VvIiwib2JqZWN0IiwicHJvcGVydGllcyIsInZlcnRpY2VzIiwiZ2VvbWV0cnkiLCJjb29yZGluYXRlcyIsInR5cGUiLCJpc0hleEZpZWxkIiwiZXhwb3J0cyIsImZpZWxkIiwiZmllbGRJZHgiLCJkYXRhQ29udGFpbmVyIiwiQUxMX0ZJRUxEX1RZUEVTIiwic3RyaW5nIiwiZmlyc3REUCIsImZpbmQiLCJkIiwibm90TnVsbG9yVW5kZWZpbmVkIiwidmFsdWVBdCIsImlzVmFsaWRDZWxsIiwiZ2V0SGV4RmllbGRzIiwiZmllbGRzIiwiZmlsdGVyIiwiZiIsImkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGF5ZXJzL2gzLWhleGFnb24tbGF5ZXIvaDMtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtnZXRSZXNvbHV0aW9uLCBIM0luZGV4SW5wdXQsIGlzVmFsaWRDZWxsLCBjZWxsVG9MYXRMbmcsIGNlbGxUb0JvdW5kYXJ5fSBmcm9tICdoMy1qcyc7XG5pbXBvcnQge0FMTF9GSUVMRF9UWVBFU30gZnJvbSAnY29uc3RhbnRzL2RlZmF1bHQtc2V0dGluZ3MnO1xuaW1wb3J0IHtub3ROdWxsb3JVbmRlZmluZWR9IGZyb20gJ3V0aWxzL2RhdGEtdXRpbHMnO1xuXG5leHBvcnQge2dldFJlc29sdXRpb24sIGlzVmFsaWRDZWxsfTtcblxuZXhwb3J0IHR5cGUgQ2VudHJvaWQgPSBbbnVtYmVyLCBudW1iZXJdO1xuXG4vLyBnZXQgdmVydGljZXMgc2hvdWxkIHJldHVybiBbbG9uLCBsYXRdXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmVydGljZXMoe2lkfToge2lkOiBIM0luZGV4SW5wdXR9KSB7XG4gIC8vIGFsd2F5cyByZXZlcnNlIGl0XG4gIHJldHVybiBjZWxsVG9Cb3VuZGFyeShpZCwgdHJ1ZSk7XG59XG5cbi8vIGdldCBjZW50cm9pZCBzaG91bGQgcmV0dXJuIFtsb24sIGxhdF1cbmV4cG9ydCBmdW5jdGlvbiBnZXRDZW50cm9pZCh7aWR9OiB7aWQ6IEgzSW5kZXhJbnB1dH0pOiBDZW50cm9pZCB7XG4gIC8vIGFsd2F5cyByZXZlcnNlIGl0IHRvIFtsbmcsIGxhdF1cbiAgcmV0dXJuIGNlbGxUb0xhdExuZyhpZCkucmV2ZXJzZSgpIGFzIENlbnRyb2lkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaWRUb1BvbHlnb25HZW8ob2JqZWN0Pzoge2lkOiBIM0luZGV4SW5wdXR9LCBwcm9wZXJ0aWVzPzogYW55KSB7XG4gIGlmICghb2JqZWN0Py5pZCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgdmVydGljZXMgPSBnZXRWZXJ0aWNlcyhvYmplY3QpO1xuXG4gIHJldHVybiB7XG4gICAgZ2VvbWV0cnk6IHtcbiAgICAgIGNvb3JkaW5hdGVzOiB2ZXJ0aWNlcyxcbiAgICAgIHR5cGU6ICdMaW5lU3RyaW5nJ1xuICAgIH0sXG4gICAgcHJvcGVydGllc1xuICB9O1xufVxuXG5leHBvcnQgY29uc3QgaXNIZXhGaWVsZCA9IChmaWVsZCwgZmllbGRJZHgsIGRhdGFDb250YWluZXIpID0+IHtcbiAgaWYgKGZpZWxkLnR5cGUgIT09IEFMTF9GSUVMRF9UWVBFUy5zdHJpbmcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBmaXJzdERQID0gZGF0YUNvbnRhaW5lci5maW5kKGQgPT4gbm90TnVsbG9yVW5kZWZpbmVkKGQudmFsdWVBdChmaWVsZElkeCkpLCB0cnVlKTtcbiAgcmV0dXJuIGZpcnN0RFAgJiYgaXNWYWxpZENlbGwoZmlyc3REUC52YWx1ZUF0KGZpZWxkSWR4KSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0SGV4RmllbGRzID0gKGZpZWxkcywgZGF0YUNvbnRhaW5lcikgPT5cbiAgZmllbGRzLmZpbHRlcigoZiwgaSkgPT4gaXNIZXhGaWVsZChmLCBpLCBkYXRhQ29udGFpbmVyKSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkEsSUFBQUEsS0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZ0JBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFVBQUEsR0FBQUYsT0FBQTtBQXRCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFVQTtBQUNPLFNBQVNHLFdBQVdBLENBQUFDLElBQUEsRUFBMkI7RUFBQSxJQUF6QkMsRUFBRSxHQUFBRCxJQUFBLENBQUZDLEVBQUU7RUFDN0I7RUFDQSxPQUFPLElBQUFDLG9CQUFjLEVBQUNELEVBQUUsRUFBRSxJQUFJLENBQUM7QUFDakM7O0FBRUE7QUFDTyxTQUFTRSxXQUFXQSxDQUFBQyxLQUFBLEVBQXFDO0VBQUEsSUFBbkNILEVBQUUsR0FBQUcsS0FBQSxDQUFGSCxFQUFFO0VBQzdCO0VBQ0EsT0FBTyxJQUFBSSxrQkFBWSxFQUFDSixFQUFFLENBQUMsQ0FBQ0ssT0FBTyxDQUFDLENBQUM7QUFDbkM7QUFFTyxTQUFTQyxjQUFjQSxDQUFDQyxNQUEyQixFQUFFQyxVQUFnQixFQUFFO0VBQzVFLElBQUksRUFBQ0QsTUFBTSxhQUFOQSxNQUFNLGVBQU5BLE1BQU0sQ0FBRVAsRUFBRSxHQUFFO0lBQ2YsT0FBTyxJQUFJO0VBQ2I7RUFFQSxJQUFNUyxRQUFRLEdBQUdYLFdBQVcsQ0FBQ1MsTUFBTSxDQUFDO0VBRXBDLE9BQU87SUFDTEcsUUFBUSxFQUFFO01BQ1JDLFdBQVcsRUFBRUYsUUFBUTtNQUNyQkcsSUFBSSxFQUFFO0lBQ1IsQ0FBQztJQUNESixVQUFVLEVBQVZBO0VBQ0YsQ0FBQztBQUNIO0FBRU8sSUFBTUssVUFBVSxHQUFBQyxPQUFBLENBQUFELFVBQUEsR0FBRyxTQUFiQSxVQUFVQSxDQUFJRSxLQUFLLEVBQUVDLFFBQVEsRUFBRUMsYUFBYSxFQUFLO0VBQzVELElBQUlGLEtBQUssQ0FBQ0gsSUFBSSxLQUFLTSxnQ0FBZSxDQUFDQyxNQUFNLEVBQUU7SUFDekMsT0FBTyxLQUFLO0VBQ2Q7RUFFQSxJQUFNQyxPQUFPLEdBQUdILGFBQWEsQ0FBQ0ksSUFBSSxDQUFDLFVBQUFDLENBQUM7SUFBQSxPQUFJLElBQUFDLDZCQUFrQixFQUFDRCxDQUFDLENBQUNFLE9BQU8sQ0FBQ1IsUUFBUSxDQUFDLENBQUM7RUFBQSxHQUFFLElBQUksQ0FBQztFQUN0RixPQUFPSSxPQUFPLElBQUksSUFBQUssaUJBQVcsRUFBQ0wsT0FBTyxDQUFDSSxPQUFPLENBQUNSLFFBQVEsQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFFTSxJQUFNVSxZQUFZLEdBQUFaLE9BQUEsQ0FBQVksWUFBQSxHQUFHLFNBQWZBLFlBQVlBLENBQUlDLE1BQU0sRUFBRVYsYUFBYTtFQUFBLE9BQ2hEVSxNQUFNLENBQUNDLE1BQU0sQ0FBQyxVQUFDQyxDQUFDLEVBQUVDLENBQUM7SUFBQSxPQUFLakIsVUFBVSxDQUFDZ0IsQ0FBQyxFQUFFQyxDQUFDLEVBQUViLGFBQWEsQ0FBQztFQUFBLEVBQUM7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -386,7 +386,7 @@ var getPolygonFilterFunctor = exports.getPolygonFilterFunctor = function getPoly
386
386
  }
387
387
  return function (data) {
388
388
  var id = getPosition(data);
389
- if (!(0, _h3Utils.h3IsValid)(id)) {
389
+ if (!(0, _h3Utils.isValidCell)(id)) {
390
390
  return false;
391
391
  }
392
392
  var pos = (0, _h3Utils.getCentroid)({
@@ -1078,4 +1078,4 @@ function getIntervalBins(filter) {
1078
1078
  var values = Object.values(bins);
1079
1079
  return values[0] ? values[0][interval] : null;
1080
1080
  }
1081
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZDNBcnJheSIsInJlcXVpcmUiLCJfa2V5bWlycm9yIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jb25zb2xlIiwiX2dldCIsIl9pc0VxdWFsIiwiX2Jvb2xlYW5XaXRoaW4iLCJfaGVscGVycyIsIl9kZWNpbWFsIiwiX2RlZmF1bHRTZXR0aW5ncyIsIl9kYXRhVXRpbHMiLCJTY2FsZVV0aWxzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfdHlwZXMiLCJfdXRpbHMiLCJfaDNVdGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIlRpbWVzdGFtcFN0ZXBNYXAiLCJleHBvcnRzIiwibWF4Iiwic3RlcCIsIk51bWJlciIsIlBPU0lUSVZFX0lORklOSVRZIiwiaGlzdG9ncmFtQmlucyIsImVubGFyZ2VkSGlzdG9ncmFtQmlucyIsImR1cmF0aW9uU2Vjb25kIiwiZHVyYXRpb25NaW51dGUiLCJkdXJhdGlvbkhvdXIiLCJkdXJhdGlvbkRheSIsImR1cmF0aW9uV2VlayIsImR1cmF0aW9uWWVhciIsIlBMT1RfVFlQRVMiLCJrZXlNaXJyb3IiLCJoaXN0b2dyYW0iLCJsaW5lQ2hhcnQiLCJGSUxURVJfVVBEQVRFUl9QUk9QUyIsImRhdGFJZCIsIm5hbWUiLCJsYXllcklkIiwiTElNSVRFRF9GSUxURVJfRUZGRUNUX1BST1BTIiwiU3VwcG9ydGVkUGxvdFR5cGUiLCJGSUxURVJfVFlQRVMiLCJ0aW1lUmFuZ2UiLCJBTExfRklFTERfVFlQRVMiLCJpbnRlZ2VyIiwicmVhbCIsInJhbmdlIiwiRklMVEVSX0NPTVBPTkVOVFMiLCJzZWxlY3QiLCJtdWx0aVNlbGVjdCIsInBvbHlnb24iLCJERUZBVUxUX0ZJTFRFUl9TVFJVQ1RVUkUiLCJmcmVlemUiLCJpZCIsImZpeGVkRG9tYWluIiwiZW5sYXJnZWQiLCJpc0FuaW1hdGluZyIsImFuaW1hdGlvbldpbmRvdyIsIkFOSU1BVElPTl9XSU5ET1ciLCJmcmVlIiwic3BlZWQiLCJ0eXBlIiwiZmllbGRJZHgiLCJkb21haW4iLCJ2YWx1ZSIsInBsb3RUeXBlIiwieUF4aXMiLCJpbnRlcnZhbCIsImdwdSIsIkZJTFRFUl9JRF9MRU5HVEgiLCJMQVlFUl9GSUxURVJTIiwiZ2V0RGVmYXVsdEZpbHRlciIsInRvQXJyYXkiLCJnZW5lcmF0ZUhhc2hJZCIsInNob3VsZEFwcGx5RmlsdGVyIiwiZGF0YXNldElkIiwiZGF0YUlkcyIsImluY2x1ZGVzIiwidmFsaWRhdGVQb2x5Z29uRmlsdGVyIiwiZGF0YXNldCIsImxheWVycyIsImZhaWxlZCIsImlzVmFsaWRGaWx0ZXJWYWx1ZSIsImlzVmFsaWREYXRhc2V0IiwibGF5ZXIiLCJmaW5kIiwibCIsImZpbHRlclZhbGlkYXRvcnMiLCJ2YWxpZGF0ZUZpbHRlciIsImZpbHRlckRhdGFJZCIsImZpbHRlckRhdGFzZXRJbmRleCIsImluZGV4T2YiLCJpbml0aWFsaXplRmlsdGVyIiwiZmllbGROYW1lIiwiX2FwcGx5RmlsdGVyRmllbGROYW1lIiwiYXBwbHlGaWx0ZXJGaWVsZE5hbWUiLCJtZXJnZURvbWFpbiIsInVwZGF0ZWRGaWx0ZXIiLCJ1cGRhdGVkRGF0YXNldCIsImFkanVzdFZhbHVlVG9GaWx0ZXJEb21haW4iLCJ2YWxpZGF0ZUZpbHRlcllBeGlzIiwidmFsaWRhdGVGaWx0ZXJXaXRoRGF0YSIsImZpZWxkcyIsIl9maWx0ZXIiLCJtYXRjaGVkQXhpcyIsIl9yZWYiLCJnZXRGaWx0ZXJQbG90IiwiZ2V0RmlsdGVyUHJvcHMiLCJmaWVsZCIsImZpZWxkRG9tYWluIiwiZmlsdGVyUHJvcHMiLCJmaWVsZFR5cGUiLCJ0eXBlT3B0aW9ucyIsInN0cmluZyIsImRhdGUiLCJ0aW1lc3RhbXAiLCJnZXRQb2x5Z29uRmlsdGVyRnVuY3RvciIsImRhdGFDb250YWluZXIiLCJnZXRQb3NpdGlvbiIsImdldFBvc2l0aW9uQWNjZXNzb3IiLCJMQVlFUl9UWVBFUyIsInBvaW50IiwiaWNvbiIsImRhdGEiLCJwb3MiLCJldmVyeSIsImlzRmluaXRlIiwiaXNJblBvbHlnb24iLCJhcmMiLCJsaW5lIiwiaGV4YWdvbklkIiwiZGF0YVRvRmVhdHVyZSIsImNlbnRyb2lkcyIsImNlbnRyb2lkIiwiaW5kZXgiLCJoM0lzVmFsaWQiLCJnZXRDZW50cm9pZCIsImdldEZpbHRlckZ1bmN0aW9uIiwidmFsdWVBY2Nlc3NvciIsImRlZmF1bHRGdW5jIiwiZCIsImlzSW5SYW5nZSIsIm1hcHBlZFZhbHVlIiwiYWNjZXNzb3IiLCJBcnJheSIsImlzQXJyYXkiLCJ0aW1lVG9Vbml4TWlsbGkiLCJmb3JtYXQiLCJsYXllckZpbHRlckZ1bmN0aW9ucyIsIm1hcCIsImNvbmZpZyIsImZpbHRlckZ1bmMiLCJ1cGRhdGVGaWx0ZXJEYXRhSWQiLCJmaWx0ZXJEYXRhQnlGaWx0ZXJUeXBlcyIsIl9yZWYyIiwiZHluYW1pY0RvbWFpbkZpbHRlcnMiLCJjcHVGaWx0ZXJzIiwiZmlsdGVyRnVuY3MiLCJmaWx0ZXJlZEluZGV4Rm9yRG9tYWluIiwiZmlsdGVyZWRJbmRleCIsImZpbHRlckNvbnRleHQiLCJmaWx0ZXJGdW5jQ2FsbGVyIiwibnVtUm93cyIsIm1hdGNoRm9yRG9tYWluIiwibWF0Y2hGb3JSZW5kZXIiLCJnZXRGaWx0ZXJSZWNvcmQiLCJmaWx0ZXJzIiwib3B0IiwidW5kZWZpbmVkIiwiZmlsdGVyUmVjb3JkIiwiZHluYW1pY0RvbWFpbiIsImNwdSIsImYiLCJpZ25vcmVEb21haW4iLCJjcHVPbmx5IiwiZGlmZkZpbHRlcnMiLCJvbGRGaWx0ZXJSZWNvcmQiLCJmaWx0ZXJDaGFuZ2VkIiwiZW50cmllcyIsIl9yZWYzIiwiX3JlZjQiLCJfc2xpY2VkVG9BcnJheTIiLCJyZWNvcmQiLCJpdGVtcyIsIm9sZEZpbHRlciIsInByb3AiLCJjb25jYXQiLCJfcmVmNSIsIm5vdE51bGxvclVuZGVmaW5lZCIsImZpbHRlcmVkVmFsdWUiLCJnZXROdW1lcmljRmllbGREb21haW4iLCJtYXBJbmRleCIsImdldExpbmVhckRvbWFpbiIsImRpZmYiLCJnZXROdW1lcmljU3RlcFNpemUiLCJmb3JtYXROdW1iZXJCeVN0ZXAiLCJfZ2V0SGlzdG9ncmFtIiwiZ2V0SGlzdG9ncmFtIiwiZW5sYXJnZWRIaXN0b2dyYW0iLCJNYXRoIiwiYWJzIiwieCIsImV4cG9uZW50aWFsRm9ybSIsInRvRXhwb25lbnRpYWwiLCJleHBvbmVudCIsInBhcnNlRmxvYXQiLCJzcGxpdCIsIkRlY2ltYWwiLCJwb3ciLCJ0b051bWJlciIsImdldFRpbWVzdGFtcEZpZWxkRG9tYWluIiwiZGVmYXVsdFRpbWVGb3JtYXQiLCJnZXRUaW1lV2lkZ2V0VGl0bGVGb3JtYXR0ZXIiLCJlbnRyeSIsIl9nZXRIaXN0b2dyYW0yIiwiaGlzdG9ncmFtQ29uc3RydWN0IiwiYmlucyIsImQzSGlzdG9ncmFtIiwidGhyZXNob2xkcyIsInRpY2tzIiwiYmluIiwiY291bnQiLCJ4MCIsIngxIiwidmFsIiwiYm91bmQiLCJmbG9vciIsImNlaWwiLCJib29sZWFuV2l0aGluIiwidHVyZlBvaW50IiwiaXNWYWxpZFRpbWVEb21haW4iLCJnZXRUaW1lV2lkZ2V0SGludEZvcm1hdHRlciIsInYiLCJpc05hTiIsIkJvb2xlYW4iLCJpbnB1dCIsImNvb3JkaW5hdGVzIiwiX2ZpbHRlciRtYXBwZWRWYWx1ZSIsImdldENvbHVtbkZpZWxkSWR4IiwiQ29uc29sZSIsIndhcm4iLCJzZXJpZXMiLCJyb3ciLCJyb3dJbmRleCIsInkiLCJ2YWx1ZUF0IiwiX3JlZjYiLCJzb3J0IiwiYiIsImFzY2VuZGluZyIsInlEb21haW4iLCJleHRlbnQiLCJ4RG9tYWluIiwiZ2V0RGVmYXVsdEZpbHRlclBsb3RUeXBlIiwiZmlsdGVyUGxvdFR5cGVzIiwiYXBwbHlGaWx0ZXJzVG9EYXRhc2V0cyIsImRhdGFzZXRJZHMiLCJkYXRhc2V0cyIsInJlZHVjZSIsImFjYyIsImxheWVyc1RvRmlsdGVyIiwiYXBwbGllZEZpbHRlcnMiLCJ0YWJsZSIsImZpbHRlclRhYmxlIiwib3B0aW9uIiwiZmllbGRJbmRleCIsImdldENvbHVtbkZpbHRlclByb3BzIiwibmV3RmlsdGVyIiwibWVyZ2VGaWx0ZXJEb21haW5TdGVwIiwiYXNzaWduIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImNvbWJpbmVkRG9tYWluIiwidW5pcXVlIiwiZmVhdHVyZVRvRmlsdGVyVmFsdWUiLCJmZWF0dXJlIiwiZmlsdGVySWQiLCJwcm9wZXJ0aWVzIiwiZ2V0RmlsdGVySWRJbkZlYXR1cmUiLCJnZW5lcmF0ZVBvbHlnb25GaWx0ZXIiLCJsYWJlbCIsImlzVmlzaWJsZSIsImZpbHRlckRhdGFzZXRDUFUiLCJzdGF0ZSIsImRhdGFzZXRGaWx0ZXJzIiwiY3B1RmlsdGVyZWREYXRhc2V0IiwiZmlsdGVyVGFibGVDUFUiLCJ2YWxpZGF0ZUZpbHRlcnNVcGRhdGVEYXRhc2V0cyIsImZpbHRlcnNUb1ZhbGlkYXRlIiwidmFsaWRhdGVkIiwidXBkYXRlZERhdGFzZXRzIiwiX2RhdGFzZXRJZHMkcmVkdWNlIiwiX3ZhbGlkYXRlRmlsdGVyV2l0aERhIiwiYXVnbWVudGVkRGF0YXNldHMiLCJhcHBseVRvRGF0YXNldHMiLCJ2YWxpZGF0ZWRGaWx0ZXIiLCJpc0VxdWFsIiwiZ2V0SW50ZXJ2YWxCaW5zIiwiX2ZpbHRlciRwbG90VHlwZSIsInZhbHVlcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9maWx0ZXItdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHthc2NlbmRpbmcsIGV4dGVudCwgaGlzdG9ncmFtIGFzIGQzSGlzdG9ncmFtLCB0aWNrc30gZnJvbSAnZDMtYXJyYXknO1xuaW1wb3J0IGtleU1pcnJvciBmcm9tICdrZXltaXJyb3InO1xuaW1wb3J0IHtjb25zb2xlIGFzIENvbnNvbGV9IGZyb20gJ2dsb2JhbC9jb25zb2xlJztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoL2dldCc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICdsb2Rhc2gvaXNFcXVhbCc7XG5cbmltcG9ydCBib29sZWFuV2l0aGluIGZyb20gJ0B0dXJmL2Jvb2xlYW4td2l0aGluJztcbmltcG9ydCB7cG9pbnQgYXMgdHVyZlBvaW50fSBmcm9tICdAdHVyZi9oZWxwZXJzJztcbmltcG9ydCB7RGVjaW1hbH0gZnJvbSAnZGVjaW1hbC5qcyc7XG5pbXBvcnQge0FMTF9GSUVMRF9UWVBFUywgRklMVEVSX1RZUEVTLCBBTklNQVRJT05fV0lORE9XfSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5pbXBvcnQge25vdE51bGxvclVuZGVmaW5lZCwgdW5pcXVlLCB0aW1lVG9Vbml4TWlsbGl9IGZyb20gJy4vZGF0YS11dGlscyc7XG5pbXBvcnQgKiBhcyBTY2FsZVV0aWxzIGZyb20gJy4vZGF0YS1zY2FsZS11dGlscyc7XG5pbXBvcnQge0xBWUVSX1RZUEVTfSBmcm9tICdsYXllcnMvdHlwZXMnO1xuaW1wb3J0IHtnZW5lcmF0ZUhhc2hJZCwgc2V0LCB0b0FycmF5fSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7Z2V0Q2VudHJvaWQsIGgzSXNWYWxpZH0gZnJvbSAnbGF5ZXJzL2gzLWhleGFnb24tbGF5ZXIvaDMtdXRpbHMnO1xuXG5pbXBvcnQge1xuICBGaWx0ZXIsXG4gIEZpbHRlckJhc2UsXG4gIFBvbHlnb25GaWx0ZXIsXG4gIERhdGFzZXRzLFxuICBGaWVsZERvbWFpbixcbiAgVGltZVJhbmdlRmllbGREb21haW4sXG4gIEhpc3RvZ3JhbUJpbixcbiAgRmVhdHVyZSxcbiAgRmVhdHVyZVZhbHVlLFxuICBWaXNTdGF0ZSxcbiAgTGluZUNoYXJ0LFxuICBUaW1lUmFuZ2VGaWx0ZXIsXG4gIFJhbmdlRmllbGREb21haW5cbn0gZnJvbSAnLi4vcmVkdWNlcnMvdmlzLXN0YXRlLXVwZGF0ZXJzJztcbmltcG9ydCBLZXBsZXJUYWJsZSwge0ZpZWxkLCBGaWx0ZXJSZWNvcmQsIEZpbHRlckRhdGFzZXRPcHR9IGZyb20gJy4vdGFibGUtdXRpbHMva2VwbGVyLXRhYmxlJztcbmltcG9ydCB7TGF5ZXJ9IGZyb20gJ2xheWVycyc7XG5pbXBvcnQge1BhcnNlZEZpbHRlcn0gZnJvbSAnc2NoZW1hcyc7XG5pbXBvcnQge0RhdGFDb250YWluZXJJbnRlcmZhY2V9IGZyb20gJy4vdGFibGUtdXRpbHMvZGF0YS1jb250YWluZXItaW50ZXJmYWNlJztcbmltcG9ydCB7TWlsbGlzZWNvbmR9IGZyb20gJ2Nsb3VkLXByb3ZpZGVycyc7XG5pbXBvcnQge0VudHJpZXN9IGZyb20gJ3JlZHVjZXJzJztcblxuZXhwb3J0IHR5cGUgRmlsdGVyUmVzdWx0ID0ge1xuICBmaWx0ZXJlZEluZGV4Rm9yRG9tYWluPzogbnVtYmVyW107XG4gIGZpbHRlcmVkSW5kZXg/OiBudW1iZXJbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEZpbHRlckNoYW5nZWQgPSB7XG4gIFtrZXkgaW4ga2V5b2YgRmlsdGVyUmVjb3JkXToge1xuICAgIFtrZXk6IHN0cmluZ106ICdhZGRlZCcgfCAnZGVsZXRlZCcgfCAnbmFtZV9jaGFuZ2VkJyB8ICd2YWx1ZV9jaGFuZ2VkJyB8ICdkYXRhSWRfY2hhbmdlZCc7XG4gIH0gfCBudWxsO1xufTtcblxuZXhwb3J0IHR5cGUgZGF0YVZhbHVlQWNjZXNzb3IgPSAoZGF0YToge2luZGV4OiBudW1iZXJ9KSA9PiBudW1iZXIgfCBudWxsO1xuXG5leHBvcnQgY29uc3QgVGltZXN0YW1wU3RlcE1hcCA9IFtcbiAge21heDogMSwgc3RlcDogMC4wNX0sXG4gIHttYXg6IDEwLCBzdGVwOiAwLjF9LFxuICB7bWF4OiAxMDAsIHN0ZXA6IDF9LFxuICB7bWF4OiA1MDAsIHN0ZXA6IDV9LFxuICB7bWF4OiAxMDAwLCBzdGVwOiAxMH0sXG4gIHttYXg6IDUwMDAsIHN0ZXA6IDUwfSxcbiAge21heDogTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLCBzdGVwOiAxMDAwfVxuXTtcblxuZXhwb3J0IGNvbnN0IGhpc3RvZ3JhbUJpbnMgPSAzMDtcbmV4cG9ydCBjb25zdCBlbmxhcmdlZEhpc3RvZ3JhbUJpbnMgPSAxMDA7XG5cbmNvbnN0IGR1cmF0aW9uU2Vjb25kID0gMTAwMDtcbmNvbnN0IGR1cmF0aW9uTWludXRlID0gZHVyYXRpb25TZWNvbmQgKiA2MDtcbmNvbnN0IGR1cmF0aW9uSG91ciA9IGR1cmF0aW9uTWludXRlICogNjA7XG5jb25zdCBkdXJhdGlvbkRheSA9IGR1cmF0aW9uSG91ciAqIDI0O1xuY29uc3QgZHVyYXRpb25XZWVrID0gZHVyYXRpb25EYXkgKiA3O1xuY29uc3QgZHVyYXRpb25ZZWFyID0gZHVyYXRpb25EYXkgKiAzNjU7XG5cbmV4cG9ydCBjb25zdCBQTE9UX1RZUEVTID0ga2V5TWlycm9yKHtcbiAgaGlzdG9ncmFtOiBudWxsLFxuICBsaW5lQ2hhcnQ6IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgRklMVEVSX1VQREFURVJfUFJPUFMgPSBrZXlNaXJyb3Ioe1xuICBkYXRhSWQ6IG51bGwsXG4gIG5hbWU6IG51bGwsXG4gIGxheWVySWQ6IG51bGxcbn0pO1xuXG5leHBvcnQgY29uc3QgTElNSVRFRF9GSUxURVJfRUZGRUNUX1BST1BTID0ga2V5TWlycm9yKHtcbiAgW0ZJTFRFUl9VUERBVEVSX1BST1BTLm5hbWVdOiBudWxsXG59KTtcbi8qKlxuICogTWF4IG51bWJlciBvZiBmaWx0ZXIgdmFsdWUgYnVmZmVycyB0aGF0IGRlY2suZ2wgcHJvdmlkZXNcbiAqL1xuXG5jb25zdCBTdXBwb3J0ZWRQbG90VHlwZSA9IHtcbiAgW0ZJTFRFUl9UWVBFUy50aW1lUmFuZ2VdOiB7XG4gICAgZGVmYXVsdDogJ2hpc3RvZ3JhbScsXG4gICAgW0FMTF9GSUVMRF9UWVBFUy5pbnRlZ2VyXTogJ2xpbmVDaGFydCcsXG4gICAgW0FMTF9GSUVMRF9UWVBFUy5yZWFsXTogJ2xpbmVDaGFydCdcbiAgfSxcbiAgW0ZJTFRFUl9UWVBFUy5yYW5nZV06IHtcbiAgICBkZWZhdWx0OiAnaGlzdG9ncmFtJyxcbiAgICBbQUxMX0ZJRUxEX1RZUEVTLmludGVnZXJdOiAnbGluZUNoYXJ0JyxcbiAgICBbQUxMX0ZJRUxEX1RZUEVTLnJlYWxdOiAnbGluZUNoYXJ0J1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgRklMVEVSX0NPTVBPTkVOVFMgPSB7XG4gIFtGSUxURVJfVFlQRVMuc2VsZWN0XTogJ1NpbmdsZVNlbGVjdEZpbHRlcicsXG4gIFtGSUxURVJfVFlQRVMubXVsdGlTZWxlY3RdOiAnTXVsdGlTZWxlY3RGaWx0ZXInLFxuICBbRklMVEVSX1RZUEVTLnRpbWVSYW5nZV06ICdUaW1lUmFuZ2VGaWx0ZXInLFxuICBbRklMVEVSX1RZUEVTLnJhbmdlXTogJ1JhbmdlRmlsdGVyJyxcbiAgW0ZJTFRFUl9UWVBFUy5wb2x5Z29uXTogJ1BvbHlnb25GaWx0ZXInXG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9GSUxURVJfU1RSVUNUVVJFID0ge1xuICBkYXRhSWQ6IFtdLCAvLyBbc3RyaW5nXVxuICBmcmVlemU6IGZhbHNlLFxuICBpZDogbnVsbCxcblxuICAvLyB0aW1lIHJhbmdlIGZpbHRlciBzcGVjaWZpY1xuICBmaXhlZERvbWFpbjogZmFsc2UsXG4gIGVubGFyZ2VkOiBmYWxzZSxcbiAgaXNBbmltYXRpbmc6IGZhbHNlLFxuICBhbmltYXRpb25XaW5kb3c6IEFOSU1BVElPTl9XSU5ET1cuZnJlZSxcbiAgc3BlZWQ6IDEsXG5cbiAgLy8gZmllbGQgc3BlY2lmaWNcbiAgbmFtZTogW10sIC8vIHN0cmluZ1xuICB0eXBlOiBudWxsLFxuICBmaWVsZElkeDogW10sIC8vIFtpbnRlZ2VyXVxuICBkb21haW46IG51bGwsXG4gIHZhbHVlOiBudWxsLFxuXG4gIC8vIHBsb3RcbiAgcGxvdFR5cGU6IFBMT1RfVFlQRVMuaGlzdG9ncmFtLFxuICB5QXhpczogbnVsbCxcbiAgaW50ZXJ2YWw6IG51bGwsXG5cbiAgLy8gbW9kZVxuICBncHU6IGZhbHNlXG59O1xuXG5leHBvcnQgY29uc3QgRklMVEVSX0lEX0xFTkdUSCA9IDQ7XG5cbmV4cG9ydCBjb25zdCBMQVlFUl9GSUxURVJTID0gW0ZJTFRFUl9UWVBFUy5wb2x5Z29uXTtcblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBmaWx0ZXIgd2l0aCBhIGRhdGFzZXQgaWQgYXMgZGF0YUlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0RmlsdGVyKGRhdGFJZDogc3RyaW5nIHwgbnVsbCB8IHN0cmluZ1tdKTogRmlsdGVyQmFzZSB7XG4gIHJldHVybiB7XG4gICAgLi4uREVGQVVMVF9GSUxURVJfU1RSVUNUVVJFLFxuICAgIC8vIHN0b3JlIGl0IGFzIGRhdGFJZCBhbmQgaXQgY291bGQgYmUgb25lIG9yIG1hbnlcbiAgICBkYXRhSWQ6IHRvQXJyYXkoZGF0YUlkKSxcbiAgICBpZDogZ2VuZXJhdGVIYXNoSWQoRklMVEVSX0lEX0xFTkdUSClcbiAgfTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIGZpbHRlciBpcyB2YWxpZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gZGF0YUlkXG4gKiBAcGFyYW0gIGZpbHRlciB0byB2YWxpZGF0ZVxuICogQHBhcmFtICBkYXRhc2V0SWQgaWQgdG8gdmFsaWRhdGUgZmlsdGVyIGFnYWluc3RcbiAqIEByZXR1cm4gdHJ1ZSBpZiBhIGZpbHRlciBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaG91bGRBcHBseUZpbHRlcihmaWx0ZXI6IEZpbHRlciwgZGF0YXNldElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgY29uc3QgZGF0YUlkcyA9IHRvQXJyYXkoZmlsdGVyLmRhdGFJZCk7XG4gIHJldHVybiBkYXRhSWRzLmluY2x1ZGVzKGRhdGFzZXRJZCkgJiYgZmlsdGVyLnZhbHVlICE9PSBudWxsO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlcyBhbmQgbW9kaWZpZXMgcG9seWdvbiBmaWx0ZXIgc3RydWN0dXJlXG4gKiBAcGFyYW0gZGF0YXNldFxuICogQHBhcmFtIGZpbHRlclxuICogQHBhcmFtIGxheWVyc1xuICogQHJldHVybiAtIHtmaWx0ZXIsIGRhdGFzZXR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVBvbHlnb25GaWx0ZXIoXG4gIGRhdGFzZXQ6IEtlcGxlclRhYmxlLFxuICBmaWx0ZXI6IFBvbHlnb25GaWx0ZXIsXG4gIGxheWVyczogTGF5ZXJbXVxuKToge2ZpbHRlcjogUG9seWdvbkZpbHRlciB8IG51bGw7IGRhdGFzZXQ6IEtlcGxlclRhYmxlfSB7XG4gIGNvbnN0IGZhaWxlZCA9IHtkYXRhc2V0LCBmaWx0ZXI6IG51bGx9O1xuICBjb25zdCB7dmFsdWUsIGxheWVySWQsIHR5cGUsIGRhdGFJZH0gPSBmaWx0ZXI7XG5cbiAgaWYgKCFsYXllcklkIHx8ICFpc1ZhbGlkRmlsdGVyVmFsdWUodHlwZSwgdmFsdWUpKSB7XG4gICAgcmV0dXJuIGZhaWxlZDtcbiAgfVxuXG4gIGNvbnN0IGlzVmFsaWREYXRhc2V0ID0gZGF0YUlkLmluY2x1ZGVzKGRhdGFzZXQuaWQpO1xuXG4gIGlmICghaXNWYWxpZERhdGFzZXQpIHtcbiAgICByZXR1cm4gZmFpbGVkO1xuICB9XG5cbiAgY29uc3QgbGF5ZXIgPSBsYXllcnMuZmluZChsID0+IGxheWVySWQuaW5jbHVkZXMobC5pZCkpO1xuXG4gIGlmICghbGF5ZXIpIHtcbiAgICByZXR1cm4gZmFpbGVkO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBmaWx0ZXI6IHtcbiAgICAgIC4uLmZpbHRlcixcbiAgICAgIGZyZWV6ZTogdHJ1ZSxcbiAgICAgIGZpZWxkSWR4OiBbXVxuICAgIH0sXG4gICAgZGF0YXNldFxuICB9O1xufVxuXG4vKipcbiAqIEN1c3RvbSBmaWx0ZXIgdmFsaWRhdG9yc1xuICovXG5jb25zdCBmaWx0ZXJWYWxpZGF0b3JzID0ge1xuICBbRklMVEVSX1RZUEVTLnBvbHlnb25dOiB2YWxpZGF0ZVBvbHlnb25GaWx0ZXJcbn07XG5cbi8qKlxuICogRGVmYXVsdCB2YWxpZGF0ZSBmaWx0ZXIgZnVuY3Rpb25cbiAqIEBwYXJhbSBkYXRhc2V0XG4gKiBAcGFyYW0gZmlsdGVyXG4gKiBAcmV0dXJuIC0ge2ZpbHRlciwgZGF0YXNldH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRmlsdGVyKFxuICBkYXRhc2V0OiBLZXBsZXJUYWJsZSxcbiAgZmlsdGVyOiBQYXJzZWRGaWx0ZXJcbik6IHtmaWx0ZXI6IEZpbHRlciB8IG51bGw7IGRhdGFzZXQ6IEtlcGxlclRhYmxlfSB7XG4gIC8vIG1hdGNoIGZpbHRlci5kYXRhSWRcbiAgY29uc3QgZmFpbGVkID0ge2RhdGFzZXQsIGZpbHRlcjogbnVsbH07XG4gIGNvbnN0IGZpbHRlckRhdGFJZCA9IHRvQXJyYXkoZmlsdGVyLmRhdGFJZCk7XG5cbiAgY29uc3QgZmlsdGVyRGF0YXNldEluZGV4ID0gZmlsdGVyRGF0YUlkLmluZGV4T2YoZGF0YXNldC5pZCk7XG4gIGlmIChmaWx0ZXJEYXRhc2V0SW5kZXggPCAwKSB7XG4gICAgLy8gdGhlIGN1cnJlbnQgZmlsdGVyIGlzIG5vdCBtYXBwZWQgYWdhaW5zdCB0aGUgY3VycmVudCBkYXRhc2V0XG4gICAgcmV0dXJuIGZhaWxlZDtcbiAgfVxuXG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgY29uc3QgaW5pdGlhbGl6ZUZpbHRlcjogRmlsdGVyID0ge1xuICAgIC4uLmdldERlZmF1bHRGaWx0ZXIoZmlsdGVyLmRhdGFJZCksXG4gICAgLi4uZmlsdGVyLFxuICAgIGRhdGFJZDogZmlsdGVyRGF0YUlkLFxuICAgIG5hbWU6IHRvQXJyYXkoZmlsdGVyLm5hbWUpXG4gIH07XG5cbiAgY29uc3QgZmllbGROYW1lID0gaW5pdGlhbGl6ZUZpbHRlci5uYW1lW2ZpbHRlckRhdGFzZXRJbmRleF07XG4gIGNvbnN0IHtmaWx0ZXI6IHVwZGF0ZWRGaWx0ZXIsIGRhdGFzZXQ6IHVwZGF0ZWREYXRhc2V0fSA9IGFwcGx5RmlsdGVyRmllbGROYW1lKFxuICAgIGluaXRpYWxpemVGaWx0ZXIsXG4gICAgZGF0YXNldCxcbiAgICBmaWVsZE5hbWUsXG4gICAgZmlsdGVyRGF0YXNldEluZGV4LFxuICAgIHttZXJnZURvbWFpbjogdHJ1ZX1cbiAgKTtcblxuICBpZiAoIXVwZGF0ZWRGaWx0ZXIpIHtcbiAgICByZXR1cm4gZmFpbGVkO1xuICB9XG5cbiAgdXBkYXRlZEZpbHRlci52YWx1ZSA9IGFkanVzdFZhbHVlVG9GaWx0ZXJEb21haW4oZmlsdGVyLnZhbHVlLCB1cGRhdGVkRmlsdGVyKTtcbiAgdXBkYXRlZEZpbHRlci5lbmxhcmdlZCA9XG4gICAgdHlwZW9mIGZpbHRlci5lbmxhcmdlZCA9PT0gJ2Jvb2xlYW4nID8gZmlsdGVyLmVubGFyZ2VkIDogdXBkYXRlZEZpbHRlci5lbmxhcmdlZDtcblxuICBpZiAodXBkYXRlZEZpbHRlci52YWx1ZSA9PT0gbnVsbCkge1xuICAgIC8vIGNhbm5vdCBhZGp1c3Qgc2F2ZWQgdmFsdWUgdG8gZmlsdGVyXG4gICAgcmV0dXJuIGZhaWxlZDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZmlsdGVyOiB2YWxpZGF0ZUZpbHRlcllBeGlzKHVwZGF0ZWRGaWx0ZXIsIHVwZGF0ZWREYXRhc2V0KSxcbiAgICBkYXRhc2V0OiB1cGRhdGVkRGF0YXNldFxuICB9O1xufVxuXG4vKipcbiAqIFZhbGlkYXRlIHNhdmVkIGZpbHRlciBjb25maWcgd2l0aCBuZXcgZGF0YSxcbiAqIGNhbGN1bGF0ZSBkb21haW4gYW5kIGZpZWxkSWR4IGJhc2VkIG5ldyBmaWVsZHMgYW5kIGRhdGFcbiAqXG4gKiBAcGFyYW0gZGF0YXNldFxuICogQHBhcmFtIGZpbHRlciAtIGZpbHRlciB0byBiZSB2YWxpZGF0ZVxuICogQHBhcmFtIGxheWVycyAtIGxheWVyc1xuICogQHJldHVybiB2YWxpZGF0ZWQgZmlsdGVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUZpbHRlcldpdGhEYXRhKFxuICBkYXRhc2V0OiBLZXBsZXJUYWJsZSxcbiAgZmlsdGVyOiBQYXJzZWRGaWx0ZXIsXG4gIGxheWVyczogTGF5ZXJbXVxuKToge2ZpbHRlcjogRmlsdGVyOyBkYXRhc2V0OiBLZXBsZXJUYWJsZX0ge1xuICByZXR1cm4gZmlsdGVyLnR5cGUgJiYgZmlsdGVyVmFsaWRhdG9ycy5oYXNPd25Qcm9wZXJ0eShmaWx0ZXIudHlwZSlcbiAgICA/IGZpbHRlclZhbGlkYXRvcnNbZmlsdGVyLnR5cGVdKGRhdGFzZXQsIGZpbHRlciwgbGF5ZXJzKVxuICAgIDogdmFsaWRhdGVGaWx0ZXIoZGF0YXNldCwgZmlsdGVyKTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBZQXhpc1xuICogQHBhcmFtIGZpbHRlclxuICogQHBhcmFtIGRhdGFzZXRcbiAqIEByZXR1cm4geyp9XG4gKi9cbmZ1bmN0aW9uIHZhbGlkYXRlRmlsdGVyWUF4aXMoZmlsdGVyLCBkYXRhc2V0KSB7XG4gIC8vIFRPRE86IHZhbGlkYXRlIHlBeGlzIGFnYWluc3Qgb3RoZXIgZGF0YXNldHNcblxuICBjb25zdCB7ZmllbGRzfSA9IGRhdGFzZXQ7XG4gIGNvbnN0IHt5QXhpc30gPSBmaWx0ZXI7XG4gIC8vIFRPRE86IHZhbGlkYXRlIHlBeGlzIGFnYWluc3Qgb3RoZXIgZGF0YXNldHNcbiAgaWYgKHlBeGlzKSB7XG4gICAgY29uc3QgbWF0Y2hlZEF4aXMgPSBmaWVsZHMuZmluZCgoe25hbWUsIHR5cGV9KSA9PiBuYW1lID09PSB5QXhpcy5uYW1lICYmIHR5cGUgPT09IHlBeGlzLnR5cGUpO1xuXG4gICAgZmlsdGVyID0gbWF0Y2hlZEF4aXNcbiAgICAgID8ge1xuICAgICAgICAgIC4uLmZpbHRlcixcbiAgICAgICAgICB5QXhpczogbWF0Y2hlZEF4aXMsXG4gICAgICAgICAgLi4uZ2V0RmlsdGVyUGxvdCh7Li4uZmlsdGVyLCB5QXhpczogbWF0Y2hlZEF4aXN9LCBkYXRhc2V0KVxuICAgICAgICB9XG4gICAgICA6IGZpbHRlcjtcbiAgfVxuXG4gIHJldHVybiBmaWx0ZXI7XG59XG5cbi8qKlxuICogR2V0IGRlZmF1bHQgZmlsdGVyIHByb3AgYmFzZWQgb24gZmllbGQgdHlwZVxuICpcbiAqIEBwYXJhbSBmaWVsZFxuICogQHBhcmFtIGZpZWxkRG9tYWluXG4gKiBAcmV0dXJucyBkZWZhdWx0IGZpbHRlclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsdGVyUHJvcHMoXG4gIGZpZWxkOiBGaWVsZCxcbiAgZmllbGREb21haW46IEZpZWxkRG9tYWluXG4pOiBQYXJ0aWFsPEZpbHRlcj4gJiB7ZmllbGRUeXBlOiBzdHJpbmd9IHtcbiAgY29uc3QgZmlsdGVyUHJvcHMgPSB7XG4gICAgLi4uZmllbGREb21haW4sXG4gICAgZmllbGRUeXBlOiBmaWVsZC50eXBlXG4gIH07XG5cbiAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgY2FzZSBBTExfRklFTERfVFlQRVMucmVhbDpcbiAgICBjYXNlIEFMTF9GSUVMRF9UWVBFUy5pbnRlZ2VyOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZmlsdGVyUHJvcHMsXG4gICAgICAgIHZhbHVlOiBmaWVsZERvbWFpbi5kb21haW4sXG4gICAgICAgIHR5cGU6IEZJTFRFUl9UWVBFUy5yYW5nZSxcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICB0eXBlT3B0aW9uczogW0ZJTFRFUl9UWVBFUy5yYW5nZV0sXG4gICAgICAgIGdwdTogdHJ1ZVxuICAgICAgfTtcblxuICAgIGNhc2UgQUxMX0ZJRUxEX1RZUEVTLmJvb2xlYW46XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5maWx0ZXJQcm9wcyxcbiAgICAgICAgdHlwZTogRklMVEVSX1RZUEVTLnNlbGVjdCxcbiAgICAgICAgdmFsdWU6IHRydWUsXG4gICAgICAgIGdwdTogZmFsc2VcbiAgICAgIH07XG5cbiAgICBjYXNlIEFMTF9GSUVMRF9UWVBFUy5zdHJpbmc6XG4gICAgY2FzZSBBTExfRklFTERfVFlQRVMuZGF0ZTpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmZpbHRlclByb3BzLFxuICAgICAgICB0eXBlOiBGSUxURVJfVFlQRVMubXVsdGlTZWxlY3QsXG4gICAgICAgIHZhbHVlOiBbXSxcbiAgICAgICAgZ3B1OiBmYWxzZVxuICAgICAgfTtcblxuICAgIGNhc2UgQUxMX0ZJRUxEX1RZUEVTLnRpbWVzdGFtcDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmZpbHRlclByb3BzLFxuICAgICAgICB0eXBlOiBGSUxURVJfVFlQRVMudGltZVJhbmdlLFxuICAgICAgICBlbmxhcmdlZDogdHJ1ZSxcbiAgICAgICAgZml4ZWREb21haW46IHRydWUsXG4gICAgICAgIHZhbHVlOiBmaWx0ZXJQcm9wcy5kb21haW4sXG4gICAgICAgIGdwdTogdHJ1ZVxuICAgICAgfTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICByZXR1cm4ge307XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGdldFBvbHlnb25GaWx0ZXJGdW5jdG9yID0gKGxheWVyLCBmaWx0ZXIsIGRhdGFDb250YWluZXIpID0+IHtcbiAgY29uc3QgZ2V0UG9zaXRpb24gPSBsYXllci5nZXRQb3NpdGlvbkFjY2Vzc29yKGRhdGFDb250YWluZXIpO1xuXG4gIHN3aXRjaCAobGF5ZXIudHlwZSkge1xuICAgIGNhc2UgTEFZRVJfVFlQRVMucG9pbnQ6XG4gICAgY2FzZSBMQVlFUl9UWVBFUy5pY29uOlxuICAgICAgcmV0dXJuIGRhdGEgPT4ge1xuICAgICAgICBjb25zdCBwb3MgPSBnZXRQb3NpdGlvbihkYXRhKTtcbiAgICAgICAgcmV0dXJuIHBvcy5ldmVyeShOdW1iZXIuaXNGaW5pdGUpICYmIGlzSW5Qb2x5Z29uKHBvcywgZmlsdGVyLnZhbHVlKTtcbiAgICAgIH07XG4gICAgY2FzZSBMQVlFUl9UWVBFUy5hcmM6XG4gICAgY2FzZSBMQVlFUl9UWVBFUy5saW5lOlxuICAgICAgcmV0dXJuIGRhdGEgPT4ge1xuICAgICAgICBjb25zdCBwb3MgPSBnZXRQb3NpdGlvbihkYXRhKTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBwb3MuZXZlcnkoTnVtYmVyLmlzRmluaXRlKSAmJlxuICAgICAgICAgIFtcbiAgICAgICAgICAgIFtwb3NbMF0sIHBvc1sxXV0sXG4gICAgICAgICAgICBbcG9zWzNdLCBwb3NbNF1dXG4gICAgICAgICAgXS5ldmVyeShwb2ludCA9PiBpc0luUG9seWdvbihwb2ludCwgZmlsdGVyLnZhbHVlKSlcbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgY2FzZSBMQVlFUl9UWVBFUy5oZXhhZ29uSWQ6XG4gICAgICBpZiAobGF5ZXIuZGF0YVRvRmVhdHVyZSAmJiBsYXllci5kYXRhVG9GZWF0dXJlLmNlbnRyb2lkcykge1xuICAgICAgICByZXR1cm4gZGF0YSA9PiB7XG4gICAgICAgICAgLy8gbnVsbCBvciBnZXRDZW50cm9pZCh7aWR9KVxuICAgICAgICAgIGNvbnN0IGNlbnRyb2lkID0gbGF5ZXIuZGF0YVRvRmVhdHVyZS5jZW50cm9pZHNbZGF0YS5pbmRleF07XG4gICAgICAgICAgcmV0dXJuIGNlbnRyb2lkICYmIGlzSW5Qb2x5Z29uKGNlbnRyb2lkLCBmaWx0ZXIudmFsdWUpO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGRhdGEgPT4ge1xuICAgICAgICBjb25zdCBpZCA9IGdldFBvc2l0aW9uKGRhdGEpO1xuICAgICAgICBpZiAoIWgzSXNWYWxpZChpZCkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcG9zID0gZ2V0Q2VudHJvaWQoe2lkfSk7XG4gICAgICAgIHJldHVybiBwb3MuZXZlcnkoTnVtYmVyLmlzRmluaXRlKSAmJiBpc0luUG9seWdvbihwb3MsIGZpbHRlci52YWx1ZSk7XG4gICAgICB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gKCkgPT4gdHJ1ZTtcbiAgfVxufTtcblxuLyoqXG4gKiBAcGFyYW0gcGFyYW0gQW4gb2JqZWN0IHRoYXQgcmVwcmVzZW50cyBhIHJvdyByZWNvcmQuXG4gKiBAcGFyYW0gcGFyYW0uaW5kZXggSW5kZXggb2YgdGhlIHJvdyBpbiBkYXRhIGNvbnRhaW5lci5cbiAqIEByZXR1cm5zIFJldHVybnMgdHJ1ZSB0byBrZWVwIHRoZSBlbGVtZW50LCBvciBmYWxzZSBvdGhlcndpc2UuXG4gKi9cbnR5cGUgZmlsdGVyRnVuY3Rpb24gPSAoZGF0YToge2luZGV4OiBudW1iZXJ9KSA9PiBib29sZWFuO1xuLyoqXG4gKiBAcGFyYW0gZmllbGQgZGF0YXNldCBGaWVsZFxuICogQHBhcmFtIGRhdGFJZCBEYXRhc2V0IGlkXG4gKiBAcGFyYW0gZmlsdGVyIEZpbHRlciBvYmplY3RcbiAqIEBwYXJhbSBsYXllcnMgbGlzdCBvZiBsYXllcnMgdG8gZmlsdGVyIHVwb25cbiAqIEBwYXJhbSBkYXRhQ29udGFpbmVyIERhdGEgY29udGFpbmVyXG4gKiBAcmV0dXJuIGZpbHRlckZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWx0ZXJGdW5jdGlvbihcbiAgZmllbGQ6IEZpZWxkIHwgbnVsbCxcbiAgZGF0YUlkOiBzdHJpbmcsXG4gIGZpbHRlcjogRmlsdGVyLFxuICBsYXllcnM6IExheWVyW10sXG4gIGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2Vcbik6IGZpbHRlckZ1bmN0aW9uIHtcbiAgLy8gZmllbGQgY291bGQgYmUgbnVsbCBpbiBwb2x5Z29uIGZpbHRlclxuICBjb25zdCB2YWx1ZUFjY2Vzc29yID0gZmllbGQgPyBmaWVsZC52YWx1ZUFjY2Vzc29yIDogZGF0YSA9PiBudWxsO1xuICBjb25zdCBkZWZhdWx0RnVuYyA9IGQgPT4gdHJ1ZTtcblxuICBzd2l0Y2ggKGZpbHRlci50eXBlKSB7XG4gICAgY2FzZSBGSUxURVJfVFlQRVMucmFuZ2U6XG4gICAgICByZXR1cm4gZGF0YSA9PiBpc0luUmFuZ2UodmFsdWVBY2Nlc3NvcihkYXRhKSwgZmlsdGVyLnZhbHVlKTtcbiAgICBjYXNlIEZJTFRFUl9UWVBFUy5tdWx0aVNlbGVjdDpcbiAgICAgIHJldHVybiBkYXRhID0+IGZpbHRlci52YWx1ZS5pbmNsdWRlcyh2YWx1ZUFjY2Vzc29yKGRhdGEpKTtcbiAgICBjYXNlIEZJTFRFUl9UWVBFUy5zZWxlY3Q6XG4gICAgICByZXR1cm4gZGF0YSA9PiB2YWx1ZUFjY2Vzc29yKGRhdGEpID09PSBmaWx0ZXIudmFsdWU7XG4gICAgY2FzZSBGSUxURVJfVFlQRVMudGltZVJhbmdlOlxuICAgICAgaWYgKCFmaWVsZCkge1xuICAgICAgICByZXR1cm4gZGVmYXVsdEZ1bmM7XG4gICAgICB9XG4gICAgICBjb25zdCBtYXBwZWRWYWx1ZSA9IGdldChmaWVsZCwgWydmaWx0ZXJQcm9wcycsICdtYXBwZWRWYWx1ZSddKTtcbiAgICAgIGNvbnN0IGFjY2Vzc29yID0gQXJyYXkuaXNBcnJheShtYXBwZWRWYWx1ZSlcbiAgICAgICAgPyBkYXRhID0+IG1hcHBlZFZhbHVlW2RhdGEuaW5kZXhdXG4gICAgICAgIDogZGF0YSA9PiB0aW1lVG9Vbml4TWlsbGkodmFsdWVBY2Nlc3NvcihkYXRhKSwgZmllbGQuZm9ybWF0KTtcbiAgICAgIHJldHVybiBkYXRhID0+IGlzSW5SYW5nZShhY2Nlc3NvcihkYXRhKSwgZmlsdGVyLnZhbHVlKTtcbiAgICBjYXNlIEZJTFRFUl9UWVBFUy5wb2x5Z29uOlxuICAgICAgaWYgKCFsYXllcnMgfHwgIWxheWVycy5sZW5ndGggfHwgIWZpbHRlci5sYXllcklkKSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0RnVuYztcbiAgICAgIH1cbiAgICAgIGNvbnN0IGxheWVyRmlsdGVyRnVuY3Rpb25zID0gZmlsdGVyLmxheWVySWRcbiAgICAgICAgLm1hcChpZCA9PiBsYXllcnMuZmluZChsID0+IGwuaWQgPT09IGlkKSlcbiAgICAgICAgLmZpbHRlcihsID0+IGwgJiYgbC5jb25maWcuZGF0YUlkID09PSBkYXRhSWQpXG4gICAgICAgIC5tYXAobGF5ZXIgPT4gZ2V0UG9seWdvbkZpbHRlckZ1bmN0b3IobGF5ZXIsIGZpbHRlciwgZGF0YUNvbnRhaW5lcikpO1xuXG4gICAgICByZXR1cm4gZGF0YSA9PiBsYXllckZpbHRlckZ1bmN0aW9ucy5ldmVyeShmaWx0ZXJGdW5jID0+IGZpbHRlckZ1bmMoZGF0YSkpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZGVmYXVsdEZ1bmM7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUZpbHRlckRhdGFJZChkYXRhSWQ6IHN0cmluZyk6IEZpbHRlckJhc2Uge1xuICByZXR1cm4gZ2V0RGVmYXVsdEZpbHRlcihkYXRhSWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyRGF0YUJ5RmlsdGVyVHlwZXMoXG4gIHtcbiAgICBkeW5hbWljRG9tYWluRmlsdGVycyxcbiAgICBjcHVGaWx0ZXJzLFxuICAgIGZpbHRlckZ1bmNzXG4gIH06IHtcbiAgICBkeW5hbWljRG9tYWluRmlsdGVyczogRmlsdGVyW10gfCBudWxsO1xuICAgIGNwdUZpbHRlcnM6IEZpbHRlcltdIHwgbnVsbDtcbiAgICBmaWx0ZXJGdW5jczoge1xuICAgICAgW2tleTogc3RyaW5nXTogZmlsdGVyRnVuY3Rpb247XG4gICAgfTtcbiAgfSxcbiAgZGF0YUNvbnRhaW5lcjogRGF0YUNvbnRhaW5lckludGVyZmFjZVxuKTogRmlsdGVyUmVzdWx0IHtcbiAgY29uc3QgZmlsdGVyZWRJbmRleEZvckRvbWFpbjogbnVtYmVyW10gPSBbXTtcbiAgY29uc3QgZmlsdGVyZWRJbmRleDogbnVtYmVyW10gPSBbXTtcblxuICBjb25zdCBmaWx0ZXJDb250ZXh0ID0ge2luZGV4OiAtMSwgZGF0YUNvbnRhaW5lcn07XG4gIGNvbnN0IGZpbHRlckZ1bmNDYWxsZXIgPSAoZmlsdGVyOiBGaWx0ZXIpID0+IGZpbHRlckZ1bmNzW2ZpbHRlci5pZF0oZmlsdGVyQ29udGV4dCk7XG5cbiAgY29uc3QgbnVtUm93cyA9IGRhdGFDb250YWluZXIubnVtUm93cygpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVJvd3M7ICsraSkge1xuICAgIGZpbHRlckNvbnRleHQuaW5kZXggPSBpO1xuXG4gICAgY29uc3QgbWF0Y2hGb3JEb21haW4gPSBkeW5hbWljRG9tYWluRmlsdGVycyAmJiBkeW5hbWljRG9tYWluRmlsdGVycy5ldmVyeShmaWx0ZXJGdW5jQ2FsbGVyKTtcbiAgICBpZiAobWF0Y2hGb3JEb21haW4pIHtcbiAgICAgIGZpbHRlcmVkSW5kZXhGb3JEb21haW4ucHVzaChmaWx0ZXJDb250ZXh0LmluZGV4KTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXRjaEZvclJlbmRlciA9IGNwdUZpbHRlcnMgJiYgY3B1RmlsdGVycy5ldmVyeShmaWx0ZXJGdW5jQ2FsbGVyKTtcbiAgICBpZiAobWF0Y2hGb3JSZW5kZXIpIHtcbiAgICAgIGZpbHRlcmVkSW5kZXgucHVzaChmaWx0ZXJDb250ZXh0LmluZGV4KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLihkeW5hbWljRG9tYWluRmlsdGVycyA/IHtmaWx0ZXJlZEluZGV4Rm9yRG9tYWlufSA6IHt9KSxcbiAgICAuLi4oY3B1RmlsdGVycyA/IHtmaWx0ZXJlZEluZGV4fSA6IHt9KVxuICB9O1xufVxuXG4vKipcbiAqIEdldCBhIHJlY29yZCBvZiBmaWx0ZXJzIGJhc2VkIG9uIGRvbWFpbiB0eXBlIGFuZCBncHUgLyBjcHVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbHRlclJlY29yZChcbiAgZGF0YUlkOiBzdHJpbmcsXG4gIGZpbHRlcnM6IEZpbHRlcltdLFxuICBvcHQ6IEZpbHRlckRhdGFzZXRPcHQgPSB7fVxuKTogRmlsdGVyUmVjb3JkIHtcbiAgY29uc3QgZmlsdGVyUmVjb3JkOiBGaWx0ZXJSZWNvcmQgPSB7XG4gICAgZHluYW1pY0RvbWFpbjogW10sXG4gICAgZml4ZWREb21haW46IFtdLFxuICAgIGNwdTogW10sXG4gICAgZ3B1OiBbXVxuICB9O1xuXG4gIGZpbHRlcnMuZm9yRWFjaChmID0+IHtcbiAgICBpZiAoaXNWYWxpZEZpbHRlclZhbHVlKGYudHlwZSwgZi52YWx1ZSkgJiYgdG9BcnJheShmLmRhdGFJZCkuaW5jbHVkZXMoZGF0YUlkKSkge1xuICAgICAgKGYuZml4ZWREb21haW4gfHwgb3B0Lmlnbm9yZURvbWFpblxuICAgICAgICA/IGZpbHRlclJlY29yZC5maXhlZERvbWFpblxuICAgICAgICA6IGZpbHRlclJlY29yZC5keW5hbWljRG9tYWluXG4gICAgICApLnB1c2goZik7XG5cbiAgICAgIChmLmdwdSAmJiAhb3B0LmNwdU9ubHkgPyBmaWx0ZXJSZWNvcmQuZ3B1IDogZmlsdGVyUmVjb3JkLmNwdSkucHVzaChmKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBmaWx0ZXJSZWNvcmQ7XG59XG5cbi8qKlxuICogQ29tcGFyZSBmaWx0ZXIgcmVjb3JkcyB0byBnZXQgd2hhdCBoYXMgY2hhbmdlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGlmZkZpbHRlcnMoXG4gIGZpbHRlclJlY29yZDogRmlsdGVyUmVjb3JkLFxuICBvbGRGaWx0ZXJSZWNvcmQ6IEZpbHRlclJlY29yZCB8IHt9ID0ge31cbik6IEZpbHRlckNoYW5nZWQge1xuICBsZXQgZmlsdGVyQ2hhbmdlZDogUGFydGlhbDxGaWx0ZXJDaGFuZ2VkPiA9IHt9O1xuXG4gIChPYmplY3QuZW50cmllcyhmaWx0ZXJSZWNvcmQpIGFzIEVudHJpZXM8RmlsdGVyUmVjb3JkPikuZm9yRWFjaCgoW3JlY29yZCwgaXRlbXNdKSA9PiB7XG4gICAgaXRlbXMuZm9yRWFjaChmaWx0ZXIgPT4ge1xuICAgICAgY29uc3Qgb2xkRmlsdGVyOiBGaWx0ZXIgPSAob2xkRmlsdGVyUmVjb3JkW3JlY29yZF0gfHwgW10pLmZpbmQoXG4gICAgICAgIChmOiBGaWx0ZXIpID0+IGYuaWQgPT09IGZpbHRlci5pZFxuICAgICAgKTtcblxuICAgICAgaWYgKCFvbGRGaWx0ZXIpIHtcbiAgICAgICAgLy8gYWRkZWRcbiAgICAgICAgZmlsdGVyQ2hhbmdlZCA9IHNldChbcmVjb3JkLCBmaWx0ZXIuaWRdLCAnYWRkZWQnLCBmaWx0ZXJDaGFuZ2VkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGNoZWNrICB3aGF0IGhhcyBjaGFuZ2VkXG4gICAgICAgIFsnbmFtZScsICd2YWx1ZScsICdkYXRhSWQnXS5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgICAgIGlmIChmaWx0ZXJbcHJvcF0gIT09IG9sZEZpbHRlcltwcm9wXSkge1xuICAgICAgICAgICAgZmlsdGVyQ2hhbmdlZCA9IHNldChbcmVjb3JkLCBmaWx0ZXIuaWRdLCBgJHtwcm9wfV9jaGFuZ2VkYCwgZmlsdGVyQ2hhbmdlZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIChvbGRGaWx0ZXJSZWNvcmRbcmVjb3JkXSB8fCBbXSkuZm9yRWFjaCgob2xkRmlsdGVyOiBGaWx0ZXIpID0+IHtcbiAgICAgIC8vIGRlbGV0ZWRcbiAgICAgIGlmICghaXRlbXMuZmluZChmID0+IGYuaWQgPT09IG9sZEZpbHRlci5pZCkpIHtcbiAgICAgICAgZmlsdGVyQ2hhbmdlZCA9IHNldChbcmVjb3JkLCBvbGRGaWx0ZXIuaWRdLCAnZGVsZXRlZCcsIGZpbHRlckNoYW5nZWQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gey4uLntkeW5hbWljRG9tYWluOiBudWxsLCBmaXhlZERvbWFpbjogbnVsbCwgY3B1OiBudWxsLCBncHU6IG51bGx9LCAuLi5maWx0ZXJDaGFuZ2VkfTtcbn1cbi8qKlxuICogQ2FsbCBieSBwYXJzaW5nIGZpbHRlcnMgZnJvbSBVUkxcbiAqIENoZWNrIGlmIHZhbHVlIG9mIGZpbHRlciB3aXRoaW4gZmlsdGVyIGRvbWFpbiwgaWYgbm90IGFkanVzdCBpdCB0byBtYXRjaFxuICogZmlsdGVyIGRvbWFpblxuICpcbiAqIEByZXR1cm5zIHZhbHVlIC0gYWRqdXN0ZWQgdmFsdWUgdG8gbWF0Y2ggZmlsdGVyIG9yIG51bGwgdG8gcmVtb3ZlIGZpbHRlclxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0VmFsdWVUb0ZpbHRlckRvbWFpbih2YWx1ZTogRmlsdGVyWyd2YWx1ZSddLCB7ZG9tYWluLCB0eXBlfSkge1xuICBpZiAoIWRvbWFpbiB8fCAhdHlwZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgRklMVEVSX1RZUEVTLnJhbmdlOlxuICAgIGNhc2UgRklMVEVSX1RZUEVTLnRpbWVSYW5nZTpcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgdmFsdWUubGVuZ3RoICE9PSAyKSB7XG4gICAgICAgIHJldHVybiBkb21haW4ubWFwKGQgPT4gZCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB2YWx1ZS5tYXAoKGQsIGkpID0+IChub3ROdWxsb3JVbmRlZmluZWQoZCkgJiYgaXNJblJhbmdlKGQsIGRvbWFpbikgPyBkIDogZG9tYWluW2ldKSk7XG5cbiAgICBjYXNlIEZJTFRFUl9UWVBFUy5tdWx0aVNlbGVjdDpcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgY29uc3QgZmlsdGVyZWRWYWx1ZSA9IHZhbHVlLmZpbHRlcihkID0+IGRvbWFpbi5pbmNsdWRlcyhkKSk7XG4gICAgICByZXR1cm4gZmlsdGVyZWRWYWx1ZS5sZW5ndGggPyBmaWx0ZXJlZFZhbHVlIDogW107XG5cbiAgICBjYXNlIEZJTFRFUl9UWVBFUy5zZWxlY3Q6XG4gICAgICByZXR1cm4gZG9tYWluLmluY2x1ZGVzKHZhbHVlKSA/IHZhbHVlIDogdHJ1ZTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuLyogZXNsaW50LWVuYWJsZSBjb21wbGV4aXR5ICovXG5cbi8qKlxuICogQ2FsY3VsYXRlIG51bWVyaWMgZG9tYWluIGFuZCBzdWl0YWJsZSBzdGVwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROdW1lcmljRmllbGREb21haW4oXG4gIGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2UsXG4gIHZhbHVlQWNjZXNzb3I6IGRhdGFWYWx1ZUFjY2Vzc29yXG4pOiBSYW5nZUZpZWxkRG9tYWluIHtcbiAgbGV0IGRvbWFpbjogW251bWJlciwgbnVtYmVyXSA9IFswLCAxXTtcbiAgbGV0IHN0ZXAgPSAwLjE7XG5cbiAgY29uc3QgbWFwcGVkVmFsdWUgPSBkYXRhQ29udGFpbmVyLm1hcEluZGV4KHZhbHVlQWNjZXNzb3IpO1xuXG4gIGlmIChkYXRhQ29udGFpbmVyLm51bVJvd3MoKSA+IDEpIHtcbiAgICBkb21haW4gPSBTY2FsZVV0aWxzLmdldExpbmVhckRvbWFpbihtYXBwZWRWYWx1ZSk7XG4gICAgY29uc3QgZGlmZiA9IGRvbWFpblsxXSAtIGRvbWFpblswXTtcblxuICAgIC8vIGluIGNhc2UgZXF1YWwgZG9tYWluLCBbOTYsIDk2XSwgd2hpY2ggd2lsbCBicmVhayBxdWFudGl6ZSBzY2FsZVxuICAgIGlmICghZGlmZikge1xuICAgICAgZG9tYWluWzFdID0gZG9tYWluWzBdICsgMTtcbiAgICB9XG5cbiAgICBzdGVwID0gZ2V0TnVtZXJpY1N0ZXBTaXplKGRpZmYpIHx8IHN0ZXA7XG4gICAgZG9tYWluWzBdID0gZm9ybWF0TnVtYmVyQnlTdGVwKGRvbWFpblswXSwgc3RlcCwgJ2Zsb29yJyk7XG4gICAgZG9tYWluWzFdID0gZm9ybWF0TnVtYmVyQnlTdGVwKGRvbWFpblsxXSwgc3RlcCwgJ2NlaWwnKTtcbiAgfVxuXG4gIGNvbnN0IHtoaXN0b2dyYW0sIGVubGFyZ2VkSGlzdG9ncmFtfSA9IGdldEhpc3RvZ3JhbShkb21haW4sIG1hcHBlZFZhbHVlKTtcblxuICByZXR1cm4ge2RvbWFpbiwgc3RlcCwgaGlzdG9ncmFtLCBlbmxhcmdlZEhpc3RvZ3JhbX07XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIHN0ZXAgc2l6ZSBmb3IgcmFuZ2UgYW5kIHRpbWVyYW5nZSBmaWx0ZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE51bWVyaWNTdGVwU2l6ZShkaWZmOiBudW1iZXIpOiBudW1iZXIge1xuICBkaWZmID0gTWF0aC5hYnMoZGlmZik7XG5cbiAgaWYgKGRpZmYgPiAxMDApIHtcbiAgICByZXR1cm4gMTtcbiAgfSBlbHNlIGlmIChkaWZmID4gMykge1xuICAgIHJldHVybiAwLjAxO1xuICB9IGVsc2UgaWYgKGRpZmYgPiAxKSB7XG4gICAgcmV0dXJuIDAuMDAxO1xuICB9XG4gIC8vIFRyeSB0byBnZXQgYXQgbGVhc3QgMTAwMCBzdGVwcyAtIGFuZCBrZWVwIHRoZSBzdGVwIHNpemUgYmVsb3cgdGhhdCBvZlxuICAvLyB0aGUgKGRpZmYgPiAxKSBjYXNlLlxuICBjb25zdCB4ID0gZGlmZiAvIDEwMDA7XG4gIC8vIEZpbmQgdGhlIGV4cG9uZW50IGFuZCB0cnVuY2F0ZSB0byAxMCB0byB0aGUgcG93ZXIgb2YgdGhhdCBleHBvbmVudFxuXG4gIGNvbnN0IGV4cG9uZW50aWFsRm9ybSA9IHgudG9FeHBvbmVudGlhbCgpO1xuICBjb25zdCBleHBvbmVudCA9IHBhcnNlRmxvYXQoZXhwb25lbnRpYWxGb3JtLnNwbGl0KCdlJylbMV0pO1xuXG4gIC8vIEdldHRpbmcgcmVhZHkgZm9yIG5vZGUgMTJcbiAgLy8gdGhpcyBpcyB3aHkgd2UgbmVlZCBkZWNpbWFsLmpzXG4gIC8vIE1hdGgucG93KDEwLCAtNSkgPSAwLjAwMDAwOTk5OTk5OTk5OTk5OTk5OVxuICAvLyB0aGUgYWJvdmUgcmVzdWx0IHNob3dzIGluIGJyb3dzZXIgYW5kIG5vZGUgMTBcbiAgLy8gbm9kZSAxMiBiZWhhdmVzIGNvcnJlY3RseVxuICByZXR1cm4gbmV3IERlY2ltYWwoMTApLnBvdyhleHBvbmVudCkudG9OdW1iZXIoKTtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGUgdGltZXN0YW1wIGRvbWFpbiBhbmQgc3VpdGFibGUgc3RlcFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGltZXN0YW1wRmllbGREb21haW4oXG4gIGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2UsXG4gIHZhbHVlQWNjZXNzb3I6IGRhdGFWYWx1ZUFjY2Vzc29yXG4pOiBUaW1lUmFuZ2VGaWVsZERvbWFpbiB7XG4gIC8vIHRvIGF2b2lkIGNvbnZlcnRpbmcgc3RyaW5nIGZvcm1hdCB0aW1lIHRvIGVwb2NoXG4gIC8vIGV2ZXJ5IHRpbWUgd2UgY29tcGFyZSB3ZSBzdG9yZSBhIHZhbHVlIG1hcHBlZCB0byBpbnQgaW4gZmlsdGVyIGRvbWFpblxuXG4gIGNvbnN0IG1hcHBlZFZhbHVlID0gZGF0YUNvbnRhaW5lci5tYXBJbmRleCh2YWx1ZUFjY2Vzc29yKTtcbiAgY29uc3QgZG9tYWluID0gU2NhbGVVdGlscy5nZXRMaW5lYXJEb21haW4obWFwcGVkVmFsdWUpO1xuICBjb25zdCBkZWZhdWx0VGltZUZvcm1hdCA9IGdldFRpbWVXaWRnZXRUaXRsZUZvcm1hdHRlcihkb21haW4pO1xuXG4gIGxldCBzdGVwID0gMC4wMTtcblxuICBjb25zdCBkaWZmID0gZG9tYWluWzFdIC0gZG9tYWluWzBdO1xuICBjb25zdCBlbnRyeSA9IFRpbWVzdGFtcFN0ZXBNYXAuZmluZChmID0+IGYubWF4ID49IGRpZmYpO1xuICBpZiAoZW50cnkpIHtcbiAgICBzdGVwID0gZW50cnkuc3RlcDtcbiAgfVxuXG4gIGNvbnN0IHtoaXN0b2dyYW0sIGVubGFyZ2VkSGlzdG9ncmFtfSA9IGdldEhpc3RvZ3JhbShkb21haW4sIG1hcHBlZFZhbHVlKTtcblxuICByZXR1cm4ge1xuICAgIGRvbWFpbixcbiAgICBzdGVwLFxuICAgIG1hcHBlZFZhbHVlLFxuICAgIGhpc3RvZ3JhbSxcbiAgICBlbmxhcmdlZEhpc3RvZ3JhbSxcbiAgICBkZWZhdWx0VGltZUZvcm1hdFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGlzdG9ncmFtQ29uc3RydWN0KFxuICBkb21haW46IFtudW1iZXIsIG51bWJlcl0sXG4gIG1hcHBlZFZhbHVlOiAoTWlsbGlzZWNvbmQgfCBudW1iZXIpW10sXG4gIGJpbnM6IG51bWJlclxuKTogSGlzdG9ncmFtQmluW10ge1xuICByZXR1cm4gZDNIaXN0b2dyYW0oKVxuICAgIC50aHJlc2hvbGRzKHRpY2tzKGRvbWFpblswXSwgZG9tYWluWzFdLCBiaW5zKSlcbiAgICAuZG9tYWluKGRvbWFpbikobWFwcGVkVmFsdWUpXG4gICAgLm1hcChiaW4gPT4gKHtcbiAgICAgIGNvdW50OiBiaW4ubGVuZ3RoLFxuICAgICAgeDA6IGJpbi54MCxcbiAgICAgIHgxOiBiaW4ueDFcbiAgICB9KSk7XG59XG4vKipcbiAqIENhbGN1bGF0ZSBoaXN0b2dyYW0gZnJvbSBkb21haW4gYW5kIGFycmF5IG9mIHZhbHVlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGlzdG9ncmFtKFxuICBkb21haW46IFtudW1iZXIsIG51bWJlcl0sXG4gIG1hcHBlZFZhbHVlOiAoTWlsbGlzZWNvbmQgfCBudW1iZXIpW11cbik6IHtoaXN0b2dyYW06IEhpc3RvZ3JhbUJpbltdOyBlbmxhcmdlZEhpc3RvZ3JhbTogSGlzdG9ncmFtQmluW119IHtcbiAgY29uc3QgaGlzdG9ncmFtID0gaGlzdG9ncmFtQ29uc3RydWN0KGRvbWFpbiwgbWFwcGVkVmFsdWUsIGhpc3RvZ3JhbUJpbnMpO1xuICBjb25zdCBlbmxhcmdlZEhpc3RvZ3JhbSA9IGhpc3RvZ3JhbUNvbnN0cnVjdChkb21haW4sIG1hcHBlZFZhbHVlLCBlbmxhcmdlZEhpc3RvZ3JhbUJpbnMpO1xuXG4gIHJldHVybiB7aGlzdG9ncmFtLCBlbmxhcmdlZEhpc3RvZ3JhbX07XG59XG5cbi8qKlxuICogcm91bmQgbnVtYmVyIGJhc2VkIG9uIHN0ZXBcbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gdmFsXG4gKiBAcGFyYW0ge051bWJlcn0gc3RlcFxuICogQHBhcmFtIHtzdHJpbmd9IGJvdW5kXG4gKiBAcmV0dXJucyB7TnVtYmVyfSByb3VuZGVkIG51bWJlclxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0TnVtYmVyQnlTdGVwKHZhbDogbnVtYmVyLCBzdGVwOiBudW1iZXIsIGJvdW5kOiAnZmxvb3InIHwgJ2NlaWwnKTogbnVtYmVyIHtcbiAgaWYgKGJvdW5kID09PSAnZmxvb3InKSB7XG4gICAgcmV0dXJuIE1hdGguZmxvb3IodmFsICogKDEgLyBzdGVwKSkgLyAoMSAvIHN0ZXApO1xuICB9XG5cbiAgcmV0dXJuIE1hdGguY2VpbCh2YWwgKiAoMSAvIHN0ZXApKSAvICgxIC8gc3RlcCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0luUmFuZ2UodmFsOiBhbnksIGRvbWFpbjogbnVtYmVyW10pOiBib29sZWFuIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KGRvbWFpbikpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdmFsID49IGRvbWFpblswXSAmJiB2YWwgPD0gZG9tYWluWzFdO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIHBvaW50IGlzIHdpdGhpbiB0aGUgcHJvdmlkZWQgcG9seWdvblxuICpcbiAqIEBwYXJhbSBwb2ludCBhcyBpbnB1dCBzZWFyY2ggW2xhdCwgbG5nXVxuICogQHBhcmFtIHBvbHlnb24gUG9pbnRzIG11c3QgYmUgd2l0aGluIHRoZXNlIChNdWx0aSlQb2x5Z29uKHMpXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNJblBvbHlnb24ocG9pbnQ6IG51bWJlcltdLCBwb2x5Z29uOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIGJvb2xlYW5XaXRoaW4odHVyZlBvaW50KHBvaW50KSwgcG9seWdvbik7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFRpbWVEb21haW4oZG9tYWluKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KGRvbWFpbikgJiYgZG9tYWluLmV2ZXJ5KE51bWJlci5pc0Zpbml0ZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0VGltZVdpZGdldFRpdGxlRm9ybWF0dGVyKGRvbWFpbjogW251bWJlciwgbnVtYmVyXSk6IHN0cmluZyB8IG51bGwge1xuICBpZiAoIWlzVmFsaWRUaW1lRG9tYWluKGRvbWFpbikpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGRpZmYgPSBkb21haW5bMV0gLSBkb21haW5bMF07XG5cbiAgLy8gTG9jYWwgYXdhcmUgZm9ybWF0c1xuICAvLyBodHRwczovL21vbWVudGpzLmNvbS9kb2NzLyMvcGFyc2luZy9zdHJpbmctZm9ybWF0XG4gIHJldHVybiBkaWZmID4gZHVyYXRpb25ZZWFyID8gJ0wnIDogZGlmZiA+IGR1cmF0aW9uRGF5ID8gJ0wgTFQnIDogJ0wgTFRTJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRpbWVXaWRnZXRIaW50Rm9ybWF0dGVyKGRvbWFpbjogW251bWJlciwgbnVtYmVyXSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghaXNWYWxpZFRpbWVEb21haW4oZG9tYWluKSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBkaWZmID0gZG9tYWluWzFdIC0gZG9tYWluWzBdO1xuICByZXR1cm4gZGlmZiA+IGR1cmF0aW9uV2Vla1xuICAgID8gJ0wnXG4gICAgOiBkaWZmID4gZHVyYXRpb25EYXlcbiAgICA/ICdMIExUJ1xuICAgIDogZGlmZiA+IGR1cmF0aW9uSG91clxuICAgID8gJ0xUJ1xuICAgIDogJ0xUUyc7XG59XG5cbi8qKlxuICogU2FuaXR5IGNoZWNrIG9uIGZpbHRlcnMgdG8gcHJlcGFyZSBmb3Igc2F2ZVxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEZpbHRlclZhbHVlKHR5cGU6IHN0cmluZyB8IG51bGwsIHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgaWYgKCF0eXBlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgRklMVEVSX1RZUEVTLnNlbGVjdDpcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gZmFsc2U7XG5cbiAgICBjYXNlIEZJTFRFUl9UWVBFUy5yYW5nZTpcbiAgICBjYXNlIEZJTFRFUl9UWVBFUy50aW1lUmFuZ2U6XG4gICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUuZXZlcnkodiA9PiB2ICE9PSBudWxsICYmICFpc05hTih2KSk7XG5cbiAgICBjYXNlIEZJTFRFUl9UWVBFUy5tdWx0aVNlbGVjdDpcbiAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiBCb29sZWFuKHZhbHVlLmxlbmd0aCk7XG5cbiAgICBjYXNlIEZJTFRFUl9UWVBFUy5pbnB1dDpcbiAgICAgIHJldHVybiBCb29sZWFuKHZhbHVlLmxlbmd0aCk7XG5cbiAgICBjYXNlIEZJTFRFUl9UWVBFUy5wb2x5Z29uOlxuICAgICAgY29uc3QgY29vcmRpbmF0ZXMgPSBnZXQodmFsdWUsIFsnZ2VvbWV0cnknLCAnY29vcmRpbmF0ZXMnXSk7XG4gICAgICByZXR1cm4gQm9vbGVhbih2YWx1ZSAmJiB2YWx1ZS5pZCAmJiBjb29yZGluYXRlcyk7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbHRlclBsb3QoXG4gIGZpbHRlcjogRmlsdGVyLFxuICBkYXRhc2V0OiBLZXBsZXJUYWJsZVxuKToge2xpbmVDaGFydDogTGluZUNoYXJ0OyB5QXhzOiBGaWVsZH0gfCB7fSB7XG4gIGlmIChmaWx0ZXIucGxvdFR5cGUgPT09IFBMT1RfVFlQRVMuaGlzdG9ncmFtIHx8ICFmaWx0ZXIueUF4aXMpIHtcbiAgICAvLyBoaXN0b2dyYW0gc2hvdWxkIGJlIGNhbGN1bGF0ZWQgd2hlbiBjcmVhdGUgZmlsdGVyXG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgY29uc3Qge21hcHBlZFZhbHVlID0gW119ID0gZmlsdGVyO1xuICBjb25zdCB7eUF4aXN9ID0gZmlsdGVyO1xuICBjb25zdCBmaWVsZElkeCA9IGRhdGFzZXQuZ2V0Q29sdW1uRmllbGRJZHgoeUF4aXMubmFtZSk7XG4gIGlmIChmaWVsZElkeCA8IDApIHtcbiAgICBDb25zb2xlLndhcm4oYHlBeGlzICR7eUF4aXMubmFtZX0gZG9lcyBub3QgZXhpc3QgaW4gZGF0YXNldGApO1xuICAgIHJldHVybiB7bGluZUNoYXJ0OiB7fSwgeUF4aXN9O1xuICB9XG5cbiAgLy8gcmV0dXJuIGxpbmVDaGFydFxuICBjb25zdCBzZXJpZXMgPSBkYXRhc2V0LmRhdGFDb250YWluZXJcbiAgICAubWFwKFxuICAgICAgKHJvdywgcm93SW5kZXgpID0+ICh7XG4gICAgICAgIHg6IG1hcHBlZFZhbHVlW3Jvd0luZGV4XSxcbiAgICAgICAgeTogcm93LnZhbHVlQXQoZmllbGRJZHgpXG4gICAgICB9KSxcbiAgICAgIHRydWVcbiAgICApXG4gICAgLmZpbHRlcigoe3gsIHl9KSA9PiBOdW1iZXIuaXNGaW5pdGUoeCkgJiYgTnVtYmVyLmlzRmluaXRlKHkpKVxuICAgIC5zb3J0KChhLCBiKSA9PiBhc2NlbmRpbmcoYS54LCBiLngpKTtcblxuICBjb25zdCB5RG9tYWluID0gZXh0ZW50KHNlcmllcywgZCA9PiBkLnkpO1xuICBjb25zdCB4RG9tYWluID0gW3Nlcmllc1swXS54LCBzZXJpZXNbc2VyaWVzLmxlbmd0aCAtIDFdLnhdO1xuXG4gIHJldHVybiB7bGluZUNoYXJ0OiB7c2VyaWVzLCB5RG9tYWluLCB4RG9tYWlufSwgeUF4aXN9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdEZpbHRlclBsb3RUeXBlKGZpbHRlcjogRmlsdGVyKTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IGZpbHRlclBsb3RUeXBlczogdHlwZW9mIFN1cHBvcnRlZFBsb3RUeXBlW2tleW9mIHR5cGVvZiBTdXBwb3J0ZWRQbG90VHlwZV0gfCBudWxsID1cbiAgICBmaWx0ZXIudHlwZSAmJiBTdXBwb3J0ZWRQbG90VHlwZVtmaWx0ZXIudHlwZV07XG4gIGlmICghZmlsdGVyUGxvdFR5cGVzKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAoIWZpbHRlci55QXhpcykge1xuICAgIHJldHVybiBmaWx0ZXJQbG90VHlwZXMuZGVmYXVsdDtcbiAgfVxuXG4gIHJldHVybiBmaWx0ZXJQbG90VHlwZXNbZmlsdGVyLnlBeGlzLnR5cGVdIHx8IG51bGw7XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBkYXRhc2V0SWRzIGxpc3Qgb2YgZGF0YXNldCBpZHMgdG8gYmUgZmlsdGVyZWRcbiAqIEBwYXJhbSBkYXRhc2V0cyBhbGwgZGF0YXNldHNcbiAqIEBwYXJhbSBmaWx0ZXJzIGFsbCBmaWx0ZXJzIHRvIGJlIGFwcGxpZWQgdG8gZGF0YXNldHNcbiAqIEByZXR1cm4gZGF0YXNldHMgLSBuZXcgdXBkYXRlZCBkYXRhc2V0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlGaWx0ZXJzVG9EYXRhc2V0cyhcbiAgZGF0YXNldElkczogc3RyaW5nW10sXG4gIGRhdGFzZXRzOiBEYXRhc2V0cyxcbiAgZmlsdGVyczogRmlsdGVyW10sXG4gIGxheWVycz86IExheWVyW11cbik6IERhdGFzZXRzIHtcbiAgY29uc3QgZGF0YUlkcyA9IHRvQXJyYXkoZGF0YXNldElkcyk7XG4gIHJldHVybiBkYXRhSWRzLnJlZHVjZSgoYWNjLCBkYXRhSWQpID0+IHtcbiAgICBjb25zdCBsYXllcnNUb0ZpbHRlciA9IChsYXllcnMgfHwgW10pLmZpbHRlcihsID0+IGwuY29uZmlnLmRhdGFJZCA9PT0gZGF0YUlkKTtcbiAgICBjb25zdCBhcHBsaWVkRmlsdGVycyA9IGZpbHRlcnMuZmlsdGVyKGQgPT4gc2hvdWxkQXBwbHlGaWx0ZXIoZCwgZGF0YUlkKSk7XG4gICAgY29uc3QgdGFibGUgPSBkYXRhc2V0c1tkYXRhSWRdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFjYyxcbiAgICAgIFtkYXRhSWRdOiB0YWJsZS5maWx0ZXJUYWJsZShhcHBsaWVkRmlsdGVycywgbGF5ZXJzVG9GaWx0ZXIsIHt9KVxuICAgIH07XG4gIH0sIGRhdGFzZXRzKTtcbn1cblxuLyoqXG4gKiBBcHBsaWVzIGEgbmV3IGZpZWxkIG5hbWUgdmFsdWUgdG8gZmllbHRlciBhbmQgdXBkYXRlIGJvdGggZmlsdGVyIGFuZCBkYXRhc2V0XG4gKiBAcGFyYW0gZmlsdGVyIC0gdG8gYmUgYXBwbGllZCB0aGUgbmV3IGZpZWxkIG5hbWUgb25cbiAqIEBwYXJhbSBkYXRhc2V0IC0gZGF0YXNldCB0aGUgZmllbGQgYmVsb25ncyB0b1xuICogQHBhcmFtIGZpZWxkTmFtZSAtIGZpZWxkLm5hbWVcbiAqIEBwYXJhbSBmaWx0ZXJEYXRhc2V0SW5kZXggLSBmaWVsZC5uYW1lXG4gKiBAcGFyYW0gb3B0aW9uXG4gKiBAcmV0dXJuIC0ge2ZpbHRlciwgZGF0YXNldHN9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseUZpbHRlckZpZWxkTmFtZShcbiAgZmlsdGVyOiBGaWx0ZXIsXG4gIGRhdGFzZXQ6IEtlcGxlclRhYmxlLFxuICBmaWVsZE5hbWU6IHN0cmluZyxcbiAgZmlsdGVyRGF0YXNldEluZGV4ID0gMCxcbiAgb3B0aW9uPzoge21lcmdlRG9tYWluOiBib29sZWFufVxuKToge1xuICBmaWx0ZXI6IEZpbHRlciB8IG51bGw7XG4gIGRhdGFzZXQ6IEtlcGxlclRhYmxlO1xufSB7XG4gIC8vIHVzaW5nIGZpbHRlckRhdGFzZXRJbmRleCB3ZSBjYW4gZmlsdGVyIG9ubHkgdGhlIHNwZWNpZmllZCBkYXRhc2V0XG4gIGNvbnN0IG1lcmdlRG9tYWluID0gb3B0aW9uICYmIG9wdGlvbi5oYXNPd25Qcm9wZXJ0eSgnbWVyZ2VEb21haW4nKSA/IG9wdGlvbi5tZXJnZURvbWFpbiA6IGZhbHNlO1xuXG4gIGNvbnN0IGZpZWxkSW5kZXggPSBkYXRhc2V0LmdldENvbHVtbkZpZWxkSWR4KGZpZWxkTmFtZSk7XG4gIC8vIGlmIG5vIGZpZWxkIHdpdGggc2FtZSBuYW1lIGlzIGZvdW5kLCBtb3ZlIHRvIHRoZSBuZXh0IGRhdGFzZXRzXG4gIGlmIChmaWVsZEluZGV4ID09PSAtMSkge1xuICAgIC8vIHRocm93IG5ldyBFcnJvcihgZmllbGRJbmRleCBub3QgZm91bmQuIERhdGFzZXQgbXVzdCBjb250YWluIGEgcHJvcGVydHkgd2l0aCBuYW1lOiAke2ZpZWxkTmFtZX1gKTtcbiAgICByZXR1cm4ge2ZpbHRlcjogbnVsbCwgZGF0YXNldH07XG4gIH1cblxuICAvLyBUT0RPOiB2YWxpZGF0ZSBmaWVsZCB0eXBlXG4gIGNvbnN0IGZpbHRlclByb3BzID0gZGF0YXNldC5nZXRDb2x1bW5GaWx0ZXJQcm9wcyhmaWVsZE5hbWUpO1xuXG4gIGNvbnN0IG5ld0ZpbHRlciA9IHtcbiAgICAuLi4obWVyZ2VEb21haW4gPyBtZXJnZUZpbHRlckRvbWFpblN0ZXAoZmlsdGVyLCBmaWx0ZXJQcm9wcykgOiB7Li4uZmlsdGVyLCAuLi5maWx0ZXJQcm9wc30pLFxuICAgIG5hbWU6IE9iamVjdC5hc3NpZ24oWy4uLnRvQXJyYXkoZmlsdGVyLm5hbWUpXSwge1tmaWx0ZXJEYXRhc2V0SW5kZXhdOiBmaWVsZE5hbWV9KSxcbiAgICBmaWVsZElkeDogT2JqZWN0LmFzc2lnbihbLi4udG9BcnJheShmaWx0ZXIuZmllbGRJZHgpXSwge1xuICAgICAgW2ZpbHRlckRhdGFzZXRJbmRleF06IGZpZWxkSW5kZXhcbiAgICB9KSxcbiAgICAvLyBUT0RPLCBzaW5jZSB3ZSBhbGxvdyB0byBhZGQgbXVsdGlwbGUgZmllbGRzIHRvIGEgZmlsdGVyIHdlIGNhbiBubyBsb25nZXIgZnJlZXplIHRoZSBmaWx0ZXJcbiAgICBmcmVlemU6IHRydWVcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGZpbHRlcjogbmV3RmlsdGVyLFxuICAgIGRhdGFzZXRcbiAgfTtcbn1cblxuLyoqXG4gKiBNZXJnZSBvbmUgZmlsdGVyIHdpdGggb3RoZXIgZmlsdGVyIHByb3AgZG9tYWluXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIGNvbXBsZXhpdHkgKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUZpbHRlckRvbWFpblN0ZXAoZmlsdGVyOiBGaWx0ZXIsIGZpbHRlclByb3BzPzogYW55KTogRmlsdGVyIHwgbnVsbCB7XG4gIGlmICghZmlsdGVyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAoIWZpbHRlclByb3BzKSB7XG4gICAgcmV0dXJuIGZpbHRlcjtcbiAgfVxuXG4gIGlmICgoZmlsdGVyLmZpZWxkVHlwZSAmJiBmaWx0ZXIuZmllbGRUeXBlICE9PSBmaWx0ZXJQcm9wcy5maWVsZFR5cGUpIHx8ICFmaWx0ZXJQcm9wcy5kb21haW4pIHtcbiAgICByZXR1cm4gZmlsdGVyO1xuICB9XG5cbiAgY29uc3QgY29tYmluZWREb21haW4gPSAhZmlsdGVyLmRvbWFpblxuICAgID8gZmlsdGVyUHJvcHMuZG9tYWluXG4gICAgOiBbLi4uKGZpbHRlci5kb21haW4gfHwgW10pLCAuLi4oZmlsdGVyUHJvcHMuZG9tYWluIHx8IFtdKV0uc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuXG4gIGNvbnN0IG5ld0ZpbHRlciA9IHtcbiAgICAuLi5maWx0ZXIsXG4gICAgLi4uZmlsdGVyUHJvcHMsXG4gICAgZG9tYWluOiBbY29tYmluZWREb21haW5bMF0sIGNvbWJpbmVkRG9tYWluW2NvbWJpbmVkRG9tYWluLmxlbmd0aCAtIDFdXVxuICB9O1xuXG4gIHN3aXRjaCAoZmlsdGVyUHJvcHMuZmllbGRUeXBlKSB7XG4gICAgY2FzZSBBTExfRklFTERfVFlQRVMuc3RyaW5nOlxuICAgIGNhc2UgQUxMX0ZJRUxEX1RZUEVTLmRhdGU6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5uZXdGaWx0ZXIsXG4gICAgICAgIGRvbWFpbjogdW5pcXVlKGNvbWJpbmVkRG9tYWluKS5zb3J0KClcbiAgICAgIH07XG5cbiAgICBjYXNlIEFMTF9GSUVMRF9UWVBFUy50aW1lc3RhbXA6XG4gICAgICBjb25zdCBzdGVwID1cbiAgICAgICAgKGZpbHRlciBhcyBUaW1lUmFuZ2VGaWx0ZXIpLnN0ZXAgPCBmaWx0ZXJQcm9wcy5zdGVwXG4gICAgICAgICAgPyAoZmlsdGVyIGFzIFRpbWVSYW5nZUZpbHRlcikuc3RlcFxuICAgICAgICAgIDogZmlsdGVyUHJvcHMuc3RlcDtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubmV3RmlsdGVyLFxuICAgICAgICBzdGVwXG4gICAgICB9O1xuICAgIGNhc2UgQUxMX0ZJRUxEX1RZUEVTLnJlYWw6XG4gICAgY2FzZSBBTExfRklFTERfVFlQRVMuaW50ZWdlcjpcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG5ld0ZpbHRlcjtcbiAgfVxufVxuLyogZXNsaW50LWVuYWJsZSBjb21wbGV4aXR5ICovXG5cbi8qKlxuICogR2VuZXJhdGVzIHBvbHlnb24gZmlsdGVyXG4gKi9cbmV4cG9ydCBjb25zdCBmZWF0dXJlVG9GaWx0ZXJWYWx1ZSA9IChcbiAgZmVhdHVyZTogRmVhdHVyZSxcbiAgZmlsdGVySWQ6IHN0cmluZyxcbiAgcHJvcGVydGllcz86IHt9XG4pOiBGZWF0dXJlVmFsdWUgPT4gKHtcbiAgLi4uZmVhdHVyZSxcbiAgaWQ6IGZlYXR1cmUuaWQsXG4gIHByb3BlcnRpZXM6IHtcbiAgICAuLi5mZWF0dXJlLnByb3BlcnRpZXMsXG4gICAgLi4ucHJvcGVydGllcyxcbiAgICBmaWx0ZXJJZFxuICB9XG59KTtcblxuZXhwb3J0IGNvbnN0IGdldEZpbHRlcklkSW5GZWF0dXJlID0gKGY6IEZlYXR1cmVWYWx1ZSk6IHN0cmluZyA9PiBnZXQoZiwgWydwcm9wZXJ0aWVzJywgJ2ZpbHRlcklkJ10pO1xuXG4vKipcbiAqIEdlbmVyYXRlcyBwb2x5Z29uIGZpbHRlclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVQb2x5Z29uRmlsdGVyKGxheWVyczogTGF5ZXJbXSwgZmVhdHVyZTogRmVhdHVyZSk6IFBvbHlnb25GaWx0ZXIge1xuICBjb25zdCBkYXRhSWQgPSBsYXllcnMubWFwKGwgPT4gbC5jb25maWcuZGF0YUlkKS5maWx0ZXIobm90TnVsbG9yVW5kZWZpbmVkKTtcbiAgY29uc3QgbGF5ZXJJZCA9IGxheWVycy5tYXAobCA9PiBsLmlkKTtcbiAgY29uc3QgbmFtZSA9IGxheWVycy5tYXAobCA9PiBsLmNvbmZpZy5sYWJlbCk7XG4gIGNvbnN0IGZpbHRlciA9IGdldERlZmF1bHRGaWx0ZXIoZGF0YUlkKTtcbiAgcmV0dXJuIHtcbiAgICAuLi5maWx0ZXIsXG4gICAgZml4ZWREb21haW46IHRydWUsXG4gICAgdHlwZTogRklMVEVSX1RZUEVTLnBvbHlnb24sXG4gICAgbmFtZSxcbiAgICBsYXllcklkLFxuICAgIHZhbHVlOiBmZWF0dXJlVG9GaWx0ZXJWYWx1ZShmZWF0dXJlLCBmaWx0ZXIuaWQsIHtpc1Zpc2libGU6IHRydWV9KVxuICB9O1xufVxuXG4vKipcbiAqIFJ1biBmaWx0ZXIgZW50aXJlbHkgb24gQ1BVXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJEYXRhc2V0Q1BVKHN0YXRlOiBWaXNTdGF0ZSwgZGF0YUlkOiBzdHJpbmcpOiBWaXNTdGF0ZSB7XG4gIGNvbnN0IGRhdGFzZXRGaWx0ZXJzID0gc3RhdGUuZmlsdGVycy5maWx0ZXIoZiA9PiBmLmRhdGFJZC5pbmNsdWRlcyhkYXRhSWQpKTtcbiAgY29uc3QgZGF0YXNldCA9IHN0YXRlLmRhdGFzZXRzW2RhdGFJZF07XG5cbiAgaWYgKCFkYXRhc2V0KSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgY29uc3QgY3B1RmlsdGVyZWREYXRhc2V0ID0gZGF0YXNldC5maWx0ZXJUYWJsZUNQVShkYXRhc2V0RmlsdGVycywgc3RhdGUubGF5ZXJzKTtcblxuICByZXR1cm4gc2V0KFsnZGF0YXNldHMnLCBkYXRhSWRdLCBjcHVGaWx0ZXJlZERhdGFzZXQsIHN0YXRlKTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBwYXJzZWQgZmlsdGVycyB3aXRoIGRhdGFzZXRzIGFuZCBhZGQgZmlsdGVyUHJvcHMgdG8gZmllbGRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRmlsdGVyc1VwZGF0ZURhdGFzZXRzKFxuICBzdGF0ZTogVmlzU3RhdGUsXG4gIGZpbHRlcnNUb1ZhbGlkYXRlOiBQYXJzZWRGaWx0ZXJbXSA9IFtdXG4pOiB7XG4gIHZhbGlkYXRlZDogRmlsdGVyW107XG4gIGZhaWxlZDogRmlsdGVyW107XG4gIHVwZGF0ZWREYXRhc2V0czogRGF0YXNldHM7XG59IHtcbiAgLy8gVE9ETyBCZXR0ZXIgVHlwaW5ncyBoZXJlXG4gIGNvbnN0IHZhbGlkYXRlZDogYW55W10gPSBbXTtcbiAgY29uc3QgZmFpbGVkOiBhbnlbXSA9IFtdO1xuICBjb25zdCB7ZGF0YXNldHN9ID0gc3RhdGU7XG4gIGxldCB1cGRhdGVkRGF0YXNldHMgPSBkYXRhc2V0cztcblxuICAvLyBtZXJnZSBmaWx0ZXJzXG4gIGZpbHRlcnNUb1ZhbGlkYXRlLmZvckVhY2goZmlsdGVyID0+IHtcbiAgICAvLyB3ZSBjYW4gb25seSBsb29rIGZvciBkYXRhc2V0cyBkZWZpbmUgaW4gdGhlIGZpbHRlciBkYXRhSWRcbiAgICBjb25zdCBkYXRhc2V0SWRzID0gdG9BcnJheShmaWx0ZXIuZGF0YUlkKTtcblxuICAgIC8vIHdlIGNhbiBtZXJnZSBhIGZpbHRlciBvbmx5IGlmIGFsbCBkYXRhc2V0cyBpbiBmaWx0ZXIuZGF0YUlkIGFyZSBsb2FkZWRcbiAgICBpZiAoZGF0YXNldElkcy5ldmVyeShkID0+IGRhdGFzZXRzW2RdKSkge1xuICAgICAgLy8gYWxsIGRhdGFzZXRJZHMgaW4gZmlsdGVyIG11c3QgYmUgcHJlc2VudCB0aGUgc3RhdGUgZGF0YXNldHNcbiAgICAgIGNvbnN0IHtmaWx0ZXI6IHZhbGlkYXRlZEZpbHRlciwgYXBwbHlUb0RhdGFzZXRzLCBhdWdtZW50ZWREYXRhc2V0c30gPSBkYXRhc2V0SWRzLnJlZHVjZShcbiAgICAgICAgKGFjYywgZGF0YXNldElkKSA9PiB7XG4gICAgICAgICAgY29uc3QgZGF0YXNldCA9IHVwZGF0ZWREYXRhc2V0c1tkYXRhc2V0SWRdO1xuICAgICAgICAgIGNvbnN0IGxheWVycyA9IHN0YXRlLmxheWVycy5maWx0ZXIobCA9PiBsLmNvbmZpZy5kYXRhSWQgPT09IGRhdGFzZXQuaWQpO1xuICAgICAgICAgIGNvbnN0IHtmaWx0ZXI6IHVwZGF0ZWRGaWx0ZXIsIGRhdGFzZXQ6IHVwZGF0ZWREYXRhc2V0fSA9IHZhbGlkYXRlRmlsdGVyV2l0aERhdGEoXG4gICAgICAgICAgICBhY2MuYXVnbWVudGVkRGF0YXNldHNbZGF0YXNldElkXSB8fCBkYXRhc2V0LFxuICAgICAgICAgICAgZmlsdGVyLFxuICAgICAgICAgICAgbGF5ZXJzXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmICh1cGRhdGVkRmlsdGVyKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgICAgIC8vIG1lcmdlIGZpbHRlciBwcm9wc1xuICAgICAgICAgICAgICBmaWx0ZXI6IGFjYy5maWx0ZXJcbiAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgLi4uYWNjLmZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgLi4ubWVyZ2VGaWx0ZXJEb21haW5TdGVwKGFjYywgdXBkYXRlZEZpbHRlcilcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA6IHVwZGF0ZWRGaWx0ZXIsXG5cbiAgICAgICAgICAgICAgYXBwbHlUb0RhdGFzZXRzOiBbLi4uYWNjLmFwcGx5VG9EYXRhc2V0cywgZGF0YXNldElkXSxcblxuICAgICAgICAgICAgICBhdWdtZW50ZWREYXRhc2V0czoge1xuICAgICAgICAgICAgICAgIC4uLmFjYy5hdWdtZW50ZWREYXRhc2V0cyxcbiAgICAgICAgICAgICAgICBbZGF0YXNldElkXTogdXBkYXRlZERhdGFzZXRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZmlsdGVyOiBudWxsLFxuICAgICAgICAgIGFwcGx5VG9EYXRhc2V0czogW10sXG4gICAgICAgICAgYXVnbWVudGVkRGF0YXNldHM6IHt9XG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIGlmICh2YWxpZGF0ZWRGaWx0ZXIgJiYgaXNFcXVhbChkYXRhc2V0SWRzLCBhcHBseVRvRGF0YXNldHMpKSB7XG4gICAgICAgIHZhbGlkYXRlZC5wdXNoKHZhbGlkYXRlZEZpbHRlcik7XG4gICAgICAgIHVwZGF0ZWREYXRhc2V0cyA9IHtcbiAgICAgICAgICAuLi51cGRhdGVkRGF0YXNldHMsXG4gICAgICAgICAgLi4uYXVnbWVudGVkRGF0YXNldHNcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZmFpbGVkLnB1c2goZmlsdGVyKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB7dmFsaWRhdGVkLCBmYWlsZWQsIHVwZGF0ZWREYXRhc2V0c307XG59XG5cbi8qKlxuICogUmV0cmlldmUgaW50ZXJ2YWwgYmlucyBmb3IgdGltZSBmaWx0ZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVydmFsQmlucyhmaWx0ZXI6IFRpbWVSYW5nZUZpbHRlcikge1xuICBjb25zdCB7Ymluc30gPSBmaWx0ZXI7XG4gIGNvbnN0IGludGVydmFsID0gZmlsdGVyLnBsb3RUeXBlPy5pbnRlcnZhbDtcbiAgaWYgKCFpbnRlcnZhbCB8fCAhYmlucyB8fCBPYmplY3Qua2V5cyhiaW5zKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCB2YWx1ZXMgPSBPYmplY3QudmFsdWVzKGJpbnMpO1xuICByZXR1cm4gdmFsdWVzWzBdID8gdmFsdWVzWzBdW2ludGVydmFsXSA6IG51bGw7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxRQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxJQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxRQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBTSxjQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxRQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxRQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxnQkFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsVUFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsVUFBQSxHQUFBQyx1QkFBQSxDQUFBWixPQUFBO0FBQ0EsSUFBQWEsTUFBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsTUFBQSxHQUFBZCxPQUFBO0FBQ0EsSUFBQWUsUUFBQSxHQUFBZixPQUFBO0FBQXdFLFNBQUFnQix5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxL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QixXQUFBdFIsZ0JBQUEsaUJBQ3ZCNkQsU0FBUyxFQUFHdUIsY0FBYztZQUM1QjtVQUVMO1VBRUEsT0FBT2lLLEdBQUc7UUFDWixDQUFDLEVBQ0Q7VUFDRTdQLE1BQU0sRUFBRSxJQUFJO1VBQ1orUixlQUFlLEVBQUUsRUFBRTtVQUNuQkQsaUJBQWlCLEVBQUUsQ0FBQztRQUN0QixDQUNGLENBQUM7UUFyQ2NFLGVBQWUsR0FBQUosa0JBQUEsQ0FBdkI1UixNQUFNO1FBQW1CK1IsZUFBZSxHQUFBSCxrQkFBQSxDQUFmRyxlQUFlO1FBQUVELGlCQUFpQixHQUFBRixrQkFBQSxDQUFqQkUsaUJBQWlCO01BdUNsRSxJQUFJRSxlQUFlLElBQUksSUFBQUMsbUJBQU8sRUFBQ3ZDLFVBQVUsRUFBRXFDLGVBQWUsQ0FBQyxFQUFFO1FBQzNETCxTQUFTLENBQUN4UixJQUFJLENBQUM4UixlQUFlLENBQUM7UUFDL0JMLGVBQWUsR0FBQXZSLGFBQUEsQ0FBQUEsYUFBQSxLQUNWdVIsZUFBZSxHQUNmRyxpQkFBaUIsQ0FDckI7TUFDSDtJQUNGLENBQUMsTUFBTTtNQUNMbk4sTUFBTSxDQUFDekUsSUFBSSxDQUFDRixNQUFNLENBQUM7SUFDckI7RUFDRixDQUFDLENBQUM7RUFFRixPQUFPO0lBQUMwUixTQUFTLEVBQVRBLFNBQVM7SUFBRS9NLE1BQU0sRUFBTkEsTUFBTTtJQUFFZ04sZUFBZSxFQUFmQTtFQUFlLENBQUM7QUFDN0M7O0FBRUE7QUFDQTtBQUNBO0FBQ08sU0FBU08sZUFBZUEsQ0FBQ2xTLE1BQXVCLEVBQUU7RUFBQSxJQUFBbVMsZ0JBQUE7RUFDdkQsSUFBT2pGLElBQUksR0FBSWxOLE1BQU0sQ0FBZGtOLElBQUk7RUFDWCxJQUFNckosUUFBUSxJQUFBc08sZ0JBQUEsR0FBR25TLE1BQU0sQ0FBQzJELFFBQVEsY0FBQXdPLGdCQUFBLHVCQUFmQSxnQkFBQSxDQUFpQnRPLFFBQVE7RUFDMUMsSUFBSSxDQUFDQSxRQUFRLElBQUksQ0FBQ3FKLElBQUksSUFBSTlOLE1BQU0sQ0FBQ1MsSUFBSSxDQUFDcU4sSUFBSSxDQUFDLENBQUM1TSxNQUFNLEtBQUssQ0FBQyxFQUFFO0lBQ3hELE9BQU8sSUFBSTtFQUNiO0VBQ0EsSUFBTThSLE1BQU0sR0FBR2hULE1BQU0sQ0FBQ2dULE1BQU0sQ0FBQ2xGLElBQUksQ0FBQztFQUNsQyxPQUFPa0YsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHQSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUN2TyxRQUFRLENBQUMsR0FBRyxJQUFJO0FBQy9DIiwiaWdub3JlTGlzdCI6W119
1081
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZDNBcnJheSIsInJlcXVpcmUiLCJfa2V5bWlycm9yIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jb25zb2xlIiwiX2dldCIsIl9pc0VxdWFsIiwiX2Jvb2xlYW5XaXRoaW4iLCJfaGVscGVycyIsIl9kZWNpbWFsIiwiX2RlZmF1bHRTZXR0aW5ncyIsIl9kYXRhVXRpbHMiLCJTY2FsZVV0aWxzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfdHlwZXMiLCJfdXRpbHMiLCJfaDNVdGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIlRpbWVzdGFtcFN0ZXBNYXAiLCJleHBvcnRzIiwibWF4Iiwic3RlcCIsIk51bWJlciIsIlBPU0lUSVZFX0lORklOSVRZIiwiaGlzdG9ncmFtQmlucyIsImVubGFyZ2VkSGlzdG9ncmFtQmlucyIsImR1cmF0aW9uU2Vjb25kIiwiZHVyYXRpb25NaW51dGUiLCJkdXJhdGlvbkhvdXIiLCJkdXJhdGlvbkRheSIsImR1cmF0aW9uV2VlayIsImR1cmF0aW9uWWVhciIsIlBMT1RfVFlQRVMiLCJrZXlNaXJyb3IiLCJoaXN0b2dyYW0iLCJsaW5lQ2hhcnQiLCJGSUxURVJfVVBEQVRFUl9QUk9QUyIsImRhdGFJZCIsIm5hbWUiLCJsYXllcklkIiwiTElNSVRFRF9GSUxURVJfRUZGRUNUX1BST1BTIiwiU3VwcG9ydGVkUGxvdFR5cGUiLCJGSUxURVJfVFlQRVMiLCJ0aW1lUmFuZ2UiLCJBTExfRklFTERfVFlQRVMiLCJpbnRlZ2VyIiwicmVhbCIsInJhbmdlIiwiRklMVEVSX0NPTVBPTkVOVFMiLCJzZWxlY3QiLCJtdWx0aVNlbGVjdCIsInBvbHlnb24iLCJERUZBVUxUX0ZJTFRFUl9TVFJVQ1RVUkUiLCJmcmVlemUiLCJpZCIsImZpeGVkRG9tYWluIiwiZW5sYXJnZWQiLCJpc0FuaW1hdGluZyIsImFuaW1hdGlvbldpbmRvdyIsIkFOSU1BVElPTl9XSU5ET1ciLCJmcmVlIiwic3BlZWQiLCJ0eXBlIiwiZmllbGRJZHgiLCJkb21haW4iLCJ2YWx1ZSIsInBsb3RUeXBlIiwieUF4aXMiLCJpbnRlcnZhbCIsImdwdSIsIkZJTFRFUl9JRF9MRU5HVEgiLCJMQVlFUl9GSUxURVJTIiwiZ2V0RGVmYXVsdEZpbHRlciIsInRvQXJyYXkiLCJnZW5lcmF0ZUhhc2hJZCIsInNob3VsZEFwcGx5RmlsdGVyIiwiZGF0YXNldElkIiwiZGF0YUlkcyIsImluY2x1ZGVzIiwidmFsaWRhdGVQb2x5Z29uRmlsdGVyIiwiZGF0YXNldCIsImxheWVycyIsImZhaWxlZCIsImlzVmFsaWRGaWx0ZXJWYWx1ZSIsImlzVmFsaWREYXRhc2V0IiwibGF5ZXIiLCJmaW5kIiwibCIsImZpbHRlclZhbGlkYXRvcnMiLCJ2YWxpZGF0ZUZpbHRlciIsImZpbHRlckRhdGFJZCIsImZpbHRlckRhdGFzZXRJbmRleCIsImluZGV4T2YiLCJpbml0aWFsaXplRmlsdGVyIiwiZmllbGROYW1lIiwiX2FwcGx5RmlsdGVyRmllbGROYW1lIiwiYXBwbHlGaWx0ZXJGaWVsZE5hbWUiLCJtZXJnZURvbWFpbiIsInVwZGF0ZWRGaWx0ZXIiLCJ1cGRhdGVkRGF0YXNldCIsImFkanVzdFZhbHVlVG9GaWx0ZXJEb21haW4iLCJ2YWxpZGF0ZUZpbHRlcllBeGlzIiwidmFsaWRhdGVGaWx0ZXJXaXRoRGF0YSIsImZpZWxkcyIsIl9maWx0ZXIiLCJtYXRjaGVkQXhpcyIsIl9yZWYiLCJnZXRGaWx0ZXJQbG90IiwiZ2V0RmlsdGVyUHJvcHMiLCJmaWVsZCIsImZpZWxkRG9tYWluIiwiZmlsdGVyUHJvcHMiLCJmaWVsZFR5cGUiLCJ0eXBlT3B0aW9ucyIsInN0cmluZyIsImRhdGUiLCJ0aW1lc3RhbXAiLCJnZXRQb2x5Z29uRmlsdGVyRnVuY3RvciIsImRhdGFDb250YWluZXIiLCJnZXRQb3NpdGlvbiIsImdldFBvc2l0aW9uQWNjZXNzb3IiLCJMQVlFUl9UWVBFUyIsInBvaW50IiwiaWNvbiIsImRhdGEiLCJwb3MiLCJldmVyeSIsImlzRmluaXRlIiwiaXNJblBvbHlnb24iLCJhcmMiLCJsaW5lIiwiaGV4YWdvbklkIiwiZGF0YVRvRmVhdHVyZSIsImNlbnRyb2lkcyIsImNlbnRyb2lkIiwiaW5kZXgiLCJpc1ZhbGlkQ2VsbCIsImdldENlbnRyb2lkIiwiZ2V0RmlsdGVyRnVuY3Rpb24iLCJ2YWx1ZUFjY2Vzc29yIiwiZGVmYXVsdEZ1bmMiLCJkIiwiaXNJblJhbmdlIiwibWFwcGVkVmFsdWUiLCJhY2Nlc3NvciIsIkFycmF5IiwiaXNBcnJheSIsInRpbWVUb1VuaXhNaWxsaSIsImZvcm1hdCIsImxheWVyRmlsdGVyRnVuY3Rpb25zIiwibWFwIiwiY29uZmlnIiwiZmlsdGVyRnVuYyIsInVwZGF0ZUZpbHRlckRhdGFJZCIsImZpbHRlckRhdGFCeUZpbHRlclR5cGVzIiwiX3JlZjIiLCJkeW5hbWljRG9tYWluRmlsdGVycyIsImNwdUZpbHRlcnMiLCJmaWx0ZXJGdW5jcyIsImZpbHRlcmVkSW5kZXhGb3JEb21haW4iLCJmaWx0ZXJlZEluZGV4IiwiZmlsdGVyQ29udGV4dCIsImZpbHRlckZ1bmNDYWxsZXIiLCJudW1Sb3dzIiwibWF0Y2hGb3JEb21haW4iLCJtYXRjaEZvclJlbmRlciIsImdldEZpbHRlclJlY29yZCIsImZpbHRlcnMiLCJvcHQiLCJ1bmRlZmluZWQiLCJmaWx0ZXJSZWNvcmQiLCJkeW5hbWljRG9tYWluIiwiY3B1IiwiZiIsImlnbm9yZURvbWFpbiIsImNwdU9ubHkiLCJkaWZmRmlsdGVycyIsIm9sZEZpbHRlclJlY29yZCIsImZpbHRlckNoYW5nZWQiLCJlbnRyaWVzIiwiX3JlZjMiLCJfcmVmNCIsIl9zbGljZWRUb0FycmF5MiIsInJlY29yZCIsIml0ZW1zIiwib2xkRmlsdGVyIiwicHJvcCIsImNvbmNhdCIsIl9yZWY1Iiwibm90TnVsbG9yVW5kZWZpbmVkIiwiZmlsdGVyZWRWYWx1ZSIsImdldE51bWVyaWNGaWVsZERvbWFpbiIsIm1hcEluZGV4IiwiZ2V0TGluZWFyRG9tYWluIiwiZGlmZiIsImdldE51bWVyaWNTdGVwU2l6ZSIsImZvcm1hdE51bWJlckJ5U3RlcCIsIl9nZXRIaXN0b2dyYW0iLCJnZXRIaXN0b2dyYW0iLCJlbmxhcmdlZEhpc3RvZ3JhbSIsIk1hdGgiLCJhYnMiLCJ4IiwiZXhwb25lbnRpYWxGb3JtIiwidG9FeHBvbmVudGlhbCIsImV4cG9uZW50IiwicGFyc2VGbG9hdCIsInNwbGl0IiwiRGVjaW1hbCIsInBvdyIsInRvTnVtYmVyIiwiZ2V0VGltZXN0YW1wRmllbGREb21haW4iLCJkZWZhdWx0VGltZUZvcm1hdCIsImdldFRpbWVXaWRnZXRUaXRsZUZvcm1hdHRlciIsImVudHJ5IiwiX2dldEhpc3RvZ3JhbTIiLCJoaXN0b2dyYW1Db25zdHJ1Y3QiLCJiaW5zIiwiZDNIaXN0b2dyYW0iLCJ0aHJlc2hvbGRzIiwidGlja3MiLCJiaW4iLCJjb3VudCIsIngwIiwieDEiLCJ2YWwiLCJib3VuZCIsImZsb29yIiwiY2VpbCIsImJvb2xlYW5XaXRoaW4iLCJ0dXJmUG9pbnQiLCJpc1ZhbGlkVGltZURvbWFpbiIsImdldFRpbWVXaWRnZXRIaW50Rm9ybWF0dGVyIiwidiIsImlzTmFOIiwiQm9vbGVhbiIsImlucHV0IiwiY29vcmRpbmF0ZXMiLCJfZmlsdGVyJG1hcHBlZFZhbHVlIiwiZ2V0Q29sdW1uRmllbGRJZHgiLCJDb25zb2xlIiwid2FybiIsInNlcmllcyIsInJvdyIsInJvd0luZGV4IiwieSIsInZhbHVlQXQiLCJfcmVmNiIsInNvcnQiLCJiIiwiYXNjZW5kaW5nIiwieURvbWFpbiIsImV4dGVudCIsInhEb21haW4iLCJnZXREZWZhdWx0RmlsdGVyUGxvdFR5cGUiLCJmaWx0ZXJQbG90VHlwZXMiLCJhcHBseUZpbHRlcnNUb0RhdGFzZXRzIiwiZGF0YXNldElkcyIsImRhdGFzZXRzIiwicmVkdWNlIiwiYWNjIiwibGF5ZXJzVG9GaWx0ZXIiLCJhcHBsaWVkRmlsdGVycyIsInRhYmxlIiwiZmlsdGVyVGFibGUiLCJvcHRpb24iLCJmaWVsZEluZGV4IiwiZ2V0Q29sdW1uRmlsdGVyUHJvcHMiLCJuZXdGaWx0ZXIiLCJtZXJnZUZpbHRlckRvbWFpblN0ZXAiLCJhc3NpZ24iLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiY29tYmluZWREb21haW4iLCJ1bmlxdWUiLCJmZWF0dXJlVG9GaWx0ZXJWYWx1ZSIsImZlYXR1cmUiLCJmaWx0ZXJJZCIsInByb3BlcnRpZXMiLCJnZXRGaWx0ZXJJZEluRmVhdHVyZSIsImdlbmVyYXRlUG9seWdvbkZpbHRlciIsImxhYmVsIiwiaXNWaXNpYmxlIiwiZmlsdGVyRGF0YXNldENQVSIsInN0YXRlIiwiZGF0YXNldEZpbHRlcnMiLCJjcHVGaWx0ZXJlZERhdGFzZXQiLCJmaWx0ZXJUYWJsZUNQVSIsInZhbGlkYXRlRmlsdGVyc1VwZGF0ZURhdGFzZXRzIiwiZmlsdGVyc1RvVmFsaWRhdGUiLCJ2YWxpZGF0ZWQiLCJ1cGRhdGVkRGF0YXNldHMiLCJfZGF0YXNldElkcyRyZWR1Y2UiLCJfdmFsaWRhdGVGaWx0ZXJXaXRoRGEiLCJhdWdtZW50ZWREYXRhc2V0cyIsImFwcGx5VG9EYXRhc2V0cyIsInZhbGlkYXRlZEZpbHRlciIsImlzRXF1YWwiLCJnZXRJbnRlcnZhbEJpbnMiLCJfZmlsdGVyJHBsb3RUeXBlIiwidmFsdWVzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2ZpbHRlci11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge2FzY2VuZGluZywgZXh0ZW50LCBoaXN0b2dyYW0gYXMgZDNIaXN0b2dyYW0sIHRpY2tzfSBmcm9tICdkMy1hcnJheSc7XG5pbXBvcnQga2V5TWlycm9yIGZyb20gJ2tleW1pcnJvcic7XG5pbXBvcnQge2NvbnNvbGUgYXMgQ29uc29sZX0gZnJvbSAnZ2xvYmFsL2NvbnNvbGUnO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcblxuaW1wb3J0IGJvb2xlYW5XaXRoaW4gZnJvbSAnQHR1cmYvYm9vbGVhbi13aXRoaW4nO1xuaW1wb3J0IHtwb2ludCBhcyB0dXJmUG9pbnR9IGZyb20gJ0B0dXJmL2hlbHBlcnMnO1xuaW1wb3J0IHtEZWNpbWFsfSBmcm9tICdkZWNpbWFsLmpzJztcbmltcG9ydCB7QUxMX0ZJRUxEX1RZUEVTLCBGSUxURVJfVFlQRVMsIEFOSU1BVElPTl9XSU5ET1d9IGZyb20gJ2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcbmltcG9ydCB7bm90TnVsbG9yVW5kZWZpbmVkLCB1bmlxdWUsIHRpbWVUb1VuaXhNaWxsaX0gZnJvbSAnLi9kYXRhLXV0aWxzJztcbmltcG9ydCAqIGFzIFNjYWxlVXRpbHMgZnJvbSAnLi9kYXRhLXNjYWxlLXV0aWxzJztcbmltcG9ydCB7TEFZRVJfVFlQRVN9IGZyb20gJ2xheWVycy90eXBlcyc7XG5pbXBvcnQge2dlbmVyYXRlSGFzaElkLCBzZXQsIHRvQXJyYXl9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHtnZXRDZW50cm9pZCwgaXNWYWxpZENlbGx9IGZyb20gJ2xheWVycy9oMy1oZXhhZ29uLWxheWVyL2gzLXV0aWxzJztcblxuaW1wb3J0IHtcbiAgRmlsdGVyLFxuICBGaWx0ZXJCYXNlLFxuICBQb2x5Z29uRmlsdGVyLFxuICBEYXRhc2V0cyxcbiAgRmllbGREb21haW4sXG4gIFRpbWVSYW5nZUZpZWxkRG9tYWluLFxuICBIaXN0b2dyYW1CaW4sXG4gIEZlYXR1cmUsXG4gIEZlYXR1cmVWYWx1ZSxcbiAgVmlzU3RhdGUsXG4gIExpbmVDaGFydCxcbiAgVGltZVJhbmdlRmlsdGVyLFxuICBSYW5nZUZpZWxkRG9tYWluXG59IGZyb20gJy4uL3JlZHVjZXJzL3Zpcy1zdGF0ZS11cGRhdGVycyc7XG5pbXBvcnQgS2VwbGVyVGFibGUsIHtGaWVsZCwgRmlsdGVyUmVjb3JkLCBGaWx0ZXJEYXRhc2V0T3B0fSBmcm9tICcuL3RhYmxlLXV0aWxzL2tlcGxlci10YWJsZSc7XG5pbXBvcnQge0xheWVyfSBmcm9tICdsYXllcnMnO1xuaW1wb3J0IHtQYXJzZWRGaWx0ZXJ9IGZyb20gJ3NjaGVtYXMnO1xuaW1wb3J0IHtEYXRhQ29udGFpbmVySW50ZXJmYWNlfSBmcm9tICcuL3RhYmxlLXV0aWxzL2RhdGEtY29udGFpbmVyLWludGVyZmFjZSc7XG5pbXBvcnQge01pbGxpc2Vjb25kfSBmcm9tICdjbG91ZC1wcm92aWRlcnMnO1xuaW1wb3J0IHtFbnRyaWVzfSBmcm9tICdyZWR1Y2Vycyc7XG5cbmV4cG9ydCB0eXBlIEZpbHRlclJlc3VsdCA9IHtcbiAgZmlsdGVyZWRJbmRleEZvckRvbWFpbj86IG51bWJlcltdO1xuICBmaWx0ZXJlZEluZGV4PzogbnVtYmVyW107XG59O1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJDaGFuZ2VkID0ge1xuICBba2V5IGluIGtleW9mIEZpbHRlclJlY29yZF06IHtcbiAgICBba2V5OiBzdHJpbmddOiAnYWRkZWQnIHwgJ2RlbGV0ZWQnIHwgJ25hbWVfY2hhbmdlZCcgfCAndmFsdWVfY2hhbmdlZCcgfCAnZGF0YUlkX2NoYW5nZWQnO1xuICB9IHwgbnVsbDtcbn07XG5cbmV4cG9ydCB0eXBlIGRhdGFWYWx1ZUFjY2Vzc29yID0gKGRhdGE6IHtpbmRleDogbnVtYmVyfSkgPT4gbnVtYmVyIHwgbnVsbDtcblxuZXhwb3J0IGNvbnN0IFRpbWVzdGFtcFN0ZXBNYXAgPSBbXG4gIHttYXg6IDEsIHN0ZXA6IDAuMDV9LFxuICB7bWF4OiAxMCwgc3RlcDogMC4xfSxcbiAge21heDogMTAwLCBzdGVwOiAxfSxcbiAge21heDogNTAwLCBzdGVwOiA1fSxcbiAge21heDogMTAwMCwgc3RlcDogMTB9LFxuICB7bWF4OiA1MDAwLCBzdGVwOiA1MH0sXG4gIHttYXg6IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSwgc3RlcDogMTAwMH1cbl07XG5cbmV4cG9ydCBjb25zdCBoaXN0b2dyYW1CaW5zID0gMzA7XG5leHBvcnQgY29uc3QgZW5sYXJnZWRIaXN0b2dyYW1CaW5zID0gMTAwO1xuXG5jb25zdCBkdXJhdGlvblNlY29uZCA9IDEwMDA7XG5jb25zdCBkdXJhdGlvbk1pbnV0ZSA9IGR1cmF0aW9uU2Vjb25kICogNjA7XG5jb25zdCBkdXJhdGlvbkhvdXIgPSBkdXJhdGlvbk1pbnV0ZSAqIDYwO1xuY29uc3QgZHVyYXRpb25EYXkgPSBkdXJhdGlvbkhvdXIgKiAyNDtcbmNvbnN0IGR1cmF0aW9uV2VlayA9IGR1cmF0aW9uRGF5ICogNztcbmNvbnN0IGR1cmF0aW9uWWVhciA9IGR1cmF0aW9uRGF5ICogMzY1O1xuXG5leHBvcnQgY29uc3QgUExPVF9UWVBFUyA9IGtleU1pcnJvcih7XG4gIGhpc3RvZ3JhbTogbnVsbCxcbiAgbGluZUNoYXJ0OiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IEZJTFRFUl9VUERBVEVSX1BST1BTID0ga2V5TWlycm9yKHtcbiAgZGF0YUlkOiBudWxsLFxuICBuYW1lOiBudWxsLFxuICBsYXllcklkOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IExJTUlURURfRklMVEVSX0VGRkVDVF9QUk9QUyA9IGtleU1pcnJvcih7XG4gIFtGSUxURVJfVVBEQVRFUl9QUk9QUy5uYW1lXTogbnVsbFxufSk7XG4vKipcbiAqIE1heCBudW1iZXIgb2YgZmlsdGVyIHZhbHVlIGJ1ZmZlcnMgdGhhdCBkZWNrLmdsIHByb3ZpZGVzXG4gKi9cblxuY29uc3QgU3VwcG9ydGVkUGxvdFR5cGUgPSB7XG4gIFtGSUxURVJfVFlQRVMudGltZVJhbmdlXToge1xuICAgIGRlZmF1bHQ6ICdoaXN0b2dyYW0nLFxuICAgIFtBTExfRklFTERfVFlQRVMuaW50ZWdlcl06ICdsaW5lQ2hhcnQnLFxuICAgIFtBTExfRklFTERfVFlQRVMucmVhbF06ICdsaW5lQ2hhcnQnXG4gIH0sXG4gIFtGSUxURVJfVFlQRVMucmFuZ2VdOiB7XG4gICAgZGVmYXVsdDogJ2hpc3RvZ3JhbScsXG4gICAgW0FMTF9GSUVMRF9UWVBFUy5pbnRlZ2VyXTogJ2xpbmVDaGFydCcsXG4gICAgW0FMTF9GSUVMRF9UWVBFUy5yZWFsXTogJ2xpbmVDaGFydCdcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IEZJTFRFUl9DT01QT05FTlRTID0ge1xuICBbRklMVEVSX1RZUEVTLnNlbGVjdF06ICdTaW5nbGVTZWxlY3RGaWx0ZXInLFxuICBbRklMVEVSX1RZUEVTLm11bHRpU2VsZWN0XTogJ011bHRpU2VsZWN0RmlsdGVyJyxcbiAgW0ZJTFRFUl9UWVBFUy50aW1lUmFuZ2VdOiAnVGltZVJhbmdlRmlsdGVyJyxcbiAgW0ZJTFRFUl9UWVBFUy5yYW5nZV06ICdSYW5nZUZpbHRlcicsXG4gIFtGSUxURVJfVFlQRVMucG9seWdvbl06ICdQb2x5Z29uRmlsdGVyJ1xufTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRklMVEVSX1NUUlVDVFVSRSA9IHtcbiAgZGF0YUlkOiBbXSwgLy8gW3N0cmluZ11cbiAgZnJlZXplOiBmYWxzZSxcbiAgaWQ6IG51bGwsXG5cbiAgLy8gdGltZSByYW5nZSBmaWx0ZXIgc3BlY2lmaWNcbiAgZml4ZWREb21haW46IGZhbHNlLFxuICBlbmxhcmdlZDogZmFsc2UsXG4gIGlzQW5pbWF0aW5nOiBmYWxzZSxcbiAgYW5pbWF0aW9uV2luZG93OiBBTklNQVRJT05fV0lORE9XLmZyZWUsXG4gIHNwZWVkOiAxLFxuXG4gIC8vIGZpZWxkIHNwZWNpZmljXG4gIG5hbWU6IFtdLCAvLyBzdHJpbmdcbiAgdHlwZTogbnVsbCxcbiAgZmllbGRJZHg6IFtdLCAvLyBbaW50ZWdlcl1cbiAgZG9tYWluOiBudWxsLFxuICB2YWx1ZTogbnVsbCxcblxuICAvLyBwbG90XG4gIHBsb3RUeXBlOiBQTE9UX1RZUEVTLmhpc3RvZ3JhbSxcbiAgeUF4aXM6IG51bGwsXG4gIGludGVydmFsOiBudWxsLFxuXG4gIC8vIG1vZGVcbiAgZ3B1OiBmYWxzZVxufTtcblxuZXhwb3J0IGNvbnN0IEZJTFRFUl9JRF9MRU5HVEggPSA0O1xuXG5leHBvcnQgY29uc3QgTEFZRVJfRklMVEVSUyA9IFtGSUxURVJfVFlQRVMucG9seWdvbl07XG5cbi8qKlxuICogR2VuZXJhdGVzIGEgZmlsdGVyIHdpdGggYSBkYXRhc2V0IGlkIGFzIGRhdGFJZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdEZpbHRlcihkYXRhSWQ6IHN0cmluZyB8IG51bGwgfCBzdHJpbmdbXSk6IEZpbHRlckJhc2Uge1xuICByZXR1cm4ge1xuICAgIC4uLkRFRkFVTFRfRklMVEVSX1NUUlVDVFVSRSxcbiAgICAvLyBzdG9yZSBpdCBhcyBkYXRhSWQgYW5kIGl0IGNvdWxkIGJlIG9uZSBvciBtYW55XG4gICAgZGF0YUlkOiB0b0FycmF5KGRhdGFJZCksXG4gICAgaWQ6IGdlbmVyYXRlSGFzaElkKEZJTFRFUl9JRF9MRU5HVEgpXG4gIH07XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBmaWx0ZXIgaXMgdmFsaWQgYmFzZWQgb24gdGhlIGdpdmVuIGRhdGFJZFxuICogQHBhcmFtICBmaWx0ZXIgdG8gdmFsaWRhdGVcbiAqIEBwYXJhbSAgZGF0YXNldElkIGlkIHRvIHZhbGlkYXRlIGZpbHRlciBhZ2FpbnN0XG4gKiBAcmV0dXJuIHRydWUgaWYgYSBmaWx0ZXIgaXMgdmFsaWQsIGZhbHNlIG90aGVyd2lzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2hvdWxkQXBwbHlGaWx0ZXIoZmlsdGVyOiBGaWx0ZXIsIGRhdGFzZXRJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IGRhdGFJZHMgPSB0b0FycmF5KGZpbHRlci5kYXRhSWQpO1xuICByZXR1cm4gZGF0YUlkcy5pbmNsdWRlcyhkYXRhc2V0SWQpICYmIGZpbHRlci52YWx1ZSAhPT0gbnVsbDtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgYW5kIG1vZGlmaWVzIHBvbHlnb24gZmlsdGVyIHN0cnVjdHVyZVxuICogQHBhcmFtIGRhdGFzZXRcbiAqIEBwYXJhbSBmaWx0ZXJcbiAqIEBwYXJhbSBsYXllcnNcbiAqIEByZXR1cm4gLSB7ZmlsdGVyLCBkYXRhc2V0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVQb2x5Z29uRmlsdGVyKFxuICBkYXRhc2V0OiBLZXBsZXJUYWJsZSxcbiAgZmlsdGVyOiBQb2x5Z29uRmlsdGVyLFxuICBsYXllcnM6IExheWVyW11cbik6IHtmaWx0ZXI6IFBvbHlnb25GaWx0ZXIgfCBudWxsOyBkYXRhc2V0OiBLZXBsZXJUYWJsZX0ge1xuICBjb25zdCBmYWlsZWQgPSB7ZGF0YXNldCwgZmlsdGVyOiBudWxsfTtcbiAgY29uc3Qge3ZhbHVlLCBsYXllcklkLCB0eXBlLCBkYXRhSWR9ID0gZmlsdGVyO1xuXG4gIGlmICghbGF5ZXJJZCB8fCAhaXNWYWxpZEZpbHRlclZhbHVlKHR5cGUsIHZhbHVlKSkge1xuICAgIHJldHVybiBmYWlsZWQ7XG4gIH1cblxuICBjb25zdCBpc1ZhbGlkRGF0YXNldCA9IGRhdGFJZC5pbmNsdWRlcyhkYXRhc2V0LmlkKTtcblxuICBpZiAoIWlzVmFsaWREYXRhc2V0KSB7XG4gICAgcmV0dXJuIGZhaWxlZDtcbiAgfVxuXG4gIGNvbnN0IGxheWVyID0gbGF5ZXJzLmZpbmQobCA9PiBsYXllcklkLmluY2x1ZGVzKGwuaWQpKTtcblxuICBpZiAoIWxheWVyKSB7XG4gICAgcmV0dXJuIGZhaWxlZDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZmlsdGVyOiB7XG4gICAgICAuLi5maWx0ZXIsXG4gICAgICBmcmVlemU6IHRydWUsXG4gICAgICBmaWVsZElkeDogW11cbiAgICB9LFxuICAgIGRhdGFzZXRcbiAgfTtcbn1cblxuLyoqXG4gKiBDdXN0b20gZmlsdGVyIHZhbGlkYXRvcnNcbiAqL1xuY29uc3QgZmlsdGVyVmFsaWRhdG9ycyA9IHtcbiAgW0ZJTFRFUl9UWVBFUy5wb2x5Z29uXTogdmFsaWRhdGVQb2x5Z29uRmlsdGVyXG59O1xuXG4vKipcbiAqIERlZmF1bHQgdmFsaWRhdGUgZmlsdGVyIGZ1bmN0aW9uXG4gKiBAcGFyYW0gZGF0YXNldFxuICogQHBhcmFtIGZpbHRlclxuICogQHJldHVybiAtIHtmaWx0ZXIsIGRhdGFzZXR9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUZpbHRlcihcbiAgZGF0YXNldDogS2VwbGVyVGFibGUsXG4gIGZpbHRlcjogUGFyc2VkRmlsdGVyXG4pOiB7ZmlsdGVyOiBGaWx0ZXIgfCBudWxsOyBkYXRhc2V0OiBLZXBsZXJUYWJsZX0ge1xuICAvLyBtYXRjaCBmaWx0ZXIuZGF0YUlkXG4gIGNvbnN0IGZhaWxlZCA9IHtkYXRhc2V0LCBmaWx0ZXI6IG51bGx9O1xuICBjb25zdCBmaWx0ZXJEYXRhSWQgPSB0b0FycmF5KGZpbHRlci5kYXRhSWQpO1xuXG4gIGNvbnN0IGZpbHRlckRhdGFzZXRJbmRleCA9IGZpbHRlckRhdGFJZC5pbmRleE9mKGRhdGFzZXQuaWQpO1xuICBpZiAoZmlsdGVyRGF0YXNldEluZGV4IDwgMCkge1xuICAgIC8vIHRoZSBjdXJyZW50IGZpbHRlciBpcyBub3QgbWFwcGVkIGFnYWluc3QgdGhlIGN1cnJlbnQgZGF0YXNldFxuICAgIHJldHVybiBmYWlsZWQ7XG4gIH1cblxuICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gIGNvbnN0IGluaXRpYWxpemVGaWx0ZXI6IEZpbHRlciA9IHtcbiAgICAuLi5nZXREZWZhdWx0RmlsdGVyKGZpbHRlci5kYXRhSWQpLFxuICAgIC4uLmZpbHRlcixcbiAgICBkYXRhSWQ6IGZpbHRlckRhdGFJZCxcbiAgICBuYW1lOiB0b0FycmF5KGZpbHRlci5uYW1lKVxuICB9O1xuXG4gIGNvbnN0IGZpZWxkTmFtZSA9IGluaXRpYWxpemVGaWx0ZXIubmFtZVtmaWx0ZXJEYXRhc2V0SW5kZXhdO1xuICBjb25zdCB7ZmlsdGVyOiB1cGRhdGVkRmlsdGVyLCBkYXRhc2V0OiB1cGRhdGVkRGF0YXNldH0gPSBhcHBseUZpbHRlckZpZWxkTmFtZShcbiAgICBpbml0aWFsaXplRmlsdGVyLFxuICAgIGRhdGFzZXQsXG4gICAgZmllbGROYW1lLFxuICAgIGZpbHRlckRhdGFzZXRJbmRleCxcbiAgICB7bWVyZ2VEb21haW46IHRydWV9XG4gICk7XG5cbiAgaWYgKCF1cGRhdGVkRmlsdGVyKSB7XG4gICAgcmV0dXJuIGZhaWxlZDtcbiAgfVxuXG4gIHVwZGF0ZWRGaWx0ZXIudmFsdWUgPSBhZGp1c3RWYWx1ZVRvRmlsdGVyRG9tYWluKGZpbHRlci52YWx1ZSwgdXBkYXRlZEZpbHRlcik7XG4gIHVwZGF0ZWRGaWx0ZXIuZW5sYXJnZWQgPVxuICAgIHR5cGVvZiBmaWx0ZXIuZW5sYXJnZWQgPT09ICdib29sZWFuJyA/IGZpbHRlci5lbmxhcmdlZCA6IHVwZGF0ZWRGaWx0ZXIuZW5sYXJnZWQ7XG5cbiAgaWYgKHVwZGF0ZWRGaWx0ZXIudmFsdWUgPT09IG51bGwpIHtcbiAgICAvLyBjYW5ub3QgYWRqdXN0IHNhdmVkIHZhbHVlIHRvIGZpbHRlclxuICAgIHJldHVybiBmYWlsZWQ7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGZpbHRlcjogdmFsaWRhdGVGaWx0ZXJZQXhpcyh1cGRhdGVkRmlsdGVyLCB1cGRhdGVkRGF0YXNldCksXG4gICAgZGF0YXNldDogdXBkYXRlZERhdGFzZXRcbiAgfTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBzYXZlZCBmaWx0ZXIgY29uZmlnIHdpdGggbmV3IGRhdGEsXG4gKiBjYWxjdWxhdGUgZG9tYWluIGFuZCBmaWVsZElkeCBiYXNlZCBuZXcgZmllbGRzIGFuZCBkYXRhXG4gKlxuICogQHBhcmFtIGRhdGFzZXRcbiAqIEBwYXJhbSBmaWx0ZXIgLSBmaWx0ZXIgdG8gYmUgdmFsaWRhdGVcbiAqIEBwYXJhbSBsYXllcnMgLSBsYXllcnNcbiAqIEByZXR1cm4gdmFsaWRhdGVkIGZpbHRlclxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVGaWx0ZXJXaXRoRGF0YShcbiAgZGF0YXNldDogS2VwbGVyVGFibGUsXG4gIGZpbHRlcjogUGFyc2VkRmlsdGVyLFxuICBsYXllcnM6IExheWVyW11cbik6IHtmaWx0ZXI6IEZpbHRlcjsgZGF0YXNldDogS2VwbGVyVGFibGV9IHtcbiAgcmV0dXJuIGZpbHRlci50eXBlICYmIGZpbHRlclZhbGlkYXRvcnMuaGFzT3duUHJvcGVydHkoZmlsdGVyLnR5cGUpXG4gICAgPyBmaWx0ZXJWYWxpZGF0b3JzW2ZpbHRlci50eXBlXShkYXRhc2V0LCBmaWx0ZXIsIGxheWVycylcbiAgICA6IHZhbGlkYXRlRmlsdGVyKGRhdGFzZXQsIGZpbHRlcik7XG59XG5cbi8qKlxuICogVmFsaWRhdGUgWUF4aXNcbiAqIEBwYXJhbSBmaWx0ZXJcbiAqIEBwYXJhbSBkYXRhc2V0XG4gKiBAcmV0dXJuIHsqfVxuICovXG5mdW5jdGlvbiB2YWxpZGF0ZUZpbHRlcllBeGlzKGZpbHRlciwgZGF0YXNldCkge1xuICAvLyBUT0RPOiB2YWxpZGF0ZSB5QXhpcyBhZ2FpbnN0IG90aGVyIGRhdGFzZXRzXG5cbiAgY29uc3Qge2ZpZWxkc30gPSBkYXRhc2V0O1xuICBjb25zdCB7eUF4aXN9ID0gZmlsdGVyO1xuICAvLyBUT0RPOiB2YWxpZGF0ZSB5QXhpcyBhZ2FpbnN0IG90aGVyIGRhdGFzZXRzXG4gIGlmICh5QXhpcykge1xuICAgIGNvbnN0IG1hdGNoZWRBeGlzID0gZmllbGRzLmZpbmQoKHtuYW1lLCB0eXBlfSkgPT4gbmFtZSA9PT0geUF4aXMubmFtZSAmJiB0eXBlID09PSB5QXhpcy50eXBlKTtcblxuICAgIGZpbHRlciA9IG1hdGNoZWRBeGlzXG4gICAgICA/IHtcbiAgICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgICAgeUF4aXM6IG1hdGNoZWRBeGlzLFxuICAgICAgICAgIC4uLmdldEZpbHRlclBsb3Qoey4uLmZpbHRlciwgeUF4aXM6IG1hdGNoZWRBeGlzfSwgZGF0YXNldClcbiAgICAgICAgfVxuICAgICAgOiBmaWx0ZXI7XG4gIH1cblxuICByZXR1cm4gZmlsdGVyO1xufVxuXG4vKipcbiAqIEdldCBkZWZhdWx0IGZpbHRlciBwcm9wIGJhc2VkIG9uIGZpZWxkIHR5cGVcbiAqXG4gKiBAcGFyYW0gZmllbGRcbiAqIEBwYXJhbSBmaWVsZERvbWFpblxuICogQHJldHVybnMgZGVmYXVsdCBmaWx0ZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbHRlclByb3BzKFxuICBmaWVsZDogRmllbGQsXG4gIGZpZWxkRG9tYWluOiBGaWVsZERvbWFpblxuKTogUGFydGlhbDxGaWx0ZXI+ICYge2ZpZWxkVHlwZTogc3RyaW5nfSB7XG4gIGNvbnN0IGZpbHRlclByb3BzID0ge1xuICAgIC4uLmZpZWxkRG9tYWluLFxuICAgIGZpZWxkVHlwZTogZmllbGQudHlwZVxuICB9O1xuXG4gIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgIGNhc2UgQUxMX0ZJRUxEX1RZUEVTLnJlYWw6XG4gICAgY2FzZSBBTExfRklFTERfVFlQRVMuaW50ZWdlcjpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmZpbHRlclByb3BzLFxuICAgICAgICB2YWx1ZTogZmllbGREb21haW4uZG9tYWluLFxuICAgICAgICB0eXBlOiBGSUxURVJfVFlQRVMucmFuZ2UsXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgdHlwZU9wdGlvbnM6IFtGSUxURVJfVFlQRVMucmFuZ2VdLFxuICAgICAgICBncHU6IHRydWVcbiAgICAgIH07XG5cbiAgICBjYXNlIEFMTF9GSUVMRF9UWVBFUy5ib29sZWFuOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZmlsdGVyUHJvcHMsXG4gICAgICAgIHR5cGU6IEZJTFRFUl9UWVBFUy5zZWxlY3QsXG4gICAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgICBncHU6IGZhbHNlXG4gICAgICB9O1xuXG4gICAgY2FzZSBBTExfRklFTERfVFlQRVMuc3RyaW5nOlxuICAgIGNhc2UgQUxMX0ZJRUxEX1RZUEVTLmRhdGU6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5maWx0ZXJQcm9wcyxcbiAgICAgICAgdHlwZTogRklMVEVSX1RZUEVTLm11bHRpU2VsZWN0LFxuICAgICAgICB2YWx1ZTogW10sXG4gICAgICAgIGdwdTogZmFsc2VcbiAgICAgIH07XG5cbiAgICBjYXNlIEFMTF9GSUVMRF9UWVBFUy50aW1lc3RhbXA6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5maWx0ZXJQcm9wcyxcbiAgICAgICAgdHlwZTogRklMVEVSX1RZUEVTLnRpbWVSYW5nZSxcbiAgICAgICAgZW5sYXJnZWQ6IHRydWUsXG4gICAgICAgIGZpeGVkRG9tYWluOiB0cnVlLFxuICAgICAgICB2YWx1ZTogZmlsdGVyUHJvcHMuZG9tYWluLFxuICAgICAgICBncHU6IHRydWVcbiAgICAgIH07XG5cbiAgICBkZWZhdWx0OlxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgcmV0dXJuIHt9O1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBnZXRQb2x5Z29uRmlsdGVyRnVuY3RvciA9IChsYXllciwgZmlsdGVyLCBkYXRhQ29udGFpbmVyKSA9PiB7XG4gIGNvbnN0IGdldFBvc2l0aW9uID0gbGF5ZXIuZ2V0UG9zaXRpb25BY2Nlc3NvcihkYXRhQ29udGFpbmVyKTtcblxuICBzd2l0Y2ggKGxheWVyLnR5cGUpIHtcbiAgICBjYXNlIExBWUVSX1RZUEVTLnBvaW50OlxuICAgIGNhc2UgTEFZRVJfVFlQRVMuaWNvbjpcbiAgICAgIHJldHVybiBkYXRhID0+IHtcbiAgICAgICAgY29uc3QgcG9zID0gZ2V0UG9zaXRpb24oZGF0YSk7XG4gICAgICAgIHJldHVybiBwb3MuZXZlcnkoTnVtYmVyLmlzRmluaXRlKSAmJiBpc0luUG9seWdvbihwb3MsIGZpbHRlci52YWx1ZSk7XG4gICAgICB9O1xuICAgIGNhc2UgTEFZRVJfVFlQRVMuYXJjOlxuICAgIGNhc2UgTEFZRVJfVFlQRVMubGluZTpcbiAgICAgIHJldHVybiBkYXRhID0+IHtcbiAgICAgICAgY29uc3QgcG9zID0gZ2V0UG9zaXRpb24oZGF0YSk7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgcG9zLmV2ZXJ5KE51bWJlci5pc0Zpbml0ZSkgJiZcbiAgICAgICAgICBbXG4gICAgICAgICAgICBbcG9zWzBdLCBwb3NbMV1dLFxuICAgICAgICAgICAgW3Bvc1szXSwgcG9zWzRdXVxuICAgICAgICAgIF0uZXZlcnkocG9pbnQgPT4gaXNJblBvbHlnb24ocG9pbnQsIGZpbHRlci52YWx1ZSkpXG4gICAgICAgICk7XG4gICAgICB9O1xuICAgIGNhc2UgTEFZRVJfVFlQRVMuaGV4YWdvbklkOlxuICAgICAgaWYgKGxheWVyLmRhdGFUb0ZlYXR1cmUgJiYgbGF5ZXIuZGF0YVRvRmVhdHVyZS5jZW50cm9pZHMpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEgPT4ge1xuICAgICAgICAgIC8vIG51bGwgb3IgZ2V0Q2VudHJvaWQoe2lkfSlcbiAgICAgICAgICBjb25zdCBjZW50cm9pZCA9IGxheWVyLmRhdGFUb0ZlYXR1cmUuY2VudHJvaWRzW2RhdGEuaW5kZXhdO1xuICAgICAgICAgIHJldHVybiBjZW50cm9pZCAmJiBpc0luUG9seWdvbihjZW50cm9pZCwgZmlsdGVyLnZhbHVlKTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkYXRhID0+IHtcbiAgICAgICAgY29uc3QgaWQgPSBnZXRQb3NpdGlvbihkYXRhKTtcbiAgICAgICAgaWYgKCFpc1ZhbGlkQ2VsbChpZCkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcG9zID0gZ2V0Q2VudHJvaWQoe2lkfSk7XG4gICAgICAgIHJldHVybiBwb3MuZXZlcnkoTnVtYmVyLmlzRmluaXRlKSAmJiBpc0luUG9seWdvbihwb3MsIGZpbHRlci52YWx1ZSk7XG4gICAgICB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gKCkgPT4gdHJ1ZTtcbiAgfVxufTtcblxuLyoqXG4gKiBAcGFyYW0gcGFyYW0gQW4gb2JqZWN0IHRoYXQgcmVwcmVzZW50cyBhIHJvdyByZWNvcmQuXG4gKiBAcGFyYW0gcGFyYW0uaW5kZXggSW5kZXggb2YgdGhlIHJvdyBpbiBkYXRhIGNvbnRhaW5lci5cbiAqIEByZXR1cm5zIFJldHVybnMgdHJ1ZSB0byBrZWVwIHRoZSBlbGVtZW50LCBvciBmYWxzZSBvdGhlcndpc2UuXG4gKi9cbnR5cGUgZmlsdGVyRnVuY3Rpb24gPSAoZGF0YToge2luZGV4OiBudW1iZXJ9KSA9PiBib29sZWFuO1xuLyoqXG4gKiBAcGFyYW0gZmllbGQgZGF0YXNldCBGaWVsZFxuICogQHBhcmFtIGRhdGFJZCBEYXRhc2V0IGlkXG4gKiBAcGFyYW0gZmlsdGVyIEZpbHRlciBvYmplY3RcbiAqIEBwYXJhbSBsYXllcnMgbGlzdCBvZiBsYXllcnMgdG8gZmlsdGVyIHVwb25cbiAqIEBwYXJhbSBkYXRhQ29udGFpbmVyIERhdGEgY29udGFpbmVyXG4gKiBAcmV0dXJuIGZpbHRlckZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWx0ZXJGdW5jdGlvbihcbiAgZmllbGQ6IEZpZWxkIHwgbnVsbCxcbiAgZGF0YUlkOiBzdHJpbmcsXG4gIGZpbHRlcjogRmlsdGVyLFxuICBsYXllcnM6IExheWVyW10sXG4gIGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2Vcbik6IGZpbHRlckZ1bmN0aW9uIHtcbiAgLy8gZmllbGQgY291bGQgYmUgbnVsbCBpbiBwb2x5Z29uIGZpbHRlclxuICBjb25zdCB2YWx1ZUFjY2Vzc29yID0gZmllbGQgPyBmaWVsZC52YWx1ZUFjY2Vzc29yIDogZGF0YSA9PiBudWxsO1xuICBjb25zdCBkZWZhdWx0RnVuYyA9IGQgPT4gdHJ1ZTtcblxuICBzd2l0Y2ggKGZpbHRlci50eXBlKSB7XG4gICAgY2FzZSBGSUxURVJfVFlQRVMucmFuZ2U6XG4gICAgICByZXR1cm4gZGF0YSA9PiBpc0luUmFuZ2UodmFsdWVBY2Nlc3NvcihkYXRhKSwgZmlsdGVyLnZhbHVlKTtcbiAgICBjYXNlIEZJTFRFUl9UWVBFUy5tdWx0aVNlbGVjdDpcbiAgICAgIHJldHVybiBkYXRhID0+IGZpbHRlci52YWx1ZS5pbmNsdWRlcyh2YWx1ZUFjY2Vzc29yKGRhdGEpKTtcbiAgICBjYXNlIEZJTFRFUl9UWVBFUy5zZWxlY3Q6XG4gICAgICByZXR1cm4gZGF0YSA9PiB2YWx1ZUFjY2Vzc29yKGRhdGEpID09PSBmaWx0ZXIudmFsdWU7XG4gICAgY2FzZSBGSUxURVJfVFlQRVMudGltZVJhbmdlOlxuICAgICAgaWYgKCFmaWVsZCkge1xuICAgICAgICByZXR1cm4gZGVmYXVsdEZ1bmM7XG4gICAgICB9XG4gICAgICBjb25zdCBtYXBwZWRWYWx1ZSA9IGdldChmaWVsZCwgWydmaWx0ZXJQcm9wcycsICdtYXBwZWRWYWx1ZSddKTtcbiAgICAgIGNvbnN0IGFjY2Vzc29yID0gQXJyYXkuaXNBcnJheShtYXBwZWRWYWx1ZSlcbiAgICAgICAgPyBkYXRhID0+IG1hcHBlZFZhbHVlW2RhdGEuaW5kZXhdXG4gICAgICAgIDogZGF0YSA9PiB0aW1lVG9Vbml4TWlsbGkodmFsdWVBY2Nlc3NvcihkYXRhKSwgZmllbGQuZm9ybWF0KTtcbiAgICAgIHJldHVybiBkYXRhID0+IGlzSW5SYW5nZShhY2Nlc3NvcihkYXRhKSwgZmlsdGVyLnZhbHVlKTtcbiAgICBjYXNlIEZJTFRFUl9UWVBFUy5wb2x5Z29uOlxuICAgICAgaWYgKCFsYXllcnMgfHwgIWxheWVycy5sZW5ndGggfHwgIWZpbHRlci5sYXllcklkKSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0RnVuYztcbiAgICAgIH1cbiAgICAgIGNvbnN0IGxheWVyRmlsdGVyRnVuY3Rpb25zID0gZmlsdGVyLmxheWVySWRcbiAgICAgICAgLm1hcChpZCA9PiBsYXllcnMuZmluZChsID0+IGwuaWQgPT09IGlkKSlcbiAgICAgICAgLmZpbHRlcihsID0+IGwgJiYgbC5jb25maWcuZGF0YUlkID09PSBkYXRhSWQpXG4gICAgICAgIC5tYXAobGF5ZXIgPT4gZ2V0UG9seWdvbkZpbHRlckZ1bmN0b3IobGF5ZXIsIGZpbHRlciwgZGF0YUNvbnRhaW5lcikpO1xuXG4gICAgICByZXR1cm4gZGF0YSA9PiBsYXllckZpbHRlckZ1bmN0aW9ucy5ldmVyeShmaWx0ZXJGdW5jID0+IGZpbHRlckZ1bmMoZGF0YSkpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZGVmYXVsdEZ1bmM7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUZpbHRlckRhdGFJZChkYXRhSWQ6IHN0cmluZyk6IEZpbHRlckJhc2Uge1xuICByZXR1cm4gZ2V0RGVmYXVsdEZpbHRlcihkYXRhSWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyRGF0YUJ5RmlsdGVyVHlwZXMoXG4gIHtcbiAgICBkeW5hbWljRG9tYWluRmlsdGVycyxcbiAgICBjcHVGaWx0ZXJzLFxuICAgIGZpbHRlckZ1bmNzXG4gIH06IHtcbiAgICBkeW5hbWljRG9tYWluRmlsdGVyczogRmlsdGVyW10gfCBudWxsO1xuICAgIGNwdUZpbHRlcnM6IEZpbHRlcltdIHwgbnVsbDtcbiAgICBmaWx0ZXJGdW5jczoge1xuICAgICAgW2tleTogc3RyaW5nXTogZmlsdGVyRnVuY3Rpb247XG4gICAgfTtcbiAgfSxcbiAgZGF0YUNvbnRhaW5lcjogRGF0YUNvbnRhaW5lckludGVyZmFjZVxuKTogRmlsdGVyUmVzdWx0IHtcbiAgY29uc3QgZmlsdGVyZWRJbmRleEZvckRvbWFpbjogbnVtYmVyW10gPSBbXTtcbiAgY29uc3QgZmlsdGVyZWRJbmRleDogbnVtYmVyW10gPSBbXTtcblxuICBjb25zdCBmaWx0ZXJDb250ZXh0ID0ge2luZGV4OiAtMSwgZGF0YUNvbnRhaW5lcn07XG4gIGNvbnN0IGZpbHRlckZ1bmNDYWxsZXIgPSAoZmlsdGVyOiBGaWx0ZXIpID0+IGZpbHRlckZ1bmNzW2ZpbHRlci5pZF0oZmlsdGVyQ29udGV4dCk7XG5cbiAgY29uc3QgbnVtUm93cyA9IGRhdGFDb250YWluZXIubnVtUm93cygpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVJvd3M7ICsraSkge1xuICAgIGZpbHRlckNvbnRleHQuaW5kZXggPSBpO1xuXG4gICAgY29uc3QgbWF0Y2hGb3JEb21haW4gPSBkeW5hbWljRG9tYWluRmlsdGVycyAmJiBkeW5hbWljRG9tYWluRmlsdGVycy5ldmVyeShmaWx0ZXJGdW5jQ2FsbGVyKTtcbiAgICBpZiAobWF0Y2hGb3JEb21haW4pIHtcbiAgICAgIGZpbHRlcmVkSW5kZXhGb3JEb21haW4ucHVzaChmaWx0ZXJDb250ZXh0LmluZGV4KTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXRjaEZvclJlbmRlciA9IGNwdUZpbHRlcnMgJiYgY3B1RmlsdGVycy5ldmVyeShmaWx0ZXJGdW5jQ2FsbGVyKTtcbiAgICBpZiAobWF0Y2hGb3JSZW5kZXIpIHtcbiAgICAgIGZpbHRlcmVkSW5kZXgucHVzaChmaWx0ZXJDb250ZXh0LmluZGV4KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLihkeW5hbWljRG9tYWluRmlsdGVycyA/IHtmaWx0ZXJlZEluZGV4Rm9yRG9tYWlufSA6IHt9KSxcbiAgICAuLi4oY3B1RmlsdGVycyA/IHtmaWx0ZXJlZEluZGV4fSA6IHt9KVxuICB9O1xufVxuXG4vKipcbiAqIEdldCBhIHJlY29yZCBvZiBmaWx0ZXJzIGJhc2VkIG9uIGRvbWFpbiB0eXBlIGFuZCBncHUgLyBjcHVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbHRlclJlY29yZChcbiAgZGF0YUlkOiBzdHJpbmcsXG4gIGZpbHRlcnM6IEZpbHRlcltdLFxuICBvcHQ6IEZpbHRlckRhdGFzZXRPcHQgPSB7fVxuKTogRmlsdGVyUmVjb3JkIHtcbiAgY29uc3QgZmlsdGVyUmVjb3JkOiBGaWx0ZXJSZWNvcmQgPSB7XG4gICAgZHluYW1pY0RvbWFpbjogW10sXG4gICAgZml4ZWREb21haW46IFtdLFxuICAgIGNwdTogW10sXG4gICAgZ3B1OiBbXVxuICB9O1xuXG4gIGZpbHRlcnMuZm9yRWFjaChmID0+IHtcbiAgICBpZiAoaXNWYWxpZEZpbHRlclZhbHVlKGYudHlwZSwgZi52YWx1ZSkgJiYgdG9BcnJheShmLmRhdGFJZCkuaW5jbHVkZXMoZGF0YUlkKSkge1xuICAgICAgKGYuZml4ZWREb21haW4gfHwgb3B0Lmlnbm9yZURvbWFpblxuICAgICAgICA/IGZpbHRlclJlY29yZC5maXhlZERvbWFpblxuICAgICAgICA6IGZpbHRlclJlY29yZC5keW5hbWljRG9tYWluXG4gICAgICApLnB1c2goZik7XG5cbiAgICAgIChmLmdwdSAmJiAhb3B0LmNwdU9ubHkgPyBmaWx0ZXJSZWNvcmQuZ3B1IDogZmlsdGVyUmVjb3JkLmNwdSkucHVzaChmKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBmaWx0ZXJSZWNvcmQ7XG59XG5cbi8qKlxuICogQ29tcGFyZSBmaWx0ZXIgcmVjb3JkcyB0byBnZXQgd2hhdCBoYXMgY2hhbmdlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGlmZkZpbHRlcnMoXG4gIGZpbHRlclJlY29yZDogRmlsdGVyUmVjb3JkLFxuICBvbGRGaWx0ZXJSZWNvcmQ6IEZpbHRlclJlY29yZCB8IHt9ID0ge31cbik6IEZpbHRlckNoYW5nZWQge1xuICBsZXQgZmlsdGVyQ2hhbmdlZDogUGFydGlhbDxGaWx0ZXJDaGFuZ2VkPiA9IHt9O1xuXG4gIChPYmplY3QuZW50cmllcyhmaWx0ZXJSZWNvcmQpIGFzIEVudHJpZXM8RmlsdGVyUmVjb3JkPikuZm9yRWFjaCgoW3JlY29yZCwgaXRlbXNdKSA9PiB7XG4gICAgaXRlbXMuZm9yRWFjaChmaWx0ZXIgPT4ge1xuICAgICAgY29uc3Qgb2xkRmlsdGVyOiBGaWx0ZXIgPSAob2xkRmlsdGVyUmVjb3JkW3JlY29yZF0gfHwgW10pLmZpbmQoXG4gICAgICAgIChmOiBGaWx0ZXIpID0+IGYuaWQgPT09IGZpbHRlci5pZFxuICAgICAgKTtcblxuICAgICAgaWYgKCFvbGRGaWx0ZXIpIHtcbiAgICAgICAgLy8gYWRkZWRcbiAgICAgICAgZmlsdGVyQ2hhbmdlZCA9IHNldChbcmVjb3JkLCBmaWx0ZXIuaWRdLCAnYWRkZWQnLCBmaWx0ZXJDaGFuZ2VkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGNoZWNrICB3aGF0IGhhcyBjaGFuZ2VkXG4gICAgICAgIFsnbmFtZScsICd2YWx1ZScsICdkYXRhSWQnXS5mb3JFYWNoKHByb3AgPT4ge1xuICAgICAgICAgIGlmIChmaWx0ZXJbcHJvcF0gIT09IG9sZEZpbHRlcltwcm9wXSkge1xuICAgICAgICAgICAgZmlsdGVyQ2hhbmdlZCA9IHNldChbcmVjb3JkLCBmaWx0ZXIuaWRdLCBgJHtwcm9wfV9jaGFuZ2VkYCwgZmlsdGVyQ2hhbmdlZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIChvbGRGaWx0ZXJSZWNvcmRbcmVjb3JkXSB8fCBbXSkuZm9yRWFjaCgob2xkRmlsdGVyOiBGaWx0ZXIpID0+IHtcbiAgICAgIC8vIGRlbGV0ZWRcbiAgICAgIGlmICghaXRlbXMuZmluZChmID0+IGYuaWQgPT09IG9sZEZpbHRlci5pZCkpIHtcbiAgICAgICAgZmlsdGVyQ2hhbmdlZCA9IHNldChbcmVjb3JkLCBvbGRGaWx0ZXIuaWRdLCAnZGVsZXRlZCcsIGZpbHRlckNoYW5nZWQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gey4uLntkeW5hbWljRG9tYWluOiBudWxsLCBmaXhlZERvbWFpbjogbnVsbCwgY3B1OiBudWxsLCBncHU6IG51bGx9LCAuLi5maWx0ZXJDaGFuZ2VkfTtcbn1cbi8qKlxuICogQ2FsbCBieSBwYXJzaW5nIGZpbHRlcnMgZnJvbSBVUkxcbiAqIENoZWNrIGlmIHZhbHVlIG9mIGZpbHRlciB3aXRoaW4gZmlsdGVyIGRvbWFpbiwgaWYgbm90IGFkanVzdCBpdCB0byBtYXRjaFxuICogZmlsdGVyIGRvbWFpblxuICpcbiAqIEByZXR1cm5zIHZhbHVlIC0gYWRqdXN0ZWQgdmFsdWUgdG8gbWF0Y2ggZmlsdGVyIG9yIG51bGwgdG8gcmVtb3ZlIGZpbHRlclxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG5leHBvcnQgZnVuY3Rpb24gYWRqdXN0VmFsdWVUb0ZpbHRlckRvbWFpbih2YWx1ZTogRmlsdGVyWyd2YWx1ZSddLCB7ZG9tYWluLCB0eXBlfSkge1xuICBpZiAoIWRvbWFpbiB8fCAhdHlwZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgRklMVEVSX1RZUEVTLnJhbmdlOlxuICAgIGNhc2UgRklMVEVSX1RZUEVTLnRpbWVSYW5nZTpcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgdmFsdWUubGVuZ3RoICE9PSAyKSB7XG4gICAgICAgIHJldHVybiBkb21haW4ubWFwKGQgPT4gZCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB2YWx1ZS5tYXAoKGQsIGkpID0+IChub3ROdWxsb3JVbmRlZmluZWQoZCkgJiYgaXNJblJhbmdlKGQsIGRvbWFpbikgPyBkIDogZG9tYWluW2ldKSk7XG5cbiAgICBjYXNlIEZJTFRFUl9UWVBFUy5tdWx0aVNlbGVjdDpcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgY29uc3QgZmlsdGVyZWRWYWx1ZSA9IHZhbHVlLmZpbHRlcihkID0+IGRvbWFpbi5pbmNsdWRlcyhkKSk7XG4gICAgICByZXR1cm4gZmlsdGVyZWRWYWx1ZS5sZW5ndGggPyBmaWx0ZXJlZFZhbHVlIDogW107XG5cbiAgICBjYXNlIEZJTFRFUl9UWVBFUy5zZWxlY3Q6XG4gICAgICByZXR1cm4gZG9tYWluLmluY2x1ZGVzKHZhbHVlKSA/IHZhbHVlIDogdHJ1ZTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuLyogZXNsaW50LWVuYWJsZSBjb21wbGV4aXR5ICovXG5cbi8qKlxuICogQ2FsY3VsYXRlIG51bWVyaWMgZG9tYWluIGFuZCBzdWl0YWJsZSBzdGVwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROdW1lcmljRmllbGREb21haW4oXG4gIGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2UsXG4gIHZhbHVlQWNjZXNzb3I6IGRhdGFWYWx1ZUFjY2Vzc29yXG4pOiBSYW5nZUZpZWxkRG9tYWluIHtcbiAgbGV0IGRvbWFpbjogW251bWJlciwgbnVtYmVyXSA9IFswLCAxXTtcbiAgbGV0IHN0ZXAgPSAwLjE7XG5cbiAgY29uc3QgbWFwcGVkVmFsdWUgPSBkYXRhQ29udGFpbmVyLm1hcEluZGV4KHZhbHVlQWNjZXNzb3IpO1xuXG4gIGlmIChkYXRhQ29udGFpbmVyLm51bVJvd3MoKSA+IDEpIHtcbiAgICBkb21haW4gPSBTY2FsZVV0aWxzLmdldExpbmVhckRvbWFpbihtYXBwZWRWYWx1ZSk7XG4gICAgY29uc3QgZGlmZiA9IGRvbWFpblsxXSAtIGRvbWFpblswXTtcblxuICAgIC8vIGluIGNhc2UgZXF1YWwgZG9tYWluLCBbOTYsIDk2XSwgd2hpY2ggd2lsbCBicmVhayBxdWFudGl6ZSBzY2FsZVxuICAgIGlmICghZGlmZikge1xuICAgICAgZG9tYWluWzFdID0gZG9tYWluWzBdICsgMTtcbiAgICB9XG5cbiAgICBzdGVwID0gZ2V0TnVtZXJpY1N0ZXBTaXplKGRpZmYpIHx8IHN0ZXA7XG4gICAgZG9tYWluWzBdID0gZm9ybWF0TnVtYmVyQnlTdGVwKGRvbWFpblswXSwgc3RlcCwgJ2Zsb29yJyk7XG4gICAgZG9tYWluWzFdID0gZm9ybWF0TnVtYmVyQnlTdGVwKGRvbWFpblsxXSwgc3RlcCwgJ2NlaWwnKTtcbiAgfVxuXG4gIGNvbnN0IHtoaXN0b2dyYW0sIGVubGFyZ2VkSGlzdG9ncmFtfSA9IGdldEhpc3RvZ3JhbShkb21haW4sIG1hcHBlZFZhbHVlKTtcblxuICByZXR1cm4ge2RvbWFpbiwgc3RlcCwgaGlzdG9ncmFtLCBlbmxhcmdlZEhpc3RvZ3JhbX07XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIHN0ZXAgc2l6ZSBmb3IgcmFuZ2UgYW5kIHRpbWVyYW5nZSBmaWx0ZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE51bWVyaWNTdGVwU2l6ZShkaWZmOiBudW1iZXIpOiBudW1iZXIge1xuICBkaWZmID0gTWF0aC5hYnMoZGlmZik7XG5cbiAgaWYgKGRpZmYgPiAxMDApIHtcbiAgICByZXR1cm4gMTtcbiAgfSBlbHNlIGlmIChkaWZmID4gMykge1xuICAgIHJldHVybiAwLjAxO1xuICB9IGVsc2UgaWYgKGRpZmYgPiAxKSB7XG4gICAgcmV0dXJuIDAuMDAxO1xuICB9XG4gIC8vIFRyeSB0byBnZXQgYXQgbGVhc3QgMTAwMCBzdGVwcyAtIGFuZCBrZWVwIHRoZSBzdGVwIHNpemUgYmVsb3cgdGhhdCBvZlxuICAvLyB0aGUgKGRpZmYgPiAxKSBjYXNlLlxuICBjb25zdCB4ID0gZGlmZiAvIDEwMDA7XG4gIC8vIEZpbmQgdGhlIGV4cG9uZW50IGFuZCB0cnVuY2F0ZSB0byAxMCB0byB0aGUgcG93ZXIgb2YgdGhhdCBleHBvbmVudFxuXG4gIGNvbnN0IGV4cG9uZW50aWFsRm9ybSA9IHgudG9FeHBvbmVudGlhbCgpO1xuICBjb25zdCBleHBvbmVudCA9IHBhcnNlRmxvYXQoZXhwb25lbnRpYWxGb3JtLnNwbGl0KCdlJylbMV0pO1xuXG4gIC8vIEdldHRpbmcgcmVhZHkgZm9yIG5vZGUgMTJcbiAgLy8gdGhpcyBpcyB3aHkgd2UgbmVlZCBkZWNpbWFsLmpzXG4gIC8vIE1hdGgucG93KDEwLCAtNSkgPSAwLjAwMDAwOTk5OTk5OTk5OTk5OTk5OVxuICAvLyB0aGUgYWJvdmUgcmVzdWx0IHNob3dzIGluIGJyb3dzZXIgYW5kIG5vZGUgMTBcbiAgLy8gbm9kZSAxMiBiZWhhdmVzIGNvcnJlY3RseVxuICByZXR1cm4gbmV3IERlY2ltYWwoMTApLnBvdyhleHBvbmVudCkudG9OdW1iZXIoKTtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGUgdGltZXN0YW1wIGRvbWFpbiBhbmQgc3VpdGFibGUgc3RlcFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGltZXN0YW1wRmllbGREb21haW4oXG4gIGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2UsXG4gIHZhbHVlQWNjZXNzb3I6IGRhdGFWYWx1ZUFjY2Vzc29yXG4pOiBUaW1lUmFuZ2VGaWVsZERvbWFpbiB7XG4gIC8vIHRvIGF2b2lkIGNvbnZlcnRpbmcgc3RyaW5nIGZvcm1hdCB0aW1lIHRvIGVwb2NoXG4gIC8vIGV2ZXJ5IHRpbWUgd2UgY29tcGFyZSB3ZSBzdG9yZSBhIHZhbHVlIG1hcHBlZCB0byBpbnQgaW4gZmlsdGVyIGRvbWFpblxuXG4gIGNvbnN0IG1hcHBlZFZhbHVlID0gZGF0YUNvbnRhaW5lci5tYXBJbmRleCh2YWx1ZUFjY2Vzc29yKTtcbiAgY29uc3QgZG9tYWluID0gU2NhbGVVdGlscy5nZXRMaW5lYXJEb21haW4obWFwcGVkVmFsdWUpO1xuICBjb25zdCBkZWZhdWx0VGltZUZvcm1hdCA9IGdldFRpbWVXaWRnZXRUaXRsZUZvcm1hdHRlcihkb21haW4pO1xuXG4gIGxldCBzdGVwID0gMC4wMTtcblxuICBjb25zdCBkaWZmID0gZG9tYWluWzFdIC0gZG9tYWluWzBdO1xuICBjb25zdCBlbnRyeSA9IFRpbWVzdGFtcFN0ZXBNYXAuZmluZChmID0+IGYubWF4ID49IGRpZmYpO1xuICBpZiAoZW50cnkpIHtcbiAgICBzdGVwID0gZW50cnkuc3RlcDtcbiAgfVxuXG4gIGNvbnN0IHtoaXN0b2dyYW0sIGVubGFyZ2VkSGlzdG9ncmFtfSA9IGdldEhpc3RvZ3JhbShkb21haW4sIG1hcHBlZFZhbHVlKTtcblxuICByZXR1cm4ge1xuICAgIGRvbWFpbixcbiAgICBzdGVwLFxuICAgIG1hcHBlZFZhbHVlLFxuICAgIGhpc3RvZ3JhbSxcbiAgICBlbmxhcmdlZEhpc3RvZ3JhbSxcbiAgICBkZWZhdWx0VGltZUZvcm1hdFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGlzdG9ncmFtQ29uc3RydWN0KFxuICBkb21haW46IFtudW1iZXIsIG51bWJlcl0sXG4gIG1hcHBlZFZhbHVlOiAoTWlsbGlzZWNvbmQgfCBudW1iZXIpW10sXG4gIGJpbnM6IG51bWJlclxuKTogSGlzdG9ncmFtQmluW10ge1xuICByZXR1cm4gZDNIaXN0b2dyYW0oKVxuICAgIC50aHJlc2hvbGRzKHRpY2tzKGRvbWFpblswXSwgZG9tYWluWzFdLCBiaW5zKSlcbiAgICAuZG9tYWluKGRvbWFpbikobWFwcGVkVmFsdWUpXG4gICAgLm1hcChiaW4gPT4gKHtcbiAgICAgIGNvdW50OiBiaW4ubGVuZ3RoLFxuICAgICAgeDA6IGJpbi54MCxcbiAgICAgIHgxOiBiaW4ueDFcbiAgICB9KSk7XG59XG4vKipcbiAqIENhbGN1bGF0ZSBoaXN0b2dyYW0gZnJvbSBkb21haW4gYW5kIGFycmF5IG9mIHZhbHVlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGlzdG9ncmFtKFxuICBkb21haW46IFtudW1iZXIsIG51bWJlcl0sXG4gIG1hcHBlZFZhbHVlOiAoTWlsbGlzZWNvbmQgfCBudW1iZXIpW11cbik6IHtoaXN0b2dyYW06IEhpc3RvZ3JhbUJpbltdOyBlbmxhcmdlZEhpc3RvZ3JhbTogSGlzdG9ncmFtQmluW119IHtcbiAgY29uc3QgaGlzdG9ncmFtID0gaGlzdG9ncmFtQ29uc3RydWN0KGRvbWFpbiwgbWFwcGVkVmFsdWUsIGhpc3RvZ3JhbUJpbnMpO1xuICBjb25zdCBlbmxhcmdlZEhpc3RvZ3JhbSA9IGhpc3RvZ3JhbUNvbnN0cnVjdChkb21haW4sIG1hcHBlZFZhbHVlLCBlbmxhcmdlZEhpc3RvZ3JhbUJpbnMpO1xuXG4gIHJldHVybiB7aGlzdG9ncmFtLCBlbmxhcmdlZEhpc3RvZ3JhbX07XG59XG5cbi8qKlxuICogcm91bmQgbnVtYmVyIGJhc2VkIG9uIHN0ZXBcbiAqXG4gKiBAcGFyYW0ge051bWJlcn0gdmFsXG4gKiBAcGFyYW0ge051bWJlcn0gc3RlcFxuICogQHBhcmFtIHtzdHJpbmd9IGJvdW5kXG4gKiBAcmV0dXJucyB7TnVtYmVyfSByb3VuZGVkIG51bWJlclxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0TnVtYmVyQnlTdGVwKHZhbDogbnVtYmVyLCBzdGVwOiBudW1iZXIsIGJvdW5kOiAnZmxvb3InIHwgJ2NlaWwnKTogbnVtYmVyIHtcbiAgaWYgKGJvdW5kID09PSAnZmxvb3InKSB7XG4gICAgcmV0dXJuIE1hdGguZmxvb3IodmFsICogKDEgLyBzdGVwKSkgLyAoMSAvIHN0ZXApO1xuICB9XG5cbiAgcmV0dXJuIE1hdGguY2VpbCh2YWwgKiAoMSAvIHN0ZXApKSAvICgxIC8gc3RlcCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0luUmFuZ2UodmFsOiBhbnksIGRvbWFpbjogbnVtYmVyW10pOiBib29sZWFuIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KGRvbWFpbikpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdmFsID49IGRvbWFpblswXSAmJiB2YWwgPD0gZG9tYWluWzFdO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIHBvaW50IGlzIHdpdGhpbiB0aGUgcHJvdmlkZWQgcG9seWdvblxuICpcbiAqIEBwYXJhbSBwb2ludCBhcyBpbnB1dCBzZWFyY2ggW2xhdCwgbG5nXVxuICogQHBhcmFtIHBvbHlnb24gUG9pbnRzIG11c3QgYmUgd2l0aGluIHRoZXNlIChNdWx0aSlQb2x5Z29uKHMpXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNJblBvbHlnb24ocG9pbnQ6IG51bWJlcltdLCBwb2x5Z29uOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuIGJvb2xlYW5XaXRoaW4odHVyZlBvaW50KHBvaW50KSwgcG9seWdvbik7XG59XG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFRpbWVEb21haW4oZG9tYWluKSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KGRvbWFpbikgJiYgZG9tYWluLmV2ZXJ5KE51bWJlci5pc0Zpbml0ZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0VGltZVdpZGdldFRpdGxlRm9ybWF0dGVyKGRvbWFpbjogW251bWJlciwgbnVtYmVyXSk6IHN0cmluZyB8IG51bGwge1xuICBpZiAoIWlzVmFsaWRUaW1lRG9tYWluKGRvbWFpbikpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGRpZmYgPSBkb21haW5bMV0gLSBkb21haW5bMF07XG5cbiAgLy8gTG9jYWwgYXdhcmUgZm9ybWF0c1xuICAvLyBodHRwczovL21vbWVudGpzLmNvbS9kb2NzLyMvcGFyc2luZy9zdHJpbmctZm9ybWF0XG4gIHJldHVybiBkaWZmID4gZHVyYXRpb25ZZWFyID8gJ0wnIDogZGlmZiA+IGR1cmF0aW9uRGF5ID8gJ0wgTFQnIDogJ0wgTFRTJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRpbWVXaWRnZXRIaW50Rm9ybWF0dGVyKGRvbWFpbjogW251bWJlciwgbnVtYmVyXSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghaXNWYWxpZFRpbWVEb21haW4oZG9tYWluKSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBkaWZmID0gZG9tYWluWzFdIC0gZG9tYWluWzBdO1xuICByZXR1cm4gZGlmZiA+IGR1cmF0aW9uV2Vla1xuICAgID8gJ0wnXG4gICAgOiBkaWZmID4gZHVyYXRpb25EYXlcbiAgICA/ICdMIExUJ1xuICAgIDogZGlmZiA+IGR1cmF0aW9uSG91clxuICAgID8gJ0xUJ1xuICAgIDogJ0xUUyc7XG59XG5cbi8qKlxuICogU2FuaXR5IGNoZWNrIG9uIGZpbHRlcnMgdG8gcHJlcGFyZSBmb3Igc2F2ZVxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBjb21wbGV4aXR5ICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEZpbHRlclZhbHVlKHR5cGU6IHN0cmluZyB8IG51bGwsIHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgaWYgKCF0eXBlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgRklMVEVSX1RZUEVTLnNlbGVjdDpcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gZmFsc2U7XG5cbiAgICBjYXNlIEZJTFRFUl9UWVBFUy5yYW5nZTpcbiAgICBjYXNlIEZJTFRFUl9UWVBFUy50aW1lUmFuZ2U6XG4gICAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUuZXZlcnkodiA9PiB2ICE9PSBudWxsICYmICFpc05hTih2KSk7XG5cbiAgICBjYXNlIEZJTFRFUl9UWVBFUy5tdWx0aVNlbGVjdDpcbiAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiBCb29sZWFuKHZhbHVlLmxlbmd0aCk7XG5cbiAgICBjYXNlIEZJTFRFUl9UWVBFUy5pbnB1dDpcbiAgICAgIHJldHVybiBCb29sZWFuKHZhbHVlLmxlbmd0aCk7XG5cbiAgICBjYXNlIEZJTFRFUl9UWVBFUy5wb2x5Z29uOlxuICAgICAgY29uc3QgY29vcmRpbmF0ZXMgPSBnZXQodmFsdWUsIFsnZ2VvbWV0cnknLCAnY29vcmRpbmF0ZXMnXSk7XG4gICAgICByZXR1cm4gQm9vbGVhbih2YWx1ZSAmJiB2YWx1ZS5pZCAmJiBjb29yZGluYXRlcyk7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbHRlclBsb3QoXG4gIGZpbHRlcjogRmlsdGVyLFxuICBkYXRhc2V0OiBLZXBsZXJUYWJsZVxuKToge2xpbmVDaGFydDogTGluZUNoYXJ0OyB5QXhzOiBGaWVsZH0gfCB7fSB7XG4gIGlmIChmaWx0ZXIucGxvdFR5cGUgPT09IFBMT1RfVFlQRVMuaGlzdG9ncmFtIHx8ICFmaWx0ZXIueUF4aXMpIHtcbiAgICAvLyBoaXN0b2dyYW0gc2hvdWxkIGJlIGNhbGN1bGF0ZWQgd2hlbiBjcmVhdGUgZmlsdGVyXG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgY29uc3Qge21hcHBlZFZhbHVlID0gW119ID0gZmlsdGVyO1xuICBjb25zdCB7eUF4aXN9ID0gZmlsdGVyO1xuICBjb25zdCBmaWVsZElkeCA9IGRhdGFzZXQuZ2V0Q29sdW1uRmllbGRJZHgoeUF4aXMubmFtZSk7XG4gIGlmIChmaWVsZElkeCA8IDApIHtcbiAgICBDb25zb2xlLndhcm4oYHlBeGlzICR7eUF4aXMubmFtZX0gZG9lcyBub3QgZXhpc3QgaW4gZGF0YXNldGApO1xuICAgIHJldHVybiB7bGluZUNoYXJ0OiB7fSwgeUF4aXN9O1xuICB9XG5cbiAgLy8gcmV0dXJuIGxpbmVDaGFydFxuICBjb25zdCBzZXJpZXMgPSBkYXRhc2V0LmRhdGFDb250YWluZXJcbiAgICAubWFwKFxuICAgICAgKHJvdywgcm93SW5kZXgpID0+ICh7XG4gICAgICAgIHg6IG1hcHBlZFZhbHVlW3Jvd0luZGV4XSxcbiAgICAgICAgeTogcm93LnZhbHVlQXQoZmllbGRJZHgpXG4gICAgICB9KSxcbiAgICAgIHRydWVcbiAgICApXG4gICAgLmZpbHRlcigoe3gsIHl9KSA9PiBOdW1iZXIuaXNGaW5pdGUoeCkgJiYgTnVtYmVyLmlzRmluaXRlKHkpKVxuICAgIC5zb3J0KChhLCBiKSA9PiBhc2NlbmRpbmcoYS54LCBiLngpKTtcblxuICBjb25zdCB5RG9tYWluID0gZXh0ZW50KHNlcmllcywgZCA9PiBkLnkpO1xuICBjb25zdCB4RG9tYWluID0gW3Nlcmllc1swXS54LCBzZXJpZXNbc2VyaWVzLmxlbmd0aCAtIDFdLnhdO1xuXG4gIHJldHVybiB7bGluZUNoYXJ0OiB7c2VyaWVzLCB5RG9tYWluLCB4RG9tYWlufSwgeUF4aXN9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdEZpbHRlclBsb3RUeXBlKGZpbHRlcjogRmlsdGVyKTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IGZpbHRlclBsb3RUeXBlczogdHlwZW9mIFN1cHBvcnRlZFBsb3RUeXBlW2tleW9mIHR5cGVvZiBTdXBwb3J0ZWRQbG90VHlwZV0gfCBudWxsID1cbiAgICBmaWx0ZXIudHlwZSAmJiBTdXBwb3J0ZWRQbG90VHlwZVtmaWx0ZXIudHlwZV07XG4gIGlmICghZmlsdGVyUGxvdFR5cGVzKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAoIWZpbHRlci55QXhpcykge1xuICAgIHJldHVybiBmaWx0ZXJQbG90VHlwZXMuZGVmYXVsdDtcbiAgfVxuXG4gIHJldHVybiBmaWx0ZXJQbG90VHlwZXNbZmlsdGVyLnlBeGlzLnR5cGVdIHx8IG51bGw7XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBkYXRhc2V0SWRzIGxpc3Qgb2YgZGF0YXNldCBpZHMgdG8gYmUgZmlsdGVyZWRcbiAqIEBwYXJhbSBkYXRhc2V0cyBhbGwgZGF0YXNldHNcbiAqIEBwYXJhbSBmaWx0ZXJzIGFsbCBmaWx0ZXJzIHRvIGJlIGFwcGxpZWQgdG8gZGF0YXNldHNcbiAqIEByZXR1cm4gZGF0YXNldHMgLSBuZXcgdXBkYXRlZCBkYXRhc2V0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlGaWx0ZXJzVG9EYXRhc2V0cyhcbiAgZGF0YXNldElkczogc3RyaW5nW10sXG4gIGRhdGFzZXRzOiBEYXRhc2V0cyxcbiAgZmlsdGVyczogRmlsdGVyW10sXG4gIGxheWVycz86IExheWVyW11cbik6IERhdGFzZXRzIHtcbiAgY29uc3QgZGF0YUlkcyA9IHRvQXJyYXkoZGF0YXNldElkcyk7XG4gIHJldHVybiBkYXRhSWRzLnJlZHVjZSgoYWNjLCBkYXRhSWQpID0+IHtcbiAgICBjb25zdCBsYXllcnNUb0ZpbHRlciA9IChsYXllcnMgfHwgW10pLmZpbHRlcihsID0+IGwuY29uZmlnLmRhdGFJZCA9PT0gZGF0YUlkKTtcbiAgICBjb25zdCBhcHBsaWVkRmlsdGVycyA9IGZpbHRlcnMuZmlsdGVyKGQgPT4gc2hvdWxkQXBwbHlGaWx0ZXIoZCwgZGF0YUlkKSk7XG4gICAgY29uc3QgdGFibGUgPSBkYXRhc2V0c1tkYXRhSWRdO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFjYyxcbiAgICAgIFtkYXRhSWRdOiB0YWJsZS5maWx0ZXJUYWJsZShhcHBsaWVkRmlsdGVycywgbGF5ZXJzVG9GaWx0ZXIsIHt9KVxuICAgIH07XG4gIH0sIGRhdGFzZXRzKTtcbn1cblxuLyoqXG4gKiBBcHBsaWVzIGEgbmV3IGZpZWxkIG5hbWUgdmFsdWUgdG8gZmllbHRlciBhbmQgdXBkYXRlIGJvdGggZmlsdGVyIGFuZCBkYXRhc2V0XG4gKiBAcGFyYW0gZmlsdGVyIC0gdG8gYmUgYXBwbGllZCB0aGUgbmV3IGZpZWxkIG5hbWUgb25cbiAqIEBwYXJhbSBkYXRhc2V0IC0gZGF0YXNldCB0aGUgZmllbGQgYmVsb25ncyB0b1xuICogQHBhcmFtIGZpZWxkTmFtZSAtIGZpZWxkLm5hbWVcbiAqIEBwYXJhbSBmaWx0ZXJEYXRhc2V0SW5kZXggLSBmaWVsZC5uYW1lXG4gKiBAcGFyYW0gb3B0aW9uXG4gKiBAcmV0dXJuIC0ge2ZpbHRlciwgZGF0YXNldHN9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseUZpbHRlckZpZWxkTmFtZShcbiAgZmlsdGVyOiBGaWx0ZXIsXG4gIGRhdGFzZXQ6IEtlcGxlclRhYmxlLFxuICBmaWVsZE5hbWU6IHN0cmluZyxcbiAgZmlsdGVyRGF0YXNldEluZGV4ID0gMCxcbiAgb3B0aW9uPzoge21lcmdlRG9tYWluOiBib29sZWFufVxuKToge1xuICBmaWx0ZXI6IEZpbHRlciB8IG51bGw7XG4gIGRhdGFzZXQ6IEtlcGxlclRhYmxlO1xufSB7XG4gIC8vIHVzaW5nIGZpbHRlckRhdGFzZXRJbmRleCB3ZSBjYW4gZmlsdGVyIG9ubHkgdGhlIHNwZWNpZmllZCBkYXRhc2V0XG4gIGNvbnN0IG1lcmdlRG9tYWluID0gb3B0aW9uICYmIG9wdGlvbi5oYXNPd25Qcm9wZXJ0eSgnbWVyZ2VEb21haW4nKSA/IG9wdGlvbi5tZXJnZURvbWFpbiA6IGZhbHNlO1xuXG4gIGNvbnN0IGZpZWxkSW5kZXggPSBkYXRhc2V0LmdldENvbHVtbkZpZWxkSWR4KGZpZWxkTmFtZSk7XG4gIC8vIGlmIG5vIGZpZWxkIHdpdGggc2FtZSBuYW1lIGlzIGZvdW5kLCBtb3ZlIHRvIHRoZSBuZXh0IGRhdGFzZXRzXG4gIGlmIChmaWVsZEluZGV4ID09PSAtMSkge1xuICAgIC8vIHRocm93IG5ldyBFcnJvcihgZmllbGRJbmRleCBub3QgZm91bmQuIERhdGFzZXQgbXVzdCBjb250YWluIGEgcHJvcGVydHkgd2l0aCBuYW1lOiAke2ZpZWxkTmFtZX1gKTtcbiAgICByZXR1cm4ge2ZpbHRlcjogbnVsbCwgZGF0YXNldH07XG4gIH1cblxuICAvLyBUT0RPOiB2YWxpZGF0ZSBmaWVsZCB0eXBlXG4gIGNvbnN0IGZpbHRlclByb3BzID0gZGF0YXNldC5nZXRDb2x1bW5GaWx0ZXJQcm9wcyhmaWVsZE5hbWUpO1xuXG4gIGNvbnN0IG5ld0ZpbHRlciA9IHtcbiAgICAuLi4obWVyZ2VEb21haW4gPyBtZXJnZUZpbHRlckRvbWFpblN0ZXAoZmlsdGVyLCBmaWx0ZXJQcm9wcykgOiB7Li4uZmlsdGVyLCAuLi5maWx0ZXJQcm9wc30pLFxuICAgIG5hbWU6IE9iamVjdC5hc3NpZ24oWy4uLnRvQXJyYXkoZmlsdGVyLm5hbWUpXSwge1tmaWx0ZXJEYXRhc2V0SW5kZXhdOiBmaWVsZE5hbWV9KSxcbiAgICBmaWVsZElkeDogT2JqZWN0LmFzc2lnbihbLi4udG9BcnJheShmaWx0ZXIuZmllbGRJZHgpXSwge1xuICAgICAgW2ZpbHRlckRhdGFzZXRJbmRleF06IGZpZWxkSW5kZXhcbiAgICB9KSxcbiAgICAvLyBUT0RPLCBzaW5jZSB3ZSBhbGxvdyB0byBhZGQgbXVsdGlwbGUgZmllbGRzIHRvIGEgZmlsdGVyIHdlIGNhbiBubyBsb25nZXIgZnJlZXplIHRoZSBmaWx0ZXJcbiAgICBmcmVlemU6IHRydWVcbiAgfTtcblxuICByZXR1cm4ge1xuICAgIGZpbHRlcjogbmV3RmlsdGVyLFxuICAgIGRhdGFzZXRcbiAgfTtcbn1cblxuLyoqXG4gKiBNZXJnZSBvbmUgZmlsdGVyIHdpdGggb3RoZXIgZmlsdGVyIHByb3AgZG9tYWluXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIGNvbXBsZXhpdHkgKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUZpbHRlckRvbWFpblN0ZXAoZmlsdGVyOiBGaWx0ZXIsIGZpbHRlclByb3BzPzogYW55KTogRmlsdGVyIHwgbnVsbCB7XG4gIGlmICghZmlsdGVyKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAoIWZpbHRlclByb3BzKSB7XG4gICAgcmV0dXJuIGZpbHRlcjtcbiAgfVxuXG4gIGlmICgoZmlsdGVyLmZpZWxkVHlwZSAmJiBmaWx0ZXIuZmllbGRUeXBlICE9PSBmaWx0ZXJQcm9wcy5maWVsZFR5cGUpIHx8ICFmaWx0ZXJQcm9wcy5kb21haW4pIHtcbiAgICByZXR1cm4gZmlsdGVyO1xuICB9XG5cbiAgY29uc3QgY29tYmluZWREb21haW4gPSAhZmlsdGVyLmRvbWFpblxuICAgID8gZmlsdGVyUHJvcHMuZG9tYWluXG4gICAgOiBbLi4uKGZpbHRlci5kb21haW4gfHwgW10pLCAuLi4oZmlsdGVyUHJvcHMuZG9tYWluIHx8IFtdKV0uc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuXG4gIGNvbnN0IG5ld0ZpbHRlciA9IHtcbiAgICAuLi5maWx0ZXIsXG4gICAgLi4uZmlsdGVyUHJvcHMsXG4gICAgZG9tYWluOiBbY29tYmluZWREb21haW5bMF0sIGNvbWJpbmVkRG9tYWluW2NvbWJpbmVkRG9tYWluLmxlbmd0aCAtIDFdXVxuICB9O1xuXG4gIHN3aXRjaCAoZmlsdGVyUHJvcHMuZmllbGRUeXBlKSB7XG4gICAgY2FzZSBBTExfRklFTERfVFlQRVMuc3RyaW5nOlxuICAgIGNhc2UgQUxMX0ZJRUxEX1RZUEVTLmRhdGU6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5uZXdGaWx0ZXIsXG4gICAgICAgIGRvbWFpbjogdW5pcXVlKGNvbWJpbmVkRG9tYWluKS5zb3J0KClcbiAgICAgIH07XG5cbiAgICBjYXNlIEFMTF9GSUVMRF9UWVBFUy50aW1lc3RhbXA6XG4gICAgICBjb25zdCBzdGVwID1cbiAgICAgICAgKGZpbHRlciBhcyBUaW1lUmFuZ2VGaWx0ZXIpLnN0ZXAgPCBmaWx0ZXJQcm9wcy5zdGVwXG4gICAgICAgICAgPyAoZmlsdGVyIGFzIFRpbWVSYW5nZUZpbHRlcikuc3RlcFxuICAgICAgICAgIDogZmlsdGVyUHJvcHMuc3RlcDtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubmV3RmlsdGVyLFxuICAgICAgICBzdGVwXG4gICAgICB9O1xuICAgIGNhc2UgQUxMX0ZJRUxEX1RZUEVTLnJlYWw6XG4gICAgY2FzZSBBTExfRklFTERfVFlQRVMuaW50ZWdlcjpcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG5ld0ZpbHRlcjtcbiAgfVxufVxuLyogZXNsaW50LWVuYWJsZSBjb21wbGV4aXR5ICovXG5cbi8qKlxuICogR2VuZXJhdGVzIHBvbHlnb24gZmlsdGVyXG4gKi9cbmV4cG9ydCBjb25zdCBmZWF0dXJlVG9GaWx0ZXJWYWx1ZSA9IChcbiAgZmVhdHVyZTogRmVhdHVyZSxcbiAgZmlsdGVySWQ6IHN0cmluZyxcbiAgcHJvcGVydGllcz86IHt9XG4pOiBGZWF0dXJlVmFsdWUgPT4gKHtcbiAgLi4uZmVhdHVyZSxcbiAgaWQ6IGZlYXR1cmUuaWQsXG4gIHByb3BlcnRpZXM6IHtcbiAgICAuLi5mZWF0dXJlLnByb3BlcnRpZXMsXG4gICAgLi4ucHJvcGVydGllcyxcbiAgICBmaWx0ZXJJZFxuICB9XG59KTtcblxuZXhwb3J0IGNvbnN0IGdldEZpbHRlcklkSW5GZWF0dXJlID0gKGY6IEZlYXR1cmVWYWx1ZSk6IHN0cmluZyA9PiBnZXQoZiwgWydwcm9wZXJ0aWVzJywgJ2ZpbHRlcklkJ10pO1xuXG4vKipcbiAqIEdlbmVyYXRlcyBwb2x5Z29uIGZpbHRlclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVQb2x5Z29uRmlsdGVyKGxheWVyczogTGF5ZXJbXSwgZmVhdHVyZTogRmVhdHVyZSk6IFBvbHlnb25GaWx0ZXIge1xuICBjb25zdCBkYXRhSWQgPSBsYXllcnMubWFwKGwgPT4gbC5jb25maWcuZGF0YUlkKS5maWx0ZXIobm90TnVsbG9yVW5kZWZpbmVkKTtcbiAgY29uc3QgbGF5ZXJJZCA9IGxheWVycy5tYXAobCA9PiBsLmlkKTtcbiAgY29uc3QgbmFtZSA9IGxheWVycy5tYXAobCA9PiBsLmNvbmZpZy5sYWJlbCk7XG4gIGNvbnN0IGZpbHRlciA9IGdldERlZmF1bHRGaWx0ZXIoZGF0YUlkKTtcbiAgcmV0dXJuIHtcbiAgICAuLi5maWx0ZXIsXG4gICAgZml4ZWREb21haW46IHRydWUsXG4gICAgdHlwZTogRklMVEVSX1RZUEVTLnBvbHlnb24sXG4gICAgbmFtZSxcbiAgICBsYXllcklkLFxuICAgIHZhbHVlOiBmZWF0dXJlVG9GaWx0ZXJWYWx1ZShmZWF0dXJlLCBmaWx0ZXIuaWQsIHtpc1Zpc2libGU6IHRydWV9KVxuICB9O1xufVxuXG4vKipcbiAqIFJ1biBmaWx0ZXIgZW50aXJlbHkgb24gQ1BVXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJEYXRhc2V0Q1BVKHN0YXRlOiBWaXNTdGF0ZSwgZGF0YUlkOiBzdHJpbmcpOiBWaXNTdGF0ZSB7XG4gIGNvbnN0IGRhdGFzZXRGaWx0ZXJzID0gc3RhdGUuZmlsdGVycy5maWx0ZXIoZiA9PiBmLmRhdGFJZC5pbmNsdWRlcyhkYXRhSWQpKTtcbiAgY29uc3QgZGF0YXNldCA9IHN0YXRlLmRhdGFzZXRzW2RhdGFJZF07XG5cbiAgaWYgKCFkYXRhc2V0KSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgY29uc3QgY3B1RmlsdGVyZWREYXRhc2V0ID0gZGF0YXNldC5maWx0ZXJUYWJsZUNQVShkYXRhc2V0RmlsdGVycywgc3RhdGUubGF5ZXJzKTtcblxuICByZXR1cm4gc2V0KFsnZGF0YXNldHMnLCBkYXRhSWRdLCBjcHVGaWx0ZXJlZERhdGFzZXQsIHN0YXRlKTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBwYXJzZWQgZmlsdGVycyB3aXRoIGRhdGFzZXRzIGFuZCBhZGQgZmlsdGVyUHJvcHMgdG8gZmllbGRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlRmlsdGVyc1VwZGF0ZURhdGFzZXRzKFxuICBzdGF0ZTogVmlzU3RhdGUsXG4gIGZpbHRlcnNUb1ZhbGlkYXRlOiBQYXJzZWRGaWx0ZXJbXSA9IFtdXG4pOiB7XG4gIHZhbGlkYXRlZDogRmlsdGVyW107XG4gIGZhaWxlZDogRmlsdGVyW107XG4gIHVwZGF0ZWREYXRhc2V0czogRGF0YXNldHM7XG59IHtcbiAgLy8gVE9ETyBCZXR0ZXIgVHlwaW5ncyBoZXJlXG4gIGNvbnN0IHZhbGlkYXRlZDogYW55W10gPSBbXTtcbiAgY29uc3QgZmFpbGVkOiBhbnlbXSA9IFtdO1xuICBjb25zdCB7ZGF0YXNldHN9ID0gc3RhdGU7XG4gIGxldCB1cGRhdGVkRGF0YXNldHMgPSBkYXRhc2V0cztcblxuICAvLyBtZXJnZSBmaWx0ZXJzXG4gIGZpbHRlcnNUb1ZhbGlkYXRlLmZvckVhY2goZmlsdGVyID0+IHtcbiAgICAvLyB3ZSBjYW4gb25seSBsb29rIGZvciBkYXRhc2V0cyBkZWZpbmUgaW4gdGhlIGZpbHRlciBkYXRhSWRcbiAgICBjb25zdCBkYXRhc2V0SWRzID0gdG9BcnJheShmaWx0ZXIuZGF0YUlkKTtcblxuICAgIC8vIHdlIGNhbiBtZXJnZSBhIGZpbHRlciBvbmx5IGlmIGFsbCBkYXRhc2V0cyBpbiBmaWx0ZXIuZGF0YUlkIGFyZSBsb2FkZWRcbiAgICBpZiAoZGF0YXNldElkcy5ldmVyeShkID0+IGRhdGFzZXRzW2RdKSkge1xuICAgICAgLy8gYWxsIGRhdGFzZXRJZHMgaW4gZmlsdGVyIG11c3QgYmUgcHJlc2VudCB0aGUgc3RhdGUgZGF0YXNldHNcbiAgICAgIGNvbnN0IHtmaWx0ZXI6IHZhbGlkYXRlZEZpbHRlciwgYXBwbHlUb0RhdGFzZXRzLCBhdWdtZW50ZWREYXRhc2V0c30gPSBkYXRhc2V0SWRzLnJlZHVjZShcbiAgICAgICAgKGFjYywgZGF0YXNldElkKSA9PiB7XG4gICAgICAgICAgY29uc3QgZGF0YXNldCA9IHVwZGF0ZWREYXRhc2V0c1tkYXRhc2V0SWRdO1xuICAgICAgICAgIGNvbnN0IGxheWVycyA9IHN0YXRlLmxheWVycy5maWx0ZXIobCA9PiBsLmNvbmZpZy5kYXRhSWQgPT09IGRhdGFzZXQuaWQpO1xuICAgICAgICAgIGNvbnN0IHtmaWx0ZXI6IHVwZGF0ZWRGaWx0ZXIsIGRhdGFzZXQ6IHVwZGF0ZWREYXRhc2V0fSA9IHZhbGlkYXRlRmlsdGVyV2l0aERhdGEoXG4gICAgICAgICAgICBhY2MuYXVnbWVudGVkRGF0YXNldHNbZGF0YXNldElkXSB8fCBkYXRhc2V0LFxuICAgICAgICAgICAgZmlsdGVyLFxuICAgICAgICAgICAgbGF5ZXJzXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmICh1cGRhdGVkRmlsdGVyKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgICAgIC8vIG1lcmdlIGZpbHRlciBwcm9wc1xuICAgICAgICAgICAgICBmaWx0ZXI6IGFjYy5maWx0ZXJcbiAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgLi4uYWNjLmZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgLi4ubWVyZ2VGaWx0ZXJEb21haW5TdGVwKGFjYywgdXBkYXRlZEZpbHRlcilcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA6IHVwZGF0ZWRGaWx0ZXIsXG5cbiAgICAgICAgICAgICAgYXBwbHlUb0RhdGFzZXRzOiBbLi4uYWNjLmFwcGx5VG9EYXRhc2V0cywgZGF0YXNldElkXSxcblxuICAgICAgICAgICAgICBhdWdtZW50ZWREYXRhc2V0czoge1xuICAgICAgICAgICAgICAgIC4uLmFjYy5hdWdtZW50ZWREYXRhc2V0cyxcbiAgICAgICAgICAgICAgICBbZGF0YXNldElkXTogdXBkYXRlZERhdGFzZXRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZmlsdGVyOiBudWxsLFxuICAgICAgICAgIGFwcGx5VG9EYXRhc2V0czogW10sXG4gICAgICAgICAgYXVnbWVudGVkRGF0YXNldHM6IHt9XG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIGlmICh2YWxpZGF0ZWRGaWx0ZXIgJiYgaXNFcXVhbChkYXRhc2V0SWRzLCBhcHBseVRvRGF0YXNldHMpKSB7XG4gICAgICAgIHZhbGlkYXRlZC5wdXNoKHZhbGlkYXRlZEZpbHRlcik7XG4gICAgICAgIHVwZGF0ZWREYXRhc2V0cyA9IHtcbiAgICAgICAgICAuLi51cGRhdGVkRGF0YXNldHMsXG4gICAgICAgICAgLi4uYXVnbWVudGVkRGF0YXNldHNcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZmFpbGVkLnB1c2goZmlsdGVyKTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB7dmFsaWRhdGVkLCBmYWlsZWQsIHVwZGF0ZWREYXRhc2V0c307XG59XG5cbi8qKlxuICogUmV0cmlldmUgaW50ZXJ2YWwgYmlucyBmb3IgdGltZSBmaWx0ZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEludGVydmFsQmlucyhmaWx0ZXI6IFRpbWVSYW5nZUZpbHRlcikge1xuICBjb25zdCB7Ymluc30gPSBmaWx0ZXI7XG4gIGNvbnN0IGludGVydmFsID0gZmlsdGVyLnBsb3RUeXBlPy5pbnRlcnZhbDtcbiAgaWYgKCFpbnRlcnZhbCB8fCAhYmlucyB8fCBPYmplY3Qua2V5cyhiaW5zKS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCB2YWx1ZXMgPSBPYmplY3QudmFsdWVzKGJpbnMpO1xuICByZXR1cm4gdmFsdWVzWzBdID8gdmFsdWVzWzBdW2ludGVydmFsXSA6IG51bGw7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxRQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxJQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxRQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBTSxjQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxRQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxRQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxnQkFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsVUFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsVUFBQSxHQUFBQyx1QkFBQSxDQUFBWixPQUFBO0FBQ0EsSUFBQWEsTUFBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsTUFBQSxHQUFBZCxPQUFBO0FBQ0EsSUFBQWUsUUFBQSxHQUFBZixPQUFBO0FBQTBFLFNBQUFnQix5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQs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LGlCQUFpQixXQUFBdFIsZ0JBQUEsaUJBQ3ZCNkQsU0FBUyxFQUFHdUIsY0FBYztZQUM1QjtVQUVMO1VBRUEsT0FBT2lLLEdBQUc7UUFDWixDQUFDLEVBQ0Q7VUFDRTdQLE1BQU0sRUFBRSxJQUFJO1VBQ1orUixlQUFlLEVBQUUsRUFBRTtVQUNuQkQsaUJBQWlCLEVBQUUsQ0FBQztRQUN0QixDQUNGLENBQUM7UUFyQ2NFLGVBQWUsR0FBQUosa0JBQUEsQ0FBdkI1UixNQUFNO1FBQW1CK1IsZUFBZSxHQUFBSCxrQkFBQSxDQUFmRyxlQUFlO1FBQUVELGlCQUFpQixHQUFBRixrQkFBQSxDQUFqQkUsaUJBQWlCO01BdUNsRSxJQUFJRSxlQUFlLElBQUksSUFBQUMsbUJBQU8sRUFBQ3ZDLFVBQVUsRUFBRXFDLGVBQWUsQ0FBQyxFQUFFO1FBQzNETCxTQUFTLENBQUN4UixJQUFJLENBQUM4UixlQUFlLENBQUM7UUFDL0JMLGVBQWUsR0FBQXZSLGFBQUEsQ0FBQUEsYUFBQSxLQUNWdVIsZUFBZSxHQUNmRyxpQkFBaUIsQ0FDckI7TUFDSDtJQUNGLENBQUMsTUFBTTtNQUNMbk4sTUFBTSxDQUFDekUsSUFBSSxDQUFDRixNQUFNLENBQUM7SUFDckI7RUFDRixDQUFDLENBQUM7RUFFRixPQUFPO0lBQUMwUixTQUFTLEVBQVRBLFNBQVM7SUFBRS9NLE1BQU0sRUFBTkEsTUFBTTtJQUFFZ04sZUFBZSxFQUFmQTtFQUFlLENBQUM7QUFDN0M7O0FBRUE7QUFDQTtBQUNBO0FBQ08sU0FBU08sZUFBZUEsQ0FBQ2xTLE1BQXVCLEVBQUU7RUFBQSxJQUFBbVMsZ0JBQUE7RUFDdkQsSUFBT2pGLElBQUksR0FBSWxOLE1BQU0sQ0FBZGtOLElBQUk7RUFDWCxJQUFNckosUUFBUSxJQUFBc08sZ0JBQUEsR0FBR25TLE1BQU0sQ0FBQzJELFFBQVEsY0FBQXdPLGdCQUFBLHVCQUFmQSxnQkFBQSxDQUFpQnRPLFFBQVE7RUFDMUMsSUFBSSxDQUFDQSxRQUFRLElBQUksQ0FBQ3FKLElBQUksSUFBSTlOLE1BQU0sQ0FBQ1MsSUFBSSxDQUFDcU4sSUFBSSxDQUFDLENBQUM1TSxNQUFNLEtBQUssQ0FBQyxFQUFFO0lBQ3hELE9BQU8sSUFBSTtFQUNiO0VBQ0EsSUFBTThSLE1BQU0sR0FBR2hULE1BQU0sQ0FBQ2dULE1BQU0sQ0FBQ2xGLElBQUksQ0FBQztFQUNsQyxPQUFPa0YsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHQSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUN2TyxRQUFRLENBQUMsR0FBRyxJQUFJO0FBQy9DIiwiaWdub3JlTGlzdCI6W119
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@carto/kepler.gl",
3
3
  "author": "CARTO",
4
4
  "homepage": "https://github.com/CartoDB/carto-kepler#readme",
5
- "version": "0.0.86-alpha.deck9.1-2",
5
+ "version": "0.0.87",
6
6
  "description": "kepler.gl is a webgl based application to visualize large scale location data in the browser",
7
7
  "license": "MIT",
8
8
  "type": "commonjs",
@@ -164,7 +164,7 @@
164
164
  "d3-time": "^3.1.0",
165
165
  "decimal.js": "^10.2.0",
166
166
  "fuzzy": "^0.1.3",
167
- "h3-js": "^3.1.0",
167
+ "h3-js": "^4.1.0",
168
168
  "keymirror": "^0.1.1",
169
169
  "lodash": "^4.17.21",
170
170
  "long": "^4.0.0",
@@ -29,7 +29,14 @@ import {findDefaultColorField} from 'utils/dataset-utils';
29
29
  import {GeoJsonLayer} from '@deck.gl/layers';
30
30
  import {H3HexagonLayer} from '@deck.gl/geo-layers';
31
31
  import EnhancedColumnLayer from 'deckgl-layers/column-layer/enhanced-column-layer';
32
- import {getCentroid, idToPolygonGeo, h3IsValid, getHexFields, Centroid, getVertices} from './h3-utils';
32
+ import {
33
+ getCentroid,
34
+ idToPolygonGeo,
35
+ isValidCell,
36
+ getHexFields,
37
+ Centroid,
38
+ getVertices
39
+ } from './h3-utils';
33
40
  import H3HexagonLayerIcon from './h3-hexagon-layer-icon';
34
41
  import {CHANNEL_SCALES, HIGHLIGH_COLOR_3D} from 'constants/default-settings';
35
42
  import {getLatLngBounds} from 'utils/data-utils';
@@ -257,7 +264,7 @@ export default class HexagonIdLayer extends Layer {
257
264
  /* eslint-enable complexity */
258
265
 
259
266
  updateLayerMeta(dataContainer, getHexId) {
260
- const validHexagonIds = dataContainer.map((d, index) => getHexId({index})).filter(h3IsValid);
267
+ const validHexagonIds = dataContainer.map((d, index) => getHexId({index})).filter(isValidCell);
261
268
 
262
269
  // save a reference of centroids to dataToFeature
263
270
  // so we don't have to re calculate it again
@@ -18,27 +18,27 @@
18
18
  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  // THE SOFTWARE.
20
20
 
21
- import {h3GetResolution, H3Index, h3IsValid, h3ToGeo, h3ToGeoBoundary} from 'h3-js';
21
+ import {getResolution, H3IndexInput, isValidCell, cellToLatLng, cellToBoundary} from 'h3-js';
22
22
  import {ALL_FIELD_TYPES} from 'constants/default-settings';
23
23
  import {notNullorUndefined} from 'utils/data-utils';
24
24
 
25
- export {h3GetResolution, h3IsValid};
25
+ export {getResolution, isValidCell};
26
26
 
27
27
  export type Centroid = [number, number];
28
28
 
29
29
  // get vertices should return [lon, lat]
30
- export function getVertices({id}: {id: H3Index}) {
30
+ export function getVertices({id}: {id: H3IndexInput}) {
31
31
  // always reverse it
32
- return h3ToGeoBoundary(id, true);
32
+ return cellToBoundary(id, true);
33
33
  }
34
34
 
35
35
  // get centroid should return [lon, lat]
36
- export function getCentroid({id}: {id: H3Index}): Centroid {
36
+ export function getCentroid({id}: {id: H3IndexInput}): Centroid {
37
37
  // always reverse it to [lng, lat]
38
- return h3ToGeo(id).reverse() as Centroid;
38
+ return cellToLatLng(id).reverse() as Centroid;
39
39
  }
40
40
 
41
- export function idToPolygonGeo(object?: {id: H3Index}, properties?: any) {
41
+ export function idToPolygonGeo(object?: {id: H3IndexInput}, properties?: any) {
42
42
  if (!object?.id) {
43
43
  return null;
44
44
  }
@@ -60,7 +60,7 @@ export const isHexField = (field, fieldIdx, dataContainer) => {
60
60
  }
61
61
 
62
62
  const firstDP = dataContainer.find(d => notNullorUndefined(d.valueAt(fieldIdx)), true);
63
- return firstDP && h3IsValid(firstDP.valueAt(fieldIdx));
63
+ return firstDP && isValidCell(firstDP.valueAt(fieldIdx));
64
64
  };
65
65
 
66
66
  export const getHexFields = (fields, dataContainer) =>
@@ -32,7 +32,7 @@ import {notNullorUndefined, unique, timeToUnixMilli} from './data-utils';
32
32
  import * as ScaleUtils from './data-scale-utils';
33
33
  import {LAYER_TYPES} from 'layers/types';
34
34
  import {generateHashId, set, toArray} from './utils';
35
- import {getCentroid, h3IsValid} from 'layers/h3-hexagon-layer/h3-utils';
35
+ import {getCentroid, isValidCell} from 'layers/h3-hexagon-layer/h3-utils';
36
36
 
37
37
  import {
38
38
  Filter,
@@ -426,7 +426,7 @@ export const getPolygonFilterFunctor = (layer, filter, dataContainer) => {
426
426
  }
427
427
  return data => {
428
428
  const id = getPosition(data);
429
- if (!h3IsValid(id)) {
429
+ if (!isValidCell(id)) {
430
430
  return false;
431
431
  }
432
432
  const pos = getCentroid({id});