appium-espresso-driver 2.2.6 → 2.5.0

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.
Files changed (25) hide show
  1. package/README.md +2 -1
  2. package/build/index.js +1 -1
  3. package/build/lib/commands/execute.js +1 -1
  4. package/build/lib/commands/general.js +1 -1
  5. package/build/lib/commands/idling-resources.js +1 -1
  6. package/build/lib/commands/services.js +1 -1
  7. package/build/lib/driver.js +1 -1
  8. package/build/lib/espresso-runner.js +1 -1
  9. package/build/lib/logger.js +1 -1
  10. package/build/lib/server-builder.js +2 -2
  11. package/build/lib/server.js +1 -1
  12. package/build/lib/utils.js +1 -1
  13. package/espresso-server/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk +0 -0
  14. package/espresso-server/app/build.gradle.kts +12 -2
  15. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetEnabled.kt +8 -6
  16. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetLocation.kt +9 -4
  17. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetLocationInView.kt +3 -6
  18. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetName.kt +9 -4
  19. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetSelected.kt +6 -3
  20. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/GetSize.kt +9 -4
  21. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/handlers/Text.kt +0 -1
  22. package/espresso-server/app/src/androidTest/java/io/appium/espressoserver/lib/model/AttributesEnum.kt +1 -1
  23. package/lib/server-builder.js +2 -1
  24. package/npm-shrinkwrap.json +24173 -2745
  25. package/package.json +1 -1
