appium-android-driver 5.0.9 → 5.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.js +1 -1
- package/build/lib/android-helpers.js +1 -1
- package/build/lib/bootstrap.js +1 -1
- package/build/lib/commands/actions.js +1 -1
- package/build/lib/commands/alert.js +1 -1
- package/build/lib/commands/app-management.js +1 -1
- package/build/lib/commands/context.js +1 -1
- package/build/lib/commands/coverage.js +1 -1
- package/build/lib/commands/element.js +1 -1
- package/build/lib/commands/emu-console.js +1 -1
- package/build/lib/commands/execute.js +1 -1
- package/build/lib/commands/file-actions.js +1 -1
- package/build/lib/commands/find.js +1 -1
- package/build/lib/commands/general.js +1 -1
- package/build/lib/commands/ime.js +1 -1
- package/build/lib/commands/index.js +1 -1
- package/build/lib/commands/intent.js +1 -1
- package/build/lib/commands/log.js +1 -1
- package/build/lib/commands/network.js +1 -1
- package/build/lib/commands/performance.js +1 -1
- package/build/lib/commands/recordscreen.js +1 -1
- package/build/lib/commands/shell.js +1 -1
- package/build/lib/commands/streamscreen.js +1 -1
- package/build/lib/commands/system-bars.js +3 -5
- package/build/lib/commands/touch.js +1 -1
- package/build/lib/desired-caps.js +1 -1
- package/build/lib/driver.js +1 -1
- package/build/lib/logger.js +1 -1
- package/build/lib/server.js +1 -1
- package/build/lib/uiautomator.js +1 -1
- package/build/lib/unlock-helpers.js +1 -1
- package/build/lib/webview-helpers.js +1 -1
- package/lib/commands/system-bars.js +2 -4
- package/package.json +6 -5
|
@@ -420,4 +420,4 @@ var _default = commands;
|
|
|
420
420
|
exports.default = _default;require('source-map-support').install();
|
|
421
421
|
|
|
422
422
|
|
|
423
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9zdHJlYW1zY3JlZW4uanMiXSwibmFtZXMiOlsiY29tbWFuZHMiLCJSRUNPUkRJTkdfSU5URVJWQUxfU0VDIiwiU1RSRUFNSU5HX1NUQVJUVVBfVElNRU9VVF9NUyIsIkdTVFJFQU1FUl9CSU5BUlkiLCJzeXN0ZW0iLCJpc1dpbmRvd3MiLCJHU1RfSU5TUEVDVF9CSU5BUlkiLCJSRVFVSVJFRF9HU1RfUExVR0lOUyIsImF2ZGVjX2gyNjQiLCJoMjY0cGFyc2UiLCJqcGVnZW5jIiwidGNwc2VydmVyc2luayIsIm11bHRpcGFydG11eCIsIlNDUkVFTlJFQ09SRF9CSU5BUlkiLCJHU1RfVFVUT1JJQUxfVVJMIiwiREVGQVVMVF9IT1NUIiwiVENQX0hPU1QiLCJERUZBVUxUX1BPUlQiLCJERUZBVUxUX1FVQUxJVFkiLCJERUZBVUxUX0JJVFJBVEUiLCJCT1VOREFSWV9TVFJJTkciLCJBREJfU0NSRUVOX1NUUkVBTUlOR19GRUFUVVJFIiwiY3JlYXRlU3RyZWFtaW5nTG9nZ2VyIiwic3RyZWFtTmFtZSIsInVkaWQiLCJsb2dnZXIiLCJnZXRMb2dnZXIiLCJfIiwidHJ1bmNhdGUiLCJsZW5ndGgiLCJvbWlzc2lvbiIsInZlcmlmeVN0cmVhbWluZ1JlcXVpcmVtZW50cyIsImFkYiIsInRyaW0iLCJzaGVsbCIsIkVycm9yIiwiZ3N0cmVhbWVyQ2hlY2tQcm9taXNlcyIsImJpbmFyeU5hbWUiLCJwdXNoIiwiZnMiLCJ3aGljaCIsImUiLCJCIiwiYWxsIiwibW9kdWxlQ2hlY2tQcm9taXNlcyIsIm5hbWUiLCJtb2ROYW1lIiwidG9QYWlycyIsInN0ZG91dCIsImluY2x1ZGVzIiwiZ2V0RGV2aWNlSW5mbyIsImxvZyIsIm91dHB1dCIsInJlc3VsdCIsImtleSIsInBhdHRlcm4iLCJtYXRjaCIsImV4ZWMiLCJkZWJ1ZyIsInBhcnNlSW50IiwiY3VyRGV2aWNlSWQiLCJpbml0RGV2aWNlU3RyZWFtaW5nUHJvYyIsImRldmljZUluZm8iLCJvcHRzIiwid2lkdGgiLCJoZWlnaHQiLCJiaXRSYXRlIiwiYWRqdXN0ZWRXaWR0aCIsImFkanVzdGVkSGVpZ2h0IiwiYWRqdXN0ZWRCaXRyYXRlIiwic2NyZWVuUmVjb3JkQ21kIiwiYWRiQXJncyIsImV4ZWN1dGFibGUiLCJkZWZhdWx0QXJncyIsImRldmljZVN0cmVhbWluZyIsInBhdGgiLCJvbiIsImNvZGUiLCJzaWduYWwiLCJpc1N0YXJ0ZWQiLCJkZXZpY2VTdHJlYW1pbmdMb2dnZXIiLCJlcnJvcnNMaXN0ZW5lciIsImNodW5rIiwic3RkZXJyIiwidG9TdHJpbmciLCJzdGFydHVwTGlzdGVuZXIiLCJpc0VtcHR5IiwiaW5mbyIsInV0aWwiLCJxdW90ZSIsIndhaXRNcyIsImludGVydmFsTXMiLCJlcnJvckFuZFRocm93IiwibWVzc2FnZSIsInJlbW92ZUxpc3RlbmVyIiwiaW5pdEdzdHJlYW1lclBpcGVsaW5lIiwiZGV2aWNlU3RyZWFtaW5nUHJvYyIsInF1YWxpdHkiLCJ0Y3BQb3J0IiwiY29uc2lkZXJSb3RhdGlvbiIsImxvZ1BpcGVsaW5lRGV0YWlscyIsImdzdHJlYW1lclBpcGVsaW5lIiwiU3ViUHJvY2VzcyIsIk1hdGgiLCJtYXgiLCJmcHMiLCJzdGRpbyIsImdzdHJlYW1lckxvZ2dlciIsImdzdE91dHB1dExpc3RlbmVyIiwiZGlkRmFpbCIsInJlcCIsInN0YXJ0IiwiaWduIiwiZXh0cmFjdFJlbW90ZUFkZHJlc3MiLCJyZXEiLCJoZWFkZXJzIiwic29ja2V0IiwicmVtb3RlQWRkcmVzcyIsImNvbm5lY3Rpb24iLCJtb2JpbGVTdGFydFNjcmVlblN0cmVhbWluZyIsIm9wdGlvbnMiLCJlbnN1cmVGZWF0dXJlRW5hYmxlZCIsImhvc3QiLCJwb3J0IiwicGF0aG5hbWUiLCJpc1VuZGVmaW5lZCIsIl9zY3JlZW5TdHJlYW1pbmdQcm9wcyIsImtpbGwiLCJtanBlZ1NvY2tldCIsIm1qcGVnU2VydmVyIiwicmVzb2x2ZSIsInJlamVjdCIsIm5ldCIsImNyZWF0ZUNvbm5lY3Rpb24iLCJodHRwIiwiY3JlYXRlU2VydmVyIiwicmVzIiwiY3VycmVudFBhdGhuYW1lIiwidXJsIiwicGFyc2UiLCJ3cml0ZUhlYWQiLCJDb25uZWN0aW9uIiwid3JpdGUiLCJlbmQiLCJQcmFnbWEiLCJwaXBlIiwid2FybiIsImxpc3RlbiIsImVycm9yIiwidGltZW91dCIsImlzUnVubmluZyIsInN0b3AiLCJkZXN0cm95IiwibGlzdGVuaW5nIiwiY2xvc2UiLCJtb2JpbGVTdG9wU2NyZWVuU3RyZWFtaW5nIiwiZTEiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsUUFBUSxHQUFHLEVBQWpCO0FBRUEsTUFBTUMsc0JBQXNCLEdBQUcsQ0FBL0I7QUFDQSxNQUFNQyw0QkFBNEIsR0FBRyxJQUFyQztBQUNBLE1BQU1DLGdCQUFnQixHQUFJLGlCQUFnQkMsZ0JBQU9DLFNBQVAsS0FBcUIsTUFBckIsR0FBOEIsRUFBRyxFQUEzRTtBQUNBLE1BQU1DLGtCQUFrQixHQUFJLGtCQUFpQkYsZ0JBQU9DLFNBQVAsS0FBcUIsTUFBckIsR0FBOEIsRUFBRyxFQUE5RTtBQUNBLE1BQU1FLG9CQUFvQixHQUFHO0FBQzNCQyxFQUFBQSxVQUFVLEVBQUUsV0FEZTtBQUUzQkMsRUFBQUEsU0FBUyxFQUFFLGlCQUZnQjtBQUczQkMsRUFBQUEsT0FBTyxFQUFFLGtCQUhrQjtBQUkzQkMsRUFBQUEsYUFBYSxFQUFFLGtCQUpZO0FBSzNCQyxFQUFBQSxZQUFZLEVBQUU7QUFMYSxDQUE3QjtBQU9BLE1BQU1DLG1CQUFtQixHQUFHLGNBQTVCO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsdUVBQXpCO0FBQ0EsTUFBTUMsWUFBWSxHQUFHLFdBQXJCO0FBQ0EsTUFBTUMsUUFBUSxHQUFHLFdBQWpCO0FBQ0EsTUFBTUMsWUFBWSxHQUFHLElBQXJCO0FBQ0EsTUFBTUMsZUFBZSxHQUFHLEVBQXhCO0FBQ0EsTUFBTUMsZUFBZSxHQUFHLE9BQXhC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QVo7QUFDRDs7QUFDRCxRQUFJMUQsbUJBQW1CLENBQUMrQixJQUFwQixDQUF5QixDQUF6QixDQUFKLEVBQWlDO0FBQy9CL0IsTUFBQUEsbUJBQW1CLENBQUMrQixJQUFwQixDQUF5QixRQUF6QjtBQUNEOztBQUNELFFBQUkxQixpQkFBaUIsQ0FBQ2lELFNBQXRCLEVBQWlDO0FBQy9CLFVBQUk7QUFDRixjQUFNakQsaUJBQWlCLENBQUNrRCxJQUFsQixDQUF1QixRQUF2QixDQUFOO0FBQ0QsT0FGRCxDQUVFLE9BQU85RyxDQUFQLEVBQVU7QUFDVixhQUFLVSxHQUFMLENBQVMrRixJQUFULENBQWN6RyxDQUFkOztBQUNBLFlBQUk7QUFDRixnQkFBTTRELGlCQUFpQixDQUFDa0QsSUFBbEIsQ0FBdUIsU0FBdkIsQ0FBTjtBQUNELFNBRkQsQ0FFRSxPQUFPSyxFQUFQLEVBQVc7QUFDWCxlQUFLekcsR0FBTCxDQUFTaUcsS0FBVCxDQUFlUSxFQUFmO0FBQ0Q7QUFDRjtBQUNGOztBQUNELFNBQUt6RyxHQUFMLENBQVNvQyxJQUFULENBQWUsMkRBQWY7QUFDRCxHQXJCRCxTQXFCVTtBQUNSLFNBQUt1QyxxQkFBTCxHQUE2QixJQUE3QjtBQUNEO0FBQ0YsQ0F2Q0Q7O2VBMENlOUgsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBmcywgc3lzdGVtLCBsb2dnZXIsIHV0aWwgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgZXhlYywgU3ViUHJvY2VzcyB9IGZyb20gJ3RlZW5fcHJvY2Vzcyc7XG5pbXBvcnQgeyBjaGVja1BvcnRTdGF0dXMgfSBmcm9tICdwb3J0c2Nhbm5lcic7XG5pbXBvcnQgaHR0cCBmcm9tICdodHRwJztcbmltcG9ydCBuZXQgZnJvbSAnbmV0JztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCB7IHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgeyBzcGF3biB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IHVybCBmcm9tICd1cmwnO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG5jb25zdCBSRUNPUkRJTkdfSU5URVJWQUxfU0VDID0gNTtcbmNvbnN0IFNUUkVBTUlOR19TVEFSVFVQX1RJTUVPVVRfTVMgPSA1MDAwO1xuY29uc3QgR1NUUkVBTUVSX0JJTkFSWSA9IGBnc3QtbGF1bmNoLTEuMCR7c3lzdGVtLmlzV2luZG93cygpID8gJy5leGUnIDogJyd9YDtcbmNvbnN0IEdTVF9JTlNQRUNUX0JJTkFSWSA9IGBnc3QtaW5zcGVjdC0xLjAke3N5c3RlbS5pc1dpbmRvd3MoKSA/ICcuZXhlJyA6ICcnfWA7XG5jb25zdCBSRVFVSVJFRF9HU1RfUExVR0lOUyA9IHtcbiAgYXZkZWNfaDI2NDogJ2dzdC1saWJhdicsXG4gIGgyNjRwYXJzZTogJ2dzdC1wbHVnaW5zLWJhZCcsXG4gIGpwZWdlbmM6ICdnc3QtcGx1Z2lucy1nb29kJyxcbiAgdGNwc2VydmVyc2luazogJ2dzdC1wbHVnaW5zLWJhc2UnLFxuICBtdWx0aXBhcnRtdXg6ICdnc3QtcGx1Z2lucy1nb29kJyxcbn07XG5jb25zdCBTQ1JFRU5SRUNPUkRfQklOQVJZID0gJ3NjcmVlbnJlY29yZCc7XG5jb25zdCBHU1RfVFVUT1JJQUxfVVJMID0gJ2h0dHBzOi8vZ3N0cmVhbWVyLmZyZWVkZXNrdG9wLm9yZy9kb2N1bWVudGF0aW9uL2luc3RhbGxpbmcvaW5kZXguaHRtbCc7XG5jb25zdCBERUZBVUxUX0hPU1QgPSAnMTI3LjAuMC4xJztcbmNvbnN0IFRDUF9IT1NUID0gJzEyNy4wLjAuMSc7XG5jb25zdCBERUZBVUxUX1BPUlQgPSA4MDkzO1xuY29uc3QgREVGQVVMVF9RVUFMSVRZID0gNzA7XG5jb25zdCBERUZBVUxUX0JJVFJBVEUgPSA0MDAwMDAwOyAvLyA0IE1icHNcbmNvbnN0IEJPVU5EQVJZX1NUUklORyA9ICctLTJhZTk3NDY4ODdmMTcwYjhjZjdjMjcxMDQ3Y2UzMTRjJztcblxuY29uc3QgQURCX1NDUkVFTl9TVFJFQU1JTkdfRkVBVFVSRSA9ICdhZGJfc2NyZWVuX3N0cmVhbWluZyc7XG5cbmZ1bmN0aW9uIGNyZWF0ZVN0cmVhbWluZ0xvZ2dlciAoc3RyZWFtTmFtZSwgdWRpZCkge1xuICByZXR1cm4gbG9nZ2VyLmdldExvZ2dlcihgJHtzdHJlYW1OYW1lfUBgICsgXy50cnVuY2F0ZSh1ZGlkLCB7XG4gICAgbGVuZ3RoOiA4LFxuICAgIG9taXNzaW9uOiAnJyxcbiAgfSkpO1xufVxuXG5hc3luYyBmdW5jdGlvbiB2ZXJpZnlTdHJlYW1pbmdSZXF1aXJlbWVudHMgKGFkYikge1xuICBpZiAoIV8udHJpbShhd2FpdCBhZGIuc2hlbGwoWyd3aGljaCcsIFNDUkVFTlJFQ09SRF9CSU5BUlldKSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgVGhlIHJlcXVpcmVkICcke1NDUkVFTlJFQ09SRF9CSU5BUll9JyBiaW5hcnkgaXMgbm90IGF2YWlsYWJsZSBvbiB0aGUgZGV2aWNlIHVuZGVyIHRlc3RgKTtcbiAgfVxuXG4gIGNvbnN0IGdzdHJlYW1lckNoZWNrUHJvbWlzZXMgPSBbXTtcbiAgZm9yIChjb25zdCBiaW5hcnlOYW1lIG9mIFtHU1RSRUFNRVJfQklOQVJZLCBHU1RfSU5TUEVDVF9CSU5BUlldKSB7XG4gICAgZ3N0cmVhbWVyQ2hlY2tQcm9taXNlcy5wdXNoKChhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBmcy53aGljaChiaW5hcnlOYW1lKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgJyR7YmluYXJ5TmFtZX0nIGJpbmFyeSBpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBQQVRIIG9uIHRoZSBob3N0IHN5c3RlbS4gYCArXG4gICAgICAgICAgYFNlZSAke0dTVF9UVVRPUklBTF9VUkx9IGZvciBtb3JlIGRldGFpbHMgb24gaG93IHRvIGluc3RhbGwgaXQuYCk7XG4gICAgICB9XG4gICAgfSkoKSk7XG4gIH1cbiAgYXdhaXQgQi5hbGwoZ3N0cmVhbWVyQ2hlY2tQcm9taXNlcyk7XG5cbiAgY29uc3QgbW9kdWxlQ2hlY2tQcm9taXNlcyA9IFtdO1xuICBmb3IgKGNvbnN0IFtuYW1lLCBtb2ROYW1lXSBvZiBfLnRvUGFpcnMoUkVRVUlSRURfR1NUX1BMVUdJTlMpKSB7XG4gICAgbW9kdWxlQ2hlY2tQcm9taXNlcy5wdXNoKChhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IGV4ZWMoR1NUX0lOU1BFQ1RfQklOQVJZLCBbbmFtZV0pO1xuICAgICAgaWYgKCFfLmluY2x1ZGVzKHN0ZG91dCwgbW9kTmFtZSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBUaGUgcmVxdWlyZWQgR1N0cmVhbWVyIHBsdWdpbiAnJHtuYW1lfScgZnJvbSAnJHttb2ROYW1lfScgbW9kdWxlIGlzIG5vdCBpbnN0YWxsZWQuIGAgK1xuICAgICAgICAgIGBTZWUgJHtHU1RfVFVUT1JJQUxfVVJMfSBmb3IgbW9yZSBkZXRhaWxzIG9uIGhvdyB0byBpbnN0YWxsIGl0LmApO1xuICAgICAgfVxuICAgIH0pKCkpO1xuICB9XG4gIGF3YWl0IEIuYWxsKG1vZHVsZUNoZWNrUHJvbWlzZXMpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBnZXREZXZpY2VJbmZvIChhZGIsIGxvZyA9IG51bGwpIHtcbiAgY29uc3Qgb3V0cHV0ID0gYXdhaXQgYWRiLnNoZWxsKFsnZHVtcHN5cycsICdkaXNwbGF5J10pO1xuICBjb25zdCByZXN1bHQgPSB7fTtcbiAgZm9yIChjb25zdCBba2V5LCBwYXR0ZXJuXSBvZiBbXG4gICAgWyd3aWR0aCcsIC9cXGJkZXZpY2VXaWR0aD0oXFxkKykvXSxcbiAgICBbJ2hlaWdodCcsIC9cXGJkZXZpY2VIZWlnaHQ9KFxcZCspL10sXG4gICAgWydmcHMnLCAvXFxiZnBzPShcXGQrKS9dLFxuICBdKSB7XG4gICAgY29uc3QgbWF0Y2ggPSBwYXR0ZXJuLmV4ZWMob3V0cHV0KTtcbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICBsb2c/LmRlYnVnKG91dHB1dCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBwYXJzZSB0aGUgZGV2aWNlICR7a2V5fSBmcm9tIHRoZSBhZGIgY29tbWFuZCBvdXRwdXQuIGAgK1xuICAgICAgICBgQ2hlY2sgdGhlIHNlcnZlciBsb2cgZm9yIG1vcmUgZGV0YWlscy5gKTtcbiAgICB9XG4gICAgcmVzdWx0W2tleV0gPSBwYXJzZUludChtYXRjaFsxXSwgMTApO1xuICB9XG4gIHJlc3VsdC51ZGlkID0gYWRiLmN1ckRldmljZUlkO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5hc3luYyBmdW5jdGlvbiBpbml0RGV2aWNlU3RyZWFtaW5nUHJvYyAoYWRiLCBsb2csIGRldmljZUluZm8sIG9wdHMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgd2lkdGgsXG4gICAgaGVpZ2h0LFxuICAgIGJpdFJhdGUsXG4gIH0gPSBvcHRzO1xuICBjb25zdCBhZGp1c3RlZFdpZHRoID0gcGFyc2VJbnQod2lkdGgsIDEwKSB8fCBkZXZpY2VJbmZvLndpZHRoO1xuICBjb25zdCBhZGp1c3RlZEhlaWdodCA9IHBhcnNlSW50KGhlaWdodCwgMTApIHx8IGRldmljZUluZm8uaGVpZ2h0O1xuICBjb25zdCBhZGp1c3RlZEJpdHJhdGUgPSBwYXJzZUludChiaXRSYXRlLCAxMCkgfHwgREVGQVVMVF9CSVRSQVRFO1xuICBsZXQgc2NyZWVuUmVjb3JkQ21kID0gU0NSRUVOUkVDT1JEX0JJTkFSWSArXG4gICAgYCAtLW91dHB1dC1mb3JtYXQ9aDI2NGAgK1xuICAgIC8vIDUgc2Vjb25kcyBpcyBmaW5lIHRvIGRldGVjdCByb3RhdGlvbiBjaGFuZ2VzXG4gICAgYCAtLXRpbWUtbGltaXQ9JHtSRUNPUkRJTkdfSU5URVJWQUxfU0VDfWA7XG4gIGlmICh3aWR0aCB8fCBoZWlnaHQpIHtcbiAgICBzY3JlZW5SZWNvcmRDbWQgKz0gYCAtLXNpemU9JHthZGp1c3RlZFdpZHRofXgke2FkanVzdGVkSGVpZ2h0fWA7XG4gIH1cbiAgaWYgKGJpdFJhdGUpIHtcbiAgICBzY3JlZW5SZWNvcmRDbWQgKz0gYCAtLWJpdC1yYXRlPSR7YWRqdXN0ZWRCaXRyYXRlfWA7XG4gIH1cbiAgY29uc3QgYWRiQXJncyA9IFtcbiAgICAuLi5hZGIuZXhlY3V0YWJsZS5kZWZhdWx0QXJncyxcbiAgICAnZXhlYy1vdXQnLFxuICAgIC8vIFRoZSBsb29wIGlzIHJlcXVpcmVkLCBiZWNhdXNlIGJ5IGRlZmF1bHQgdGhlIG1heGltdW0gcmVjb3JkIGR1cmF0aW9uXG4gICAgLy8gZm9yIHNjcmVlbnJlY29yZCBpcyBhbHdheXMgbGltaXRlZFxuICAgIGB3aGlsZSB0cnVlOyBkbyAke3NjcmVlblJlY29yZENtZH0gLTsgZG9uZWAsXG4gIF07XG4gIGNvbnN0IGRldmljZVN0cmVhbWluZyA9IHNwYXduKGFkYi5leGVjdXRhYmxlLnBhdGgsIGFkYkFyZ3MpO1xuICBkZXZpY2VTdHJlYW1pbmcub24oJ2V4aXQnLCAoY29kZSwgc2lnbmFsKSA9PiB7XG4gICAgbG9nLmRlYnVnKGBEZXZpY2Ugc3RyZWFtaW5nIHByb2Nlc3MgZXhpdGVkIHdpdGggY29kZSAke2NvZGV9LCBzaWduYWwgJHtzaWduYWx9YCk7XG4gIH0pO1xuXG4gIGxldCBpc1N0YXJ0ZWQgPSBmYWxzZTtcbiAgY29uc3QgZGV2aWNlU3RyZWFtaW5nTG9nZ2VyID0gY3JlYXRlU3RyZWFtaW5nTG9nZ2VyKFNDUkVFTlJFQ09SRF9CSU5BUlksIGRldmljZUluZm8udWRpZCk7XG4gIGNvbnN0IGVycm9yc0xpc3RlbmVyID0gKGNodW5rKSA9PiB7XG4gICAgY29uc3Qgc3RkZXJyID0gY2h1bmsudG9TdHJpbmcoKTtcbiAgICBpZiAoXy50cmltKHN0ZGVycikpIHtcbiAgICAgIGRldmljZVN0cmVhbWluZ0xvZ2dlci5kZWJ1ZyhzdGRlcnIpO1xuICAgIH1cbiAgfTtcbiAgZGV2aWNlU3RyZWFtaW5nLnN0ZGVyci5vbignZGF0YScsIGVycm9yc0xpc3RlbmVyKTtcblxuICBjb25zdCBzdGFydHVwTGlzdGVuZXIgPSAoY2h1bmspID0+IHtcbiAgICBpZiAoIWlzU3RhcnRlZCkge1xuICAgICAgaXNTdGFydGVkID0gIV8uaXNFbXB0eShjaHVuayk7XG4gICAgfVxuICB9O1xuICBkZXZpY2VTdHJlYW1pbmcuc3Rkb3V0Lm9uKCdkYXRhJywgc3RhcnR1cExpc3RlbmVyKTtcblxuICB0cnkge1xuICAgIGxvZy5pbmZvKGBTdGFydGluZyBkZXZpY2Ugc3RyZWFtaW5nOiAke3V0aWwucXVvdGUoW2FkYi5leGVjdXRhYmxlLnBhdGgsIC4uLmFkYkFyZ3NdKX1gKTtcbiAgICBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKCgpID0+IGlzU3RhcnRlZCwge1xuICAgICAgd2FpdE1zOiBTVFJFQU1JTkdfU1RBUlRVUF9USU1FT1VUX01TLFxuICAgICAgaW50ZXJ2YWxNczogMzAwLFxuICAgIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgbG9nLmVycm9yQW5kVGhyb3coXG4gICAgICBgQ2Fubm90IHN0YXJ0IHRoZSBzY3JlZW4gc3RyZWFtaW5nIHByb2Nlc3MuIE9yaWdpbmFsIGVycm9yOiAke2UubWVzc2FnZX1gKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBkZXZpY2VTdHJlYW1pbmcuc3RkZXJyLnJlbW92ZUxpc3RlbmVyKCdkYXRhJywgZXJyb3JzTGlzdGVuZXIpO1xuICAgIGRldmljZVN0cmVhbWluZy5zdGRvdXQucmVtb3ZlTGlzdGVuZXIoJ2RhdGEnLCBzdGFydHVwTGlzdGVuZXIpO1xuICB9XG4gIHJldHVybiBkZXZpY2VTdHJlYW1pbmc7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGluaXRHc3RyZWFtZXJQaXBlbGluZSAoZGV2aWNlU3RyZWFtaW5nUHJvYywgZGV2aWNlSW5mbywgbG9nLCBvcHRzID0ge30pIHtcbiAgY29uc3Qge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICBxdWFsaXR5LFxuICAgIHRjcFBvcnQsXG4gICAgY29uc2lkZXJSb3RhdGlvbixcbiAgICBsb2dQaXBlbGluZURldGFpbHMsXG4gIH0gPSBvcHRzO1xuICBjb25zdCBhZGp1c3RlZFdpZHRoID0gcGFyc2VJbnQod2lkdGgsIDEwKSB8fCBkZXZpY2VJbmZvLndpZHRoO1xuICBjb25zdCBhZGp1c3RlZEhlaWdodCA9IHBhcnNlSW50KGhlaWdodCwgMTApIHx8IGRldmljZUluZm8uaGVpZ2h0O1xuICBjb25zdCBnc3RyZWFtZXJQaXBlbGluZSA9IG5ldyBTdWJQcm9jZXNzKEdTVFJFQU1FUl9CSU5BUlksIFtcbiAgICAnLXYnLFxuICAgICdmZHNyYycsICdmZD0wJyxcbiAgICAnIScsICd2aWRlby94LWgyNjQsJyArXG4gICAgICBgd2lkdGg9JHtjb25zaWRlclJvdGF0aW9uID8gTWF0aC5tYXgoYWRqdXN0ZWRXaWR0aCwgYWRqdXN0ZWRIZWlnaHQpIDogYWRqdXN0ZWRXaWR0aH0sYCArXG4gICAgICBgaGVpZ2h0PSR7Y29uc2lkZXJSb3RhdGlvbiA/IE1hdGgubWF4KGFkanVzdGVkV2lkdGgsIGFkanVzdGVkSGVpZ2h0KSA6IGFkanVzdGVkSGVpZ2h0fSxgICtcbiAgICAgIGBmcmFtZXJhdGU9JHtkZXZpY2VJbmZvLmZwc30vMSxgICtcbiAgICAgICdieXRlLXN0cmVhbT10cnVlJyxcbiAgICAnIScsICdoMjY0cGFyc2UnLFxuICAgICchJywgJ3F1ZXVlJywgJ2xlYWt5PWRvd25zdHJlYW0nLFxuICAgICchJywgJ2F2ZGVjX2gyNjQnLFxuICAgICchJywgJ3F1ZXVlJywgJ2xlYWt5PWRvd25zdHJlYW0nLFxuICAgICchJywgJ2pwZWdlbmMnLCBgcXVhbGl0eT0ke3F1YWxpdHl9YCxcbiAgICAnIScsICdtdWx0aXBhcnRtdXgnLCBgYm91bmRhcnk9JHtCT1VOREFSWV9TVFJJTkd9YCxcbiAgICAnIScsICd0Y3BzZXJ2ZXJzaW5rJywgYGhvc3Q9JHtUQ1BfSE9TVH1gLCBgcG9ydD0ke3RjcFBvcnR9YCxcbiAgXSwge1xuICAgIHN0ZGlvOiBbZGV2aWNlU3RyZWFtaW5nUHJvYy5zdGRvdXQsICdwaXBlJywgJ3BpcGUnXVxuICB9KTtcbiAgZ3N0cmVhbWVyUGlwZWxpbmUub24oJ2V4aXQnLCAoY29kZSwgc2lnbmFsKSA9PiB7XG4gICAgbG9nLmRlYnVnKGBQaXBlbGluZSBzdHJlYW1pbmcgcHJvY2VzcyBleGl0ZWQgd2l0aCBjb2RlICR7Y29kZX0sIHNpZ25hbCAke3NpZ25hbH1gKTtcbiAgfSk7XG4gIGNvbnN0IGdzdHJlYW1lckxvZ2dlciA9IGNyZWF0ZVN0cmVhbWluZ0xvZ2dlcignZ3N0JywgZGV2aWNlSW5mby51ZGlkKTtcbiAgY29uc3QgZ3N0T3V0cHV0TGlzdGVuZXIgPSAoc3Rkb3V0LCBzdGRlcnIpID0+IHtcbiAgICBpZiAoXy50cmltKHN0ZGVyciB8fCBzdGRvdXQpKSB7XG4gICAgICBnc3RyZWFtZXJMb2dnZXIuZGVidWcoc3RkZXJyIHx8IHN0ZG91dCk7XG4gICAgfVxuICB9O1xuICBnc3RyZWFtZXJQaXBlbGluZS5vbignb3V0cHV0JywgZ3N0T3V0cHV0TGlzdGVuZXIpO1xuICBsZXQgZGlkRmFpbCA9IGZhbHNlO1xuICB0cnkge1xuICAgIGxvZy5pbmZvKGBTdGFydGluZyBHU3RyZWFtZXIgcGlwZWxpbmU6ICR7Z3N0cmVhbWVyUGlwZWxpbmUucmVwfWApO1xuICAgIGF3YWl0IGdzdHJlYW1lclBpcGVsaW5lLnN0YXJ0KDApO1xuICAgIGF3YWl0IHdhaXRGb3JDb25kaXRpb24oYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCBjaGVja1BvcnRTdGF0dXModGNwUG9ydCwgVENQX0hPU1QpKSA9PT0gJ29wZW4nO1xuICAgICAgfSBjYXRjaCAoaWduKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9LCB7XG4gICAgICB3YWl0TXM6IFNUUkVBTUlOR19TVEFSVFVQX1RJTUVPVVRfTVMsXG4gICAgICBpbnRlcnZhbE1zOiAzMDAsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBkaWRGYWlsID0gdHJ1ZTtcbiAgICBsb2cuZXJyb3JBbmRUaHJvdyhcbiAgICAgIGBDYW5ub3Qgc3RhcnQgdGhlIHNjcmVlbiBzdHJlYW1pbmcgcGlwZWxpbmUuIE9yaWdpbmFsIGVycm9yOiAke2UubWVzc2FnZX1gKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBpZiAoIWxvZ1BpcGVsaW5lRGV0YWlscyB8fCBkaWRGYWlsKSB7XG4gICAgICBnc3RyZWFtZXJQaXBlbGluZS5yZW1vdmVMaXN0ZW5lcignb3V0cHV0JywgZ3N0T3V0cHV0TGlzdGVuZXIpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZ3N0cmVhbWVyUGlwZWxpbmU7XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RSZW1vdGVBZGRyZXNzIChyZXEpIHtcbiAgcmV0dXJuIHJlcS5oZWFkZXJzWyd4LWZvcndhcmRlZC1mb3InXVxuICAgIHx8IHJlcS5zb2NrZXQucmVtb3RlQWRkcmVzc1xuICAgIHx8IHJlcS5jb25uZWN0aW9uLnJlbW90ZUFkZHJlc3NcbiAgICB8fCByZXEuY29ubmVjdGlvbi5zb2NrZXQucmVtb3RlQWRkcmVzcztcbn1cblxuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFN0YXJ0U2NyZWVuU3RyZWFtaW5nT3B0aW9uc1xuICpcbiAqIEBwcm9wZXJ0eSB7P251bWJlcn0gd2lkdGggLSBUaGUgc2NhbGVkIHdpZHRoIG9mIHRoZSBkZXZpY2UncyBzY3JlZW4uIElmIHVuc2V0IHRoZW4gdGhlIHNjcmlwdCB3aWxsIGFzc2lnbiBpdFxuICogdG8gdGhlIGFjdHVhbCBzY3JlZW4gd2lkdGggbWVhc3VyZWQgaW4gcGl4ZWxzLlxuICogQHByb3BlcnR5IHs/bnVtYmVyfSBoZWlnaHQgLSBUaGUgc2NhbGVkIGhlaWdodCBvZiB0aGUgZGV2aWNlJ3Mgc2NyZWVuLiBJZiB1bnNldCB0aGVuIHRoZSBzY3JpcHQgd2lsbCBhc3NpZ24gaXRcbiAqIHRvIHRoZSBhY3R1YWwgc2NyZWVuIGhlaWdodCBtZWFzdXJlZCBpbiBwaXhlbHMuXG4gKiBAcHJvcGVydHkgez9udW1iZXJ9IGJpdFJhdGUgLSBUaGUgdmlkZW8gYml0IHJhdGUgZm9yIHRoZSB2aWRlbywgaW4gYml0cyBwZXIgc2Vjb25kLlxuICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgNDAwMDAwMCAoNCBNYi9zKS4gWW91IGNhbiBpbmNyZWFzZSB0aGUgYml0IHJhdGUgdG8gaW1wcm92ZSB2aWRlbyBxdWFsaXR5LFxuICogYnV0IGRvaW5nIHNvIHJlc3VsdHMgaW4gbGFyZ2VyIG1vdmllIGZpbGVzLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBob3N0IFsxMjcuMC4wLjFdIC0gVGhlIElQIGFkZHJlc3MvaG9zdCBuYW1lIHRvIHN0YXJ0IHRoZSBNSlBFRyBzZXJ2ZXIgb24uXG4gKiBZb3UgY2FuIHNldCBpdCB0byBgMC4wLjAuMGAgdG8gdHJpZ2dlciB0aGUgYnJvYWRjYXN0IG9uIGFsbCBhdmFpbGFibGUgbmV0d29yayBpbnRlcmZhY2VzLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBwYXRobmFtZSAtIFRoZSBIVFRQIHJlcXVlc3QgcGF0aCB0aGUgTUpQRUcgc2VydmVyIHNob3VsZCBiZSBhdmFpbGFibGUgb24uXG4gKiBJZiB1bnNldCB0aGVuIGFueSBwYXRobmFtZSBvbiB0aGUgZ2l2ZW4gYGhvc3RgL2Bwb3J0YCBjb21iaW5hdGlvbiB3aWxsIHdvcmsuIE5vdGUgdGhhdCB0aGUgdmFsdWVcbiAqIHNob3VsZCBhbHdheXMgc3RhcnQgd2l0aCBhIHNpbmdsZSBzbGFzaDogYC9gXG4gKiBAcHJvcGVydHkgez9udW1iZXJ9IHRjcFBvcnQgWzgwOTRdIC0gVGhlIHBvcnQgbnVtYmVyIHRvIHN0YXJ0IHRoZSBpbnRlcm5hbCBUQ1AgTUpQRUcgYnJvYWRjYXN0IG9uLlxuICogVGhpcyB0eXBlIG9mIGJyb2FkY2FzdCBhbHdheXMgc3RhcnRzIG9uIHRoZSBsb29wYmFjayBpbnRlcmZhY2UgKGAxMjcuMC4wLjFgKS5cbiAqIEBwcm9wZXJ0eSB7P251bWJlcn0gcG9ydCBbODA5M10gLSBUaGUgcG9ydCBudW1iZXIgdG8gc3RhcnQgdGhlIE1KUEVHIHNlcnZlciBvbi5cbiAqIEBwcm9wZXJ0eSB7P251bWJlcn0gcXVhbGl0eSBbNzBdIC0gVGhlIHF1YWxpdHkgdmFsdWUgZm9yIHRoZSBzdHJlYW1lZCBKUEVHIGltYWdlcy5cbiAqIFRoaXMgbnVtYmVyIHNob3VsZCBiZSBpbiByYW5nZSBbMSwgMTAwXSwgd2hlcmUgMTAwIGlzIHRoZSBiZXN0IHF1YWxpdHkuXG4gKiBAcHJvcGVydHkgez9ib29sZWFufSBjb25zaWRlclJvdGF0aW9uIFtmYWxzZV0gLSBJZiBzZXQgdG8gYHRydWVgIHRoZW4gR1N0cmVhbWVyIHBpcGVsaW5lIHdpbGxcbiAqIGluY3JlYXNlIHRoZSBkaW1lbnNpb25zIG9mIHRoZSByZXN1bHRpbmcgaW1hZ2VzIHRvIHByb3Blcmx5IGZpdCBpbWFnZXMgaW4gYm90aCBsYW5kc2NhcGUgYW5kXG4gKiBwb3J0cmFpdCBvcmllbnRhdGlvbnMuIFNldCBpdCB0byBgdHJ1ZWAgaWYgdGhlIGRldmljZSByb3RhdGlvbiBpcyBub3QgZ29pbmcgdG8gYmUgdGhlIHNhbWUgZHVyaW5nIHRoZVxuICogYnJvYWRjYXN0aW5nIHNlc3Npb24uXG4gKiBAcHJvcGVydHkgez9ib29sZWFufSBsb2dQaXBlbGluZURldGFpbHMgW2ZhbHNlXSAtIFdoZXRoZXIgdG8gbG9nIEdTdHJlYW1lciBwaXBlbGluZSBldmVudHMgaW50b1xuICogdGhlIHN0YW5kYXJkIGxvZyBvdXRwdXQuIE1pZ2h0IGJlIHVzZWZ1bCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLlxuICovXG5cbi8qKlxuICogU3RhcnRzIGRldmljZSBzY3JlZW4gYnJvYWRjYXN0IGJ5IGNyZWF0aW5nIE1KUEVHIHNlcnZlci5cbiAqIE11bHRpcGxlIGNhbGxzIHRvIHRoaXMgbWV0aG9kIGhhdmUgbm8gZWZmZWN0IHVubGVzcyB0aGUgcHJldmlvdXMgc3RyZWFtaW5nXG4gKiBzZXNzaW9uIGlzIHN0b3BwZWQuXG4gKiBUaGlzIG1ldGhvZCBvbmx5IHdvcmtzIGlmIHRoZSBgYWRiX3NjcmVlbl9zdHJlYW1pbmdgIGZlYXR1cmUgaXNcbiAqIGVuYWJsZWQgb24gdGhlIHNlcnZlciBzaWRlLlxuICpcbiAqIEBwYXJhbSB7P1N0YXJ0U2NyZWVuU3RyZWFtaW5nT3B0aW9uc30gb3B0aW9ucyAtIFRoZSBhdmFpbGFibGUgb3B0aW9ucy5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiBzY3JlZW4gc3RyZWFtaW5nIGhhcyBmYWlsZWQgdG8gc3RhcnQgb3JcbiAqIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhlIGhvc3Qgc3lzdGVtIG9yXG4gKiB0aGUgY29ycmVzcG9uZGluZyBzZXJ2ZXIgZmVhdHVyZSBpcyBub3QgZW5hYmxlZC5cbiAqL1xuY29tbWFuZHMubW9iaWxlU3RhcnRTY3JlZW5TdHJlYW1pbmcgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVTdGFydFNjcmVlblN0cmVhbWluZyAob3B0aW9ucyA9IHt9KSB7XG4gIHRoaXMuZW5zdXJlRmVhdHVyZUVuYWJsZWQoQURCX1NDUkVFTl9TVFJFQU1JTkdfRkVBVFVSRSk7XG5cbiAgY29uc3Qge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICBiaXRSYXRlLFxuICAgIGhvc3QgPSBERUZBVUxUX0hPU1QsXG4gICAgcG9ydCA9IERFRkFVTFRfUE9SVCxcbiAgICBwYXRobmFtZSxcbiAgICB0Y3BQb3J0ID0gREVGQVVMVF9QT1JUICsgMSxcbiAgICBxdWFsaXR5ID0gREVGQVVMVF9RVUFMSVRZLFxuICAgIGNvbnNpZGVyUm90YXRpb24gPSBmYWxzZSxcbiAgICBsb2dQaXBlbGluZURldGFpbHMgPSBmYWxzZSxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5fc2NyZWVuU3RyZWFtaW5nUHJvcHMpKSB7XG4gICAgYXdhaXQgdmVyaWZ5U3RyZWFtaW5nUmVxdWlyZW1lbnRzKHRoaXMuYWRiKTtcbiAgfVxuICBpZiAoIV8uaXNFbXB0eSh0aGlzLl9zY3JlZW5TdHJlYW1pbmdQcm9wcykpIHtcbiAgICB0aGlzLmxvZy5pbmZvKGBUaGUgc2NyZWVuIHN0cmVhbWluZyBzZXNzaW9uIGlzIGFscmVhZHkgcnVubmluZy4gYCArXG4gICAgICBgU3RvcCBpdCBmaXJzdCBpbiBvcmRlciB0byBzdGFydCBhIG5ldyBvbmUuYCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmICgoYXdhaXQgY2hlY2tQb3J0U3RhdHVzKHBvcnQsIGhvc3QpKSA9PT0gJ29wZW4nKSB7XG4gICAgdGhpcy5sb2cuaW5mbyhgVGhlIHBvcnQgIyR7cG9ydH0gYXQgJHtob3N0fSBpcyBidXN5LiBgICtcbiAgICAgIGBBc3N1bWluZyB0aGUgc2NyZWVuIHN0cmVhbWluZyBpcyBhbHJlYWR5IHJ1bm5pbmdgKTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKChhd2FpdCBjaGVja1BvcnRTdGF0dXModGNwUG9ydCwgVENQX0hPU1QpKSA9PT0gJ29wZW4nKSB7XG4gICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdyhgVGhlIHBvcnQgIyR7dGNwUG9ydH0gYXQgJHtUQ1BfSE9TVH0gaXMgYnVzeS4gYCArXG4gICAgICBgTWFrZSBzdXJlIHRoZXJlIGFyZSBubyBsZWZ0b3ZlcnMgZnJvbSBwcmV2aW91cyBzZXNzaW9ucy5gKTtcbiAgfVxuICB0aGlzLl9zY3JlZW5TdHJlYW1pbmdQcm9wcyA9IG51bGw7XG5cbiAgY29uc3QgZGV2aWNlSW5mbyA9IGF3YWl0IGdldERldmljZUluZm8odGhpcy5hZGIsIHRoaXMubG9nKTtcbiAgY29uc3QgZGV2aWNlU3RyZWFtaW5nUHJvYyA9IGF3YWl0IGluaXREZXZpY2VTdHJlYW1pbmdQcm9jKHRoaXMuYWRiLCB0aGlzLmxvZywgZGV2aWNlSW5mbywge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICBiaXRSYXRlLFxuICB9KTtcbiAgbGV0IGdzdHJlYW1lclBpcGVsaW5lO1xuICB0cnkge1xuICAgIGdzdHJlYW1lclBpcGVsaW5lID0gYXdhaXQgaW5pdEdzdHJlYW1lclBpcGVsaW5lKGRldmljZVN0cmVhbWluZ1Byb2MsIGRldmljZUluZm8sIHRoaXMubG9nLCB7XG4gICAgICB3aWR0aCxcbiAgICAgIGhlaWdodCxcbiAgICAgIHF1YWxpdHksXG4gICAgICB0Y3BQb3J0LFxuICAgICAgY29uc2lkZXJSb3RhdGlvbixcbiAgICAgIGxvZ1BpcGVsaW5lRGV0YWlscyxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmIChkZXZpY2VTdHJlYW1pbmdQcm9jLmtpbGwoMCkpIHtcbiAgICAgIGRldmljZVN0cmVhbWluZ1Byb2Mua2lsbCgpO1xuICAgIH1cbiAgICB0aHJvdyBlO1xuICB9XG5cbiAgbGV0IG1qcGVnU29ja2V0O1xuICBsZXQgbWpwZWdTZXJ2ZXI7XG4gIHRyeSB7XG4gICAgYXdhaXQgbmV3IEIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgbWpwZWdTb2NrZXQgPSBuZXQuY3JlYXRlQ29ubmVjdGlvbih0Y3BQb3J0LCBUQ1BfSE9TVCwgKCkgPT4ge1xuICAgICAgICB0aGlzLmxvZy5pbmZvKGBTdWNjZXNzZnVsbHkgY29ubmVjdGVkIHRvIE1KUEVHIHN0cmVhbSBhdCB0Y3A6Ly8ke1RDUF9IT1NUfToke3RjcFBvcnR9YCk7XG4gICAgICAgIG1qcGVnU2VydmVyID0gaHR0cC5jcmVhdGVTZXJ2ZXIoKHJlcSwgcmVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVtb3RlQWRkcmVzcyA9IGV4dHJhY3RSZW1vdGVBZGRyZXNzKHJlcSk7XG4gICAgICAgICAgY29uc3QgY3VycmVudFBhdGhuYW1lID0gdXJsLnBhcnNlKHJlcS51cmwpLnBhdGhuYW1lO1xuICAgICAgICAgIHRoaXMubG9nLmluZm8oYEdvdCBhbiBpbmNvbWluZyBzY3JlZW4gYnJhZGNhc3RpbmcgcmVxdWVzdCBmcm9tICR7cmVtb3RlQWRkcmVzc30gYCArXG4gICAgICAgICAgICBgKCR7cmVxLmhlYWRlcnNbJ3VzZXItYWdlbnQnXSB8fCAnVXNlciBBZ2VudCB1bmtub3duJ30pIGF0ICR7Y3VycmVudFBhdGhuYW1lfWApO1xuXG4gICAgICAgICAgaWYgKHBhdGhuYW1lICYmIGN1cnJlbnRQYXRobmFtZSAhPT0gcGF0aG5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMubG9nLmluZm8oJ1JlamVjdGluZyB0aGUgYnJvYWRjYXN0IHJlcXVlc3Qgc2luY2UgaXQgZG9lcyBub3QgbWF0Y2ggdGhlIGdpdmVuIHBhdGhuYW1lJyk7XG4gICAgICAgICAgICByZXMud3JpdGVIZWFkKDQwNCwge1xuICAgICAgICAgICAgICBDb25uZWN0aW9uOiAnY2xvc2UnLFxuICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ3RleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXMud3JpdGUoYCcke2N1cnJlbnRQYXRobmFtZX0nIGRpZCBub3QgbWF0Y2ggYW55IGtub3duIGVuZHBvaW50c2ApO1xuICAgICAgICAgICAgcmVzLmVuZCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMubG9nLmluZm8oJ1N0YXJ0aW5nIE1KUEVHIGJyb2FkY2FzdCcpO1xuICAgICAgICAgIHJlcy53cml0ZUhlYWQoMjAwLCB7XG4gICAgICAgICAgICAnQ2FjaGUtQ29udHJvbCc6ICduby1zdG9yZSwgbm8tY2FjaGUsIG11c3QtcmV2YWxpZGF0ZSwgcHJlLWNoZWNrPTAsIHBvc3QtY2hlY2s9MCwgbWF4LWFnZT0wJyxcbiAgICAgICAgICAgIFByYWdtYTogJ25vLWNhY2hlJyxcbiAgICAgICAgICAgIENvbm5lY3Rpb246ICdjbG9zZScsXG4gICAgICAgICAgICAnQ29udGVudC1UeXBlJzogYG11bHRpcGFydC94LW1peGVkLXJlcGxhY2U7IGJvdW5kYXJ5PSR7Qk9VTkRBUllfU1RSSU5HfWBcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIG1qcGVnU29ja2V0LnBpcGUocmVzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIG1qcGVnU2VydmVyLm9uKCdlcnJvcicsIChlKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2cud2FybihlKTtcbiAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBtanBlZ1NlcnZlci5vbignY2xvc2UnLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2cuZGVidWcoYE1KUEVHIHNlcnZlciBhdCBodHRwOi8vJHtob3N0fToke3BvcnR9IGhhcyBiZWVuIGNsb3NlZGApO1xuICAgICAgICB9KTtcbiAgICAgICAgbWpwZWdTZXJ2ZXIub24oJ2xpc3RlbmluZycsICgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvZy5pbmZvKGBTdWNjZXNzZnVsbHkgc3RhcnRlZCBNSlBFRyBzZXJ2ZXIgYXQgaHR0cDovLyR7aG9zdH06JHtwb3J0fWApO1xuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIG1qcGVnU2VydmVyLmxpc3Rlbihwb3J0LCBob3N0KTtcbiAgICAgIH0pO1xuICAgICAgbWpwZWdTb2NrZXQub24oJ2Vycm9yJywgKGUpID0+IHtcbiAgICAgICAgdGhpcy5sb2cuZXJyb3IoZSk7XG4gICAgICAgIHJlamVjdChlKTtcbiAgICAgIH0pO1xuICAgIH0pLnRpbWVvdXQoU1RSRUFNSU5HX1NUQVJUVVBfVElNRU9VVF9NUyxcbiAgICAgIGBDYW5ub3QgY29ubmVjdCB0byB0aGUgc3RyZWFtaW5nIHNlcnZlciB3aXRoaW4gJHtTVFJFQU1JTkdfU1RBUlRVUF9USU1FT1VUX01TfW1zYCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoZGV2aWNlU3RyZWFtaW5nUHJvYy5raWxsKDApKSB7XG4gICAgICBkZXZpY2VTdHJlYW1pbmdQcm9jLmtpbGwoKTtcbiAgICB9XG4gICAgaWYgKGdzdHJlYW1lclBpcGVsaW5lLmlzUnVubmluZykge1xuICAgICAgYXdhaXQgZ3N0cmVhbWVyUGlwZWxpbmUuc3RvcCgpO1xuICAgIH1cbiAgICBpZiAobWpwZWdTb2NrZXQpIHtcbiAgICAgIG1qcGVnU29ja2V0LmRlc3Ryb3koKTtcbiAgICB9XG4gICAgaWYgKG1qcGVnU2VydmVyICYmIG1qcGVnU2VydmVyLmxpc3RlbmluZykge1xuICAgICAgbWpwZWdTZXJ2ZXIuY2xvc2UoKTtcbiAgICB9XG4gICAgdGhyb3cgZTtcbiAgfVxuXG4gIHRoaXMuX3NjcmVlblN0cmVhbWluZ1Byb3BzID0ge1xuICAgIGRldmljZVN0cmVhbWluZ1Byb2MsXG4gICAgZ3N0cmVhbWVyUGlwZWxpbmUsXG4gICAgbWpwZWdTb2NrZXQsXG4gICAgbWpwZWdTZXJ2ZXIsXG4gIH07XG59O1xuXG4vKipcbiAqIFN0b3Agc2NyZWVuIHN0cmVhbWluZy5cbiAqIElmIG5vIHNjcmVlbiBzdHJlYW1pbmcgc2VydmVyIGhhcyBiZWVuIHN0YXJ0ZWQgdGhlbiBub3RoaW5nIGlzIGRvbmUuXG4gKi9cbmNvbW1hbmRzLm1vYmlsZVN0b3BTY3JlZW5TdHJlYW1pbmcgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVTdG9wU2NyZWVuU3RyZWFtaW5nICgvKiBvcHRpb25zID0ge30gKi8pIHtcbiAgaWYgKF8uaXNFbXB0eSh0aGlzLl9zY3JlZW5TdHJlYW1pbmdQcm9wcykpIHtcbiAgICBpZiAoIV8uaXNVbmRlZmluZWQodGhpcy5fc2NyZWVuU3RyZWFtaW5nUHJvcHMpKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhgU2NyZWVuIHN0cmVhbWluZyBpcyBub3QgcnVubmluZy4gVGhlcmUgaXMgbm90aGluZyB0byBzdG9wYCk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBkZXZpY2VTdHJlYW1pbmdQcm9jLFxuICAgIGdzdHJlYW1lclBpcGVsaW5lLFxuICAgIG1qcGVnU29ja2V0LFxuICAgIG1qcGVnU2VydmVyLFxuICB9ID0gdGhpcy5fc2NyZWVuU3RyZWFtaW5nUHJvcHM7XG5cbiAgdHJ5IHtcbiAgICBtanBlZ1NvY2tldC5lbmQoKTtcbiAgICBpZiAobWpwZWdTZXJ2ZXIubGlzdGVuaW5nKSB7XG4gICAgICBtanBlZ1NlcnZlci5jbG9zZSgpO1xuICAgIH1cbiAgICBpZiAoZGV2aWNlU3RyZWFtaW5nUHJvYy5raWxsKDApKSB7XG4gICAgICBkZXZpY2VTdHJlYW1pbmdQcm9jLmtpbGwoJ1NJR0lOVCcpO1xuICAgIH1cbiAgICBpZiAoZ3N0cmVhbWVyUGlwZWxpbmUuaXNSdW5uaW5nKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBnc3RyZWFtZXJQaXBlbGluZS5zdG9wKCdTSUdJTlQnKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhpcy5sb2cud2FybihlKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCBnc3RyZWFtZXJQaXBlbGluZS5zdG9wKCdTSUdLSUxMJyk7XG4gICAgICAgIH0gY2F0Y2ggKGUxKSB7XG4gICAgICAgICAgdGhpcy5sb2cuZXJyb3IoZTEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMubG9nLmluZm8oYFN1Y2Nlc3NmdWxseSB0ZXJtaW5hdGVkIHRoZSBzY3JlZW4gc3RyZWFtaW5nIE1KUEVHIHNlcnZlcmApO1xuICB9IGZpbmFsbHkge1xuICAgIHRoaXMuX3NjcmVlblN0cmVhbWluZ1Byb3BzID0gbnVsbDtcbiAgfVxufTtcblxuXG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJmaWxlIjoibGliL2NvbW1hbmRzL3N0cmVhbXNjcmVlbi5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
|
|
423
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL3N0cmVhbXNjcmVlbi5qcyIsIm5hbWVzIjpbImNvbW1hbmRzIiwiUkVDT1JESU5HX0lOVEVSVkFMX1NFQyIsIlNUUkVBTUlOR19TVEFSVFVQX1RJTUVPVVRfTVMiLCJHU1RSRUFNRVJfQklOQVJZIiwic3lzdGVtIiwiaXNXaW5kb3dzIiwiR1NUX0lOU1BFQ1RfQklOQVJZIiwiUkVRVUlSRURfR1NUX1BMVUdJTlMiLCJhdmRlY19oMjY0IiwiaDI2NHBhcnNlIiwianBlZ2VuYyIsInRjcHNlcnZlcnNpbmsiLCJtdWx0aXBhcnRtdXgiLCJTQ1JFRU5SRUNPUkRfQklOQVJZIiwiR1NUX1RVVE9SSUFMX1VSTCIsIkRFRkFVTFRfSE9TVCIsIlRDUF9IT1NUIiwiREVGQVVMVF9QT1JUIiwiREVGQVVMVF9RVUFMSVRZIiwiREVGQVVMVF9CSVRSQVRFIiwiQk9VTkRBUllfU1RSSU5HIiwiQURCX1NDUkVFTl9TVFJFQU1JTkdfRkVBVFVSRSIsImNyZWF0ZVN0cmVhbWluZ0xvZ2dlciIsInN0cmVhbU5hbWUiLCJ1ZGlkIiwibG9nZ2VyIiwiZ2V0TG9nZ2VyIiwiXyIsInRydW5jYXRlIiwibGVuZ3RoIiwib21pc3Npb24iLCJ2ZXJpZnlTdHJlYW1pbmdSZXF1aXJlbWVudHMiLCJhZGIiLCJ0cmltIiwic2hlbGwiLCJFcnJvciIsImdzdHJlYW1lckNoZWNrUHJvbWlzZXMiLCJiaW5hcnlOYW1lIiwicHVzaCIsImZzIiwid2hpY2giLCJlIiwiQiIsImFsbCIsIm1vZHVsZUNoZWNrUHJvbWlzZXMiLCJuYW1lIiwibW9kTmFtZSIsInRvUGFpcnMiLCJzdGRvdXQiLCJpbmNsdWRlcyIsImdldERldmljZUluZm8iLCJsb2ciLCJvdXRwdXQiLCJyZXN1bHQiLCJrZXkiLCJwYXR0ZXJuIiwibWF0Y2giLCJleGVjIiwiZGVidWciLCJwYXJzZUludCIsImN1ckRldmljZUlkIiwiaW5pdERldmljZVN0cmVhbWluZ1Byb2MiLCJkZXZpY2VJbmZvIiwib3B0cyIsIndpZHRoIiwiaGVpZ2h0IiwiYml0UmF0ZSIsImFkanVzdGVkV2lkdGgiLCJhZGp1c3RlZEhlaWdodCIsImFkanVzdGVkQml0cmF0ZSIsInNjcmVlblJlY29yZENtZCIsImFkYkFyZ3MiLCJleGVjdXRhYmxlIiwiZGVmYXVsdEFyZ3MiLCJkZXZpY2VTdHJlYW1pbmciLCJwYXRoIiwib24iLCJjb2RlIiwic2lnbmFsIiwiaXNTdGFydGVkIiwiZGV2aWNlU3RyZWFtaW5nTG9nZ2VyIiwiZXJyb3JzTGlzdGVuZXIiLCJjaHVuayIsInN0ZGVyciIsInRvU3RyaW5nIiwic3RhcnR1cExpc3RlbmVyIiwiaXNFbXB0eSIsImluZm8iLCJ1dGlsIiwicXVvdGUiLCJ3YWl0TXMiLCJpbnRlcnZhbE1zIiwiZXJyb3JBbmRUaHJvdyIsIm1lc3NhZ2UiLCJyZW1vdmVMaXN0ZW5lciIsImluaXRHc3RyZWFtZXJQaXBlbGluZSIsImRldmljZVN0cmVhbWluZ1Byb2MiLCJxdWFsaXR5IiwidGNwUG9ydCIsImNvbnNpZGVyUm90YXRpb24iLCJsb2dQaXBlbGluZURldGFpbHMiLCJnc3RyZWFtZXJQaXBlbGluZSIsIlN1YlByb2Nlc3MiLCJNYXRoIiwibWF4IiwiZnBzIiwic3RkaW8iLCJnc3RyZWFtZXJMb2dnZXIiLCJnc3RPdXRwdXRMaXN0ZW5lciIsImRpZEZhaWwiLCJyZXAiLCJzdGFydCIsImlnbiIsImV4dHJhY3RSZW1vdGVBZGRyZXNzIiwicmVxIiwiaGVhZGVycyIsInNvY2tldCIsInJlbW90ZUFkZHJlc3MiLCJjb25uZWN0aW9uIiwibW9iaWxlU3RhcnRTY3JlZW5TdHJlYW1pbmciLCJvcHRpb25zIiwiZW5zdXJlRmVhdHVyZUVuYWJsZWQiLCJob3N0IiwicG9ydCIsInBhdGhuYW1lIiwiaXNVbmRlZmluZWQiLCJfc2NyZWVuU3RyZWFtaW5nUHJvcHMiLCJraWxsIiwibWpwZWdTb2NrZXQiLCJtanBlZ1NlcnZlciIsInJlc29sdmUiLCJyZWplY3QiLCJuZXQiLCJjcmVhdGVDb25uZWN0aW9uIiwiaHR0cCIsImNyZWF0ZVNlcnZlciIsInJlcyIsImN1cnJlbnRQYXRobmFtZSIsInVybCIsInBhcnNlIiwid3JpdGVIZWFkIiwiQ29ubmVjdGlvbiIsIndyaXRlIiwiZW5kIiwiUHJhZ21hIiwicGlwZSIsIndhcm4iLCJsaXN0ZW4iLCJlcnJvciIsInRpbWVvdXQiLCJpc1J1bm5pbmciLCJzdG9wIiwiZGVzdHJveSIsImxpc3RlbmluZyIsImNsb3NlIiwibW9iaWxlU3RvcFNjcmVlblN0cmVhbWluZyIsImUxIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL2NvbW1hbmRzL3N0cmVhbXNjcmVlbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZnMsIHN5c3RlbSwgbG9nZ2VyLCB1dGlsIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7IGV4ZWMsIFN1YlByb2Nlc3MgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IHsgY2hlY2tQb3J0U3RhdHVzIH0gZnJvbSAncG9ydHNjYW5uZXInO1xuaW1wb3J0IGh0dHAgZnJvbSAnaHR0cCc7XG5pbXBvcnQgbmV0IGZyb20gJ25ldCc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQgeyB3YWl0Rm9yQ29uZGl0aW9uIH0gZnJvbSAnYXN5bmNib3gnO1xuaW1wb3J0IHsgc3Bhd24gfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCB1cmwgZnJvbSAndXJsJztcblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuY29uc3QgUkVDT1JESU5HX0lOVEVSVkFMX1NFQyA9IDU7XG5jb25zdCBTVFJFQU1JTkdfU1RBUlRVUF9USU1FT1VUX01TID0gNTAwMDtcbmNvbnN0IEdTVFJFQU1FUl9CSU5BUlkgPSBgZ3N0LWxhdW5jaC0xLjAke3N5c3RlbS5pc1dpbmRvd3MoKSA/ICcuZXhlJyA6ICcnfWA7XG5jb25zdCBHU1RfSU5TUEVDVF9CSU5BUlkgPSBgZ3N0LWluc3BlY3QtMS4wJHtzeXN0ZW0uaXNXaW5kb3dzKCkgPyAnLmV4ZScgOiAnJ31gO1xuY29uc3QgUkVRVUlSRURfR1NUX1BMVUdJTlMgPSB7XG4gIGF2ZGVjX2gyNjQ6ICdnc3QtbGliYXYnLFxuICBoMjY0cGFyc2U6ICdnc3QtcGx1Z2lucy1iYWQnLFxuICBqcGVnZW5jOiAnZ3N0LXBsdWdpbnMtZ29vZCcsXG4gIHRjcHNlcnZlcnNpbms6ICdnc3QtcGx1Z2lucy1iYXNlJyxcbiAgbXVsdGlwYXJ0bXV4OiAnZ3N0LXBsdWdpbnMtZ29vZCcsXG59O1xuY29uc3QgU0NSRUVOUkVDT1JEX0JJTkFSWSA9ICdzY3JlZW5yZWNvcmQnO1xuY29uc3QgR1NUX1RVVE9SSUFMX1VSTCA9ICdodHRwczovL2dzdHJlYW1lci5mcmVlZGVza3RvcC5vcmcvZG9jdW1lbnRhdGlvbi9pbnN0YWxsaW5nL2luZGV4Lmh0bWwnO1xuY29uc3QgREVGQVVMVF9IT1NUID0gJzEyNy4wLjAuMSc7XG5jb25zdCBUQ1BfSE9TVCA9ICcxMjcuMC4wLjEnO1xuY29uc3QgREVGQVVMVF9QT1JUID0gODA5MztcbmNvbnN0IERFRkFVTFRfUVVBTElUWSA9IDcwO1xuY29uc3QgREVGQVVMVF9CSVRSQVRFID0gNDAwMDAwMDsgLy8gNCBNYnBzXG5jb25zdCBCT1VOREFSWV9TVFJJTkcgPSAnLS0yYWU5NzQ2ODg3ZjE3MGI4Y2Y3YzI3MTA0N2NlMzE0Yyc7XG5cbmNvbnN0IEFEQl9TQ1JFRU5fU1RSRUFNSU5HX0ZFQVRVUkUgPSAnYWRiX3NjcmVlbl9zdHJlYW1pbmcnO1xuXG5mdW5jdGlvbiBjcmVhdGVTdHJlYW1pbmdMb2dnZXIgKHN0cmVhbU5hbWUsIHVkaWQpIHtcbiAgcmV0dXJuIGxvZ2dlci5nZXRMb2dnZXIoYCR7c3RyZWFtTmFtZX1AYCArIF8udHJ1bmNhdGUodWRpZCwge1xuICAgIGxlbmd0aDogOCxcbiAgICBvbWlzc2lvbjogJycsXG4gIH0pKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdmVyaWZ5U3RyZWFtaW5nUmVxdWlyZW1lbnRzIChhZGIpIHtcbiAgaWYgKCFfLnRyaW0oYXdhaXQgYWRiLnNoZWxsKFsnd2hpY2gnLCBTQ1JFRU5SRUNPUkRfQklOQVJZXSkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFRoZSByZXF1aXJlZCAnJHtTQ1JFRU5SRUNPUkRfQklOQVJZfScgYmluYXJ5IGlzIG5vdCBhdmFpbGFibGUgb24gdGhlIGRldmljZSB1bmRlciB0ZXN0YCk7XG4gIH1cblxuICBjb25zdCBnc3RyZWFtZXJDaGVja1Byb21pc2VzID0gW107XG4gIGZvciAoY29uc3QgYmluYXJ5TmFtZSBvZiBbR1NUUkVBTUVSX0JJTkFSWSwgR1NUX0lOU1BFQ1RfQklOQVJZXSkge1xuICAgIGdzdHJlYW1lckNoZWNrUHJvbWlzZXMucHVzaCgoYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZnMud2hpY2goYmluYXJ5TmFtZSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlICcke2JpbmFyeU5hbWV9JyBiaW5hcnkgaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgUEFUSCBvbiB0aGUgaG9zdCBzeXN0ZW0uIGAgK1xuICAgICAgICAgIGBTZWUgJHtHU1RfVFVUT1JJQUxfVVJMfSBmb3IgbW9yZSBkZXRhaWxzIG9uIGhvdyB0byBpbnN0YWxsIGl0LmApO1xuICAgICAgfVxuICAgIH0pKCkpO1xuICB9XG4gIGF3YWl0IEIuYWxsKGdzdHJlYW1lckNoZWNrUHJvbWlzZXMpO1xuXG4gIGNvbnN0IG1vZHVsZUNoZWNrUHJvbWlzZXMgPSBbXTtcbiAgZm9yIChjb25zdCBbbmFtZSwgbW9kTmFtZV0gb2YgXy50b1BhaXJzKFJFUVVJUkVEX0dTVF9QTFVHSU5TKSkge1xuICAgIG1vZHVsZUNoZWNrUHJvbWlzZXMucHVzaCgoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCBleGVjKEdTVF9JTlNQRUNUX0JJTkFSWSwgW25hbWVdKTtcbiAgICAgIGlmICghXy5pbmNsdWRlcyhzdGRvdXQsIG1vZE5hbWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgVGhlIHJlcXVpcmVkIEdTdHJlYW1lciBwbHVnaW4gJyR7bmFtZX0nIGZyb20gJyR7bW9kTmFtZX0nIG1vZHVsZSBpcyBub3QgaW5zdGFsbGVkLiBgICtcbiAgICAgICAgICBgU2VlICR7R1NUX1RVVE9SSUFMX1VSTH0gZm9yIG1vcmUgZGV0YWlscyBvbiBob3cgdG8gaW5zdGFsbCBpdC5gKTtcbiAgICAgIH1cbiAgICB9KSgpKTtcbiAgfVxuICBhd2FpdCBCLmFsbChtb2R1bGVDaGVja1Byb21pc2VzKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZ2V0RGV2aWNlSW5mbyAoYWRiLCBsb2cgPSBudWxsKSB7XG4gIGNvbnN0IG91dHB1dCA9IGF3YWl0IGFkYi5zaGVsbChbJ2R1bXBzeXMnLCAnZGlzcGxheSddKTtcbiAgY29uc3QgcmVzdWx0ID0ge307XG4gIGZvciAoY29uc3QgW2tleSwgcGF0dGVybl0gb2YgW1xuICAgIFsnd2lkdGgnLCAvXFxiZGV2aWNlV2lkdGg9KFxcZCspL10sXG4gICAgWydoZWlnaHQnLCAvXFxiZGV2aWNlSGVpZ2h0PShcXGQrKS9dLFxuICAgIFsnZnBzJywgL1xcYmZwcz0oXFxkKykvXSxcbiAgXSkge1xuICAgIGNvbnN0IG1hdGNoID0gcGF0dGVybi5leGVjKG91dHB1dCk7XG4gICAgaWYgKCFtYXRjaCkge1xuICAgICAgbG9nPy5kZWJ1ZyhvdXRwdXQpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcGFyc2UgdGhlIGRldmljZSAke2tleX0gZnJvbSB0aGUgYWRiIGNvbW1hbmQgb3V0cHV0LiBgICtcbiAgICAgICAgYENoZWNrIHRoZSBzZXJ2ZXIgbG9nIGZvciBtb3JlIGRldGFpbHMuYCk7XG4gICAgfVxuICAgIHJlc3VsdFtrZXldID0gcGFyc2VJbnQobWF0Y2hbMV0sIDEwKTtcbiAgfVxuICByZXN1bHQudWRpZCA9IGFkYi5jdXJEZXZpY2VJZDtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5pdERldmljZVN0cmVhbWluZ1Byb2MgKGFkYiwgbG9nLCBkZXZpY2VJbmZvLCBvcHRzID0ge30pIHtcbiAgY29uc3Qge1xuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICBiaXRSYXRlLFxuICB9ID0gb3B0cztcbiAgY29uc3QgYWRqdXN0ZWRXaWR0aCA9IHBhcnNlSW50KHdpZHRoLCAxMCkgfHwgZGV2aWNlSW5mby53aWR0aDtcbiAgY29uc3QgYWRqdXN0ZWRIZWlnaHQgPSBwYXJzZUludChoZWlnaHQsIDEwKSB8fCBkZXZpY2VJbmZvLmhlaWdodDtcbiAgY29uc3QgYWRqdXN0ZWRCaXRyYXRlID0gcGFyc2VJbnQoYml0UmF0ZSwgMTApIHx8IERFRkFVTFRfQklUUkFURTtcbiAgbGV0IHNjcmVlblJlY29yZENtZCA9IFNDUkVFTlJFQ09SRF9CSU5BUlkgK1xuICAgIGAgLS1vdXRwdXQtZm9ybWF0PWgyNjRgICtcbiAgICAvLyA1IHNlY29uZHMgaXMgZmluZSB0byBkZXRlY3Qgcm90YXRpb24gY2hhbmdlc1xuICAgIGAgLS10aW1lLWxpbWl0PSR7UkVDT1JESU5HX0lOVEVSVkFMX1NFQ31gO1xuICBpZiAod2lkdGggfHwgaGVpZ2h0KSB7XG4gICAgc2NyZWVuUmVjb3JkQ21kICs9IGAgLS1zaXplPSR7YWRqdXN0ZWRXaWR0aH14JHthZGp1c3RlZEhlaWdodH1gO1xuICB9XG4gIGlmIChiaXRSYXRlKSB7XG4gICAgc2NyZWVuUmVjb3JkQ21kICs9IGAgLS1iaXQtcmF0ZT0ke2FkanVzdGVkQml0cmF0ZX1gO1xuICB9XG4gIGNvbnN0IGFkYkFyZ3MgPSBbXG4gICAgLi4uYWRiLmV4ZWN1dGFibGUuZGVmYXVsdEFyZ3MsXG4gICAgJ2V4ZWMtb3V0JyxcbiAgICAvLyBUaGUgbG9vcCBpcyByZXF1aXJlZCwgYmVjYXVzZSBieSBkZWZhdWx0IHRoZSBtYXhpbXVtIHJlY29yZCBkdXJhdGlvblxuICAgIC8vIGZvciBzY3JlZW5yZWNvcmQgaXMgYWx3YXlzIGxpbWl0ZWRcbiAgICBgd2hpbGUgdHJ1ZTsgZG8gJHtzY3JlZW5SZWNvcmRDbWR9IC07IGRvbmVgLFxuICBdO1xuICBjb25zdCBkZXZpY2VTdHJlYW1pbmcgPSBzcGF3bihhZGIuZXhlY3V0YWJsZS5wYXRoLCBhZGJBcmdzKTtcbiAgZGV2aWNlU3RyZWFtaW5nLm9uKCdleGl0JywgKGNvZGUsIHNpZ25hbCkgPT4ge1xuICAgIGxvZy5kZWJ1ZyhgRGV2aWNlIHN0cmVhbWluZyBwcm9jZXNzIGV4aXRlZCB3aXRoIGNvZGUgJHtjb2RlfSwgc2lnbmFsICR7c2lnbmFsfWApO1xuICB9KTtcblxuICBsZXQgaXNTdGFydGVkID0gZmFsc2U7XG4gIGNvbnN0IGRldmljZVN0cmVhbWluZ0xvZ2dlciA9IGNyZWF0ZVN0cmVhbWluZ0xvZ2dlcihTQ1JFRU5SRUNPUkRfQklOQVJZLCBkZXZpY2VJbmZvLnVkaWQpO1xuICBjb25zdCBlcnJvcnNMaXN0ZW5lciA9IChjaHVuaykgPT4ge1xuICAgIGNvbnN0IHN0ZGVyciA9IGNodW5rLnRvU3RyaW5nKCk7XG4gICAgaWYgKF8udHJpbShzdGRlcnIpKSB7XG4gICAgICBkZXZpY2VTdHJlYW1pbmdMb2dnZXIuZGVidWcoc3RkZXJyKTtcbiAgICB9XG4gIH07XG4gIGRldmljZVN0cmVhbWluZy5zdGRlcnIub24oJ2RhdGEnLCBlcnJvcnNMaXN0ZW5lcik7XG5cbiAgY29uc3Qgc3RhcnR1cExpc3RlbmVyID0gKGNodW5rKSA9PiB7XG4gICAgaWYgKCFpc1N0YXJ0ZWQpIHtcbiAgICAgIGlzU3RhcnRlZCA9ICFfLmlzRW1wdHkoY2h1bmspO1xuICAgIH1cbiAgfTtcbiAgZGV2aWNlU3RyZWFtaW5nLnN0ZG91dC5vbignZGF0YScsIHN0YXJ0dXBMaXN0ZW5lcik7XG5cbiAgdHJ5IHtcbiAgICBsb2cuaW5mbyhgU3RhcnRpbmcgZGV2aWNlIHN0cmVhbWluZzogJHt1dGlsLnF1b3RlKFthZGIuZXhlY3V0YWJsZS5wYXRoLCAuLi5hZGJBcmdzXSl9YCk7XG4gICAgYXdhaXQgd2FpdEZvckNvbmRpdGlvbigoKSA9PiBpc1N0YXJ0ZWQsIHtcbiAgICAgIHdhaXRNczogU1RSRUFNSU5HX1NUQVJUVVBfVElNRU9VVF9NUyxcbiAgICAgIGludGVydmFsTXM6IDMwMCxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZy5lcnJvckFuZFRocm93KFxuICAgICAgYENhbm5vdCBzdGFydCB0aGUgc2NyZWVuIHN0cmVhbWluZyBwcm9jZXNzLiBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gIH0gZmluYWxseSB7XG4gICAgZGV2aWNlU3RyZWFtaW5nLnN0ZGVyci5yZW1vdmVMaXN0ZW5lcignZGF0YScsIGVycm9yc0xpc3RlbmVyKTtcbiAgICBkZXZpY2VTdHJlYW1pbmcuc3Rkb3V0LnJlbW92ZUxpc3RlbmVyKCdkYXRhJywgc3RhcnR1cExpc3RlbmVyKTtcbiAgfVxuICByZXR1cm4gZGV2aWNlU3RyZWFtaW5nO1xufVxuXG5hc3luYyBmdW5jdGlvbiBpbml0R3N0cmVhbWVyUGlwZWxpbmUgKGRldmljZVN0cmVhbWluZ1Byb2MsIGRldmljZUluZm8sIGxvZywgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgcXVhbGl0eSxcbiAgICB0Y3BQb3J0LFxuICAgIGNvbnNpZGVyUm90YXRpb24sXG4gICAgbG9nUGlwZWxpbmVEZXRhaWxzLFxuICB9ID0gb3B0cztcbiAgY29uc3QgYWRqdXN0ZWRXaWR0aCA9IHBhcnNlSW50KHdpZHRoLCAxMCkgfHwgZGV2aWNlSW5mby53aWR0aDtcbiAgY29uc3QgYWRqdXN0ZWRIZWlnaHQgPSBwYXJzZUludChoZWlnaHQsIDEwKSB8fCBkZXZpY2VJbmZvLmhlaWdodDtcbiAgY29uc3QgZ3N0cmVhbWVyUGlwZWxpbmUgPSBuZXcgU3ViUHJvY2VzcyhHU1RSRUFNRVJfQklOQVJZLCBbXG4gICAgJy12JyxcbiAgICAnZmRzcmMnLCAnZmQ9MCcsXG4gICAgJyEnLCAndmlkZW8veC1oMjY0LCcgK1xuICAgICAgYHdpZHRoPSR7Y29uc2lkZXJSb3RhdGlvbiA/IE1hdGgubWF4KGFkanVzdGVkV2lkdGgsIGFkanVzdGVkSGVpZ2h0KSA6IGFkanVzdGVkV2lkdGh9LGAgK1xuICAgICAgYGhlaWdodD0ke2NvbnNpZGVyUm90YXRpb24gPyBNYXRoLm1heChhZGp1c3RlZFdpZHRoLCBhZGp1c3RlZEhlaWdodCkgOiBhZGp1c3RlZEhlaWdodH0sYCArXG4gICAgICBgZnJhbWVyYXRlPSR7ZGV2aWNlSW5mby5mcHN9LzEsYCArXG4gICAgICAnYnl0ZS1zdHJlYW09dHJ1ZScsXG4gICAgJyEnLCAnaDI2NHBhcnNlJyxcbiAgICAnIScsICdxdWV1ZScsICdsZWFreT1kb3duc3RyZWFtJyxcbiAgICAnIScsICdhdmRlY19oMjY0JyxcbiAgICAnIScsICdxdWV1ZScsICdsZWFreT1kb3duc3RyZWFtJyxcbiAgICAnIScsICdqcGVnZW5jJywgYHF1YWxpdHk9JHtxdWFsaXR5fWAsXG4gICAgJyEnLCAnbXVsdGlwYXJ0bXV4JywgYGJvdW5kYXJ5PSR7Qk9VTkRBUllfU1RSSU5HfWAsXG4gICAgJyEnLCAndGNwc2VydmVyc2luaycsIGBob3N0PSR7VENQX0hPU1R9YCwgYHBvcnQ9JHt0Y3BQb3J0fWAsXG4gIF0sIHtcbiAgICBzdGRpbzogW2RldmljZVN0cmVhbWluZ1Byb2Muc3Rkb3V0LCAncGlwZScsICdwaXBlJ11cbiAgfSk7XG4gIGdzdHJlYW1lclBpcGVsaW5lLm9uKCdleGl0JywgKGNvZGUsIHNpZ25hbCkgPT4ge1xuICAgIGxvZy5kZWJ1ZyhgUGlwZWxpbmUgc3RyZWFtaW5nIHByb2Nlc3MgZXhpdGVkIHdpdGggY29kZSAke2NvZGV9LCBzaWduYWwgJHtzaWduYWx9YCk7XG4gIH0pO1xuICBjb25zdCBnc3RyZWFtZXJMb2dnZXIgPSBjcmVhdGVTdHJlYW1pbmdMb2dnZXIoJ2dzdCcsIGRldmljZUluZm8udWRpZCk7XG4gIGNvbnN0IGdzdE91dHB1dExpc3RlbmVyID0gKHN0ZG91dCwgc3RkZXJyKSA9PiB7XG4gICAgaWYgKF8udHJpbShzdGRlcnIgfHwgc3Rkb3V0KSkge1xuICAgICAgZ3N0cmVhbWVyTG9nZ2VyLmRlYnVnKHN0ZGVyciB8fCBzdGRvdXQpO1xuICAgIH1cbiAgfTtcbiAgZ3N0cmVhbWVyUGlwZWxpbmUub24oJ291dHB1dCcsIGdzdE91dHB1dExpc3RlbmVyKTtcbiAgbGV0IGRpZEZhaWwgPSBmYWxzZTtcbiAgdHJ5IHtcbiAgICBsb2cuaW5mbyhgU3RhcnRpbmcgR1N0cmVhbWVyIHBpcGVsaW5lOiAke2dzdHJlYW1lclBpcGVsaW5lLnJlcH1gKTtcbiAgICBhd2FpdCBnc3RyZWFtZXJQaXBlbGluZS5zdGFydCgwKTtcbiAgICBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKGFzeW5jICgpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgY2hlY2tQb3J0U3RhdHVzKHRjcFBvcnQsIFRDUF9IT1NUKSkgPT09ICdvcGVuJztcbiAgICAgIH0gY2F0Y2ggKGlnbikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSwge1xuICAgICAgd2FpdE1zOiBTVFJFQU1JTkdfU1RBUlRVUF9USU1FT1VUX01TLFxuICAgICAgaW50ZXJ2YWxNczogMzAwLFxuICAgIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgZGlkRmFpbCA9IHRydWU7XG4gICAgbG9nLmVycm9yQW5kVGhyb3coXG4gICAgICBgQ2Fubm90IHN0YXJ0IHRoZSBzY3JlZW4gc3RyZWFtaW5nIHBpcGVsaW5lLiBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gIH0gZmluYWxseSB7XG4gICAgaWYgKCFsb2dQaXBlbGluZURldGFpbHMgfHwgZGlkRmFpbCkge1xuICAgICAgZ3N0cmVhbWVyUGlwZWxpbmUucmVtb3ZlTGlzdGVuZXIoJ291dHB1dCcsIGdzdE91dHB1dExpc3RlbmVyKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGdzdHJlYW1lclBpcGVsaW5lO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0UmVtb3RlQWRkcmVzcyAocmVxKSB7XG4gIHJldHVybiByZXEuaGVhZGVyc1sneC1mb3J3YXJkZWQtZm9yJ11cbiAgICB8fCByZXEuc29ja2V0LnJlbW90ZUFkZHJlc3NcbiAgICB8fCByZXEuY29ubmVjdGlvbi5yZW1vdGVBZGRyZXNzXG4gICAgfHwgcmVxLmNvbm5lY3Rpb24uc29ja2V0LnJlbW90ZUFkZHJlc3M7XG59XG5cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBTdGFydFNjcmVlblN0cmVhbWluZ09wdGlvbnNcbiAqXG4gKiBAcHJvcGVydHkgez9udW1iZXJ9IHdpZHRoIC0gVGhlIHNjYWxlZCB3aWR0aCBvZiB0aGUgZGV2aWNlJ3Mgc2NyZWVuLiBJZiB1bnNldCB0aGVuIHRoZSBzY3JpcHQgd2lsbCBhc3NpZ24gaXRcbiAqIHRvIHRoZSBhY3R1YWwgc2NyZWVuIHdpZHRoIG1lYXN1cmVkIGluIHBpeGVscy5cbiAqIEBwcm9wZXJ0eSB7P251bWJlcn0gaGVpZ2h0IC0gVGhlIHNjYWxlZCBoZWlnaHQgb2YgdGhlIGRldmljZSdzIHNjcmVlbi4gSWYgdW5zZXQgdGhlbiB0aGUgc2NyaXB0IHdpbGwgYXNzaWduIGl0XG4gKiB0byB0aGUgYWN0dWFsIHNjcmVlbiBoZWlnaHQgbWVhc3VyZWQgaW4gcGl4ZWxzLlxuICogQHByb3BlcnR5IHs/bnVtYmVyfSBiaXRSYXRlIC0gVGhlIHZpZGVvIGJpdCByYXRlIGZvciB0aGUgdmlkZW8sIGluIGJpdHMgcGVyIHNlY29uZC5cbiAqIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDQwMDAwMDAgKDQgTWIvcykuIFlvdSBjYW4gaW5jcmVhc2UgdGhlIGJpdCByYXRlIHRvIGltcHJvdmUgdmlkZW8gcXVhbGl0eSxcbiAqIGJ1dCBkb2luZyBzbyByZXN1bHRzIGluIGxhcmdlciBtb3ZpZSBmaWxlcy5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gaG9zdCBbMTI3LjAuMC4xXSAtIFRoZSBJUCBhZGRyZXNzL2hvc3QgbmFtZSB0byBzdGFydCB0aGUgTUpQRUcgc2VydmVyIG9uLlxuICogWW91IGNhbiBzZXQgaXQgdG8gYDAuMC4wLjBgIHRvIHRyaWdnZXIgdGhlIGJyb2FkY2FzdCBvbiBhbGwgYXZhaWxhYmxlIG5ldHdvcmsgaW50ZXJmYWNlcy5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gcGF0aG5hbWUgLSBUaGUgSFRUUCByZXF1ZXN0IHBhdGggdGhlIE1KUEVHIHNlcnZlciBzaG91bGQgYmUgYXZhaWxhYmxlIG9uLlxuICogSWYgdW5zZXQgdGhlbiBhbnkgcGF0aG5hbWUgb24gdGhlIGdpdmVuIGBob3N0YC9gcG9ydGAgY29tYmluYXRpb24gd2lsbCB3b3JrLiBOb3RlIHRoYXQgdGhlIHZhbHVlXG4gKiBzaG91bGQgYWx3YXlzIHN0YXJ0IHdpdGggYSBzaW5nbGUgc2xhc2g6IGAvYFxuICogQHByb3BlcnR5IHs/bnVtYmVyfSB0Y3BQb3J0IFs4MDk0XSAtIFRoZSBwb3J0IG51bWJlciB0byBzdGFydCB0aGUgaW50ZXJuYWwgVENQIE1KUEVHIGJyb2FkY2FzdCBvbi5cbiAqIFRoaXMgdHlwZSBvZiBicm9hZGNhc3QgYWx3YXlzIHN0YXJ0cyBvbiB0aGUgbG9vcGJhY2sgaW50ZXJmYWNlIChgMTI3LjAuMC4xYCkuXG4gKiBAcHJvcGVydHkgez9udW1iZXJ9IHBvcnQgWzgwOTNdIC0gVGhlIHBvcnQgbnVtYmVyIHRvIHN0YXJ0IHRoZSBNSlBFRyBzZXJ2ZXIgb24uXG4gKiBAcHJvcGVydHkgez9udW1iZXJ9IHF1YWxpdHkgWzcwXSAtIFRoZSBxdWFsaXR5IHZhbHVlIGZvciB0aGUgc3RyZWFtZWQgSlBFRyBpbWFnZXMuXG4gKiBUaGlzIG51bWJlciBzaG91bGQgYmUgaW4gcmFuZ2UgWzEsIDEwMF0sIHdoZXJlIDEwMCBpcyB0aGUgYmVzdCBxdWFsaXR5LlxuICogQHByb3BlcnR5IHs/Ym9vbGVhbn0gY29uc2lkZXJSb3RhdGlvbiBbZmFsc2VdIC0gSWYgc2V0IHRvIGB0cnVlYCB0aGVuIEdTdHJlYW1lciBwaXBlbGluZSB3aWxsXG4gKiBpbmNyZWFzZSB0aGUgZGltZW5zaW9ucyBvZiB0aGUgcmVzdWx0aW5nIGltYWdlcyB0byBwcm9wZXJseSBmaXQgaW1hZ2VzIGluIGJvdGggbGFuZHNjYXBlIGFuZFxuICogcG9ydHJhaXQgb3JpZW50YXRpb25zLiBTZXQgaXQgdG8gYHRydWVgIGlmIHRoZSBkZXZpY2Ugcm90YXRpb24gaXMgbm90IGdvaW5nIHRvIGJlIHRoZSBzYW1lIGR1cmluZyB0aGVcbiAqIGJyb2FkY2FzdGluZyBzZXNzaW9uLlxuICogQHByb3BlcnR5IHs/Ym9vbGVhbn0gbG9nUGlwZWxpbmVEZXRhaWxzIFtmYWxzZV0gLSBXaGV0aGVyIHRvIGxvZyBHU3RyZWFtZXIgcGlwZWxpbmUgZXZlbnRzIGludG9cbiAqIHRoZSBzdGFuZGFyZCBsb2cgb3V0cHV0LiBNaWdodCBiZSB1c2VmdWwgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy5cbiAqL1xuXG4vKipcbiAqIFN0YXJ0cyBkZXZpY2Ugc2NyZWVuIGJyb2FkY2FzdCBieSBjcmVhdGluZyBNSlBFRyBzZXJ2ZXIuXG4gKiBNdWx0aXBsZSBjYWxscyB0byB0aGlzIG1ldGhvZCBoYXZlIG5vIGVmZmVjdCB1bmxlc3MgdGhlIHByZXZpb3VzIHN0cmVhbWluZ1xuICogc2Vzc2lvbiBpcyBzdG9wcGVkLlxuICogVGhpcyBtZXRob2Qgb25seSB3b3JrcyBpZiB0aGUgYGFkYl9zY3JlZW5fc3RyZWFtaW5nYCBmZWF0dXJlIGlzXG4gKiBlbmFibGVkIG9uIHRoZSBzZXJ2ZXIgc2lkZS5cbiAqXG4gKiBAcGFyYW0gez9TdGFydFNjcmVlblN0cmVhbWluZ09wdGlvbnN9IG9wdGlvbnMgLSBUaGUgYXZhaWxhYmxlIG9wdGlvbnMuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgc2NyZWVuIHN0cmVhbWluZyBoYXMgZmFpbGVkIHRvIHN0YXJ0IG9yXG4gKiBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoZSBob3N0IHN5c3RlbSBvclxuICogdGhlIGNvcnJlc3BvbmRpbmcgc2VydmVyIGZlYXR1cmUgaXMgbm90IGVuYWJsZWQuXG4gKi9cbmNvbW1hbmRzLm1vYmlsZVN0YXJ0U2NyZWVuU3RyZWFtaW5nID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlU3RhcnRTY3JlZW5TdHJlYW1pbmcgKG9wdGlvbnMgPSB7fSkge1xuICB0aGlzLmVuc3VyZUZlYXR1cmVFbmFibGVkKEFEQl9TQ1JFRU5fU1RSRUFNSU5HX0ZFQVRVUkUpO1xuXG4gIGNvbnN0IHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgYml0UmF0ZSxcbiAgICBob3N0ID0gREVGQVVMVF9IT1NULFxuICAgIHBvcnQgPSBERUZBVUxUX1BPUlQsXG4gICAgcGF0aG5hbWUsXG4gICAgdGNwUG9ydCA9IERFRkFVTFRfUE9SVCArIDEsXG4gICAgcXVhbGl0eSA9IERFRkFVTFRfUVVBTElUWSxcbiAgICBjb25zaWRlclJvdGF0aW9uID0gZmFsc2UsXG4gICAgbG9nUGlwZWxpbmVEZXRhaWxzID0gZmFsc2UsXG4gIH0gPSBvcHRpb25zO1xuXG4gIGlmIChfLmlzVW5kZWZpbmVkKHRoaXMuX3NjcmVlblN0cmVhbWluZ1Byb3BzKSkge1xuICAgIGF3YWl0IHZlcmlmeVN0cmVhbWluZ1JlcXVpcmVtZW50cyh0aGlzLmFkYik7XG4gIH1cbiAgaWYgKCFfLmlzRW1wdHkodGhpcy5fc2NyZWVuU3RyZWFtaW5nUHJvcHMpKSB7XG4gICAgdGhpcy5sb2cuaW5mbyhgVGhlIHNjcmVlbiBzdHJlYW1pbmcgc2Vzc2lvbiBpcyBhbHJlYWR5IHJ1bm5pbmcuIGAgK1xuICAgICAgYFN0b3AgaXQgZmlyc3QgaW4gb3JkZXIgdG8gc3RhcnQgYSBuZXcgb25lLmApO1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoKGF3YWl0IGNoZWNrUG9ydFN0YXR1cyhwb3J0LCBob3N0KSkgPT09ICdvcGVuJykge1xuICAgIHRoaXMubG9nLmluZm8oYFRoZSBwb3J0ICMke3BvcnR9IGF0ICR7aG9zdH0gaXMgYnVzeS4gYCArXG4gICAgICBgQXNzdW1pbmcgdGhlIHNjcmVlbiBzdHJlYW1pbmcgaXMgYWxyZWFkeSBydW5uaW5nYCk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmICgoYXdhaXQgY2hlY2tQb3J0U3RhdHVzKHRjcFBvcnQsIFRDUF9IT1NUKSkgPT09ICdvcGVuJykge1xuICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coYFRoZSBwb3J0ICMke3RjcFBvcnR9IGF0ICR7VENQX0hPU1R9IGlzIGJ1c3kuIGAgK1xuICAgICAgYE1ha2Ugc3VyZSB0aGVyZSBhcmUgbm8gbGVmdG92ZXJzIGZyb20gcHJldmlvdXMgc2Vzc2lvbnMuYCk7XG4gIH1cbiAgdGhpcy5fc2NyZWVuU3RyZWFtaW5nUHJvcHMgPSBudWxsO1xuXG4gIGNvbnN0IGRldmljZUluZm8gPSBhd2FpdCBnZXREZXZpY2VJbmZvKHRoaXMuYWRiLCB0aGlzLmxvZyk7XG4gIGNvbnN0IGRldmljZVN0cmVhbWluZ1Byb2MgPSBhd2FpdCBpbml0RGV2aWNlU3RyZWFtaW5nUHJvYyh0aGlzLmFkYiwgdGhpcy5sb2csIGRldmljZUluZm8sIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgYml0UmF0ZSxcbiAgfSk7XG4gIGxldCBnc3RyZWFtZXJQaXBlbGluZTtcbiAgdHJ5IHtcbiAgICBnc3RyZWFtZXJQaXBlbGluZSA9IGF3YWl0IGluaXRHc3RyZWFtZXJQaXBlbGluZShkZXZpY2VTdHJlYW1pbmdQcm9jLCBkZXZpY2VJbmZvLCB0aGlzLmxvZywge1xuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHQsXG4gICAgICBxdWFsaXR5LFxuICAgICAgdGNwUG9ydCxcbiAgICAgIGNvbnNpZGVyUm90YXRpb24sXG4gICAgICBsb2dQaXBlbGluZURldGFpbHMsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoZGV2aWNlU3RyZWFtaW5nUHJvYy5raWxsKDApKSB7XG4gICAgICBkZXZpY2VTdHJlYW1pbmdQcm9jLmtpbGwoKTtcbiAgICB9XG4gICAgdGhyb3cgZTtcbiAgfVxuXG4gIGxldCBtanBlZ1NvY2tldDtcbiAgbGV0IG1qcGVnU2VydmVyO1xuICB0cnkge1xuICAgIGF3YWl0IG5ldyBCKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIG1qcGVnU29ja2V0ID0gbmV0LmNyZWF0ZUNvbm5lY3Rpb24odGNwUG9ydCwgVENQX0hPU1QsICgpID0+IHtcbiAgICAgICAgdGhpcy5sb2cuaW5mbyhgU3VjY2Vzc2Z1bGx5IGNvbm5lY3RlZCB0byBNSlBFRyBzdHJlYW0gYXQgdGNwOi8vJHtUQ1BfSE9TVH06JHt0Y3BQb3J0fWApO1xuICAgICAgICBtanBlZ1NlcnZlciA9IGh0dHAuY3JlYXRlU2VydmVyKChyZXEsIHJlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlbW90ZUFkZHJlc3MgPSBleHRyYWN0UmVtb3RlQWRkcmVzcyhyZXEpO1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRQYXRobmFtZSA9IHVybC5wYXJzZShyZXEudXJsKS5wYXRobmFtZTtcbiAgICAgICAgICB0aGlzLmxvZy5pbmZvKGBHb3QgYW4gaW5jb21pbmcgc2NyZWVuIGJyYWRjYXN0aW5nIHJlcXVlc3QgZnJvbSAke3JlbW90ZUFkZHJlc3N9IGAgK1xuICAgICAgICAgICAgYCgke3JlcS5oZWFkZXJzWyd1c2VyLWFnZW50J10gfHwgJ1VzZXIgQWdlbnQgdW5rbm93bid9KSBhdCAke2N1cnJlbnRQYXRobmFtZX1gKTtcblxuICAgICAgICAgIGlmIChwYXRobmFtZSAmJiBjdXJyZW50UGF0aG5hbWUgIT09IHBhdGhuYW1lKSB7XG4gICAgICAgICAgICB0aGlzLmxvZy5pbmZvKCdSZWplY3RpbmcgdGhlIGJyb2FkY2FzdCByZXF1ZXN0IHNpbmNlIGl0IGRvZXMgbm90IG1hdGNoIHRoZSBnaXZlbiBwYXRobmFtZScpO1xuICAgICAgICAgICAgcmVzLndyaXRlSGVhZCg0MDQsIHtcbiAgICAgICAgICAgICAgQ29ubmVjdGlvbjogJ2Nsb3NlJyxcbiAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICd0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04JyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVzLndyaXRlKGAnJHtjdXJyZW50UGF0aG5hbWV9JyBkaWQgbm90IG1hdGNoIGFueSBrbm93biBlbmRwb2ludHNgKTtcbiAgICAgICAgICAgIHJlcy5lbmQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmxvZy5pbmZvKCdTdGFydGluZyBNSlBFRyBicm9hZGNhc3QnKTtcbiAgICAgICAgICByZXMud3JpdGVIZWFkKDIwMCwge1xuICAgICAgICAgICAgJ0NhY2hlLUNvbnRyb2wnOiAnbm8tc3RvcmUsIG5vLWNhY2hlLCBtdXN0LXJldmFsaWRhdGUsIHByZS1jaGVjaz0wLCBwb3N0LWNoZWNrPTAsIG1heC1hZ2U9MCcsXG4gICAgICAgICAgICBQcmFnbWE6ICduby1jYWNoZScsXG4gICAgICAgICAgICBDb25uZWN0aW9uOiAnY2xvc2UnLFxuICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6IGBtdWx0aXBhcnQveC1taXhlZC1yZXBsYWNlOyBib3VuZGFyeT0ke0JPVU5EQVJZX1NUUklOR31gXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBtanBlZ1NvY2tldC5waXBlKHJlcyk7XG4gICAgICAgIH0pO1xuICAgICAgICBtanBlZ1NlcnZlci5vbignZXJyb3InLCAoZSkgPT4ge1xuICAgICAgICAgIHRoaXMubG9nLndhcm4oZSk7XG4gICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICB9KTtcbiAgICAgICAgbWpwZWdTZXJ2ZXIub24oJ2Nsb3NlJywgKCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9nLmRlYnVnKGBNSlBFRyBzZXJ2ZXIgYXQgaHR0cDovLyR7aG9zdH06JHtwb3J0fSBoYXMgYmVlbiBjbG9zZWRgKTtcbiAgICAgICAgfSk7XG4gICAgICAgIG1qcGVnU2VydmVyLm9uKCdsaXN0ZW5pbmcnLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2cuaW5mbyhgU3VjY2Vzc2Z1bGx5IHN0YXJ0ZWQgTUpQRUcgc2VydmVyIGF0IGh0dHA6Ly8ke2hvc3R9OiR7cG9ydH1gKTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBtanBlZ1NlcnZlci5saXN0ZW4ocG9ydCwgaG9zdCk7XG4gICAgICB9KTtcbiAgICAgIG1qcGVnU29ja2V0Lm9uKCdlcnJvcicsIChlKSA9PiB7XG4gICAgICAgIHRoaXMubG9nLmVycm9yKGUpO1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICB9KTtcbiAgICB9KS50aW1lb3V0KFNUUkVBTUlOR19TVEFSVFVQX1RJTUVPVVRfTVMsXG4gICAgICBgQ2Fubm90IGNvbm5lY3QgdG8gdGhlIHN0cmVhbWluZyBzZXJ2ZXIgd2l0aGluICR7U1RSRUFNSU5HX1NUQVJUVVBfVElNRU9VVF9NU31tc2ApO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKGRldmljZVN0cmVhbWluZ1Byb2Mua2lsbCgwKSkge1xuICAgICAgZGV2aWNlU3RyZWFtaW5nUHJvYy5raWxsKCk7XG4gICAgfVxuICAgIGlmIChnc3RyZWFtZXJQaXBlbGluZS5pc1J1bm5pbmcpIHtcbiAgICAgIGF3YWl0IGdzdHJlYW1lclBpcGVsaW5lLnN0b3AoKTtcbiAgICB9XG4gICAgaWYgKG1qcGVnU29ja2V0KSB7XG4gICAgICBtanBlZ1NvY2tldC5kZXN0cm95KCk7XG4gICAgfVxuICAgIGlmIChtanBlZ1NlcnZlciAmJiBtanBlZ1NlcnZlci5saXN0ZW5pbmcpIHtcbiAgICAgIG1qcGVnU2VydmVyLmNsb3NlKCk7XG4gICAgfVxuICAgIHRocm93IGU7XG4gIH1cblxuICB0aGlzLl9zY3JlZW5TdHJlYW1pbmdQcm9wcyA9IHtcbiAgICBkZXZpY2VTdHJlYW1pbmdQcm9jLFxuICAgIGdzdHJlYW1lclBpcGVsaW5lLFxuICAgIG1qcGVnU29ja2V0LFxuICAgIG1qcGVnU2VydmVyLFxuICB9O1xufTtcblxuLyoqXG4gKiBTdG9wIHNjcmVlbiBzdHJlYW1pbmcuXG4gKiBJZiBubyBzY3JlZW4gc3RyZWFtaW5nIHNlcnZlciBoYXMgYmVlbiBzdGFydGVkIHRoZW4gbm90aGluZyBpcyBkb25lLlxuICovXG5jb21tYW5kcy5tb2JpbGVTdG9wU2NyZWVuU3RyZWFtaW5nID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlU3RvcFNjcmVlblN0cmVhbWluZyAoLyogb3B0aW9ucyA9IHt9ICovKSB7XG4gIGlmIChfLmlzRW1wdHkodGhpcy5fc2NyZWVuU3RyZWFtaW5nUHJvcHMpKSB7XG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKHRoaXMuX3NjcmVlblN0cmVhbWluZ1Byb3BzKSkge1xuICAgICAgdGhpcy5sb2cuZGVidWcoYFNjcmVlbiBzdHJlYW1pbmcgaXMgbm90IHJ1bm5pbmcuIFRoZXJlIGlzIG5vdGhpbmcgdG8gc3RvcGApO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB7XG4gICAgZGV2aWNlU3RyZWFtaW5nUHJvYyxcbiAgICBnc3RyZWFtZXJQaXBlbGluZSxcbiAgICBtanBlZ1NvY2tldCxcbiAgICBtanBlZ1NlcnZlcixcbiAgfSA9IHRoaXMuX3NjcmVlblN0cmVhbWluZ1Byb3BzO1xuXG4gIHRyeSB7XG4gICAgbWpwZWdTb2NrZXQuZW5kKCk7XG4gICAgaWYgKG1qcGVnU2VydmVyLmxpc3RlbmluZykge1xuICAgICAgbWpwZWdTZXJ2ZXIuY2xvc2UoKTtcbiAgICB9XG4gICAgaWYgKGRldmljZVN0cmVhbWluZ1Byb2Mua2lsbCgwKSkge1xuICAgICAgZGV2aWNlU3RyZWFtaW5nUHJvYy5raWxsKCdTSUdJTlQnKTtcbiAgICB9XG4gICAgaWYgKGdzdHJlYW1lclBpcGVsaW5lLmlzUnVubmluZykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZ3N0cmVhbWVyUGlwZWxpbmUuc3RvcCgnU0lHSU5UJyk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRoaXMubG9nLndhcm4oZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgZ3N0cmVhbWVyUGlwZWxpbmUuc3RvcCgnU0lHS0lMTCcpO1xuICAgICAgICB9IGNhdGNoIChlMSkge1xuICAgICAgICAgIHRoaXMubG9nLmVycm9yKGUxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmxvZy5pbmZvKGBTdWNjZXNzZnVsbHkgdGVybWluYXRlZCB0aGUgc2NyZWVuIHN0cmVhbWluZyBNSlBFRyBzZXJ2ZXJgKTtcbiAgfSBmaW5hbGx5IHtcbiAgICB0aGlzLl9zY3JlZW5TdHJlYW1pbmdQcm9wcyA9IG51bGw7XG4gIH1cbn07XG5cblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsUUFBUSxHQUFHLEVBQWpCO0FBRUEsTUFBTUMsc0JBQXNCLEdBQUcsQ0FBL0I7QUFDQSxNQUFNQyw0QkFBNEIsR0FBRyxJQUFyQztBQUNBLE1BQU1DLGdCQUFnQixHQUFJLGlCQUFnQkMsZ0JBQU9DLFNBQVAsS0FBcUIsTUFBckIsR0FBOEIsRUFBRyxFQUEzRTtBQUNBLE1BQU1DLGtCQUFrQixHQUFJLGtCQUFpQkYsZ0JBQU9DLFNBQVAsS0FBcUIsTUFBckIsR0FBOEIsRUFBRyxFQUE5RTtBQUNBLE1BQU1FLG9CQUFvQixHQUFHO0VBQzNCQyxVQUFVLEVBQUUsV0FEZTtFQUUzQkMsU0FBUyxFQUFFLGlCQUZnQjtFQUczQkMsT0FBTyxFQUFFLGtCQUhrQjtFQUkzQkMsYUFBYSxFQUFFLGtCQUpZO0VBSzNCQyxZQUFZLEVBQUU7QUFMYSxDQUE3QjtBQU9BLE1BQU1DLG1CQUFtQixHQUFHLGNBQTVCO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsdUVBQXpCO0FBQ0EsTUFBTUMsWUFBWSxHQUFHLFdBQXJCO0FBQ0EsTUFBTUMsUUFBUSxHQUFHLFdBQWpCO0FBQ0EsTUFBTUMsWUFBWSxHQUFHLElBQXJCO0FBQ0EsTUFBTUMsZUFBZSxHQUFHLEVBQXhCO0FB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
|
|
@@ -40,10 +40,8 @@ function parseWindowProperties(name, props, log = null) {
|
|
|
40
40
|
|
|
41
41
|
result.x = parseFloat(frameMatch[1]);
|
|
42
42
|
result.y = parseFloat(frameMatch[2]);
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
result.width = left - result.x;
|
|
46
|
-
result.height = top - result.y;
|
|
43
|
+
result.width = parseFloat(frameMatch[3]) - result.x;
|
|
44
|
+
result.height = parseFloat(frameMatch[4]) - result.y;
|
|
47
45
|
const visibilityMatch = SURFACE_PATTERN.exec(propLines);
|
|
48
46
|
|
|
49
47
|
if (!visibilityMatch) {
|
|
@@ -135,4 +133,4 @@ var _default = commands;
|
|
|
135
133
|
exports.default = _default;require('source-map-support').install();
|
|
136
134
|
|
|
137
135
|
|
|
138
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9zeXN0ZW0tYmFycy5qcyJdLCJuYW1lcyI6WyJXSU5ET1dfVElUTEVfUEFUVEVSTiIsIkZSQU1FX1BBVFRFUk4iLCJTVVJGQUNFX1BBVFRFUk4iLCJTVEFUVVNfQkFSX1dJTkRPV19OQU1FX1BSRUZJWCIsIk5BVklHQVRJT05fQkFSX1dJTkRPV19OQU1FX1BSRUZJWCIsIkRFRkFVTFRfV0lORE9XX1BST1BFUlRJRVMiLCJ2aXNpYmxlIiwieCIsInkiLCJ3aWR0aCIsImhlaWdodCIsImNvbW1hbmRzIiwicGFyc2VXaW5kb3dQcm9wZXJ0aWVzIiwibmFtZSIsInByb3BzIiwibG9nIiwicmVzdWx0IiwiXyIsImNsb25lRGVlcCIsInByb3BMaW5lcyIsImpvaW4iLCJmcmFtZU1hdGNoIiwiZXhlYyIsImRlYnVnIiwiRXJyb3IiLCJwYXJzZUZsb2F0IiwibGVmdCIsInRvcCIsInZpc2liaWxpdHlNYXRjaCIsInBhcnNlV2luZG93cyIsImxpbmVzIiwid2luZG93cyIsImN1cnJlbnRXaW5kb3dOYW1lIiwid2luZG93TmFtZVJvd0luZGVudCIsImxpbmUiLCJzcGxpdCIsIm1hcCIsInRyaW1FbmQiLCJjdXJyZW50SW5kZW50IiwibGVuZ3RoIiwidHJpbVN0YXJ0IiwiaXNOaWwiLCJtYXRjaCIsImlzQXJyYXkiLCJwdXNoIiwiaXNFbXB0eSIsInN0YXR1c0JhciIsIm5hdmlnYXRpb25CYXIiLCJ0b1BhaXJzIiwic3RhcnRzV2l0aCIsInVubWF0Y2hlZFdpbmRvd3MiLCJmaWx0ZXIiLCJ3aW5kb3ciLCJuYW1lUHJlZml4IiwiaW5mbyIsImtleXMiLCJnZXRTeXN0ZW1CYXJzIiwic3Rkb3V0IiwiYWRiIiwic2hlbGwiLCJlIiwibWVzc2FnZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUVBLE1BQU1BLG9CQUFvQixHQUFHLHdEQUE3QjtBQUNBLE1BQU1DLGFBQWEsR0FBRyxnRUFBdEI7QUFDQSxNQUFNQyxlQUFlLEdBQUcsbUNB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QUF0QixDQUFmLENBQWY7QUFDRCxHQUZELENBRUUsT0FBT0MsQ0FBUCxFQUFVO0FBQ1YsVUFBTSxJQUFJcEMsS0FBSixDQUFXLHdEQUF1RG9DLENBQUMsQ0FBQ0MsT0FBUSxFQUE1RSxDQUFOO0FBQ0Q7O0FBQ0QsU0FBT2hDLFlBQVksQ0FBQzRCLE1BQUQsRUFBUyxLQUFLMUMsR0FBZCxDQUFuQjtBQUNELENBUkQ7O2VBWWVKLFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5jb25zdCBXSU5ET1dfVElUTEVfUEFUVEVSTiA9IC9eXFxzK1dpbmRvd1xccyNcXGQrXFxzV2luZG93XFx7WzAtOWEtZl0rXFxzXFx3K1xccyhbXFx3LV0rKVxcfTokLztcbmNvbnN0IEZSQU1FX1BBVFRFUk4gPSAvXlxccyttRnJhbWU9XFxbKFswLTkuLV0rKSwoWzAtOS4tXSspXFxdXFxbKFswLTkuLV0rKSwoWzAtOS4tXSspXFxdL207XG5jb25zdCBTVVJGQUNFX1BBVFRFUk4gPSAvXlxccytTdXJmYWNlOlxcc3Nob3duPSh0cnVlfGZhbHNlKS9tO1xuY29uc3QgU1RBVFVTX0JBUl9XSU5ET1dfTkFNRV9QUkVGSVggPSAnU3RhdHVzQmFyJztcbmNvbnN0IE5BVklHQVRJT05fQkFSX1dJTkRPV19OQU1FX1BSRUZJWCA9ICdOYXZpZ2F0aW9uQmFyJztcbmNvbnN0IERFRkFVTFRfV0lORE9XX1BST1BFUlRJRVMgPSB7XG4gIHZpc2libGU6IGZhbHNlLFxuICB4OiAwLCB5OiAwLCB3aWR0aDogMCwgaGVpZ2h0OiAwLFxufTtcblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBXaW5kb3dQcm9wZXJ0aWVzXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHZpc2libGUgV2hldGhlciB0aGUgd2luZG93IGlzIHZpc2libGVcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB4IFdpbmRvdyB4IGNvb3JkaW5hdGVcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB5IFdpbmRvdyB5IGNvb3JkaW5hdGVcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB3aWR0aCBXaW5kb3cgd2lkdGhcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBoZWlnaHQgV2luZG93IGhlaWdodFxuICovXG5cbi8qKlxuICogUGFyc2VzIHdpbmRvdyBwcm9wZXJ0aWVzIGZyb20gYWRiIGR1bXBzeXMgb3V0cHV0XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgVGhlIG5hbWUgb2YgdGhlIHdpbmRvdyB3aG9zZSBwcm9wZXJ0aWVzIGFyZSBiZWluZyBwYXJzZWRcbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gcHJvcHMgVGhlIGxpc3Qgb2YgcGFydGljdWxhciB3aW5kb3cgcHJvcGVydHkgbGluZXMuXG4gKiBDaGVjayB0aGUgY29ycmVzcG9uZGluZyB1bml0IHRlc3RzIGZvciBtb3JlIGRldGFpbHMgb24gdGhlIGlucHV0IGZvcm1hdC5cbiAqIEBwYXJhbSB7T2JqZWN0P30gbG9nIExvZ2dlciBpbnN0YW5jZVxuICogQHJldHVybnMge1dpbmRvd1Byb3BlcnRpZXN9IFBhcnNlZCBwcm9wZXJ0aWVzIG9iamVjdFxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhbiBpc3N1ZSB3aGlsZSBwYXJzaW5nIHRoZSBwcm9wZXJ0aWVzIHN0cmluZ1xuICovXG5mdW5jdGlvbiBwYXJzZVdpbmRvd1Byb3BlcnRpZXMgKG5hbWUsIHByb3BzLCBsb2cgPSBudWxsKSB7XG4gIGNvbnN0IHJlc3VsdCA9IF8uY2xvbmVEZWVwKERFRkFVTFRfV0lORE9XX1BST1BFUlRJRVMpO1xuICBjb25zdCBwcm9wTGluZXMgPSBwcm9wcy5qb2luKCdcXG4nKTtcbiAgY29uc3QgZnJhbWVNYXRjaCA9IEZSQU1FX1BBVFRFUk4uZXhlYyhwcm9wTGluZXMpO1xuICBpZiAoIWZyYW1lTWF0Y2gpIHtcbiAgICBsb2c/LmRlYnVnKHByb3BMaW5lcyk7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcGFyc2UgdGhlIGZyYW1lIHNpemUgZnJvbSAnJHtuYW1lfScgd2luZG93IHByb3BlcnRpZXNgKTtcbiAgfVxuICByZXN1bHQueCA9IHBhcnNlRmxvYXQoZnJhbWVNYXRjaFsxXSk7XG4gIHJlc3VsdC55ID0gcGFyc2VGbG9hdChmcmFtZU1hdGNoWzJdKTtcbiAgY29uc3QgbGVmdCA9IHBhcnNlRmxvYXQoZnJhbWVNYXRjaFszXSk7XG4gIGNvbnN0IHRvcCA9IHBhcnNlRmxvYXQoZnJhbWVNYXRjaFs0XSk7XG4gIHJlc3VsdC53aWR0aCA9IGxlZnQgLSByZXN1bHQueDtcbiAgcmVzdWx0LmhlaWdodCA9IHRvcCAtIHJlc3VsdC55O1xuICBjb25zdCB2aXNpYmlsaXR5TWF0Y2ggPSBTVVJGQUNFX1BBVFRFUk4uZXhlYyhwcm9wTGluZXMpO1xuICBpZiAoIXZpc2liaWxpdHlNYXRjaCkge1xuICAgIGxvZz8uZGVidWcocHJvcExpbmVzKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBwYXJzZSB0aGUgdmlzaWJpbGl0eSB2YWx1ZSBmcm9tICcke25hbWV9JyB3aW5kb3cgcHJvcGVydGllc2ApO1xuICB9XG4gIHJlc3VsdC52aXNpYmxlID0gdmlzaWJpbGl0eU1hdGNoWzFdID09PSAndHJ1ZSc7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogRXh0cmFjdHMgc3RhdHVzIGFuZCBuYXZpZ2F0aW9uIGJhciBpbmZvcm1hdGlvbiBmcm9tIHRoZSB3aW5kb3cgbWFuYWdlciBvdXRwdXQuXG4gKlxuICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBsaW5lcyBPdXRwdXQgZnJvbSBkdW1wc3lzIGNvbW1hbmQuXG4gKiBDaGVjayB0aGUgY29ycmVzcG9uZGluZyB1bml0IHRlc3RzIGZvciBtb3JlIGRldGFpbHMgb24gdGhlIGlucHV0IGZvcm1hdC5cbiAqIEBwYXJhbSB7T2JqZWN0P30gbG9nIExvZ2dlciBpbnN0YW5jZVxuICogQHJldHVybiB7T2JqZWN0fSBBbiBvYmplY3QgY29udGFpbmluZyB0d28gaXRlbXMgd2hlcmUga2V5cyBhcmUgc3RhdHVzQmFyIGFuZCBuYXZpZ2F0aW9uQmFyLFxuICogYW5kIHZhbHVlcyBhcmUgY29ycmVzcG9uZGluZyBXaW5kb3dQcm9wZXJ0aWVzIG9iamVjdHNcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiBubyB3aW5kb3cgcHJvcGVydGllcyBjb3VsZCBiZSBwYXJzZWRcbiAqL1xuZnVuY3Rpb24gcGFyc2VXaW5kb3dzIChsaW5lcywgbG9nID0gbnVsbCkge1xuICBjb25zdCB3aW5kb3dzID0ge307XG4gIGxldCBjdXJyZW50V2luZG93TmFtZSA9IG51bGw7XG4gIGxldCB3aW5kb3dOYW1lUm93SW5kZW50ID0gbnVsbDtcbiAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzLnNwbGl0KCdcXG4nKS5tYXAoXy50cmltRW5kKSkge1xuICAgIGNvbnN0IGN1cnJlbnRJbmRlbnQgPSBsaW5lLmxlbmd0aCAtIF8udHJpbVN0YXJ0KGxpbmUpLmxlbmd0aDtcbiAgICBpZiAoXy5pc05pbCh3aW5kb3dOYW1lUm93SW5kZW50KSB8fCBjdXJyZW50SW5kZW50IDw9IHdpbmRvd05hbWVSb3dJbmRlbnQpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gV0lORE9XX1RJVExFX1BBVFRFUk4uZXhlYyhsaW5lKTtcbiAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgY3VycmVudFdpbmRvd05hbWUgPSBudWxsO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGN1cnJlbnRXaW5kb3dOYW1lID0gbWF0Y2hbMV07XG4gICAgICBpZiAoXy5pc05pbCh3aW5kb3dOYW1lUm93SW5kZW50KSkge1xuICAgICAgICB3aW5kb3dOYW1lUm93SW5kZW50ID0gY3VycmVudEluZGVudDtcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoIWN1cnJlbnRXaW5kb3dOYW1lIHx8IGN1cnJlbnRJbmRlbnQgPD0gd2luZG93TmFtZVJvd0luZGVudCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKCFfLmlzQXJyYXkod2luZG93c1tjdXJyZW50V2luZG93TmFtZV0pKSB7XG4gICAgICB3aW5kb3dzW2N1cnJlbnRXaW5kb3dOYW1lXSA9IFtdO1xuICAgIH1cbiAgICB3aW5kb3dzW2N1cnJlbnRXaW5kb3dOYW1lXS5wdXNoKGxpbmUpO1xuICB9XG4gIGlmIChfLmlzRW1wdHkod2luZG93cykpIHtcbiAgICBsb2c/LmRlYnVnKGxpbmVzLmpvaW4oJ1xcbicpKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBwYXJzZSBhbnkgd2luZG93IGluZm9ybWF0aW9uIGZyb20gdGhlIGR1bXBzeXMgb3V0cHV0Jyk7XG4gIH1cblxuICBjb25zdCByZXN1bHQgPSB7c3RhdHVzQmFyOiBudWxsLCBuYXZpZ2F0aW9uQmFyOiBudWxsfTtcbiAgZm9yIChjb25zdCBbbmFtZSwgcHJvcHNdIG9mIF8udG9QYWlycyh3aW5kb3dzKSkge1xuICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgoU1RBVFVTX0JBUl9XSU5ET1dfTkFNRV9QUkVGSVgpKSB7XG4gICAgICByZXN1bHQuc3RhdHVzQmFyID0gcGFyc2VXaW5kb3dQcm9wZXJ0aWVzKG5hbWUsIHByb3BzLCBsb2cpO1xuICAgIH0gZWxzZSBpZiAobmFtZS5zdGFydHNXaXRoKE5BVklHQVRJT05fQkFSX1dJTkRPV19OQU1FX1BSRUZJWCkpIHtcbiAgICAgIHJlc3VsdC5uYXZpZ2F0aW9uQmFyID0gcGFyc2VXaW5kb3dQcm9wZXJ0aWVzKG5hbWUsIHByb3BzLCBsb2cpO1xuICAgIH1cbiAgfVxuICBjb25zdCB1bm1hdGNoZWRXaW5kb3dzID0gW1xuICAgIFsnc3RhdHVzQmFyJywgU1RBVFVTX0JBUl9XSU5ET1dfTkFNRV9QUkVGSVhdLFxuICAgIFsnbmF2aWdhdGlvbkJhcicsIE5BVklHQVRJT05fQkFSX1dJTkRPV19OQU1FX1BSRUZJWF1cbiAgXS5maWx0ZXIoKFtuYW1lXSkgPT4gXy5pc05pbChyZXN1bHRbbmFtZV0pKTtcbiAgZm9yIChjb25zdCBbd2luZG93LCBuYW1lUHJlZml4XSBvZiB1bm1hdGNoZWRXaW5kb3dzKSB7XG4gICAgbG9nPy5pbmZvKGBObyB3aW5kb3dzIGhhdmUgYmVlbiBmb3VuZCB3aG9zZSB0aXRsZSBtYXRjaGVzIHRvIGAgK1xuICAgICAgYCcke25hbWVQcmVmaXh9Jy4gQXNzdW1pbmcgaXQgaXMgaW52aXNpYmxlLiBgICtcbiAgICAgIGBPbmx5IHRoZSBmb2xsb3dpbmcgd2luZG93cyBhcmUgYXZhaWxhYmxlOiAke18ua2V5cyh3aW5kb3dzKX1gKTtcbiAgICByZXN1bHRbd2luZG93XSA9IF8uY2xvbmVEZWVwKERFRkFVTFRfV0lORE9XX1BST1BFUlRJRVMpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmNvbW1hbmRzLmdldFN5c3RlbUJhcnMgPSBhc3luYyBmdW5jdGlvbiBnZXRTeXN0ZW1CYXJzICgpIHtcbiAgbGV0IHN0ZG91dDtcbiAgdHJ5IHtcbiAgICBzdGRvdXQgPSBhd2FpdCB0aGlzLmFkYi5zaGVsbChbJ2R1bXBzeXMnLCAnd2luZG93JywgJ3dpbmRvd3MnXSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZXRyaWV2ZSBzeXN0ZW0gYmFycyBkZXRhaWxzLiBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gIH1cbiAgcmV0dXJuIHBhcnNlV2luZG93cyhzdGRvdXQsIHRoaXMubG9nKTtcbn07XG5cbi8vIGZvciB1bml0IHRlc3RzXG5leHBvcnQgeyBwYXJzZVdpbmRvd3MsIHBhcnNlV2luZG93UHJvcGVydGllcyB9O1xuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwiZmlsZSI6ImxpYi9jb21tYW5kcy9zeXN0ZW0tYmFycy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
|
|
136
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL3N5c3RlbS1iYXJzLmpzIiwibmFtZXMiOlsiV0lORE9XX1RJVExFX1BBVFRFUk4iLCJGUkFNRV9QQVRURVJOIiwiU1VSRkFDRV9QQVRURVJOIiwiU1RBVFVTX0JBUl9XSU5ET1dfTkFNRV9QUkVGSVgiLCJOQVZJR0FUSU9OX0JBUl9XSU5ET1dfTkFNRV9QUkVGSVgiLCJERUZBVUxUX1dJTkRPV19QUk9QRVJUSUVTIiwidmlzaWJsZSIsIngiLCJ5Iiwid2lkdGgiLCJoZWlnaHQiLCJjb21tYW5kcyIsInBhcnNlV2luZG93UHJvcGVydGllcyIsIm5hbWUiLCJwcm9wcyIsImxvZyIsInJlc3VsdCIsIl8iLCJjbG9uZURlZXAiLCJwcm9wTGluZXMiLCJqb2luIiwiZnJhbWVNYXRjaCIsImV4ZWMiLCJkZWJ1ZyIsIkVycm9yIiwicGFyc2VGbG9hdCIsInZpc2liaWxpdHlNYXRjaCIsInBhcnNlV2luZG93cyIsImxpbmVzIiwid2luZG93cyIsImN1cnJlbnRXaW5kb3dOYW1lIiwid2luZG93TmFtZVJvd0luZGVudCIsImxpbmUiLCJzcGxpdCIsIm1hcCIsInRyaW1FbmQiLCJjdXJyZW50SW5kZW50IiwibGVuZ3RoIiwidHJpbVN0YXJ0IiwiaXNOaWwiLCJtYXRjaCIsImlzQXJyYXkiLCJwdXNoIiwiaXNFbXB0eSIsInN0YXR1c0JhciIsIm5hdmlnYXRpb25CYXIiLCJ0b1BhaXJzIiwic3RhcnRzV2l0aCIsInVubWF0Y2hlZFdpbmRvd3MiLCJmaWx0ZXIiLCJ3aW5kb3ciLCJuYW1lUHJlZml4IiwiaW5mbyIsImtleXMiLCJnZXRTeXN0ZW1CYXJzIiwic3Rkb3V0IiwiYWRiIiwic2hlbGwiLCJlIiwibWVzc2FnZSJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9zeXN0ZW0tYmFycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5jb25zdCBXSU5ET1dfVElUTEVfUEFUVEVSTiA9IC9eXFxzK1dpbmRvd1xccyNcXGQrXFxzV2luZG93XFx7WzAtOWEtZl0rXFxzXFx3K1xccyhbXFx3LV0rKVxcfTokLztcbmNvbnN0IEZSQU1FX1BBVFRFUk4gPSAvXlxccyttRnJhbWU9XFxbKFswLTkuLV0rKSwoWzAtOS4tXSspXFxdXFxbKFswLTkuLV0rKSwoWzAtOS4tXSspXFxdL207XG5jb25zdCBTVVJGQUNFX1BBVFRFUk4gPSAvXlxccytTdXJmYWNlOlxcc3Nob3duPSh0cnVlfGZhbHNlKS9tO1xuY29uc3QgU1RBVFVTX0JBUl9XSU5ET1dfTkFNRV9QUkVGSVggPSAnU3RhdHVzQmFyJztcbmNvbnN0IE5BVklHQVRJT05fQkFSX1dJTkRPV19OQU1FX1BSRUZJWCA9ICdOYXZpZ2F0aW9uQmFyJztcbmNvbnN0IERFRkFVTFRfV0lORE9XX1BST1BFUlRJRVMgPSB7XG4gIHZpc2libGU6IGZhbHNlLFxuICB4OiAwLCB5OiAwLCB3aWR0aDogMCwgaGVpZ2h0OiAwLFxufTtcblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBXaW5kb3dQcm9wZXJ0aWVzXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHZpc2libGUgV2hldGhlciB0aGUgd2luZG93IGlzIHZpc2libGVcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB4IFdpbmRvdyB4IGNvb3JkaW5hdGVcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB5IFdpbmRvdyB5IGNvb3JkaW5hdGVcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB3aWR0aCBXaW5kb3cgd2lkdGhcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBoZWlnaHQgV2luZG93IGhlaWdodFxuICovXG5cbi8qKlxuICogUGFyc2VzIHdpbmRvdyBwcm9wZXJ0aWVzIGZyb20gYWRiIGR1bXBzeXMgb3V0cHV0XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgVGhlIG5hbWUgb2YgdGhlIHdpbmRvdyB3aG9zZSBwcm9wZXJ0aWVzIGFyZSBiZWluZyBwYXJzZWRcbiAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gcHJvcHMgVGhlIGxpc3Qgb2YgcGFydGljdWxhciB3aW5kb3cgcHJvcGVydHkgbGluZXMuXG4gKiBDaGVjayB0aGUgY29ycmVzcG9uZGluZyB1bml0IHRlc3RzIGZvciBtb3JlIGRldGFpbHMgb24gdGhlIGlucHV0IGZvcm1hdC5cbiAqIEBwYXJhbSB7T2JqZWN0P30gbG9nIExvZ2dlciBpbnN0YW5jZVxuICogQHJldHVybnMge1dpbmRvd1Byb3BlcnRpZXN9IFBhcnNlZCBwcm9wZXJ0aWVzIG9iamVjdFxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhbiBpc3N1ZSB3aGlsZSBwYXJzaW5nIHRoZSBwcm9wZXJ0aWVzIHN0cmluZ1xuICovXG5mdW5jdGlvbiBwYXJzZVdpbmRvd1Byb3BlcnRpZXMgKG5hbWUsIHByb3BzLCBsb2cgPSBudWxsKSB7XG4gIGNvbnN0IHJlc3VsdCA9IF8uY2xvbmVEZWVwKERFRkFVTFRfV0lORE9XX1BST1BFUlRJRVMpO1xuICBjb25zdCBwcm9wTGluZXMgPSBwcm9wcy5qb2luKCdcXG4nKTtcbiAgY29uc3QgZnJhbWVNYXRjaCA9IEZSQU1FX1BBVFRFUk4uZXhlYyhwcm9wTGluZXMpO1xuICBpZiAoIWZyYW1lTWF0Y2gpIHtcbiAgICBsb2c/LmRlYnVnKHByb3BMaW5lcyk7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcGFyc2UgdGhlIGZyYW1lIHNpemUgZnJvbSAnJHtuYW1lfScgd2luZG93IHByb3BlcnRpZXNgKTtcbiAgfVxuICByZXN1bHQueCA9IHBhcnNlRmxvYXQoZnJhbWVNYXRjaFsxXSk7XG4gIHJlc3VsdC55ID0gcGFyc2VGbG9hdChmcmFtZU1hdGNoWzJdKTtcbiAgcmVzdWx0LndpZHRoID0gcGFyc2VGbG9hdChmcmFtZU1hdGNoWzNdKSAtIHJlc3VsdC54O1xuICByZXN1bHQuaGVpZ2h0ID0gcGFyc2VGbG9hdChmcmFtZU1hdGNoWzRdKSAtIHJlc3VsdC55O1xuICBjb25zdCB2aXNpYmlsaXR5TWF0Y2ggPSBTVVJGQUNFX1BBVFRFUk4uZXhlYyhwcm9wTGluZXMpO1xuICBpZiAoIXZpc2liaWxpdHlNYXRjaCkge1xuICAgIGxvZz8uZGVidWcocHJvcExpbmVzKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBwYXJzZSB0aGUgdmlzaWJpbGl0eSB2YWx1ZSBmcm9tICcke25hbWV9JyB3aW5kb3cgcHJvcGVydGllc2ApO1xuICB9XG4gIHJlc3VsdC52aXNpYmxlID0gdmlzaWJpbGl0eU1hdGNoWzFdID09PSAndHJ1ZSc7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogRXh0cmFjdHMgc3RhdHVzIGFuZCBuYXZpZ2F0aW9uIGJhciBpbmZvcm1hdGlvbiBmcm9tIHRoZSB3aW5kb3cgbWFuYWdlciBvdXRwdXQuXG4gKlxuICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBsaW5lcyBPdXRwdXQgZnJvbSBkdW1wc3lzIGNvbW1hbmQuXG4gKiBDaGVjayB0aGUgY29ycmVzcG9uZGluZyB1bml0IHRlc3RzIGZvciBtb3JlIGRldGFpbHMgb24gdGhlIGlucHV0IGZvcm1hdC5cbiAqIEBwYXJhbSB7T2JqZWN0P30gbG9nIExvZ2dlciBpbnN0YW5jZVxuICogQHJldHVybiB7T2JqZWN0fSBBbiBvYmplY3QgY29udGFpbmluZyB0d28gaXRlbXMgd2hlcmUga2V5cyBhcmUgc3RhdHVzQmFyIGFuZCBuYXZpZ2F0aW9uQmFyLFxuICogYW5kIHZhbHVlcyBhcmUgY29ycmVzcG9uZGluZyBXaW5kb3dQcm9wZXJ0aWVzIG9iamVjdHNcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiBubyB3aW5kb3cgcHJvcGVydGllcyBjb3VsZCBiZSBwYXJzZWRcbiAqL1xuZnVuY3Rpb24gcGFyc2VXaW5kb3dzIChsaW5lcywgbG9nID0gbnVsbCkge1xuICBjb25zdCB3aW5kb3dzID0ge307XG4gIGxldCBjdXJyZW50V2luZG93TmFtZSA9IG51bGw7XG4gIGxldCB3aW5kb3dOYW1lUm93SW5kZW50ID0gbnVsbDtcbiAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzLnNwbGl0KCdcXG4nKS5tYXAoXy50cmltRW5kKSkge1xuICAgIGNvbnN0IGN1cnJlbnRJbmRlbnQgPSBsaW5lLmxlbmd0aCAtIF8udHJpbVN0YXJ0KGxpbmUpLmxlbmd0aDtcbiAgICBpZiAoXy5pc05pbCh3aW5kb3dOYW1lUm93SW5kZW50KSB8fCBjdXJyZW50SW5kZW50IDw9IHdpbmRvd05hbWVSb3dJbmRlbnQpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gV0lORE9XX1RJVExFX1BBVFRFUk4uZXhlYyhsaW5lKTtcbiAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgY3VycmVudFdpbmRvd05hbWUgPSBudWxsO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGN1cnJlbnRXaW5kb3dOYW1lID0gbWF0Y2hbMV07XG4gICAgICBpZiAoXy5pc05pbCh3aW5kb3dOYW1lUm93SW5kZW50KSkge1xuICAgICAgICB3aW5kb3dOYW1lUm93SW5kZW50ID0gY3VycmVudEluZGVudDtcbiAgICAgIH1cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBpZiAoIWN1cnJlbnRXaW5kb3dOYW1lIHx8IGN1cnJlbnRJbmRlbnQgPD0gd2luZG93TmFtZVJvd0luZGVudCkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKCFfLmlzQXJyYXkod2luZG93c1tjdXJyZW50V2luZG93TmFtZV0pKSB7XG4gICAgICB3aW5kb3dzW2N1cnJlbnRXaW5kb3dOYW1lXSA9IFtdO1xuICAgIH1cbiAgICB3aW5kb3dzW2N1cnJlbnRXaW5kb3dOYW1lXS5wdXNoKGxpbmUpO1xuICB9XG4gIGlmIChfLmlzRW1wdHkod2luZG93cykpIHtcbiAgICBsb2c/LmRlYnVnKGxpbmVzLmpvaW4oJ1xcbicpKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBwYXJzZSBhbnkgd2luZG93IGluZm9ybWF0aW9uIGZyb20gdGhlIGR1bXBzeXMgb3V0cHV0Jyk7XG4gIH1cblxuICBjb25zdCByZXN1bHQgPSB7c3RhdHVzQmFyOiBudWxsLCBuYXZpZ2F0aW9uQmFyOiBudWxsfTtcbiAgZm9yIChjb25zdCBbbmFtZSwgcHJvcHNdIG9mIF8udG9QYWlycyh3aW5kb3dzKSkge1xuICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgoU1RBVFVTX0JBUl9XSU5ET1dfTkFNRV9QUkVGSVgpKSB7XG4gICAgICByZXN1bHQuc3RhdHVzQmFyID0gcGFyc2VXaW5kb3dQcm9wZXJ0aWVzKG5hbWUsIHByb3BzLCBsb2cpO1xuICAgIH0gZWxzZSBpZiAobmFtZS5zdGFydHNXaXRoKE5BVklHQVRJT05fQkFSX1dJTkRPV19OQU1FX1BSRUZJWCkpIHtcbiAgICAgIHJlc3VsdC5uYXZpZ2F0aW9uQmFyID0gcGFyc2VXaW5kb3dQcm9wZXJ0aWVzKG5hbWUsIHByb3BzLCBsb2cpO1xuICAgIH1cbiAgfVxuICBjb25zdCB1bm1hdGNoZWRXaW5kb3dzID0gW1xuICAgIFsnc3RhdHVzQmFyJywgU1RBVFVTX0JBUl9XSU5ET1dfTkFNRV9QUkVGSVhdLFxuICAgIFsnbmF2aWdhdGlvbkJhcicsIE5BVklHQVRJT05fQkFSX1dJTkRPV19OQU1FX1BSRUZJWF1cbiAgXS5maWx0ZXIoKFtuYW1lXSkgPT4gXy5pc05pbChyZXN1bHRbbmFtZV0pKTtcbiAgZm9yIChjb25zdCBbd2luZG93LCBuYW1lUHJlZml4XSBvZiB1bm1hdGNoZWRXaW5kb3dzKSB7XG4gICAgbG9nPy5pbmZvKGBObyB3aW5kb3dzIGhhdmUgYmVlbiBmb3VuZCB3aG9zZSB0aXRsZSBtYXRjaGVzIHRvIGAgK1xuICAgICAgYCcke25hbWVQcmVmaXh9Jy4gQXNzdW1pbmcgaXQgaXMgaW52aXNpYmxlLiBgICtcbiAgICAgIGBPbmx5IHRoZSBmb2xsb3dpbmcgd2luZG93cyBhcmUgYXZhaWxhYmxlOiAke18ua2V5cyh3aW5kb3dzKX1gKTtcbiAgICByZXN1bHRbd2luZG93XSA9IF8uY2xvbmVEZWVwKERFRkFVTFRfV0lORE9XX1BST1BFUlRJRVMpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmNvbW1hbmRzLmdldFN5c3RlbUJhcnMgPSBhc3luYyBmdW5jdGlvbiBnZXRTeXN0ZW1CYXJzICgpIHtcbiAgbGV0IHN0ZG91dDtcbiAgdHJ5IHtcbiAgICBzdGRvdXQgPSBhd2FpdCB0aGlzLmFkYi5zaGVsbChbJ2R1bXBzeXMnLCAnd2luZG93JywgJ3dpbmRvd3MnXSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZXRyaWV2ZSBzeXN0ZW0gYmFycyBkZXRhaWxzLiBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gIH1cbiAgcmV0dXJuIHBhcnNlV2luZG93cyhzdGRvdXQsIHRoaXMubG9nKTtcbn07XG5cbi8vIGZvciB1bml0IHRlc3RzXG5leHBvcnQgeyBwYXJzZVdpbmRvd3MsIHBhcnNlV2luZG93UHJvcGVydGllcyB9O1xuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQSxNQUFNQSxvQkFBb0IsR0FBRyx3REFBN0I7QUFDQSxNQUFNQyxhQUFhLEdBQUcsZ0VBQXRCO0FBQ0EsTUFBTUMsZUFBZSxHQUFHLG1DQUF4QjtBQUNBLE1BQU1DLDZCQUE2QixHQUFHLFdBQXRDO0FBQ0EsTUFBTUMsaUNBQWlDLEdBQUcsZUFBMUM7QUFDQSxNQUFNQyx5QkFBeUIsR0FBRztFQUNoQ0MsT0FBTyxFQUFFLEtBRHVCO0VBRWhDQyxDQUFDLEVBQUUsQ0FGNkI7RUFFMUJDLENBQUMsRUFBRSxDQUZ1QjtFQUVwQkMsS0FBSyxFQUFFLENBRmE7RUFFVkMsTUFBTSxFQUFFO0FBRkUsQ0FBbEM7QUFLQSxNQUFNQyxRQUFRLEdBQUcsRUFBakI7O0FBcUJBLFNBQVNDLHFCQUFULENBQWdDQyxJQUFoQyxFQUFzQ0MsS0FBdEMsRUFBNkNDLEdBQUcsR0FBRyxJQUFuRCxFQUF5RDtFQUN2RCxNQUFNQyxNQUFNLEdBQUdDLGdCQUFFQyxTQUFGLENBQVliLHlC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
|
|
@@ -395,4 +395,4 @@ var _default = extensions;
|
|
|
395
395
|
exports.default = _default;require('source-map-support').install();
|
|
396
396
|
|
|
397
397
|
|
|
398
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy90b3VjaC5qcyJdLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwiZ2V0Q29vcmREZWZhdWx0IiwidmFsIiwidXRpbCIsImhhc1ZhbHVlIiwiZ2V0U3dpcGVUb3VjaER1cmF0aW9uIiwid2FpdEdlc3R1cmUiLCJkdXJhdGlvbiIsIm9wdGlvbnMiLCJtcyIsImRvVG91Y2hBY3Rpb24iLCJhY3Rpb24iLCJvcHRzIiwiZWxlbWVudCIsIngiLCJ5IiwiY291bnQiLCJ0YXAiLCJ0b3VjaERvd24iLCJ0b3VjaFVwIiwidG91Y2hNb3ZlIiwiQiIsImRlbGF5IiwidG91Y2hMb25nQ2xpY2siLCJsb2ciLCJ3YXJuIiwiZXJyb3JBbmRUaHJvdyIsImRvVG91Y2hEcmFnIiwiZ2VzdHVyZXMiLCJsb25nUHJlc3MiLCJtb3ZlVG8iLCJzdGFydFgiLCJzdGFydFkiLCJlbmRYIiwiZW5kWSIsImdldExvY2F0aW9uSW5WaWV3IiwiYXBpTGV2ZWwiLCJhZGIiLCJnZXRBcGlMZXZlbCIsIk1hdGgiLCJtYXgiLCJkcmFnIiwiZml4UmVsZWFzZSIsInJlbGVhc2UiLCJfIiwibGFzdCIsImNsb25lIiwicmVmIiwiZ2VzdHVyZSIsInJldmVyc2UiLCJsb2MiLCJzaXplIiwiZ2V0U2l6ZSIsIndpZHRoIiwiaGVpZ2h0IiwicGljayIsInBlcmZvcm1HZXN0dXJlIiwiZSIsImVycm9ycyIsIk5vU3VjaEVsZW1lbnRFcnJvciIsImRlYnVnIiwiZ2V0U3dpcGVPcHRpb25zIiwidG91Y2hDb3VudCIsImRlc3RFbGVtZW50IiwibG9jUmVzdWx0Iiwic2l6ZVJlc3VsdCIsIm9mZnNldFgiLCJhYnMiLCJvZmZzZXRZIiwiZmlyc3RFbExvY2F0aW9uIiwicGVyZm9ybVRvdWNoIiwibGVuZ3RoIiwic3dpcGVPcHRzIiwic3dpcGUiLCJhY3Rpb25zIiwibWFwIiwiaGVhZCIsInBvcCIsInNsaWNlIiwicHJlc3MiLCJzaGlmdCIsIndhaXQiLCJmaXhlZEdlc3R1cmVzIiwicGFyc2VUb3VjaCIsImciLCJtdWx0aSIsInRvdWNoU3RhdGVPYmplY3RzIiwiaW5jbHVkZXMiLCJvZmZzZXQiLCJlbGVtZW50SWQiLCJwb3MiLCJ0b3VjaFN0YXRlT2JqZWN0IiwidGltZU9mZnNldCIsInBhcnNlSW50IiwicHJldlBvcyIsInRpbWUiLCJzdGF0ZSIsImlzVW5kZWZpbmVkIiwiYW5kcm9pZEhlbHBlcnMiLCJ0cnVuY2F0ZURlY2ltYWxzIiwidG91Y2giLCJwZXJmb3JtTXVsdGlBY3Rpb24iLCJFcnJvciIsInN0YXRlcyIsImRvUGVyZm9ybU11bHRpQWN0aW9uIiwiYm9vdHN0cmFwIiwic2VuZEFjdGlvbiIsIk9iamVjdCIsImFzc2lnbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxJQUFJQSxRQUFRLEdBQUcsRUFBZjtBQUFBLElBQW1CQyxPQUFPLEdBQUcsRUFBN0I7QUFBQSxJQUFpQ0MsVUFBVSxHQUFHLEVBQTlDOzs7O0FBRUEsU0FBU0MsZUFBVCxDQUEwQkMsR0FBMUIsRUFBK0I7QUFJN0IsU0FBT0MsY0FBS0MsUUFBTCxDQUFjRixHQUFkLElBQXFCQSxHQUFyQixHQUEyQixHQUFsQztBQUNEOztBQUVELFNBQVNHLHFCQUFULENBQWdDQyxXQUFoQyxFQUE2QztBQUczQyxNQUFJQyxRQUFRLEdBQUcsR0FBZjs7QUFDQSxNQUFJLE9BQU9ELFdBQVcsQ0FBQ0UsT0FBWixDQUFvQkMsRUFBM0IsS0FBa0MsV0FBbEMsSUFBaURILFdBQVcsQ0FBQ0UsT0FBWixDQUFvQkMsRUFBekUsRUFBNkU7QUFDM0VGLElBQUFBLFFBQVEsR0FBR0QsV0FBVyxDQUFDRSxPQUFaLENBQW9CQyxFQUFwQixHQUF5QixJQUFwQzs7QUFDQSxRQUFJRixRQUFRLEtBQUssQ0FBakIsRUFBb0I7QUFHbEJBLE1BQUFBLFFBQVEsR0FBRyxHQUFYO0FBQ0Q7QUFDRjs7QUFDRCxTQUFPQSxRQUFQO0FBQ0Q7O0FBRURULFFB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LE1BQVAsSUFBa0IsTUFBTSxLQUFLd0UsVUFBTCxDQUFnQnhFLE1BQWhCLEVBQXdCLElBQXhCLENBQTFDLEVBQXlFLEtBQXpFLENBQXJCO0FBRUEsU0FBTyxNQUFNLEtBQUs2RixvQkFBTCxDQUEwQmYsU0FBMUIsRUFBcUNjLE1BQXJDLENBQWI7QUFDRCxDQVZEOztBQWtCQXpHLFFBQVEsQ0FBQzBHLG9CQUFULEdBQWdDLGVBQWVBLG9CQUFmLENBQXFDZixTQUFyQyxFQUFnRGMsTUFBaEQsRUFBd0Q7QUFDdEYsTUFBSTNGLElBQUo7O0FBQ0EsTUFBSTZFLFNBQUosRUFBZTtBQUNiN0UsSUFBQUEsSUFBSSxHQUFHO0FBQ0w2RSxNQUFBQSxTQURLO0FBRUxmLE1BQUFBLE9BQU8sRUFBRTZCO0FBRkosS0FBUDtBQUlBLFdBQU8sTUFBTSxLQUFLRSxTQUFMLENBQWVDLFVBQWYsQ0FBMEIsb0NBQTFCLEVBQWdFOUYsSUFBaEUsQ0FBYjtBQUNELEdBTkQsTUFNTztBQUNMQSxJQUFBQSxJQUFJLEdBQUc7QUFDTDhELE1BQUFBLE9BQU8sRUFBRTZCO0FBREosS0FBUDtBQUdBLFdBQU8sTUFBTSxLQUFLRSxTQUFMLENBQWVDLFVBQWYsQ0FBMEIsNEJBQTFCLEVBQXdEOUYsSUFBeEQsQ0FBYjtBQUNEO0FBQ0YsQ0FkRDs7QUFnQkErRixNQUFNLENBQUNDLE1BQVAsQ0FBYzVHLFVBQWQsRUFBMEJGLFFBQTFCLEVBQW9DQyxPQUFwQztlQUVlQyxVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBhbmRyb2lkSGVscGVycyBmcm9tICcuLi9hbmRyb2lkLWhlbHBlcnMnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IHsgZXJyb3JzLCBpc0Vycm9yVHlwZSB9IGZyb20gJ0BhcHBpdW0vYmFzZS1kcml2ZXInO1xuaW1wb3J0IHsgYXN5bmNtYXAgfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgeyB1dGlsIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcblxubGV0IGNvbW1hbmRzID0ge30sIGhlbHBlcnMgPSB7fSwgZXh0ZW5zaW9ucyA9IHt9O1xuXG5mdW5jdGlvbiBnZXRDb29yZERlZmF1bHQgKHZhbCkge1xuICAvLyBnb2luZyB0aGUgbG9uZyB3YXkgYW5kIGNoZWNraW5nIGZvciB1bmRlZmluZWQgYW5kIG51bGwgc2luY2VcbiAgLy8gd2UgY2FuJ3QgYmUgYXNzdXJlZCBgZWxJZGAgaXMgYSBzdHJpbmcgYW5kIG5vdCBhbiBpbnQuIFNhbWVcbiAgLy8gdGhpbmcgd2l0aCBkZXN0RWxlbWVudCBiZWxvdy5cbiAgcmV0dXJuIHV0aWwuaGFzVmFsdWUodmFsKSA/IHZhbCA6IDAuNTtcbn1cblxuZnVuY3Rpb24gZ2V0U3dpcGVUb3VjaER1cmF0aW9uICh3YWl0R2VzdHVyZSkge1xuICAvLyB0aGUgdG91Y2ggYWN0aW9uIGFwaSB1c2VzIG1zLCB3ZSB3YW50IHNlY29uZHNcbiAgLy8gMC44IGlzIHRoZSBkZWZhdWx0IHRpbWUgZm9yIHRoZSBvcGVyYXRpb25cbiAgbGV0IGR1cmF0aW9uID0gMC44O1xuICBpZiAodHlwZW9mIHdhaXRHZXN0dXJlLm9wdGlvbnMubXMgIT09ICd1bmRlZmluZWQnICYmIHdhaXRHZXN0dXJlLm9wdGlvbnMubXMpIHtcbiAgICBkdXJhdGlvbiA9IHdhaXRHZXN0dXJlLm9wdGlvbnMubXMgLyAxMDAwO1xuICAgIGlmIChkdXJhdGlvbiA9PT0gMCkge1xuICAgICAgLy8gc2V0IHRvIGEgdmVyeSBsb3cgbnVtYmVyLCBzaW5jZSB0aGV5IHdhbnRlZCBpdCBmYXN0XG4gICAgICAvLyBidXQgYmVsb3cgMC4xIGJlY29tZXMgMCBzdGVwcywgd2hpY2ggY2F1c2VzIGVycm9yc1xuICAgICAgZHVyYXRpb24gPSAwLjE7XG4gICAgfVxuICB9XG4gIHJldHVybiBkdXJhdGlvbjtcbn1cblxuY29tbWFuZHMuZG9Ub3VjaEFjdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIGRvVG91Y2hBY3Rpb24gKGFjdGlvbiwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IHsgZWxlbWVudCwgeCwgeSwgY291bnQsIG1zLCBkdXJhdGlvbiB9ID0gb3B0cztcbiAgLy8gcGFyc2VUb3VjaCBwcmVjYWxjdWxhdGVzIGFic29sdXRlIGVsZW1lbnQgcG9zaXRpb25zXG4gIC8vIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gcGFzcyBgZWxlbWVudGAgdG8gdGhlIGFmZmVjdGVkIGdlc3R1cmVzXG4gIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgY2FzZSAndGFwJzpcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnRhcChudWxsLCB4LCB5LCBjb3VudCk7XG4gICAgY2FzZSAncHJlc3MnOlxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMudG91Y2hEb3duKG51bGwsIHgsIHkpO1xuICAgIGNhc2UgJ3JlbGVhc2UnOlxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMudG91Y2hVcChlbGVtZW50LCB4LCB5KTtcbiAgICBjYXNlICdtb3ZlVG8nOlxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMudG91Y2hNb3ZlKG51bGwsIHgsIHkpO1xuICAgIGNhc2UgJ3dhaXQnOlxuICAgICAgcmV0dXJuIGF3YWl0IEIuZGVsYXkobXMpO1xuICAgIGNhc2UgJ2xvbmdQcmVzcyc6XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy50b3VjaExvbmdDbGljayhudWxsLCB4LCB5LCBkdXJhdGlvbiB8fCAxMDAwKTtcbiAgICBjYXNlICdjYW5jZWwnOlxuICAgICAgLy8gVE9ETzogY2xhcmlmeSBiZWhhdmlvciBvZiAnY2FuY2VsJyBhY3Rpb24gYW5kIGZpeCB0aGlzXG4gICAgICB0aGlzLmxvZy53YXJuKCdDYW5jZWwgYWN0aW9uIGN1cnJlbnRseSBoYXMgbm8gZWZmZWN0Jyk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdyhgdW5rbm93biBhY3Rpb24gJHthY3Rpb259YCk7XG4gIH1cbn07XG5cbi8vIGRyYWcgaXMgKm5vdCogcHJlc3MtbW92ZS1yZWxlYXNlLCBzbyB3ZSBuZWVkIHRvIHRyYW5zbGF0ZVxuLy8gZHJhZyB3b3JrcyBmaW5lIGZvciBzY3JvbGwsIGFzIHdlbGxcbmhlbHBlcnMuZG9Ub3VjaERyYWcgPSBhc3luYyBmdW5jdGlvbiBkb1RvdWNoRHJhZyAoZ2VzdHVyZXMpIHtcbiAgbGV0IGxvbmdQcmVzcyA9IGdlc3R1cmVzWzBdO1xuICBsZXQgbW92ZVRvID0gZ2VzdHVyZXNbMV07XG4gIGxldCBzdGFydFggPSBsb25nUHJlc3Mub3B0aW9ucy54IHx8IDAsXG4gICAgICBzdGFydFkgPSBsb25nUHJlc3Mub3B0aW9ucy55IHx8IDAsXG4gICAgICBlbmRYID0gbW92ZVRvLm9wdGlvbnMueCB8fCAwLFxuICAgICAgZW5kWSA9IG1vdmVUby5vcHRpb25zLnkgfHwgMDtcbiAgaWYgKGxvbmdQcmVzcy5vcHRpb25zLmVsZW1lbnQpIHtcbiAgICBsZXQge3gsIHl9ID0gYXdhaXQgdGhpcy5nZXRMb2NhdGlvbkluVmlldyhsb25nUHJlc3Mub3B0aW9ucy5lbGVtZW50KTtcbiAgICBzdGFydFggKz0geCB8fCAwO1xuICAgIHN0YXJ0WSArPSB5IHx8IDA7XG4gIH1cbiAgaWYgKG1vdmVUby5vcHRpb25zLmVsZW1lbnQpIHtcbiAgICBsZXQge3gsIHl9ID0gYXdhaXQgdGhpcy5nZXRMb2NhdGlvbkluVmlldyhtb3ZlVG8ub3B0aW9ucy5lbGVtZW50KTtcbiAgICBlbmRYICs9IHggfHwgMDtcbiAgICBlbmRZICs9IHkgfHwgMDtcbiAgfVxuXG4gIGxldCBhcGlMZXZlbCA9IGF3YWl0IHRoaXMuYWRiLmdldEFwaUxldmVsKCk7XG4gIC8vIGxvbGxpcG9wIHRha2VzIGEgbGl0dGxlIGxvbmdlciB0byBnZXQgdGhpbmdzIHJvbGxpbmdcbiAgbGV0IGR1cmF0aW9uID0gYXBpTGV2ZWwgPj0gNSA/IDIgOiAxO1xuICAvLyBtYWtlIHN1cmUgdGhhdCBpZiB0aGUgbG9uZyBwcmVzcyBoYXMgYSBkdXJhdGlvbiwgd2UgdXNlIGl0LlxuICBpZiAobG9uZ1ByZXNzLm9wdGlvbnMgJiYgbG9uZ1ByZXNzLm9wdGlvbnMuZHVyYXRpb24pIHtcbiAgICBkdXJhdGlvbiA9IE1hdGgubWF4KGxvbmdQcmVzcy5vcHRpb25zLmR1cmF0aW9uIC8gMTAwMCwgZHVyYXRpb24pO1xuICB9XG5cbiAgLy8gYGRyYWdgIHdpbGwgdGFrZSBjYXJlIG9mIHdoZXRoZXIgdGhlcmUgaXMgYW4gZWxlbWVudCBvciBub3QgYXQgdGhhdCBsZXZlbFxuICByZXR1cm4gYXdhaXQgdGhpcy5kcmFnKHN0YXJ0WCwgc3RhcnRZLCBlbmRYLCBlbmRZLCBkdXJhdGlvbiwgMSwgbG9uZ1ByZXNzLm9wdGlvbnMuZWxlbWVudCwgbW92ZVRvLm9wdGlvbnMuZWxlbWVudCk7XG59O1xuXG4vLyBSZWxlYXNlIGdlc3R1cmUgbmVlZHMgZWxlbWVudCBvciBjby1vcmRpbmF0ZXMgdG8gcmVsZWFzZSBpdCBmcm9tIHRoYXQgcG9zaXRpb25cbi8vIG9yIGVsc2UgcmVsZWFzZSBnZXN0dXJlIGlzIHBlcmZvcm1lZCBmcm9tIGNlbnRlciBvZiB0aGUgc2NyZWVuLCBzbyB0byBmaXggaXRcbi8vIFRoaXMgbWV0aG9kIHNldHMgY28tb3JkaW5hdGVzL2VsZW1lbnQgdG8gcmVsZWFzZSBnZXN0dXJlIGlmIGl0IGhhcyBubyBvcHRpb25zIHNldCBhbHJlYWR5LlxuaGVscGVycy5maXhSZWxlYXNlID0gYXN5bmMgZnVuY3Rpb24gZml4UmVsZWFzZSAoZ2VzdHVyZXMpIHtcbiAgbGV0IHJlbGVhc2UgPSBfLmxhc3QoZ2VzdHVyZXMpO1xuICAvLyBzb21ldGltZXMgdGhlcmUgYXJlIG5vIG9wdGlvbnNcbiAgcmVsZWFzZS5vcHRpb25zID0gcmVsZWFzZS5vcHRpb25zIHx8IHt9O1xuICAvLyBub3RoaW5nIHRvIGRvIGlmIHJlbGVhc2Ugb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXRcbiAgaWYgKHJlbGVhc2Uub3B0aW9ucy5lbGVtZW50IHx8IChyZWxlYXNlLm9wdGlvbnMueCAmJiByZWxlYXNlLm9wdGlvbnMueSkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgLy8gd2l0aG91dCBjb29yZGluYXRlcywgYHJlbGVhc2VgIHVzZXMgdGhlIGNlbnRlciBvZiB0aGUgc2NyZWVuLCB3aGljaCxcbiAgLy8gZ2VuZXJhbGx5IHNwZWFraW5nLCBpcyBub3Qgd2hhdCB3ZSB3YW50XG4gIC8vIHRoZXJlZm9yZTogbG9vcCBiYWNrd2FyZHMgYW5kIHVzZSB0aGUgbGFzdCBjb21tYW5kIHdpdGggYW4gZWxlbWVudCBhbmQvb3JcbiAgLy8gb2Zmc2V0IGNvb3JkaW5hdGVzXG4gIGdlc3R1cmVzID0gXy5jbG9uZShnZXN0dXJlcyk7XG4gIGxldCByZWYgPSBudWxsO1xuICBmb3IgKGxldCBnZXN0dXJlIG9mIGdlc3R1cmVzLnJldmVyc2UoKSkge1xuICAgIGxldCBvcHRzID0gZ2VzdHVyZS5vcHRpb25zO1xuICAgIGlmIChvcHRzLmVsZW1lbnQgfHwgKG9wdHMueCAmJiBvcHRzLnkpKSB7XG4gICAgICByZWYgPSBnZXN0dXJlO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIGlmIChyZWYpIHtcbiAgICBsZXQgb3B0cyA9IHJlZi5vcHRpb25zO1xuICAgIGlmIChvcHRzLmVsZW1lbnQpIHtcbiAgICAgIGxldCBsb2MgPSBhd2FpdCB0aGlzLmdldExvY2F0aW9uSW5WaWV3KG9wdHMuZWxlbWVudCk7XG4gICAgICBpZiAob3B0cy54ICYmIG9wdHMueSkge1xuICAgICAgICAvLyB0aGlzIGlzIGFuIG9mZnNldCBmcm9tIHRoZSBlbGVtZW50XG4gICAgICAgIHJlbGVhc2Uub3B0aW9ucyA9IHtcbiAgICAgICAgICB4OiBsb2MueCArIG9wdHMueCxcbiAgICAgICAgICB5OiBsb2MueSArIG9wdHMueVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gdGhpcyBpcyB0aGUgY2VudGVyIG9mIHRoZSBlbGVtZW50XG4gICAgICAgIGxldCBzaXplID0gYXdhaXQgdGhpcy5nZXRTaXplKG9wdHMuZWxlbWVudCk7XG4gICAgICAgIHJlbGVhc2Uub3B0aW9ucyA9IHtcbiAgICAgICAgICB4OiBsb2MueCArIHNpemUud2lkdGggLyAyLFxuICAgICAgICAgIHk6IGxvYy55ICsgc2l6ZS5oZWlnaHQgLyAyXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlbGVhc2Uub3B0aW9ucyA9IF8ucGljayhvcHRzLCAneCcsICd5Jyk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZWxlYXNlO1xufTtcblxuLy8gUGVyZm9ybSBvbmUgZ2VzdHVyZVxuaGVscGVycy5wZXJmb3JtR2VzdHVyZSA9IGFzeW5jIGZ1bmN0aW9uIHBlcmZvcm1HZXN0dXJlIChnZXN0dXJlKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZG9Ub3VjaEFjdGlvbihnZXN0dXJlLmFjdGlvbiwgZ2VzdHVyZS5vcHRpb25zIHx8IHt9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIHNvbWV0aW1lIHRoZSBlbGVtZW50IGlzIG5vdCBhdmFpbGFibGUgd2hlbiByZWxlYXNpbmcsIHJldHJ5IHdpdGhvdXQgaXRcbiAgICBpZiAoaXNFcnJvclR5cGUoZSwgZXJyb3JzLk5vU3VjaEVsZW1lbnRFcnJvcikgJiYgZ2VzdHVyZS5hY3Rpb24gPT09ICdyZWxlYXNlJyAmJlxuICAgICAgICBnZXN0dXJlLm9wdGlvbnMuZWxlbWVudCkge1xuICAgICAgZGVsZXRlIGdlc3R1cmUub3B0aW9ucy5lbGVtZW50O1xuICAgICAgdGhpcy5sb2cuZGVidWcoYHJldHJ5aW5nIHJlbGVhc2Ugd2l0aG91dCBlbGVtZW50IG9wdHM6ICR7Z2VzdHVyZS5vcHRpb25zfS5gKTtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmRvVG91Y2hBY3Rpb24oZ2VzdHVyZS5hY3Rpb24sIGdlc3R1cmUub3B0aW9ucyB8fCB7fSk7XG4gICAgfVxuICAgIHRocm93IGU7XG4gIH1cbn07XG5cbmNvbW1hbmRzLmdldFN3aXBlT3B0aW9ucyA9IGFzeW5jIGZ1bmN0aW9uIGdldFN3aXBlT3B0aW9ucyAoZ2VzdHVyZXMsIHRvdWNoQ291bnQgPSAxKSB7XG4gIGxldCBzdGFydFggPSBnZXRDb29yZERlZmF1bHQoZ2VzdHVyZXNbMF0ub3B0aW9ucy54KSxcbiAgICAgIHN0YXJ0WSA9IGdldENvb3JkRGVmYXVsdChnZXN0dXJlc1swXS5vcHRpb25zLnkpLFxuICAgICAgZW5kWCA9IGdldENvb3JkRGVmYXVsdChnZXN0dXJlc1syXS5vcHRpb25zLngpLFxuICAgICAgZW5kWSA9IGdldENvb3JkRGVmYXVsdChnZXN0dXJlc1syXS5vcHRpb25zLnkpLFxuICAgICAgZHVyYXRpb24gPSBnZXRTd2lwZVRvdWNoRHVyYXRpb24oZ2VzdHVyZXNbMV0pLFxuICAgICAgZWxlbWVudCA9IGdlc3R1cmVzWzBdLm9wdGlvbnMuZWxlbWVudCxcbiAgICAgIGRlc3RFbGVtZW50ID0gZ2VzdHVyZXNbMl0ub3B0aW9ucy5lbGVtZW50IHx8IGdlc3R1cmVzWzBdLm9wdGlvbnMuZWxlbWVudDtcblxuICAvLyB0aGVyZSdzIG5vIGRlc3RpbmF0aW9uIGVsZW1lbnQgaGFuZGxpbmcgaW4gYm9vdHN0cmFwIGFuZCBzaW5jZSBpdCBhcHBsaWVzIHRvIGFsbCBwbGF0Zm9ybXMsIHdlIGhhbmRsZSBpdCBoZXJlXG4gIGlmICh1dGlsLmhhc1ZhbHVlKGRlc3RFbGVtZW50KSkge1xuICAgIGxldCBsb2NSZXN1bHQgPSBhd2FpdCB0aGlzLmdldExvY2F0aW9uSW5WaWV3KGRlc3RFbGVtZW50KTtcbiAgICBsZXQgc2l6ZVJlc3VsdCA9IGF3YWl0IHRoaXMuZ2V0U2l6ZShkZXN0RWxlbWVudCk7XG4gICAgbGV0IG9mZnNldFggPSAoTWF0aC5hYnMoZW5kWCkgPCAxICYmIE1hdGguYWJzKGVuZFgpID4gMCkgPyBzaXplUmVzdWx0LndpZHRoICogZW5kWCA6IGVuZFg7XG4gICAgbGV0IG9mZnNldFkgPSAoTWF0aC5hYnMoZW5kWSkgPCAxICYmIE1hdGguYWJzKGVuZFkpID4gMCkgPyBzaXplUmVzdWx0LmhlaWdodCAqIGVuZFkgOiBlbmRZO1xuICAgIGVuZFggPSBsb2NSZXN1bHQueCArIG9mZnNldFg7XG4gICAgZW5kWSA9IGxvY1Jlc3VsdC55ICsgb2Zmc2V0WTtcbiAgICAvLyBpZiB0aGUgdGFyZ2V0IGVsZW1lbnQgd2FzIHByb3ZpZGVkLCB0aGUgY29vcmRpbmF0ZXMgZm9yIHRoZSBkZXN0aW5hdGlvbiBuZWVkIHRvIGJlIHJlbGF0aXZlIHRvIGl0LlxuICAgIGlmICh1dGlsLmhhc1ZhbHVlKGVsZW1lbnQpKSB7XG4gICAgICBsZXQgZmlyc3RFbExvY2F0aW9uID0gYXdhaXQgdGhpcy5nZXRMb2NhdGlvbkluVmlldyhlbGVtZW50KTtcbiAgICAgIGVuZFggLT0gZmlyc3RFbExvY2F0aW9uLng7XG4gICAgICBlbmRZIC09IGZpcnN0RWxMb2NhdGlvbi55O1xuICAgIH1cbiAgfVxuICAvLyBjbGllbnRzIGFyZSByZXNwb25zaWJsZSB0byB1c2UgdGhlc2Ugb3B0aW9ucyBjb3JyZWN0bHlcbiAgcmV0dXJuIHtzdGFydFgsIHN0YXJ0WSwgZW5kWCwgZW5kWSwgZHVyYXRpb24sIHRvdWNoQ291bnQsIGVsZW1lbnR9O1xufTtcblxuY29tbWFuZHMucGVyZm9ybVRvdWNoID0gYXN5bmMgZnVuY3Rpb24gcGVyZm9ybVRvdWNoIChnZXN0dXJlcykge1xuICAvLyBwcmVzcy13YWl0LW1vdmVUby1yZWxlYXNlIGlzIGBzd2lwZWAsIHNvIHVzZSBuYXRpdmUgbWV0aG9kXG4gIGlmIChnZXN0dXJlcy5sZW5ndGggPT09IDQgJiZcbiAgICAgIGdlc3R1cmVzWzBdLmFjdGlvbiA9PT0gJ3ByZXNzJyAmJlxuICAgICAgZ2VzdHVyZXNbMV0uYWN0aW9uID09PSAnd2FpdCcgJiZcbiAgICAgIGdlc3R1cmVzWzJdLmFjdGlvbiA9PT0gJ21vdmVUbycgJiZcbiAgICAgIGdlc3R1cmVzWzNdLmFjdGlvbiA9PT0gJ3JlbGVhc2UnKSB7XG5cbiAgICBsZXQgc3dpcGVPcHRzID0gYXdhaXQgdGhpcy5nZXRTd2lwZU9wdGlvbnMoZ2VzdHVyZXMpO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnN3aXBlKHN3aXBlT3B0cy5zdGFydFgsIHN3aXBlT3B0cy5zdGFydFksIHN3aXBlT3B0cy5lbmRYLFxuICAgICAgICBzd2lwZU9wdHMuZW5kWSwgc3dpcGVPcHRzLmR1cmF0aW9uLCBzd2lwZU9wdHMudG91Y2hDb3VudCxcbiAgICAgICAgc3dpcGVPcHRzLmVsZW1lbnQpO1xuICB9XG4gIGxldCBhY3Rpb25zID0gXy5tYXAoZ2VzdHVyZXMsICdhY3Rpb24nKTtcblxuICBpZiAoYWN0aW9uc1swXSA9PT0gJ2xvbmdQcmVzcycgJiYgYWN0aW9uc1sxXSA9PT0gJ21vdmVUbycgJiYgYWN0aW9uc1syXSA9PT0gJ3JlbGVhc2UnKSB7XG4gICAgLy8gc29tZSB0aGluZ3MgYXJlIHNwZWNpYWxcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5kb1RvdWNoRHJhZyhnZXN0dXJlcyk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKGFjdGlvbnMubGVuZ3RoID09PSAyKSB7XG4gICAgICAvLyBgcHJlc3NgIHdpdGhvdXQgYSB3YWl0IGlzIHRvbyBzbG93IGFuZCBnZXRzIGludGVycHJldHRlZCBhcyBhIGBsb25nUHJlc3NgXG4gICAgICBpZiAoXy5oZWFkKGFjdGlvbnMpID09PSAncHJlc3MnICYmIF8ubGFzdChhY3Rpb25zKSA9PT0gJ3JlbGVhc2UnKSB7XG4gICAgICAgIGFjdGlvbnNbMF0gPSAndGFwJztcbiAgICAgICAgZ2VzdHVyZXNbMF0uYWN0aW9uID0gJ3RhcCc7XG4gICAgICB9XG5cbiAgICAgIC8vIHRoZSBgbG9uZ1ByZXNzYCBhbmQgYHRhcGAgbWV0aG9kcyByZWxlYXNlIG9uIHRoZWlyIG93blxuICAgICAgaWYgKChfLmhlYWQoYWN0aW9ucykgPT09ICd0YXAnIHx8IF8uaGVhZChhY3Rpb25zKSA9PT0gJ2xvbmdQcmVzcycpICYmIF8ubGFzdChhY3Rpb25zKSA9PT0gJ3JlbGVhc2UnKSB7XG4gICAgICAgIGdlc3R1cmVzLnBvcCgpO1xuICAgICAgICBhY3Rpb25zLnBvcCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBsb25ncHJlc3MgZm9sbG93ZWQgYnkgYW55dGhpbmcgb3RoZXIgdGhhbiByZWxlYXNlIHNob3VsZCBiZWNvbWUgYSBwcmVzcyBhbmQgd2FpdFxuICAgICAgaWYgKGFjdGlvbnNbMF0gPT09ICdsb25nUHJlc3MnKSB7XG4gICAgICAgIGFjdGlvbnMgPSBbJ3ByZXNzJywgJ3dhaXQnLCAuLi5hY3Rpb25zLnNsaWNlKDEpXTtcblxuICAgICAgICBsZXQgcHJlc3MgPSBnZXN0dXJlcy5zaGlmdCgpO1xuICAgICAgICBwcmVzcy5hY3Rpb24gPSAncHJlc3MnO1xuICAgICAgICBsZXQgd2FpdCA9IHtcbiAgICAgICAgICBhY3Rpb246ICd3YWl0JyxcbiAgICAgICAgICBvcHRpb25zOiB7bXM6IHByZXNzLm9wdGlvbnMuZHVyYXRpb24gfHwgMTAwMH1cbiAgICAgICAgfTtcbiAgICAgICAgZGVsZXRlIHByZXNzLm9wdGlvbnMuZHVyYXRpb247XG4gICAgICAgIGdlc3R1cmVzID0gW3ByZXNzLCB3YWl0LCAuLi5nZXN0dXJlc107XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IGZpeGVkR2VzdHVyZXMgPSBhd2FpdCB0aGlzLnBhcnNlVG91Y2goZ2VzdHVyZXMsIGZhbHNlKTtcbiAgICAvLyBmaXggcmVsZWFzZSBhY3Rpb24gdGhlbiBwZXJmb3JtIGFsbCBhY3Rpb25zXG4gICAgaWYgKGFjdGlvbnNbYWN0aW9ucy5sZW5ndGggLSAxXSA9PT0gJ3JlbGVhc2UnKSB7XG4gICAgICBhY3Rpb25zW2FjdGlvbnMubGVuZ3RoIC0gMV0gPSBhd2FpdCB0aGlzLmZpeFJlbGVhc2UoZ2VzdHVyZXMpO1xuICAgIH1cbiAgICBmb3IgKGxldCBnIG9mIGZpeGVkR2VzdHVyZXMpIHtcbiAgICAgIGF3YWl0IHRoaXMucGVyZm9ybUdlc3R1cmUoZyk7XG4gICAgfVxuICB9XG59O1xuXG5oZWxwZXJzLnBhcnNlVG91Y2ggPSBhc3luYyBmdW5jdGlvbiBwYXJzZVRvdWNoIChnZXN0dXJlcywgbXVsdGkpIHtcbiAgLy8gYmVjYXVzZSBtdWx0aS10b3VjaCByZWxlYXNlcyBhdCB0aGUgZW5kIGJ5IGRlZmF1bHRcbiAgaWYgKG11bHRpICYmIF8ubGFzdChnZXN0dXJlcykuYWN0aW9uID09PSAncmVsZWFzZScpIHtcbiAgICBnZXN0dXJlcy5wb3AoKTtcbiAgfVxuXG4gIGxldCB0b3VjaFN0YXRlT2JqZWN0cyA9IGF3YWl0IGFzeW5jbWFwKGdlc3R1cmVzLCBhc3luYyAoZ2VzdHVyZSkgPT4ge1xuICAgIGxldCBvcHRpb25zID0gZ2VzdHVyZS5vcHRpb25zIHx8IHt9O1xuICAgIGlmIChfLmluY2x1ZGVzKFsncHJlc3MnLCAnbW92ZVRvJywgJ3RhcCcsICdsb25nUHJlc3MnXSwgZ2VzdHVyZS5hY3Rpb24pKSB7XG4gICAgICBvcHRpb25zLm9mZnNldCA9IGZhbHNlO1xuICAgICAgbGV0IGVsZW1lbnRJZCA9IGdlc3R1cmUub3B0aW9ucy5lbGVtZW50O1xuICAgICAgaWYgKGVsZW1lbnRJZCkge1xuICAgICAgICBsZXQgcG9zID0gYXdhaXQgdGhpcy5nZXRMb2NhdGlvbkluVmlldyhlbGVtZW50SWQpO1xuICAgICAgICBpZiAoZ2VzdHVyZS5vcHRpb25zLnggfHwgZ2VzdHVyZS5vcHRpb25zLnkpIHtcbiAgICAgICAgICBvcHRpb25zLnggPSBwb3MueCArIChnZXN0dXJlLm9wdGlvbnMueCB8fCAwKTtcbiAgICAgICAgICBvcHRpb25zLnkgPSBwb3MueSArIChnZXN0dXJlLm9wdGlvbnMueSB8fCAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB7d2lkdGgsIGhlaWdodH0gPSBhd2FpdCB0aGlzLmdldFNpemUoZWxlbWVudElkKTtcbiAgICAgICAgICBvcHRpb25zLnggPSBwb3MueCArICh3aWR0aCAvIDIpO1xuICAgICAgICAgIG9wdGlvbnMueSA9IHBvcy55ICsgKGhlaWdodCAvIDIpO1xuICAgICAgICB9XG4gICAgICAgIGxldCB0b3VjaFN0YXRlT2JqZWN0ID0ge1xuICAgICAgICAgIGFjdGlvbjogZ2VzdHVyZS5hY3Rpb24sXG4gICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICB0aW1lT2Zmc2V0OiAwLjAwNSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHRvdWNoU3RhdGVPYmplY3Q7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvcHRpb25zLnggPSAoZ2VzdHVyZS5vcHRpb25zLnggfHwgMCk7XG4gICAgICAgIG9wdGlvbnMueSA9IChnZXN0dXJlLm9wdGlvbnMueSB8fCAwKTtcblxuICAgICAgICBsZXQgdG91Y2hTdGF0ZU9iamVjdCA9IHtcbiAgICAgICAgICBhY3Rpb246IGdlc3R1cmUuYWN0aW9uLFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgdGltZU9mZnNldDogMC4wMDUsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB0b3VjaFN0YXRlT2JqZWN0O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgb2Zmc2V0ID0gMC4wMDU7XG4gICAgICBpZiAoZ2VzdHVyZS5hY3Rpb24gPT09ICd3YWl0Jykge1xuICAgICAgICBvcHRpb25zID0gZ2VzdHVyZS5vcHRpb25zO1xuICAgICAgICBvZmZzZXQgPSAocGFyc2VJbnQoZ2VzdHVyZS5vcHRpb25zLm1zLCAxMCkgLyAxMDAwKTtcbiAgICAgIH1cbiAgICAgIGxldCB0b3VjaFN0YXRlT2JqZWN0ID0ge1xuICAgICAgICBhY3Rpb246IGdlc3R1cmUuYWN0aW9uLFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICB0aW1lT2Zmc2V0OiBvZmZzZXQsXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHRvdWNoU3RhdGVPYmplY3Q7XG4gICAgfVxuICB9LCBmYWxzZSk7XG4gIC8vIHdlIG5lZWQgdG8gY2hhbmdlIHRoZSB0aW1lICh3aGljaCBpcyBub3cgYW4gb2Zmc2V0KVxuICAvLyBhbmQgdGhlIHBvc2l0aW9uICh3aGljaCBtYXkgYmUgYW4gb2Zmc2V0KVxuICBsZXQgcHJldlBvcyA9IG51bGwsXG4gICAgICB0aW1lID0gMDtcbiAgZm9yIChsZXQgc3RhdGUgb2YgdG91Y2hTdGF0ZU9iamVjdHMpIHtcbiAgICBpZiAoXy5pc1VuZGVmaW5lZChzdGF0ZS5vcHRpb25zLngpICYmIF8uaXNVbmRlZmluZWQoc3RhdGUub3B0aW9ucy55KSAmJiBwcmV2UG9zICE9PSBudWxsKSB7XG4gICAgICAvLyB0aGlzIGhhcHBlbnMgd2l0aCB3YWl0XG4gICAgICBzdGF0ZS5vcHRpb25zLnggPSBwcmV2UG9zLng7XG4gICAgICBzdGF0ZS5vcHRpb25zLnkgPSBwcmV2UG9zLnk7XG4gICAgfVxuICAgIGlmIChzdGF0ZS5vcHRpb25zLm9mZnNldCAmJiBwcmV2UG9zKSB7XG4gICAgICAvLyB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyBhbiBvZmZzZXRcbiAgICAgIHN0YXRlLm9wdGlvbnMueCArPSBwcmV2UG9zLng7XG4gICAgICBzdGF0ZS5vcHRpb25zLnkgKz0gcHJldlBvcy55O1xuICAgIH1cbiAgICBkZWxldGUgc3RhdGUub3B0aW9ucy5vZmZzZXQ7XG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKHN0YXRlLm9wdGlvbnMueCkgJiYgIV8uaXNVbmRlZmluZWQoc3RhdGUub3B0aW9ucy55KSkge1xuICAgICAgcHJldlBvcyA9IHN0YXRlLm9wdGlvbnM7XG4gICAgfVxuXG4gICAgaWYgKG11bHRpKSB7XG4gICAgICBsZXQgdGltZU9mZnNldCA9IHN0YXRlLnRpbWVPZmZzZXQ7XG4gICAgICB0aW1lICs9IHRpbWVPZmZzZXQ7XG4gICAgICBzdGF0ZS50aW1lID0gYW5kcm9pZEhlbHBlcnMudHJ1bmNhdGVEZWNpbWFscyh0aW1lLCAzKTtcblxuICAgICAgLy8gbXVsdGkgZ2VzdHVyZXMgcmVxdWlyZSAndG91Y2gnIHJhdGhlciB0aGFuICdvcHRpb25zJ1xuICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKHN0YXRlLm9wdGlvbnMueCkgJiYgIV8uaXNVbmRlZmluZWQoc3RhdGUub3B0aW9ucy55KSkge1xuICAgICAgICBzdGF0ZS50b3VjaCA9IHtcbiAgICAgICAgICB4OiBzdGF0ZS5vcHRpb25zLngsXG4gICAgICAgICAgeTogc3RhdGUub3B0aW9ucy55XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBkZWxldGUgc3RhdGUub3B0aW9ucztcbiAgICB9XG4gICAgZGVsZXRlIHN0YXRlLnRpbWVPZmZzZXQ7XG4gIH1cbiAgcmV0dXJuIHRvdWNoU3RhdGVPYmplY3RzO1xufTtcblxuXG5jb21tYW5kcy5wZXJmb3JtTXVsdGlBY3Rpb24gPSBhc3luYyBmdW5jdGlvbiBwZXJmb3JtTXVsdGlBY3Rpb24gKGFjdGlvbnMsIGVsZW1lbnRJZCkge1xuICAvLyBBbmRyb2lkIG5lZWRzIGF0IGxlYXN0IHR3byBhY3Rpb25zIHRvIGJlIGFibGUgdG8gcGVyZm9ybSBhIG11bHRpIHBvaW50ZXIgZ2VzdHVyZVxuICBpZiAoYWN0aW9ucy5sZW5ndGggPT09IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ011bHRpIFBvaW50ZXIgR2VzdHVyZXMgbmVlZCBhdCBsZWFzdCB0d28gYWN0aW9ucy4gJyArXG4gICAgICAgICdVc2UgVG91Y2ggQWN0aW9ucyBmb3IgYSBzaW5nbGUgYWN0aW9uLicpO1xuICB9XG5cbiAgY29uc3Qgc3RhdGVzID0gYXdhaXQgYXN5bmNtYXAoYWN0aW9ucywgYXN5bmMgKGFjdGlvbikgPT4gYXdhaXQgdGhpcy5wYXJzZVRvdWNoKGFjdGlvbiwgdHJ1ZSksIGZhbHNlKTtcblxuICByZXR1cm4gYXdhaXQgdGhpcy5kb1BlcmZvcm1NdWx0aUFjdGlvbihlbGVtZW50SWQsIHN0YXRlcyk7XG59O1xuXG4vKipcbiAqIFJlYXNvbiBmb3IgaXNvbGF0aW5nIGRvUGVyZm9ybU11bHRpQWN0aW9uIGZyb20gcGVyZm9ybU11bHRpQWN0aW9uIGlzIGZvciByZXVzaW5nIHBlcmZvcm1NdWx0aUFjdGlvblxuICogYWNyb3NzIGFuZHJvaWQtZHJpdmVycyAobGlrZSBhcHBpdW0tdWlhdXRvbWF0b3IyLWRyaXZlcikgYW5kIHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb24uXG4gKiBPdGhlciBhbmRyb2lkLWRyaXZlcnMgKGxpa2UgYXBwaXVtLXVpYXV0b21hdG9yMi1kcml2ZXIpIG5lZWQgdG8gb3ZlcnJpZGUgZG9QZXJmb3JtTXVsdGlBY3Rpb25cbiAqIHRvIGZhY2lsaXRhdGUgcGVyZm9ybU11bHRpQWN0aW9uLlxuICovXG5jb21tYW5kcy5kb1BlcmZvcm1NdWx0aUFjdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIGRvUGVyZm9ybU11bHRpQWN0aW9uIChlbGVtZW50SWQsIHN0YXRlcykge1xuICBsZXQgb3B0cztcbiAgaWYgKGVsZW1lbnRJZCkge1xuICAgIG9wdHMgPSB7XG4gICAgICBlbGVtZW50SWQsXG4gICAgICBhY3Rpb25zOiBzdGF0ZXNcbiAgICB9O1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OnBlcmZvcm1NdWx0aVBvaW50ZXJHZXN0dXJlJywgb3B0cyk7XG4gIH0gZWxzZSB7XG4gICAgb3B0cyA9IHtcbiAgICAgIGFjdGlvbnM6IHN0YXRlc1xuICAgIH07XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ3BlcmZvcm1NdWx0aVBvaW50ZXJHZXN0dXJlJywgb3B0cyk7XG4gIH1cbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMsIGhlbHBlcnMpO1xuZXhwb3J0IHsgY29tbWFuZHMsIGhlbHBlcnMgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwiZmlsZSI6ImxpYi9jb21tYW5kcy90b3VjaC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
|
|
398
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL3RvdWNoLmpzIiwibmFtZXMiOlsiY29tbWFuZHMiLCJoZWxwZXJzIiwiZXh0ZW5zaW9ucyIsImdldENvb3JkRGVmYXVsdCIsInZhbCIsInV0aWwiLCJoYXNWYWx1ZSIsImdldFN3aXBlVG91Y2hEdXJhdGlvbiIsIndhaXRHZXN0dXJlIiwiZHVyYXRpb24iLCJvcHRpb25zIiwibXMiLCJkb1RvdWNoQWN0aW9uIiwiYWN0aW9uIiwib3B0cyIsImVsZW1lbnQiLCJ4IiwieSIsImNvdW50IiwidGFwIiwidG91Y2hEb3duIiwidG91Y2hVcCIsInRvdWNoTW92ZSIsIkIiLCJkZWxheSIsInRvdWNoTG9uZ0NsaWNrIiwibG9nIiwid2FybiIsImVycm9yQW5kVGhyb3ciLCJkb1RvdWNoRHJhZyIsImdlc3R1cmVzIiwibG9uZ1ByZXNzIiwibW92ZVRvIiwic3RhcnRYIiwic3RhcnRZIiwiZW5kWCIsImVuZFkiLCJnZXRMb2NhdGlvbkluVmlldyIsImFwaUxldmVsIiwiYWRiIiwiZ2V0QXBpTGV2ZWwiLCJNYXRoIiwibWF4IiwiZHJhZyIsImZpeFJlbGVhc2UiLCJyZWxlYXNlIiwiXyIsImxhc3QiLCJjbG9uZSIsInJlZiIsImdlc3R1cmUiLCJyZXZlcnNlIiwibG9jIiwic2l6ZSIsImdldFNpemUiLCJ3aWR0aCIsImhlaWdodCIsInBpY2siLCJwZXJmb3JtR2VzdHVyZSIsImUiLCJlcnJvcnMiLCJOb1N1Y2hFbGVtZW50RXJyb3IiLCJkZWJ1ZyIsImdldFN3aXBlT3B0aW9ucyIsInRvdWNoQ291bnQiLCJkZXN0RWxlbWVudCIsImxvY1Jlc3VsdCIsInNpemVSZXN1bHQiLCJvZmZzZXRYIiwiYWJzIiwib2Zmc2V0WSIsImZpcnN0RWxMb2NhdGlvbiIsInBlcmZvcm1Ub3VjaCIsImxlbmd0aCIsInN3aXBlT3B0cyIsInN3aXBlIiwiYWN0aW9ucyIsIm1hcCIsImhlYWQiLCJwb3AiLCJzbGljZSIsInByZXNzIiwic2hpZnQiLCJ3YWl0IiwiZml4ZWRHZXN0dXJlcyIsInBhcnNlVG91Y2giLCJnIiwibXVsdGkiLCJ0b3VjaFN0YXRlT2JqZWN0cyIsImluY2x1ZGVzIiwib2Zmc2V0IiwiZWxlbWVudElkIiwicG9zIiwidG91Y2hTdGF0ZU9iamVjdCIsInRpbWVPZmZzZXQiLCJwYXJzZUludCIsInByZXZQb3MiLCJ0aW1lIiwic3RhdGUiLCJpc1VuZGVmaW5lZCIsImFuZHJvaWRIZWxwZXJzIiwidHJ1bmNhdGVEZWNpbWFscyIsInRvdWNoIiwicGVyZm9ybU11bHRpQWN0aW9uIiwiRXJyb3IiLCJzdGF0ZXMiLCJkb1BlcmZvcm1NdWx0aUFjdGlvbiIsImJvb3RzdHJhcCIsInNlbmRBY3Rpb24iLCJPYmplY3QiLCJhc3NpZ24iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvY29tbWFuZHMvdG91Y2guanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBhbmRyb2lkSGVscGVycyBmcm9tICcuLi9hbmRyb2lkLWhlbHBlcnMnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IHsgZXJyb3JzLCBpc0Vycm9yVHlwZSB9IGZyb20gJ0BhcHBpdW0vYmFzZS1kcml2ZXInO1xuaW1wb3J0IHsgYXN5bmNtYXAgfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgeyB1dGlsIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcblxubGV0IGNvbW1hbmRzID0ge30sIGhlbHBlcnMgPSB7fSwgZXh0ZW5zaW9ucyA9IHt9O1xuXG5mdW5jdGlvbiBnZXRDb29yZERlZmF1bHQgKHZhbCkge1xuICAvLyBnb2luZyB0aGUgbG9uZyB3YXkgYW5kIGNoZWNraW5nIGZvciB1bmRlZmluZWQgYW5kIG51bGwgc2luY2VcbiAgLy8gd2UgY2FuJ3QgYmUgYXNzdXJlZCBgZWxJZGAgaXMgYSBzdHJpbmcgYW5kIG5vdCBhbiBpbnQuIFNhbWVcbiAgLy8gdGhpbmcgd2l0aCBkZXN0RWxlbWVudCBiZWxvdy5cbiAgcmV0dXJuIHV0aWwuaGFzVmFsdWUodmFsKSA/IHZhbCA6IDAuNTtcbn1cblxuZnVuY3Rpb24gZ2V0U3dpcGVUb3VjaER1cmF0aW9uICh3YWl0R2VzdHVyZSkge1xuICAvLyB0aGUgdG91Y2ggYWN0aW9uIGFwaSB1c2VzIG1zLCB3ZSB3YW50IHNlY29uZHNcbiAgLy8gMC44IGlzIHRoZSBkZWZhdWx0IHRpbWUgZm9yIHRoZSBvcGVyYXRpb25cbiAgbGV0IGR1cmF0aW9uID0gMC44O1xuICBpZiAodHlwZW9mIHdhaXRHZXN0dXJlLm9wdGlvbnMubXMgIT09ICd1bmRlZmluZWQnICYmIHdhaXRHZXN0dXJlLm9wdGlvbnMubXMpIHtcbiAgICBkdXJhdGlvbiA9IHdhaXRHZXN0dXJlLm9wdGlvbnMubXMgLyAxMDAwO1xuICAgIGlmIChkdXJhdGlvbiA9PT0gMCkge1xuICAgICAgLy8gc2V0IHRvIGEgdmVyeSBsb3cgbnVtYmVyLCBzaW5jZSB0aGV5IHdhbnRlZCBpdCBmYXN0XG4gICAgICAvLyBidXQgYmVsb3cgMC4xIGJlY29tZXMgMCBzdGVwcywgd2hpY2ggY2F1c2VzIGVycm9yc1xuICAgICAgZHVyYXRpb24gPSAwLjE7XG4gICAgfVxuICB9XG4gIHJldHVybiBkdXJhdGlvbjtcbn1cblxuY29tbWFuZHMuZG9Ub3VjaEFjdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIGRvVG91Y2hBY3Rpb24gKGFjdGlvbiwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IHsgZWxlbWVudCwgeCwgeSwgY291bnQsIG1zLCBkdXJhdGlvbiB9ID0gb3B0cztcbiAgLy8gcGFyc2VUb3VjaCBwcmVjYWxjdWxhdGVzIGFic29sdXRlIGVsZW1lbnQgcG9zaXRpb25zXG4gIC8vIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gcGFzcyBgZWxlbWVudGAgdG8gdGhlIGFmZmVjdGVkIGdlc3R1cmVzXG4gIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgY2FzZSAndGFwJzpcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnRhcChudWxsLCB4LCB5LCBjb3VudCk7XG4gICAgY2FzZSAncHJlc3MnOlxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMudG91Y2hEb3duKG51bGwsIHgsIHkpO1xuICAgIGNhc2UgJ3JlbGVhc2UnOlxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMudG91Y2hVcChlbGVtZW50LCB4LCB5KTtcbiAgICBjYXNlICdtb3ZlVG8nOlxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMudG91Y2hNb3ZlKG51bGwsIHgsIHkpO1xuICAgIGNhc2UgJ3dhaXQnOlxuICAgICAgcmV0dXJuIGF3YWl0IEIuZGVsYXkobXMpO1xuICAgIGNhc2UgJ2xvbmdQcmVzcyc6XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy50b3VjaExvbmdDbGljayhudWxsLCB4LCB5LCBkdXJhdGlvbiB8fCAxMDAwKTtcbiAgICBjYXNlICdjYW5jZWwnOlxuICAgICAgLy8gVE9ETzogY2xhcmlmeSBiZWhhdmlvciBvZiAnY2FuY2VsJyBhY3Rpb24gYW5kIGZpeCB0aGlzXG4gICAgICB0aGlzLmxvZy53YXJuKCdDYW5jZWwgYWN0aW9uIGN1cnJlbnRseSBoYXMgbm8gZWZmZWN0Jyk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdyhgdW5rbm93biBhY3Rpb24gJHthY3Rpb259YCk7XG4gIH1cbn07XG5cbi8vIGRyYWcgaXMgKm5vdCogcHJlc3MtbW92ZS1yZWxlYXNlLCBzbyB3ZSBuZWVkIHRvIHRyYW5zbGF0ZVxuLy8gZHJhZyB3b3JrcyBmaW5lIGZvciBzY3JvbGwsIGFzIHdlbGxcbmhlbHBlcnMuZG9Ub3VjaERyYWcgPSBhc3luYyBmdW5jdGlvbiBkb1RvdWNoRHJhZyAoZ2VzdHVyZXMpIHtcbiAgbGV0IGxvbmdQcmVzcyA9IGdlc3R1cmVzWzBdO1xuICBsZXQgbW92ZVRvID0gZ2VzdHVyZXNbMV07XG4gIGxldCBzdGFydFggPSBsb25nUHJlc3Mub3B0aW9ucy54IHx8IDAsXG4gICAgICBzdGFydFkgPSBsb25nUHJlc3Mub3B0aW9ucy55IHx8IDAsXG4gICAgICBlbmRYID0gbW92ZVRvLm9wdGlvbnMueCB8fCAwLFxuICAgICAgZW5kWSA9IG1vdmVUby5vcHRpb25zLnkgfHwgMDtcbiAgaWYgKGxvbmdQcmVzcy5vcHRpb25zLmVsZW1lbnQpIHtcbiAgICBsZXQge3gsIHl9ID0gYXdhaXQgdGhpcy5nZXRMb2NhdGlvbkluVmlldyhsb25nUHJlc3Mub3B0aW9ucy5lbGVtZW50KTtcbiAgICBzdGFydFggKz0geCB8fCAwO1xuICAgIHN0YXJ0WSArPSB5IHx8IDA7XG4gIH1cbiAgaWYgKG1vdmVUby5vcHRpb25zLmVsZW1lbnQpIHtcbiAgICBsZXQge3gsIHl9ID0gYXdhaXQgdGhpcy5nZXRMb2NhdGlvbkluVmlldyhtb3ZlVG8ub3B0aW9ucy5lbGVtZW50KTtcbiAgICBlbmRYICs9IHggfHwgMDtcbiAgICBlbmRZICs9IHkgfHwgMDtcbiAgfVxuXG4gIGxldCBhcGlMZXZlbCA9IGF3YWl0IHRoaXMuYWRiLmdldEFwaUxldmVsKCk7XG4gIC8vIGxvbGxpcG9wIHRha2VzIGEgbGl0dGxlIGxvbmdlciB0byBnZXQgdGhpbmdzIHJvbGxpbmdcbiAgbGV0IGR1cmF0aW9uID0gYXBpTGV2ZWwgPj0gNSA/IDIgOiAxO1xuICAvLyBtYWtlIHN1cmUgdGhhdCBpZiB0aGUgbG9uZyBwcmVzcyBoYXMgYSBkdXJhdGlvbiwgd2UgdXNlIGl0LlxuICBpZiAobG9uZ1ByZXNzLm9wdGlvbnMgJiYgbG9uZ1ByZXNzLm9wdGlvbnMuZHVyYXRpb24pIHtcbiAgICBkdXJhdGlvbiA9IE1hdGgubWF4KGxvbmdQcmVzcy5vcHRpb25zLmR1cmF0aW9uIC8gMTAwMCwgZHVyYXRpb24pO1xuICB9XG5cbiAgLy8gYGRyYWdgIHdpbGwgdGFrZSBjYXJlIG9mIHdoZXRoZXIgdGhlcmUgaXMgYW4gZWxlbWVudCBvciBub3QgYXQgdGhhdCBsZXZlbFxuICByZXR1cm4gYXdhaXQgdGhpcy5kcmFnKHN0YXJ0WCwgc3RhcnRZLCBlbmRYLCBlbmRZLCBkdXJhdGlvbiwgMSwgbG9uZ1ByZXNzLm9wdGlvbnMuZWxlbWVudCwgbW92ZVRvLm9wdGlvbnMuZWxlbWVudCk7XG59O1xuXG4vLyBSZWxlYXNlIGdlc3R1cmUgbmVlZHMgZWxlbWVudCBvciBjby1vcmRpbmF0ZXMgdG8gcmVsZWFzZSBpdCBmcm9tIHRoYXQgcG9zaXRpb25cbi8vIG9yIGVsc2UgcmVsZWFzZSBnZXN0dXJlIGlzIHBlcmZvcm1lZCBmcm9tIGNlbnRlciBvZiB0aGUgc2NyZWVuLCBzbyB0byBmaXggaXRcbi8vIFRoaXMgbWV0aG9kIHNldHMgY28tb3JkaW5hdGVzL2VsZW1lbnQgdG8gcmVsZWFzZSBnZXN0dXJlIGlmIGl0IGhhcyBubyBvcHRpb25zIHNldCBhbHJlYWR5LlxuaGVscGVycy5maXhSZWxlYXNlID0gYXN5bmMgZnVuY3Rpb24gZml4UmVsZWFzZSAoZ2VzdHVyZXMpIHtcbiAgbGV0IHJlbGVhc2UgPSBfLmxhc3QoZ2VzdHVyZXMpO1xuICAvLyBzb21ldGltZXMgdGhlcmUgYXJlIG5vIG9wdGlvbnNcbiAgcmVsZWFzZS5vcHRpb25zID0gcmVsZWFzZS5vcHRpb25zIHx8IHt9O1xuICAvLyBub3RoaW5nIHRvIGRvIGlmIHJlbGVhc2Ugb3B0aW9ucyBhcmUgYWxyZWFkeSBzZXRcbiAgaWYgKHJlbGVhc2Uub3B0aW9ucy5lbGVtZW50IHx8IChyZWxlYXNlLm9wdGlvbnMueCAmJiByZWxlYXNlLm9wdGlvbnMueSkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgLy8gd2l0aG91dCBjb29yZGluYXRlcywgYHJlbGVhc2VgIHVzZXMgdGhlIGNlbnRlciBvZiB0aGUgc2NyZWVuLCB3aGljaCxcbiAgLy8gZ2VuZXJhbGx5IHNwZWFraW5nLCBpcyBub3Qgd2hhdCB3ZSB3YW50XG4gIC8vIHRoZXJlZm9yZTogbG9vcCBiYWNrd2FyZHMgYW5kIHVzZSB0aGUgbGFzdCBjb21tYW5kIHdpdGggYW4gZWxlbWVudCBhbmQvb3JcbiAgLy8gb2Zmc2V0IGNvb3JkaW5hdGVzXG4gIGdlc3R1cmVzID0gXy5jbG9uZShnZXN0dXJlcyk7XG4gIGxldCByZWYgPSBudWxsO1xuICBmb3IgKGxldCBnZXN0dXJlIG9mIGdlc3R1cmVzLnJldmVyc2UoKSkge1xuICAgIGxldCBvcHRzID0gZ2VzdHVyZS5vcHRpb25zO1xuICAgIGlmIChvcHRzLmVsZW1lbnQgfHwgKG9wdHMueCAmJiBvcHRzLnkpKSB7XG4gICAgICByZWYgPSBnZXN0dXJlO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIGlmIChyZWYpIHtcbiAgICBsZXQgb3B0cyA9IHJlZi5vcHRpb25zO1xuICAgIGlmIChvcHRzLmVsZW1lbnQpIHtcbiAgICAgIGxldCBsb2MgPSBhd2FpdCB0aGlzLmdldExvY2F0aW9uSW5WaWV3KG9wdHMuZWxlbWVudCk7XG4gICAgICBpZiAob3B0cy54ICYmIG9wdHMueSkge1xuICAgICAgICAvLyB0aGlzIGlzIGFuIG9mZnNldCBmcm9tIHRoZSBlbGVtZW50XG4gICAgICAgIHJlbGVhc2Uub3B0aW9ucyA9IHtcbiAgICAgICAgICB4OiBsb2MueCArIG9wdHMueCxcbiAgICAgICAgICB5OiBsb2MueSArIG9wdHMueVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gdGhpcyBpcyB0aGUgY2VudGVyIG9mIHRoZSBlbGVtZW50XG4gICAgICAgIGxldCBzaXplID0gYXdhaXQgdGhpcy5nZXRTaXplKG9wdHMuZWxlbWVudCk7XG4gICAgICAgIHJlbGVhc2Uub3B0aW9ucyA9IHtcbiAgICAgICAgICB4OiBsb2MueCArIHNpemUud2lkdGggLyAyLFxuICAgICAgICAgIHk6IGxvYy55ICsgc2l6ZS5oZWlnaHQgLyAyXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlbGVhc2Uub3B0aW9ucyA9IF8ucGljayhvcHRzLCAneCcsICd5Jyk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZWxlYXNlO1xufTtcblxuLy8gUGVyZm9ybSBvbmUgZ2VzdHVyZVxuaGVscGVycy5wZXJmb3JtR2VzdHVyZSA9IGFzeW5jIGZ1bmN0aW9uIHBlcmZvcm1HZXN0dXJlIChnZXN0dXJlKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZG9Ub3VjaEFjdGlvbihnZXN0dXJlLmFjdGlvbiwgZ2VzdHVyZS5vcHRpb25zIHx8IHt9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIHNvbWV0aW1lIHRoZSBlbGVtZW50IGlzIG5vdCBhdmFpbGFibGUgd2hlbiByZWxlYXNpbmcsIHJldHJ5IHdpdGhvdXQgaXRcbiAgICBpZiAoaXNFcnJvclR5cGUoZSwgZXJyb3JzLk5vU3VjaEVsZW1lbnRFcnJvcikgJiYgZ2VzdHVyZS5hY3Rpb24gPT09ICdyZWxlYXNlJyAmJlxuICAgICAgICBnZXN0dXJlLm9wdGlvbnMuZWxlbWVudCkge1xuICAgICAgZGVsZXRlIGdlc3R1cmUub3B0aW9ucy5lbGVtZW50O1xuICAgICAgdGhpcy5sb2cuZGVidWcoYHJldHJ5aW5nIHJlbGVhc2Ugd2l0aG91dCBlbGVtZW50IG9wdHM6ICR7Z2VzdHVyZS5vcHRpb25zfS5gKTtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmRvVG91Y2hBY3Rpb24oZ2VzdHVyZS5hY3Rpb24sIGdlc3R1cmUub3B0aW9ucyB8fCB7fSk7XG4gICAgfVxuICAgIHRocm93IGU7XG4gIH1cbn07XG5cbmNvbW1hbmRzLmdldFN3aXBlT3B0aW9ucyA9IGFzeW5jIGZ1bmN0aW9uIGdldFN3aXBlT3B0aW9ucyAoZ2VzdHVyZXMsIHRvdWNoQ291bnQgPSAxKSB7XG4gIGxldCBzdGFydFggPSBnZXRDb29yZERlZmF1bHQoZ2VzdHVyZXNbMF0ub3B0aW9ucy54KSxcbiAgICAgIHN0YXJ0WSA9IGdldENvb3JkRGVmYXVsdChnZXN0dXJlc1swXS5vcHRpb25zLnkpLFxuICAgICAgZW5kWCA9IGdldENvb3JkRGVmYXVsdChnZXN0dXJlc1syXS5vcHRpb25zLngpLFxuICAgICAgZW5kWSA9IGdldENvb3JkRGVmYXVsdChnZXN0dXJlc1syXS5vcHRpb25zLnkpLFxuICAgICAgZHVyYXRpb24gPSBnZXRTd2lwZVRvdWNoRHVyYXRpb24oZ2VzdHVyZXNbMV0pLFxuICAgICAgZWxlbWVudCA9IGdlc3R1cmVzWzBdLm9wdGlvbnMuZWxlbWVudCxcbiAgICAgIGRlc3RFbGVtZW50ID0gZ2VzdHVyZXNbMl0ub3B0aW9ucy5lbGVtZW50IHx8IGdlc3R1cmVzWzBdLm9wdGlvbnMuZWxlbWVudDtcblxuICAvLyB0aGVyZSdzIG5vIGRlc3RpbmF0aW9uIGVsZW1lbnQgaGFuZGxpbmcgaW4gYm9vdHN0cmFwIGFuZCBzaW5jZSBpdCBhcHBsaWVzIHRvIGFsbCBwbGF0Zm9ybXMsIHdlIGhhbmRsZSBpdCBoZXJlXG4gIGlmICh1dGlsLmhhc1ZhbHVlKGRlc3RFbGVtZW50KSkge1xuICAgIGxldCBsb2NSZXN1bHQgPSBhd2FpdCB0aGlzLmdldExvY2F0aW9uSW5WaWV3KGRlc3RFbGVtZW50KTtcbiAgICBsZXQgc2l6ZVJlc3VsdCA9IGF3YWl0IHRoaXMuZ2V0U2l6ZShkZXN0RWxlbWVudCk7XG4gICAgbGV0IG9mZnNldFggPSAoTWF0aC5hYnMoZW5kWCkgPCAxICYmIE1hdGguYWJzKGVuZFgpID4gMCkgPyBzaXplUmVzdWx0LndpZHRoICogZW5kWCA6IGVuZFg7XG4gICAgbGV0IG9mZnNldFkgPSAoTWF0aC5hYnMoZW5kWSkgPCAxICYmIE1hdGguYWJzKGVuZFkpID4gMCkgPyBzaXplUmVzdWx0LmhlaWdodCAqIGVuZFkgOiBlbmRZO1xuICAgIGVuZFggPSBsb2NSZXN1bHQueCArIG9mZnNldFg7XG4gICAgZW5kWSA9IGxvY1Jlc3VsdC55ICsgb2Zmc2V0WTtcbiAgICAvLyBpZiB0aGUgdGFyZ2V0IGVsZW1lbnQgd2FzIHByb3ZpZGVkLCB0aGUgY29vcmRpbmF0ZXMgZm9yIHRoZSBkZXN0aW5hdGlvbiBuZWVkIHRvIGJlIHJlbGF0aXZlIHRvIGl0LlxuICAgIGlmICh1dGlsLmhhc1ZhbHVlKGVsZW1lbnQpKSB7XG4gICAgICBsZXQgZmlyc3RFbExvY2F0aW9uID0gYXdhaXQgdGhpcy5nZXRMb2NhdGlvbkluVmlldyhlbGVtZW50KTtcbiAgICAgIGVuZFggLT0gZmlyc3RFbExvY2F0aW9uLng7XG4gICAgICBlbmRZIC09IGZpcnN0RWxMb2NhdGlvbi55O1xuICAgIH1cbiAgfVxuICAvLyBjbGllbnRzIGFyZSByZXNwb25zaWJsZSB0byB1c2UgdGhlc2Ugb3B0aW9ucyBjb3JyZWN0bHlcbiAgcmV0dXJuIHtzdGFydFgsIHN0YXJ0WSwgZW5kWCwgZW5kWSwgZHVyYXRpb24sIHRvdWNoQ291bnQsIGVsZW1lbnR9O1xufTtcblxuY29tbWFuZHMucGVyZm9ybVRvdWNoID0gYXN5bmMgZnVuY3Rpb24gcGVyZm9ybVRvdWNoIChnZXN0dXJlcykge1xuICAvLyBwcmVzcy13YWl0LW1vdmVUby1yZWxlYXNlIGlzIGBzd2lwZWAsIHNvIHVzZSBuYXRpdmUgbWV0aG9kXG4gIGlmIChnZXN0dXJlcy5sZW5ndGggPT09IDQgJiZcbiAgICAgIGdlc3R1cmVzWzBdLmFjdGlvbiA9PT0gJ3ByZXNzJyAmJlxuICAgICAgZ2VzdHVyZXNbMV0uYWN0aW9uID09PSAnd2FpdCcgJiZcbiAgICAgIGdlc3R1cmVzWzJdLmFjdGlvbiA9PT0gJ21vdmVUbycgJiZcbiAgICAgIGdlc3R1cmVzWzNdLmFjdGlvbiA9PT0gJ3JlbGVhc2UnKSB7XG5cbiAgICBsZXQgc3dpcGVPcHRzID0gYXdhaXQgdGhpcy5nZXRTd2lwZU9wdGlvbnMoZ2VzdHVyZXMpO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnN3aXBlKHN3aXBlT3B0cy5zdGFydFgsIHN3aXBlT3B0cy5zdGFydFksIHN3aXBlT3B0cy5lbmRYLFxuICAgICAgICBzd2lwZU9wdHMuZW5kWSwgc3dpcGVPcHRzLmR1cmF0aW9uLCBzd2lwZU9wdHMudG91Y2hDb3VudCxcbiAgICAgICAgc3dpcGVPcHRzLmVsZW1lbnQpO1xuICB9XG4gIGxldCBhY3Rpb25zID0gXy5tYXAoZ2VzdHVyZXMsICdhY3Rpb24nKTtcblxuICBpZiAoYWN0aW9uc1swXSA9PT0gJ2xvbmdQcmVzcycgJiYgYWN0aW9uc1sxXSA9PT0gJ21vdmVUbycgJiYgYWN0aW9uc1syXSA9PT0gJ3JlbGVhc2UnKSB7XG4gICAgLy8gc29tZSB0aGluZ3MgYXJlIHNwZWNpYWxcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5kb1RvdWNoRHJhZyhnZXN0dXJlcyk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKGFjdGlvbnMubGVuZ3RoID09PSAyKSB7XG4gICAgICAvLyBgcHJlc3NgIHdpdGhvdXQgYSB3YWl0IGlzIHRvbyBzbG93IGFuZCBnZXRzIGludGVycHJldHRlZCBhcyBhIGBsb25nUHJlc3NgXG4gICAgICBpZiAoXy5oZWFkKGFjdGlvbnMpID09PSAncHJlc3MnICYmIF8ubGFzdChhY3Rpb25zKSA9PT0gJ3JlbGVhc2UnKSB7XG4gICAgICAgIGFjdGlvbnNbMF0gPSAndGFwJztcbiAgICAgICAgZ2VzdHVyZXNbMF0uYWN0aW9uID0gJ3RhcCc7XG4gICAgICB9XG5cbiAgICAgIC8vIHRoZSBgbG9uZ1ByZXNzYCBhbmQgYHRhcGAgbWV0aG9kcyByZWxlYXNlIG9uIHRoZWlyIG93blxuICAgICAgaWYgKChfLmhlYWQoYWN0aW9ucykgPT09ICd0YXAnIHx8IF8uaGVhZChhY3Rpb25zKSA9PT0gJ2xvbmdQcmVzcycpICYmIF8ubGFzdChhY3Rpb25zKSA9PT0gJ3JlbGVhc2UnKSB7XG4gICAgICAgIGdlc3R1cmVzLnBvcCgpO1xuICAgICAgICBhY3Rpb25zLnBvcCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBsb25ncHJlc3MgZm9sbG93ZWQgYnkgYW55dGhpbmcgb3RoZXIgdGhhbiByZWxlYXNlIHNob3VsZCBiZWNvbWUgYSBwcmVzcyBhbmQgd2FpdFxuICAgICAgaWYgKGFjdGlvbnNbMF0gPT09ICdsb25nUHJlc3MnKSB7XG4gICAgICAgIGFjdGlvbnMgPSBbJ3ByZXNzJywgJ3dhaXQnLCAuLi5hY3Rpb25zLnNsaWNlKDEpXTtcblxuICAgICAgICBsZXQgcHJlc3MgPSBnZXN0dXJlcy5zaGlmdCgpO1xuICAgICAgICBwcmVzcy5hY3Rpb24gPSAncHJlc3MnO1xuICAgICAgICBsZXQgd2FpdCA9IHtcbiAgICAgICAgICBhY3Rpb246ICd3YWl0JyxcbiAgICAgICAgICBvcHRpb25zOiB7bXM6IHByZXNzLm9wdGlvbnMuZHVyYXRpb24gfHwgMTAwMH1cbiAgICAgICAgfTtcbiAgICAgICAgZGVsZXRlIHByZXNzLm9wdGlvbnMuZHVyYXRpb247XG4gICAgICAgIGdlc3R1cmVzID0gW3ByZXNzLCB3YWl0LCAuLi5nZXN0dXJlc107XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IGZpeGVkR2VzdHVyZXMgPSBhd2FpdCB0aGlzLnBhcnNlVG91Y2goZ2VzdHVyZXMsIGZhbHNlKTtcbiAgICAvLyBmaXggcmVsZWFzZSBhY3Rpb24gdGhlbiBwZXJmb3JtIGFsbCBhY3Rpb25zXG4gICAgaWYgKGFjdGlvbnNbYWN0aW9ucy5sZW5ndGggLSAxXSA9PT0gJ3JlbGVhc2UnKSB7XG4gICAgICBhY3Rpb25zW2FjdGlvbnMubGVuZ3RoIC0gMV0gPSBhd2FpdCB0aGlzLmZpeFJlbGVhc2UoZ2VzdHVyZXMpO1xuICAgIH1cbiAgICBmb3IgKGxldCBnIG9mIGZpeGVkR2VzdHVyZXMpIHtcbiAgICAgIGF3YWl0IHRoaXMucGVyZm9ybUdlc3R1cmUoZyk7XG4gICAgfVxuICB9XG59O1xuXG5oZWxwZXJzLnBhcnNlVG91Y2ggPSBhc3luYyBmdW5jdGlvbiBwYXJzZVRvdWNoIChnZXN0dXJlcywgbXVsdGkpIHtcbiAgLy8gYmVjYXVzZSBtdWx0aS10b3VjaCByZWxlYXNlcyBhdCB0aGUgZW5kIGJ5IGRlZmF1bHRcbiAgaWYgKG11bHRpICYmIF8ubGFzdChnZXN0dXJlcykuYWN0aW9uID09PSAncmVsZWFzZScpIHtcbiAgICBnZXN0dXJlcy5wb3AoKTtcbiAgfVxuXG4gIGxldCB0b3VjaFN0YXRlT2JqZWN0cyA9IGF3YWl0IGFzeW5jbWFwKGdlc3R1cmVzLCBhc3luYyAoZ2VzdHVyZSkgPT4ge1xuICAgIGxldCBvcHRpb25zID0gZ2VzdHVyZS5vcHRpb25zIHx8IHt9O1xuICAgIGlmIChfLmluY2x1ZGVzKFsncHJlc3MnLCAnbW92ZVRvJywgJ3RhcCcsICdsb25nUHJlc3MnXSwgZ2VzdHVyZS5hY3Rpb24pKSB7XG4gICAgICBvcHRpb25zLm9mZnNldCA9IGZhbHNlO1xuICAgICAgbGV0IGVsZW1lbnRJZCA9IGdlc3R1cmUub3B0aW9ucy5lbGVtZW50O1xuICAgICAgaWYgKGVsZW1lbnRJZCkge1xuICAgICAgICBsZXQgcG9zID0gYXdhaXQgdGhpcy5nZXRMb2NhdGlvbkluVmlldyhlbGVtZW50SWQpO1xuICAgICAgICBpZiAoZ2VzdHVyZS5vcHRpb25zLnggfHwgZ2VzdHVyZS5vcHRpb25zLnkpIHtcbiAgICAgICAgICBvcHRpb25zLnggPSBwb3MueCArIChnZXN0dXJlLm9wdGlvbnMueCB8fCAwKTtcbiAgICAgICAgICBvcHRpb25zLnkgPSBwb3MueSArIChnZXN0dXJlLm9wdGlvbnMueSB8fCAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB7d2lkdGgsIGhlaWdodH0gPSBhd2FpdCB0aGlzLmdldFNpemUoZWxlbWVudElkKTtcbiAgICAgICAgICBvcHRpb25zLnggPSBwb3MueCArICh3aWR0aCAvIDIpO1xuICAgICAgICAgIG9wdGlvbnMueSA9IHBvcy55ICsgKGhlaWdodCAvIDIpO1xuICAgICAgICB9XG4gICAgICAgIGxldCB0b3VjaFN0YXRlT2JqZWN0ID0ge1xuICAgICAgICAgIGFjdGlvbjogZ2VzdHVyZS5hY3Rpb24sXG4gICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICB0aW1lT2Zmc2V0OiAwLjAwNSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHRvdWNoU3RhdGVPYmplY3Q7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvcHRpb25zLnggPSAoZ2VzdHVyZS5vcHRpb25zLnggfHwgMCk7XG4gICAgICAgIG9wdGlvbnMueSA9IChnZXN0dXJlLm9wdGlvbnMueSB8fCAwKTtcblxuICAgICAgICBsZXQgdG91Y2hTdGF0ZU9iamVjdCA9IHtcbiAgICAgICAgICBhY3Rpb246IGdlc3R1cmUuYWN0aW9uLFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgdGltZU9mZnNldDogMC4wMDUsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB0b3VjaFN0YXRlT2JqZWN0O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgb2Zmc2V0ID0gMC4wMDU7XG4gICAgICBpZiAoZ2VzdHVyZS5hY3Rpb24gPT09ICd3YWl0Jykge1xuICAgICAgICBvcHRpb25zID0gZ2VzdHVyZS5vcHRpb25zO1xuICAgICAgICBvZmZzZXQgPSAocGFyc2VJbnQoZ2VzdHVyZS5vcHRpb25zLm1zLCAxMCkgLyAxMDAwKTtcbiAgICAgIH1cbiAgICAgIGxldCB0b3VjaFN0YXRlT2JqZWN0ID0ge1xuICAgICAgICBhY3Rpb246IGdlc3R1cmUuYWN0aW9uLFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICB0aW1lT2Zmc2V0OiBvZmZzZXQsXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHRvdWNoU3RhdGVPYmplY3Q7XG4gICAgfVxuICB9LCBmYWxzZSk7XG4gIC8vIHdlIG5lZWQgdG8gY2hhbmdlIHRoZSB0aW1lICh3aGljaCBpcyBub3cgYW4gb2Zmc2V0KVxuICAvLyBhbmQgdGhlIHBvc2l0aW9uICh3aGljaCBtYXkgYmUgYW4gb2Zmc2V0KVxuICBsZXQgcHJldlBvcyA9IG51bGwsXG4gICAgICB0aW1lID0gMDtcbiAgZm9yIChsZXQgc3RhdGUgb2YgdG91Y2hTdGF0ZU9iamVjdHMpIHtcbiAgICBpZiAoXy5pc1VuZGVmaW5lZChzdGF0ZS5vcHRpb25zLngpICYmIF8uaXNVbmRlZmluZWQoc3RhdGUub3B0aW9ucy55KSAmJiBwcmV2UG9zICE9PSBudWxsKSB7XG4gICAgICAvLyB0aGlzIGhhcHBlbnMgd2l0aCB3YWl0XG4gICAgICBzdGF0ZS5vcHRpb25zLnggPSBwcmV2UG9zLng7XG4gICAgICBzdGF0ZS5vcHRpb25zLnkgPSBwcmV2UG9zLnk7XG4gICAgfVxuICAgIGlmIChzdGF0ZS5vcHRpb25zLm9mZnNldCAmJiBwcmV2UG9zKSB7XG4gICAgICAvLyB0aGUgY3VycmVudCBwb3NpdGlvbiBpcyBhbiBvZmZzZXRcbiAgICAgIHN0YXRlLm9wdGlvbnMueCArPSBwcmV2UG9zLng7XG4gICAgICBzdGF0ZS5vcHRpb25zLnkgKz0gcHJldlBvcy55O1xuICAgIH1cbiAgICBkZWxldGUgc3RhdGUub3B0aW9ucy5vZmZzZXQ7XG4gICAgaWYgKCFfLmlzVW5kZWZpbmVkKHN0YXRlLm9wdGlvbnMueCkgJiYgIV8uaXNVbmRlZmluZWQoc3RhdGUub3B0aW9ucy55KSkge1xuICAgICAgcHJldlBvcyA9IHN0YXRlLm9wdGlvbnM7XG4gICAgfVxuXG4gICAgaWYgKG11bHRpKSB7XG4gICAgICBsZXQgdGltZU9mZnNldCA9IHN0YXRlLnRpbWVPZmZzZXQ7XG4gICAgICB0aW1lICs9IHRpbWVPZmZzZXQ7XG4gICAgICBzdGF0ZS50aW1lID0gYW5kcm9pZEhlbHBlcnMudHJ1bmNhdGVEZWNpbWFscyh0aW1lLCAzKTtcblxuICAgICAgLy8gbXVsdGkgZ2VzdHVyZXMgcmVxdWlyZSAndG91Y2gnIHJhdGhlciB0aGFuICdvcHRpb25zJ1xuICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKHN0YXRlLm9wdGlvbnMueCkgJiYgIV8uaXNVbmRlZmluZWQoc3RhdGUub3B0aW9ucy55KSkge1xuICAgICAgICBzdGF0ZS50b3VjaCA9IHtcbiAgICAgICAgICB4OiBzdGF0ZS5vcHRpb25zLngsXG4gICAgICAgICAgeTogc3RhdGUub3B0aW9ucy55XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBkZWxldGUgc3RhdGUub3B0aW9ucztcbiAgICB9XG4gICAgZGVsZXRlIHN0YXRlLnRpbWVPZmZzZXQ7XG4gIH1cbiAgcmV0dXJuIHRvdWNoU3RhdGVPYmplY3RzO1xufTtcblxuXG5jb21tYW5kcy5wZXJmb3JtTXVsdGlBY3Rpb24gPSBhc3luYyBmdW5jdGlvbiBwZXJmb3JtTXVsdGlBY3Rpb24gKGFjdGlvbnMsIGVsZW1lbnRJZCkge1xuICAvLyBBbmRyb2lkIG5lZWRzIGF0IGxlYXN0IHR3byBhY3Rpb25zIHRvIGJlIGFibGUgdG8gcGVyZm9ybSBhIG11bHRpIHBvaW50ZXIgZ2VzdHVyZVxuICBpZiAoYWN0aW9ucy5sZW5ndGggPT09IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ011bHRpIFBvaW50ZXIgR2VzdHVyZXMgbmVlZCBhdCBsZWFzdCB0d28gYWN0aW9ucy4gJyArXG4gICAgICAgICdVc2UgVG91Y2ggQWN0aW9ucyBmb3IgYSBzaW5nbGUgYWN0aW9uLicpO1xuICB9XG5cbiAgY29uc3Qgc3RhdGVzID0gYXdhaXQgYXN5bmNtYXAoYWN0aW9ucywgYXN5bmMgKGFjdGlvbikgPT4gYXdhaXQgdGhpcy5wYXJzZVRvdWNoKGFjdGlvbiwgdHJ1ZSksIGZhbHNlKTtcblxuICByZXR1cm4gYXdhaXQgdGhpcy5kb1BlcmZvcm1NdWx0aUFjdGlvbihlbGVtZW50SWQsIHN0YXRlcyk7XG59O1xuXG4vKipcbiAqIFJlYXNvbiBmb3IgaXNvbGF0aW5nIGRvUGVyZm9ybU11bHRpQWN0aW9uIGZyb20gcGVyZm9ybU11bHRpQWN0aW9uIGlzIGZvciByZXVzaW5nIHBlcmZvcm1NdWx0aUFjdGlvblxuICogYWNyb3NzIGFuZHJvaWQtZHJpdmVycyAobGlrZSBhcHBpdW0tdWlhdXRvbWF0b3IyLWRyaXZlcikgYW5kIHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb24uXG4gKiBPdGhlciBhbmRyb2lkLWRyaXZlcnMgKGxpa2UgYXBwaXVtLXVpYXV0b21hdG9yMi1kcml2ZXIpIG5lZWQgdG8gb3ZlcnJpZGUgZG9QZXJmb3JtTXVsdGlBY3Rpb25cbiAqIHRvIGZhY2lsaXRhdGUgcGVyZm9ybU11bHRpQWN0aW9uLlxuICovXG5jb21tYW5kcy5kb1BlcmZvcm1NdWx0aUFjdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIGRvUGVyZm9ybU11bHRpQWN0aW9uIChlbGVtZW50SWQsIHN0YXRlcykge1xuICBsZXQgb3B0cztcbiAgaWYgKGVsZW1lbnRJZCkge1xuICAgIG9wdHMgPSB7XG4gICAgICBlbGVtZW50SWQsXG4gICAgICBhY3Rpb25zOiBzdGF0ZXNcbiAgICB9O1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OnBlcmZvcm1NdWx0aVBvaW50ZXJHZXN0dXJlJywgb3B0cyk7XG4gIH0gZWxzZSB7XG4gICAgb3B0cyA9IHtcbiAgICAgIGFjdGlvbnM6IHN0YXRlc1xuICAgIH07XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ3BlcmZvcm1NdWx0aVBvaW50ZXJHZXN0dXJlJywgb3B0cyk7XG4gIH1cbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMsIGhlbHBlcnMpO1xuZXhwb3J0IHsgY29tbWFuZHMsIGhlbHBlcnMgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsSUFBSUEsUUFBUSxHQUFHLEVBQWY7QUFBQSxJQUFtQkMsT0FBTyxHQUFHLEVBQTdCO0FBQUEsSUFBaUNDLFVBQVUsR0FBRyxFQUE5Qzs7OztBQUVBLFNBQVNDLGVBQVQsQ0FBMEJDLEdBQTFCLEVBQStCO0VBSTdCLE9BQU9DLGNBQUtDLFFBQUwsQ0FBY0YsR0FBZCxJQUFxQkEsR0FBckIsR0FBMkIsR0FBbEM7QUFDRDs7QUFFRCxTQUFTRyxxQkFBVCxDQUFnQ0MsV0FBaEMsRUFBNkM7RUFHM0MsSUFBSUMsUUFBUSxHQUFHLEdBQWY7O0VBQ0EsSUFBSSxPQUFPRCxXQUFXLENBQUNFLE9BQVosQ0FBb0JDLEVBQTNCLEtBQWtDLFdBQWxDLElBQWlESCxXQUFXLENBQUNFLE9BQVosQ0FBb0JDLEVBQXpFLEVBQTZFO0lBQzNFRixRQUFRLEdBQUdELFdBQVcsQ0FBQ0UsT0FBWixDQUFvQkMsRUFBcEIsR0FBeUIsSUFBcEM7O0lBQ0EsSUFBSUYsUUFBUSxLQUFLLENBQWpCLEVBQW9CO01BR2xCQSxRQUFRLEdBQUcsR0FBWDtJQUNEO0VBQ0Y7O0VBQ0QsT0FBT0EsUUFBUDtBQUNEOztBQUVEVCxRQUFRLENBQUNZLGFBQVQsR0FBeUIsZUFBZUEsYUFBZixDQUE4QkMsTUFBOUIsRUFBc0NDLElBQUksR0FBRyxFQUE3QyxFQUFpRDtFQUN4RSxNQUFNO0lBQUVDLE9BQUY7SUFBV0MsQ0FBWDtJQUFjQyxDQUFkO0lBQWlCQyxLQUFqQjtJQUF3QlAsRUFBeEI7SUFBNEJGO0VBQTVCLElBQXlDSyxJQUEvQzs7RUFHQSxRQUFRRCxNQUFSO0lBQ0UsS0FBSyxLQUFMO01BQ0UsT0FBTyxNQUFNLEtBQUtNLEdBQUwsQ0FBUyxJQUFULEVBQWVILENBQWYsRUFBa0JDLENBQWxCLEVBQXFCQyxLQUFyQixDQUFiOztJQUNGLEtBQUssT0FBTDtNQUNFLE9BQU8sTUFBTSxLQUFLRSxTQUFMLENBQWUsSUFBZixFQUFxQkosQ0FBckIsRUFBd0JDLENBQXhCLENBQWI7O0lBQ0YsS0FBSyxTQUFMO01BQ0UsT0FBTyxNQUFNLEtBQUtJLE9BQUwsQ0FBYU4sT0FBYixFQUFzQkMsQ0FBdEIsRUFBeUJDLENBQXpCLENBQWI7O0lBQ0YsS0FBSyxRQUFMO01BQ0UsT0FBTyxNQUFNLEtBQUtLLFNBQUwsQ0FBZSxJQUFmLEVBQXFCTixDQUFyQixFQUF3QkMsQ0FBeEIsQ0FBYjs7SUFDRixLQUFLLE1BQUw7TUFDRSxPQUFPLE1BQU1NLGtCQUFFQyxLQUFGLENBQVFiLEVBQVIsQ0FBYjs7SUFDRixLQUFLLFdBQUw7TUFDRSxPQUFPLE1BQU0sS0FBS2MsY0FBTCxDQUFvQixJQUFwQixFQUEwQlQsQ0FBMUIsRUFBNkJDLENBQTdCLEVBQWdDUixRQUFRLElBQUksSUFBNUMsQ0FBYjs7SUFDRixLQUFLLFFBQUw7TUFFRSxLQUFLaUIsR0FBTCxDQUFTQyxJQUFULENBQWMsdUNBQWQ7TUFDQTs7SUFDRjtNQUNFLEtBQUtELEdBQUwsQ0FBU0UsYUFBVCxDQUF3QixrQkFBaUJmLE1BQU8sRUFBaEQ7RUFsQko7QUFvQkQsQ0F4QkQ7O0FBNEJBWixPQUFPLENBQUM0QixXQUFSLEdBQXNCLGVBQWVBLFdBQWYsQ0FBNEJDLFFBQTVCLEVBQXNDO0VBQzFELElBQUlDLFNBQVMsR0FBR0QsUUFBUSxDQUFDLENBQUQsQ0FBeEI7RUFDQSxJQUFJRSxNQUFNLEdBQUdGLFFBQVEsQ0FBQyxDQUFELENBQXJCO0VBQ0EsSUFBSUcsTUFBTSxHQUFHRixTQUFTLENBQUNyQixPQUFWLENBQWtCTSxDQUFsQixJQUF1QixDQUFwQztFQUFBLElBQ0lrQixNQUFNLEdBQUdILFNBQVMsQ0FBQ3JCLE9BQVYsQ0FBa0JPLENBQWxCLElBQXVCLENBRHBDO0VBQUEsSUFFSWtCLElBQUksR0FBR0gsTUFBTSxDQUFDdEIsT0FBUCxDQUFlTSxDQUFmLElBQW9CLENBRi9CO0VBQUEsSUFHSW9CLElBQUksR0FBR0osTUFBTSxDQUFDdEIsT0FBUCxDQUFlTyxDQUFmLElBQW9CLENBSC9COztFQUlBLElBQUljLFNBQVMsQ0FBQ3JCLE9BQVYsQ0FBa0JLLE9BQXRCLEVBQStCO0lBQzdCLElBQUk7TUFBQ0MsQ0FBRDtNQUFJQztJQUFKLElBQVMsTUFBTSxLQUFLb0IsaUJBQUwsQ0FBdUJOLFNBQVMsQ0FBQ3JCLE9BQVYsQ0FBa0JLLE9BQXpDLENBQW5CO0lBQ0FrQixNQUFNLElBQUlqQixDQUFDLElBQUksQ0FBZjtJQUNBa0IsTUFBTSxJQUFJakIsQ0FBQyxJQUFJLENBQWY7RUFDRDs7RUFDRCxJQUFJZSxNQUFNLENBQUN0QixPQUFQLENBQWVLLE9BQW5CLEVBQTRCO0lBQzFCLElBQUk7TUFBQ0MsQ0FBRDtNQUFJQztJQUFKLElBQVMsTUFBTSxLQUFLb0IsaUJBQUwsQ0FBdUJMLE1BQU0sQ0FBQ3RCLE9BQVAsQ0FBZUssT0FBdEMsQ0FBbkI7SUFDQW9CLElBQUksSUFBSW5CLENBQUMsSUFBSSxDQUFiO0lBQ0FvQixJQUFJLElBQUluQixDQUFDLElBQUksQ0FBYjtFQUNEOztFQUVELElBQUlxQixRQUFRLEdBQUcsTUFBTSxLQUFLQyxHQUFMLENBQVNDLFdBQVQsRUFBckI7RUFFQSxJQUFJL0IsUUFBUSxHQUFHNkIsUUFBUSxJQUFJLENBQVosR0FBZ0IsQ0FBaEIsR0FBb0IsQ0FBbkM7O0VBRUEsSUFBSVAsU0FBUyxDQUFDckIsT0FBVixJQUFxQnFCLFNBQVMsQ0FBQ3JCLE9BQVYsQ0FBa0JELFFBQTNDLEVBQXFEO0lBQ25EQSxRQUFRLEdBQUdnQyxJQUFJLENBQUNDLEdBQUwsQ0FBU1gsU0FBUyxDQUFDckIsT0FBVixDQUFrQkQsUUFBbEIsR0FBNkIsSUFBdEMsRUFBNENBLFFBQTVDLENBQVg7RUFDRDs7RUFHRCxPQUFPLE1BQU0sS0FBS2tDLElBQUwsQ0FBVVYsTUFBVixFQUFrQkMsTUFBbEIsRUFBMEJDLElBQTFCLEVBQWdDQyxJQUFoQyxFQUFzQzNCLFFBQXRDLEVBQWdELENBQWhELEVBQW1Ec0IsU0FBUyxDQUFDckIsT0FBVixDQUFrQkssT0FBckUsRUFBOEVpQixNQUFNLENBQUN0QixPQUFQLENBQWVLLE9BQTdGLENBQWI7QUFDRCxDQTVCRDs7QUFpQ0FkLE9BQU8sQ0FBQzJDLFVBQVIsR0FBcUIsZUFBZUEsVUFBZixDQUEyQmQsUUFBM0IsRUFBcUM7RUFDeEQsSUFBSWUsT0FBTyxHQUFHQyxnQkFBRUMsSUFBRixDQUFPakIsUUFBUCxDQUFkOztFQUVBZSxPQUFPLENBQUNuQyxPQUFSLEdBQWtCbUMsT0FBTyxDQUFDbkMsT0FBUixJQUFtQixFQUFyQzs7RUFFQSxJQUFJbUMsT0FBTyxDQUFDbkMsT0FBUixDQUFnQkssT0FBaEIsSUFBNEI4QixPQUFPLENBQUNuQyxPQUFSLENBQWdCTSxDQUFoQixJQUFxQjZCLE9BQU8sQ0FBQ25DLE9BQVIsQ0FBZ0JPLENBQXJFLEVBQXlFO0lBQ3ZFO0VBQ0Q7O0VBS0RhLFFBQVEsR0FBR2dCLGdCQUFFRSxLQUFGLENBQVFsQixRQUFSLENBQVg7RUFDQSxJQUFJbUIsR0FBRyxHQUFHLElBQVY7O0VBQ0EsS0FBSyxJQUFJQyxPQUFULElBQW9CcEIsUUFBUSxDQUFDcUIsT0FBVCxFQUFwQixFQUF3QztJQUN0QyxJQUFJckMsSUFBSSxHQUFHb0MsT0FBTyxDQUFDeEMsT0FBbkI7O0lBQ0EsSUFBSUksSUFBSSxDQUFDQyxPQUFMLElBQWlCRCxJQUFJLENBQUNFLENBQUwsSUFBVUYsSUFBSSxDQUFDRyxDQUFwQyxFQUF3QztNQUN0Q2dDLEdBQUcsR0FBR0MsT0FBTjtNQUNBO0lBQ0Q7RUFDRjs7RUFDRCxJQUFJRCxHQUFKLEVBQVM7SUFDUCxJQUFJbkMsSUFBSSxHQUFHbUMsR0FBRyxDQUFDdkMsT0FBZjs7SUFDQSxJQUFJSSxJQUFJLENBQUNDLE9BQVQsRUFBa0I7TUFDaEIsSUFBSXFDLEdBQUcsR0FBRyxNQUFNLEtBQUtmLGlCQUFMLENBQXVCdkIsSUFBSSxDQUFDQyxPQUE1QixDQUFoQjs7TUFDQSxJQUFJRCxJQUFJLENBQUNFLENBQUwsSUFBVUYsSUFBSSxDQUFDRyxDQUFuQixFQUFzQjtRQUVwQjRCLE9BQU8sQ0FBQ25DLE9BQVIsR0FBa0I7VUFDaEJNLENBQUMsRUFBRW9DLEdBQUcsQ0FBQ3BDLENBQUosR0FBUUYsSUFBSSxDQUFDRSxDQURBO1VBRWhCQyxDQUFDLEVBQUVtQyxHQUFHLENBQUNuQyxDQUFKLEdBQVFILElBQUksQ0FBQ0c7UUFGQSxDQUFsQjtNQUlELENBTkQsTUFNTztRQUVMLElBQUlvQyxJQUFJLEdBQUcsTUFBTSxLQUFLQyxPQUFMLENBQWF4QyxJQUFJLENBQUNDLE9BQWxCLENBQWpCO1FBQ0E4QixPQUFPLENBQUNuQyxPQUFSLEdBQWtCO1VBQ2hCTSxDQUFDLEVBQUVvQyxHQUFHLENBQUNwQyxDQUFKLEdBQVFxQyxJQUFJLENBQUNFLEtBQUwsR0FBYSxDQURSO1VBRWhCdEMsQ0FBQyxFQUFFbUMsR0FBRyxDQUFDbkMsQ0FBSixHQUFRb0MsSUFBSSxDQUFDRyxNQUFMLEdBQWM7UUFGVCxDQUFsQjtNQUlEO0lBQ0YsQ0FoQkQsTUFnQk87TUFDTFgsT0FBTyxDQUFDbkMsT0FBUixHQUFrQm9DLGdCQUFFVyxJQUFGLENBQU8zQyxJQUFQLEVBQWEsR0FBYixFQUFrQixHQUFsQixDQUFsQjtJQUNEO0VBQ0Y7O0VBQ0QsT0FBTytCLE9BQVA7QUFDRCxDQTVDRDs7QUErQ0E1QyxPQUFPLENBQUN5RCxjQUFSLEdBQXlCLGVBQWVBLGNBQWYsQ0FBK0JSLE9BQS9CLEVBQXdDO0VBQy9ELElBQUk7SUFDRixPQUFPLE1BQU0sS0FBS3RDLGFBQUwsQ0FBbUJzQyxPQUFPLENBQUNyQyxNQUEzQixFQUFtQ3FDLE9BQU8sQ0FBQ3hDLE9BQVIsSUFBbUIsRUFBdEQsQ0FBYjtFQUNELENBRkQsQ0FFRSxPQUFPaUQsQ0FBUCxFQUFVO0lBRVYsSUFBSSw2QkFBWUEsQ0FBWixFQUFlQyxtQkFBT0Msa0JBQXRCLEtBQTZDWCxPQUFPLENBQUNyQyxNQUFSLEtBQW1CLFNBQWhFLElBQ0FxQyxPQUFPLENBQUN4QyxPQUFSLENBQWdCSyxPQURwQixFQUM2QjtNQUMzQixPQUFPbUMsT0FBTyxDQUFDeEMsT0FBUixDQUFnQkssT0FBdkI7TUFDQSxLQUFLVyxHQUFMLENBQVNvQyxLQUFULENBQWdCLDBDQUF5Q1osT0FBTyxDQUFDeEMsT0FBUSxHQUF6RTtNQUNBLE9BQU8sTUFBTSxLQUFLRSxhQUFMLENBQW1Cc0MsT0FBTyxDQUFDckMsTUFBM0IsRUFBbUNxQyxPQUFPLENBQUN4QyxPQUFSLElBQW1CLEVBQXRELENBQWI7SUFDRDs7SUFDRCxNQUFNaUQsQ0FBTjtFQUNEO0FBQ0YsQ0FiRDs7QUFlQTNELFFBQVEsQ0FBQytELGVBQVQsR0FBMkIsZUFBZUEsZUFBZixDQUFnQ2pDLFFBQWhDLEVBQTBDa0MsVUFBVSxHQUFHLENBQXZELEVBQTBEO0VBQ25GLElBQUkvQixNQUFNLEdBQUc5QixlQUFlLENBQUMyQixRQUFRLENBQUMsQ0FBRCxDQUFSLENBQVlwQixPQUFaLENBQW9CTSxDQUFyQixDQUE1QjtFQUFBLElBQ0lrQixNQUFNLEdBQUcvQixlQUFlLENBQUMyQixRQUFRLENBQUMsQ0FBRCxDQUFSLENBQVlwQixPQUFaLENBQW9CTyxDQUFyQixDQUQ1QjtFQUFBLElBRUlrQixJQUFJLEdBQUdoQyxlQUFlLENBQUMyQixRQUFRLENBQUMsQ0FBRCxDQUFSLENBQVlwQixPQUFaLENBQW9CTSxDQUFyQixDQUYxQjtFQUFBLElBR0lvQixJQUFJLEdBQUdqQyxlQUFlLENBQUMyQixRQUFRLENBQUMsQ0FBRCxDQUFSLENBQVlwQixPQUFaLENBQW9CTyxDQUFyQixDQUgxQjtFQUFBLElBSUlSLFFBQVEsR0FBR0YscUJBQXFCLENBQUN1QixRQUFRLENBQUMsQ0FBRCxDQUFULENBSnBDO0VBQUEsSUFLSWYsT0FBTyxHQUFHZSxRQUFRLENBQUMsQ0FBRCxDQUFSLENBQVlwQixPQUFaLENBQW9CSyxPQUxsQztFQUFBLElBTUlrRCxXQUFXLEdBQUduQyxRQUFRLENBQUMsQ0FBRCxDQUFSLENBQVlwQixPQUFaLENBQW9CSyxPQUFwQixJQUErQmUsUUFBUSxDQUFDLENBQUQsQ0FBUixDQUFZcEIsT0FBWixDQUFvQkssT0FOckU7O0VBU0EsSUFBSVYsY0FBS0MsUUFBTCxDQUFjMkQsV0FBZCxDQUFKLEVBQWdDO0lBQzlCLElBQUlDLFNBQVMsR0FBRyxNQUFNLEtBQUs3QixpQkFBTCxDQUF1QjRCLFdBQXZCLENBQXRCO0lBQ0EsSUFBSUUsVUFBVSxHQUFHLE1BQU0sS0FBS2IsT0FBTCxDQUFhVyxXQUFiLENBQXZCO0lBQ0EsSUFBSUcsT0FBTyxHQUFJM0IsSUFBSSxDQUFDNEIsR0FBTCxDQUFTbEMsSUFBVCxJQUFpQixDQUFqQixJQUFzQk0sSUFBSSxDQUFDNEIsR0FBTCxDQUFTbEMsSUFBVCxJQUFpQixDQUF4QyxHQUE2Q2dDLFVBQVUsQ0FBQ1osS0FBWCxHQUFtQnBCLElBQWhFLEdBQXVFQSxJQUFyRjtJQUNBLElBQUltQyxPQUFPLEdBQUk3QixJQUFJLENBQUM0QixHQUFMLENBQVNqQyxJQUFULElBQWlCLENBQWpCLElBQXNCSyxJQUFJLENBQUM0QixHQUFMLENBQVNqQyxJQUFULElBQWlCLENBQXhDLEdBQTZDK0IsVUFBVSxDQUFDWCxNQUFYLEdBQW9CcEIsSUFBakUsR0FBd0VBLElBQXRGO0lBQ0FELElBQUksR0FBRytCLFNBQVMsQ0FBQ2xELENBQVYsR0FBY29ELE9BQXJCO0lBQ0FoQyxJQUFJLEdBQUc4QixTQUFTLENBQUNqRCxDQUFWLEdBQWNxRCxPQUFyQjs7SUFFQSxJQUFJakUsY0FBS0MsUUFBTCxDQUFjUyxPQUFkLENBQUosRUFBNEI7TUFDMUIsSUFBSXdELGVBQWUsR0FBRyxNQUFNLEtBQUtsQyxpQkFBTCxDQUF1QnRCLE9BQXZCLENBQTVCO01BQ0FvQixJQUFJLElBQUlvQyxlQUFlLENBQUN2RCxDQUF4QjtNQUNBb0IsSUFBSSxJQUFJbUMsZUFBZSxDQUFDdEQsQ0FBeEI7SUFDRDtFQUNGOztFQUVELE9BQU87SUFBQ2dCLE1BQUQ7SUFBU0MsTUFBVDtJQUFpQkMsSUFBakI7SUFBdUJDLElBQXZCO0lBQTZCM0IsUUFBN0I7SUFBdUN1RCxVQUF2QztJQUFtRGpEO0VBQW5ELENBQVA7QUFDRCxDQTFCRDs7QUE0QkFmLFFBQVEsQ0FBQ3dFLFlBQVQsR0FBd0IsZUFBZUEsWUFBZixDQUE2QjFDLFFBQTdCLEVBQXVDO0VBRTdELElBQUlBLFFBQVEsQ0FBQzJDLE1BQVQsS0FBb0IsQ0FBcEIsSUFDQTNDLFFBQVEsQ0FBQyxDQUFELENBQVIsQ0FBWWpCLE1BQVosS0FBdUIsT0FEdkIsSUFFQWlCLFFBQVEsQ0FBQyxDQUFELENBQVIsQ0FBWWpCLE1BQVosS0FBdUIsTUFGdkIsSUFHQWlCLFFBQVEsQ0FBQyxDQUFELENBQVIsQ0FBWWpCLE1BQVosS0FBdUIsUUFIdkIsSUFJQWlCLFFBQVEsQ0FBQyxDQUFELENBQVIsQ0FBWWpCLE1BQVosS0FBdUIsU0FKM0IsRUFJc0M7SUFFcEMsSUFBSTZELFNBQVMsR0FBRyxNQUFNLEtBQUtYLGVBQUwsQ0FBcUJqQyxRQUFyQixDQUF0QjtJQUNBLE9BQU8sTUFBTSxLQUFLNkMsS0FBTCxDQUFXRCxTQUFTLENBQUN6QyxNQUFyQixFQUE2QnlDLFNBQVMsQ0FBQ3hDLE1BQXZDLEVBQStDd0MsU0FBUyxDQUFDdkMsSUFBekQsRUFDVHVDLFNBQVMsQ0FBQ3RDLElBREQsRUFDT3NDLFNBQVMsQ0FBQ2pFLFFBRGpCLEVBQzJCaUUsU0FBUyxDQUFDVixVQURyQyxFQUVUVSxTQUFTLENBQUMzRCxPQUZELENBQWI7RUFHRDs7RUFDRCxJQUFJNkQsT0FBTyxHQUFHOUIsZ0JBQUUrQixHQUFGLENBQU0vQyxRQUFOLEVBQWdCLFFBQWhCLENBQWQ7O0VBRUEsSUFBSThDLE9BQU8sQ0FBQyxDQUFELENBQVAsS0FBZSxXQUFmLElBQThCQSxPQUFPLENBQUMsQ0FBRCxDQUFQLEtBQWUsUUFBN0MsSUFBeURBLE9BQU8sQ0FBQyxDQUFELENBQVAsS0FBZSxTQUE1RSxFQUF1RjtJQUVyRixPQUFPLE1BQU0sS0FBSy9DLFdBQUwsQ0FBaUJDLFFBQWpCLENBQWI7RUFDRCxDQUhELE1BR087SUFDTCxJQUFJOEMsT0FBTyxDQUFDSCxNQUFSLEtBQW1CLENBQXZCLEVBQTBCO01BRXhCLElBQUkzQixnQkFBRWdDLElBQUYsQ0FBT0YsT0FBUCxNQUFvQixPQUFwQixJQUErQjlCLGdCQUFFQyxJQUFGLENBQU82QixPQUFQLE1BQW9CLFNBQXZELEVBQWtFO1FBQ2hFQSxPQUFPLENBQUMsQ0FBRCxDQUFQLEdBQWEsS0FBYjtRQUNBOUMsUUFBUSxDQUFDLENBQUQsQ0FBUixDQUFZakIsTUFBWixHQUFxQixLQUFyQjtNQUNEOztNQUdELElBQUksQ0FBQ2lDLGdCQUFFZ0MsSUFBRixDQUFPRixPQUFQLE1BQW9CLEtBQXBCLElBQTZCOUIsZ0JBQUVnQyxJQUFGLENBQU9GLE9BQVAsTUFBb0IsV0FBbEQsS0FBa0U5QixnQkFBRUMsSUFBRixDQUFPNkIsT0FBUCxNQUFvQixTQUExRixFQUFxRztRQUNuRzlDLFFBQVEsQ0FBQ2lELEdBQVQ7UUFDQUgsT0FBTyxDQUFDRyxHQUFSO01BQ0Q7SUFDRixDQVpELE1BWU87TUFFTCxJQUFJSCxPQUFPLENBQUMsQ0FBRCxDQUFQLEtBQWUsV0FBbkIsRUFBZ0M7UUFDOUJBLE9BQU8sR0FBRyxDQUFDLE9BQUQsRUFBVSxNQUFWLEVBQWtCLEdBQUdBLE9BQU8sQ0FBQ0ksS0FBUixDQUFjLENBQWQsQ0FBckIsQ0FBVjtRQUVBLElBQUlDLEtBQUssR0FBR25ELFFBQVEsQ0FBQ29ELEtBQVQsRUFBWjtRQUNBRCxLQUFLLENBQUNwRSxNQUFOLEdBQWUsT0FBZjtRQUNBLElBQUlzRSxJQUFJLEdBQUc7VUFDVHRFLE1BQU0sRUFBRSxNQURDO1VBRVRILE9BQU8sRUFBRTtZQUFDQyxFQUFFLEVBQUVzRSxLQUFLLENBQUN2RSxPQUFOLENBQWNELFFBQWQsSUFBMEI7VUFBL0I7UUFGQSxDQUFYO1FBSUEsT0FBT3dFLEtBQUssQ0FBQ3ZFLE9BQU4sQ0FBY0QsUUFBckI7UUFDQXFCLFFBQVEsR0FBRyxDQUFDbUQsS0FBRCxFQUFRRSxJQUFSLEVBQWMsR0FBR3JELFFBQWpCLENBQVg7TUFDRDtJQUNGOztJQUVELElBQUlzRCxhQUFhLEdBQUcsTUFBTSxLQUFLQyxVQUFMLENBQWdCdkQsUUFBaEIsRUFBMEIsS0FBMUIsQ0FBMUI7O0lBRUEsSUFBSThDLE9BQU8sQ0FBQ0EsT0FBTyxDQUFDSCxNQUFSLEdBQWlCLENBQWxCLENBQVAsS0FBZ0MsU0FBcEMsRUFBK0M7TUFDN0NHLE9BQU8sQ0FBQ0EsT0FBTyxDQUFDSCxNQUFSLEdBQWlCLENBQWxCLENBQVAsR0FBOEIsTUFBTSxLQUFLN0IsVUFBTCxDQUFnQmQsUUFBaEIsQ0FBcEM7SUFDRDs7SUFDRCxLQUFLLElBQUl3RCxDQUFULElBQWNGLGFBQWQsRUFBNkI7TUFDM0IsTUFBTSxLQUFLMUIsY0FBTCxDQUFvQjRCLENBQXBCLENBQU47SUFDRDtFQUNGO0FBQ0YsQ0F4REQ7O0FBMERBckYsT0FBTyxDQUFDb0YsVUFBUixHQUFxQixlQUFlQSxVQUFmLENBQTJCdkQsUUFBM0IsRUFBcUN5RCxLQUFyQyxFQUE0QztFQUUvRCxJQUFJQSxLQUFLLElBQUl6QyxnQkFBRUMsSUFBRixDQUFPakIsUUFBUCxFQUFpQmpCLE1BQWpCLEtBQTRCLFNBQXpDLEVBQW9EO0lBQ2xEaUIsUUFBUSxDQUFDaUQsR0FBVDtFQUNEOztFQUVELElBQUlTLGlCQUFpQixHQUFHLE1BQU0sd0JBQVMxRCxRQUFULEVBQW1CLE1BQU9vQixPQUFQLElBQW1CO0lBQ2xFLElBQUl4QyxPQUFPLEdBQUd3QyxPQUFPLENBQUN4QyxPQUFSLElBQW1CLEVBQWpDOztJQUNBLElBQUlvQyxnQkFBRTJDLFFBQUYsQ0FBVyxDQUFDLE9BQUQsRUFBVSxRQUFWLEVBQW9CLEtBQXBCLEVBQTJCLFdBQTNCLENBQVgsRUFBb0R2QyxPQUFPLENBQUNyQyxNQUE1RCxDQUFKLEVBQXlFO01BQ3ZFSCxPQUFPLENBQUNnRixNQUFSLEdBQWlCLEtBQWpCO01BQ0EsSUFBSUMsU0FBUyxHQUFHekMsT0FBTyxDQUFDeEMsT0FBUixDQUFnQkssT0FBaEM7O01BQ0EsSUFBSTRFLFNBQUosRUFBZTtRQUNiLElBQUlDLEdBQUcsR0FBRyxNQUFNLEtBQUt2RCxpQkFBTCxDQUF1QnNELFNBQXZCLENBQWhCOztRQUNBLElBQUl6QyxPQUFPLENBQUN4QyxPQUFSLENBQWdCTSxDQUFoQixJQUFxQmtDLE9BQU8sQ0FBQ3hDLE9BQVIsQ0FBZ0JPLENBQXpDLEVBQTRDO1VBQzFDUCxPQUFPLENBQUNNLENBQVIsR0FBWTRFLEdBQUcsQ0FBQzVFLENBQUosSUFBU2tDLE9BQU8sQ0FBQ3hDLE9BQVIsQ0FBZ0JNLENBQWhCLElBQXFCLENBQTlCLENBQVo7VUFDQU4sT0FBTyxDQUFDTyxDQUFSLEdBQVkyRSxHQUFHLENBQUMzRSxDQUFKLElBQVNpQyxPQUFPLENBQUN4QyxPQUFSLENBQWdCTyxDQUFoQixJQUFxQixDQUE5QixDQUFaO1FBQ0QsQ0FIRCxNQUdPO1VBQ0wsTUFBTTtZQUFDc0MsS0FBRDtZQUFRQztVQUFSLElBQWtCLE1BQU0sS0FBS0YsT0FBTCxDQUFhcUMsU0FBYixDQUE5QjtVQUNBakYsT0FBTyxDQUFDTSxDQUFSLEdBQVk0RSxHQUFHLENBQUM1RSxDQUFKLEdBQVN1QyxLQUFLLEdBQUcsQ0FBN0I7VUFDQTdDLE9BQU8sQ0FBQ08sQ0FBUixHQUFZMkUsR0FBRyxDQUFDM0UsQ0FBSixHQUFTdUMsTUFBTSxHQUFHLENBQTlCO1FBQ0Q7O1FBQ0QsSUFBSXFDLGdCQUFnQixHQUFHO1VBQ3JCaEYsTUFBTSxFQUFFcUMsT0FBTyxDQUFDckMsTUFESztVQUVyQkgsT0FGcUI7VUFHckJvRixVQUFVLEVBQUU7UUFIUyxDQUF2QjtRQUtBLE9BQU9ELGdCQUFQO01BQ0QsQ0FoQkQsTUFnQk87UUFDTG5GLE9BQU8sQ0FBQ00sQ0FBUixHQUFha0MsT0FBTyxDQUFDeEMsT0FBUixDQUFnQk0sQ0FBaEIsSUFBcUIsQ0FBbEM7UUFDQU4sT0FBTyxDQUFDTyxDQUFSLEdBQWFpQyxPQUFPLENBQUN4QyxPQUFSLENBQWdCTyxDQUFoQixJQUFxQixDQUFsQztRQUVBLElBQUk0RSxnQkFBZ0IsR0FBRztVQUNyQmhGLE1BQU0sRUFBRXFDLE9BQU8sQ0FBQ3JDLE1BREs7VUFFckJILE9BRnFCO1VBR3JCb0YsVUFBVSxFQUFFO1FBSFMsQ0FBdkI7UUFLQSxPQUFPRCxnQkFBUDtNQUNEO0lBQ0YsQ0E5QkQsTUE4Qk87TUFDTCxJQUFJSCxNQUFNLEdBQUcsS0FBYjs7TUFDQSxJQUFJeEMsT0FBTyxDQUFDckMsTUFBUixLQUFtQixNQUF2QixFQUErQjtRQUM3QkgsT0FBTyxHQUFHd0MsT0FBTyxDQUFDeEMsT0FBbEI7UUFDQWdGLE1BQU0sR0FBSUssUUFBUSxDQUFDN0MsT0FBTyxDQUFDeEMsT0FBUixDQUFnQkMsRUFBakIsRUFBcUIsRUFBckIsQ0FBUixHQUFtQyxJQUE3QztNQUNEOztNQUNELElBQUlrRixnQkFBZ0IsR0FBRztRQUNyQmhGLE1BQU0sRUFBRXFDLE9BQU8sQ0FBQ3JDLE1BREs7UUFFckJILE9BRnFCO1FBR3JCb0YsVUFBVSxFQUFFSjtNQUhTLENBQXZCO01BS0EsT0FBT0csZ0JBQVA7SUFDRDtFQUNGLENBN0M2QixFQTZDM0IsS0E3QzJCLENBQTlCO0VBZ0RBLElBQUlHLE9BQU8sR0FBRyxJQUFkO0VBQUEsSUFDSUMsSUFBSSxHQUFHLENBRFg7O0VBRUEsS0FBSyxJQUFJQyxLQUFULElBQWtCVixpQkFBbEIsRUFBcUM7SUFDbkMsSUFBSTFDLGdCQUFFcUQsV0FBRixDQUFjRCxLQUFLLENBQUN4RixPQUFOLENBQWNNLENBQTVCLEtBQWtDOEIsZ0JBQUVxRCxXQUFGLENBQWNELEtBQUssQ0FBQ3hGLE9BQU4sQ0FBY08sQ0FBNUIsQ0FBbEMsSUFBb0UrRSxPQUFPLEtBQUssSUFBcEYsRUFBMEY7TUFFeEZFLEtBQUssQ0FBQ3hGLE9BQU4sQ0FBY00sQ0FBZCxHQUFrQmdGLE9BQU8sQ0FBQ2hGLENBQTFCO01BQ0FrRixLQUFLLENBQUN4RixPQUFOLENBQWNPLENBQWQsR0FBa0IrRSxPQUFPLENBQUMvRSxDQUExQjtJQUNEOztJQUNELElBQUlpRixLQUFLLENBQUN4RixPQUFOLENBQWNnRixNQUFkLElBQXdCTSxPQUE1QixFQUFxQztNQUVuQ0UsS0FBSyxDQUFDeEYsT0FBTixDQUFjTSxDQUFkLElBQW1CZ0YsT0FBTyxDQUFDaEYsQ0FBM0I7TUFDQWtGLEtBQUssQ0FBQ3hGLE9BQU4sQ0FBY08sQ0FBZCxJQUFtQitFLE9BQU8sQ0FBQy9FLENBQTNCO0lBQ0Q7O0lBQ0QsT0FBT2lGLEtBQUssQ0FBQ3hGLE9BQU4sQ0FBY2dGLE1BQXJCOztJQUNBLElBQUksQ0FBQzVDLGdCQUFFcUQsV0FBRixDQUFjRCxLQUFLLENBQUN4RixPQUFOLENBQWNNLENBQTVCLENBQUQsSUFBbUMsQ0FBQzhCLGdCQUFFcUQsV0FBRixDQUFjRCxLQUFLLENBQUN4RixPQUFOLENBQWNPLENBQTVCLENBQXhDLEVBQXdFO01BQ3RFK0UsT0FBTyxHQUFHRSxLQUFLLENBQUN4RixPQUFoQjtJQUNEOztJQUVELElBQUk2RSxLQUFKLEVBQVc7TUFDVCxJQUFJTyxVQUFVLEdBQUdJLEtBQUssQ0FBQ0osVUFBdkI7TUFDQUcsSUFBSSxJQUFJSCxVQUFSO01BQ0FJLEtBQUssQ0FBQ0QsSUFBTixHQUFhRyx3QkFBZUMsZ0JBQWYsQ0FBZ0NKLElBQWhDLEVBQXNDLENBQXRDLENBQWI7O01BR0EsSUFBSSxDQUFDbkQsZ0JBQUVxRCxXQUFGLENBQWNELEtBQUssQ0FBQ3hGLE9BQU4sQ0FBY00sQ0FBNUIsQ0FBRCxJQUFtQyxDQUFDOEIsZ0JBQUVxRCxXQUFGLENBQWNELEtBQUssQ0FBQ3hGLE9BQU4sQ0FBY08sQ0FBNUIsQ0FBeEMsRUFBd0U7UUFDdEVpRixLQUFLLENBQUNJLEtBQU4sR0FBYztVQUNadEYsQ0FBQyxFQUFFa0YsS0FBSyxDQUFDeEYsT0FBTixDQUFjTSxDQURMO1VBRVpDLENBQUMsRUFBRWlGLEtBQUssQ0FBQ3hGLE9BQU4sQ0FBY087UUFGTCxDQUFkO01BSUQ7O01BQ0QsT0FBT2lGLEtBQUssQ0FBQ3hGLE9BQWI7SUFDRDs7SUFDRCxPQUFPd0YsS0FBSyxDQUFDSixVQUFiO0VBQ0Q7O0VBQ0QsT0FBT04saUJBQVA7QUFDRCxDQXpGRDs7QUE0RkF4RixRQUFRLENBQUN1RyxrQkFBVCxHQUE4QixlQUFlQSxrQkFBZixDQUFtQzNCLE9BQW5DLEVBQTRDZSxTQUE1QyxFQUF1RDtFQUVuRixJQUFJZixPQUFPLENBQUNILE1BQVIsS0FBbUIsQ0FBdkIsRUFBMEI7SUFDeEIsTUFBTSxJQUFJK0IsS0FBSixDQUFVLHVEQUNaLHdDQURFLENBQU47RUFFRDs7RUFFRCxNQUFNQyxNQUFNLEdBQUcsTUFBTSx3QkFBUzdCLE9BQVQsRUFBa0IsTUFBTy9ELE1BQVAsSUFBa0IsTUFBTSxLQUFLd0UsVUFBTCxDQUFnQnhFLE1BQWhCLEVBQXdCLElBQXhCLENBQTFDLEVBQXlFLEtBQXpFLENBQXJCO0VBRUEsT0FBTyxNQUFNLEtBQUs2RixvQkFBTCxDQUEwQmYsU0FBMUIsRUFBcUNjLE1BQXJDLENBQWI7QUFDRCxDQVZEOztBQWtCQXpHLFFBQVEsQ0FBQzBHLG9CQUFULEdBQWdDLGVBQWVBLG9CQUFmLENBQXFDZixTQUFyQyxFQUFnRGMsTUFBaEQsRUFBd0Q7RUFDdEYsSUFBSTNGLElBQUo7O0VBQ0EsSUFBSTZFLFNBQUosRUFBZTtJQUNiN0UsSUFBSSxHQUFHO01BQ0w2RSxTQURLO01BRUxmLE9BQU8sRUFBRTZCO0lBRkosQ0FBUDtJQUlBLE9BQU8sTUFBTSxLQUFLRSxTQUFMLENBQWVDLFVBQWYsQ0FBMEIsb0NBQTFCLEVBQWdFOUYsSUFBaEUsQ0FBYjtFQUNELENBTkQsTUFNTztJQUNMQSxJQUFJLEdBQUc7TUFDTDhELE9BQU8sRUFBRTZCO0lBREosQ0FBUDtJQUdBLE9BQU8sTUFBTSxLQUFLRSxTQUFMLENBQWVDLFVBQWYsQ0FBMEIsNEJBQTFCLEVBQXdEOUYsSUFBeEQsQ0FBYjtFQUNEO0FBQ0YsQ0FkRDs7QUFnQkErRixNQUFNLENBQUNDLE1BQVAsQ0FBYzVHLFVBQWQsRUFBMEJGLFFBQTFCLEVBQW9DQyxPQUFwQztlQUVlQyxVIn0=
|
|
@@ -298,4 +298,4 @@ var _default = desiredCapConstraints;
|
|
|
298
298
|
exports.default = _default;require('source-map-support').install();
|
|
299
299
|
|
|
300
300
|
|
|
301
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kZXNpcmVkLWNhcHMuanMiXSwibmFtZXMiOlsiY29tbW9uQ2FwQ29uc3RyYWludHMiLCJwbGF0Zm9ybU5hbWUiLCJpc1N0cmluZyIsImluY2x1c2lvbkNhc2VJbnNlbnNpdGl2ZSIsInByZXNlbmNlIiwiYXBwIiwiYXBwQWN0aXZpdHkiLCJhcHBQYWNrYWdlIiwiYXBwV2FpdEFjdGl2aXR5IiwiYXBwV2FpdFBhY2thZ2UiLCJhcHBXYWl0RHVyYXRpb24iLCJpc051bWJlciIsImRldmljZVJlYWR5VGltZW91dCIsImFuZHJvaWRDb3ZlcmFnZSIsImFuZHJvaWREZXZpY2VSZWFkeVRpbWVvdXQiLCJhbmRyb2lkRGV2aWNlU29ja2V0IiwiYW5kcm9pZEluc3RhbGxUaW1lb3V0IiwiYWRiUG9ydCIsInJlbW90ZUFkYkhvc3QiLCJhZGJFeGVjVGltZW91dCIsImF2ZCIsImF2ZExhdW5jaFRpbWVvdXQiLCJhdmRSZWFkeVRpbWVvdXQiLCJhdmRBcmdzIiwiYXZkRW52IiwiaXNPYmplY3QiLCJ1c2VLZXlzdG9yZSIsImlzQm9vbGVhbiIsImtleXN0b3JlUGF0aCIsImtleXN0b3JlUGFzc3dvcmQiLCJrZXlBbGlhcyIsImtleVBhc3N3b3JkIiwid2Vidmlld0RldnRvb2xzUG9ydCIsImVuc3VyZVdlYnZpZXdzSGF2ZVBhZ2VzIiwiZW5hYmxlV2Vidmlld0RldGFpbHNDb2xsZWN0aW9uIiwiY2hyb21lRHJpdmVyUG9ydCIsImNocm9tZWRyaXZlclBvcnQiLCJjaHJvbWVkcml2ZXJQb3J0cyIsImlzQXJyYXkiLCJjaHJvbWVkcml2ZXJBcmdzIiwiY2hyb21lZHJpdmVyRXhlY3V0YWJsZSIsImNocm9tZWRyaXZlckV4ZWN1dGFibGVEaXIiLCJjaHJvbWVkcml2ZXJDaHJvbWVNYXBwaW5nRmlsZSIsImNocm9tZWRyaXZlclVzZVN5c3RlbUV4ZWN1dGFibGUiLCJjaHJvbWVkcml2ZXJEaXNhYmxlQnVpbGRDaGVjayIsImNocm9tZUxvZ2dpbmdQcmVmcyIsImF1dG9XZWJ2aWV3VGltZW91dCIsImludGVudEFjdGlvbiIsImludGVudENhdGVnb3J5IiwiaW50ZW50RmxhZ3MiLCJvcHRpb25hbEludGVudEFyZ3VtZW50cyIsImRvbnRTdG9wQXBwT25SZXNldCIsInVuaWNvZGVLZXlib2FyZCIsInJlc2V0S2V5Ym9hcmQiLCJub1NpZ24iLCJyZWNyZWF0ZUNocm9tZURyaXZlclNlc3Npb25zIiwiYXV0b0xhdW5jaCIsIm5hdGl2ZVdlYlNjcmVlbnNob3QiLCJhbmRyb2lkU2NyZWVuc2hvdFBhdGgiLCJhbmRyb2lkSW5zdGFsbFBhdGgiLCJjbGVhclN5c3RlbUZpbGVzIiwiZXh0cmFjdENocm9tZUFuZHJvaWRQYWNrYWdlRnJvbUNvbnRleHROYW1lIiwiYXV0b0dyYW50UGVybWlzc2lvbnMiLCJzaGFyZWRQcmVmZXJlbmNlcyIsIm5ldHdvcmtTcGVlZCIsImdwc0VuYWJsZWQiLCJpc0hlYWRsZXNzIiwic2hvd0Nocm9tZWRyaXZlckxvZyIsInNraXBVbmxvY2siLCJjbGVhckRldmljZUxvZ3NPblN0YXJ0IiwidW5sb2NrVHlwZSIsInVubG9ja0tleSIsInVubG9ja1N0cmF0ZWd5Iiwib3RoZXJBcHBzIiwidW5pbnN0YWxsT3RoZXJQYWNrYWdlcyIsImFsbG93VGVzdFBhY2thZ2VzIiwicGFnZUxvYWRTdHJhdGVneSIsImxvY2FsZVNjcmlwdCIsInNraXBEZXZpY2VJbml0aWFsaXphdGlvbiIsInJlbW90ZUFwcHNDYWNoZUxpbWl0IiwiYnVpbGRUb29sc1ZlcnNpb24iLCJza2lwTG9nY2F0Q2FwdHVyZSIsImNocm9tZU9wdGlvbnMiLCJlbmFibGVQZXJmb3JtYW5jZUxvZ2dpbmciLCJ1c2VyUHJvZmlsZSIsImJyb3dzZXJOYW1lIiwiZW5mb3JjZUFwcEluc3RhbGwiLCJzdXBwcmVzc0tpbGxTZXJ2ZXIiLCJhbGxvd09mZmxpbmVEZXZpY2VzIiwiaWdub3JlSGlkZGVuQXBpUG9saWN5RXJyb3IiLCJ1bmxvY2tTdWNjZXNzVGltZW91dCIsIm1vY2tMb2NhdGlvbkFwcCIsImxvZ2NhdEZvcm1hdCIsImxvZ2NhdEZpbHRlclNwZWNzIiwiYWxsb3dEZWxheUFkYiIsInVpYXV0b21hdG9yQ2FwQ29uc3RyYWludHMiLCJpZ25vcmVVbmltcG9ydGFudFZpZXdzIiwiZGlzYWJsZUFuZHJvaWRXYXRjaGVycyIsImFjY2VwdFNzbENlcnRzIiwiYW5kcm9pZE5hdHVyYWxPcmllbnRhdGlvbiIsImRpc2FibGVXaW5kb3dBbmltYXRpb24iLCJib290c3RyYXBQb3J0IiwiZGVzaXJlZENhcENvbnN0cmFpbnRzIiwiT2JqZWN0IiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFJQSxvQkFBb0IsR0FBRztBQUN6QkMsRUFBQUEsWUFBWSxFQUFFO0FBQ1pDLElBQUFBLFFBQVEsRUFBRSxJQURFO0FBRVpDLElBQUFBLHdCQUF3QixFQUFFLENBQUMsU0FBRCxDQUZkO0FBR1pDLElBQUFBLFFBQVEsRUFBRTtBQUhFLEdBRFc7QUFNekJDLEVBQUFBLEdBQUcsRUFBRTtBQUNISCxJQUFBQSxRQUFRLEVBQUU7QUFEUCxHQU5vQjtBQVN6QkksRUFBQUEsV0FBVyxFQUFFO0FBQ1hKLElBQUFBLFFBQVEsRUFBRTtBQURDLEdBVFk7QUFZekJLLEVBQUFBLFVBQVUsRUFBRTtBQUNWTCxJQUFBQSxRQUFRLEVBQUU7QUFEQSxHQVphO0FBZXpCTSxFQUFBQSxlQUFlLEVBQUU7QUFDZk4sSUFBQUEsUUFBUSxFQUFFO0FBREssR0FmUTtBQWtCekJPLEVBQUFBLGNBQWMsRUFBRTtBQUNkUCxJQUFBQSxRQUFRLEVBQUU7QUFESSxHQWxCUztBQXFCekJRLEVBQUFBLGVBQWUsRUFBRTtBQUNmQyxJQUFBQSxRQUFRLEVBQUU7QUFESyxHQXJCUTtBQXdCekJDLEVBQUFBLGtCQUFrQixFQUFFO0FBQ2xCRCxJQUFBQSxRQUFRLEVBQUU7QUFEUSxHQXhCSztBQTJCekJFLEVBQUFBLGVBQWUsRUFBRTtBQUNmWCxJQUFBQSxRQUFRLEVBQUU7QUFESyxHQTNCUTtBQThCekJZLEVBQUFBLHlCQUF5QixFQUFFO0FB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RTtBQUNmekYsSUFBQUEsUUFBUSxFQUFFO0FBREssR0EvUFE7QUFrUXpCMEYsRUFBQUEsWUFBWSxFQUFFO0FBQ1oxRixJQUFBQSxRQUFRLEVBQUU7QUFERSxHQWxRVztBQXFRekIyRixFQUFBQSxpQkFBaUIsRUFBRTtBQUNqQnZELElBQUFBLE9BQU8sRUFBRTtBQURRLEdBclFNO0FBd1F6QndELEVBQUFBLGFBQWEsRUFBRTtBQUNibkUsSUFBQUEsU0FBUyxFQUFFO0FBREU7QUF4UVUsQ0FBM0I7O0FBNlFBLElBQUlvRSx5QkFBeUIsR0FBRztBQUM5QkMsRUFBQUEsc0JBQXNCLEVBQUU7QUFDdEJyRSxJQUFBQSxTQUFTLEVBQUU7QUFEVyxHQURNO0FBSTlCc0UsRUFBQUEsc0JBQXNCLEVBQUU7QUFDdEJ0RSxJQUFBQSxTQUFTLEVBQUU7QUFEVyxHQUpNO0FBTzlCdUUsRUFBQUEsY0FBYyxFQUFFO0FBQ2R2RSxJQUFBQSxTQUFTLEVBQUU7QUFERyxHQVBjO0FBVTlCd0UsRUFBQUEseUJBQXlCLEVBQUU7QUFDekJ4RSxJQUFBQSxTQUFTLEVBQUU7QUFEYyxHQVZHO0FBYTlCeUUsRUFBQUEsc0JBQXNCLEVBQUU7QUFDdEJ6RSxJQUFBQSxTQUFTLEVBQUU7QUFEVyxHQWJNO0FBZ0I5QjBFLEVBQUFBLGFBQWEsRUFBRTtBQUNiMUYsSUFBQUEsUUFBUSxFQUFFO0FBREc7QUFoQmUsQ0FBaEM7QUFxQkEsSUFBSTJGLHFCQUFxQixHQUFHLEVBQTVCO0FBRUFDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjRixxQkFBZCxFQUFxQ3RHLG9CQUFyQyxFQUNjK0YseUJBRGQ7ZUFHZU8scUIiLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgY29tbW9uQ2FwQ29uc3RyYWludHMgPSB7XG4gIHBsYXRmb3JtTmFtZToge1xuICAgIGlzU3RyaW5nOiB0cnVlLFxuICAgIGluY2x1c2lvbkNhc2VJbnNlbnNpdGl2ZTogWydBbmRyb2lkJ10sXG4gICAgcHJlc2VuY2U6IHRydWVcbiAgfSxcbiAgYXBwOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgYXBwQWN0aXZpdHk6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBhcHBQYWNrYWdlOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgYXBwV2FpdEFjdGl2aXR5OiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgYXBwV2FpdFBhY2thZ2U6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBhcHBXYWl0RHVyYXRpb246IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICBkZXZpY2VSZWFkeVRpbWVvdXQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICBhbmRyb2lkQ292ZXJhZ2U6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBhbmRyb2lkRGV2aWNlUmVhZHlUaW1lb3V0OiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbiAgYW5kcm9pZERldmljZVNvY2tldDoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGFuZHJvaWRJbnN0YWxsVGltZW91dDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG4gIGFkYlBvcnQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICByZW1vdGVBZGJIb3N0OiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgYWRiRXhlY1RpbWVvdXQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICBhdmQ6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBhdmRMYXVuY2hUaW1lb3V0OiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbiAgYXZkUmVhZHlUaW1lb3V0OiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbiAgYXZkQXJnczoge1xuICAgIC8vIGNvdWxkIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5XG4gIH0sXG4gIGF2ZEVudjoge1xuICAgIGlzT2JqZWN0OiB0cnVlXG4gIH0sXG4gIHVzZUtleXN0b3JlOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGtleXN0b3JlUGF0aDoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGtleXN0b3JlUGFzc3dvcmQ6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBrZXlBbGlhczoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGtleVBhc3N3b3JkOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgd2Vidmlld0RldnRvb2xzUG9ydDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG4gIGVuc3VyZVdlYnZpZXdzSGF2ZVBhZ2VzOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGVuYWJsZVdlYnZpZXdEZXRhaWxzQ29sbGVjdGlvbjoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICAvLyB0aGlzIG9uZSBpcyBkZXByZWNhdGVkXG4gIGNocm9tZURyaXZlclBvcnQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICAvLyBkdXBsaWNhdGUgb2YgYWJvdmUgd2l0aCBiZXR0ZXIgc3BlbGxpbmdcbiAgY2hyb21lZHJpdmVyUG9ydDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG4gIGNocm9tZWRyaXZlclBvcnRzOiB7XG4gICAgaXNBcnJheTogdHJ1ZVxuICB9LFxuICBjaHJvbWVkcml2ZXJBcmdzOiB7XG4gICAgaXNPYmplY3Q6IHRydWUsXG4gIH0sXG4gIGNocm9tZWRyaXZlckV4ZWN1dGFibGU6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBjaHJvbWVkcml2ZXJFeGVjdXRhYmxlRGlyOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgY2hyb21lZHJpdmVyQ2hyb21lTWFwcGluZ0ZpbGU6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBjaHJvbWVkcml2ZXJVc2VTeXN0ZW1FeGVjdXRhYmxlOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGNocm9tZWRyaXZlckRpc2FibGVCdWlsZENoZWNrOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGNocm9tZUxvZ2dpbmdQcmVmczoge1xuICAgIGlzT2JqZWN0OiB0cnVlXG4gIH0sXG4gIGF1dG9XZWJ2aWV3VGltZW91dDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG4gIGludGVudEFjdGlvbjoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGludGVudENhdGVnb3J5OiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgaW50ZW50RmxhZ3M6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBvcHRpb25hbEludGVudEFyZ3VtZW50czoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGRvbnRTdG9wQXBwT25SZXNldDoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICB1bmljb2RlS2V5Ym9hcmQ6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgcmVzZXRLZXlib2FyZDoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBub1NpZ246IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgcmVjcmVhdGVDaHJvbWVEcml2ZXJTZXNzaW9uczoge1xuICAgIGlzQm9vbGVhbjogZmFsc2VcbiAgfSxcbiAgYXV0b0xhdW5jaDoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBuYXRpdmVXZWJTY3JlZW5zaG90OiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGFuZHJvaWRTY3JlZW5zaG90UGF0aDoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGFuZHJvaWRJbnN0YWxsUGF0aDoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGNsZWFyU3lzdGVtRmlsZXM6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgZXh0cmFjdENocm9tZUFuZHJvaWRQYWNrYWdlRnJvbUNvbnRleHROYW1lOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGF1dG9HcmFudFBlcm1pc3Npb25zOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHNoYXJlZFByZWZlcmVuY2VzOiB7XG4gICAgaXNPYmplY3Q6IHRydWVcbiAgfSxcbiAgbmV0d29ya1NwZWVkOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgZ3BzRW5hYmxlZDoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBpc0hlYWRsZXNzOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHNob3dDaHJvbWVkcml2ZXJMb2c6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgc2tpcFVubG9jazoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBjbGVhckRldmljZUxvZ3NPblN0YXJ0OiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHVubG9ja1R5cGU6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICB1bmxvY2tLZXk6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICB1bmxvY2tTdHJhdGVneToge1xuICAgIGlzU3RyaW5nOiB0cnVlLFxuICAgIGluY2x1c2lvbkNhc2VJbnNlbnNpdGl2ZTogWydsb2Nrc2V0dGluZ3MnLCAndWlhdXRvbWF0b3InXSxcbiAgfSxcbiAgb3RoZXJBcHBzOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgdW5pbnN0YWxsT3RoZXJQYWNrYWdlczoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGFsbG93VGVzdFBhY2thZ2VzOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHBhZ2VMb2FkU3RyYXRlZ3k6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBsb2NhbGVTY3JpcHQ6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBza2lwRGV2aWNlSW5pdGlhbGl6YXRpb246IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgcmVtb3RlQXBwc0NhY2hlTGltaXQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICBidWlsZFRvb2xzVmVyc2lvbjoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIHNraXBMb2djYXRDYXB0dXJlOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGNocm9tZU9wdGlvbnM6IHtcbiAgICBpc09iamVjdDogdHJ1ZVxuICB9LFxuICBlbmFibGVQZXJmb3JtYW5jZUxvZ2dpbmc6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgdXNlclByb2ZpbGU6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICBicm93c2VyTmFtZToge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGVuZm9yY2VBcHBJbnN0YWxsOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHN1cHByZXNzS2lsbFNlcnZlcjoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBhbGxvd09mZmxpbmVEZXZpY2VzOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGlnbm9yZUhpZGRlbkFwaVBvbGljeUVycm9yOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHVubG9ja1N1Y2Nlc3NUaW1lb3V0OiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbiAgbW9ja0xvY2F0aW9uQXBwOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgbG9nY2F0Rm9ybWF0OiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgbG9nY2F0RmlsdGVyU3BlY3M6IHtcbiAgICBpc0FycmF5OiB0cnVlXG4gIH0sXG4gIGFsbG93RGVsYXlBZGI6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfVxufTtcblxubGV0IHVpYXV0b21hdG9yQ2FwQ29uc3RyYWludHMgPSB7XG4gIGlnbm9yZVVuaW1wb3J0YW50Vmlld3M6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgZGlzYWJsZUFuZHJvaWRXYXRjaGVyczoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBhY2NlcHRTc2xDZXJ0czoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBhbmRyb2lkTmF0dXJhbE9yaWVudGF0aW9uOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGRpc2FibGVXaW5kb3dBbmltYXRpb246IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgYm9vdHN0cmFwUG9ydDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG59O1xuXG5sZXQgZGVzaXJlZENhcENvbnN0cmFpbnRzID0ge307XG5cbk9iamVjdC5hc3NpZ24oZGVzaXJlZENhcENvbnN0cmFpbnRzLCBjb21tb25DYXBDb25zdHJhaW50cyxcbiAgICAgICAgICAgICAgdWlhdXRvbWF0b3JDYXBDb25zdHJhaW50cyk7XG5cbmV4cG9ydCBkZWZhdWx0IGRlc2lyZWRDYXBDb25zdHJhaW50cztcbmV4cG9ydCB7IGNvbW1vbkNhcENvbnN0cmFpbnRzIH07XG4iXSwiZmlsZSI6ImxpYi9kZXNpcmVkLWNhcHMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
|
|
301
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2Rlc2lyZWQtY2Fwcy5qcyIsIm5hbWVzIjpbImNvbW1vbkNhcENvbnN0cmFpbnRzIiwicGxhdGZvcm1OYW1lIiwiaXNTdHJpbmciLCJpbmNsdXNpb25DYXNlSW5zZW5zaXRpdmUiLCJwcmVzZW5jZSIsImFwcCIsImFwcEFjdGl2aXR5IiwiYXBwUGFja2FnZSIsImFwcFdhaXRBY3Rpdml0eSIsImFwcFdhaXRQYWNrYWdlIiwiYXBwV2FpdER1cmF0aW9uIiwiaXNOdW1iZXIiLCJkZXZpY2VSZWFkeVRpbWVvdXQiLCJhbmRyb2lkQ292ZXJhZ2UiLCJhbmRyb2lkRGV2aWNlUmVhZHlUaW1lb3V0IiwiYW5kcm9pZERldmljZVNvY2tldCIsImFuZHJvaWRJbnN0YWxsVGltZW91dCIsImFkYlBvcnQiLCJyZW1vdGVBZGJIb3N0IiwiYWRiRXhlY1RpbWVvdXQiLCJhdmQiLCJhdmRMYXVuY2hUaW1lb3V0IiwiYXZkUmVhZHlUaW1lb3V0IiwiYXZkQXJncyIsImF2ZEVudiIsImlzT2JqZWN0IiwidXNlS2V5c3RvcmUiLCJpc0Jvb2xlYW4iLCJrZXlzdG9yZVBhdGgiLCJrZXlzdG9yZVBhc3N3b3JkIiwia2V5QWxpYXMiLCJrZXlQYXNzd29yZCIsIndlYnZpZXdEZXZ0b29sc1BvcnQiLCJlbnN1cmVXZWJ2aWV3c0hhdmVQYWdlcyIsImVuYWJsZVdlYnZpZXdEZXRhaWxzQ29sbGVjdGlvbiIsImNocm9tZURyaXZlclBvcnQiLCJjaHJvbWVkcml2ZXJQb3J0IiwiY2hyb21lZHJpdmVyUG9ydHMiLCJpc0FycmF5IiwiY2hyb21lZHJpdmVyQXJncyIsImNocm9tZWRyaXZlckV4ZWN1dGFibGUiLCJjaHJvbWVkcml2ZXJFeGVjdXRhYmxlRGlyIiwiY2hyb21lZHJpdmVyQ2hyb21lTWFwcGluZ0ZpbGUiLCJjaHJvbWVkcml2ZXJVc2VTeXN0ZW1FeGVjdXRhYmxlIiwiY2hyb21lZHJpdmVyRGlzYWJsZUJ1aWxkQ2hlY2siLCJjaHJvbWVMb2dnaW5nUHJlZnMiLCJhdXRvV2Vidmlld1RpbWVvdXQiLCJpbnRlbnRBY3Rpb24iLCJpbnRlbnRDYXRlZ29yeSIsImludGVudEZsYWdzIiwib3B0aW9uYWxJbnRlbnRBcmd1bWVudHMiLCJkb250U3RvcEFwcE9uUmVzZXQiLCJ1bmljb2RlS2V5Ym9hcmQiLCJyZXNldEtleWJvYXJkIiwibm9TaWduIiwicmVjcmVhdGVDaHJvbWVEcml2ZXJTZXNzaW9ucyIsImF1dG9MYXVuY2giLCJuYXRpdmVXZWJTY3JlZW5zaG90IiwiYW5kcm9pZFNjcmVlbnNob3RQYXRoIiwiYW5kcm9pZEluc3RhbGxQYXRoIiwiY2xlYXJTeXN0ZW1GaWxlcyIsImV4dHJhY3RDaHJvbWVBbmRyb2lkUGFja2FnZUZyb21Db250ZXh0TmFtZSIsImF1dG9HcmFudFBlcm1pc3Npb25zIiwic2hhcmVkUHJlZmVyZW5jZXMiLCJuZXR3b3JrU3BlZWQiLCJncHNFbmFibGVkIiwiaXNIZWFkbGVzcyIsInNob3dDaHJvbWVkcml2ZXJMb2ciLCJza2lwVW5sb2NrIiwiY2xlYXJEZXZpY2VMb2dzT25TdGFydCIsInVubG9ja1R5cGUiLCJ1bmxvY2tLZXkiLCJ1bmxvY2tTdHJhdGVneSIsIm90aGVyQXBwcyIsInVuaW5zdGFsbE90aGVyUGFja2FnZXMiLCJhbGxvd1Rlc3RQYWNrYWdlcyIsInBhZ2VMb2FkU3RyYXRlZ3kiLCJsb2NhbGVTY3JpcHQiLCJza2lwRGV2aWNlSW5pdGlhbGl6YXRpb24iLCJyZW1vdGVBcHBzQ2FjaGVMaW1pdCIsImJ1aWxkVG9vbHNWZXJzaW9uIiwic2tpcExvZ2NhdENhcHR1cmUiLCJjaHJvbWVPcHRpb25zIiwiZW5hYmxlUGVyZm9ybWFuY2VMb2dnaW5nIiwidXNlclByb2ZpbGUiLCJicm93c2VyTmFtZSIsImVuZm9yY2VBcHBJbnN0YWxsIiwic3VwcHJlc3NLaWxsU2VydmVyIiwiYWxsb3dPZmZsaW5lRGV2aWNlcyIsImlnbm9yZUhpZGRlbkFwaVBvbGljeUVycm9yIiwidW5sb2NrU3VjY2Vzc1RpbWVvdXQiLCJtb2NrTG9jYXRpb25BcHAiLCJsb2djYXRGb3JtYXQiLCJsb2djYXRGaWx0ZXJTcGVjcyIsImFsbG93RGVsYXlBZGIiLCJ1aWF1dG9tYXRvckNhcENvbnN0cmFpbnRzIiwiaWdub3JlVW5pbXBvcnRhbnRWaWV3cyIsImRpc2FibGVBbmRyb2lkV2F0Y2hlcnMiLCJhY2NlcHRTc2xDZXJ0cyIsImFuZHJvaWROYXR1cmFsT3JpZW50YXRpb24iLCJkaXNhYmxlV2luZG93QW5pbWF0aW9uIiwiYm9vdHN0cmFwUG9ydCIsImRlc2lyZWRDYXBDb25zdHJhaW50cyIsIk9iamVjdCIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9kZXNpcmVkLWNhcHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IGNvbW1vbkNhcENvbnN0cmFpbnRzID0ge1xuICBwbGF0Zm9ybU5hbWU6IHtcbiAgICBpc1N0cmluZzogdHJ1ZSxcbiAgICBpbmNsdXNpb25DYXNlSW5zZW5zaXRpdmU6IFsnQW5kcm9pZCddLFxuICAgIHByZXNlbmNlOiB0cnVlXG4gIH0sXG4gIGFwcDoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGFwcEFjdGl2aXR5OiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgYXBwUGFja2FnZToge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGFwcFdhaXRBY3Rpdml0eToge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGFwcFdhaXRQYWNrYWdlOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgYXBwV2FpdER1cmF0aW9uOiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbiAgZGV2aWNlUmVhZHlUaW1lb3V0OiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbiAgYW5kcm9pZENvdmVyYWdlOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgYW5kcm9pZERldmljZVJlYWR5VGltZW91dDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG4gIGFuZHJvaWREZXZpY2VTb2NrZXQ6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBhbmRyb2lkSW5zdGFsbFRpbWVvdXQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICBhZGJQb3J0OiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbiAgcmVtb3RlQWRiSG9zdDoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGFkYkV4ZWNUaW1lb3V0OiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbiAgYXZkOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgYXZkTGF1bmNoVGltZW91dDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG4gIGF2ZFJlYWR5VGltZW91dDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG4gIGF2ZEFyZ3M6IHtcbiAgICAvLyBjb3VsZCBiZSBhIHN0cmluZyBvciBhbiBhcnJheVxuICB9LFxuICBhdmRFbnY6IHtcbiAgICBpc09iamVjdDogdHJ1ZVxuICB9LFxuICB1c2VLZXlzdG9yZToge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBrZXlzdG9yZVBhdGg6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBrZXlzdG9yZVBhc3N3b3JkOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAga2V5QWxpYXM6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBrZXlQYXNzd29yZDoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIHdlYnZpZXdEZXZ0b29sc1BvcnQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICBlbnN1cmVXZWJ2aWV3c0hhdmVQYWdlczoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBlbmFibGVXZWJ2aWV3RGV0YWlsc0NvbGxlY3Rpb246IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgLy8gdGhpcyBvbmUgaXMgZGVwcmVjYXRlZFxuICBjaHJvbWVEcml2ZXJQb3J0OiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbiAgLy8gZHVwbGljYXRlIG9mIGFib3ZlIHdpdGggYmV0dGVyIHNwZWxsaW5nXG4gIGNocm9tZWRyaXZlclBvcnQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICBjaHJvbWVkcml2ZXJQb3J0czoge1xuICAgIGlzQXJyYXk6IHRydWVcbiAgfSxcbiAgY2hyb21lZHJpdmVyQXJnczoge1xuICAgIGlzT2JqZWN0OiB0cnVlLFxuICB9LFxuICBjaHJvbWVkcml2ZXJFeGVjdXRhYmxlOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgY2hyb21lZHJpdmVyRXhlY3V0YWJsZURpcjoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGNocm9tZWRyaXZlckNocm9tZU1hcHBpbmdGaWxlOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgY2hyb21lZHJpdmVyVXNlU3lzdGVtRXhlY3V0YWJsZToge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBjaHJvbWVkcml2ZXJEaXNhYmxlQnVpbGRDaGVjazoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBjaHJvbWVMb2dnaW5nUHJlZnM6IHtcbiAgICBpc09iamVjdDogdHJ1ZVxuICB9LFxuICBhdXRvV2Vidmlld1RpbWVvdXQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICBpbnRlbnRBY3Rpb246IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBpbnRlbnRDYXRlZ29yeToge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGludGVudEZsYWdzOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgb3B0aW9uYWxJbnRlbnRBcmd1bWVudHM6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBkb250U3RvcEFwcE9uUmVzZXQ6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgdW5pY29kZUtleWJvYXJkOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHJlc2V0S2V5Ym9hcmQ6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgbm9TaWduOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHJlY3JlYXRlQ2hyb21lRHJpdmVyU2Vzc2lvbnM6IHtcbiAgICBpc0Jvb2xlYW46IGZhbHNlXG4gIH0sXG4gIGF1dG9MYXVuY2g6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgbmF0aXZlV2ViU2NyZWVuc2hvdDoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBhbmRyb2lkU2NyZWVuc2hvdFBhdGg6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBhbmRyb2lkSW5zdGFsbFBhdGg6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBjbGVhclN5c3RlbUZpbGVzOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGV4dHJhY3RDaHJvbWVBbmRyb2lkUGFja2FnZUZyb21Db250ZXh0TmFtZToge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBhdXRvR3JhbnRQZXJtaXNzaW9uczoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBzaGFyZWRQcmVmZXJlbmNlczoge1xuICAgIGlzT2JqZWN0OiB0cnVlXG4gIH0sXG4gIG5ldHdvcmtTcGVlZDoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGdwc0VuYWJsZWQ6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgaXNIZWFkbGVzczoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBzaG93Q2hyb21lZHJpdmVyTG9nOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHNraXBVbmxvY2s6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgY2xlYXJEZXZpY2VMb2dzT25TdGFydDoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICB1bmxvY2tUeXBlOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgdW5sb2NrS2V5OiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgdW5sb2NrU3RyYXRlZ3k6IHtcbiAgICBpc1N0cmluZzogdHJ1ZSxcbiAgICBpbmNsdXNpb25DYXNlSW5zZW5zaXRpdmU6IFsnbG9ja3NldHRpbmdzJywgJ3VpYXV0b21hdG9yJ10sXG4gIH0sXG4gIG90aGVyQXBwczoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIHVuaW5zdGFsbE90aGVyUGFja2FnZXM6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBhbGxvd1Rlc3RQYWNrYWdlczoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBwYWdlTG9hZFN0cmF0ZWd5OiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgbG9jYWxlU2NyaXB0OiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgc2tpcERldmljZUluaXRpYWxpemF0aW9uOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHJlbW90ZUFwcHNDYWNoZUxpbWl0OiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbiAgYnVpbGRUb29sc1ZlcnNpb246IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBza2lwTG9nY2F0Q2FwdHVyZToge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBjaHJvbWVPcHRpb25zOiB7XG4gICAgaXNPYmplY3Q6IHRydWVcbiAgfSxcbiAgZW5hYmxlUGVyZm9ybWFuY2VMb2dnaW5nOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHVzZXJQcm9maWxlOiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbiAgYnJvd3Nlck5hbWU6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBlbmZvcmNlQXBwSW5zdGFsbDoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBzdXBwcmVzc0tpbGxTZXJ2ZXI6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgYWxsb3dPZmZsaW5lRGV2aWNlczoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBpZ25vcmVIaWRkZW5BcGlQb2xpY3lFcnJvcjoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICB1bmxvY2tTdWNjZXNzVGltZW91dDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG4gIG1vY2tMb2NhdGlvbkFwcDoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGxvZ2NhdEZvcm1hdDoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGxvZ2NhdEZpbHRlclNwZWNzOiB7XG4gICAgaXNBcnJheTogdHJ1ZVxuICB9LFxuICBhbGxvd0RlbGF5QWRiOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH1cbn07XG5cbmxldCB1aWF1dG9tYXRvckNhcENvbnN0cmFpbnRzID0ge1xuICBpZ25vcmVVbmltcG9ydGFudFZpZXdzOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGRpc2FibGVBbmRyb2lkV2F0Y2hlcnM6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgYWNjZXB0U3NsQ2VydHM6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgYW5kcm9pZE5hdHVyYWxPcmllbnRhdGlvbjoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBkaXNhYmxlV2luZG93QW5pbWF0aW9uOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGJvb3RzdHJhcFBvcnQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxufTtcblxubGV0IGRlc2lyZWRDYXBDb25zdHJhaW50cyA9IHt9O1xuXG5PYmplY3QuYXNzaWduKGRlc2lyZWRDYXBDb25zdHJhaW50cywgY29tbW9uQ2FwQ29uc3RyYWludHMsXG4gICAgICAgICAgICAgIHVpYXV0b21hdG9yQ2FwQ29uc3RyYWludHMpO1xuXG5leHBvcnQgZGVmYXVsdCBkZXNpcmVkQ2FwQ29uc3RyYWludHM7XG5leHBvcnQgeyBjb21tb25DYXBDb25zdHJhaW50cyB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFJQSxvQkFBb0IsR0FBRztFQUN6QkMsWUFBWSxFQUFFO0lBQ1pDLFFBQVEsRUFBRSxJQURFO0lBRVpDLHdCQUF3QixFQUFFLENBQUMsU0FBRCxDQUZkO0lBR1pDLFFBQVEsRUFBRTtFQUhFLENBRFc7RUFNekJDLEdBQUcsRUFBRTtJQUNISCxRQUFRLEVBQUU7RUFEUCxDQU5vQjtFQVN6QkksV0FBVyxFQUFFO0lBQ1hKLFFBQVEsRUFBRTtFQURDLENBVFk7RUFZekJLLFVBQVUsRUFBRTtJQUNWTCxRQUFRLEVBQUU7RUFEQSxDQVphO0VBZXpCTSxlQUFlLEVBQUU7SUFDZk4sUUFBUSxFQUFFO0VBREssQ0FmUTtFQWtCekJPLGNBQWMsRUFBRTtJQUNkUCxRQUFRLEVBQUU7RUFESSxDQWxCUztFQXFCekJRLGVBQWUsRUFBRTtJQUNmQyxRQUFRLEVBQUU7RUFESyxDQXJCUTtFQXdCekJDLGtCQUFrQixFQUFFO0lBQ2xCRCxRQUFRLEVBQUU7RUFEUSxDQXhCSztFQTJCekJFLGVBQWUsRUFBRTtJQUNmWCxRQUFRLEVBQUU7RUFESyxDQTNCUTtFQThCekJZLHlCQUF5QixFQUFFO0lBQ3pCSCxRQUFRLEVBQUU7RUFEZSxDQTlCRjtFQWlDekJJLG1CQUFtQixFQUFFO0lBQ25CYixRQUFRLEVBQUU7RUFEUyxDQWpDSTtFQW9DekJjLHFCQUFxQixFQUFFO0lBQ3JCTCxRQUFRLEVBQUU7RUFEVyxDQXBDRTtFQXVDekJNLE9BQU8sRUFBRTtJQUNQTixRQUFRLEVBQUU7RUFESCxDQXZDZ0I7RUEwQ3pCTyxhQUFhLEVBQUU7SUFDYmhCLFFBQVEsRUFBRTtFQURHLENBMUNVO0VBNkN6QmlCLGNBQWMsRUFBRTtJQUNkUixRQUFRLEVBQUU7RUFESSxDQTdDUztFQWdEekJTLEdBQUcsRUFBRTtJQUNIbEIsUUFBUSxFQUFFO0VBRFAsQ0FoRG9C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
|