nologin.bundle.js 90 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. /******/ (function(modules) { // webpackBootstrap
  2. /******/ // install a JSONP callback for chunk loading
  3. /******/ function webpackJsonpCallback(data) {
  4. /******/ var chunkIds = data[0];
  5. /******/ var moreModules = data[1];
  6. /******/ var executeModules = data[2];
  7. /******/
  8. /******/ // add "moreModules" to the modules object,
  9. /******/ // then flag all "chunkIds" as loaded and fire callback
  10. /******/ var moduleId, chunkId, i = 0, resolves = [];
  11. /******/ for(;i < chunkIds.length; i++) {
  12. /******/ chunkId = chunkIds[i];
  13. /******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {
  14. /******/ resolves.push(installedChunks[chunkId][0]);
  15. /******/ }
  16. /******/ installedChunks[chunkId] = 0;
  17. /******/ }
  18. /******/ for(moduleId in moreModules) {
  19. /******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
  20. /******/ modules[moduleId] = moreModules[moduleId];
  21. /******/ }
  22. /******/ }
  23. /******/ if(parentJsonpFunction) parentJsonpFunction(data);
  24. /******/
  25. /******/ while(resolves.length) {
  26. /******/ resolves.shift()();
  27. /******/ }
  28. /******/
  29. /******/ // add entry modules from loaded chunk to deferred list
  30. /******/ deferredModules.push.apply(deferredModules, executeModules || []);
  31. /******/
  32. /******/ // run deferred modules when all chunks ready
  33. /******/ return checkDeferredModules();
  34. /******/ };
  35. /******/ function checkDeferredModules() {
  36. /******/ var result;
  37. /******/ for(var i = 0; i < deferredModules.length; i++) {
  38. /******/ var deferredModule = deferredModules[i];
  39. /******/ var fulfilled = true;
  40. /******/ for(var j = 1; j < deferredModule.length; j++) {
  41. /******/ var depId = deferredModule[j];
  42. /******/ if(installedChunks[depId] !== 0) fulfilled = false;
  43. /******/ }
  44. /******/ if(fulfilled) {
  45. /******/ deferredModules.splice(i--, 1);
  46. /******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]);
  47. /******/ }
  48. /******/ }
  49. /******/
  50. /******/ return result;
  51. /******/ }
  52. /******/
  53. /******/ // The module cache
  54. /******/ var installedModules = {};
  55. /******/
  56. /******/ // object to store loaded and loading chunks
  57. /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
  58. /******/ // Promise = chunk loading, 0 = chunk loaded
  59. /******/ var installedChunks = {
  60. /******/ "js/nologin": 0
  61. /******/ };
  62. /******/
  63. /******/ var deferredModules = [];
  64. /******/
  65. /******/ // The require function
  66. /******/ function __webpack_require__(moduleId) {
  67. /******/
  68. /******/ // Check if module is in cache
  69. /******/ if(installedModules[moduleId]) {
  70. /******/ return installedModules[moduleId].exports;
  71. /******/ }
  72. /******/ // Create a new module (and put it into the cache)
  73. /******/ var module = installedModules[moduleId] = {
  74. /******/ i: moduleId,
  75. /******/ l: false,
  76. /******/ exports: {}
  77. /******/ };
  78. /******/
  79. /******/ // Execute the module function
  80. /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  81. /******/
  82. /******/ // Flag the module as loaded
  83. /******/ module.l = true;
  84. /******/
  85. /******/ // Return the exports of the module
  86. /******/ return module.exports;
  87. /******/ }
  88. /******/
  89. /******/
  90. /******/ // expose the modules object (__webpack_modules__)
  91. /******/ __webpack_require__.m = modules;
  92. /******/
  93. /******/ // expose the module cache
  94. /******/ __webpack_require__.c = installedModules;
  95. /******/
  96. /******/ // define getter function for harmony exports
  97. /******/ __webpack_require__.d = function(exports, name, getter) {
  98. /******/ if(!__webpack_require__.o(exports, name)) {
  99. /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
  100. /******/ }
  101. /******/ };
  102. /******/
  103. /******/ // define __esModule on exports
  104. /******/ __webpack_require__.r = function(exports) {
  105. /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  106. /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  107. /******/ }
  108. /******/ Object.defineProperty(exports, '__esModule', { value: true });
  109. /******/ };
  110. /******/
  111. /******/ // create a fake namespace object
  112. /******/ // mode & 1: value is a module id, require it
  113. /******/ // mode & 2: merge all properties of value into the ns
  114. /******/ // mode & 4: return value when already ns object
  115. /******/ // mode & 8|1: behave like require
  116. /******/ __webpack_require__.t = function(value, mode) {
  117. /******/ if(mode & 1) value = __webpack_require__(value);
  118. /******/ if(mode & 8) return value;
  119. /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
  120. /******/ var ns = Object.create(null);
  121. /******/ __webpack_require__.r(ns);
  122. /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
  123. /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
  124. /******/ return ns;
  125. /******/ };
  126. /******/
  127. /******/ // getDefaultExport function for compatibility with non-harmony modules
  128. /******/ __webpack_require__.n = function(module) {
  129. /******/ var getter = module && module.__esModule ?
  130. /******/ function getDefault() { return module['default']; } :
  131. /******/ function getModuleExports() { return module; };
  132. /******/ __webpack_require__.d(getter, 'a', getter);
  133. /******/ return getter;
  134. /******/ };
  135. /******/
  136. /******/ // Object.prototype.hasOwnProperty.call
  137. /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  138. /******/
  139. /******/ // __webpack_public_path__
  140. /******/ __webpack_require__.p = "/";
  141. /******/
  142. /******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || [];
  143. /******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
  144. /******/ jsonpArray.push = webpackJsonpCallback;
  145. /******/ jsonpArray = jsonpArray.slice();
  146. /******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
  147. /******/ var parentJsonpFunction = oldJsonpFunction;
  148. /******/
  149. /******/
  150. /******/ // add entry module to deferred list
  151. /******/ deferredModules.push(["./src/client/js/nologin.jsx","js/commons","js/vendors"]);
  152. /******/ // run deferred modules when ready
  153. /******/ return checkDeferredModules();
  154. /******/ })
  155. /************************************************************************/
  156. /******/ ({
  157. /***/ "./config sync recursive ^\\.\\/env\\..*$":
  158. /*!***********************************!*\
  159. !*** ./config sync ^\.\/env\..*$ ***!
  160. \***********************************/
  161. /*! no static exports found */
  162. /***/ (function(module, exports, __webpack_require__) {
  163. eval("var map = {\n\t\"./env.dev\": \"./config/env.dev.js\",\n\t\"./env.dev.js\": \"./config/env.dev.js\",\n\t\"./env.prod\": \"./config/env.prod.js\",\n\t\"./env.prod.js\": \"./config/env.prod.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./config sync recursive ^\\\\.\\\\/env\\\\..*$\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb25maWcgc3luYyByZWN1cnNpdmUgXlxcLlxcL2VudlxcLi4qJC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2NvbmZpZyBzeW5jIF5cXC5cXC9lbnZcXC4uKiQ/MjA4YiJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgbWFwID0ge1xuXHRcIi4vZW52LmRldlwiOiBcIi4vY29uZmlnL2Vudi5kZXYuanNcIixcblx0XCIuL2Vudi5kZXYuanNcIjogXCIuL2NvbmZpZy9lbnYuZGV2LmpzXCIsXG5cdFwiLi9lbnYucHJvZFwiOiBcIi4vY29uZmlnL2Vudi5wcm9kLmpzXCIsXG5cdFwiLi9lbnYucHJvZC5qc1wiOiBcIi4vY29uZmlnL2Vudi5wcm9kLmpzXCJcbn07XG5cblxuZnVuY3Rpb24gd2VicGFja0NvbnRleHQocmVxKSB7XG5cdHZhciBpZCA9IHdlYnBhY2tDb250ZXh0UmVzb2x2ZShyZXEpO1xuXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhpZCk7XG59XG5mdW5jdGlvbiB3ZWJwYWNrQ29udGV4dFJlc29sdmUocmVxKSB7XG5cdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8obWFwLCByZXEpKSB7XG5cdFx0dmFyIGUgPSBuZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiICsgcmVxICsgXCInXCIpO1xuXHRcdGUuY29kZSA9ICdNT0RVTEVfTk9UX0ZPVU5EJztcblx0XHR0aHJvdyBlO1xuXHR9XG5cdHJldHVybiBtYXBbcmVxXTtcbn1cbndlYnBhY2tDb250ZXh0LmtleXMgPSBmdW5jdGlvbiB3ZWJwYWNrQ29udGV4dEtleXMoKSB7XG5cdHJldHVybiBPYmplY3Qua2V5cyhtYXApO1xufTtcbndlYnBhY2tDb250ZXh0LnJlc29sdmUgPSB3ZWJwYWNrQ29udGV4dFJlc29sdmU7XG5tb2R1bGUuZXhwb3J0cyA9IHdlYnBhY2tDb250ZXh0O1xud2VicGFja0NvbnRleHQuaWQgPSBcIi4vY29uZmlnIHN5bmMgcmVjdXJzaXZlIF5cXFxcLlxcXFwvZW52XFxcXC4uKiRcIjsiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./config sync recursive ^\\.\\/env\\..*$\n");
  164. /***/ }),
  165. /***/ "./config/env.dev.js":
  166. /*!***************************!*\
  167. !*** ./config/env.dev.js ***!
  168. \***************************/
  169. /*! no static exports found */
  170. /***/ (function(module, exports) {
  171. eval("module.exports = {\n NODE_ENV: 'development',\n FILE_UPLOAD: 'mongodb',\n // MONGO_GRIDFS_TOTAL_LIMIT: 10485760, // 10MB\n MATHJAX: 1,\n // NO_CDN: true,\n MONGO_URI: 'mongodb://mongo:27017/growi',\n // REDIS_URI: 'http://redis:6379',\n // NCHAN_URI: 'http://nchan',\n ELASTICSEARCH_URI: 'http://elasticsearch:9200/growi',\n HACKMD_URI: 'http://localhost:3010',\n HACKMD_URI_FOR_SERVER: 'http://hackmd:3000',\n // DRAWIO_URI: 'http://localhost:8080/?offline=1&https=0',\n // S2SMSG_PUBSUB_SERVER_TYPE: 'nchan',\n // PUBLISH_OPEN_API: true,\n // USER_UPPER_LIMIT: 0,\n // DEV_HTTPS: true,\n // FORCE_WIKI_MODE: 'private', // 'public', 'private', undefined\n // PROMSTER_ENABLED: true,\n // SLACK_SIGNING_SECRET: '',\n // SLACK_BOT_TOKEN: '',\n SALT_FOR_GTOP_TOKEN: 'proxy',\n SALT_FOR_PTOG_TOKEN: 'growi' // GROWI_CLOUD_URI: 'http://growi.cloud',\n // GROWI_APP_ID_FOR_GROWI_CLOUD: '012345',\n\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb25maWcvZW52LmRldi5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2NvbmZpZy9lbnYuZGV2LmpzPzQ3MTEiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSB7XG4gIE5PREVfRU5WOiAnZGV2ZWxvcG1lbnQnLFxuICBGSUxFX1VQTE9BRDogJ21vbmdvZGInLFxuICAvLyBNT05HT19HUklERlNfVE9UQUxfTElNSVQ6IDEwNDg1NzYwLCAgIC8vIDEwTUJcbiAgTUFUSEpBWDogMSxcbiAgLy8gTk9fQ0ROOiB0cnVlLFxuICBNT05HT19VUkk6ICdtb25nb2RiOi8vbW9uZ286MjcwMTcvZ3Jvd2knLFxuICAvLyBSRURJU19VUkk6ICdodHRwOi8vcmVkaXM6NjM3OScsXG4gIC8vIE5DSEFOX1VSSTogJ2h0dHA6Ly9uY2hhbicsXG4gIEVMQVNUSUNTRUFSQ0hfVVJJOiAnaHR0cDovL2VsYXN0aWNzZWFyY2g6OTIwMC9ncm93aScsXG4gIEhBQ0tNRF9VUkk6ICdodHRwOi8vbG9jYWxob3N0OjMwMTAnLFxuICBIQUNLTURfVVJJX0ZPUl9TRVJWRVI6ICdodHRwOi8vaGFja21kOjMwMDAnLFxuICAvLyBEUkFXSU9fVVJJOiAnaHR0cDovL2xvY2FsaG9zdDo4MDgwLz9vZmZsaW5lPTEmaHR0cHM9MCcsXG4gIC8vIFMyU01TR19QVUJTVUJfU0VSVkVSX1RZUEU6ICduY2hhbicsXG4gIC8vIFBVQkxJU0hfT1BFTl9BUEk6IHRydWUsXG4gIC8vIFVTRVJfVVBQRVJfTElNSVQ6IDAsXG4gIC8vIERFVl9IVFRQUzogdHJ1ZSxcbiAgLy8gRk9SQ0VfV0lLSV9NT0RFOiAncHJpdmF0ZScsIC8vICdwdWJsaWMnLCAncHJpdmF0ZScsIHVuZGVmaW5lZFxuICAvLyBQUk9NU1RFUl9FTkFCTEVEOiB0cnVlLFxuICAvLyBTTEFDS19TSUdOSU5HX1NFQ1JFVDogJycsXG4gIC8vIFNMQUNLX0JPVF9UT0tFTjogJycsXG4gIFNBTFRfRk9SX0dUT1BfVE9LRU46ICdwcm94eScsXG4gIFNBTFRfRk9SX1BUT0dfVE9LRU46ICdncm93aScsXG4gIC8vIEdST1dJX0NMT1VEX1VSSTogJ2h0dHA6Ly9ncm93aS5jbG91ZCcsXG4gIC8vIEdST1dJX0FQUF9JRF9GT1JfR1JPV0lfQ0xPVUQ6ICcwMTIzNDUnLFxufTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUF6QkEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./config/env.dev.js\n");
  172. /***/ }),
  173. /***/ "./config/env.prod.js":
  174. /*!****************************!*\
  175. !*** ./config/env.prod.js ***!
  176. \****************************/
  177. /*! no static exports found */
  178. /***/ (function(module, exports) {
  179. eval("module.exports = {\n NODE_ENV: 'production' // FORMAT_NODE_LOG: false, // default: true\n\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb25maWcvZW52LnByb2QuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jb25maWcvZW52LnByb2QuanM/MTFhYyJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgTk9ERV9FTlY6ICdwcm9kdWN0aW9uJyxcbiAgLy8gRk9STUFUX05PREVfTE9HOiBmYWxzZSwgLy8gZGVmYXVsdDogdHJ1ZVxufTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBRkEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./config/env.prod.js\n");
  180. /***/ }),
  181. /***/ "./config/index.js":
  182. /*!*************************!*\
  183. !*** ./config/index.js ***!
  184. \*************************/
  185. /*! no static exports found */
  186. /***/ (function(module, exports, __webpack_require__) {
  187. eval("function envShortName() {\n switch (\"development\") {\n case 'production':\n return 'prod';\n\n default:\n return 'dev';\n }\n}\n\nmodule.exports = {\n env: __webpack_require__(\"./config sync recursive ^\\\\.\\\\/env\\\\..*$\")(`./env.${envShortName()}`),\n logger: __webpack_require__(\"./config/logger sync recursive ^\\\\.\\\\/config\\\\..*$\")(`./config.${envShortName()}`)\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb25maWcvaW5kZXguanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jb25maWcvaW5kZXguanM/YWNlNyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBlbnZTaG9ydE5hbWUoKSB7XG4gIHN3aXRjaCAocHJvY2Vzcy5lbnYuTk9ERV9FTlYpIHtcbiAgICBjYXNlICdwcm9kdWN0aW9uJzpcbiAgICAgIHJldHVybiAncHJvZCc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiAnZGV2JztcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgZW52OiByZXF1aXJlKGAuL2Vudi4ke2VudlNob3J0TmFtZSgpfWApLFxuICBsb2dnZXI6IHJlcXVpcmUoYC4vbG9nZ2VyL2NvbmZpZy4ke2VudlNob3J0TmFtZSgpfWApLFxufTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFKQTtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFGQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./config/index.js\n");
  188. /***/ }),
  189. /***/ "./config/logger sync recursive ^\\.\\/config\\..*$":
  190. /*!*********************************************!*\
  191. !*** ./config/logger sync ^\.\/config\..*$ ***!
  192. \*********************************************/
  193. /*! no static exports found */
  194. /***/ (function(module, exports, __webpack_require__) {
  195. eval("var map = {\n\t\"./config.dev\": \"./config/logger/config.dev.js\",\n\t\"./config.dev.js\": \"./config/logger/config.dev.js\",\n\t\"./config.prod\": \"./config/logger/config.prod.js\",\n\t\"./config.prod.js\": \"./config/logger/config.prod.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./config/logger sync recursive ^\\\\.\\\\/config\\\\..*$\";//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb25maWcvbG9nZ2VyIHN5bmMgcmVjdXJzaXZlIF5cXC5cXC9jb25maWdcXC4uKiQuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jb25maWcvbG9nZ2VyIHN5bmMgXlxcLlxcL2NvbmZpZ1xcLi4qJD9mMmY3Il0sInNvdXJjZXNDb250ZW50IjpbInZhciBtYXAgPSB7XG5cdFwiLi9jb25maWcuZGV2XCI6IFwiLi9jb25maWcvbG9nZ2VyL2NvbmZpZy5kZXYuanNcIixcblx0XCIuL2NvbmZpZy5kZXYuanNcIjogXCIuL2NvbmZpZy9sb2dnZXIvY29uZmlnLmRldi5qc1wiLFxuXHRcIi4vY29uZmlnLnByb2RcIjogXCIuL2NvbmZpZy9sb2dnZXIvY29uZmlnLnByb2QuanNcIixcblx0XCIuL2NvbmZpZy5wcm9kLmpzXCI6IFwiLi9jb25maWcvbG9nZ2VyL2NvbmZpZy5wcm9kLmpzXCJcbn07XG5cblxuZnVuY3Rpb24gd2VicGFja0NvbnRleHQocmVxKSB7XG5cdHZhciBpZCA9IHdlYnBhY2tDb250ZXh0UmVzb2x2ZShyZXEpO1xuXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyhpZCk7XG59XG5mdW5jdGlvbiB3ZWJwYWNrQ29udGV4dFJlc29sdmUocmVxKSB7XG5cdGlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8obWFwLCByZXEpKSB7XG5cdFx0dmFyIGUgPSBuZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiICsgcmVxICsgXCInXCIpO1xuXHRcdGUuY29kZSA9ICdNT0RVTEVfTk9UX0ZPVU5EJztcblx0XHR0aHJvdyBlO1xuXHR9XG5cdHJldHVybiBtYXBbcmVxXTtcbn1cbndlYnBhY2tDb250ZXh0LmtleXMgPSBmdW5jdGlvbiB3ZWJwYWNrQ29udGV4dEtleXMoKSB7XG5cdHJldHVybiBPYmplY3Qua2V5cyhtYXApO1xufTtcbndlYnBhY2tDb250ZXh0LnJlc29sdmUgPSB3ZWJwYWNrQ29udGV4dFJlc29sdmU7XG5tb2R1bGUuZXhwb3J0cyA9IHdlYnBhY2tDb250ZXh0O1xud2VicGFja0NvbnRleHQuaWQgPSBcIi4vY29uZmlnL2xvZ2dlciBzeW5jIHJlY3Vyc2l2ZSBeXFxcXC5cXFxcL2NvbmZpZ1xcXFwuLiokXCI7Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./config/logger sync recursive ^\\.\\/config\\..*$\n");
  196. /***/ }),
  197. /***/ "./config/logger/config.dev.js":
  198. /*!*************************************!*\
  199. !*** ./config/logger/config.dev.js ***!
  200. \*************************************/
  201. /*! no static exports found */
  202. /***/ (function(module, exports) {
  203. eval("module.exports = {\n default: 'info',\n // 'express-session': 'debug',\n\n /*\n * configure level for server\n */\n // 'express:*': 'debug',\n // 'growi:*': 'debug',\n 'growi:crowi': 'debug',\n // 'growi:crow:dev': 'debug',\n 'growi:crowi:express-init': 'debug',\n 'growi:models:external-account': 'debug',\n // 'growi:routes:login': 'debug',\n 'growi:routes:login-passport': 'debug',\n 'growi:middleware:safe-redirect': 'debug',\n 'growi:service:PassportService': 'debug',\n 'growi:service:s2s-messaging:*': 'debug',\n // 'growi:service:socket-io': 'debug',\n // 'growi:service:ConfigManager': 'debug',\n // 'growi:service:mail': 'debug',\n 'growi:lib:search': 'debug',\n // 'growi:service:GlobalNotification': 'debug',\n // 'growi:lib:importer': 'debug',\n // 'growi:routes:page': 'debug',\n 'growi-plugin:*': 'debug',\n // 'growi:InterceptorManager': 'debug',\n\n /*\n * configure level for client\n */\n 'growi:cli:bootstrap': 'debug',\n 'growi:cli:app': 'debug',\n 'growi:services:*': 'debug' // 'growi:StaffCredit': 'debug',\n // 'growi:cli:StickyStretchableScroller': 'debug',\n\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb25maWcvbG9nZ2VyL2NvbmZpZy5kZXYuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9jb25maWcvbG9nZ2VyL2NvbmZpZy5kZXYuanM/NTYzZiJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IHtcbiAgZGVmYXVsdDogJ2luZm8nLFxuXG4gIC8vICdleHByZXNzLXNlc3Npb24nOiAnZGVidWcnLFxuXG4gIC8qXG4gICAqIGNvbmZpZ3VyZSBsZXZlbCBmb3Igc2VydmVyXG4gICAqL1xuICAvLyAnZXhwcmVzczoqJzogJ2RlYnVnJyxcbiAgLy8gJ2dyb3dpOionOiAnZGVidWcnLFxuICAnZ3Jvd2k6Y3Jvd2knOiAnZGVidWcnLFxuICAvLyAnZ3Jvd2k6Y3JvdzpkZXYnOiAnZGVidWcnLFxuICAnZ3Jvd2k6Y3Jvd2k6ZXhwcmVzcy1pbml0JzogJ2RlYnVnJyxcbiAgJ2dyb3dpOm1vZGVsczpleHRlcm5hbC1hY2NvdW50JzogJ2RlYnVnJyxcbiAgLy8gJ2dyb3dpOnJvdXRlczpsb2dpbic6ICdkZWJ1ZycsXG4gICdncm93aTpyb3V0ZXM6bG9naW4tcGFzc3BvcnQnOiAnZGVidWcnLFxuICAnZ3Jvd2k6bWlkZGxld2FyZTpzYWZlLXJlZGlyZWN0JzogJ2RlYnVnJyxcbiAgJ2dyb3dpOnNlcnZpY2U6UGFzc3BvcnRTZXJ2aWNlJzogJ2RlYnVnJyxcbiAgJ2dyb3dpOnNlcnZpY2U6czJzLW1lc3NhZ2luZzoqJzogJ2RlYnVnJyxcbiAgLy8gJ2dyb3dpOnNlcnZpY2U6c29ja2V0LWlvJzogJ2RlYnVnJyxcbiAgLy8gJ2dyb3dpOnNlcnZpY2U6Q29uZmlnTWFuYWdlcic6ICdkZWJ1ZycsXG4gIC8vICdncm93aTpzZXJ2aWNlOm1haWwnOiAnZGVidWcnLFxuICAnZ3Jvd2k6bGliOnNlYXJjaCc6ICdkZWJ1ZycsXG4gIC8vICdncm93aTpzZXJ2aWNlOkdsb2JhbE5vdGlmaWNhdGlvbic6ICdkZWJ1ZycsXG4gIC8vICdncm93aTpsaWI6aW1wb3J0ZXInOiAnZGVidWcnLFxuICAvLyAnZ3Jvd2k6cm91dGVzOnBhZ2UnOiAnZGVidWcnLFxuICAnZ3Jvd2ktcGx1Z2luOionOiAnZGVidWcnLFxuICAvLyAnZ3Jvd2k6SW50ZXJjZXB0b3JNYW5hZ2VyJzogJ2RlYnVnJyxcblxuICAvKlxuICAgKiBjb25maWd1cmUgbGV2ZWwgZm9yIGNsaWVudFxuICAgKi9cbiAgJ2dyb3dpOmNsaTpib290c3RyYXAnOiAnZGVidWcnLFxuICAnZ3Jvd2k6Y2xpOmFwcCc6ICdkZWJ1ZycsXG4gICdncm93aTpzZXJ2aWNlczoqJzogJ2RlYnVnJyxcbiAgLy8gJ2dyb3dpOlN0YWZmQ3JlZGl0JzogJ2RlYnVnJyxcbiAgLy8gJ2dyb3dpOmNsaTpTdGlja3lTdHJldGNoYWJsZVNjcm9sbGVyJzogJ2RlYnVnJyxcblxufTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFyQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./config/logger/config.dev.js\n");
  204. /***/ }),
  205. /***/ "./config/logger/config.prod.js":
  206. /*!**************************************!*\
  207. !*** ./config/logger/config.prod.js ***!
  208. \**************************************/
  209. /*! no static exports found */
  210. /***/ (function(module, exports) {
  211. eval("module.exports = {\n default: 'info',\n 'growi:routes:login-passport': 'debug',\n 'growi:service:PassportService': 'debug'\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9jb25maWcvbG9nZ2VyL2NvbmZpZy5wcm9kLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vY29uZmlnL2xvZ2dlci9jb25maWcucHJvZC5qcz84MzJlIl0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0ge1xuICBkZWZhdWx0OiAnaW5mbycsXG5cbiAgJ2dyb3dpOnJvdXRlczpsb2dpbi1wYXNzcG9ydCc6ICdkZWJ1ZycsXG4gICdncm93aTpzZXJ2aWNlOlBhc3Nwb3J0U2VydmljZSc6ICdkZWJ1ZycsXG59O1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBRUE7QUFDQTtBQUpBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./config/logger/config.prod.js\n");
  212. /***/ }),
  213. /***/ "./src/client/js/components/InstallerForm.jsx":
  214. /*!****************************************************!*\
  215. !*** ./src/client/js/components/InstallerForm.jsx ***!
  216. \****************************************************/
  217. /*! exports provided: default */
  218. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  219. "use strict";
  220. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! i18next */ \"./node_modules/i18next/dist/esm/i18next.js\");\n/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-i18next */ \"./node_modules/react-i18next/dist/es/index.js\");\n/* harmony import */ var _util_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/i18n */ \"./src/client/js/util/i18n.js\");\n\n\n\n\n\n\nclass InstallerForm extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n constructor(props) {\n super(props);\n this.state = {\n isValidUserName: true,\n isSubmittingDisabled: false,\n selectedLang: {}\n }; // this.checkUserName = this.checkUserName.bind(this);\n\n this.submitHandler = this.submitHandler.bind(this);\n }\n\n componentWillMount() {\n const meta = _util_i18n__WEBPACK_IMPORTED_MODULE_4__[\"localeMetadatas\"].find(v => v.id === i18next__WEBPACK_IMPORTED_MODULE_2__[\"default\"].language);\n\n if (meta == null) {\n return this.setState({\n selectedLang: _util_i18n__WEBPACK_IMPORTED_MODULE_4__[\"localeMetadatas\"][0]\n });\n }\n\n this.setState({\n selectedLang: meta\n });\n } // checkUserName(event) {\n // const axios = require('axios').create({\n // headers: {\n // 'Content-Type': 'application/json',\n // 'X-Requested-With': 'XMLHttpRequest',\n // },\n // responseType: 'json',\n // });\n // axios.get('/_api/check_username', { params: { username: event.target.value } })\n // .then((res) => { return this.setState({ isValidUserName: res.data.valid }) });\n // }\n\n\n changeLanguage(meta) {\n i18next__WEBPACK_IMPORTED_MODULE_2__[\"default\"].changeLanguage(meta.id);\n this.setState({\n selectedLang: meta\n });\n }\n\n submitHandler() {\n if (this.state.isSubmittingDisabled) {\n return;\n }\n\n this.setState({\n isSubmittingDisabled: true\n });\n setTimeout(() => {\n this.setState({\n isSubmittingDisabled: false\n });\n }, 3000);\n document['register-form'].submit();\n }\n\n render() {\n const hasErrorClass = this.state.isValidUserName ? '' : ' has-error';\n const unavailableUserId = this.state.isValidUserName ? '' : react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-fw icon-ban\"\n }), this.props.t('installer.unavaliable_user_id'));\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: `login-dialog p-3 mx-auto${hasErrorClass}`\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"row\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"col-md-12\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"p\", {\n className: \"alert alert-success\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"strong\", null, this.props.t('installer.create_initial_account')), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"br\", null), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"small\", null, this.props.t('installer.initial_account_will_be_administrator_automatically'))))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"row\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"form\", {\n role: \"form\",\n action: \"/installer\",\n method: \"post\",\n id: \"register-form\",\n className: \"col-md-12\",\n onSubmit: this.submitHandler\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"dropdown mb-3\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"d-flex dropdown-with-icon\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-bubbles border-0 rounded-0\"\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-secondary dropdown-toggle text-right w-100 border-0 shadow-none\",\n id: \"dropdownLanguage\",\n \"data-toggle\": \"dropdown\",\n \"aria-haspopup\": \"true\",\n \"aria-expanded\": \"true\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"float-left\"\n }, this.state.selectedLang.displayName)), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n type: \"hidden\",\n value: this.state.selectedLang.id,\n name: \"registerForm[app:globalLang]\"\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"dropdown-menu\",\n \"aria-labelledby\": \"dropdownLanguage\"\n }, _util_i18n__WEBPACK_IMPORTED_MODULE_4__[\"localeMetadatas\"].map(meta => react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n key: meta.id,\n className: \"dropdown-item\",\n type: \"button\",\n onClick: () => {\n this.changeLanguage(meta);\n }\n }, meta.displayName))))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: `input-group mb-3${hasErrorClass}`\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group-prepend\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"input-group-text\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-user\"\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n type: \"text\",\n className: \"form-control\",\n placeholder: this.props.t('User ID'),\n name: \"registerForm[username]\",\n defaultValue: this.props.userName // onBlur={this.checkUserName} // need not to check username before installation -- 2020.07.24 Yuki Takei\n ,\n required: true\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"p\", {\n className: \"form-text\"\n }, unavailableUserId), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group mb-3\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group-prepend\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"input-group-text\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-tag\"\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n type: \"text\",\n className: \"form-control\",\n placeholder: this.props.t('Name'),\n name: \"registerForm[name]\",\n defaultValue: this.props.name,\n required: true\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group mb-3\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group-prepend\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"input-group-text\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-envelope\"\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n type: \"email\",\n className: \"form-control\",\n placeholder: this.props.t('Email'),\n name: \"registerForm[email]\",\n defaultValue: this.props.email,\n required: true\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group mb-3\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group-prepend\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"input-group-text\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-lock\"\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n type: \"password\",\n className: \"form-control\",\n placeholder: this.props.t('Password'),\n name: \"registerForm[password]\",\n required: true\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n type: \"hidden\",\n name: \"_csrf\",\n value: this.props.csrf\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group mt-4 mb-3 d-flex justify-content-center\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n type: \"submit\",\n className: \"btn-fill btn btn-register\",\n id: \"register\",\n disabled: this.state.isSubmittingDisabled\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"eff\"\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"btn-label\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-user-follow\"\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"btn-label-text\"\n }, this.props.t('Create')))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group mt-4 d-flex justify-content-center\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n href: \"https://growi.org\",\n className: \"link-growi-org\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"growi\"\n }, \"GROWI\"), \".\", react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"org\"\n }, \"ORG\"))))));\n }\n\n}\n\nInstallerForm.propTypes = {\n // i18next\n t: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n // for input value\n userName: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n name: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n email: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n csrf: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(react_i18next__WEBPACK_IMPORTED_MODULE_3__[\"withTranslation\"])()(InstallerForm));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvSW5zdGFsbGVyRm9ybS5qc3guanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvSW5zdGFsbGVyRm9ybS5qc3g/NDNlNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IGkxOG5leHQgZnJvbSAnaTE4bmV4dCc7XG5pbXBvcnQgeyB3aXRoVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0JztcblxuaW1wb3J0IHsgbG9jYWxlTWV0YWRhdGFzIH0gZnJvbSAnLi4vdXRpbC9pMThuJztcblxuY2xhc3MgSW5zdGFsbGVyRm9ybSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgaXNWYWxpZFVzZXJOYW1lOiB0cnVlLFxuICAgICAgaXNTdWJtaXR0aW5nRGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgc2VsZWN0ZWRMYW5nOiB7fSxcbiAgICB9O1xuICAgIC8vIHRoaXMuY2hlY2tVc2VyTmFtZSA9IHRoaXMuY2hlY2tVc2VyTmFtZS5iaW5kKHRoaXMpO1xuXG4gICAgdGhpcy5zdWJtaXRIYW5kbGVyID0gdGhpcy5zdWJtaXRIYW5kbGVyLmJpbmQodGhpcyk7XG4gIH1cblxuICBjb21wb25lbnRXaWxsTW91bnQoKSB7XG4gICAgY29uc3QgbWV0YSA9IGxvY2FsZU1ldGFkYXRhcy5maW5kKHYgPT4gdi5pZCA9PT0gaTE4bmV4dC5sYW5ndWFnZSk7XG4gICAgaWYgKG1ldGEgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2V0U3RhdGUoeyBzZWxlY3RlZExhbmc6IGxvY2FsZU1ldGFkYXRhc1swXSB9KTtcbiAgICB9XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHNlbGVjdGVkTGFuZzogbWV0YSB9KTtcbiAgfVxuXG4gIC8vIGNoZWNrVXNlck5hbWUoZXZlbnQpIHtcbiAgLy8gICBjb25zdCBheGlvcyA9IHJlcXVpcmUoJ2F4aW9zJykuY3JlYXRlKHtcbiAgLy8gICAgIGhlYWRlcnM6IHtcbiAgLy8gICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgLy8gICAgICAgJ1gtUmVxdWVzdGVkLVdpdGgnOiAnWE1MSHR0cFJlcXVlc3QnLFxuICAvLyAgICAgfSxcbiAgLy8gICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxuICAvLyAgIH0pO1xuICAvLyAgIGF4aW9zLmdldCgnL19hcGkvY2hlY2tfdXNlcm5hbWUnLCB7IHBhcmFtczogeyB1c2VybmFtZTogZXZlbnQudGFyZ2V0LnZhbHVlIH0gfSlcbiAgLy8gICAgIC50aGVuKChyZXMpID0+IHsgcmV0dXJuIHRoaXMuc2V0U3RhdGUoeyBpc1ZhbGlkVXNlck5hbWU6IHJlcy5kYXRhLnZhbGlkIH0pIH0pO1xuICAvLyB9XG5cbiAgY2hhbmdlTGFuZ3VhZ2UobWV0YSkge1xuICAgIGkxOG5leHQuY2hhbmdlTGFuZ3VhZ2UobWV0YS5pZCk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IHNlbGVjdGVkTGFuZzogbWV0YSB9KTtcbiAgfVxuXG4gIHN1Ym1pdEhhbmRsZXIoKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUuaXNTdWJtaXR0aW5nRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0YXRlKHsgaXNTdWJtaXR0aW5nRGlzYWJsZWQ6IHRydWUgfSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgaXNTdWJtaXR0aW5nRGlzYWJsZWQ6IGZhbHNlIH0pO1xuICAgIH0sIDMwMDApO1xuXG4gICAgZG9jdW1lbnRbJ3JlZ2lzdGVyLWZvcm0nXS5zdWJtaXQoKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBoYXNFcnJvckNsYXNzID0gdGhpcy5zdGF0ZS5pc1ZhbGlkVXNlck5hbWUgPyAnJyA6ICcgaGFzLWVycm9yJztcbiAgICBjb25zdCB1bmF2YWlsYWJsZVVzZXJJZCA9IHRoaXMuc3RhdGUuaXNWYWxpZFVzZXJOYW1lXG4gICAgICA/ICcnXG4gICAgICA6IDxzcGFuPjxpIGNsYXNzTmFtZT1cImljb24tZncgaWNvbi1iYW5cIiAvPnsgdGhpcy5wcm9wcy50KCdpbnN0YWxsZXIudW5hdmFsaWFibGVfdXNlcl9pZCcpIH08L3NwYW4+O1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgbG9naW4tZGlhbG9nIHAtMyBteC1hdXRvJHtoYXNFcnJvckNsYXNzfWB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJhbGVydCBhbGVydC1zdWNjZXNzXCI+XG4gICAgICAgICAgICAgIDxzdHJvbmc+eyB0aGlzLnByb3BzLnQoJ2luc3RhbGxlci5jcmVhdGVfaW5pdGlhbF9hY2NvdW50JykgfTwvc3Ryb25nPjxiciAvPlxuICAgICAgICAgICAgICA8c21hbGw+eyB0aGlzLnByb3BzLnQoJ2luc3RhbGxlci5pbml0aWFsX2FjY291bnRfd2lsbF9iZV9hZG1pbmlzdHJhdG9yX2F1dG9tYXRpY2FsbHknKSB9PC9zbWFsbD5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgPGZvcm0gcm9sZT1cImZvcm1cIiBhY3Rpb249XCIvaW5zdGFsbGVyXCIgbWV0aG9kPVwicG9zdFwiIGlkPVwicmVnaXN0ZXItZm9ybVwiIGNsYXNzTmFtZT1cImNvbC1tZC0xMlwiIG9uU3VibWl0PXt0aGlzLnN1Ym1pdEhhbmRsZXJ9PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkcm9wZG93biBtYi0zXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZC1mbGV4IGRyb3Bkb3duLXdpdGgtaWNvblwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImljb24tYnViYmxlcyBib3JkZXItMCByb3VuZGVkLTBcIiAvPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnRuIGJ0bi1zZWNvbmRhcnkgZHJvcGRvd24tdG9nZ2xlIHRleHQtcmlnaHQgdy0xMDAgYm9yZGVyLTAgc2hhZG93LW5vbmVcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJkcm9wZG93bkxhbmd1YWdlXCJcbiAgICAgICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIlxuICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD1cInRydWVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZsb2F0LWxlZnRcIj5cbiAgICAgICAgICAgICAgICAgICAge3RoaXMuc3RhdGUuc2VsZWN0ZWRMYW5nLmRpc3BsYXlOYW1lfVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5zZWxlY3RlZExhbmcuaWR9XG4gICAgICAgICAgICAgICAgICBuYW1lPVwicmVnaXN0ZXJGb3JtW2FwcDpnbG9iYWxMYW5nXVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRyb3Bkb3duLW1lbnVcIiBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93bkxhbmd1YWdlXCI+XG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBsb2NhbGVNZXRhZGF0YXMubWFwKG1ldGEgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGtleT17bWV0YS5pZH0gY2xhc3NOYW1lPVwiZHJvcGRvd24taXRlbVwiIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXsoKSA9PiB7IHRoaXMuY2hhbmdlTGFuZ3VhZ2UobWV0YSkgfX0+XG4gICAgICAgICAgICAgICAgICAgICAge21ldGEuZGlzcGxheU5hbWV9XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgaW5wdXQtZ3JvdXAgbWItMyR7aGFzRXJyb3JDbGFzc31gfT5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbnB1dC1ncm91cC1wcmVwZW5kXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaW5wdXQtZ3JvdXAtdGV4dFwiPjxpIGNsYXNzTmFtZT1cImljb24tdXNlclwiIC8+PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3RoaXMucHJvcHMudCgnVXNlciBJRCcpfVxuICAgICAgICAgICAgICAgIG5hbWU9XCJyZWdpc3RlckZvcm1bdXNlcm5hbWVdXCJcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e3RoaXMucHJvcHMudXNlck5hbWV9XG4gICAgICAgICAgICAgICAgLy8gb25CbHVyPXt0aGlzLmNoZWNrVXNlck5hbWV9IC8vIG5lZWQgbm90IHRvIGNoZWNrIHVzZXJuYW1lIGJlZm9yZSBpbnN0YWxsYXRpb24gLS0gMjAyMC4wNy4yNCBZdWtpIFRha2VpXG4gICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZm9ybS10ZXh0XCI+eyB1bmF2YWlsYWJsZVVzZXJJZCB9PC9wPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImlucHV0LWdyb3VwIG1iLTNcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbnB1dC1ncm91cC1wcmVwZW5kXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaW5wdXQtZ3JvdXAtdGV4dFwiPjxpIGNsYXNzTmFtZT1cImljb24tdGFnXCIgLz48L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17dGhpcy5wcm9wcy50KCdOYW1lJyl9XG4gICAgICAgICAgICAgICAgbmFtZT1cInJlZ2lzdGVyRm9ybVtuYW1lXVwiXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXt0aGlzLnByb3BzLm5hbWV9XG4gICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImlucHV0LWdyb3VwIG1iLTNcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbnB1dC1ncm91cC1wcmVwZW5kXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaW5wdXQtZ3JvdXAtdGV4dFwiPjxpIGNsYXNzTmFtZT1cImljb24tZW52ZWxvcGVcIiAvPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJlbWFpbFwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17dGhpcy5wcm9wcy50KCdFbWFpbCcpfVxuICAgICAgICAgICAgICAgIG5hbWU9XCJyZWdpc3RlckZvcm1bZW1haWxdXCJcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e3RoaXMucHJvcHMuZW1haWx9XG4gICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImlucHV0LWdyb3VwIG1iLTNcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbnB1dC1ncm91cC1wcmVwZW5kXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaW5wdXQtZ3JvdXAtdGV4dFwiPjxpIGNsYXNzTmFtZT1cImljb24tbG9ja1wiIC8+PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0aGlzLnByb3BzLnQoJ1Bhc3N3b3JkJyl9XG4gICAgICAgICAgICAgICAgbmFtZT1cInJlZ2lzdGVyRm9ybVtwYXNzd29yZF1cIlxuICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiX2NzcmZcIiB2YWx1ZT17dGhpcy5wcm9wcy5jc3JmfSAvPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImlucHV0LWdyb3VwIG10LTQgbWItMyBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnRuLWZpbGwgYnRuIGJ0bi1yZWdpc3RlclwiXG4gICAgICAgICAgICAgICAgaWQ9XCJyZWdpc3RlclwiXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3RoaXMuc3RhdGUuaXNTdWJtaXR0aW5nRGlzYWJsZWR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImVmZlwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJ0bi1sYWJlbFwiPjxpIGNsYXNzTmFtZT1cImljb24tdXNlci1mb2xsb3dcIiAvPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJidG4tbGFiZWwtdGV4dFwiPnsgdGhpcy5wcm9wcy50KCdDcmVhdGUnKSB9PC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImlucHV0LWdyb3VwIG10LTQgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vZ3Jvd2kub3JnXCIgY2xhc3NOYW1lPVwibGluay1ncm93aS1vcmdcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJncm93aVwiPkdST1dJPC9zcGFuPi48c3BhbiBjbGFzc05hbWU9XCJvcmdcIj5PUkc8L3NwYW4+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbn1cblxuSW5zdGFsbGVyRm9ybS5wcm9wVHlwZXMgPSB7XG4gIC8vIGkxOG5leHRcbiAgdDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgLy8gZm9yIGlucHV0IHZhbHVlXG4gIHVzZXJOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBlbWFpbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgY3NyZjogUHJvcFR5cGVzLnN0cmluZyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhUcmFuc2xhdGlvbigpKEluc3RhbGxlckZvcm0pO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFBQTtBQUVBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQU1BO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU5BO0FBUUE7QUFBQTtBQUtBO0FBQ0E7QUFDQTtBQUhBO0FBS0E7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFTQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBT0E7QUFQQTtBQVVBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFVQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFVQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBU0E7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBQU1BO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFJQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFPQTtBQUNBO0FBekxBO0FBQ0E7QUEyTEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVBBO0FBVUEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/client/js/components/InstallerForm.jsx\n");
  221. /***/ }),
  222. /***/ "./src/client/js/components/LoginForm.jsx":
  223. /*!************************************************!*\
  224. !*** ./src/client/js/components/LoginForm.jsx ***!
  225. \************************************************/
  226. /*! exports provided: default */
  227. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  228. "use strict";
  229. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react_card_flip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-card-flip */ \"./node_modules/react-card-flip/lib/ReactCardFlip.js\");\n/* harmony import */ var react_card_flip__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_card_flip__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-i18next */ \"./node_modules/react-i18next/dist/es/index.js\");\n/* harmony import */ var _services_AppContainer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../services/AppContainer */ \"./src/client/js/services/AppContainer.js\");\n/* harmony import */ var _UnstatedUtils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./UnstatedUtils */ \"./src/client/js/components/UnstatedUtils.jsx\");\n\n\n\n\n\n\n\nclass LoginForm extends react__WEBPACK_IMPORTED_MODULE_0___default.a.Component {\n constructor(props) {\n super(props);\n this.state = {\n isRegistering: false\n };\n this.switchForm = this.switchForm.bind(this);\n this.handleLoginWithExternalAuth = this.handleLoginWithExternalAuth.bind(this);\n this.renderLocalOrLdapLoginForm = this.renderLocalOrLdapLoginForm.bind(this);\n this.renderExternalAuthLoginForm = this.renderExternalAuthLoginForm.bind(this);\n this.renderExternalAuthInput = this.renderExternalAuthInput.bind(this);\n this.renderRegisterForm = this.renderRegisterForm.bind(this);\n const {\n hash\n } = window.location;\n\n if (hash === '#register') {\n this.state.isRegistering = true;\n }\n }\n\n switchForm() {\n this.setState({\n isRegistering: !this.state.isRegistering\n });\n }\n\n handleLoginWithExternalAuth(e) {\n const auth = e.currentTarget.id;\n const {\n csrf\n } = this.props.appContainer;\n window.location.href = `/passport/${auth}?_csrf=${csrf}`;\n }\n\n renderLocalOrLdapLoginForm() {\n const {\n t,\n appContainer,\n isLdapStrategySetup\n } = this.props;\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"form\", {\n role: \"form\",\n action: \"/login\",\n method: \"post\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group-prepend\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"input-group-text\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-user\"\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n type: \"text\",\n className: \"form-control rounded-0\",\n placeholder: \"Username or E-mail\",\n name: \"loginForm[username]\"\n }), isLdapStrategySetup && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group-append\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"small\", {\n className: \"input-group-text text-success\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-fw icon-check\"\n }), \" LDAP\"))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group-prepend\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"input-group-text\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-lock\"\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n type: \"password\",\n className: \"form-control rounded-0\",\n placeholder: \"Password\",\n name: \"loginForm[password]\"\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group my-4\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n type: \"hidden\",\n name: \"_csrf\",\n value: appContainer.csrfToken\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n type: \"submit\",\n id: \"login\",\n className: \"btn btn-fill rounded-0 login mx-auto\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"eff\"\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"btn-label\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-login\"\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"btn-label-text\"\n }, t('Sign in')))));\n }\n\n renderExternalAuthInput(auth) {\n const {\n t\n } = this.props;\n const authIconNames = {\n google: 'google',\n github: 'github',\n facebook: 'facebook',\n twitter: 'twitter',\n oidc: 'openid',\n saml: 'key',\n basic: 'lock'\n };\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n key: auth,\n className: \"col-6 my-2\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-fill rounded-0\",\n id: auth,\n onClick: this.handleLoginWithExternalAuth\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"eff\"\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"btn-label\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: `fa fa-${authIconNames[auth]}`\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"btn-label-text\"\n }, t('Sign in'))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"small text-right\"\n }, \"by \", auth, \" Account\"));\n }\n\n renderExternalAuthLoginForm() {\n const {\n isLocalStrategySetup,\n isLdapStrategySetup,\n objOfIsExternalAuthEnableds\n } = this.props;\n const isExternalAuthCollapsible = isLocalStrategySetup || isLdapStrategySetup;\n const collapsibleClass = isExternalAuthCollapsible ? 'collapse collapse-external-auth' : '';\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"grw-external-auth-form border-top border-bottom\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n id: \"external-auth\",\n className: `external-auth ${collapsibleClass}`\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"row mt-2\"\n }, Object.keys(objOfIsExternalAuthEnableds).map(auth => {\n if (!objOfIsExternalAuthEnableds[auth]) {\n return;\n }\n\n return this.renderExternalAuthInput(auth);\n })))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"text-center\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n type: \"button\",\n className: \"btn btn-secondary btn-external-auth-tab btn-sm rounded-0 mb-3\",\n \"data-toggle\": isExternalAuthCollapsible ? 'collapse' : '',\n \"data-target\": \"#external-auth\",\n \"aria-expanded\": \"false\",\n \"aria-controls\": \"external-auth\"\n }, \"External Auth\")));\n }\n\n renderRegisterForm() {\n const {\n t,\n appContainer,\n username,\n name,\n email,\n registrationMode,\n registrationWhiteList\n } = this.props;\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, registrationMode === 'Restricted' && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"p\", {\n className: \"alert alert-warning\"\n }, t('page_register.notice.restricted'), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"br\", null), t('page_register.notice.restricted_defail')), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"form\", {\n role: \"form\",\n action: \"/register\",\n method: \"post\",\n id: \"register-form\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group\",\n id: \"input-group-username\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group-prepend\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"input-group-text\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-user\"\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n type: \"text\",\n className: \"form-control rounded-0\",\n placeholder: t('User ID'),\n name: \"registerForm[username]\",\n defaultValue: username,\n required: true\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"p\", {\n className: \"form-text text-danger\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n id: \"help-block-username\"\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group-prepend\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"input-group-text\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-tag\"\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n type: \"text\",\n className: \"form-control rounded-0\",\n placeholder: t('Name'),\n name: \"registerForm[name]\",\n defaultValue: name,\n required: true\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group-prepend\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"input-group-text\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-envelope\"\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n type: \"email\",\n className: \"form-control rounded-0\",\n placeholder: t('Email'),\n name: \"registerForm[email]\",\n defaultValue: email,\n required: true\n })), registrationWhiteList.length > 0 && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"p\", {\n className: \"form-text\"\n }, t('page_register.form_help.email')), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"ul\", null, registrationWhiteList.map(elem => {\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"li\", {\n key: elem\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"code\", null, elem));\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group-prepend\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"input-group-text\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-lock\"\n }))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n type: \"password\",\n className: \"form-control rounded-0\",\n placeholder: t('Password'),\n name: \"registerForm[password]\",\n required: true\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"input-group justify-content-center my-4\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"input\", {\n type: \"hidden\",\n name: \"_csrf\",\n value: appContainer.csrfToken\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"button\", {\n type: \"submit\",\n className: \"btn btn-fill rounded-0\",\n id: \"register\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"eff\"\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"btn-label\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-user-follow\"\n })), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"btn-label-text\"\n }, t('Sign up'))))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"border-bottom\"\n }), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"row\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"text-right col-12 mt-2 py-2\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n href: \"#login\",\n id: \"login\",\n className: \"link-switch\",\n onClick: this.switchForm\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"icon-fw icon-login\"\n }), t('Sign in is here')))));\n }\n\n render() {\n const {\n t,\n isLocalStrategySetup,\n isLdapStrategySetup,\n isRegistrationEnabled,\n objOfIsExternalAuthEnableds\n } = this.props;\n const isLocalOrLdapStrategiesEnabled = isLocalStrategySetup || isLdapStrategySetup;\n const isSomeExternalAuthEnabled = Object.values(objOfIsExternalAuthEnableds).some(elem => elem);\n return react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"login-dialog mx-auto\",\n id: \"login-dialog\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"row mx-0\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"col-12\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_card_flip__WEBPACK_IMPORTED_MODULE_2___default.a, {\n isFlipped: this.state.isRegistering,\n flipDirection: \"horizontal\",\n cardZIndex: \"3\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"front\"\n }, isLocalOrLdapStrategiesEnabled && this.renderLocalOrLdapLoginForm(), isSomeExternalAuthEnabled && this.renderExternalAuthLoginForm(), isRegistrationEnabled && react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"row\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"col-12 text-right py-2\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n href: \"#register\",\n id: \"register\",\n className: \"link-switch\",\n onClick: this.switchForm\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"i\", {\n className: \"ti-check-box\"\n }), \" \", t('Sign up is here'))))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"div\", {\n className: \"back\"\n }, isRegistrationEnabled && this.renderRegisterForm())))), react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"a\", {\n href: \"https://growi.org\",\n className: \"link-growi-org pl-3\"\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"growi\"\n }, \"GROWI\"), \".\", react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(\"span\", {\n className: \"org\"\n }, \"ORG\")));\n }\n\n}\n/**\n * Wrapper component for using unstated\n */\n\n\nconst LoginFormWrapper = Object(_UnstatedUtils__WEBPACK_IMPORTED_MODULE_5__[\"withUnstatedContainers\"])(LoginForm, [_services_AppContainer__WEBPACK_IMPORTED_MODULE_4__[\"default\"]]);\nLoginForm.propTypes = {\n // i18next\n t: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n appContainer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.instanceOf(_services_AppContainer__WEBPACK_IMPORTED_MODULE_4__[\"default\"]).isRequired,\n isRegistering: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n username: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n name: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n email: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n isRegistrationEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n registrationMode: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n registrationWhiteList: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array,\n isLocalStrategySetup: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n isLdapStrategySetup: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n objOfIsExternalAuthEnableds: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(react_i18next__WEBPACK_IMPORTED_MODULE_3__[\"withTranslation\"])()(LoginFormWrapper));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL2NvbXBvbmVudHMvTG9naW5Gb3JtLmpzeC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9jbGllbnQvanMvY29tcG9uZW50cy9Mb2dpbkZvcm0uanN4P2I0ZTYiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3RDYXJkRmxpcCBmcm9tICdyZWFjdC1jYXJkLWZsaXAnO1xuXG5pbXBvcnQgeyB3aXRoVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0JztcblxuaW1wb3J0IEFwcENvbnRhaW5lciBmcm9tICcuLi9zZXJ2aWNlcy9BcHBDb250YWluZXInO1xuaW1wb3J0IHsgd2l0aFVuc3RhdGVkQ29udGFpbmVycyB9IGZyb20gJy4vVW5zdGF0ZWRVdGlscyc7XG5cbmNsYXNzIExvZ2luRm9ybSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgaXNSZWdpc3RlcmluZzogZmFsc2UsXG4gICAgfTtcblxuICAgIHRoaXMuc3dpdGNoRm9ybSA9IHRoaXMuc3dpdGNoRm9ybS5iaW5kKHRoaXMpO1xuICAgIHRoaXMuaGFuZGxlTG9naW5XaXRoRXh0ZXJuYWxBdXRoID0gdGhpcy5oYW5kbGVMb2dpbldpdGhFeHRlcm5hbEF1dGguYmluZCh0aGlzKTtcbiAgICB0aGlzLnJlbmRlckxvY2FsT3JMZGFwTG9naW5Gb3JtID0gdGhpcy5yZW5kZXJMb2NhbE9yTGRhcExvZ2luRm9ybS5iaW5kKHRoaXMpO1xuICAgIHRoaXMucmVuZGVyRXh0ZXJuYWxBdXRoTG9naW5Gb3JtID0gdGhpcy5yZW5kZXJFeHRlcm5hbEF1dGhMb2dpbkZvcm0uYmluZCh0aGlzKTtcbiAgICB0aGlzLnJlbmRlckV4dGVybmFsQXV0aElucHV0ID0gdGhpcy5yZW5kZXJFeHRlcm5hbEF1dGhJbnB1dC5iaW5kKHRoaXMpO1xuICAgIHRoaXMucmVuZGVyUmVnaXN0ZXJGb3JtID0gdGhpcy5yZW5kZXJSZWdpc3RlckZvcm0uYmluZCh0aGlzKTtcblxuICAgIGNvbnN0IHsgaGFzaCB9ID0gd2luZG93LmxvY2F0aW9uO1xuICAgIGlmIChoYXNoID09PSAnI3JlZ2lzdGVyJykge1xuICAgICAgdGhpcy5zdGF0ZS5pc1JlZ2lzdGVyaW5nID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBzd2l0Y2hGb3JtKCkge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBpc1JlZ2lzdGVyaW5nOiAhdGhpcy5zdGF0ZS5pc1JlZ2lzdGVyaW5nIH0pO1xuICB9XG5cbiAgaGFuZGxlTG9naW5XaXRoRXh0ZXJuYWxBdXRoKGUpIHtcbiAgICBjb25zdCBhdXRoID0gZS5jdXJyZW50VGFyZ2V0LmlkO1xuICAgIGNvbnN0IHsgY3NyZiB9ID0gdGhpcy5wcm9wcy5hcHBDb250YWluZXI7XG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgL3Bhc3Nwb3J0LyR7YXV0aH0/X2NzcmY9JHtjc3JmfWA7XG4gIH1cblxuICByZW5kZXJMb2NhbE9yTGRhcExvZ2luRm9ybSgpIHtcbiAgICBjb25zdCB7IHQsIGFwcENvbnRhaW5lciwgaXNMZGFwU3RyYXRlZ3lTZXR1cCB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8Zm9ybSByb2xlPVwiZm9ybVwiIGFjdGlvbj1cIi9sb2dpblwiIG1ldGhvZD1cInBvc3RcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5wdXQtZ3JvdXAtcHJlcGVuZFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaW5wdXQtZ3JvdXAtdGV4dFwiPlxuICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJpY29uLXVzZXJcIj48L2k+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3NOYW1lPVwiZm9ybS1jb250cm9sIHJvdW5kZWQtMFwiIHBsYWNlaG9sZGVyPVwiVXNlcm5hbWUgb3IgRS1tYWlsXCIgbmFtZT1cImxvZ2luRm9ybVt1c2VybmFtZV1cIiAvPlxuICAgICAgICAgIHtpc0xkYXBTdHJhdGVneVNldHVwICYmIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XG4gICAgICAgICAgICAgIDxzbWFsbCBjbGFzc05hbWU9XCJpbnB1dC1ncm91cC10ZXh0IHRleHQtc3VjY2Vzc1wiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImljb24tZncgaWNvbi1jaGVja1wiPjwvaT4gTERBUFxuICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW5wdXQtZ3JvdXAtcHJlcGVuZFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaW5wdXQtZ3JvdXAtdGV4dFwiPlxuICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJpY29uLWxvY2tcIj48L2k+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJwYXNzd29yZFwiIGNsYXNzTmFtZT1cImZvcm0tY29udHJvbCByb3VuZGVkLTBcIiBwbGFjZWhvbGRlcj1cIlBhc3N3b3JkXCIgbmFtZT1cImxvZ2luRm9ybVtwYXNzd29yZF1cIiAvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImlucHV0LWdyb3VwIG15LTRcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJfY3NyZlwiIHZhbHVlPXthcHBDb250YWluZXIuY3NyZlRva2VufSAvPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGlkPVwibG9naW5cIiBjbGFzc05hbWU9XCJidG4gYnRuLWZpbGwgcm91bmRlZC0wIGxvZ2luIG14LWF1dG9cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZWZmXCI+PC9kaXY+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJidG4tbGFiZWxcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwiaWNvbi1sb2dpblwiPjwvaT5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJ0bi1sYWJlbC10ZXh0XCI+e3QoJ1NpZ24gaW4nKX08L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9mb3JtPlxuICAgICk7XG4gIH1cblxuICByZW5kZXJFeHRlcm5hbEF1dGhJbnB1dChhdXRoKSB7XG4gICAgY29uc3QgeyB0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGF1dGhJY29uTmFtZXMgPSB7XG4gICAgICBnb29nbGU6ICdnb29nbGUnLFxuICAgICAgZ2l0aHViOiAnZ2l0aHViJyxcbiAgICAgIGZhY2Vib29rOiAnZmFjZWJvb2snLFxuICAgICAgdHdpdHRlcjogJ3R3aXR0ZXInLFxuICAgICAgb2lkYzogJ29wZW5pZCcsXG4gICAgICBzYW1sOiAna2V5JyxcbiAgICAgIGJhc2ljOiAnbG9jaycsXG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGtleT17YXV0aH0gY2xhc3NOYW1lPVwiY29sLTYgbXktMlwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzc05hbWU9XCJidG4gYnRuLWZpbGwgcm91bmRlZC0wXCIgaWQ9e2F1dGh9IG9uQ2xpY2s9e3RoaXMuaGFuZGxlTG9naW5XaXRoRXh0ZXJuYWxBdXRofT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImVmZlwiPjwvZGl2PlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJ0bi1sYWJlbFwiPlxuICAgICAgICAgICAgPGkgY2xhc3NOYW1lPXtgZmEgZmEtJHthdXRoSWNvbk5hbWVzW2F1dGhdfWB9PjwvaT5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYnRuLWxhYmVsLXRleHRcIj57dCgnU2lnbiBpbicpfTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic21hbGwgdGV4dC1yaWdodFwiPmJ5IHthdXRofSBBY2NvdW50PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgcmVuZGVyRXh0ZXJuYWxBdXRoTG9naW5Gb3JtKCkge1xuICAgIGNvbnN0IHsgaXNMb2NhbFN0cmF0ZWd5U2V0dXAsIGlzTGRhcFN0cmF0ZWd5U2V0dXAsIG9iak9mSXNFeHRlcm5hbEF1dGhFbmFibGVkcyB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBpc0V4dGVybmFsQXV0aENvbGxhcHNpYmxlID0gaXNMb2NhbFN0cmF0ZWd5U2V0dXAgfHwgaXNMZGFwU3RyYXRlZ3lTZXR1cDtcbiAgICBjb25zdCBjb2xsYXBzaWJsZUNsYXNzID0gaXNFeHRlcm5hbEF1dGhDb2xsYXBzaWJsZSA/ICdjb2xsYXBzZSBjb2xsYXBzZS1leHRlcm5hbC1hdXRoJyA6ICcnO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3J3LWV4dGVybmFsLWF1dGgtZm9ybSBib3JkZXItdG9wIGJvcmRlci1ib3R0b21cIj5cbiAgICAgICAgICA8ZGl2IGlkPVwiZXh0ZXJuYWwtYXV0aFwiIGNsYXNzTmFtZT17YGV4dGVybmFsLWF1dGggJHtjb2xsYXBzaWJsZUNsYXNzfWB9PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgbXQtMlwiPlxuICAgICAgICAgICAgICB7T2JqZWN0LmtleXMob2JqT2ZJc0V4dGVybmFsQXV0aEVuYWJsZWRzKS5tYXAoKGF1dGgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIW9iak9mSXNFeHRlcm5hbEF1dGhFbmFibGVkc1thdXRoXSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJFeHRlcm5hbEF1dGhJbnB1dChhdXRoKTtcbiAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1leHRlcm5hbC1hdXRoLXRhYiBidG4tc20gcm91bmRlZC0wIG1iLTNcIlxuICAgICAgICAgICAgZGF0YS10b2dnbGU9e2lzRXh0ZXJuYWxBdXRoQ29sbGFwc2libGUgPyAnY29sbGFwc2UnIDogJyd9XG4gICAgICAgICAgICBkYXRhLXRhcmdldD1cIiNleHRlcm5hbC1hdXRoXCJcbiAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXG4gICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwiZXh0ZXJuYWwtYXV0aFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgRXh0ZXJuYWwgQXV0aFxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cblxuICByZW5kZXJSZWdpc3RlckZvcm0oKSB7XG4gICAgY29uc3Qge1xuICAgICAgdCxcbiAgICAgIGFwcENvbnRhaW5lcixcbiAgICAgIHVzZXJuYW1lLFxuICAgICAgbmFtZSxcbiAgICAgIGVtYWlsLFxuICAgICAgcmVnaXN0cmF0aW9uTW9kZSxcbiAgICAgIHJlZ2lzdHJhdGlvbldoaXRlTGlzdCxcbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIHJldHVybiAoXG4gICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgIHtyZWdpc3RyYXRpb25Nb2RlID09PSAnUmVzdHJpY3RlZCcgJiYgKFxuICAgICAgICA8cCBjbGFzc05hbWU9XCJhbGVydCBhbGVydC13YXJuaW5nXCI+XG4gICAgICAgICAge3QoJ3BhZ2VfcmVnaXN0ZXIubm90aWNlLnJlc3RyaWN0ZWQnKX1cbiAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICB7dCgncGFnZV9yZWdpc3Rlci5ub3RpY2UucmVzdHJpY3RlZF9kZWZhaWwnKX1cbiAgICAgICAgPC9wPlxuICAgICAgICApfVxuICAgICAgICA8Zm9ybSByb2xlPVwiZm9ybVwiIGFjdGlvbj1cIi9yZWdpc3RlclwiIG1ldGhvZD1cInBvc3RcIiBpZD1cInJlZ2lzdGVyLWZvcm1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImlucHV0LWdyb3VwXCIgaWQ9XCJpbnB1dC1ncm91cC11c2VybmFtZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbnB1dC1ncm91cC1wcmVwZW5kXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImlucHV0LWdyb3VwLXRleHRcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJpY29uLXVzZXJcIj48L2k+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3NOYW1lPVwiZm9ybS1jb250cm9sIHJvdW5kZWQtMFwiIHBsYWNlaG9sZGVyPXt0KCdVc2VyIElEJyl9IG5hbWU9XCJyZWdpc3RlckZvcm1bdXNlcm5hbWVdXCIgZGVmYXVsdFZhbHVlPXt1c2VybmFtZX0gcmVxdWlyZWQgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8cCBjbGFzc05hbWU9XCJmb3JtLXRleHQgdGV4dC1kYW5nZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGlkPVwiaGVscC1ibG9jay11c2VybmFtZVwiPjwvc3Bhbj5cbiAgICAgICAgICA8L3A+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImlucHV0LWdyb3VwLXByZXBlbmRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaW5wdXQtZ3JvdXAtdGV4dFwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImljb24tdGFnXCI+PC9pPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzTmFtZT1cImZvcm0tY29udHJvbCByb3VuZGVkLTBcIiBwbGFjZWhvbGRlcj17dCgnTmFtZScpfSBuYW1lPVwicmVnaXN0ZXJGb3JtW25hbWVdXCIgZGVmYXVsdFZhbHVlPXtuYW1lfSByZXF1aXJlZCAvPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbnB1dC1ncm91cFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbnB1dC1ncm91cC1wcmVwZW5kXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImlucHV0LWdyb3VwLXRleHRcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzc05hbWU9XCJpY29uLWVudmVsb3BlXCI+PC9pPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZW1haWxcIiBjbGFzc05hbWU9XCJmb3JtLWNvbnRyb2wgcm91bmRlZC0wXCIgcGxhY2Vob2xkZXI9e3QoJ0VtYWlsJyl9IG5hbWU9XCJyZWdpc3RlckZvcm1bZW1haWxdXCIgZGVmYXVsdFZhbHVlPXtlbWFpbH0gcmVxdWlyZWQgLz5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIHtyZWdpc3RyYXRpb25XaGl0ZUxpc3QubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cImZvcm0tdGV4dFwiPnt0KCdwYWdlX3JlZ2lzdGVyLmZvcm1faGVscC5lbWFpbCcpfTwvcD5cbiAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAge3JlZ2lzdHJhdGlvbldoaXRlTGlzdC5tYXAoKGVsZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxsaSBrZXk9e2VsZW19PlxuICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPntlbGVtfTwvY29kZT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDwvPlxuICAgICAgICAgICl9XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImlucHV0LWdyb3VwXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImlucHV0LWdyb3VwLXByZXBlbmRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaW5wdXQtZ3JvdXAtdGV4dFwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImljb24tbG9ja1wiPjwvaT5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInBhc3N3b3JkXCIgY2xhc3NOYW1lPVwiZm9ybS1jb250cm9sIHJvdW5kZWQtMFwiIHBsYWNlaG9sZGVyPXt0KCdQYXNzd29yZCcpfSBuYW1lPVwicmVnaXN0ZXJGb3JtW3Bhc3N3b3JkXVwiIHJlcXVpcmVkIC8+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImlucHV0LWdyb3VwIGp1c3RpZnktY29udGVudC1jZW50ZXIgbXktNFwiPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiX2NzcmZcIiB2YWx1ZT17YXBwQ29udGFpbmVyLmNzcmZUb2tlbn0gLz5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzTmFtZT1cImJ0biBidG4tZmlsbCByb3VuZGVkLTBcIiBpZD1cInJlZ2lzdGVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZWZmXCI+PC9kaXY+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJ0bi1sYWJlbFwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImljb24tdXNlci1mb2xsb3dcIj48L2k+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiYnRuLWxhYmVsLXRleHRcIj57dCgnU2lnbiB1cCcpfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJib3JkZXItYm90dG9tXCI+PC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtcmlnaHQgY29sLTEyIG10LTIgcHktMlwiPlxuICAgICAgICAgICAgPGEgaHJlZj1cIiNsb2dpblwiIGlkPVwibG9naW5cIiBjbGFzc05hbWU9XCJsaW5rLXN3aXRjaFwiIG9uQ2xpY2s9e3RoaXMuc3dpdGNoRm9ybX0+XG4gICAgICAgICAgICAgIDxpIGNsYXNzTmFtZT1cImljb24tZncgaWNvbi1sb2dpblwiPjwvaT5cbiAgICAgICAgICAgICAge3QoJ1NpZ24gaW4gaXMgaGVyZScpfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICB0LFxuICAgICAgaXNMb2NhbFN0cmF0ZWd5U2V0dXAsXG4gICAgICBpc0xkYXBTdHJhdGVneVNldHVwLFxuICAgICAgaXNSZWdpc3RyYXRpb25FbmFibGVkLFxuICAgICAgb2JqT2ZJc0V4dGVybmFsQXV0aEVuYWJsZWRzLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgY29uc3QgaXNMb2NhbE9yTGRhcFN0cmF0ZWdpZXNFbmFibGVkID0gaXNMb2NhbFN0cmF0ZWd5U2V0dXAgfHwgaXNMZGFwU3RyYXRlZ3lTZXR1cDtcbiAgICBjb25zdCBpc1NvbWVFeHRlcm5hbEF1dGhFbmFibGVkID0gT2JqZWN0LnZhbHVlcyhvYmpPZklzRXh0ZXJuYWxBdXRoRW5hYmxlZHMpLnNvbWUoZWxlbSA9PiBlbGVtKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImxvZ2luLWRpYWxvZyBteC1hdXRvXCIgaWQ9XCJsb2dpbi1kaWFsb2dcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3cgbXgtMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTEyXCI+XG4gICAgICAgICAgICA8UmVhY3RDYXJkRmxpcCBpc0ZsaXBwZWQ9e3RoaXMuc3RhdGUuaXNSZWdpc3RlcmluZ30gZmxpcERpcmVjdGlvbj1cImhvcml6b250YWxcIiBjYXJkWkluZGV4PVwiM1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZyb250XCI+XG4gICAgICAgICAgICAgICAge2lzTG9jYWxPckxkYXBTdHJhdGVnaWVzRW5hYmxlZCAmJiB0aGlzLnJlbmRlckxvY2FsT3JMZGFwTG9naW5Gb3JtKCl9XG4gICAgICAgICAgICAgICAge2lzU29tZUV4dGVybmFsQXV0aEVuYWJsZWQgJiYgdGhpcy5yZW5kZXJFeHRlcm5hbEF1dGhMb2dpbkZvcm0oKX1cbiAgICAgICAgICAgICAgICB7aXNSZWdpc3RyYXRpb25FbmFibGVkICYmIChcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sLTEyIHRleHQtcmlnaHQgcHktMlwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjcmVnaXN0ZXJcIiBpZD1cInJlZ2lzdGVyXCIgY2xhc3NOYW1lPVwibGluay1zd2l0Y2hcIiBvbkNsaWNrPXt0aGlzLnN3aXRjaEZvcm19PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3NOYW1lPVwidGktY2hlY2stYm94XCI+PC9pPiB7dCgnU2lnbiB1cCBpcyBoZXJlJyl9XG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJiYWNrXCI+XG4gICAgICAgICAgICAgICAge2lzUmVnaXN0cmF0aW9uRW5hYmxlZCAmJiB0aGlzLnJlbmRlclJlZ2lzdGVyRm9ybSgpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvUmVhY3RDYXJkRmxpcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxhIGhyZWY9XCJodHRwczovL2dyb3dpLm9yZ1wiIGNsYXNzTmFtZT1cImxpbmstZ3Jvd2ktb3JnIHBsLTNcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJncm93aVwiPkdST1dJPC9zcGFuPi48c3BhbiBjbGFzc05hbWU9XCJvcmdcIj5PUkc8L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cblxufVxuXG4vKipcbiAqIFdyYXBwZXIgY29tcG9uZW50IGZvciB1c2luZyB1bnN0YXRlZFxuICovXG5jb25zdCBMb2dpbkZvcm1XcmFwcGVyID0gd2l0aFVuc3RhdGVkQ29udGFpbmVycyhMb2dpbkZvcm0sIFtBcHBDb250YWluZXJdKTtcblxuTG9naW5Gb3JtLnByb3BUeXBlcyA9IHtcbiAgLy8gaTE4bmV4dFxuICB0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBhcHBDb250YWluZXI6IFByb3BUeXBlcy5pbnN0YW5jZU9mKEFwcENvbnRhaW5lcikuaXNSZXF1aXJlZCxcblxuICBpc1JlZ2lzdGVyaW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgdXNlcm5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGVtYWlsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBpc1JlZ2lzdHJhdGlvbkVuYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICByZWdpc3RyYXRpb25Nb2RlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICByZWdpc3RyYXRpb25XaGl0ZUxpc3Q6IFByb3BUeXBlcy5hcnJheSxcbiAgaXNMb2NhbFN0cmF0ZWd5U2V0dXA6IFByb3BUeXBlcy5ib29sLFxuICBpc0xkYXBTdHJhdGVneVNldHVwOiBQcm9wVHlwZXMuYm9vbCxcbiAgb2JqT2ZJc0V4dGVybmFsQXV0aEVuYWJsZWRzOiBQcm9wVHlwZXMub2JqZWN0LFxufTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFRyYW5zbGF0aW9uKCkoTG9naW5Gb3JtV3JhcHBlcik7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBREE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBTUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFHQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQUE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBUEE7QUFVQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUFBO0FBRUE7QUFBQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUlBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBQWFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFQQTtBQVVBO0FBR0E7QUFBQTtBQU1BO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFHQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBQUE7QUFDQTtBQUFBO0FBR0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBR0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBS0E7QUFBQTtBQUdBO0FBQ0E7QUFBQTtBQUlBO0FBS0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUdBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUdBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBRUE7QUFBQTtBQUtBO0FBQUE7QUFFQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTEE7QUFRQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUlBO0FBQUE7QUFDQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQUE7QUFNQTtBQUFBO0FBTUE7QUFBQTtBQUFBO0FBQ0E7QUFBQTtBQUFBO0FBQUE7QUFJQTtBQUNBO0FBeFJBO0FBMlJBOzs7OztBQUdBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWRBO0FBaUJBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/client/js/components/LoginForm.jsx\n");
  230. /***/ }),
  231. /***/ "./src/client/js/nologin.jsx":
  232. /*!***********************************!*\
  233. !*** ./src/client/js/nologin.jsx ***!
  234. \***********************************/
  235. /*! no exports provided */
  236. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  237. "use strict";
  238. eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var unstated__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! unstated */ \"./node_modules/unstated/lib/unstated.es.js\");\n/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-i18next */ \"./node_modules/react-i18next/dist/es/index.js\");\n/* harmony import */ var _util_i18n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util/i18n */ \"./src/client/js/util/i18n.js\");\n/* harmony import */ var _services_AppContainer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./services/AppContainer */ \"./src/client/js/services/AppContainer.js\");\n/* harmony import */ var _components_InstallerForm__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/InstallerForm */ \"./src/client/js/components/InstallerForm.jsx\");\n/* harmony import */ var _components_LoginForm__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/LoginForm */ \"./src/client/js/components/LoginForm.jsx\");\n\n\n\n\n\n\n\n\nconst i18n = Object(_util_i18n__WEBPACK_IMPORTED_MODULE_4__[\"i18nFactory\"])(); // render InstallerForm\n\nconst installerFormElem = document.getElementById('installer-form');\n\nif (installerFormElem) {\n const userName = installerFormElem.dataset.userName;\n const name = installerFormElem.dataset.name;\n const email = installerFormElem.dataset.email;\n const csrf = installerFormElem.dataset.csrf;\n react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.render(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_i18next__WEBPACK_IMPORTED_MODULE_3__[\"I18nextProvider\"], {\n i18n: i18n\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_InstallerForm__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n userName: userName,\n name: name,\n email: email,\n csrf: csrf\n })), installerFormElem);\n} // render loginForm\n\n\nconst loginFormElem = document.getElementById('login-form');\n\nif (loginFormElem) {\n const appContainer = new _services_AppContainer__WEBPACK_IMPORTED_MODULE_5__[\"default\"]();\n appContainer.initApp();\n const username = loginFormElem.dataset.username;\n const name = loginFormElem.dataset.name;\n const email = loginFormElem.dataset.email;\n const isRegistrationEnabled = loginFormElem.dataset.isRegistrationEnabled === 'true';\n const registrationMode = loginFormElem.dataset.registrationMode;\n let registrationWhiteList = loginFormElem.dataset.registrationWhiteList;\n registrationWhiteList = registrationWhiteList.length > 0 ? registrationWhiteList = loginFormElem.dataset.registrationWhiteList.split(',') : registrationWhiteList = [];\n const isLocalStrategySetup = loginFormElem.dataset.isLocalStrategySetup === 'true';\n const isLdapStrategySetup = loginFormElem.dataset.isLdapStrategySetup === 'true';\n const objOfIsExternalAuthEnableds = {\n google: loginFormElem.dataset.isGoogleAuthEnabled === 'true',\n github: loginFormElem.dataset.isGithubAuthEnabled === 'true',\n facebook: loginFormElem.dataset.isFacebookAuthEnabled === 'true',\n twitter: loginFormElem.dataset.isTwitterAuthEnabled === 'true',\n saml: loginFormElem.dataset.isSamlAuthEnabled === 'true',\n oidc: loginFormElem.dataset.isOidcAuthEnabled === 'true',\n basic: loginFormElem.dataset.isBasicAuthEnabled === 'true'\n };\n react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.render(react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_i18next__WEBPACK_IMPORTED_MODULE_3__[\"I18nextProvider\"], {\n i18n: i18n\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(unstated__WEBPACK_IMPORTED_MODULE_2__[\"Provider\"], {\n inject: [appContainer]\n }, react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_components_LoginForm__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n username: username,\n name: name,\n email: email,\n isRegistrationEnabled: isRegistrationEnabled,\n registrationMode: registrationMode,\n registrationWhiteList: registrationWhiteList,\n isLocalStrategySetup: isLocalStrategySetup,\n isLdapStrategySetup: isLdapStrategySetup,\n objOfIsExternalAuthEnableds: objOfIsExternalAuthEnableds\n }))), loginFormElem);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvY2xpZW50L2pzL25vbG9naW4uanN4LmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2NsaWVudC9qcy9ub2xvZ2luLmpzeD80YTU0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSAndW5zdGF0ZWQnO1xuaW1wb3J0IHsgSTE4bmV4dFByb3ZpZGVyIH0gZnJvbSAncmVhY3QtaTE4bmV4dCc7XG5cbmltcG9ydCB7IGkxOG5GYWN0b3J5IH0gZnJvbSAnLi91dGlsL2kxOG4nO1xuXG5pbXBvcnQgQXBwQ29udGFpbmVyIGZyb20gJy4vc2VydmljZXMvQXBwQ29udGFpbmVyJztcblxuaW1wb3J0IEluc3RhbGxlckZvcm0gZnJvbSAnLi9jb21wb25lbnRzL0luc3RhbGxlckZvcm0nO1xuaW1wb3J0IExvZ2luRm9ybSBmcm9tICcuL2NvbXBvbmVudHMvTG9naW5Gb3JtJztcblxuY29uc3QgaTE4biA9IGkxOG5GYWN0b3J5KCk7XG5cbi8vIHJlbmRlciBJbnN0YWxsZXJGb3JtXG5jb25zdCBpbnN0YWxsZXJGb3JtRWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnN0YWxsZXItZm9ybScpO1xuaWYgKGluc3RhbGxlckZvcm1FbGVtKSB7XG4gIGNvbnN0IHVzZXJOYW1lID0gaW5zdGFsbGVyRm9ybUVsZW0uZGF0YXNldC51c2VyTmFtZTtcbiAgY29uc3QgbmFtZSA9IGluc3RhbGxlckZvcm1FbGVtLmRhdGFzZXQubmFtZTtcbiAgY29uc3QgZW1haWwgPSBpbnN0YWxsZXJGb3JtRWxlbS5kYXRhc2V0LmVtYWlsO1xuICBjb25zdCBjc3JmID0gaW5zdGFsbGVyRm9ybUVsZW0uZGF0YXNldC5jc3JmO1xuICBSZWFjdERPTS5yZW5kZXIoXG4gICAgPEkxOG5leHRQcm92aWRlciBpMThuPXtpMThufT5cbiAgICAgIDxJbnN0YWxsZXJGb3JtIHVzZXJOYW1lPXt1c2VyTmFtZX0gbmFtZT17bmFtZX0gZW1haWw9e2VtYWlsfSBjc3JmPXtjc3JmfSAvPlxuICAgIDwvSTE4bmV4dFByb3ZpZGVyPixcbiAgICBpbnN0YWxsZXJGb3JtRWxlbSxcbiAgKTtcbn1cblxuLy8gcmVuZGVyIGxvZ2luRm9ybVxuY29uc3QgbG9naW5Gb3JtRWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2dpbi1mb3JtJyk7XG5pZiAobG9naW5Gb3JtRWxlbSkge1xuICBjb25zdCBhcHBDb250YWluZXIgPSBuZXcgQXBwQ29udGFpbmVyKCk7XG4gIGFwcENvbnRhaW5lci5pbml0QXBwKCk7XG5cbiAgY29uc3QgdXNlcm5hbWUgPSBsb2dpbkZvcm1FbGVtLmRhdGFzZXQudXNlcm5hbWU7XG4gIGNvbnN0IG5hbWUgPSBsb2dpbkZvcm1FbGVtLmRhdGFzZXQubmFtZTtcbiAgY29uc3QgZW1haWwgPSBsb2dpbkZvcm1FbGVtLmRhdGFzZXQuZW1haWw7XG4gIGNvbnN0IGlzUmVnaXN0cmF0aW9uRW5hYmxlZCA9IGxvZ2luRm9ybUVsZW0uZGF0YXNldC5pc1JlZ2lzdHJhdGlvbkVuYWJsZWQgPT09ICd0cnVlJztcbiAgY29uc3QgcmVnaXN0cmF0aW9uTW9kZSA9IGxvZ2luRm9ybUVsZW0uZGF0YXNldC5yZWdpc3RyYXRpb25Nb2RlO1xuXG5cbiAgbGV0IHJlZ2lzdHJhdGlvbldoaXRlTGlzdCA9IGxvZ2luRm9ybUVsZW0uZGF0YXNldC5yZWdpc3RyYXRpb25XaGl0ZUxpc3Q7XG4gIHJlZ2lzdHJhdGlvbldoaXRlTGlzdCA9IHJlZ2lzdHJhdGlvbldoaXRlTGlzdC5sZW5ndGggPiAwXG4gICAgPyByZWdpc3RyYXRpb25XaGl0ZUxpc3QgPSBsb2dpbkZvcm1FbGVtLmRhdGFzZXQucmVnaXN0cmF0aW9uV2hpdGVMaXN0LnNwbGl0KCcsJylcbiAgICA6IHJlZ2lzdHJhdGlvbldoaXRlTGlzdCA9IFtdO1xuXG5cbiAgY29uc3QgaXNMb2NhbFN0cmF0ZWd5U2V0dXAgPSBsb2dpbkZvcm1FbGVtLmRhdGFzZXQuaXNMb2NhbFN0cmF0ZWd5U2V0dXAgPT09ICd0cnVlJztcbiAgY29uc3QgaXNMZGFwU3RyYXRlZ3lTZXR1cCA9IGxvZ2luRm9ybUVsZW0uZGF0YXNldC5pc0xkYXBTdHJhdGVneVNldHVwID09PSAndHJ1ZSc7XG4gIGNvbnN0IG9iak9mSXNFeHRlcm5hbEF1dGhFbmFibGVkcyA9IHtcbiAgICBnb29nbGU6IGxvZ2luRm9ybUVsZW0uZGF0YXNldC5pc0dvb2dsZUF1dGhFbmFibGVkID09PSAndHJ1ZScsXG4gICAgZ2l0aHViOiBsb2dpbkZvcm1FbGVtLmRhdGFzZXQuaXNHaXRodWJBdXRoRW5hYmxlZCA9PT0gJ3RydWUnLFxuICAgIGZhY2Vib29rOiBsb2dpbkZvcm1FbGVtLmRhdGFzZXQuaXNGYWNlYm9va0F1dGhFbmFibGVkID09PSAndHJ1ZScsXG4gICAgdHdpdHRlcjogbG9naW5Gb3JtRWxlbS5kYXRhc2V0LmlzVHdpdHRlckF1dGhFbmFibGVkID09PSAndHJ1ZScsXG4gICAgc2FtbDogbG9naW5Gb3JtRWxlbS5kYXRhc2V0LmlzU2FtbEF1dGhFbmFibGVkID09PSAndHJ1ZScsXG4gICAgb2lkYzogbG9naW5Gb3JtRWxlbS5kYXRhc2V0LmlzT2lkY0F1dGhFbmFibGVkID09PSAndHJ1ZScsXG4gICAgYmFzaWM6IGxvZ2luRm9ybUVsZW0uZGF0YXNldC5pc0Jhc2ljQXV0aEVuYWJsZWQgPT09ICd0cnVlJyxcbiAgfTtcblxuICBSZWFjdERPTS5yZW5kZXIoXG4gICAgPEkxOG5leHRQcm92aWRlciBpMThuPXtpMThufT5cbiAgICAgIDxQcm92aWRlciBpbmplY3Q9e1thcHBDb250YWluZXJdfT5cbiAgICAgICAgPExvZ2luRm9ybVxuICAgICAgICAgIHVzZXJuYW1lPXt1c2VybmFtZX1cbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIGVtYWlsPXtlbWFpbH1cbiAgICAgICAgICBpc1JlZ2lzdHJhdGlvbkVuYWJsZWQ9e2lzUmVnaXN0cmF0aW9uRW5hYmxlZH1cbiAgICAgICAgICByZWdpc3RyYXRpb25Nb2RlPXtyZWdpc3RyYXRpb25Nb2RlfVxuICAgICAgICAgIHJlZ2lzdHJhdGlvbldoaXRlTGlzdD17cmVnaXN0cmF0aW9uV2hpdGVMaXN0fVxuICAgICAgICAgIGlzTG9jYWxTdHJhdGVneVNldHVwPXtpc0xvY2FsU3RyYXRlZ3lTZXR1cH1cbiAgICAgICAgICBpc0xkYXBTdHJhdGVneVNldHVwPXtpc0xkYXBTdHJhdGVneVNldHVwfVxuICAgICAgICAgIG9iak9mSXNFeHRlcm5hbEF1dGhFbmFibGVkcz17b2JqT2ZJc0V4dGVybmFsQXV0aEVuYWJsZWRzfVxuICAgICAgICAvPlxuICAgICAgPC9Qcm92aWRlcj5cbiAgICA8L0kxOG5leHRQcm92aWRlcj4sXG4gICAgbG9naW5Gb3JtRWxlbSxcbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFQQTtBQVVBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFUQTtBQWVBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/client/js/nologin.jsx\n");
  239. /***/ }),
  240. /***/ 0:
  241. /*!**********************!*\
  242. !*** util (ignored) ***!
  243. \**********************/
  244. /*! no static exports found */
  245. /***/ (function(module, exports) {
  246. eval("/* (ignored) *///# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy91dGlsIChpZ25vcmVkKT9lZjdjIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIChpZ25vcmVkKSAqLyJdLCJtYXBwaW5ncyI6IkFBQUEiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///0\n");
  247. /***/ })
  248. /******/ });