package/README.md CHANGED
@@ -195,7 +195,7 @@ to mix Espresso and Compose elements.
195
195
  In order to change between subdrivers use the [driver](#settings-api) setting. Setting its value to `compose` modifies driver behavior in the way it interacts with Compose elements rather that with classic Android views. It is possible to switch between `espresso` and `compose` modes at any point of time. When `compose` mode is active the the following webdriver commands behave differently (as of driver version *1.50.0*):
196
196
  - findElement(s): Element finding commands only support Compose-based locators. Read [Compose Elements Location](#compose-elements-location) for more details.
197
197
  - getPageSource: The returned page source is retrieved from Compose and all elements there contain [Compose-specific](#compose-element-attributes) attributes.
198
- - click, isDisplayed, isEnabled, clear, getText, sendKeys, getElementRect, getValue: These commands should properly support compose elements.
198
+ - click, isDisplayed, isEnabled, clear, getText, sendKeys, getElementRect, getValue, isSelected: These commands should properly support compose elements.
199
199
  - getAttribute: Accepts and returns Compose-specific element attributes. See [Compose Element Attributes](#compose-element-attributes) for the full list of supported Compose element attributes.
200
200
 
201
201
  Calling other driver element-specific APIs not listed above would most likely throw an exception as Compose and Espresso elements are being stored in completely separated internal caches and must not be mixed.
@@ -229,6 +229,7 @@ composeVersion | The version for the Jetpack Compose dependencies to use for Esp
229
229
  sourceCompatibility | The minimum version of JVM the project sources are compatible with. The default value is `VERSION_1_8` | VERSION_12
230
230
  targetCompatibility | The target version of JVM the project sources are compatible with. The default value is `VERSION_1_8` | VERSION_12
231
231
  jvmTarget | Target version of the generated JVM bytecode as a string. The default value is `1_8` | `1_10`
232
+ annotationVersion | The target version of `androidx.annotation:annotation` pakage. By default the version from the app [build.gradle.kts](https://github.com/appium/appium-espresso-driver/blob/master/espresso-server/app/build.gradle.kts) is used | '1.2.0'
232
233
 
233
234
  ### additionalAppDependencies
234
235
 
package/build/index.js CHANGED
@@ -47,4 +47,4 @@ var _default = EspressoDriver;
47
47
  exports.default = _default;require('source-map-support').install();
48
48
 
49
49
 
50
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6WyJFc3ByZXNzb0RyaXZlciIsImRyaXZlciIsInN0YXJ0U2VydmVyIiwic2VydmVyIiwiREVGQVVMVF9IT1NUIiwiREVGQVVMVF9QT1JUIiwibWFpbiIsImdldEFyZ1ZhbHVlIiwiYXJnTmFtZSIsImFyZ0luZGV4IiwicHJvY2VzcyIsImFyZ3YiLCJpbmRleE9mIiwicG9ydCIsInBhcnNlSW50IiwiaG9zdCIsInJlcXVpcmUiLCJtb2R1bGUiXSwic291cmNlUm9vdCI6Ii4uIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0cmFuc3BpbGU6bWFpblxuXG5pbXBvcnQgeyBhc3luY2lmeSB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCAqIGFzIGRyaXZlciBmcm9tICcuL2xpYi9kcml2ZXInO1xuaW1wb3J0ICogYXMgc2VydmVyIGZyb20gJy4vbGliL3NlcnZlcic7XG5cblxuY29uc3QgeyBFc3ByZXNzb0RyaXZlciB9ID0gZHJpdmVyO1xuY29uc3QgeyBzdGFydFNlcnZlciB9ID0gc2VydmVyO1xuXG5jb25zdCBERUZBVUxUX0hPU1QgPSAnbG9jYWxob3N0JztcbmNvbnN0IERFRkFVTFRfUE9SVCA9IDQ4ODQ7XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4gKCkge1xuICBjb25zdCBnZXRBcmdWYWx1ZSA9IChhcmdOYW1lKSA9PiB7XG4gICAgY29uc3QgYXJnSW5kZXggPSBwcm9jZXNzLmFyZ3YuaW5kZXhPZihhcmdOYW1lKTtcbiAgICByZXR1cm4gYXJnSW5kZXggPiAwID8gcHJvY2Vzcy5hcmd2W2FyZ0luZGV4ICsgMV0gOiBudWxsO1xuICB9O1xuICBjb25zdCBwb3J0ID0gcGFyc2VJbnQoZ2V0QXJnVmFsdWUoJy0tcG9ydCcpLCAxMCkgfHwgREVGQVVMVF9QT1JUO1xuICBjb25zdCBob3N0ID0gZ2V0QXJnVmFsdWUoJy0taG9zdCcpIHx8IERFRkFVTFRfSE9TVDtcbiAgcmV0dXJuIGF3YWl0IHN0YXJ0U2VydmVyKHBvcnQsIGhvc3QpO1xufVxuXG5pZiAocmVxdWlyZS5tYWluID09PSBtb2R1bGUpIHtcbiAgYXN5bmNpZnkobWFpbik7XG59XG5cbmV4cG9ydCB7IEVzcHJlc3NvRHJpdmVyLCBzdGFydFNlcnZlciB9O1xuZXhwb3J0IGRlZmF1bHQgRXNwcmVzc29Ecml2ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUVBOztBQUNBOztBQUNBOzs7Ozs7QUFHQSxNQUFNO0VBQUVBO0FBQUYsSUFBcUJDLE1BQTNCOztBQUNBLE1BQU07RUFBRUM7QUFBRixJQUFrQkMsTUFBeEI7O0FBRUEsTUFBTUMsWUFBWSxHQUFHLFdBQXJCO0FBQ0EsTUFBTUMsWUFBWSxHQUFHLElBQXJCOztBQUVBLGVBQWVDLElBQWYsR0FBdUI7RUFDckIsTUFBTUMsV0FBVyxHQUFJQyxPQUFELElBQWE7SUFDL0IsTUFBTUMsUUFBUSxHQUFHQyxPQUFPLENBQUNDLElBQVIsQ0FBYUMsT0FBYixDQUFxQkosT0FBckIsQ0FBakI7SUFDQSxPQUFPQyxRQUFRLEdBQUcsQ0FBWCxHQUFlQyxPQUFPLENBQUNDLElBQVIsQ0FBYUYsUUFBUSxHQUFHLENBQXhCLENBQWYsR0FBNEMsSUFBbkQ7RUFDRCxDQUhEOztFQUlBLE1BQU1JLElBQUksR0FBR0MsUUFBUSxDQUFDUCxXQUFXLENBQUMsUUFBRCxDQUFaLEVBQXdCLEVBQXhCLENBQVIsSUFBdUNGLFlBQXBEO0VBQ0EsTUFBTVUsSUFBSSxHQUFHUixXQUFXLENBQUMsUUFBRCxDQUFYLElBQXlCSCxZQUF0QztFQUNBLE9BQU8sTUFBTUYsV0FBVyxDQUFDVyxJQUFELEVBQU9FLElBQVAsQ0FBeEI7QUFDRDs7QUFFRCxJQUFJQyxPQUFPLENBQUNWLElBQVIsS0FBaUJXLE1BQXJCLEVBQTZCO0VBQzNCLHdCQUFTWCxJQUFUO0FBQ0Q7O2VBR2NOLGMifQ==
50
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6WyJFc3ByZXNzb0RyaXZlciIsImRyaXZlciIsInN0YXJ0U2VydmVyIiwic2VydmVyIiwiREVGQVVMVF9IT1NUIiwiREVGQVVMVF9QT1JUIiwibWFpbiIsImdldEFyZ1ZhbHVlIiwiYXJnTmFtZSIsImFyZ0luZGV4IiwicHJvY2VzcyIsImFyZ3YiLCJpbmRleE9mIiwicG9ydCIsInBhcnNlSW50IiwiaG9zdCIsInJlcXVpcmUiLCJtb2R1bGUiLCJhc3luY2lmeSJdLCJzb3VyY2VSb290IjoiLi4iLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHRyYW5zcGlsZTptYWluXG5cbmltcG9ydCB7IGFzeW5jaWZ5IH0gZnJvbSAnYXN5bmNib3gnO1xuaW1wb3J0ICogYXMgZHJpdmVyIGZyb20gJy4vbGliL2RyaXZlcic7XG5pbXBvcnQgKiBhcyBzZXJ2ZXIgZnJvbSAnLi9saWIvc2VydmVyJztcblxuXG5jb25zdCB7IEVzcHJlc3NvRHJpdmVyIH0gPSBkcml2ZXI7XG5jb25zdCB7IHN0YXJ0U2VydmVyIH0gPSBzZXJ2ZXI7XG5cbmNvbnN0IERFRkFVTFRfSE9TVCA9ICdsb2NhbGhvc3QnO1xuY29uc3QgREVGQVVMVF9QT1JUID0gNDg4NDtcblxuYXN5bmMgZnVuY3Rpb24gbWFpbiAoKSB7XG4gIGNvbnN0IGdldEFyZ1ZhbHVlID0gKGFyZ05hbWUpID0+IHtcbiAgICBjb25zdCBhcmdJbmRleCA9IHByb2Nlc3MuYXJndi5pbmRleE9mKGFyZ05hbWUpO1xuICAgIHJldHVybiBhcmdJbmRleCA+IDAgPyBwcm9jZXNzLmFyZ3ZbYXJnSW5kZXggKyAxXSA6IG51bGw7XG4gIH07XG4gIGNvbnN0IHBvcnQgPSBwYXJzZUludChnZXRBcmdWYWx1ZSgnLS1wb3J0JyksIDEwKSB8fCBERUZBVUxUX1BPUlQ7XG4gIGNvbnN0IGhvc3QgPSBnZXRBcmdWYWx1ZSgnLS1ob3N0JykgfHwgREVGQVVMVF9IT1NUO1xuICByZXR1cm4gYXdhaXQgc3RhcnRTZXJ2ZXIocG9ydCwgaG9zdCk7XG59XG5cbmlmIChyZXF1aXJlLm1haW4gPT09IG1vZHVsZSkge1xuICBhc3luY2lmeShtYWluKTtcbn1cblxuZXhwb3J0IHsgRXNwcmVzc29Ecml2ZXIsIHN0YXJ0U2VydmVyIH07XG5leHBvcnQgZGVmYXVsdCBFc3ByZXNzb0RyaXZlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRUE7O0FBQ0E7O0FBQ0E7Ozs7OztBQUdBLE1BQU07RUFBRUE7QUFBRixJQUFxQkMsTUFBM0I7O0FBQ0EsTUFBTTtFQUFFQztBQUFGLElBQWtCQyxNQUF4Qjs7QUFFQSxNQUFNQyxZQUFZLEdBQUcsV0FBckI7QUFDQSxNQUFNQyxZQUFZLEdBQUcsSUFBckI7O0FBRUEsZUFBZUMsSUFBZixHQUF1QjtFQUNyQixNQUFNQyxXQUFXLEdBQUlDLE9BQUQsSUFBYTtJQUMvQixNQUFNQyxRQUFRLEdBQUdDLE9BQU8sQ0FBQ0MsSUFBUixDQUFhQyxPQUFiLENBQXFCSixPQUFyQixDQUFqQjtJQUNBLE9BQU9DLFFBQVEsR0FBRyxDQUFYLEdBQWVDLE9BQU8sQ0FBQ0MsSUFBUixDQUFhRixRQUFRLEdBQUcsQ0FBeEIsQ0FBZixHQUE0QyxJQUFuRDtFQUNELENBSEQ7O0VBSUEsTUFBTUksSUFBSSxHQUFHQyxRQUFRLENBQUNQLFdBQVcsQ0FBQyxRQUFELENBQVosRUFBd0IsRUFBeEIsQ0FBUixJQUF1Q0YsWUFBcEQ7RUFDQSxNQUFNVSxJQUFJLEdBQUdSLFdBQVcsQ0FBQyxRQUFELENBQVgsSUFBeUJILFlBQXRDO0VBQ0EsT0FBTyxNQUFNRixXQUFXLENBQUNXLElBQUQsRUFBT0UsSUFBUCxDQUF4QjtBQUNEOztBQUVELElBQUlDLE9BQU8sQ0FBQ1YsSUFBUixLQUFpQlcsTUFBckIsRUFBNkI7RUFDM0IsSUFBQUMsa0JBQUEsRUFBU1osSUFBVDtBQUNEOztlQUdjTixjIn0=
@@ -66,4 +66,4 @@ var _default = extensions;
66
66
  exports.default = _default;require('source-map-support').install();
67
67
 
68
68
 
69
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2V4ZWN1dGUuanMiLCJuYW1lcyI6WyJleHRlbnNpb25zIiwiZXhlY3V0ZU1vYmlsZSIsIm1vYmlsZUNvbW1hbmQiLCJvcHRzIiwibW9iaWxlQ29tbWFuZHNNYXBwaW5nIiwic2hlbGwiLCJleGVjRW11Q29uc29sZUNvbW1hbmQiLCJwZXJmb3JtRWRpdG9yQWN0aW9uIiwiY2hhbmdlUGVybWlzc2lvbnMiLCJnZXRQZXJtaXNzaW9ucyIsInN0YXJ0U2NyZWVuU3RyZWFtaW5nIiwic3RvcFNjcmVlblN0cmVhbWluZyIsInN3aXBlIiwic2Nyb2xsVG9QYWdlIiwibmF2aWdhdGVUbyIsImNsaWNrQWN0aW9uIiwiZGV2aWNlSW5mbyIsImlzVG9hc3RWaXNpYmxlIiwib3BlbkRyYXdlciIsImNsb3NlRHJhd2VyIiwic2V0RGF0ZSIsInNldFRpbWUiLCJnZXREZXZpY2VUaW1lIiwiYmFja2Rvb3IiLCJmbGFzaEVsZW1lbnQiLCJ1aWF1dG9tYXRvciIsInVpYXV0b21hdG9yUGFnZVNvdXJjZSIsIndlYkF0b21zIiwiZ2V0Q29udGV4dHMiLCJkaXNtaXNzQXV0b2ZpbGwiLCJnZXROb3RpZmljYXRpb25zIiwibGlzdFNtcyIsInNlbnNvclNldCIsImRlbGV0ZUZpbGUiLCJzdGFydFNlcnZpY2UiLCJzdG9wU2VydmljZSIsInJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzIiwidW5yZWdpc3RlcklkbGluZ1Jlc291cmNlcyIsImxpc3RJZGxpbmdSZXNvdXJjZXMiLCJ1bmxvY2siLCJyZWZyZXNoR3BzQ2FjaGUiLCJfIiwiaGFzIiwiZXJyb3JzIiwiVW5rbm93bkNvbW1hbmRFcnJvciIsImtleXMiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvY29tbWFuZHMvZXhlY3V0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnQGFwcGl1bS9iYXNlLWRyaXZlcic7XG5cbmNvbnN0IGV4dGVuc2lvbnMgPSB7fTtcblxuZXh0ZW5zaW9ucy5leGVjdXRlTW9iaWxlID0gYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZU1vYmlsZSAobW9iaWxlQ29tbWFuZCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IG1vYmlsZUNvbW1hbmRzTWFwcGluZyA9IHtcbiAgICBzaGVsbDogJ21vYmlsZVNoZWxsJyxcblxuICAgIGV4ZWNFbXVDb25zb2xlQ29tbWFuZDogJ21vYmlsZUV4ZWNFbXVDb25zb2xlQ29tbWFuZCcsXG5cbiAgICBwZXJmb3JtRWRpdG9yQWN0aW9uOiAnbW9iaWxlUGVyZm9ybUVkaXRvckFjdGlvbicsXG5cbiAgICBjaGFuZ2VQZXJtaXNzaW9uczogJ21vYmlsZUNoYW5nZVBlcm1pc3Npb25zJyxcbiAgICBnZXRQZXJtaXNzaW9uczogJ21vYmlsZUdldFBlcm1pc3Npb25zJyxcblxuICAgIHN0YXJ0U2NyZWVuU3RyZWFtaW5nOiAnbW9iaWxlU3RhcnRTY3JlZW5TdHJlYW1pbmcnLFxuICAgIHN0b3BTY3JlZW5TdHJlYW1pbmc6ICdtb2JpbGVTdG9wU2NyZWVuU3RyZWFtaW5nJyxcblxuICAgIHN3aXBlOiAnbW9iaWxlU3dpcGUnLFxuICAgIHNjcm9sbFRvUGFnZTogJ21vYmlsZVNjcm9sbFRvUGFnZScsXG4gICAgbmF2aWdhdGVUbzogJ21vYmlsZU5hdmlnYXRlVG8nLFxuICAgIGNsaWNrQWN0aW9uOiAnbW9iaWxlQ2xpY2tBY3Rpb24nLFxuXG4gICAgZGV2aWNlSW5mbzogJ21vYmlsZUdldERldmljZUluZm8nLFxuXG4gICAgaXNUb2FzdFZpc2libGU6ICdtb2JpbGVJc1RvYXN0VmlzaWJsZScsXG5cbiAgICBvcGVuRHJhd2VyOiAnbW9iaWxlT3BlbkRyYXdlcicsXG4gICAgY2xvc2VEcmF3ZXI6ICdtb2JpbGVDbG9zZURyYXdlcicsXG5cbiAgICBzZXREYXRlOiAnbW9iaWxlU2V0RGF0ZScsXG4gICAgc2V0VGltZTogJ21vYmlsZVNldFRpbWUnLFxuXG4gICAgZ2V0RGV2aWNlVGltZTogJ21vYmlsZUdldERldmljZVRpbWUnLFxuXG4gICAgYmFja2Rvb3I6ICdtb2JpbGVCYWNrZG9vcicsXG5cbiAgICBmbGFzaEVsZW1lbnQ6ICdtb2JpbGVGbGFzaEVsZW1lbnQnLFxuXG4gICAgdWlhdXRvbWF0b3I6ICdtb2JpbGVVaWF1dG9tYXRvcicsXG4gICAgdWlhdXRvbWF0b3JQYWdlU291cmNlOiAnbW9iaWxlVWlhdXRvbWF0b3JQYWdlU291cmNlJyxcblxuICAgIHdlYkF0b21zOiAnbW9iaWxlV2ViQXRvbXMnLFxuICAgIGdldENvbnRleHRzOiAnbW9iaWxlR2V0Q29udGV4dHMnLFxuXG4gICAgZGlzbWlzc0F1dG9maWxsOiAnbW9iaWxlRGlzbWlzc0F1dG9maWxsJyxcblxuICAgIGdldE5vdGlmaWNhdGlvbnM6ICdtb2JpbGVHZXROb3RpZmljYXRpb25zJyxcblxuICAgIGxpc3RTbXM6ICdtb2JpbGVMaXN0U21zJyxcblxuICAgIHNlbnNvclNldDogJ3NlbnNvclNldCcsXG5cbiAgICBkZWxldGVGaWxlOiAnbW9iaWxlRGVsZXRlRmlsZScsXG5cbiAgICBzdGFydFNlcnZpY2U6ICdtb2JpbGVTdGFydFNlcnZpY2UnLFxuICAgIHN0b3BTZXJ2aWNlOiAnbW9iaWxlU3RvcFNlcnZpY2UnLFxuXG4gICAgcmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXM6ICdtb2JpbGVSZWdpc3RlcklkbGluZ1Jlc291cmNlcycsXG4gICAgdW5yZWdpc3RlcklkbGluZ1Jlc291cmNlczogJ21vYmlsZVVucmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMnLFxuICAgIGxpc3RJZGxpbmdSZXNvdXJjZXM6ICdtb2JpbGVMaXN0SWRsaW5nUmVzb3VyY2VzJyxcblxuICAgIHVubG9jazogJ21vYmlsZVVubG9jaycsXG5cbiAgICByZWZyZXNoR3BzQ2FjaGU6ICdtb2JpbGVSZWZyZXNoR3BzQ2FjaGUnLFxuICB9O1xuXG4gIGlmICghXy5oYXMobW9iaWxlQ29tbWFuZHNNYXBwaW5nLCBtb2JpbGVDb21tYW5kKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuVW5rbm93bkNvbW1hbmRFcnJvcihgVW5rbm93biBtb2JpbGUgY29tbWFuZCBcIiR7bW9iaWxlQ29tbWFuZH1cIi4gYCArXG4gICAgICBgT25seSAke18ua2V5cyhtb2JpbGVDb21tYW5kc01hcHBpbmcpfSBjb21tYW5kcyBhcmUgc3VwcG9ydGVkLmApO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzW21vYmlsZUNvbW1hbmRzTWFwcGluZ1ttb2JpbGVDb21tYW5kXV0ob3B0cyk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUVBLE1BQU1BLFVBQVUsR0FBRyxFQUFuQjs7QUFFQUEsVUFBVSxDQUFDQyxhQUFYLEdBQTJCLGVBQWVBLGFBQWYsQ0FBOEJDLGFBQTlCLEVBQTZDQyxJQUFJLEdBQUcsRUFBcEQsRUFBd0Q7RUFDakYsTUFBTUMscUJBQXFCLEdBQUc7SUFDNUJDLEtBQUssRUFBRSxhQURxQjtJQUc1QkMscUJBQXFCLEVBQUUsNkJBSEs7SUFLNUJDLG1CQUFtQixFQUFFLDJCQUxPO0lBTzVCQyxpQkFBaUIsRUFBRSx5QkFQUztJQVE1QkMsY0FBYyxFQUFFLHNCQVJZO0lBVTVCQyxvQkFBb0IsRUFBRSw0QkFWTTtJQVc1QkMsbUJBQW1CLEVBQUUsMkJBWE87SUFhNUJDLEtBQUssRUFBRSxhQWJxQjtJQWM1QkMsWUFBWSxFQUFFLG9CQWRjO0lBZTVCQyxVQUFVLEVBQUUsa0JBZmdCO0lBZ0I1QkMsV0FBVyxFQUFFLG1CQWhCZTtJQWtCNUJDLFVBQVUsRUFBRSxxQkFsQmdCO0lBb0I1QkMsY0FBYyxFQUFFLHNCQXBCWTtJQXNCNUJDLFVBQVUsRUFBRSxrQkF0QmdCO0lBdUI1QkMsV0FBVyxFQUFFLG1CQXZCZTtJQXlCNUJDLE9BQU8sRUFBRSxlQXpCbUI7SUEwQjVCQyxPQUFPLEVBQUUsZUExQm1CO0lBNEI1QkMsYUFBYSxFQUFFLHFCQTVCYTtJQThCNUJDLFFBQVEsRUFBRSxnQkE5QmtCO0lBZ0M1QkMsWUFBWSxFQUFFLG9CQWhDYztJQWtDNUJDLFdBQVcsRUFBRSxtQkFsQ2U7SUFtQzVCQyxxQkFBcUIsRUFBRSw2QkFuQ0s7SUFxQzVCQyxRQUFRLEVBQUUsZ0JBckNrQjtJQXNDNUJDLFdBQVcsRUFBRSxtQkF0Q2U7SUF3QzVCQyxlQUFlLEVBQUUsdUJBeENXO0lBMEM1QkMsZ0JBQWdCLEVBQUUsd0JBMUNVO0lBNEM1QkMsT0FBTyxFQUFFLGVBNUNtQjtJQThDNUJDLFNBQVMsRUFBRSxXQTlDaUI7SUFnRDVCQyxVQUFVLEVBQUUsa0JBaERnQjtJQWtENUJDLFlBQVksRUFBRSxvQkFsRGM7SUFtRDVCQyxXQUFXLEVBQUUsbUJBbkRlO0lBcUQ1QkMsdUJBQXVCLEVBQUUsK0JBckRHO0lBc0Q1QkMseUJBQXlCLEVBQUUsaUNBdERDO0lBdUQ1QkMsbUJBQW1CLEVBQUUsMkJBdkRPO0lBeUQ1QkMsTUFBTSxFQUFFLGNBekRvQjtJQTJENUJDLGVBQWUsRUFBRTtFQTNEVyxDQUE5Qjs7RUE4REEsSUFBSSxDQUFDQyxnQkFBRUMsR0FBRixDQUFNdEMscUJBQU4sRUFBNkJGLGFBQTdCLENBQUwsRUFBa0Q7SUFDaEQsTUFBTSxJQUFJeUMsbUJBQU9DLG1CQUFYLENBQWdDLDJCQUEwQjFDLGFBQWMsS0FBekMsR0FDbEMsUUFBT3VDLGdCQUFFSSxJQUFGLENBQU96QyxxQkFBUCxDQUE4QiwwQkFEbEMsQ0FBTjtFQUVEOztFQUNELE9BQU8sTUFBTSxLQUFLQSxxQkFBcUIsQ0FBQ0YsYUFBRCxDQUExQixFQUEyQ0MsSUFBM0MsQ0FBYjtBQUNELENBcEVEOztlQXNFZUgsVSJ9
69
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2V4ZWN1dGUuanMiLCJuYW1lcyI6WyJleHRlbnNpb25zIiwiZXhlY3V0ZU1vYmlsZSIsIm1vYmlsZUNvbW1hbmQiLCJvcHRzIiwibW9iaWxlQ29tbWFuZHNNYXBwaW5nIiwic2hlbGwiLCJleGVjRW11Q29uc29sZUNvbW1hbmQiLCJwZXJmb3JtRWRpdG9yQWN0aW9uIiwiY2hhbmdlUGVybWlzc2lvbnMiLCJnZXRQZXJtaXNzaW9ucyIsInN0YXJ0U2NyZWVuU3RyZWFtaW5nIiwic3RvcFNjcmVlblN0cmVhbWluZyIsInN3aXBlIiwic2Nyb2xsVG9QYWdlIiwibmF2aWdhdGVUbyIsImNsaWNrQWN0aW9uIiwiZGV2aWNlSW5mbyIsImlzVG9hc3RWaXNpYmxlIiwib3BlbkRyYXdlciIsImNsb3NlRHJhd2VyIiwic2V0RGF0ZSIsInNldFRpbWUiLCJnZXREZXZpY2VUaW1lIiwiYmFja2Rvb3IiLCJmbGFzaEVsZW1lbnQiLCJ1aWF1dG9tYXRvciIsInVpYXV0b21hdG9yUGFnZVNvdXJjZSIsIndlYkF0b21zIiwiZ2V0Q29udGV4dHMiLCJkaXNtaXNzQXV0b2ZpbGwiLCJnZXROb3RpZmljYXRpb25zIiwibGlzdFNtcyIsInNlbnNvclNldCIsImRlbGV0ZUZpbGUiLCJzdGFydFNlcnZpY2UiLCJzdG9wU2VydmljZSIsInJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzIiwidW5yZWdpc3RlcklkbGluZ1Jlc291cmNlcyIsImxpc3RJZGxpbmdSZXNvdXJjZXMiLCJ1bmxvY2siLCJyZWZyZXNoR3BzQ2FjaGUiLCJfIiwiaGFzIiwiZXJyb3JzIiwiVW5rbm93bkNvbW1hbmRFcnJvciIsImtleXMiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvY29tbWFuZHMvZXhlY3V0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnQGFwcGl1bS9iYXNlLWRyaXZlcic7XG5cbmNvbnN0IGV4dGVuc2lvbnMgPSB7fTtcblxuZXh0ZW5zaW9ucy5leGVjdXRlTW9iaWxlID0gYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZU1vYmlsZSAobW9iaWxlQ29tbWFuZCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IG1vYmlsZUNvbW1hbmRzTWFwcGluZyA9IHtcbiAgICBzaGVsbDogJ21vYmlsZVNoZWxsJyxcblxuICAgIGV4ZWNFbXVDb25zb2xlQ29tbWFuZDogJ21vYmlsZUV4ZWNFbXVDb25zb2xlQ29tbWFuZCcsXG5cbiAgICBwZXJmb3JtRWRpdG9yQWN0aW9uOiAnbW9iaWxlUGVyZm9ybUVkaXRvckFjdGlvbicsXG5cbiAgICBjaGFuZ2VQZXJtaXNzaW9uczogJ21vYmlsZUNoYW5nZVBlcm1pc3Npb25zJyxcbiAgICBnZXRQZXJtaXNzaW9uczogJ21vYmlsZUdldFBlcm1pc3Npb25zJyxcblxuICAgIHN0YXJ0U2NyZWVuU3RyZWFtaW5nOiAnbW9iaWxlU3RhcnRTY3JlZW5TdHJlYW1pbmcnLFxuICAgIHN0b3BTY3JlZW5TdHJlYW1pbmc6ICdtb2JpbGVTdG9wU2NyZWVuU3RyZWFtaW5nJyxcblxuICAgIHN3aXBlOiAnbW9iaWxlU3dpcGUnLFxuICAgIHNjcm9sbFRvUGFnZTogJ21vYmlsZVNjcm9sbFRvUGFnZScsXG4gICAgbmF2aWdhdGVUbzogJ21vYmlsZU5hdmlnYXRlVG8nLFxuICAgIGNsaWNrQWN0aW9uOiAnbW9iaWxlQ2xpY2tBY3Rpb24nLFxuXG4gICAgZGV2aWNlSW5mbzogJ21vYmlsZUdldERldmljZUluZm8nLFxuXG4gICAgaXNUb2FzdFZpc2libGU6ICdtb2JpbGVJc1RvYXN0VmlzaWJsZScsXG5cbiAgICBvcGVuRHJhd2VyOiAnbW9iaWxlT3BlbkRyYXdlcicsXG4gICAgY2xvc2VEcmF3ZXI6ICdtb2JpbGVDbG9zZURyYXdlcicsXG5cbiAgICBzZXREYXRlOiAnbW9iaWxlU2V0RGF0ZScsXG4gICAgc2V0VGltZTogJ21vYmlsZVNldFRpbWUnLFxuXG4gICAgZ2V0RGV2aWNlVGltZTogJ21vYmlsZUdldERldmljZVRpbWUnLFxuXG4gICAgYmFja2Rvb3I6ICdtb2JpbGVCYWNrZG9vcicsXG5cbiAgICBmbGFzaEVsZW1lbnQ6ICdtb2JpbGVGbGFzaEVsZW1lbnQnLFxuXG4gICAgdWlhdXRvbWF0b3I6ICdtb2JpbGVVaWF1dG9tYXRvcicsXG4gICAgdWlhdXRvbWF0b3JQYWdlU291cmNlOiAnbW9iaWxlVWlhdXRvbWF0b3JQYWdlU291cmNlJyxcblxuICAgIHdlYkF0b21zOiAnbW9iaWxlV2ViQXRvbXMnLFxuICAgIGdldENvbnRleHRzOiAnbW9iaWxlR2V0Q29udGV4dHMnLFxuXG4gICAgZGlzbWlzc0F1dG9maWxsOiAnbW9iaWxlRGlzbWlzc0F1dG9maWxsJyxcblxuICAgIGdldE5vdGlmaWNhdGlvbnM6ICdtb2JpbGVHZXROb3RpZmljYXRpb25zJyxcblxuICAgIGxpc3RTbXM6ICdtb2JpbGVMaXN0U21zJyxcblxuICAgIHNlbnNvclNldDogJ3NlbnNvclNldCcsXG5cbiAgICBkZWxldGVGaWxlOiAnbW9iaWxlRGVsZXRlRmlsZScsXG5cbiAgICBzdGFydFNlcnZpY2U6ICdtb2JpbGVTdGFydFNlcnZpY2UnLFxuICAgIHN0b3BTZXJ2aWNlOiAnbW9iaWxlU3RvcFNlcnZpY2UnLFxuXG4gICAgcmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXM6ICdtb2JpbGVSZWdpc3RlcklkbGluZ1Jlc291cmNlcycsXG4gICAgdW5yZWdpc3RlcklkbGluZ1Jlc291cmNlczogJ21vYmlsZVVucmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMnLFxuICAgIGxpc3RJZGxpbmdSZXNvdXJjZXM6ICdtb2JpbGVMaXN0SWRsaW5nUmVzb3VyY2VzJyxcblxuICAgIHVubG9jazogJ21vYmlsZVVubG9jaycsXG5cbiAgICByZWZyZXNoR3BzQ2FjaGU6ICdtb2JpbGVSZWZyZXNoR3BzQ2FjaGUnLFxuICB9O1xuXG4gIGlmICghXy5oYXMobW9iaWxlQ29tbWFuZHNNYXBwaW5nLCBtb2JpbGVDb21tYW5kKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuVW5rbm93bkNvbW1hbmRFcnJvcihgVW5rbm93biBtb2JpbGUgY29tbWFuZCBcIiR7bW9iaWxlQ29tbWFuZH1cIi4gYCArXG4gICAgICBgT25seSAke18ua2V5cyhtb2JpbGVDb21tYW5kc01hcHBpbmcpfSBjb21tYW5kcyBhcmUgc3VwcG9ydGVkLmApO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzW21vYmlsZUNvbW1hbmRzTWFwcGluZ1ttb2JpbGVDb21tYW5kXV0ob3B0cyk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUVBLE1BQU1BLFVBQVUsR0FBRyxFQUFuQjs7QUFFQUEsVUFBVSxDQUFDQyxhQUFYLEdBQTJCLGVBQWVBLGFBQWYsQ0FBOEJDLGFBQTlCLEVBQTZDQyxJQUFJLEdBQUcsRUFBcEQsRUFBd0Q7RUFDakYsTUFBTUMscUJBQXFCLEdBQUc7SUFDNUJDLEtBQUssRUFBRSxhQURxQjtJQUc1QkMscUJBQXFCLEVBQUUsNkJBSEs7SUFLNUJDLG1CQUFtQixFQUFFLDJCQUxPO0lBTzVCQyxpQkFBaUIsRUFBRSx5QkFQUztJQVE1QkMsY0FBYyxFQUFFLHNCQVJZO0lBVTVCQyxvQkFBb0IsRUFBRSw0QkFWTTtJQVc1QkMsbUJBQW1CLEVBQUUsMkJBWE87SUFhNUJDLEtBQUssRUFBRSxhQWJxQjtJQWM1QkMsWUFBWSxFQUFFLG9CQWRjO0lBZTVCQyxVQUFVLEVBQUUsa0JBZmdCO0lBZ0I1QkMsV0FBVyxFQUFFLG1CQWhCZTtJQWtCNUJDLFVBQVUsRUFBRSxxQkFsQmdCO0lBb0I1QkMsY0FBYyxFQUFFLHNCQXBCWTtJQXNCNUJDLFVBQVUsRUFBRSxrQkF0QmdCO0lBdUI1QkMsV0FBVyxFQUFFLG1CQXZCZTtJQXlCNUJDLE9BQU8sRUFBRSxlQXpCbUI7SUEwQjVCQyxPQUFPLEVBQUUsZUExQm1CO0lBNEI1QkMsYUFBYSxFQUFFLHFCQTVCYTtJQThCNUJDLFFBQVEsRUFBRSxnQkE5QmtCO0lBZ0M1QkMsWUFBWSxFQUFFLG9CQWhDYztJQWtDNUJDLFdBQVcsRUFBRSxtQkFsQ2U7SUFtQzVCQyxxQkFBcUIsRUFBRSw2QkFuQ0s7SUFxQzVCQyxRQUFRLEVBQUUsZ0JBckNrQjtJQXNDNUJDLFdBQVcsRUFBRSxtQkF0Q2U7SUF3QzVCQyxlQUFlLEVBQUUsdUJBeENXO0lBMEM1QkMsZ0JBQWdCLEVBQUUsd0JBMUNVO0lBNEM1QkMsT0FBTyxFQUFFLGVBNUNtQjtJQThDNUJDLFNBQVMsRUFBRSxXQTlDaUI7SUFnRDVCQyxVQUFVLEVBQUUsa0JBaERnQjtJQWtENUJDLFlBQVksRUFBRSxvQkFsRGM7SUFtRDVCQyxXQUFXLEVBQUUsbUJBbkRlO0lBcUQ1QkMsdUJBQXVCLEVBQUUsK0JBckRHO0lBc0Q1QkMseUJBQXlCLEVBQUUsaUNBdERDO0lBdUQ1QkMsbUJBQW1CLEVBQUUsMkJBdkRPO0lBeUQ1QkMsTUFBTSxFQUFFLGNBekRvQjtJQTJENUJDLGVBQWUsRUFBRTtFQTNEVyxDQUE5Qjs7RUE4REEsSUFBSSxDQUFDQyxlQUFBLENBQUVDLEdBQUYsQ0FBTXRDLHFCQUFOLEVBQTZCRixhQUE3QixDQUFMLEVBQWtEO0lBQ2hELE1BQU0sSUFBSXlDLGtCQUFBLENBQU9DLG1CQUFYLENBQWdDLDJCQUEwQjFDLGFBQWMsS0FBekMsR0FDbEMsUUFBT3VDLGVBQUEsQ0FBRUksSUFBRixDQUFPekMscUJBQVAsQ0FBOEIsMEJBRGxDLENBQU47RUFFRDs7RUFDRCxPQUFPLE1BQU0sS0FBS0EscUJBQXFCLENBQUNGLGFBQUQsQ0FBMUIsRUFBMkNDLElBQTNDLENBQWI7QUFDRCxDQXBFRDs7ZUFzRWVILFUifQ==
@@ -333,4 +333,4 @@ var _default = extensions;
333
333
  exports.default = _default;require('source-map-support').install();
334
334
 
335
335
 
336
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2dlbmVyYWwuanMiLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwiYXNzZXJ0UmVxdWlyZWRPcHRpb25zIiwib3B0aW9ucyIsInJlcXVpcmVkT3B0aW9uTmFtZXMiLCJfIiwiaXNBcnJheSIsInByZXNlbnRPcHRpb25OYW1lcyIsImtleXMiLCJtaXNzaW5nT3B0aW9uTmFtZXMiLCJkaWZmZXJlbmNlIiwiaXNFbXB0eSIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImxhdW5jaEFwcCIsImVycm9ycyIsIlVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3IiLCJjbG9zZUFwcCIsInJlc2V0IiwiZ2V0Q2xpcGJvYXJkIiwiYWRiIiwiZ2V0QXBpTGV2ZWwiLCJlc3ByZXNzbyIsImp3cHJveHkiLCJjb21tYW5kIiwibW9iaWxlUGVyZm9ybUVkaXRvckFjdGlvbiIsIm9wdHMiLCJhY3Rpb24iLCJtb2JpbGVTd2lwZSIsImRpcmVjdGlvbiIsImVsZW1lbnQiLCJzd2lwZXIiLCJzdGFydENvb3JkaW5hdGVzIiwiZW5kQ29vcmRpbmF0ZXMiLCJwcmVjaXNpb25EZXNjcmliZXIiLCJ1dGlsIiwidW53cmFwRWxlbWVudCIsIm1vYmlsZUdldERldmljZUluZm8iLCJtb2JpbGVJc1RvYXN0VmlzaWJsZSIsInRleHQiLCJpc1JlZ2V4cCIsImhhc1ZhbHVlIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJtb2JpbGVPcGVuRHJhd2VyIiwiZ3Jhdml0eSIsIm1vYmlsZUNsb3NlRHJhd2VyIiwibW9iaWxlU2V0RGF0ZSIsInllYXIiLCJtb250aE9mWWVhciIsImRheU9mTW9udGgiLCJtb2JpbGVTZXRUaW1lIiwiaG91cnMiLCJtaW51dGVzIiwibW9iaWxlTmF2aWdhdGVUbyIsIm1lbnVJdGVtSWQiLCJtZW51SXRlbUlkQXNOdW1iZXIiLCJwYXJzZUludCIsImlzTmFOIiwibW9iaWxlV2ViQXRvbXMiLCJnZXREaXNwbGF5RGVuc2l0eSIsIm1vYmlsZVNjcm9sbFRvUGFnZSIsInNjcm9sbFRvVHlwZXMiLCJyZXMiLCJwcmVzZW5jZSIsInNjcm9sbFRvIiwiaW5jbHVzaW9uIiwid2l0aGluIiwibWVzc2FnZSIsImpvaW4iLCJzY3JvbGxUb1BhZ2UiLCJudW1lcmljYWxpdHkiLCJvbmx5SW50ZWdlciIsImdyZWF0ZXJUaGFuT3JFcXVhbFRvIiwic21vb3RoU2Nyb2xsIiwibG9nIiwid2FybiIsIm1vYmlsZUJhY2tkb29yIiwidGFyZ2V0IiwibWV0aG9kcyIsImVsZW1lbnRJZCIsInRhcmdldEVsZW1lbnQiLCJtb2JpbGVVaWF1dG9tYXRvciIsInN0cmF0ZWd5IiwibG9jYXRvciIsImluZGV4IiwibW9iaWxlVWlhdXRvbWF0b3JQYWdlU291cmNlIiwibW9iaWxlRmxhc2hFbGVtZW50IiwiZHVyYXRpb25NaWxsaXMiLCJyZXBlYXRDb3VudCIsIm1vYmlsZUNsaWNrQWN0aW9uIiwidGFwcGVyIiwiY29vcmRpbmF0ZXNQcm92aWRlciIsImlucHV0RGV2aWNlIiwiYnV0dG9uU3RhdGUiLCJ1cGRhdGVTZXR0aW5ncyIsInNldHRpbmdzIiwiZ2V0U2V0dGluZ3MiLCJzdXNwZW5kQ2hyb21lZHJpdmVyUHJveHkiLCJjaHJvbWVkcml2ZXIiLCJwcm94eVJlcVJlcyIsImJpbmQiLCJwcm94eUNvbW1hbmQiLCJqd3BQcm94eUFjdGl2ZSIsInN0YXJ0QWN0aXZpdHkiLCJhcHBQYWNrYWdlIiwiYXBwQWN0aXZpdHkiLCJhcHBXYWl0UGFja2FnZSIsImFwcFdhaXRBY3Rpdml0eSIsImNhcHMiLCJkZWJ1ZyIsIndhaXRGb3JBY3Rpdml0eSIsIm1vYmlsZURpc21pc3NBdXRvZmlsbCIsIk9iamVjdCIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9nZW5lcmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyB1dGlsIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB2YWxpZGF0ZSBmcm9tICd2YWxpZGF0ZS5qcyc7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICdAYXBwaXVtL2Jhc2UtZHJpdmVyJztcbmltcG9ydCB7IHF1YWxpZnlBY3Rpdml0eU5hbWUgfSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IGNvbW1hbmRzID0ge30sIGhlbHBlcnMgPSB7fSwgZXh0ZW5zaW9ucyA9IHt9O1xuXG5mdW5jdGlvbiBhc3NlcnRSZXF1aXJlZE9wdGlvbnMgKG9wdGlvbnMsIHJlcXVpcmVkT3B0aW9uTmFtZXMpIHtcbiAgaWYgKCFfLmlzQXJyYXkocmVxdWlyZWRPcHRpb25OYW1lcykpIHtcbiAgICByZXF1aXJlZE9wdGlvbk5hbWVzID0gW3JlcXVpcmVkT3B0aW9uTmFtZXNdO1xuICB9XG4gIGNvbnN0IHByZXNlbnRPcHRpb25OYW1lcyA9IF8ua2V5cyhvcHRpb25zKTtcbiAgY29uc3QgbWlzc2luZ09wdGlvbk5hbWVzID0gXy5kaWZmZXJlbmNlKHJlcXVpcmVkT3B0aW9uTmFtZXMsIHByZXNlbnRPcHRpb25OYW1lcyk7XG4gIGlmIChfLmlzRW1wdHkobWlzc2luZ09wdGlvbk5hbWVzKSkge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgVGhlIGZvbGxvd2luZyBvcHRpb25zIGFyZSByZXF1aXJlZDogJHtKU09OLnN0cmluZ2lmeShtaXNzaW5nT3B0aW9uTmFtZXMpfS4gYCArXG4gICAgYFlvdSBoYXZlIG9ubHkgcHJvdmlkZWQ6ICR7SlNPTi5zdHJpbmdpZnkocHJlc2VudE9wdGlvbk5hbWVzKX1gKTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXdhaXRcbmNvbW1hbmRzLmxhdW5jaEFwcCA9IGFzeW5jIGZ1bmN0aW9uIGxhdW5jaEFwcCAoKSB7XG4gIHRocm93IG5ldyBlcnJvcnMuVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvcignUGxlYXNlIGNyZWF0ZSBhIG5ldyBzZXNzaW9uIGluIG9yZGVyIHRvIGxhdW5jaCB0aGUgYXBwbGljYXRpb24gdW5kZXIgdGVzdCcpO1xufTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXdhaXRcbmNvbW1hbmRzLmNsb3NlQXBwID0gYXN5bmMgZnVuY3Rpb24gY2xvc2VBcHAgKCkge1xuICB0aHJvdyBuZXcgZXJyb3JzLlVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3IoJ1BsZWFzZSBxdWl0IHRoZSBzZXNzaW9uIGluIG9yZGVyIHRvIGNsb3NlIHRoZSBhcHBsaWNhdGlvbiB1bmRlciB0ZXN0Jyk7XG59O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVxdWlyZS1hd2FpdFxuY29tbWFuZHMucmVzZXQgPSBhc3luYyBmdW5jdGlvbiByZXNldCAoKSB7XG4gIHRocm93IG5ldyBlcnJvcnMuVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvcihcbiAgICAnUGxlYXNlIHF1aXQgdGhlIHNlc3Npb24gYW5kIGNyZWF0ZSBhIG5ldyBvbmUgJyArXG4gICAgJ2luIG9yZGVyIHRvIGNsb3NlIGFuZCBsYXVuY2ggdGhlIGFwcGxpY2F0aW9uIHVuZGVyIHRlc3QnKTtcbn07XG5cbmNvbW1hbmRzLmdldENsaXBib2FyZCA9IGFzeW5jIGZ1bmN0aW9uIGdldENsaXBib2FyZCAoKSB7XG4gIHJldHVybiAoYXdhaXQgdGhpcy5hZGIuZ2V0QXBpTGV2ZWwoKSA8IDI5KVxuICAgID8gKGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKCcvYXBwaXVtL2RldmljZS9nZXRfY2xpcGJvYXJkJywgJ1BPU1QnLCB7fSkpXG4gICAgOiAoYXdhaXQgdGhpcy5hZGIuZ2V0Q2xpcGJvYXJkKCkpO1xufTtcblxuY29tbWFuZHMubW9iaWxlUGVyZm9ybUVkaXRvckFjdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVBlcmZvcm1FZGl0b3JBY3Rpb24gKG9wdHMgPSB7fSkge1xuICBjb25zdCB7YWN0aW9ufSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2FjdGlvbiddKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKCcvYXBwaXVtL2RldmljZS9wZXJmb3JtX2VkaXRvcl9hY3Rpb24nLCAnUE9TVCcsIHthY3Rpb259KTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZVN3aXBlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlU3dpcGUgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7ZGlyZWN0aW9uLCBlbGVtZW50LCBzd2lwZXIsIHN0YXJ0Q29vcmRpbmF0ZXMsIGVuZENvb3JkaW5hdGVzLCBwcmVjaXNpb25EZXNjcmliZXJ9ID0gYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnZWxlbWVudCddKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlLyR7dXRpbC51bndyYXBFbGVtZW50KGVsZW1lbnQpfS9zd2lwZWAsICdQT1NUJywge1xuICAgIGRpcmVjdGlvbiwgZWxlbWVudCwgc3dpcGVyLCBzdGFydENvb3JkaW5hdGVzLCBlbmRDb29yZGluYXRlcywgcHJlY2lzaW9uRGVzY3JpYmVyXG4gIH0pO1xufTtcblxuY29tbWFuZHMubW9iaWxlR2V0RGV2aWNlSW5mbyA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUdldERldmljZUluZm8gKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZGV2aWNlL2luZm8nLCAnR0VUJyk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVJc1RvYXN0VmlzaWJsZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUlzVG9hc3RWaXNpYmxlIChvcHRzID0ge30pIHtcbiAgY29uc3Qge3RleHQsIGlzUmVnZXhwfSA9IG9wdHM7XG4gIGlmICghdXRpbC5oYXNWYWx1ZSh0ZXh0KSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoYCd0ZXh0JyBhcmd1bWVudCBpcyBtYW5kYXRvcnlgKTtcbiAgfVxuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvaXNfdG9hc3RfZGlzcGxheWVkJywgJ1BPU1QnLCB7XG4gICAgdGV4dCxcbiAgICBpc1JlZ2V4cCxcbiAgfSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVPcGVuRHJhd2VyID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlT3BlbkRyYXdlciAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtlbGVtZW50LCBncmF2aXR5fSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2VsZW1lbnQnXSk7XG5cbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlLyR7dXRpbC51bndyYXBFbGVtZW50KGVsZW1lbnQpfS9vcGVuX2RyYXdlcmAsICdQT1NUJywge1xuICAgIGdyYXZpdHlcbiAgfSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVDbG9zZURyYXdlciA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUNsb3NlRHJhd2VyIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2VsZW1lbnQsIGdyYXZpdHl9ID0gYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnZWxlbWVudCddKTtcblxuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvJHt1dGlsLnVud3JhcEVsZW1lbnQoZWxlbWVudCl9L2Nsb3NlX2RyYXdlcmAsICdQT1NUJywge1xuICAgIGdyYXZpdHlcbiAgfSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVTZXREYXRlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlU2V0RGF0ZSAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtlbGVtZW50LCB5ZWFyLCBtb250aE9mWWVhciwgZGF5T2ZNb250aH0gPSBhc3NlcnRSZXF1aXJlZE9wdGlvbnMob3B0cywgWydlbGVtZW50JywgJ3llYXInLCAnbW9udGhPZlllYXInLCAnZGF5T2ZNb250aCddKTtcblxuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvJHt1dGlsLnVud3JhcEVsZW1lbnQoZWxlbWVudCl9L3NldF9kYXRlYCwgJ1BPU1QnLCB7XG4gICAgeWVhcixcbiAgICBtb250aE9mWWVhcixcbiAgICBkYXlPZk1vbnRoLFxuICB9KTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZVNldFRpbWUgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVTZXRUaW1lIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2VsZW1lbnQsIGhvdXJzLCBtaW51dGVzfSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2VsZW1lbnQnLCAnaG91cnMnLCAnbWludXRlcyddKTtcblxuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvJHt1dGlsLnVud3JhcEVsZW1lbnQoZWxlbWVudCl9L3NldF90aW1lYCwgJ1BPU1QnLCB7XG4gICAgaG91cnMsXG4gICAgbWludXRlcyxcbiAgfSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVOYXZpZ2F0ZVRvID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlTmF2aWdhdGVUbyAob3B0cyA9IHt9KSB7XG4gIGxldCB7ZWxlbWVudCwgbWVudUl0ZW1JZH0gPSBhc3NlcnRSZXF1aXJlZE9wdGlvbnMob3B0cywgWydtZW51SXRlbUlkJywgJ2VsZW1lbnQnXSk7XG5cbiAgbGV0IG1lbnVJdGVtSWRBc051bWJlciA9IHBhcnNlSW50KG1lbnVJdGVtSWQsIDEwKTtcbiAgaWYgKF8uaXNOYU4obWVudUl0ZW1JZEFzTnVtYmVyKSB8fCBtZW51SXRlbUlkQXNOdW1iZXIgPCAwKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihgJ21lbnVJdGVtSWQnIG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBGb3VuZCAke21lbnVJdGVtSWR9YCk7XG4gIH1cblxuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvJHt1dGlsLnVud3JhcEVsZW1lbnQoZWxlbWVudCl9L25hdmlnYXRlX3RvYCwgJ1BPU1QnLCB7XG4gICAgbWVudUl0ZW1JZFxuICB9KTtcbn07XG5cbi8qKlxuICogUnVucyBhIGNoYWluIG9mIEVzcHJlc3NvIHdlYiBhdG9tcyAoc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3RyYWluaW5nL3Rlc3RpbmcvZXNwcmVzc28vd2ViIGZvciByZWZlcmVuY2UpXG4gKlxuICogVGFrZXMgSlNPTiBvZiB0aGUgZm9ybVxuICpcbiAqIHtcbiAqICAgXCJ3ZWJ2aWV3RWxcIjogXCI8RUxFTUVOVF9JRD5cIiwgLy8gb3B0aW9uYWwgd2VidmlldyBlbGVtZW50IHRvIG9wZXJhdGUgb25cbiAqICAgXCJmb3JjZUphdmFzY3JpcHRFbmFibGVkXCI6IHRydWV8ZmFsc2UsIC8vIGlmIHdlYnZpZXcgZGlzYWJsZXMgamF2YXNjcmlwdCwgd2ViYXRvbXMgd29uJ3Qgd29yaywgdGhpcyBmb3JjZXMgaXRcbiAqICAgXCJtZXRob2RDaGFpblwiOiBbXG4gKiAgICAge1wibmFtZVwiOiBcIm1ldGhvZE5hbWVcIiwgXCJhdG9tXCI6IHtcIm5hbWVcIjogXCJhdG9tTmFtZVwiLCBcImFyZ3NcIjogW1wiYXJnMVwiLCBcImFyZzJcIiwgLi4uXX19LFxuICogICAgIC4uLlxuICogICBdXG4gKiB9XG4gKlxuICovXG5jb21tYW5kcy5tb2JpbGVXZWJBdG9tcyA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVdlYkF0b21zIChvcHRzID0ge30pIHtcbiAgb3B0cyA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ21ldGhvZENoYWluJ10pO1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvd2ViX2F0b21zYCwgJ1BPU1QnLCBvcHRzKTtcbn07XG5cbmNvbW1hbmRzLmdldERpc3BsYXlEZW5zaXR5ID0gYXN5bmMgZnVuY3Rpb24gZ2V0RGlzcGxheURlbnNpdHkgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZGV2aWNlL2Rpc3BsYXlfZGVuc2l0eScsICdHRVQnLCB7fSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVTY3JvbGxUb1BhZ2UgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVTY3JvbGxUb1BhZ2UgKG9wdHMgPSB7fSkge1xuXG4gIC8vIFZhbGlkYXRlIHRoZSBwYXJhbWV0ZXJzXG4gIGNvbnN0IHNjcm9sbFRvVHlwZXMgPSBbJ2ZpcnN0JywgJ2xhc3QnLCAnbGVmdCcsICdyaWdodCddO1xuICBjb25zdCByZXMgPSB2YWxpZGF0ZShvcHRzLCB7XG4gICAgZWxlbWVudDoge3ByZXNlbmNlOiB0cnVlfSxcbiAgICBzY3JvbGxUbzoge1xuICAgICAgaW5jbHVzaW9uOiB7XG4gICAgICAgIHdpdGhpbjogc2Nyb2xsVG9UeXBlcyxcbiAgICAgICAgbWVzc2FnZTogYFwic2Nyb2xsVG9cIiBtdXN0IGJlIG9uZSBvZiBcIiR7c2Nyb2xsVG9UeXBlcy5qb2luKCcsICcpfVwiIGZvdW5kICcle3ZhbHVlfSdgLFxuICAgICAgfVxuICAgIH0sXG4gICAgc2Nyb2xsVG9QYWdlOiB7XG4gICAgICBudW1lcmljYWxpdHk6IHtcbiAgICAgICAgb25seUludGVnZXI6IHRydWUsXG4gICAgICAgIGdyZWF0ZXJUaGFuT3JFcXVhbFRvOiAwLFxuICAgICAgICBtZXNzYWdlOiBgXCJzY3JvbGxUb1BhZ2VcIiBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIuIEZvdW5kICcle3ZhbHVlfSdgXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuICBpZiAodXRpbC5oYXNWYWx1ZShyZXMpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihgSW52YWxpZCBzY3JvbGxUbyBwYXJhbWV0ZXJzOiAke0pTT04uc3RyaW5naWZ5KHJlcyl9YCk7XG4gIH1cblxuICBjb25zdCB7ZWxlbWVudCwgc2Nyb2xsVG8sIHNjcm9sbFRvUGFnZSwgc21vb3RoU2Nyb2xsfSA9IG9wdHM7XG5cbiAgaWYgKHV0aWwuaGFzVmFsdWUoc2Nyb2xsVG8pICYmIHV0aWwuaGFzVmFsdWUoc2Nyb2xsVG9QYWdlKSkge1xuICAgIHRoaXMubG9nLndhcm4oYCdzY3JvbGxUbycgYW5kICdzY3JvbGxUb1BhZ2UnIHdoZXJlIGJvdGggcHJvdmlkZWQuIERlZmF1bHRpbmcgdG8gJ3Njcm9sbFRvJ2ApO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlLyR7dXRpbC51bndyYXBFbGVtZW50KGVsZW1lbnQpfS9zY3JvbGxfdG9fcGFnZWAsICdQT1NUJywge1xuICAgIHNjcm9sbFRvLFxuICAgIHNjcm9sbFRvUGFnZSxcbiAgICBzbW9vdGhTY3JvbGwsXG4gIH0pO1xufTtcblxuXG4vKipcbiAqICBBUEkgdG8gaW52b2tlIG1ldGhvZHMgZGVmaW5lZCBpbiBBbmRyb2lkIGFwcC5cbiAqXG4gKiAgRXhhbXBsZSBkYXRhXG4gKiAge1xuICogICB0YXJnZXQ6ICdhY3Rpdml0eScsXG4gKiAgIG1ldGhvZHM6XG4gKiAgICAgICAgIFtcbiAqICAgICAgICAgICB7XG4gKiAgICAgICAgICAgICAgIG5hbWU6IFwic29tZU1ldGhvZFwiLFxuICogICAgICAgICAgIH0sXG4gKiAgICAgICAgICAge1xuICogICAgICAgICAgICAgICBuYW1lOiBcImFub3RoZXJNZXRob2RcIixcbiAqICAgICAgICAgICAgICAgYXJnczpcbiAqICAgICAgICAgICAgICAgICAgIFtcbiAqICAgICAgICAgICAgICAgICAgICAgICB7dmFsdWU6IFwiTG9sXCIsIHR5cGU6ICdqYXZhLmxhbmcuQ2hhclNlcXVlbmNlJ30sXG4gKiAgICAgICAgICAgICAgICAgICAgICAge3ZhbHVlOiAxLCB0eXBlOiAnaW50J31cbiAqICAgICAgICAgICAgICAgICAgIF1cbiAqICAgICAgICAgICB9XG4gKiAgICAgICAgIF1cbiAqIH1cbiAqXG4gKiBJbiBhYm92ZSBleGFtcGxlLCBtZXRob2QgXCJzb21lTWV0aG9kXCIgd2lsbCBiZSBpbnZva2VkIG9uICdhY3Rpdml0eScuIE9uIHRoZSByZXN1bHQsIFwiYW5vdGhlck1ldGhvZFwiIHdpbGwgYmUgaW52b2tlZFxuICogIFwidGFyZ2V0XCIgY2FuIGJlIGVpdGhlciAnYWN0aXZpdHknLCAnYXBwbGljYXRpb24nIG9yICdlbGVtZW50J1xuICogIElmIHRhcmdldCBpcyBzZXQgdG8gJ2FwcGxpY2F0aW9uJywgbWV0aG9kcyB3aWxsIGJlIGludm9rZWQgb24gYXBwbGljYXRpb24gY2xhc3NcbiAqICBJZiB0YXJnZXQgaXMgc2V0IHRvICdhY3Rpdml0eScsIG1ldGhvZHMgd2lsbCBiZSBpbnZva2VkIG9uIGN1cnJlbnQgYWN0aXZpdHlcbiAqICBJZiB0YXJnZXQgaXMgc2V0IHRvICdlbGVtZW50JywgJ2VsZW1lbnRJZCcgbXVzdCBiZSBzcGVjaWZpZWRcbiAqXG4gKiAtIE9ubHkgJ1B1YmxpYycgbWV0aG9kcyBjYW4gYmUgaW52b2tlZC4gKCdvcGVuJyBtb2RpZmlyZSBpcyBuZWNlc3NhcnkgaW4gS290bGluKVxuICogLSBmb2xsb3dpbmcgcHJpbWl0aXZlIHR5cGVzIGFyZSBzdXBwb3J0ZWQ6IFwiaW50XCIsIFwiYm9vbGVhblwiLCBcImJ5dGVcIiwgXCJzaG9ydFwiLCBcImxvbmdcIiwgXCJmbG9hdFwiLCBcImNoYXJcIlxuICogLSAgTm9uLXByaW1pdGl2ZSB0eXBlcyB3aXRoIGZ1bGx5IHF1YWxpZmllZCBuYW1lIFwiamF2YS5sYW5nLipcIiBpcyBhbHNvIHN1cHBvcnRlZDpcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWcuIFwiamF2YS5sYW5nLkNoYXJTZXF1ZW5jZVwiLCBcImphdmEubGFuZy5TdHJpbmdcIiwgXCJqYXZhLmxhbmcuSW50ZWdlclwiLCBcImphdmEubGFuZy5GbG9hdFwiLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImphdmEubGFuZy5Eb3VibGVcIiwgXCJqYXZhLmxhbmcuQm9vbGVhblwiLCBcImphdmEubGFuZy5Mb25nXCIsIFwiamF2YS5sYW5nLlNob3J0XCIsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiamF2YS5sYW5nLkNoYXJhY3RlclwiIGV0Yy4uLlxuICpcbiAqXG4gKiBAdGhyb3dzICB7RXJyb3J9IGlmIHRhcmdldCBpcyBub3QgJ2FjdGl2aXR5JyBvciAnYXBwbGljYXRpb24nXG4gKiBAdGhyb3dzICB7RXJyb3J9IGlmIGEgbWV0aG9kIGlzIG5vdCBmb3VuZCB3aXRoIGdpdmVuIGFyZ3VtZW50IHR5cGVzXG4gKlxuICogQHJldHVybiB7Kn0gdGhlIHJlc3VsdCBvZiB0aGUgbGFzdCBtZXRob2QgaW4gdGhlIGludm9jYXRpb24gY2hhaW4uIElmIG1ldGhvZCByZXR1cm4gdHlwZSBpcyB2b2lkLCB0aGVuIFwiPFZPSUQ+XCIgd2lsbCBiZSByZXR1cm5lZFxuICpcbiAqL1xuY29tbWFuZHMubW9iaWxlQmFja2Rvb3IgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVCYWNrZG9vciAob3B0cyA9IHt9KSB7XG4gIGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ3RhcmdldCcsICdtZXRob2RzJ10pO1xuICBjb25zdCB7dGFyZ2V0LCBtZXRob2RzfSA9IG9wdHM7XG4gIGlmICh0YXJnZXQgPT09ICdlbGVtZW50Jykge1xuICAgIGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2VsZW1lbnRJZCddKTtcbiAgfVxuICBjb25zdCB7ZWxlbWVudElkOiB0YXJnZXRFbGVtZW50fSA9IG9wdHM7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS9iYWNrZG9vcmAsICdQT1NUJywge3RhcmdldCwgbWV0aG9kcywgdGFyZ2V0RWxlbWVudH0pO1xufTtcblxuLyoqXG4gKiAgRXhlY3V0ZSBVaUF1dG9tYXRvcjIgY29tbWFuZHMgdG8gZHJpdmUgb3V0IG9mIGFwcCBhcmVhcy5cbiAqICBzdHJhdGVneSBjYW4gYmUgb25lIG9mOiBcImNsYXp6XCIsIFwicmVzXCIsIFwidGV4dFwiLCBcInRleHRDb250YWluc1wiLCBcInRleHRFbmRzV2l0aFwiLCBcInRleHRTdGFydHNXaXRoXCIsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjXCIsIFwiZGVzY0NvbnRhaW5zXCIsIFwiZGVzY0VuZHNXaXRoXCIsIFwiZGVzY1N0YXJ0c1dpdGhcIiwgXCJwa2dcIlxuICpcbiAqICBhY3Rpb24gY2FuIGJlIG9uZSBvZjogXCJjbGlja1wiLCBcImxvbmdDbGlja1wiLCBcImdldFRleHRcIiwgXCJnZXRDb250ZW50RGVzY3JpcHRpb25cIiwgXCJnZXRDbGFzc05hbWVcIixcbiAqICAgICAgICAgICAgICAgICAgICAgICAgXCJnZXRSZXNvdXJjZU5hbWVcIiwgXCJnZXRWaXNpYmxlQm91bmRzXCIsIFwiZ2V0VmlzaWJsZUNlbnRlclwiLCBcImdldEFwcGxpY2F0aW9uUGFja2FnZVwiLFxuICogICAgICAgICAgICAgICAgICAgICAgICBcImdldENoaWxkQ291bnRcIiwgXCJjbGVhclwiLCBcImlzQ2hlY2thYmxlXCIsIFwiaXNDaGVja2VkXCIsIFwiaXNDbGlja2FibGVcIiwgXCJpc0VuYWJsZWRcIixcbiAqICAgICAgICAgICAgICAgICAgICAgICAgXCJpc0ZvY3VzYWJsZVwiLCBcImlzRm9jdXNlZFwiLCBcImlzTG9uZ0NsaWNrYWJsZVwiLCBcImlzU2Nyb2xsYWJsZVwiLCBcImlzU2VsZWN0ZWRcIlxuICovXG5jb21tYW5kcy5tb2JpbGVVaWF1dG9tYXRvciA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVVpYXV0b21hdG9yIChvcHRzID0ge30pIHtcbiAgY29uc3Qge3N0cmF0ZWd5LCBsb2NhdG9yLCBhY3Rpb24sIGluZGV4fSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ3N0cmF0ZWd5JywgJ2xvY2F0b3InLCAnYWN0aW9uJ10pO1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvdWlhdXRvbWF0b3JgLCAnUE9TVCcsIHtzdHJhdGVneSwgbG9jYXRvciwgaW5kZXgsIGFjdGlvbn0pO1xufTtcblxuLyoqXG4gKiAgRXhlY3V0ZSBVaUF1dG9tYXRvcjIgY29tbWFuZCB0byByZXR1cm4gdGhlIFVJIGR1bXAgd2hlbiBBVVQgaXMgaW4gYmFja2dyb3VuZC5cbiAqIEB0aHJvd3MgIHtFcnJvcn0gaWYgdWlhdXRvbWF0b3IgdmlldyBkdW1wIGlzIHVuc3VjY2Vzc2Z1bFxuICogQHJldHVybnMge3N0cmluZ30gdWlhdXRvbWF0b3IgRE9NIHhtbCBhcyBzdHJpbmdcbiAqL1xuY29tbWFuZHMubW9iaWxlVWlhdXRvbWF0b3JQYWdlU291cmNlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlVWlhdXRvbWF0b3JQYWdlU291cmNlICgpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlL3VpYXV0b21hdG9yX3BhZ2Vfc291cmNlYCwgJ0dFVCcpO1xufTtcblxuLyoqXG4gKiAgRmxhc2ggdGhlIGVsZW1lbnQgd2l0aCBnaXZlbiBpZC5cbiAqICBkdXJhdGlvbk1pbGxpcyBhbmQgcmVwZWF0Q291bnQgYXJlIG9wdGlvbmFsXG4gKlxuICovXG5jb21tYW5kcy5tb2JpbGVGbGFzaEVsZW1lbnQgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVGbGFzaEVsZW1lbnQgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7ZWxlbWVudH0gPSBhc3NlcnRSZXF1aXJlZE9wdGlvbnMob3B0cywgWydlbGVtZW50J10pO1xuICBjb25zdCB7ZHVyYXRpb25NaWxsaXMsIHJlcGVhdENvdW50fSA9IG9wdHM7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS8ke3V0aWwudW53cmFwRWxlbWVudChlbGVtZW50KX0vZmxhc2hgLCAnUE9TVCcsIHtcbiAgICBkdXJhdGlvbk1pbGxpcyxcbiAgICByZXBlYXRDb3VudFxuICB9KTtcbn07XG5cbi8qKlxuICogUGVyZm9ybSBhICdHZW5lcmFsQ2xpY2tBY3Rpb24nIChodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZHgvdGVzdC9lc3ByZXNzby9hY3Rpb24vR2VuZXJhbENsaWNrQWN0aW9uKVxuICovXG5jb21tYW5kcy5tb2JpbGVDbGlja0FjdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUNsaWNrQWN0aW9uIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2VsZW1lbnQsIHRhcHBlciwgY29vcmRpbmF0ZXNQcm92aWRlciwgcHJlY2lzaW9uRGVzY3JpYmVyLFxuICAgICAgICAgaW5wdXREZXZpY2UsIGJ1dHRvblN0YXRlfSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2VsZW1lbnQnXSk7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS8ke3V0aWwudW53cmFwRWxlbWVudChlbGVtZW50KX0vY2xpY2tfYWN0aW9uYCwgJ1BPU1QnLCB7XG4gICAgdGFwcGVyLCBjb29yZGluYXRlc1Byb3ZpZGVyLCBwcmVjaXNpb25EZXNjcmliZXIsIGlucHV0RGV2aWNlLCBidXR0b25TdGF0ZVxuICB9KTtcbn07XG5cbmNvbW1hbmRzLnVwZGF0ZVNldHRpbmdzID0gYXN5bmMgZnVuY3Rpb24gdXBkYXRlU2V0dGluZ3MgKHNldHRpbmdzKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9zZXR0aW5nc2AsICdQT1NUJywgeyBzZXR0aW5ncyB9KTtcbn07XG5cbmNvbW1hbmRzLmdldFNldHRpbmdzID0gYXN5bmMgZnVuY3Rpb24gZ2V0U2V0dGluZ3MgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vc2V0dGluZ3NgLCAnR0VUJyk7XG59O1xuXG4vLyBTdG9wIHByb3h5aW5nIHRvIGFueSBDaHJvbWVkcml2ZXIgYW5kIHJlZGlyZWN0IHRvIEVzcHJlc3NvXG5oZWxwZXJzLnN1c3BlbmRDaHJvbWVkcml2ZXJQcm94eSA9IGZ1bmN0aW9uIHN1c3BlbmRDaHJvbWVkcml2ZXJQcm94eSAoKSB7XG4gIHRoaXMuY2hyb21lZHJpdmVyID0gbnVsbDtcbiAgdGhpcy5wcm94eVJlcVJlcyA9IHRoaXMuZXNwcmVzc28ucHJveHlSZXFSZXMuYmluZCh0aGlzLmVzcHJlc3NvKTtcbiAgdGhpcy5wcm94eUNvbW1hbmQgPSB0aGlzLmVzcHJlc3NvLnByb3h5Q29tbWFuZC5iaW5kKHRoaXMuZXNwcmVzc28pO1xuICB0aGlzLmp3cFByb3h5QWN0aXZlID0gdHJ1ZTtcbn07XG5cbmNvbW1hbmRzLnN0YXJ0QWN0aXZpdHkgPSBhc3luYyBmdW5jdGlvbiBzdGFydEFjdGl2aXR5IChhcHBQYWNrYWdlLCBhcHBBY3Rpdml0eSxcbiAgYXBwV2FpdFBhY2thZ2UsIGFwcFdhaXRBY3Rpdml0eSkge1xuICAvLyBpbnRlbnRBY3Rpb24sIGludGVudENhdGVnb3J5LCBpbnRlbnRGbGFncywgb3B0aW9uYWxJbnRlbnRBcmd1bWVudHMsIGRvbnRTdG9wQXBwT25SZXNldFxuICAvLyBwYXJhbWV0ZXJzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IEVzcHJlc3NvXG4gIGFwcFBhY2thZ2UgPSBhcHBQYWNrYWdlIHx8IHRoaXMuY2Fwcy5hcHBQYWNrYWdlO1xuICBhcHBXYWl0UGFja2FnZSA9IGFwcFdhaXRQYWNrYWdlIHx8IGFwcFBhY2thZ2U7XG4gIGFwcEFjdGl2aXR5ID0gcXVhbGlmeUFjdGl2aXR5TmFtZShhcHBBY3Rpdml0eSwgYXBwUGFja2FnZSk7XG4gIGFwcFdhaXRBY3Rpdml0eSA9IHF1YWxpZnlBY3Rpdml0eU5hbWUoYXBwV2FpdEFjdGl2aXR5IHx8IGFwcEFjdGl2aXR5LCBhcHBXYWl0UGFja2FnZSk7XG4gIHRoaXMubG9nLmRlYnVnKGBTdGFydGluZyBhY3Rpdml0eSAnJHthcHBBY3Rpdml0eX0nIGZvciBwYWNrYWdlICcke2FwcFBhY2thZ2V9J2ApO1xuICBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9kZXZpY2Uvc3RhcnRfYWN0aXZpdHlgLCAnUE9TVCcsIHtcbiAgICBhcHBQYWNrYWdlLFxuICAgIGFwcEFjdGl2aXR5LFxuICB9KTtcbiAgYXdhaXQgdGhpcy5hZGIud2FpdEZvckFjdGl2aXR5KGFwcFdhaXRQYWNrYWdlLCBhcHBXYWl0QWN0aXZpdHkpO1xufTtcblxuY29tbWFuZHMubW9iaWxlRGlzbWlzc0F1dG9maWxsID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlRGlzbWlzc0F1dG9maWxsIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2VsZW1lbnR9ID0gYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnZWxlbWVudCddKTtcbiAgYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoXG4gICAgYC9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlLyR7dXRpbC51bndyYXBFbGVtZW50KGVsZW1lbnQpfS9kaXNtaXNzX2F1dG9maWxsYCwgJ1BPU1QnLCB7fSk7XG59O1xuXG5PYmplY3QuYXNzaWduKGV4dGVuc2lvbnMsIGNvbW1hbmRzLCBoZWxwZXJzKTtcbmV4cG9ydCB7IGNvbW1hbmRzLCBoZWxwZXJzIH07XG5l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
336
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2dlbmVyYWwuanMiLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwiYXNzZXJ0UmVxdWlyZWRPcHRpb25zIiwib3B0aW9ucyIsInJlcXVpcmVkT3B0aW9uTmFtZXMiLCJfIiwiaXNBcnJheSIsInByZXNlbnRPcHRpb25OYW1lcyIsImtleXMiLCJtaXNzaW5nT3B0aW9uTmFtZXMiLCJkaWZmZXJlbmNlIiwiaXNFbXB0eSIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImxhdW5jaEFwcCIsImVycm9ycyIsIlVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3IiLCJjbG9zZUFwcCIsInJlc2V0IiwiZ2V0Q2xpcGJvYXJkIiwiYWRiIiwiZ2V0QXBpTGV2ZWwiLCJlc3ByZXNzbyIsImp3cHJveHkiLCJjb21tYW5kIiwibW9iaWxlUGVyZm9ybUVkaXRvckFjdGlvbiIsIm9wdHMiLCJhY3Rpb24iLCJtb2JpbGVTd2lwZSIsImRpcmVjdGlvbiIsImVsZW1lbnQiLCJzd2lwZXIiLCJzdGFydENvb3JkaW5hdGVzIiwiZW5kQ29vcmRpbmF0ZXMiLCJwcmVjaXNpb25EZXNjcmliZXIiLCJ1dGlsIiwidW53cmFwRWxlbWVudCIsIm1vYmlsZUdldERldmljZUluZm8iLCJtb2JpbGVJc1RvYXN0VmlzaWJsZSIsInRleHQiLCJpc1JlZ2V4cCIsImhhc1ZhbHVlIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJtb2JpbGVPcGVuRHJhd2VyIiwiZ3Jhdml0eSIsIm1vYmlsZUNsb3NlRHJhd2VyIiwibW9iaWxlU2V0RGF0ZSIsInllYXIiLCJtb250aE9mWWVhciIsImRheU9mTW9udGgiLCJtb2JpbGVTZXRUaW1lIiwiaG91cnMiLCJtaW51dGVzIiwibW9iaWxlTmF2aWdhdGVUbyIsIm1lbnVJdGVtSWQiLCJtZW51SXRlbUlkQXNOdW1iZXIiLCJwYXJzZUludCIsImlzTmFOIiwibW9iaWxlV2ViQXRvbXMiLCJnZXREaXNwbGF5RGVuc2l0eSIsIm1vYmlsZVNjcm9sbFRvUGFnZSIsInNjcm9sbFRvVHlwZXMiLCJyZXMiLCJ2YWxpZGF0ZSIsInByZXNlbmNlIiwic2Nyb2xsVG8iLCJpbmNsdXNpb24iLCJ3aXRoaW4iLCJtZXNzYWdlIiwiam9pbiIsInNjcm9sbFRvUGFnZSIsIm51bWVyaWNhbGl0eSIsIm9ubHlJbnRlZ2VyIiwiZ3JlYXRlclRoYW5PckVxdWFsVG8iLCJzbW9vdGhTY3JvbGwiLCJsb2ciLCJ3YXJuIiwibW9iaWxlQmFja2Rvb3IiLCJ0YXJnZXQiLCJtZXRob2RzIiwiZWxlbWVudElkIiwidGFyZ2V0RWxlbWVudCIsIm1vYmlsZVVpYXV0b21hdG9yIiwic3RyYXRlZ3kiLCJsb2NhdG9yIiwiaW5kZXgiLCJtb2JpbGVVaWF1dG9tYXRvclBhZ2VTb3VyY2UiLCJtb2JpbGVGbGFzaEVsZW1lbnQiLCJkdXJhdGlvbk1pbGxpcyIsInJlcGVhdENvdW50IiwibW9iaWxlQ2xpY2tBY3Rpb24iLCJ0YXBwZXIiLCJjb29yZGluYXRlc1Byb3ZpZGVyIiwiaW5wdXREZXZpY2UiLCJidXR0b25TdGF0ZSIsInVwZGF0ZVNldHRpbmdzIiwic2V0dGluZ3MiLCJnZXRTZXR0aW5ncyIsInN1c3BlbmRDaHJvbWVkcml2ZXJQcm94eSIsImNocm9tZWRyaXZlciIsInByb3h5UmVxUmVzIiwiYmluZCIsInByb3h5Q29tbWFuZCIsImp3cFByb3h5QWN0aXZlIiwic3RhcnRBY3Rpdml0eSIsImFwcFBhY2thZ2UiLCJhcHBBY3Rpdml0eSIsImFwcFdhaXRQYWNrYWdlIiwiYXBwV2FpdEFjdGl2aXR5IiwiY2FwcyIsInF1YWxpZnlBY3Rpdml0eU5hbWUiLCJkZWJ1ZyIsIndhaXRGb3JBY3Rpdml0eSIsIm1vYmlsZURpc21pc3NBdXRvZmlsbCIsIk9iamVjdCIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9nZW5lcmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyB1dGlsIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB2YWxpZGF0ZSBmcm9tICd2YWxpZGF0ZS5qcyc7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICdAYXBwaXVtL2Jhc2UtZHJpdmVyJztcbmltcG9ydCB7IHF1YWxpZnlBY3Rpdml0eU5hbWUgfSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IGNvbW1hbmRzID0ge30sIGhlbHBlcnMgPSB7fSwgZXh0ZW5zaW9ucyA9IHt9O1xuXG5mdW5jdGlvbiBhc3NlcnRSZXF1aXJlZE9wdGlvbnMgKG9wdGlvbnMsIHJlcXVpcmVkT3B0aW9uTmFtZXMpIHtcbiAgaWYgKCFfLmlzQXJyYXkocmVxdWlyZWRPcHRpb25OYW1lcykpIHtcbiAgICByZXF1aXJlZE9wdGlvbk5hbWVzID0gW3JlcXVpcmVkT3B0aW9uTmFtZXNdO1xuICB9XG4gIGNvbnN0IHByZXNlbnRPcHRpb25OYW1lcyA9IF8ua2V5cyhvcHRpb25zKTtcbiAgY29uc3QgbWlzc2luZ09wdGlvbk5hbWVzID0gXy5kaWZmZXJlbmNlKHJlcXVpcmVkT3B0aW9uTmFtZXMsIHByZXNlbnRPcHRpb25OYW1lcyk7XG4gIGlmIChfLmlzRW1wdHkobWlzc2luZ09wdGlvbk5hbWVzKSkge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgVGhlIGZvbGxvd2luZyBvcHRpb25zIGFyZSByZXF1aXJlZDogJHtKU09OLnN0cmluZ2lmeShtaXNzaW5nT3B0aW9uTmFtZXMpfS4gYCArXG4gICAgYFlvdSBoYXZlIG9ubHkgcHJvdmlkZWQ6ICR7SlNPTi5zdHJpbmdpZnkocHJlc2VudE9wdGlvbk5hbWVzKX1gKTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXdhaXRcbmNvbW1hbmRzLmxhdW5jaEFwcCA9IGFzeW5jIGZ1bmN0aW9uIGxhdW5jaEFwcCAoKSB7XG4gIHRocm93IG5ldyBlcnJvcnMuVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvcignUGxlYXNlIGNyZWF0ZSBhIG5ldyBzZXNzaW9uIGluIG9yZGVyIHRvIGxhdW5jaCB0aGUgYXBwbGljYXRpb24gdW5kZXIgdGVzdCcpO1xufTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXdhaXRcbmNvbW1hbmRzLmNsb3NlQXBwID0gYXN5bmMgZnVuY3Rpb24gY2xvc2VBcHAgKCkge1xuICB0aHJvdyBuZXcgZXJyb3JzLlVuc3VwcG9ydGVkT3BlcmF0aW9uRXJyb3IoJ1BsZWFzZSBxdWl0IHRoZSBzZXNzaW9uIGluIG9yZGVyIHRvIGNsb3NlIHRoZSBhcHBsaWNhdGlvbiB1bmRlciB0ZXN0Jyk7XG59O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVxdWlyZS1hd2FpdFxuY29tbWFuZHMucmVzZXQgPSBhc3luYyBmdW5jdGlvbiByZXNldCAoKSB7XG4gIHRocm93IG5ldyBlcnJvcnMuVW5zdXBwb3J0ZWRPcGVyYXRpb25FcnJvcihcbiAgICAnUGxlYXNlIHF1aXQgdGhlIHNlc3Npb24gYW5kIGNyZWF0ZSBhIG5ldyBvbmUgJyArXG4gICAgJ2luIG9yZGVyIHRvIGNsb3NlIGFuZCBsYXVuY2ggdGhlIGFwcGxpY2F0aW9uIHVuZGVyIHRlc3QnKTtcbn07XG5cbmNvbW1hbmRzLmdldENsaXBib2FyZCA9IGFzeW5jIGZ1bmN0aW9uIGdldENsaXBib2FyZCAoKSB7XG4gIHJldHVybiAoYXdhaXQgdGhpcy5hZGIuZ2V0QXBpTGV2ZWwoKSA8IDI5KVxuICAgID8gKGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKCcvYXBwaXVtL2RldmljZS9nZXRfY2xpcGJvYXJkJywgJ1BPU1QnLCB7fSkpXG4gICAgOiAoYXdhaXQgdGhpcy5hZGIuZ2V0Q2xpcGJvYXJkKCkpO1xufTtcblxuY29tbWFuZHMubW9iaWxlUGVyZm9ybUVkaXRvckFjdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVBlcmZvcm1FZGl0b3JBY3Rpb24gKG9wdHMgPSB7fSkge1xuICBjb25zdCB7YWN0aW9ufSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2FjdGlvbiddKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKCcvYXBwaXVtL2RldmljZS9wZXJmb3JtX2VkaXRvcl9hY3Rpb24nLCAnUE9TVCcsIHthY3Rpb259KTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZVN3aXBlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlU3dpcGUgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7ZGlyZWN0aW9uLCBlbGVtZW50LCBzd2lwZXIsIHN0YXJ0Q29vcmRpbmF0ZXMsIGVuZENvb3JkaW5hdGVzLCBwcmVjaXNpb25EZXNjcmliZXJ9ID0gYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnZWxlbWVudCddKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlLyR7dXRpbC51bndyYXBFbGVtZW50KGVsZW1lbnQpfS9zd2lwZWAsICdQT1NUJywge1xuICAgIGRpcmVjdGlvbiwgZWxlbWVudCwgc3dpcGVyLCBzdGFydENvb3JkaW5hdGVzLCBlbmRDb29yZGluYXRlcywgcHJlY2lzaW9uRGVzY3JpYmVyXG4gIH0pO1xufTtcblxuY29tbWFuZHMubW9iaWxlR2V0RGV2aWNlSW5mbyA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUdldERldmljZUluZm8gKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZGV2aWNlL2luZm8nLCAnR0VUJyk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVJc1RvYXN0VmlzaWJsZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUlzVG9hc3RWaXNpYmxlIChvcHRzID0ge30pIHtcbiAgY29uc3Qge3RleHQsIGlzUmVnZXhwfSA9IG9wdHM7XG4gIGlmICghdXRpbC5oYXNWYWx1ZSh0ZXh0KSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoYCd0ZXh0JyBhcmd1bWVudCBpcyBtYW5kYXRvcnlgKTtcbiAgfVxuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvaXNfdG9hc3RfZGlzcGxheWVkJywgJ1BPU1QnLCB7XG4gICAgdGV4dCxcbiAgICBpc1JlZ2V4cCxcbiAgfSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVPcGVuRHJhd2VyID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlT3BlbkRyYXdlciAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtlbGVtZW50LCBncmF2aXR5fSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2VsZW1lbnQnXSk7XG5cbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlLyR7dXRpbC51bndyYXBFbGVtZW50KGVsZW1lbnQpfS9vcGVuX2RyYXdlcmAsICdQT1NUJywge1xuICAgIGdyYXZpdHlcbiAgfSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVDbG9zZURyYXdlciA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUNsb3NlRHJhd2VyIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2VsZW1lbnQsIGdyYXZpdHl9ID0gYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnZWxlbWVudCddKTtcblxuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvJHt1dGlsLnVud3JhcEVsZW1lbnQoZWxlbWVudCl9L2Nsb3NlX2RyYXdlcmAsICdQT1NUJywge1xuICAgIGdyYXZpdHlcbiAgfSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVTZXREYXRlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlU2V0RGF0ZSAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtlbGVtZW50LCB5ZWFyLCBtb250aE9mWWVhciwgZGF5T2ZNb250aH0gPSBhc3NlcnRSZXF1aXJlZE9wdGlvbnMob3B0cywgWydlbGVtZW50JywgJ3llYXInLCAnbW9udGhPZlllYXInLCAnZGF5T2ZNb250aCddKTtcblxuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvJHt1dGlsLnVud3JhcEVsZW1lbnQoZWxlbWVudCl9L3NldF9kYXRlYCwgJ1BPU1QnLCB7XG4gICAgeWVhcixcbiAgICBtb250aE9mWWVhcixcbiAgICBkYXlPZk1vbnRoLFxuICB9KTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZVNldFRpbWUgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVTZXRUaW1lIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2VsZW1lbnQsIGhvdXJzLCBtaW51dGVzfSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2VsZW1lbnQnLCAnaG91cnMnLCAnbWludXRlcyddKTtcblxuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvJHt1dGlsLnVud3JhcEVsZW1lbnQoZWxlbWVudCl9L3NldF90aW1lYCwgJ1BPU1QnLCB7XG4gICAgaG91cnMsXG4gICAgbWludXRlcyxcbiAgfSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVOYXZpZ2F0ZVRvID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlTmF2aWdhdGVUbyAob3B0cyA9IHt9KSB7XG4gIGxldCB7ZWxlbWVudCwgbWVudUl0ZW1JZH0gPSBhc3NlcnRSZXF1aXJlZE9wdGlvbnMob3B0cywgWydtZW51SXRlbUlkJywgJ2VsZW1lbnQnXSk7XG5cbiAgbGV0IG1lbnVJdGVtSWRBc051bWJlciA9IHBhcnNlSW50KG1lbnVJdGVtSWQsIDEwKTtcbiAgaWYgKF8uaXNOYU4obWVudUl0ZW1JZEFzTnVtYmVyKSB8fCBtZW51SXRlbUlkQXNOdW1iZXIgPCAwKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihgJ21lbnVJdGVtSWQnIG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBGb3VuZCAke21lbnVJdGVtSWR9YCk7XG4gIH1cblxuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvJHt1dGlsLnVud3JhcEVsZW1lbnQoZWxlbWVudCl9L25hdmlnYXRlX3RvYCwgJ1BPU1QnLCB7XG4gICAgbWVudUl0ZW1JZFxuICB9KTtcbn07XG5cbi8qKlxuICogUnVucyBhIGNoYWluIG9mIEVzcHJlc3NvIHdlYiBhdG9tcyAoc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3RyYWluaW5nL3Rlc3RpbmcvZXNwcmVzc28vd2ViIGZvciByZWZlcmVuY2UpXG4gKlxuICogVGFrZXMgSlNPTiBvZiB0aGUgZm9ybVxuICpcbiAqIHtcbiAqICAgXCJ3ZWJ2aWV3RWxcIjogXCI8RUxFTUVOVF9JRD5cIiwgLy8gb3B0aW9uYWwgd2VidmlldyBlbGVtZW50IHRvIG9wZXJhdGUgb25cbiAqICAgXCJmb3JjZUphdmFzY3JpcHRFbmFibGVkXCI6IHRydWV8ZmFsc2UsIC8vIGlmIHdlYnZpZXcgZGlzYWJsZXMgamF2YXNjcmlwdCwgd2ViYXRvbXMgd29uJ3Qgd29yaywgdGhpcyBmb3JjZXMgaXRcbiAqICAgXCJtZXRob2RDaGFpblwiOiBbXG4gKiAgICAge1wibmFtZVwiOiBcIm1ldGhvZE5hbWVcIiwgXCJhdG9tXCI6IHtcIm5hbWVcIjogXCJhdG9tTmFtZVwiLCBcImFyZ3NcIjogW1wiYXJnMVwiLCBcImFyZzJcIiwgLi4uXX19LFxuICogICAgIC4uLlxuICogICBdXG4gKiB9XG4gKlxuICovXG5jb21tYW5kcy5tb2JpbGVXZWJBdG9tcyA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVdlYkF0b21zIChvcHRzID0ge30pIHtcbiAgb3B0cyA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ21ldGhvZENoYWluJ10pO1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvd2ViX2F0b21zYCwgJ1BPU1QnLCBvcHRzKTtcbn07XG5cbmNvbW1hbmRzLmdldERpc3BsYXlEZW5zaXR5ID0gYXN5bmMgZnVuY3Rpb24gZ2V0RGlzcGxheURlbnNpdHkgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZGV2aWNlL2Rpc3BsYXlfZGVuc2l0eScsICdHRVQnLCB7fSk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVTY3JvbGxUb1BhZ2UgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVTY3JvbGxUb1BhZ2UgKG9wdHMgPSB7fSkge1xuXG4gIC8vIFZhbGlkYXRlIHRoZSBwYXJhbWV0ZXJzXG4gIGNvbnN0IHNjcm9sbFRvVHlwZXMgPSBbJ2ZpcnN0JywgJ2xhc3QnLCAnbGVmdCcsICdyaWdodCddO1xuICBjb25zdCByZXMgPSB2YWxpZGF0ZShvcHRzLCB7XG4gICAgZWxlbWVudDoge3ByZXNlbmNlOiB0cnVlfSxcbiAgICBzY3JvbGxUbzoge1xuICAgICAgaW5jbHVzaW9uOiB7XG4gICAgICAgIHdpdGhpbjogc2Nyb2xsVG9UeXBlcyxcbiAgICAgICAgbWVzc2FnZTogYFwic2Nyb2xsVG9cIiBtdXN0IGJlIG9uZSBvZiBcIiR7c2Nyb2xsVG9UeXBlcy5qb2luKCcsICcpfVwiIGZvdW5kICcle3ZhbHVlfSdgLFxuICAgICAgfVxuICAgIH0sXG4gICAgc2Nyb2xsVG9QYWdlOiB7XG4gICAgICBudW1lcmljYWxpdHk6IHtcbiAgICAgICAgb25seUludGVnZXI6IHRydWUsXG4gICAgICAgIGdyZWF0ZXJUaGFuT3JFcXVhbFRvOiAwLFxuICAgICAgICBtZXNzYWdlOiBgXCJzY3JvbGxUb1BhZ2VcIiBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIuIEZvdW5kICcle3ZhbHVlfSdgXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuICBpZiAodXRpbC5oYXNWYWx1ZShyZXMpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihgSW52YWxpZCBzY3JvbGxUbyBwYXJhbWV0ZXJzOiAke0pTT04uc3RyaW5naWZ5KHJlcyl9YCk7XG4gIH1cblxuICBjb25zdCB7ZWxlbWVudCwgc2Nyb2xsVG8sIHNjcm9sbFRvUGFnZSwgc21vb3RoU2Nyb2xsfSA9IG9wdHM7XG5cbiAgaWYgKHV0aWwuaGFzVmFsdWUoc2Nyb2xsVG8pICYmIHV0aWwuaGFzVmFsdWUoc2Nyb2xsVG9QYWdlKSkge1xuICAgIHRoaXMubG9nLndhcm4oYCdzY3JvbGxUbycgYW5kICdzY3JvbGxUb1BhZ2UnIHdoZXJlIGJvdGggcHJvdmlkZWQuIERlZmF1bHRpbmcgdG8gJ3Njcm9sbFRvJ2ApO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlLyR7dXRpbC51bndyYXBFbGVtZW50KGVsZW1lbnQpfS9zY3JvbGxfdG9fcGFnZWAsICdQT1NUJywge1xuICAgIHNjcm9sbFRvLFxuICAgIHNjcm9sbFRvUGFnZSxcbiAgICBzbW9vdGhTY3JvbGwsXG4gIH0pO1xufTtcblxuXG4vKipcbiAqICBBUEkgdG8gaW52b2tlIG1ldGhvZHMgZGVmaW5lZCBpbiBBbmRyb2lkIGFwcC5cbiAqXG4gKiAgRXhhbXBsZSBkYXRhXG4gKiAge1xuICogICB0YXJnZXQ6ICdhY3Rpdml0eScsXG4gKiAgIG1ldGhvZHM6XG4gKiAgICAgICAgIFtcbiAqICAgICAgICAgICB7XG4gKiAgICAgICAgICAgICAgIG5hbWU6IFwic29tZU1ldGhvZFwiLFxuICogICAgICAgICAgIH0sXG4gKiAgICAgICAgICAge1xuICogICAgICAgICAgICAgICBuYW1lOiBcImFub3RoZXJNZXRob2RcIixcbiAqICAgICAgICAgICAgICAgYXJnczpcbiAqICAgICAgICAgICAgICAgICAgIFtcbiAqICAgICAgICAgICAgICAgICAgICAgICB7dmFsdWU6IFwiTG9sXCIsIHR5cGU6ICdqYXZhLmxhbmcuQ2hhclNlcXVlbmNlJ30sXG4gKiAgICAgICAgICAgICAgICAgICAgICAge3ZhbHVlOiAxLCB0eXBlOiAnaW50J31cbiAqICAgICAgICAgICAgICAgICAgIF1cbiAqICAgICAgICAgICB9XG4gKiAgICAgICAgIF1cbiAqIH1cbiAqXG4gKiBJbiBhYm92ZSBleGFtcGxlLCBtZXRob2QgXCJzb21lTWV0aG9kXCIgd2lsbCBiZSBpbnZva2VkIG9uICdhY3Rpdml0eScuIE9uIHRoZSByZXN1bHQsIFwiYW5vdGhlck1ldGhvZFwiIHdpbGwgYmUgaW52b2tlZFxuICogIFwidGFyZ2V0XCIgY2FuIGJlIGVpdGhlciAnYWN0aXZpdHknLCAnYXBwbGljYXRpb24nIG9yICdlbGVtZW50J1xuICogIElmIHRhcmdldCBpcyBzZXQgdG8gJ2FwcGxpY2F0aW9uJywgbWV0aG9kcyB3aWxsIGJlIGludm9rZWQgb24gYXBwbGljYXRpb24gY2xhc3NcbiAqICBJZiB0YXJnZXQgaXMgc2V0IHRvICdhY3Rpdml0eScsIG1ldGhvZHMgd2lsbCBiZSBpbnZva2VkIG9uIGN1cnJlbnQgYWN0aXZpdHlcbiAqICBJZiB0YXJnZXQgaXMgc2V0IHRvICdlbGVtZW50JywgJ2VsZW1lbnRJZCcgbXVzdCBiZSBzcGVjaWZpZWRcbiAqXG4gKiAtIE9ubHkgJ1B1YmxpYycgbWV0aG9kcyBjYW4gYmUgaW52b2tlZC4gKCdvcGVuJyBtb2RpZmlyZSBpcyBuZWNlc3NhcnkgaW4gS290bGluKVxuICogLSBmb2xsb3dpbmcgcHJpbWl0aXZlIHR5cGVzIGFyZSBzdXBwb3J0ZWQ6IFwiaW50XCIsIFwiYm9vbGVhblwiLCBcImJ5dGVcIiwgXCJzaG9ydFwiLCBcImxvbmdcIiwgXCJmbG9hdFwiLCBcImNoYXJcIlxuICogLSAgTm9uLXByaW1pdGl2ZSB0eXBlcyB3aXRoIGZ1bGx5IHF1YWxpZmllZCBuYW1lIFwiamF2YS5sYW5nLipcIiBpcyBhbHNvIHN1cHBvcnRlZDpcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWcuIFwiamF2YS5sYW5nLkNoYXJTZXF1ZW5jZVwiLCBcImphdmEubGFuZy5TdHJpbmdcIiwgXCJqYXZhLmxhbmcuSW50ZWdlclwiLCBcImphdmEubGFuZy5GbG9hdFwiLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImphdmEubGFuZy5Eb3VibGVcIiwgXCJqYXZhLmxhbmcuQm9vbGVhblwiLCBcImphdmEubGFuZy5Mb25nXCIsIFwiamF2YS5sYW5nLlNob3J0XCIsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiamF2YS5sYW5nLkNoYXJhY3RlclwiIGV0Yy4uLlxuICpcbiAqXG4gKiBAdGhyb3dzICB7RXJyb3J9IGlmIHRhcmdldCBpcyBub3QgJ2FjdGl2aXR5JyBvciAnYXBwbGljYXRpb24nXG4gKiBAdGhyb3dzICB7RXJyb3J9IGlmIGEgbWV0aG9kIGlzIG5vdCBmb3VuZCB3aXRoIGdpdmVuIGFyZ3VtZW50IHR5cGVzXG4gKlxuICogQHJldHVybiB7Kn0gdGhlIHJlc3VsdCBvZiB0aGUgbGFzdCBtZXRob2QgaW4gdGhlIGludm9jYXRpb24gY2hhaW4uIElmIG1ldGhvZCByZXR1cm4gdHlwZSBpcyB2b2lkLCB0aGVuIFwiPFZPSUQ+XCIgd2lsbCBiZSByZXR1cm5lZFxuICpcbiAqL1xuY29tbWFuZHMubW9iaWxlQmFja2Rvb3IgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVCYWNrZG9vciAob3B0cyA9IHt9KSB7XG4gIGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ3RhcmdldCcsICdtZXRob2RzJ10pO1xuICBjb25zdCB7dGFyZ2V0LCBtZXRob2RzfSA9IG9wdHM7XG4gIGlmICh0YXJnZXQgPT09ICdlbGVtZW50Jykge1xuICAgIGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2VsZW1lbnRJZCddKTtcbiAgfVxuICBjb25zdCB7ZWxlbWVudElkOiB0YXJnZXRFbGVtZW50fSA9IG9wdHM7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS9iYWNrZG9vcmAsICdQT1NUJywge3RhcmdldCwgbWV0aG9kcywgdGFyZ2V0RWxlbWVudH0pO1xufTtcblxuLyoqXG4gKiAgRXhlY3V0ZSBVaUF1dG9tYXRvcjIgY29tbWFuZHMgdG8gZHJpdmUgb3V0IG9mIGFwcCBhcmVhcy5cbiAqICBzdHJhdGVneSBjYW4gYmUgb25lIG9mOiBcImNsYXp6XCIsIFwicmVzXCIsIFwidGV4dFwiLCBcInRleHRDb250YWluc1wiLCBcInRleHRFbmRzV2l0aFwiLCBcInRleHRTdGFydHNXaXRoXCIsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjXCIsIFwiZGVzY0NvbnRhaW5zXCIsIFwiZGVzY0VuZHNXaXRoXCIsIFwiZGVzY1N0YXJ0c1dpdGhcIiwgXCJwa2dcIlxuICpcbiAqICBhY3Rpb24gY2FuIGJlIG9uZSBvZjogXCJjbGlja1wiLCBcImxvbmdDbGlja1wiLCBcImdldFRleHRcIiwgXCJnZXRDb250ZW50RGVzY3JpcHRpb25cIiwgXCJnZXRDbGFzc05hbWVcIixcbiAqICAgICAgICAgICAgICAgICAgICAgICAgXCJnZXRSZXNvdXJjZU5hbWVcIiwgXCJnZXRWaXNpYmxlQm91bmRzXCIsIFwiZ2V0VmlzaWJsZUNlbnRlclwiLCBcImdldEFwcGxpY2F0aW9uUGFja2FnZVwiLFxuICogICAgICAgICAgICAgICAgICAgICAgICBcImdldENoaWxkQ291bnRcIiwgXCJjbGVhclwiLCBcImlzQ2hlY2thYmxlXCIsIFwiaXNDaGVja2VkXCIsIFwiaXNDbGlja2FibGVcIiwgXCJpc0VuYWJsZWRcIixcbiAqICAgICAgICAgICAgICAgICAgICAgICAgXCJpc0ZvY3VzYWJsZVwiLCBcImlzRm9jdXNlZFwiLCBcImlzTG9uZ0NsaWNrYWJsZVwiLCBcImlzU2Nyb2xsYWJsZVwiLCBcImlzU2VsZWN0ZWRcIlxuICovXG5jb21tYW5kcy5tb2JpbGVVaWF1dG9tYXRvciA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVVpYXV0b21hdG9yIChvcHRzID0ge30pIHtcbiAgY29uc3Qge3N0cmF0ZWd5LCBsb2NhdG9yLCBhY3Rpb24sIGluZGV4fSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ3N0cmF0ZWd5JywgJ2xvY2F0b3InLCAnYWN0aW9uJ10pO1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvdWlhdXRvbWF0b3JgLCAnUE9TVCcsIHtzdHJhdGVneSwgbG9jYXRvciwgaW5kZXgsIGFjdGlvbn0pO1xufTtcblxuLyoqXG4gKiAgRXhlY3V0ZSBVaUF1dG9tYXRvcjIgY29tbWFuZCB0byByZXR1cm4gdGhlIFVJIGR1bXAgd2hlbiBBVVQgaXMgaW4gYmFja2dyb3VuZC5cbiAqIEB0aHJvd3MgIHtFcnJvcn0gaWYgdWlhdXRvbWF0b3IgdmlldyBkdW1wIGlzIHVuc3VjY2Vzc2Z1bFxuICogQHJldHVybnMge3N0cmluZ30gdWlhdXRvbWF0b3IgRE9NIHhtbCBhcyBzdHJpbmdcbiAqL1xuY29tbWFuZHMubW9iaWxlVWlhdXRvbWF0b3JQYWdlU291cmNlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlVWlhdXRvbWF0b3JQYWdlU291cmNlICgpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKGAvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlL3VpYXV0b21hdG9yX3BhZ2Vfc291cmNlYCwgJ0dFVCcpO1xufTtcblxuLyoqXG4gKiAgRmxhc2ggdGhlIGVsZW1lbnQgd2l0aCBnaXZlbiBpZC5cbiAqICBkdXJhdGlvbk1pbGxpcyBhbmQgcmVwZWF0Q291bnQgYXJlIG9wdGlvbmFsXG4gKlxuICovXG5jb21tYW5kcy5tb2JpbGVGbGFzaEVsZW1lbnQgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVGbGFzaEVsZW1lbnQgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7ZWxlbWVudH0gPSBhc3NlcnRSZXF1aXJlZE9wdGlvbnMob3B0cywgWydlbGVtZW50J10pO1xuICBjb25zdCB7ZHVyYXRpb25NaWxsaXMsIHJlcGVhdENvdW50fSA9IG9wdHM7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS8ke3V0aWwudW53cmFwRWxlbWVudChlbGVtZW50KX0vZmxhc2hgLCAnUE9TVCcsIHtcbiAgICBkdXJhdGlvbk1pbGxpcyxcbiAgICByZXBlYXRDb3VudFxuICB9KTtcbn07XG5cbi8qKlxuICogUGVyZm9ybSBhICdHZW5lcmFsQ2xpY2tBY3Rpb24nIChodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9yZWZlcmVuY2UvYW5kcm9pZHgvdGVzdC9lc3ByZXNzby9hY3Rpb24vR2VuZXJhbENsaWNrQWN0aW9uKVxuICovXG5jb21tYW5kcy5tb2JpbGVDbGlja0FjdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUNsaWNrQWN0aW9uIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2VsZW1lbnQsIHRhcHBlciwgY29vcmRpbmF0ZXNQcm92aWRlciwgcHJlY2lzaW9uRGVzY3JpYmVyLFxuICAgICAgICAgaW5wdXREZXZpY2UsIGJ1dHRvblN0YXRlfSA9IGFzc2VydFJlcXVpcmVkT3B0aW9ucyhvcHRzLCBbJ2VsZW1lbnQnXSk7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9leGVjdXRlX21vYmlsZS8ke3V0aWwudW53cmFwRWxlbWVudChlbGVtZW50KX0vY2xpY2tfYWN0aW9uYCwgJ1BPU1QnLCB7XG4gICAgdGFwcGVyLCBjb29yZGluYXRlc1Byb3ZpZGVyLCBwcmVjaXNpb25EZXNjcmliZXIsIGlucHV0RGV2aWNlLCBidXR0b25TdGF0ZVxuICB9KTtcbn07XG5cbmNvbW1hbmRzLnVwZGF0ZVNldHRpbmdzID0gYXN5bmMgZnVuY3Rpb24gdXBkYXRlU2V0dGluZ3MgKHNldHRpbmdzKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9zZXR0aW5nc2AsICdQT1NUJywgeyBzZXR0aW5ncyB9KTtcbn07XG5cbmNvbW1hbmRzLmdldFNldHRpbmdzID0gYXN5bmMgZnVuY3Rpb24gZ2V0U2V0dGluZ3MgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoYC9hcHBpdW0vc2V0dGluZ3NgLCAnR0VUJyk7XG59O1xuXG4vLyBTdG9wIHByb3h5aW5nIHRvIGFueSBDaHJvbWVkcml2ZXIgYW5kIHJlZGlyZWN0IHRvIEVzcHJlc3NvXG5oZWxwZXJzLnN1c3BlbmRDaHJvbWVkcml2ZXJQcm94eSA9IGZ1bmN0aW9uIHN1c3BlbmRDaHJvbWVkcml2ZXJQcm94eSAoKSB7XG4gIHRoaXMuY2hyb21lZHJpdmVyID0gbnVsbDtcbiAgdGhpcy5wcm94eVJlcVJlcyA9IHRoaXMuZXNwcmVzc28ucHJveHlSZXFSZXMuYmluZCh0aGlzLmVzcHJlc3NvKTtcbiAgdGhpcy5wcm94eUNvbW1hbmQgPSB0aGlzLmVzcHJlc3NvLnByb3h5Q29tbWFuZC5iaW5kKHRoaXMuZXNwcmVzc28pO1xuICB0aGlzLmp3cFByb3h5QWN0aXZlID0gdHJ1ZTtcbn07XG5cbmNvbW1hbmRzLnN0YXJ0QWN0aXZpdHkgPSBhc3luYyBmdW5jdGlvbiBzdGFydEFjdGl2aXR5IChhcHBQYWNrYWdlLCBhcHBBY3Rpdml0eSxcbiAgYXBwV2FpdFBhY2thZ2UsIGFwcFdhaXRBY3Rpdml0eSkge1xuICAvLyBpbnRlbnRBY3Rpb24sIGludGVudENhdGVnb3J5LCBpbnRlbnRGbGFncywgb3B0aW9uYWxJbnRlbnRBcmd1bWVudHMsIGRvbnRTdG9wQXBwT25SZXNldFxuICAvLyBwYXJhbWV0ZXJzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IEVzcHJlc3NvXG4gIGFwcFBhY2thZ2UgPSBhcHBQYWNrYWdlIHx8IHRoaXMuY2Fwcy5hcHBQYWNrYWdlO1xuICBhcHBXYWl0UGFja2FnZSA9IGFwcFdhaXRQYWNrYWdlIHx8IGFwcFBhY2thZ2U7XG4gIGFwcEFjdGl2aXR5ID0gcXVhbGlmeUFjdGl2aXR5TmFtZShhcHBBY3Rpdml0eSwgYXBwUGFja2FnZSk7XG4gIGFwcFdhaXRBY3Rpdml0eSA9IHF1YWxpZnlBY3Rpdml0eU5hbWUoYXBwV2FpdEFjdGl2aXR5IHx8IGFwcEFjdGl2aXR5LCBhcHBXYWl0UGFja2FnZSk7XG4gIHRoaXMubG9nLmRlYnVnKGBTdGFydGluZyBhY3Rpdml0eSAnJHthcHBBY3Rpdml0eX0nIGZvciBwYWNrYWdlICcke2FwcFBhY2thZ2V9J2ApO1xuICBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZChgL2FwcGl1bS9kZXZpY2Uvc3RhcnRfYWN0aXZpdHlgLCAnUE9TVCcsIHtcbiAgICBhcHBQYWNrYWdlLFxuICAgIGFwcEFjdGl2aXR5LFxuICB9KTtcbiAgYXdhaXQgdGhpcy5hZGIud2FpdEZvckFjdGl2aXR5KGFwcFdhaXRQYWNrYWdlLCBhcHBXYWl0QWN0aXZpdHkpO1xufTtcblxuY29tbWFuZHMubW9iaWxlRGlzbWlzc0F1dG9maWxsID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlRGlzbWlzc0F1dG9maWxsIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2VsZW1lbnR9ID0gYXNzZXJ0UmVxdWlyZWRPcHRpb25zKG9wdHMsIFsnZWxlbWVudCddKTtcbiAgYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoXG4gICAgYC9zZXNzaW9uLzpzZXNzaW9uSWQvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlLyR7dXRpbC51bndyYXBFbGVtZW50KGVsZW1lbnQpfS9kaXNtaXNzX2F1dG9maWxsYCwgJ1BPU1QnLCB7fSk7XG59O1xuXG5PYmplY3QuYXNzaWduKGV4dGVuc2lvbnMsIGNvbW1hbmRzLCBoZWxwZXJzKTtc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
@@ -28,4 +28,4 @@ var _default = commands;
28
28
  exports.default = _default;require('source-map-support').install();
29
29
 
30
30
 
31
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2lkbGluZy1yZXNvdXJjZXMuanMiLCJuYW1lcyI6WyJjb21tYW5kcyIsIm1vYmlsZVJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzIiwib3B0cyIsImVzcHJlc3NvIiwiandwcm94eSIsImNvbW1hbmQiLCJtb2JpbGVVbnJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzIiwibW9iaWxlTGlzdElkbGluZ1Jlc291cmNlcyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9pZGxpbmctcmVzb3VyY2VzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlcXVpcmVPcHRpb25zIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IElkbGluZ1Jlc291cmNlc09wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7IXN0cmluZ30gY2xhc3NOYW1lcyAtIFRoZSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBpZGxpbmcgcmVzb3VyY2VzIGNsYXNzIG5hbWVzLlxuICogRWFjaCBuYW1lIG11c3QgYmUgYSBmdWxsLXF1YWxpZmllZCBqYXZhIGNsYXNzIG5hbWUsIGxpa2UgYGlvLmFwcGl1bS5lc3ByZXNzb3NlcnZlci5saWIuTXlJZGxpbmdSZXNvdXJjZWAuXG4gKiBFYWNoIGNsYXNzIGluIHRoZSBhcHAgc291cmNlIG11c3QgaW1wbGVtZW50IGEgc2luZ2xldG9uIHBhdHRlcm4gYW5kIGhhdmUgYSBzdGF0aWMgYGdldEluc3RhbmNlKClgXG4gKiBtZXRob2QgcmV0dXJuaW5nIHRoZSBjbGFzcyBpbnN0YW5jZSwgd2hpY2ggaW1wbGVtZW50cyBgYW5kcm9pZHgudGVzdC5lc3ByZXNzby5JZGxpbmdSZXNvdXJjZWBcbiAqIGludGVyZmFjZS4gUmVhZFxuICogLSBodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS90cmFpbmluZy90ZXN0aW5nL2VzcHJlc3NvL2lkbGluZy1yZXNvdXJjZVxuICogLSBodHRwczovL2FuZHJvaWQuamxlbHNlLmV1L2ludGVncmF0ZS1lc3ByZXNzby1pZGxpbmctcmVzb3VyY2VzLWluLXlvdXItYXBwLXRvLWJ1aWxkLWZsZXhpYmxlLXVpLXRlc3RzLWM3NzllMjRmNTA1N1xuICogZm9yIG1vcmUgZGV0YWlscyBvbiBob3cgdG8gZGVzaWduIGFuZCB1c2UgaWRsaW5nIHJlc291cmNlcyBjb25jZXB0IGluIEVzcHJlc3NvLlxuICovXG5cbi8qKlxuICogUmVnaXN0ZXJzIG9uZSBvciBtb3JlIGlkbGluZyByZXNvdXJjZXNcbiAqXG4gKiBAcGFyYW0ge0lkbGluZ1Jlc291cmNlc09wdGlvbnN9IG9wdHNcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSB3YXMgYSBmYWlsdXJlIHdoaWxlIHBhcnNpbmcgb3B0aW9ucyBvciByZWdpc3RlcmluZ1xuICogdGhlIGFjdHVhbCBpbnN0YW5jZXNcbiAqL1xuY29tbWFuZHMubW9iaWxlUmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVSZWdpc3RlcklkbGluZ1Jlc291cmNlcyAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS9leGVjdXRlX21vYmlsZS9yZWdpc3Rlcl9pZGxpbmdfcmVzb3VyY2VzJywgJ1BPU1QnLFxuICAgIHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnY2xhc3NOYW1lcyddKSk7XG59O1xuXG4vKipcbiAqIFVucmVnaXN0ZXJzIG9uZSBvciBtb3JlIGlkbGluZyByZXNvdXJjZXNcbiAqXG4gKiBAcGFyYW0ge0lkbGluZ1Jlc291cmNlc09wdGlvbnN9IG9wdHNcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSB3YXMgYSBmYWlsdXJlIHdoaWxlIHBhcnNpbmcgb3B0aW9ucyBvciB1bnJlZ2lzdGVyaW5nXG4gKiB0aGUgYWN0dWFsIGluc3RhbmNlc1xuICovXG5jb21tYW5kcy5tb2JpbGVVbnJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlVW5yZWdpc3RlcklkbGluZ1Jlc291cmNlcyAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS9leGVjdXRlX21vYmlsZS91bnJlZ2lzdGVyX2lkbGluZ19yZXNvdXJjZXMnLCAnUE9TVCcsXG4gICAgcmVxdWlyZU9wdGlvbnMob3B0cywgWydjbGFzc05hbWVzJ10pKTtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhIGxpc3Qgb2YgY3VycmVudGx5IHJlZ2lzdGVyZWQgaWRsaW5nIHJlc291cmNlc1xuICogb3IgYW4gZW1wdHkgbGlzdCBpZiBubyByZXNvdXJjZXMgaGF2ZSBiZWVuIHJlZ2lzdGVyZWQgeWV0LlxuICpcbiAqIEByZXR1cm5zIHtBcnJheTxzdHJpbmc+fSBUaGUgbGlzdCBvZiBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZXNcbiAqL1xuY29tbWFuZHMubW9iaWxlTGlzdElkbGluZ1Jlc291cmNlcyA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUxpc3RJZGxpbmdSZXNvdXJjZXMgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvbGlzdF9pZGxpbmdfcmVzb3VyY2VzJywgJ0dFVCcpO1xufTtcblxuZXhwb3J0IHsgY29tbWFuZHMgfTtcbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFFQSxNQUFNQSxRQUFRLEdBQUcsRUFBakI7OztBQXFCQUEsUUFBUSxDQUFDQyw2QkFBVCxHQUF5QyxlQUFlQSw2QkFBZixDQUE4Q0MsSUFBSSxHQUFHLEVBQXJELEVBQXlEO0VBQ2hHLE9BQU8sTUFBTSxLQUFLQyxRQUFMLENBQWNDLE9BQWQsQ0FBc0JDLE9BQXRCLENBQThCLGtEQUE5QixFQUFrRixNQUFsRixFQUNYLDJCQUFlSCxJQUFmLEVBQXFCLENBQUMsWUFBRCxDQUFyQixDQURXLENBQWI7QUFFRCxDQUhEOztBQVlBRixRQUFRLENBQUNNLCtCQUFULEdBQTJDLGVBQWVBLCtCQUFmLENBQWdESixJQUFJLEdBQUcsRUFBdkQsRUFBMkQ7RUFDcEcsT0FBTyxNQUFNLEtBQUtDLFFBQUwsQ0FBY0MsT0FBZCxDQUFzQkMsT0FBdEIsQ0FBOEIsb0RBQTlCLEVBQW9GLE1BQXBGLEVBQ1gsMkJBQWVILElBQWYsRUFBcUIsQ0FBQyxZQUFELENBQXJCLENBRFcsQ0FBYjtBQUVELENBSEQ7O0FBV0FGLFFBQVEsQ0FBQ08seUJBQVQsR0FBcUMsZUFBZUEseUJBQWYsR0FBNEM7RUFDL0UsT0FBTyxNQUFNLEtBQUtKLFFBQUwsQ0FBY0MsT0FBZCxDQUFzQkMsT0FBdEIsQ0FBOEIsOENBQTlCLEVBQThFLEtBQTlFLENBQWI7QUFDRCxDQUZEOztlQUtlTCxRIn0=
31
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2lkbGluZy1yZXNvdXJjZXMuanMiLCJuYW1lcyI6WyJjb21tYW5kcyIsIm1vYmlsZVJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzIiwib3B0cyIsImVzcHJlc3NvIiwiandwcm94eSIsImNvbW1hbmQiLCJyZXF1aXJlT3B0aW9ucyIsIm1vYmlsZVVucmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMiLCJtb2JpbGVMaXN0SWRsaW5nUmVzb3VyY2VzIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL2NvbW1hbmRzL2lkbGluZy1yZXNvdXJjZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVxdWlyZU9wdGlvbnMgfSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gSWRsaW5nUmVzb3VyY2VzT3B0aW9uc1xuICogQHByb3BlcnR5IHshc3RyaW5nfSBjbGFzc05hbWVzIC0gVGhlIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGlkbGluZyByZXNvdXJjZXMgY2xhc3MgbmFtZXMuXG4gKiBFYWNoIG5hbWUgbXVzdCBiZSBhIGZ1bGwtcXVhbGlmaWVkIGphdmEgY2xhc3MgbmFtZSwgbGlrZSBgaW8uYXBwaXVtLmVzcHJlc3Nvc2VydmVyLmxpYi5NeUlkbGluZ1Jlc291cmNlYC5cbiAqIEVhY2ggY2xhc3MgaW4gdGhlIGFwcCBzb3VyY2UgbXVzdCBpbXBsZW1lbnQgYSBzaW5nbGV0b24gcGF0dGVybiBhbmQgaGF2ZSBhIHN0YXRpYyBgZ2V0SW5zdGFuY2UoKWBcbiAqIG1ldGhvZCByZXR1cm5pbmcgdGhlIGNsYXNzIGluc3RhbmNlLCB3aGljaCBpbXBsZW1lbnRzIGBhbmRyb2lkeC50ZXN0LmVzcHJlc3NvLklkbGluZ1Jlc291cmNlYFxuICogaW50ZXJmYWNlLiBSZWFkXG4gKiAtIGh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3RyYWluaW5nL3Rlc3RpbmcvZXNwcmVzc28vaWRsaW5nLXJlc291cmNlXG4gKiAtIGh0dHBzOi8vYW5kcm9pZC5qbGVsc2UuZXUvaW50ZWdyYXRlLWVzcHJlc3NvLWlkbGluZy1yZXNvdXJjZXMtaW4teW91ci1hcHAtdG8tYnVpbGQtZmxleGlibGUtdWktdGVzdHMtYzc3OWUyNGY1MDU3XG4gKiBmb3IgbW9yZSBkZXRhaWxzIG9uIGhvdyB0byBkZXNpZ24gYW5kIHVzZSBpZGxpbmcgcmVzb3VyY2VzIGNvbmNlcHQgaW4gRXNwcmVzc28uXG4gKi9cblxuLyoqXG4gKiBSZWdpc3RlcnMgb25lIG9yIG1vcmUgaWRsaW5nIHJlc291cmNlc1xuICpcbiAqIEBwYXJhbSB7SWRsaW5nUmVzb3VyY2VzT3B0aW9uc30gb3B0c1xuICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhIGZhaWx1cmUgd2hpbGUgcGFyc2luZyBvcHRpb25zIG9yIHJlZ2lzdGVyaW5nXG4gKiB0aGUgYWN0dWFsIGluc3RhbmNlc1xuICovXG5jb21tYW5kcy5tb2JpbGVSZWdpc3RlcklkbGluZ1Jlc291cmNlcyA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzIChvcHRzID0ge30pIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKCcvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlL3JlZ2lzdGVyX2lkbGluZ19yZXNvdXJjZXMnLCAnUE9TVCcsXG4gICAgcmVxdWlyZU9wdGlvbnMob3B0cywgWydjbGFzc05hbWVzJ10pKTtcbn07XG5cbi8qKlxuICogVW5yZWdpc3RlcnMgb25lIG9yIG1vcmUgaWRsaW5nIHJlc291cmNlc1xuICpcbiAqIEBwYXJhbSB7SWRsaW5nUmVzb3VyY2VzT3B0aW9uc30gb3B0c1xuICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhIGZhaWx1cmUgd2hpbGUgcGFyc2luZyBvcHRpb25zIG9yIHVucmVnaXN0ZXJpbmdcbiAqIHRoZSBhY3R1YWwgaW5zdGFuY2VzXG4gKi9cbmNvbW1hbmRzLm1vYmlsZVVucmVnaXN0ZXJJZGxpbmdSZXNvdXJjZXMgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVVbnJlZ2lzdGVySWRsaW5nUmVzb3VyY2VzIChvcHRzID0ge30pIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKCcvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlL3VucmVnaXN0ZXJfaWRsaW5nX3Jlc291cmNlcycsICdQT1NUJyxcbiAgICByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2NsYXNzTmFtZXMnXSkpO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGEgbGlzdCBvZiBjdXJyZW50bHkgcmVnaXN0ZXJlZCBpZGxpbmcgcmVzb3VyY2VzXG4gKiBvciBhbiBlbXB0eSBsaXN0IGlmIG5vIHJlc291cmNlcyBoYXZlIGJlZW4gcmVnaXN0ZXJlZCB5ZXQuXG4gKlxuICogQHJldHVybnMge0FycmF5PHN0cmluZz59IFRoZSBsaXN0IG9mIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lc1xuICovXG5jb21tYW5kcy5tb2JpbGVMaXN0SWRsaW5nUmVzb3VyY2VzID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlTGlzdElkbGluZ1Jlc291cmNlcyAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS9leGVjdXRlX21vYmlsZS9saXN0X2lkbGluZ19yZXNvdXJjZXMnLCAnR0VUJyk7XG59O1xuXG5leHBvcnQgeyBjb21tYW5kcyB9O1xuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBLE1BQU1BLFFBQVEsR0FBRyxFQUFqQjs7O0FBcUJBQSxRQUFRLENBQUNDLDZCQUFULEdBQXlDLGVBQWVBLDZCQUFmLENBQThDQyxJQUFJLEdBQUcsRUFBckQsRUFBeUQ7RUFDaEcsT0FBTyxNQUFNLEtBQUtDLFFBQUwsQ0FBY0MsT0FBZCxDQUFzQkMsT0FBdEIsQ0FBOEIsa0RBQTlCLEVBQWtGLE1BQWxGLEVBQ1gsSUFBQUMscUJBQUEsRUFBZUosSUFBZixFQUFxQixDQUFDLFlBQUQsQ0FBckIsQ0FEVyxDQUFiO0FBRUQsQ0FIRDs7QUFZQUYsUUFBUSxDQUFDTywrQkFBVCxHQUEyQyxlQUFlQSwrQkFBZixDQUFnREwsSUFBSSxHQUFHLEVBQXZELEVBQTJEO0VBQ3BHLE9BQU8sTUFBTSxLQUFLQyxRQUFMLENBQWNDLE9BQWQsQ0FBc0JDLE9BQXRCLENBQThCLG9EQUE5QixFQUFvRixNQUFwRixFQUNYLElBQUFDLHFCQUFBLEVBQWVKLElBQWYsRUFBcUIsQ0FBQyxZQUFELENBQXJCLENBRFcsQ0FBYjtBQUVELENBSEQ7O0FBV0FGLFFBQVEsQ0FBQ1EseUJBQVQsR0FBcUMsZUFBZUEseUJBQWYsR0FBNEM7RUFDL0UsT0FBTyxNQUFNLEtBQUtMLFFBQUwsQ0FBY0MsT0FBZCxDQUFzQkMsT0FBdEIsQ0FBOEIsOENBQTlCLEVBQThFLEtBQTlFLENBQWI7QUFDRCxDQUZEOztlQUtlTCxRIn0=
@@ -24,4 +24,4 @@ var _default = commands;
24
24
  exports.default = _default;require('source-map-support').install();
25
25
 
26
26
 
27
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL3NlcnZpY2VzLmpzIiwibmFtZXMiOlsiY29tbWFuZHMiLCJtb2JpbGVTdGFydFNlcnZpY2UiLCJvcHRzIiwiZXNwcmVzc28iLCJqd3Byb3h5IiwiY29tbWFuZCIsIm1vYmlsZVN0b3BTZXJ2aWNlIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL2NvbW1hbmRzL3NlcnZpY2VzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlcXVpcmVPcHRpb25zIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gU3RhcnRTZXJ2aWNlT3B0aW9uc1xuICogQHByb3BlcnR5IHshc3RyaW5nfSBpbnRlbnQgLSBUaGUgbmFtZSBvZiB0aGUgc2VydmljZSBpbnRlbnQgdG8gc3RhcnQsIGZvciBleGFtcGxlXG4gKiBgY29tLnNvbWUucGFja2FnZS5uYW1lLy5Zb3VyU2VydmljZVN1YkNsYXNzTmFtZWAuIFRoaXMgb3B0aW9uIGlzIG1hbmRhdG9yeS5cbiAqICEhISBPbmx5IHNlcnZpY2VzIGluIHRoZSBhcHAncyB1bmRlciB0ZXN0IHNjb3BlIGNvdWxkIGJlIHN0YXJ0ZWQuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGZvcmVncm91bmQgW2ZhbHNlXSAtIFNldCBpdCB0byBgdHJ1ZWAgaWYgeW91ciBzZXJ2aWNlIG11c3QgYmVcbiAqIHN0YXJ0ZWQgYXMgZm9yZWdyb3VuZCBzZXJ2aWNlLlxuICovXG5cbi8qKlxuICogU3RhcnRzIHRoZSBnaXZlbiBzZXJ2aWNlIGludGVudC5cbiAqXG4gKiBAcGFyYW0ge1N0YXJ0U2VydmljZU9wdGlvbnN9IG9wdHNcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBmdWxsIGNvbXBvbmVudCBuYW1lXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGEgZmFpbHVyZSB3aGlsZSBzdGFydGluZyB0aGUgc2VydmljZVxuICogb3IgcmVxdWlyZWQgb3B0aW9ucyBhcmUgbWlzc2luZ1xuICovXG5jb21tYW5kcy5tb2JpbGVTdGFydFNlcnZpY2UgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVTdGFydFNlcnZpY2UgKG9wdHMgPSB7fSkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvc3RhcnRfc2VydmljZScsICdQT1NUJyxcbiAgICByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2ludGVudCddKSk7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFN0b3BTZXJ2aWNlT3B0aW9uc1xuICogQHByb3BlcnR5IHshc3RyaW5nfSBpbnRlbnQgLSBUaGUgbmFtZSBvZiB0aGUgc2VydmljZSBpbnRlbnQgdG8gc3RvcCwgZm9yIGV4YW1wbGVcbiAqIGBjb20uc29tZS5wYWNrYWdlLm5hbWUvLllvdXJTZXJ2aWNlU3ViQ2xhc3NOYW1lYC4gVGhpcyBvcHRpb24gaXMgbWFuZGF0b3J5LlxuICogISEhIE9ubHkgc2VydmljZXMgaW4gdGhlIGFwcCdzIHVuZGVyIHRlc3Qgc2NvcGUgY291bGQgYmUgc3RvcHBlZC5cbiAqL1xuXG4vKipcbiAqIFN0b3BzIHRoZSBnaXZlbiBzZXJ2aWNlIGludGVudC5cbiAqXG4gKiBAcGFyYW0ge1N0b3BTZXJ2aWNlT3B0aW9uc30gb3B0c1xuICogQHJldHVybnMge3N0cmluZ30gYHRydWVgIGlmIHRoZSBzZXJ2aWNlIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBzdG9wcGVkXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGEgZmFpbHVyZSB3aGlsZSBzdG9wcGluZyB0aGUgc2VydmljZVxuICogb3IgcmVxdWlyZWQgb3B0aW9ucyBhcmUgbWlzc2luZ1xuICovXG5jb21tYW5kcy5tb2JpbGVTdG9wU2VydmljZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVN0b3BTZXJ2aWNlIChvcHRzID0ge30pIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuZXNwcmVzc28uandwcm94eS5jb21tYW5kKCcvYXBwaXVtL2V4ZWN1dGVfbW9iaWxlL3N0b3Bfc2VydmljZScsICdQT1NUJyxcbiAgICByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2ludGVudCddKSk7XG59O1xuXG5cbmV4cG9ydCB7IGNvbW1hbmRzIH07XG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBRUEsTUFBTUEsUUFBUSxHQUFHLEVBQWpCOzs7QUFvQkFBLFFBQVEsQ0FBQ0Msa0JBQVQsR0FBOEIsZUFBZUEsa0JBQWYsQ0FBbUNDLElBQUksR0FBRyxFQUExQyxFQUE4QztFQUMxRSxPQUFPLE1BQU0sS0FBS0MsUUFBTCxDQUFjQyxPQUFkLENBQXNCQyxPQUF0QixDQUE4QixzQ0FBOUIsRUFBc0UsTUFBdEUsRUFDWCwyQkFBZUgsSUFBZixFQUFxQixDQUFDLFFBQUQsQ0FBckIsQ0FEVyxDQUFiO0FBRUQsQ0FIRDs7QUFvQkFGLFFBQVEsQ0FBQ00saUJBQVQsR0FBNkIsZUFBZUEsaUJBQWYsQ0FBa0NKLElBQUksR0FBRyxFQUF6QyxFQUE2QztFQUN4RSxPQUFPLE1BQU0sS0FBS0MsUUFBTCxDQUFjQyxPQUFkLENBQXNCQyxPQUF0QixDQUE4QixxQ0FBOUIsRUFBcUUsTUFBckUsRUFDWCwyQkFBZUgsSUFBZixFQUFxQixDQUFDLFFBQUQsQ0FBckIsQ0FEVyxDQUFiO0FBRUQsQ0FIRDs7ZUFPZUYsUSJ9
27
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL3NlcnZpY2VzLmpzIiwibmFtZXMiOlsiY29tbWFuZHMiLCJtb2JpbGVTdGFydFNlcnZpY2UiLCJvcHRzIiwiZXNwcmVzc28iLCJqd3Byb3h5IiwiY29tbWFuZCIsInJlcXVpcmVPcHRpb25zIiwibW9iaWxlU3RvcFNlcnZpY2UiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvY29tbWFuZHMvc2VydmljZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVxdWlyZU9wdGlvbnMgfSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBTdGFydFNlcnZpY2VPcHRpb25zXG4gKiBAcHJvcGVydHkgeyFzdHJpbmd9IGludGVudCAtIFRoZSBuYW1lIG9mIHRoZSBzZXJ2aWNlIGludGVudCB0byBzdGFydCwgZm9yIGV4YW1wbGVcbiAqIGBjb20uc29tZS5wYWNrYWdlLm5hbWUvLllvdXJTZXJ2aWNlU3ViQ2xhc3NOYW1lYC4gVGhpcyBvcHRpb24gaXMgbWFuZGF0b3J5LlxuICogISEhIE9ubHkgc2VydmljZXMgaW4gdGhlIGFwcCdzIHVuZGVyIHRlc3Qgc2NvcGUgY291bGQgYmUgc3RhcnRlZC5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gZm9yZWdyb3VuZCBbZmFsc2VdIC0gU2V0IGl0IHRvIGB0cnVlYCBpZiB5b3VyIHNlcnZpY2UgbXVzdCBiZVxuICogc3RhcnRlZCBhcyBmb3JlZ3JvdW5kIHNlcnZpY2UuXG4gKi9cblxuLyoqXG4gKiBTdGFydHMgdGhlIGdpdmVuIHNlcnZpY2UgaW50ZW50LlxuICpcbiAqIEBwYXJhbSB7U3RhcnRTZXJ2aWNlT3B0aW9uc30gb3B0c1xuICogQHJldHVybnMge3N0cmluZ30gVGhlIGZ1bGwgY29tcG9uZW50IG5hbWVcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSB3YXMgYSBmYWlsdXJlIHdoaWxlIHN0YXJ0aW5nIHRoZSBzZXJ2aWNlXG4gKiBvciByZXF1aXJlZCBvcHRpb25zIGFyZSBtaXNzaW5nXG4gKi9cbmNvbW1hbmRzLm1vYmlsZVN0YXJ0U2VydmljZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVN0YXJ0U2VydmljZSAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmVzcHJlc3NvLmp3cHJveHkuY29tbWFuZCgnL2FwcGl1bS9leGVjdXRlX21vYmlsZS9zdGFydF9zZXJ2aWNlJywgJ1BPU1QnLFxuICAgIHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnaW50ZW50J10pKTtcbn07XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gU3RvcFNlcnZpY2VPcHRpb25zXG4gKiBAcHJvcGVydHkgeyFzdHJpbmd9IGludGVudCAtIFRoZSBuYW1lIG9mIHRoZSBzZXJ2aWNlIGludGVudCB0byBzdG9wLCBmb3IgZXhhbXBsZVxuICogYGNvbS5zb21lLnBhY2thZ2UubmFtZS8uWW91clNlcnZpY2VTdWJDbGFzc05hbWVgLiBUaGlzIG9wdGlvbiBpcyBtYW5kYXRvcnkuXG4gKiAhISEgT25seSBzZXJ2aWNlcyBpbiB0aGUgYXBwJ3MgdW5kZXIgdGVzdCBzY29wZSBjb3VsZCBiZSBzdG9wcGVkLlxuICovXG5cbi8qKlxuICogU3RvcHMgdGhlIGdpdmVuIHNlcnZpY2UgaW50ZW50LlxuICpcbiAqIEBwYXJhbSB7U3RvcFNlcnZpY2VPcHRpb25zfSBvcHRzXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBgdHJ1ZWAgaWYgdGhlIHNlcnZpY2UgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHN0b3BwZWRcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSB3YXMgYSBmYWlsdXJlIHdoaWxlIHN0b3BwaW5nIHRoZSBzZXJ2aWNlXG4gKiBvciByZXF1aXJlZCBvcHRpb25zIGFyZSBtaXNzaW5nXG4gKi9cbmNvbW1hbmRzLm1vYmlsZVN0b3BTZXJ2aWNlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlU3RvcFNlcnZpY2UgKG9wdHMgPSB7fSkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5lc3ByZXNzby5qd3Byb3h5LmNvbW1hbmQoJy9hcHBpdW0vZXhlY3V0ZV9tb2JpbGUvc3RvcF9zZXJ2aWNlJywgJ1BPU1QnLFxuICAgIHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnaW50ZW50J10pKTtcbn07XG5cblxuZXhwb3J0IHsgY29tbWFuZHMgfTtcbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFFQSxNQUFNQSxRQUFRLEdBQUcsRUFBakI7OztBQW9CQUEsUUFBUSxDQUFDQyxrQkFBVCxHQUE4QixlQUFlQSxrQkFBZixDQUFtQ0MsSUFBSSxHQUFHLEVBQTFDLEVBQThDO0VBQzFFLE9BQU8sTUFBTSxLQUFLQyxRQUFMLENBQWNDLE9BQWQsQ0FBc0JDLE9BQXRCLENBQThCLHNDQUE5QixFQUFzRSxNQUF0RSxFQUNYLElBQUFDLHFCQUFBLEVBQWVKLElBQWYsRUFBcUIsQ0FBQyxRQUFELENBQXJCLENBRFcsQ0FBYjtBQUVELENBSEQ7O0FBb0JBRixRQUFRLENBQUNPLGlCQUFULEdBQTZCLGVBQWVBLGlCQUFmLENBQWtDTCxJQUFJLEdBQUcsRUFBekMsRUFBNkM7RUFDeEUsT0FBTyxNQUFNLEtBQUtDLFFBQUwsQ0FBY0MsT0FBZCxDQUFzQkMsT0FBdEIsQ0FBOEIscUNBQTlCLEVBQXFFLE1BQXJFLEVBQ1gsSUFBQUMscUJBQUEsRUFBZUosSUFBZixFQUFxQixDQUFDLFFBQUQsQ0FBckIsQ0FEVyxDQUFiO0FBRUQsQ0FIRDs7ZUFPZUYsUSJ9