text: require("source-map-support").install();
  module.exports =
  /******/ (function(modules) { // webpackBootstrap
  /******/ 	// The module cache
  /******/ 	var installedModules = {};
  /******/
  /******/ 	// object to store loaded chunks
  /******/ 	// "0" means "already loaded"
  /******/ 	var installedChunks = {
  /******/ 		8: 0
  /******/ 	};
  /******/
  /******/ 	// The require function
  /******/ 	function __webpack_require__(moduleId) {
  /******/
  /******/ 		// Check if module is in cache
  /******/ 		if(installedModules[moduleId]) {
  /******/ 			return installedModules[moduleId].exports;
  /******/ 		}
  /******/ 		// Create a new module (and put it into the cache)
  /******/ 		var module = installedModules[moduleId] = {
  /******/ 			i: moduleId,
  /******/ 			l: false,
  /******/ 			exports: {}
  /******/ 		};
  /******/
  /******/ 		// Execute the module function
  /******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  /******/
  /******/ 		// Flag the module as loaded
  /******/ 		module.l = true;
  /******/
  /******/ 		// Return the exports of the module
  /******/ 		return module.exports;
  /******/ 	}
  /******/
  /******/ 	// This file contains only the entry chunk.
  /******/ 	// The chunk loading function for additional chunks
  /******/ 	__webpack_require__.e = function requireEnsure(chunkId) {
  /******/ 		// "0" is the signal for "already loaded"
  /******/ 		if(installedChunks[chunkId] !== 0) {
  /******/ 			var chunk = require("./chunks/" + ({"0":"privacy","1":"about","2":"register","3":"not-found","4":"login","5":"home","6":"contact","7":"admin"}[chunkId]||chunkId) + ".js");
  /******/ 			var moreModules = chunk.modules, chunkIds = chunk.ids;
  /******/ 			for(var moduleId in moreModules) {
  /******/ 				modules[moduleId] = moreModules[moduleId];
  /******/ 			}
  /******/ 			for(var i = 0; i < chunkIds.length; i++)
  /******/ 				installedChunks[chunkIds[i]] = 0;
  /******/ 		}
  /******/ 		return Promise.resolve();
  /******/ 	};
  /******/
  /******/ 	// expose the modules object (__webpack_modules__)
  /******/ 	__webpack_require__.m = modules;
  /******/
  /******/ 	// expose the module cache
  /******/ 	__webpack_require__.c = installedModules;
  /******/
  /******/ 	// define getter function for harmony exports
  /******/ 	__webpack_require__.d = function(exports, name, getter) {
  /******/ 		if(!__webpack_require__.o(exports, name)) {
  /******/ 			Object.defineProperty(exports, name, {
  /******/ 				configurable: false,
  /******/ 				enumerable: true,
  /******/ 				get: getter
  /******/ 			});
  /******/ 		}
  /******/ 	};
  /******/
  /******/ 	// getDefaultExport function for compatibility with non-harmony modules
  /******/ 	__webpack_require__.n = function(module) {
  /******/ 		var getter = module && module.__esModule ?
  /******/ 			function getDefault() { return module['default']; } :
  /******/ 			function getModuleExports() { return module; };
  /******/ 		__webpack_require__.d(getter, 'a', getter);
  /******/ 		return getter;
  /******/ 	};
  /******/
  /******/ 	// Object.prototype.hasOwnProperty.call
  /******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  /******/
  /******/ 	// __webpack_public_path__
  /******/ 	__webpack_require__.p = "/assets/";
  /******/
  /******/ 	// uncatched error handler for webpack runtime
  /******/ 	__webpack_require__.oe = function(err) {
  /******/ 		process.nextTick(function() {
  /******/ 			throw err; // catch this error by using System.import().catch()
  /******/ 		});
  /******/ 	};
  /******/
  /******/ 	// Load entry module and return exports
  /******/ 	return __webpack_require__(__webpack_require__.s = 16);
  /******/ })
  /************************************************************************/
  /******/ ([
  /* 0 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_sequelize__ = __webpack_require__(1);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_sequelize___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_sequelize__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__config__ = __webpack_require__(3);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__config___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__config__);
  /**
   * React Starter Kit (https://www.reactstarterkit.com/)
   *
   * Copyright © 2014-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  
  var sequelize = new __WEBPACK_IMPORTED_MODULE_0_sequelize___default.a(__WEBPACK_IMPORTED_MODULE_1__config___default.a.databaseUrl, {
    define: {
      freezeTableName: true
    }
  });
  /* harmony default export */ __webpack_exports__["a"] = (sequelize);
  
  /***/ }),
  /* 1 */
  /***/ (function(module, exports) {
  
  module.exports = require("sequelize");
  
  /***/ }),
  /* 2 */
  /***/ (function(module, exports) {
  
  module.exports = require("react");
  
  /***/ }),
  /* 3 */
  /***/ (function(module, exports, __webpack_require__) {
  
  /**
   * React Starter Kit (https://www.reactstarterkit.com/)
   *
   * Copyright © 2014-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  /* eslint-disable max-len */
  if (false) {
    throw new Error('Do not import `config.js` from inside the client-side code.');
  }
  
  module.exports = {
    // Node.js app
    port: process.env.OPENSHIFT_NODEJS_PORT || process.env.VCAP_APP_PORT || process.env.PORT || process.env.DEV_SERVICE_PORT || 8080,
    // API Gateway
    api: {
      // API URL to be used in the client-side code
      clientUrl: process.env.API_CLIENT_URL || '',
      // API URL to be used in the server-side code
      serverUrl: process.env.API_SERVER_URL || process.env.GRAPHQL_URL || "http://".concat(process.env.GRAPHQL_HOST || 'localhost', ":").concat(process.env.OPENSHIFT_NODEJS_PORT || process.env.VCAP_APP_PORT || process.env.PORT || process.env.DEV_SERVICE_PORT || process.env.GRAPHQL_PORT || 8080)
    },
    // Database
    databaseUrl: process.env.DATABASE_URL || 'sqlite:data/database.sqlite',
    // Web analytics
    analytics: {
      // https://analytics.google.com/
      googleTrackingId: process.env.GOOGLE_TRACKING_ID // UA-XXXXX-X
  
    },
    // Authentication
    auth: {
      jwt: {
        secret: process.env.JWT_SECRET || 'XXXX-REPLACEME-XXXX'
      },
      // https://developers.facebook.com/
      facebook: {
        id: process.env.FACEBOOK_APP_ID || '186244551745631',
        secret: process.env.FACEBOOK_APP_SECRET || 'a970ae3240ab4b9b8aae0f9f0661c6fc'
      },
      // https://cloud.google.com/console/project
      google: {
        id: process.env.GOOGLE_CLIENT_ID || '251410730550-ahcg0ou5mgfhl8hlui1urru7jn5s12km.apps.googleusercontent.com',
        secret: process.env.GOOGLE_CLIENT_SECRET || 'Y8yR9yZAhm9jQ8FKAL8QIEcd'
      },
      // https://apps.twitter.com/
      twitter: {
        key: process.env.TWITTER_CONSUMER_KEY || 'Ie20AZvLJI2lQD5Dsgxgjauns',
        secret: process.env.TWITTER_CONSUMER_SECRET || 'KTZ6cxoKnEakQCeSpZlaUCJWGAlTEBJj0y2EMkUBujA7zWSvaQ'
      }
    }
  };
  
  /***/ }),
  /* 4 */
  /***/ (function(module, exports) {
  
  module.exports = require("graphql");
  
  /***/ }),
  /* 5 */
  /***/ (function(module, exports) {
  
  module.exports = require("prop-types");
  
  /***/ }),
  /* 6 */
  /***/ (function(module, exports) {
  
  module.exports = require("node-fetch");
  
  /***/ }),
  /* 7 */
  /***/ (function(module, exports) {
  
  module.exports = require("gun/gun");
  
  /***/ }),
  /* 8 */
  /***/ (function(module, exports, __webpack_require__) {
  
  
      var content = __webpack_require__(52);
      var insertCss = __webpack_require__(13);
  
      if (typeof content === 'string') {
        content = [[module.i, content, '']];
      }
  
      module.exports = content.locals || {};
      module.exports._getContent = function() { return content; };
      module.exports._getCss = function() { return content.toString(); };
      module.exports._insertCss = function(options) { return insertCss(content, options) };
      
      // Hot Module Replacement
      // https://webpack.github.io/docs/hot-module-replacement
      // Only activated in browser context
      if (false) {
        var removeCss = function() {};
        module.hot.accept("!!../../../../../../../tmp/ZDU5YjI3MDhhYTU1ODVkYTg3MDI0OTc4/memory02-alex2006hw/root/node_modules/css-loader/index.js??ref--1-rules-2!../../../../../../../tmp/ZDU5YjI3MDhhYTU1ODVkYTg3MDI0OTc4/memory02-alex2006hw/root/node_modules/postcss-loader/lib/index.js??ref--1-rules-3!./ErrorPage.css", function() {
          content = require("!!../../../../../../../tmp/ZDU5YjI3MDhhYTU1ODVkYTg3MDI0OTc4/memory02-alex2006hw/root/node_modules/css-loader/index.js??ref--1-rules-2!../../../../../../../tmp/ZDU5YjI3MDhhYTU1ODVkYTg3MDI0OTc4/memory02-alex2006hw/root/node_modules/postcss-loader/lib/index.js??ref--1-rules-3!./ErrorPage.css");
  
          if (typeof content === 'string') {
            content = [[module.id, content, '']];
          }
  
          removeCss = insertCss(content, { replace: true });
        });
        module.hot.dispose(function() { removeCss(); });
      }
    
  
  /***/ }),
  /* 9 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__sequelize__ = __webpack_require__(0);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__User__ = __webpack_require__(59);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__UserLogin__ = __webpack_require__(60);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__UserClaim__ = __webpack_require__(61);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__UserProfile__ = __webpack_require__(62);
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_1__User__["a"]; });
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_2__UserLogin__["a"]; });
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_3__UserClaim__["a"]; });
  /* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_4__UserProfile__["a"]; });
  /**
   * React Starter Kit (https://www.reactstarterkit.com/)
   *
   * Copyright © 2014-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  
  
  
  
  __WEBPACK_IMPORTED_MODULE_1__User__["a" /* default */].hasMany(__WEBPACK_IMPORTED_MODULE_2__UserLogin__["a" /* default */], {
    foreignKey: 'userId',
    as: 'logins',
    onUpdate: 'cascade',
    onDelete: 'cascade'
  });
  __WEBPACK_IMPORTED_MODULE_1__User__["a" /* default */].hasMany(__WEBPACK_IMPORTED_MODULE_3__UserClaim__["a" /* default */], {
    foreignKey: 'userId',
    as: 'claims',
    onUpdate: 'cascade',
    onDelete: 'cascade'
  });
  __WEBPACK_IMPORTED_MODULE_1__User__["a" /* default */].hasOne(__WEBPACK_IMPORTED_MODULE_4__UserProfile__["a" /* default */], {
    foreignKey: 'userId',
    as: 'profile',
    onUpdate: 'cascade',
    onDelete: 'cascade'
  });
  
  function sync() {
    return __WEBPACK_IMPORTED_MODULE_0__sequelize__["a" /* default */].sync.apply(__WEBPACK_IMPORTED_MODULE_0__sequelize__["a" /* default */], arguments);
  }
  
  /* harmony default export */ __webpack_exports__["e"] = ({
    sync: sync
  });
  
  
  /***/ }),
  /* 10 */
  /***/ (function(module, exports) {
  
  module.exports = require("redux");
  
  /***/ }),
  /* 11 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return SET_RUNTIME_VARIABLE; });
  /* eslint-disable import/prefer-default-export */
  var SET_RUNTIME_VARIABLE = 'SET_RUNTIME_VARIABLE';
  
  /***/ }),
  /* 12 */
  /***/ (function(module, exports) {
  
  /*
  	MIT License http://www.opensource.org/licenses/mit-license.php
  	Author Tobias Koppers @sokra
  */
  // css base code, injected by the css-loader
  module.exports = function(useSourceMap) {
  	var list = [];
  
  	// return the list of modules as css string
  	list.toString = function toString() {
  		return this.map(function (item) {
  			var content = cssWithMappingToString(item, useSourceMap);
  			if(item[2]) {
  				return "@media " + item[2] + "{" + content + "}";
  			} else {
  				return content;
  			}
  		}).join("");
  	};
  
  	// import a list of modules into the list
  	list.i = function(modules, mediaQuery) {
  		if(typeof modules === "string")
  			modules = [[null, modules, ""]];
  		var alreadyImportedModules = {};
  		for(var i = 0; i < this.length; i++) {
  			var id = this[i][0];
  			if(typeof id === "number")
  				alreadyImportedModules[id] = true;
  		}
  		for(i = 0; i < modules.length; i++) {
  			var item = modules[i];
  			// skip already imported module
  			// this implementation is not 100% perfect for weird media query combinations
  			//  when a module is imported multiple times with different media queries.
  			//  I hope this will never occur (Hey this way we have smaller bundles)
  			if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
  				if(mediaQuery && !item[2]) {
  					item[2] = mediaQuery;
  				} else if(mediaQuery) {
  					item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
  				}
  				list.push(item);
  			}
  		}
  	};
  	return list;
  };
  
  function cssWithMappingToString(item, useSourceMap) {
  	var content = item[1] || '';
  	var cssMapping = item[3];
  	if (!cssMapping) {
  		return content;
  	}
  
  	if (useSourceMap && typeof btoa === 'function') {
  		var sourceMapping = toComment(cssMapping);
  		var sourceURLs = cssMapping.sources.map(function (source) {
  			return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'
  		});
  
  		return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
  	}
  
  	return [content].join('\n');
  }
  
  // Adapted from convert-source-map (MIT)
  function toComment(sourceMap) {
  	// eslint-disable-next-line no-undef
  	var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
  	var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;
  
  	return '/*# ' + data + ' */';
  }
  
  
  /***/ }),
  /* 13 */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  var _stringify = __webpack_require__(53);
  
  var _stringify2 = _interopRequireDefault(_stringify);
  
  var _slicedToArray2 = __webpack_require__(54);
  
  var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  /**
   * Isomorphic CSS style loader for Webpack
   *
   * Copyright © 2015-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  var prefix = 's';
  var inserted = {};
  
  // Base64 encoding and decoding - The "Unicode Problem"
  // https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem
  function b64EncodeUnicode(str) {
    return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function (match, p1) {
      return String.fromCharCode('0x' + p1);
    }));
  }
  
  /**
   * Remove style/link elements for specified node IDs
   * if they are no longer referenced by UI components.
   */
  function removeCss(ids) {
    ids.forEach(function (id) {
      if (--inserted[id] <= 0) {
        var elem = document.getElementById(prefix + id);
        if (elem) {
          elem.parentNode.removeChild(elem);
        }
      }
    });
  }
  
  /**
   * Example:
   *   // Insert CSS styles object generated by `css-loader` into DOM
   *   var removeCss = insertCss([[1, 'body { color: red; }']]);
   *
   *   // Remove it from the DOM
   *   removeCss();
   */
  function insertCss(styles) {
    var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
        _ref$replace = _ref.replace,
        replace = _ref$replace === undefined ? false : _ref$replace,
        _ref$prepend = _ref.prepend,
        prepend = _ref$prepend === undefined ? false : _ref$prepend;
  
    var ids = [];
    for (var i = 0; i < styles.length; i++) {
      var _styles$i = (0, _slicedToArray3.default)(styles[i], 4),
          moduleId = _styles$i[0],
          css = _styles$i[1],
          media = _styles$i[2],
          sourceMap = _styles$i[3];
  
      var id = moduleId + '-' + i;
  
      ids.push(id);
  
      if (inserted[id]) {
        if (!replace) {
          inserted[id]++;
          continue;
        }
      }
  
      inserted[id] = 1;
  
      var elem = document.getElementById(prefix + id);
      var create = false;
  
      if (!elem) {
        create = true;
  
        elem = document.createElement('style');
        elem.setAttribute('type', 'text/css');
        elem.id = prefix + id;
  
        if (media) {
          elem.setAttribute('media', media);
        }
      }
  
      var cssText = css;
      if (sourceMap && typeof btoa === 'function') {
        // skip IE9 and below, see http://caniuse.com/atob-btoa
        cssText += '\n/*# sourceMappingURL=data:application/json;base64,' + b64EncodeUnicode((0, _stringify2.default)(sourceMap)) + '*/';
        cssText += '\n/*# sourceURL=' + sourceMap.file + '?' + id + '*/';
      }
  
      if ('textContent' in elem) {
        elem.textContent = cssText;
      } else {
        elem.styleSheet.cssText = cssText;
      }
  
      if (create) {
        if (prepend) {
          document.head.insertBefore(elem, document.head.childNodes[0]);
        } else {
          document.head.appendChild(elem);
        }
      }
    }
  
    return removeCss.bind(null, ids);
  }
  
  module.exports = insertCss;
  
  /***/ }),
  /* 14 */
  /***/ (function(module, exports) {
  
  module.exports = require("isomorphic-style-loader/lib/withStyles");
  
  /***/ }),
  /* 15 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return HOSTNAME; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DATA_FILE; });
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return DEVICE_ID; });
  /* unused harmony export GRAPHQL */
  /* unused harmony export DEBUG */
  /* unused harmony export DEBUG_LOG_URL */
  /////
  var HOSTNAME = "tropospheric-tropospheric.193b.starter-ca-central-1.openshiftapps.com";
  var DATA_FILE = "data/data-" + HOSTNAME;
  var DEVICE_ID = HOSTNAME; /////
  
  var GRAPHQL = "https://" + HOSTNAME + "/graphql";
  var DEBUG = false;
  var DEBUG_LOG_URL = "https://logentries.com/app/a092e388"; /////
  //
  //const MY_MEMORY =
  //  !window ||
  //  !window.location ||
  //  !window.location.protocol ||
  //  !window.location.host
  //    ? "https://dev-alex2006hw-redhat.193b.starter-ca-central-1.openshiftapps.com/gun"
  //    : window.location.protocol + "//" + window.location.host + "/gun";
  //
  //export const CLOUD_MEMORIES = MY_MEMORY;
  //export const DEV_CLOUD_MEMORIES = [
  //  "https://dev-ut-redhat.193b.starter-ca-central-1.openshiftapps.com/gun",
  //  "https://dev-ut-memtwo.193b.starter-ca-central-1.openshiftapps.com/gun"
  //];
  //export const ROOT_MEMORIES = [
  //  "https://tropospheric.mybluemix.net/gun",
  //  "https://tropospheric-tropospheric.193b.starter-ca-central-1.openshiftapps.com/gun"
  //];
  //export const MY_MEMORY = "https://memory02.alex2006hw.com/gun";
  //export const ROOT_MEMORIES = [
  //  "https://memory02.alex2006hw.com/gun",
  //  "https://memory02.pointlook.com/gun",
  //  "https://memory02.usertoken.com/gun"
  //];
  //export const PEER_MEMORIES = [
  //  "https://tropospheric.mybluemix.net/gun",
  //  "https://tropospheric-tropospheric.193b.starter-ca-central-1.openshiftapps.com/gun",
  //  "https://memory02-memory02-pl.193b.starter-ca-central-1.openshiftapps.com/gun",
  //  "https://m2-admin-ut-m2-admin-ut.193b.starter-ca-central-1.openshiftapps.com/gun",
  //  "https://m2-alex2006hw.193b.starter-ca-central-1.openshiftapps.com/gun",
  //  "https://m2-memtwo.193b.starter-ca-central-1.openshiftapps.com/gun"
  //];
  
  /***/ }),
  /* 16 */
  /***/ (function(module, exports, __webpack_require__) {
  
  __webpack_require__(17);
  module.exports = __webpack_require__(18);
  
  
  /***/ }),
  /* 17 */
  /***/ (function(module, exports) {
  
  module.exports = require("@babel/polyfill");
  
  /***/ }),
  /* 18 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path__ = __webpack_require__(19);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_path___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_path__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_express__ = __webpack_require__(20);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_express___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_express__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_cookie_parser__ = __webpack_require__(21);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_cookie_parser___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_cookie_parser__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_body_parser__ = __webpack_require__(22);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_body_parser___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_body_parser__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_express_jwt__ = __webpack_require__(23);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_express_jwt___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_express_jwt__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_express_graphql__ = __webpack_require__(24);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_express_graphql___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_express_graphql__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_jsonwebtoken__ = __webpack_require__(25);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_jsonwebtoken___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_jsonwebtoken__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_node_fetch__ = __webpack_require__(6);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_node_fetch___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_node_fetch__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react__ = __webpack_require__(2);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_react_dom_server__ = __webpack_require__(26);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_react_dom_server___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_react_dom_server__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_pretty_error__ = __webpack_require__(27);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_pretty_error___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_pretty_error__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_primus__ = __webpack_require__(28);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_primus___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_primus__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_uuid_v4__ = __webpack_require__(29);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_uuid_v4___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12_uuid_v4__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__vendors_commChannels__ = __webpack_require__(30);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14_hypernova_client__ = __webpack_require__(45);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14_hypernova_client___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_14_hypernova_client__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__vendors_devModePlugin__ = __webpack_require__(46);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__vendors_devModePlugin___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_15__vendors_devModePlugin__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__components_App__ = __webpack_require__(47);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__components_Html__ = __webpack_require__(49);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__routes_error_ErrorPage__ = __webpack_require__(51);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__routes_error_ErrorPage_css__ = __webpack_require__(8);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__routes_error_ErrorPage_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_19__routes_error_ErrorPage_css__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__createFetch__ = __webpack_require__(55);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__passport__ = __webpack_require__(56);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__router__ = __webpack_require__(63);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__data_models__ = __webpack_require__(9);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__data_schema__ = __webpack_require__(66);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__assets_json__ = __webpack_require__(71);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__assets_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_25__assets_json__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__store_configureStore__ = __webpack_require__(72);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_27__actions_runtime__ = __webpack_require__(80);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__config__ = __webpack_require__(3);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_28__config___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_28__config__);
  function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
  
  var REACT_ELEMENT_TYPE;
  
  function _jsx(type, props, key, children) { if (!REACT_ELEMENT_TYPE) { REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; } var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = new Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }
  
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
  
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _next(value) { step("next", value); } function _throw(err) { step("throw", err); } _next(); }); }; }
  
  /**
   * React Starter Kit (https://www.reactstarterkit.com/)
   *
   * Copyright © 2014-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  
  
  
  
  
  
  
  
  
   // ---------------------------------------------------
  // custom imports
  // ---------------------------------------------------
  
  
   //import Gun from "gun";
  //import "gun/lib/path";
  //import levelup from 'levelup';
  //import leveldown from 'leveldown';
  //import levelHyper from 'level-hyper';
  //import './vendors/gun-level';
  //import { DATA_FILE, DEVICE_ID } from "./configs/localconfigs";
  //import { ROOT_MEMORIES } from './configs/serverMemories';
  
  
  
   // ---------------------------------------------------
  
  
  
  
  
  
  
  
  
  
   // eslint-disable-line import/no-unresolved
  
  
  
  
  var app = __WEBPACK_IMPORTED_MODULE_1_express___default()();
  app.use(__WEBPACK_IMPORTED_MODULE_13__vendors_commChannels__["a" /* Gun */].serve); //
  // gundb
  // ---------------------------------------
  //const levelDB = levelHyper(DATA_FILE);
  //const gunOptions = {
  //  level: levelDB,
  //  web: app,
  //  file: false,
  //  peer: ROOT_MEMORIES
  //};
  //const gun = Gun(gunOptions);
  //gun.on("out", { get: { "#": { "*": "" } } });
  //
  //const gunLocal = Gun();
  //
  //const appState = gunLocal.get(DEVICE_ID);
  //const cloudState = gun.get(DEVICE_ID);
  //const getAppState = (key) => {
  ////  console.log('1.server getAppState ', key)
  //  appState.get(key).val(v => { 
  ////    console.log('2.server getAppState ', key, v)
  //    return v
  //  })
  //}
  //const getCloudState = (key) => {
  ////  console.log('1.server getCloudState ', key)
  //  cloudState.get(key).val(v => { 
  ////    console.log('2.server getCloudState ', key, v)
  //    return v 
  //  })
  //}
  //
  // Tell any CSS tooling (such as Material UI) to use all vendor prefixes if the
  // user agent is not known.
  // -----------------------------------------------------------------------------
  
  global.navigator = global.navigator || {};
  global.navigator.userAgent = global.navigator.userAgent || 'all'; //
  // Register Node.js middleware
  // -----------------------------------------------------------------------------
  
  app.use(__WEBPACK_IMPORTED_MODULE_1_express___default.a.static(__WEBPACK_IMPORTED_MODULE_0_path___default.a.resolve(__dirname, 'public')));
  app.use(__WEBPACK_IMPORTED_MODULE_2_cookie_parser___default()());
  app.use(__WEBPACK_IMPORTED_MODULE_3_body_parser___default.a.urlencoded({
    extended: true
  }));
  app.use(__WEBPACK_IMPORTED_MODULE_3_body_parser___default.a.json()); //
  // Authentication
  // -----------------------------------------------------------------------------
  
  app.use(__WEBPACK_IMPORTED_MODULE_4_express_jwt___default()({
    secret: __WEBPACK_IMPORTED_MODULE_28__config___default.a.auth.jwt.secret,
    credentialsRequired: false,
    getToken: function getToken(req) {
      return req.cookies.id_token;
    }
  })); // Error handler for express-jwt
  
  app.use(function (err, req, res, next) {
    // eslint-disable-line no-unused-vars
    if (err instanceof __WEBPACK_IMPORTED_MODULE_4_express_jwt__["UnauthorizedError"]) {
      console.error('[express-jwt-error]', req.cookies.id_token); // `clearCookie`, otherwise user can't use web-app until cookie expires
  
      res.clearCookie('id_token');
    }
  
    next(err);
  });
  app.use(__WEBPACK_IMPORTED_MODULE_21__passport__["a" /* default */].initialize());
  
  if (false) {
    app.enable('trust proxy');
  }
  
  app.get('/login/facebook', __WEBPACK_IMPORTED_MODULE_21__passport__["a" /* default */].authenticate('facebook', {
    scope: ['email', 'user_location'],
    session: false
  }));
  app.get('/login/facebook/return', __WEBPACK_IMPORTED_MODULE_21__passport__["a" /* default */].authenticate('facebook', {
    failureRedirect: '/login',
    session: false
  }), function (req, res) {
    var expiresIn = 60 * 60 * 24 * 180; // 180 days
  
    var token = __WEBPACK_IMPORTED_MODULE_6_jsonwebtoken___default.a.sign(req.user, __WEBPACK_IMPORTED_MODULE_28__config___default.a.auth.jwt.secret, {
      expiresIn: expiresIn
    });
    res.cookie('id_token', token, {
      maxAge: 1000 * expiresIn,
      httpOnly: true
    });
    res.redirect('/');
  }); //
  // connects hypernova
  // --------------------------------------------------------
  // get current hypernova
  //console.log('1.server ID : ', DEVICE_ID, 'memories : ', ROOT_MEMORIES);
  //let HYPER_PORT = getAppState('HYPER_PORT') || process.env.HYPER_PORT || 9600;
  //let HYPER_HOST = getAppState('HYPER_HOST') || process.env.HYPER_HOST || 'localhost';
  
  var HYPER_URL = Object(__WEBPACK_IMPORTED_MODULE_13__vendors_commChannels__["c" /* getAppState */])('HYPER_URL') || 'http://localhost:9600/batch';
  console.log('1.server hypernova ==> appState HYPER_URL : ', HYPER_URL); //var HYPER_PORT, HYPER_HOST
  //var HYPER_URL
  //cloudState.get('HYPER_PORT').on(port => {
  //  console.log('1.server hypernova ==> port : ', port)
  //  HYPER_PORT = port
  //  })
  //cloudState.get('HYPER_HOST').on(host => {
  //  console.log('2.server hypernova ==> host : ', host)
  //  HYPER_HOST = host
  //  })
  
  __WEBPACK_IMPORTED_MODULE_13__vendors_commChannels__["b" /* appState */].get('HYPER_URL').on(function (url) {
    console.log('4.server hypernova ==> appState HYPER_URL : ', url);
    HYPER_URL = url;
  });
  console.log('5.server hypernova ==> HYPER_URL : ', HYPER_URL);
  
  if (HYPER_URL) {
    var renderer = new __WEBPACK_IMPORTED_MODULE_14_hypernova_client___default.a({
      url: HYPER_URL,
      plugins: [__WEBPACK_IMPORTED_MODULE_15__vendors_devModePlugin___default.a]
    });
    app.get('/s/aphrodite', function (req, res) {
      var jobs = {
        aphrodite: {
          name: req.query.menu || HYPER_URL
        }
      };
      renderer.render(jobs).then(function (html) {
        return res.send(html);
      });
    });
    app.get('/s/simple', function (req, res) {
      var jobs = {
        SimpleComponent: {
          name: req.query.name || HYPER_URL
        }
      };
      renderer.render(jobs).then(function (html) {
        return res.send(html);
      });
    });
  } //
  // Register API middleware
  // -----------------------------------------------------------------------------
  
  
  app.use('/graphql', __WEBPACK_IMPORTED_MODULE_5_express_graphql___default()(function (req) {
    return {
      schema: __WEBPACK_IMPORTED_MODULE_24__data_schema__["a" /* default */],
      graphiql: true || false,
      rootValue: {
        request: req
      },
      pretty: true || false
    };
  })); //
  // Register server-side rendering middleware
  // -----------------------------------------------------------------------------
  
  app.get('*',
  /*#__PURE__*/
  function () {
    var _ref = _asyncToGenerator(
    /*#__PURE__*/
    regeneratorRuntime.mark(function _callee(req, res, next) {
      var css, fetch, initialState, store, context, route, data, _data$scripts, html;
  
      return regeneratorRuntime.wrap(function _callee$(_context) {
        while (1) {
          switch (_context.prev = _context.next) {
            case 0:
              _context.prev = 0;
              css = new Set(); // Universal HTTP client
  
              fetch = Object(__WEBPACK_IMPORTED_MODULE_20__createFetch__["a" /* default */])(__WEBPACK_IMPORTED_MODULE_7_node_fetch___default.a, {
                baseUrl: __WEBPACK_IMPORTED_MODULE_28__config___default.a.api.serverUrl,
                cookie: req.headers.cookie
              });
              initialState = {
                user: req.user || null
              };
              store = Object(__WEBPACK_IMPORTED_MODULE_26__store_configureStore__["a" /* default */])(initialState, {
                fetch: fetch // I should not use `history` on server.. but how I do redirection? follow universal-router
  
              });
              store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_27__actions_runtime__["a" /* setRuntimeVariable */])({
                name: 'initialNow',
                value: Date.now()
              })); // Global (context) variables that can be easily accessed from any React component
              // https://facebook.github.io/react/docs/context.html
  
              context = {
                // Enables critical path CSS rendering
                // https://github.com/kriasoft/isomorphic-style-loader
                insertCss: function insertCss() {
                  for (var _len = arguments.length, styles = new Array(_len), _key = 0; _key < _len; _key++) {
                    styles[_key] = arguments[_key];
                  }
  
                  // eslint-disable-next-line no-underscore-dangle
                  styles.forEach(function (style) {
                    return css.add(style._getCss());
                  });
                },
                fetch: fetch,
                // You can access redux through react-redux connect
                store: store,
                storeSubscription: null
              };
              _context.next = 9;
              return __WEBPACK_IMPORTED_MODULE_22__router__["a" /* default */].resolve(_extends({}, context, {
                pathname: req.path,
                query: req.query
              }));
  
            case 9:
              route = _context.sent;
  
              if (!route.redirect) {
                _context.next = 13;
                break;
              }
  
              res.redirect(route.status || 302, route.redirect);
              return _context.abrupt("return");
  
            case 13:
              data = _extends({}, route);
              data.children = __WEBPACK_IMPORTED_MODULE_9_react_dom_server___default.a.renderToString(_jsx(__WEBPACK_IMPORTED_MODULE_16__components_App__["a" /* default */], {
                context: context
              }, void 0, route.component));
              data.styles = [{
                id: 'css',
                cssText: _toConsumableArray(css).join('')
              }];
              data.scripts = [__WEBPACK_IMPORTED_MODULE_25__assets_json___default.a.vendor.js];
  
              if (route.chunks) {
                (_data$scripts = data.scripts).push.apply(_data$scripts, _toConsumableArray(route.chunks.map(function (chunk) {
                  return __WEBPACK_IMPORTED_MODULE_25__assets_json___default.a[chunk].js;
                })));
              }
  
              data.scripts.push(__WEBPACK_IMPORTED_MODULE_25__assets_json___default.a.client.js);
              data.app = {
                apiUrl: __WEBPACK_IMPORTED_MODULE_28__config___default.a.api.clientUrl,
                state: context.store.getState()
              };
              html = __WEBPACK_IMPORTED_MODULE_9_react_dom_server___default.a.renderToStaticMarkup(__WEBPACK_IMPORTED_MODULE_8_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_17__components_Html__["a" /* default */], data));
              res.status(route.status || 200);
              res.send("<!doctype html>".concat(html));
              _context.next = 28;
              break;
  
            case 25:
              _context.prev = 25;
              _context.t0 = _context["catch"](0);
              next(_context.t0);
  
            case 28:
            case "end":
              return _context.stop();
          }
        }
      }, _callee, this, [[0, 25]]);
    }));
  
    return function (_x, _x2, _x3) {
      return _ref.apply(this, arguments);
    };
  }()); //
  // Error handling
  // -----------------------------------------------------------------------------
  
  var pe = new __WEBPACK_IMPORTED_MODULE_10_pretty_error___default.a();
  pe.skipNodeFiles();
  pe.skipPackage('express'); // eslint-disable-next-line no-unused-vars
  
  app.use(function (err, req, res, next) {
    console.error(pe.render(err));
    var html = __WEBPACK_IMPORTED_MODULE_9_react_dom_server___default.a.renderToStaticMarkup(_jsx(__WEBPACK_IMPORTED_MODULE_17__components_Html__["a" /* default */], {
      title: "Internal Server Error",
      description: err.message,
      styles: [{
        id: 'css',
        cssText: __WEBPACK_IMPORTED_MODULE_19__routes_error_ErrorPage_css___default.a._getCss()
      }] // eslint-disable-line no-underscore-dangle
  
    }, void 0, __WEBPACK_IMPORTED_MODULE_9_react_dom_server___default.a.renderToString(_jsx(__WEBPACK_IMPORTED_MODULE_18__routes_error_ErrorPage__["a" /* ErrorPageWithoutStyle */], {
      error: err
    }))));
    res.status(err.status || 500);
    res.send("<!doctype html>".concat(html));
  }); //
  // Launch the server
  // -----------------------------------------------------------------------------
  
  var promise = __WEBPACK_IMPORTED_MODULE_23__data_models__["e" /* default */].sync().catch(function (err) {
    return console.error(err.stack);
  });
  
  if (true) {
    promise.then(function () {
      app.listen(__WEBPACK_IMPORTED_MODULE_28__config___default.a.port, function () {
        console.info("The server is running at http://localhost:".concat(__WEBPACK_IMPORTED_MODULE_28__config___default.a.port, "/"));
      });
    });
  } //
  // Hot Module Replacement
  // -----------------------------------------------------------------------------
  
  
  if (false) {
    app.hot = module.hot;
    module.hot.accept('./router');
  }
  
  /* harmony default export */ __webpack_exports__["default"] = (app);
  
  /***/ }),
  /* 19 */
  /***/ (function(module, exports) {
  
  module.exports = require("path");
  
  /***/ }),
  /* 20 */
  /***/ (function(module, exports) {
  
  module.exports = require("express");
  
  /***/ }),
  /* 21 */
  /***/ (function(module, exports) {
  
  module.exports = require("cookie-parser");
  
  /***/ }),
  /* 22 */
  /***/ (function(module, exports) {
  
  module.exports = require("body-parser");
  
  /***/ }),
  /* 23 */
  /***/ (function(module, exports) {
  
  module.exports = require("express-jwt");
  
  /***/ }),
  /* 24 */
  /***/ (function(module, exports) {
  
  module.exports = require("express-graphql");
  
  /***/ }),
  /* 25 */
  /***/ (function(module, exports) {
  
  module.exports = require("jsonwebtoken");
  
  /***/ }),
  /* 26 */
  /***/ (function(module, exports) {
  
  module.exports = require("react-dom/server");
  
  /***/ }),
  /* 27 */
  /***/ (function(module, exports) {
  
  module.exports = require("pretty-error");
  
  /***/ }),
  /* 28 */
  /***/ (function(module, exports) {
  
  module.exports = require("primus");
  
  /***/ }),
  /* 29 */
  /***/ (function(module, exports) {
  
  module.exports = require("uuid/v4");
  
  /***/ }),
  /* 30 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return appState; });
  /* unused harmony export cloudState */
  /* unused harmony export getCloudState */
  /* unused harmony export putCloudState */
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getAppState; });
  /* unused harmony export putAppState */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_gun__ = __webpack_require__(31);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_gun___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_gun__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_gun_lib_path__ = __webpack_require__(32);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_gun_lib_path___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_gun_lib_path__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_gun_lib_not_js__ = __webpack_require__(33);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_gun_lib_not_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_gun_lib_not_js__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_gun_unset__ = __webpack_require__(34);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_gun_unset___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_gun_unset__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__gun_level___ = __webpack_require__(35);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__gun_level____default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4__gun_level___);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_levelup__ = __webpack_require__(41);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_levelup___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_levelup__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_leveldown__ = __webpack_require__(42);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_leveldown___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_leveldown__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_level_hyper__ = __webpack_require__(43);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_level_hyper___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_level_hyper__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__configs_localconfigs__ = __webpack_require__(15);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__configs_serverMemories__ = __webpack_require__(44);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__configs_serverMemories___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9__configs_serverMemories__);
  /* harmony reexport (default from non-hamory) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0_gun___default.a; });
  
  
  
  
  
  
  
  
  
  
  var levelDB = __WEBPACK_IMPORTED_MODULE_7_level_hyper___default()(__WEBPACK_IMPORTED_MODULE_8__configs_localconfigs__["a" /* DATA_FILE */]);
  var gunLocalOptions = {
    level: levelDB,
    file: false
  };
  var gunRootOptions = {
    peer: __WEBPACK_IMPORTED_MODULE_9__configs_serverMemories__["ROOT_MEMORIES"]
  };
  var gun = __WEBPACK_IMPORTED_MODULE_0_gun___default()(gunRootOptions);
  gun.on("out", {
    get: {
      "#": {
        "*": ""
      }
    }
  });
  var gunLocal = __WEBPACK_IMPORTED_MODULE_0_gun___default()(gunLocalOptions); // local channels
  
  var appState = gunLocal.get("".concat(__WEBPACK_IMPORTED_MODULE_8__configs_localconfigs__["b" /* DEVICE_ID */], "/state")); // cloud channels
  
  var cloudAlive = gun.get('alive');
  var cloudState = gun.get("".concat(__WEBPACK_IMPORTED_MODULE_8__configs_localconfigs__["b" /* DEVICE_ID */], "/state"));
  var cloudPeers = gun.get("".concat(__WEBPACK_IMPORTED_MODULE_8__configs_localconfigs__["b" /* DEVICE_ID */], "/peers"));
  
  var getAppState = function getAppState(key) {
    //  console.log('1.commChannels getAppState ', key);
    appState.get(key).val(function (v) {
      //    console.log('1.commChannels getAppState ', key, v);
      return v;
    });
  };
  
  var getCloudState = function getCloudState(key) {
    //  console.log('1.commChannels getCloudState ', key);
    cloudState.get(key).val(function (v) {
      //    console.log('1.commChannels getCloudState ', key, v);
      return v;
    });
  };
  
  var putAppState = function putAppState(key, value) {
    //  console.log('1.commChannels putAppState ', key, value)
    appState.get(key).put(value);
  };
  
  var putCloudState = function putCloudState(key, value) {
    //  console.log('1.commChannels putCloudState ', key, value)
    cloudState.get(key).put(value);
  }; //
  //const registerWorker = id => {
  //  const currentDate = new Date().toISOString();
  //  console.log('1.commChannels registerWorker : ', id);
  //  // ignore myself
  //  //  if (id === DEVICE_ID) {
  //  //    console.log('2.commChannels registerWorker ignoring MYSELF : ', id);
  //  //    return;
  //  //  }
  //  try {
  //    let newPeer = gun.get(id);
  //    // first timer heard from this peer
  //    cloudPeers
  //      .get('peers-radius-1')
  //      .set(newPeer)
  //      .get('alive')
  //      .not(key => {
  //        console.log('3.commChannels registerWorker NEW peer : ', key, id);
  //        // add this peer to peer-radius-1
  //        cloudPeers
  //          .get('peers-radius-1')
  //          .set(newPeer)
  //          .get('alive')
  //          .put(currentDate);
  //      });
  //    // heard from this worker before
  //    cloudPeers
  //      .get('peers-radius-1')
  //      .set(newPeer)
  //      .get('alive')
  //      .val(lastAlive => {
  //        console.log(
  //          '4.commChannels registerWorker ',
  //          id,
  //          ' lastAlive ',
  //          lastAlive,
  //        );
  //        cloudPeers
  //          .get('peers-radius-1')
  //          .set(newPeer)
  //          .get('lastAlive')
  //          .put(lastAlive);
  //      });
  //    cloudPeers
  //      .get('peers-radius-1')
  //      .set(newPeer)
  //      .get('alive')
  //      .put(currentDate);
  //    console.log('5.commChannels registerWorker ', id, ' now ', currentDate);
  //  } catch (e) {}
  //};
  
  
  
  
  /***/ }),
  /* 31 */
  /***/ (function(module, exports) {
  
  module.exports = require("gun");
  
  /***/ }),
  /* 32 */
  /***/ (function(module, exports) {
  
  module.exports = require("gun/lib/path");
  
  /***/ }),
  /* 33 */
  /***/ (function(module, exports) {
  
  module.exports = require("gun/lib/not.js");
  
  /***/ }),
  /* 34 */
  /***/ (function(module, exports) {
  
  module.exports = require("gun-unset");
  
  /***/ }),
  /* 35 */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  var _Adapter = __webpack_require__(36);
  
  var _Adapter2 = _interopRequireDefault(_Adapter);
  
  var _gun = __webpack_require__(7);
  
  var _gun2 = _interopRequireDefault(_gun);
  
  function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
      default: obj
    };
  }
  
  _gun2.default.on("opt", function (context) {
    // Pass to subsequent opt handlers
    this.to.next(context);
    var level = context.opt.level; // Filter out instances without the level option.
  
    if (!(level instanceof Object)) {
      return;
    }
  
    var adapter = _Adapter2.default.from(level, context); // Allows other plugins to respond concurrently.
  
  
    var pluginInterop = function pluginInterop(middleware) {
      return function (ctx) {
        this.to.next(ctx);
        return middleware(ctx);
      };
    }; // Register the driver.
  
  
    context.on("get", pluginInterop(adapter.read));
    context.on("put", pluginInterop(adapter.write));
  });
  
  module.exports = _gun2.default;
  
  /***/ }),
  /* 36 */
  /***/ (function(module, exports, __webpack_require__) {
  
  "use strict";
  
  
  Object.defineProperty(exports, "__esModule", {
    value: true
  });
  
  var _keys = __webpack_require__(37);
  
  var _keys2 = _interopRequireDefault(_keys);
  
  var _classCallCheck2 = __webpack_require__(38);
  
  var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
  
  var _createClass2 = __webpack_require__(39);
  
  var _createClass3 = _interopRequireDefault(_createClass2);
  
  var _symbol = __webpack_require__(40);
  
  var _symbol2 = _interopRequireDefault(_symbol);
  
  var _gun = __webpack_require__(7);
  
  var _gun2 = _interopRequireDefault(_gun);
  
  function _interopRequireDefault(obj) {
    return obj && obj.__esModule ? obj : {
      default: obj
    };
  }
  
  var writing = (0, _symbol2.default)("In-process writes");
  /* eslint-disable id-length*/
  
  var notFound = /(NotFound|not found|not find)/i;
  var options = {
    valueEncoding: "json"
  }; // Gun merge algorithm, authored by Mark Nadal.
  
  var union = function union(vertex, node, opt) {
    if (!node || !node._) {
      return;
    }
  
    vertex = vertex || _gun2.default.state.to(node);
  
    if (!vertex || !vertex._) {
      return;
    }
  
    opt = _gun2.default.num.is(opt) ? {
      machine: opt
    } : {
      machine: _gun2.default.state()
    };
    opt.union = _gun2.default.obj.copy(vertex);
  
    if (!_gun2.default.node.is(node, function (val, key) {
      var HAM = _gun2.default.HAM(opt.machine, _gun2.default.state.is(node, key), _gun2.default.state.is(vertex, key, true), val, vertex[key]);
  
      if (!HAM.incoming) {
        return;
      }
  
      _gun2.default.state.to(node, key, opt.union);
    })) {
      return;
    }
  
    return opt.union; // eslint-disable-line
  };
  /**
   * Read/write hooks for Gun.
   *
   * @private
   * @param {LevelUP} level - A LevelUP interface.
   * @class
   */
  
  
  var Adapter = function () {
    (0, _createClass3.default)(Adapter, null, [{
      key: "from",
      value: function from(level, context) {
        return new Adapter(level, context);
      }
    }]);
  
    function Adapter(level, ctx) {
      (0, _classCallCheck3.default)(this, Adapter); // Save a reference to level and the gun instance
  
      this.level = level;
      this.ctx = ctx; // Preserve the `this` context for read/write calls.
  
      this.read = this.read.bind(this);
      this.write = this.write.bind(this); // In-process writes.
  
      level[writing] = level[writing] || {};
    }
    /**
     * Read a key from LevelDB.
     *
     * @param  {Object} context - A gun request context.
     * @returns {undefined}
     */
  
  
    (0, _createClass3.default)(Adapter, [{
      key: "read",
      value: function read(context) {
        var _this = this;
  
        var get = context.get;
        var level = this.level;
        var key = get["#"];
        var value = level[writing][key];
  
        if (value) {
          return this.afterRead(context, null, value);
        } // Read from level.
  
  
        return level.get(key, options, function (err, result) {
          // Error handling.
          if (err) {
            if (notFound.test(err.message)) {
              // Tell gun nothing was found.
              _this.afterRead(context, null);
  
              return;
            }
  
            _this.afterRead(context, err);
  
            return;
          } // Pass gun the result.
  
  
          _this.afterRead(context, null, result);
        });
      }
      /**
       * Return data to Gun
       *
       * @param  {Object} context - A gun request context.
       * @param  {Error|null} err - An Error object, if any
       * @param  {Object|null|undefined} data - The node retrieved, if found
       * @returns {undefined}
       */
  
    }, {
      key: "afterRead",
      value: function afterRead(context, err, data) {
        this.ctx.on("in", {
          "@": context["#"],
          put: _gun2.default.graph.node(data),
          err: err
        });
      }
      /**
       * Write a every node in a graph to level.
       *
       * @param  {Object} context - A gun write context.
       * @returns {undefined}
       */
  
    }, {
      key: "write",
      value: function write(context) {
        var self = this;
        var level = this.level;
        var graph = context.put; // Create a new batch write.
  
        var batch = level.batch();
        var keys = (0, _keys2.default)(graph);
        var merged = 0;
        /**
         * Report errors and clear out the in-process write cache.
         *
         * @param  {Error} [err] - An error given by level.
         * @returns {undefined}
         */
  
        function writeHandler() {
          var err = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; // Remove the in-process writes.
  
          keys.forEach(function (key) {
            delete level[writing][key];
          }); // Report whether it succeeded.
  
          self.ctx.on("in", {
            "@": context["#"],
            ok: !err,
            err: err
          });
        }
        /**
         * Determine whether a write should happen and invoke it,
         * passing the handler.
         *
         * @param  {Number} counted - The number of keys merged.
         * @returns {undefined}
         */
  
  
        function writeWhenReady(counted) {
          // Wait until we've checked all the nodes before
          // submitting the batch.
          if (counted < keys.length) {
            return;
          } // Write all the nodes to level.
  
  
          batch.write(writeHandler);
        } // Each node in the graph...
  
  
        keys.forEach(function (uid) {
          var node = graph[uid];
          var value = level[writing][uid]; // Check to see if it's in the process of writing.
  
          if (value) {
            node = union(node, value);
            merged += 1;
            batch.put(uid, node, options);
            writeWhenReady(merged);
            return;
          }
  
          level[writing][uid] = node; // Check to see if it exists.
  
          level.get(uid, options, function (error, result) {
            // If we already have data...
            if (!error) {
              // Merge with the write.
              node = union(node, result);
            } // Add the node to our write batch.
  
  
            batch.put(uid, node, options);
            writeWhenReady(merged += 1);
          });
        });
      }
    }]);
    return Adapter;
  }();
  
  exports.default = Adapter;
  
  /***/ }),
  /* 37 */
  /***/ (function(module, exports) {
  
  module.exports = require("babel-runtime/core-js/object/keys");
  
  /***/ }),
  /* 38 */
  /***/ (function(module, exports) {
  
  module.exports = require("babel-runtime/helpers/classCallCheck");
  
  /***/ }),
  /* 39 */
  /***/ (function(module, exports) {
  
  module.exports = require("babel-runtime/helpers/createClass");
  
  /***/ }),
  /* 40 */
  /***/ (function(module, exports) {
  
  module.exports = require("babel-runtime/core-js/symbol");
  
  /***/ }),
  /* 41 */
  /***/ (function(module, exports) {
  
  module.exports = require("levelup");
  
  /***/ }),
  /* 42 */
  /***/ (function(module, exports) {
  
  module.exports = require("leveldown");
  
  /***/ }),
  /* 43 */
  /***/ (function(module, exports) {
  
  module.exports = require("level-hyper");
  
  /***/ }),
  /* 44 */
  /***/ (function(module, exports) {
  
  /////
  //exports.HOSTNAME = "memory02-dev.alex2006hw.com";
  var SERVER_PORT = process.env.OPENSHIFT_NODEJS_PORT || process.env.VCAP_APP_PORT || process.env.PORT || process.env.DEV_SERVICE_PORT || process.argv[2] || 8080;
  var SERVER_URL = process.env.API_SERVER_URL || process.env.GRAPHQL_URL || "http://".concat(process.env.GRAPHQL_HOST || 'localhost', ":").concat(process.env.OPENSHIFT_NODEJS_PORT || process.env.VCAP_APP_PORT || process.env.PORT || process.env.DEV_SERVICE_PORT || process.env.GRAPHQL_PORT || SERVER_PORT, "/gun");
  exports.ROOT_MEMORIES = "";
  exports.MY_MEMORY = "https://tropospheric-tropospheric.193b.starter-ca-central-1.openshiftapps.com/gun"; //const MY_MEMORY =
  //  !window ||
  //  !window.location ||
  //  !window.location.protocol ||
  //  !window.location.host
  //    ? "https://dev-alex2006hw-redhat.193b.starter-ca-central-1.openshiftapps.com/gun"
  //    : window.location.protocol + "//" + window.location.host + "/gun";
  //
  //exports.CLOUD_MEMORIES = MY_MEMORY;
  //exports.DEV_CLOUD_MEMORIES = [
  //  "https://dev-ut-redhat.193b.starter-ca-central-1.openshiftapps.com/gun",
  //  "https://dev-ut-memtwo.193b.starter-ca-central-1.openshiftapps.com/gun"
  //];
  //exports.MY_MEMORY = "https://memory02.usertoken.com";
  //exports.PEER_MEMORIES = [
  //  "https://memory02.pointlook.com/gun",
  //  "https://memory02.alex2006hw.com/gun",
  //  "https://memory02.usertoken.com/gun"
  //];
  //exports.CHILD_MEMORIES = [
  //  "https://tropospheric.mybluemix.net/gun",
  //  "https://tropospheric-tropospheric.193b.starter-ca-central-1.openshiftapps.com/gun",
  //  "https://memory02-memory02-pl.193b.starter-ca-central-1.openshiftapps.com/gun",
  //  "https://m2-admin-ut-m2-admin-ut.193b.starter-ca-central-1.openshiftapps.com/gun",
  //  "https://m2-pointlook.193b.starter-ca-central-1.openshiftapps.com/gun",
  //  "https://m2-memtwo.193b.starter-ca-central-1.openshiftapps.com/gun"
  //];
  
  /***/ }),
  /* 45 */
  /***/ (function(module, exports) {
  
  module.exports = require("hypernova-client");
  
  /***/ }),
  /* 46 */
  /***/ (function(module, exports) {
  
  function renderStack(error) {
    var stack = Array.isArray(error.stack) ? error.stack : error.stack.split('\n');
    return stack.map(function (line) {
      return "<li>".concat(line, "</li>");
    }).join('\n');
  }
  
  function renderError(component, error) {
    return "\n    <div style=\"background-color: #ff5a5f; color: #fff; padding: 12px;\">\n      <p style=\"margin: 0\">\n        <strong>Development Warning!</strong>\n        The <code>".concat(component, "</code> component failed to render with Hypernova. Error stack:\n      </p>\n      <ul style=\"padding: 0 20px\">\n        ").concat(renderStack(error), "\n      </ul>\n    </div>\n  ");
  }
  
  var devModePlugin = {
    prepareRequest: function prepareRequest(req) {
      Object.keys(req).forEach(function (job) {
        return console.log('Preparing', job, req[job].data);
      });
      return req;
    },
    willSendRequest: function willSendRequest(req) {
      Object.keys(req).forEach(function (job) {
        return console.log('Requesting', job, req[job].data);
      });
    },
    afterResponse: function afterResponse(res) {
      return Object.keys(res).reduce(function (str, name) {
        if (res[name].error) {
          return str + renderError(name, res[name].error);
        }
  
        return str + res[name].html;
      }, '');
    },
    onError: function onError(err) {
      console.error(err.stack);
    }
  };
  module.exports = devModePlugin;
  
  /***/ }),
  /* 47 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(2);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(5);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_redux__ = __webpack_require__(48);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_redux___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_react_redux__);
  function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
  
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
  
  function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
  
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
  
  /**
   * React Starter Kit (https://www.reactstarterkit.com/)
   *
   * Copyright © 2014-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  
  
  
  var ContextType = _extends({
    // Enables critical path CSS rendering
    // https://github.com/kriasoft/isomorphic-style-loader
    insertCss: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired,
    // Universal HTTP client
    fetch: __WEBPACK_IMPORTED_MODULE_1_prop_types___default.a.func.isRequired
  }, __WEBPACK_IMPORTED_MODULE_2_react_redux__["Provider"].childContextTypes);
  /**
   * The top-level React component setting context (global) variables
   * that can be accessed from all the child components.
   *
   * https://facebook.github.io/react/docs/context.html
   *
   * Usage example:
   *
   *   const context = {
   *     history: createBrowserHistory(),
   *     store: createStore(),
   *   };
   *
   *   ReactDOM.render(
   *     <App context={context}>
   *       <Layout>
   *         <LandingPage />
   *       </Layout>
   *     </App>,
   *     container,
   *   );
   */
  
  
  var App =
  /*#__PURE__*/
  function (_React$PureComponent) {
    _inherits(App, _React$PureComponent);
  
    function App() {
      _classCallCheck(this, App);
  
      return _possibleConstructorReturn(this, (App.__proto__ || Object.getPrototypeOf(App)).apply(this, arguments));
    }
  
    _createClass(App, [{
      key: "getChildContext",
      value: function getChildContext() {
        return this.props.context;
      }
    }, {
      key: "render",
      value: function render() {
        // NOTE: If you need to add or modify header, footer etc. of the app,
        // please do that inside the Layout component.
        return __WEBPACK_IMPORTED_MODULE_0_react___default.a.Children.only(this.props.children);
      }
    }]);
  
    return App;
  }(__WEBPACK_IMPORTED_MODULE_0_react___default.a.PureComponent);
  
  Object.defineProperty(App, "childContextTypes", {
    configurable: true,
    enumerable: true,
    writable: true,
    value: ContextType
  });
  /* harmony default export */ __webpack_exports__["a"] = (App);
  
  /***/ }),
  /* 48 */
  /***/ (function(module, exports) {
  
  module.exports = require("react-redux");
  
  /***/ }),
  /* 49 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(2);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(5);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_serialize_javascript__ = __webpack_require__(50);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_serialize_javascript___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_serialize_javascript__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__config__ = __webpack_require__(3);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__config___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__config__);
  function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
  
  var REACT_ELEMENT_TYPE;
  
  function _jsx(type, props, key, children) { if (!REACT_ELEMENT_TYPE) { REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; } var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = new Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
  
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
  
  function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
  
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  
  /**
   * React Starter Kit (https://www.reactstarterkit.com/)
   *
   * Copyright © 2014-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  
  
  
  /* eslint-disable react/no-danger */
  
  var _ref = _jsx("meta", {
    charSet: "utf-8"
  });
  
  var _ref2 = _jsx("meta", {
    httpEquiv: "x-ua-compatible",
    content: "ie=edge"
  });
  
  var _ref3 = _jsx("meta", {
    name: "viewport",
    content: "width=device-width, initial-scale=1"
  });
  
  var _ref4 = _jsx("link", {
    rel: "apple-touch-icon",
    href: "apple-touch-icon.png"
  });
  
  var _ref5 = _jsx("script", {
    src: "https://www.google-analytics.com/analytics.js",
    async: true,
    defer: true
  });
  
  var Html =
  /*#__PURE__*/
  function (_React$Component) {
    _inherits(Html, _React$Component);
  
    function Html() {
      _classCallCheck(this, Html);
  
      return _possibleConstructorReturn(this, (Html.__proto__ || Object.getPrototypeOf(Html)).apply(this, arguments));
    }
  
    _createClass(Html, [{
      key: "render",
      value: function render() {
        var _props = this.props,
            title = _props.title,
            description = _props.description,
            styles = _props.styles,
            scripts = _props.scripts,
            app = _props.app,
            children = _props.children;
        return _jsx("html", {
          className: "no-js",
          lang: "en"
        }, void 0, _jsx("head", {}, void 0, _ref, _ref2, _jsx("title", {}, void 0, title), _jsx("meta", {
          name: "description",
          content: description
        }), _ref3, scripts.map(function (script) {
          return _jsx("link", {
            rel: "preload",
            href: script,
            as: "script"
          }, script);
        }), _ref4, styles.map(function (style) {
          return _jsx("style", {
            id: style.id,
            dangerouslySetInnerHTML: {
              __html: style.cssText
            }
          }, style.id);
        })), _jsx("body", {}, void 0, _jsx("div", {
          id: "app",
          dangerouslySetInnerHTML: {
            __html: children
          }
        }), _jsx("script", {
          dangerouslySetInnerHTML: {
            __html: "window.App=".concat(__WEBPACK_IMPORTED_MODULE_2_serialize_javascript___default()(app))
          }
        }), scripts.map(function (script) {
          return _jsx("script", {
            src: script
          }, script);
        }), __WEBPACK_IMPORTED_MODULE_3__config___default.a.analytics.googleTrackingId && _jsx("script", {
          dangerouslySetInnerHTML: {
            __html: 'window.ga=function(){ga.q.push(arguments)};ga.q=[];ga.l=+new Date;' + "ga('create','".concat(__WEBPACK_IMPORTED_MODULE_3__config___default.a.analytics.googleTrackingId, "','auto');ga('send','pageview')")
          }
        }), __WEBPACK_IMPORTED_MODULE_3__config___default.a.analytics.googleTrackingId && _ref5));
      }
    }]);
  
    return Html;
  }(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);
  
  Object.defineProperty(Html, "defaultProps", {
    configurable: true,
    enumerable: true,
    writable: true,
    value: {
      styles: [],
      scripts: []
    }
  });
  /* harmony default export */ __webpack_exports__["a"] = (Html);
  
  /***/ }),
  /* 50 */
  /***/ (function(module, exports) {
  
  module.exports = require("serialize-javascript");
  
  /***/ }),
  /* 51 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ErrorPage; });
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(2);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(5);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_lib_withStyles__ = __webpack_require__(14);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_lib_withStyles___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_lib_withStyles__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ErrorPage_css__ = __webpack_require__(8);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__ErrorPage_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__ErrorPage_css__);
  function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
  
  var REACT_ELEMENT_TYPE;
  
  function _jsx(type, props, key, children) { if (!REACT_ELEMENT_TYPE) { REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; } var defaultProps = type && type.defaultProps; var childrenLength = arguments.length - 3; if (!props && childrenLength !== 0) { props = {}; } if (props && defaultProps) { for (var propName in defaultProps) { if (props[propName] === void 0) { props[propName] = defaultProps[propName]; } } } else if (!props) { props = defaultProps || {}; } if (childrenLength === 1) { props.children = children; } else if (childrenLength > 1) { var childArray = new Array(childrenLength); for (var i = 0; i < childrenLength; i++) { childArray[i] = arguments[i + 3]; } props.children = childArray; } return { $$typeof: REACT_ELEMENT_TYPE, type: type, key: key === undefined ? null : '' + key, ref: null, props: props, _owner: null }; }
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
  
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
  
  function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
  
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  
  /**
   * React Starter Kit (https://www.reactstarterkit.com/)
   *
   * Copyright © 2014-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  
  
  
  
  var _ref = _jsx("div", {}, void 0, _jsx("h1", {}, void 0, "Error"), _jsx("p", {}, void 0, "Sorry, a critical error occurred on this page."));
  
  var ErrorPage =
  /*#__PURE__*/
  function (_React$Component) {
    _inherits(ErrorPage, _React$Component);
  
    function ErrorPage() {
      _classCallCheck(this, ErrorPage);
  
      return _possibleConstructorReturn(this, (ErrorPage.__proto__ || Object.getPrototypeOf(ErrorPage)).apply(this, arguments));
    }
  
    _createClass(ErrorPage, [{
      key: "render",
      value: function render() {
        if (false) {
          return _jsx("div", {}, void 0, _jsx("h1", {}, void 0, this.props.error.name), _jsx("pre", {}, void 0, this.props.error.stack));
        }
  
        return _ref;
      }
    }]);
  
    return ErrorPage;
  }(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);
  
  Object.defineProperty(ErrorPage, "defaultProps", {
    configurable: true,
    enumerable: true,
    writable: true,
    value: {
      error: null
    }
  });
  
  /* unused harmony default export */ var _unused_webpack_default_export = (__WEBPACK_IMPORTED_MODULE_2_isomorphic_style_loader_lib_withStyles___default()(__WEBPACK_IMPORTED_MODULE_3__ErrorPage_css___default.a)(ErrorPage));
  
  /***/ }),
  /* 52 */
  /***/ (function(module, exports, __webpack_require__) {
  
  exports = module.exports = __webpack_require__(12)(false);
  // imports
  
  
  // module
  exports.push([module.i, "html{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;padding:0 32px;padding:0 2rem;height:100%;font-family:sans-serif;text-align:center;color:#888}body{margin:0}h1{font-weight:400;color:#555}pre{white-space:pre-wrap;text-align:left}", ""]);
  
  // exports
  
  
  /***/ }),
  /* 53 */
  /***/ (function(module, exports) {
  
  module.exports = require("babel-runtime/core-js/json/stringify");
  
  /***/ }),
  /* 54 */
  /***/ (function(module, exports) {
  
  module.exports = require("babel-runtime/helpers/slicedToArray");
  
  /***/ }),
  /* 55 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
  
  /**
   * React Starter Kit (https://www.reactstarterkit.com/)
   *
   * Copyright © 2014-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  /**
   * Creates a wrapper function around the HTML5 Fetch API that provides
   * default arguments to fetch(...) and is intended to reduce the amount
   * of boilerplate code in the application.
   * https://developer.mozilla.org/docs/Web/API/Fetch_API/Using_Fetch
   */
  function createFetch(fetch, _ref) {
    var baseUrl = _ref.baseUrl,
        cookie = _ref.cookie;
    // NOTE: Tweak the default options to suite your application needs
    var defaults = {
      method: 'POST',
      // handy with GraphQL backends
      mode: baseUrl ? 'cors' : 'same-origin',
      credentials: baseUrl ? 'include' : 'same-origin',
      headers: _extends({
        Accept: 'application/json',
        'Content-Type': 'application/json'
      }, cookie ? {
        Cookie: cookie
      } : null)
    };
    return function (url, options) {
      return url.startsWith('/graphql') || url.startsWith('/api') ? fetch("".concat(baseUrl).concat(url), _extends({}, defaults, options, {
        headers: _extends({}, defaults.headers, options && options.headers)
      })) : fetch(url, options);
    };
  }
  
  /* harmony default export */ __webpack_exports__["a"] = (createFetch);
  
  /***/ }),
  /* 56 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_passport__ = __webpack_require__(57);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_passport___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_passport__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_passport_facebook__ = __webpack_require__(58);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_passport_facebook___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_passport_facebook__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__data_models__ = __webpack_require__(9);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__config__ = __webpack_require__(3);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__config___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__config__);
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _next(value) { step("next", value); } function _throw(err) { step("throw", err); } _next(); }); }; }
  
  /**
   * React Starter Kit (https://www.reactstarterkit.com/)
   *
   * Copyright © 2014-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  /**
   * Passport.js reference implementation.
   * The database schema used in this sample is available at
   * https://github.com/membership/membership.db/tree/master/postgres
   */
  
  
  
  
  /**
   * Sign in with Facebook.
   */
  
  __WEBPACK_IMPORTED_MODULE_0_passport___default.a.use(new __WEBPACK_IMPORTED_MODULE_1_passport_facebook__["Strategy"]({
    clientID: __WEBPACK_IMPORTED_MODULE_3__config___default.a.auth.facebook.id,
    clientSecret: __WEBPACK_IMPORTED_MODULE_3__config___default.a.auth.facebook.secret,
    callbackURL: '/login/facebook/return',
    profileFields: ['displayName', 'name', 'email', 'link', 'locale', 'timezone'],
    passReqToCallback: true
  }, function (req, accessToken, refreshToken, profile, done) {
    /* eslint-disable no-underscore-dangle */
    var loginName = 'facebook';
    var claimType = 'urn:facebook:access_token';
  
    var fooBar =
    /*#__PURE__*/
    function () {
      var _ref = _asyncToGenerator(
      /*#__PURE__*/
      regeneratorRuntime.mark(function _callee() {
        var userLogin, user, users, _user, _user2;
  
        return regeneratorRuntime.wrap(function _callee$(_context) {
          while (1) {
            switch (_context.prev = _context.next) {
              case 0:
                if (!req.user) {
                  _context.next = 14;
                  break;
                }
  
                _context.next = 3;
                return __WEBPACK_IMPORTED_MODULE_2__data_models__["c" /* UserLogin */].findOne({
                  attributes: ['name', 'key'],
                  where: {
                    name: loginName,
                    key: profile.id
                  }
                });
  
              case 3:
                userLogin = _context.sent;
  
                if (!userLogin) {
                  _context.next = 8;
                  break;
                }
  
                // There is already a Facebook account that belongs to you.
                // Sign in with that account or delete it, then link it with your current account.
                done();
                _context.next = 12;
                break;
  
              case 8:
                _context.next = 10;
                return __WEBPACK_IMPORTED_MODULE_2__data_models__["a" /* User */].create({
                  id: req.user.id,
                  email: profile._json.email,
                  logins: [{
                    name: loginName,
                    key: profile.id
                  }],
                  claims: [{
                    type: claimType,
                    value: profile.id
                  }],
                  profile: {
                    displayName: profile.displayName,
                    gender: profile._json.gender,
                    picture: "https://graph.facebook.com/".concat(profile.id, "/picture?type=large")
                  }
                }, {
                  include: [{
                    model: __WEBPACK_IMPORTED_MODULE_2__data_models__["c" /* UserLogin */],
                    as: 'logins'
                  }, {
                    model: __WEBPACK_IMPORTED_MODULE_2__data_models__["b" /* UserClaim */],
                    as: 'claims'
                  }, {
                    model: __WEBPACK_IMPORTED_MODULE_2__data_models__["d" /* UserProfile */],
                    as: 'profile'
                  }]
                });
  
              case 10:
                user = _context.sent;
                done(null, {
                  id: user.id,
                  email: user.email
                });
  
              case 12:
                _context.next = 33;
                break;
  
              case 14:
                _context.next = 16;
                return __WEBPACK_IMPORTED_MODULE_2__data_models__["a" /* User */].findAll({
                  attributes: ['id', 'email'],
                  where: {
                    '$logins.name$': loginName,
                    '$logins.key$': profile.id
                  },
                  include: [{
                    attributes: ['name', 'key'],
                    model: __WEBPACK_IMPORTED_MODULE_2__data_models__["c" /* UserLogin */],
                    as: 'logins',
                    required: true
                  }]
                });
  
              case 16:
                users = _context.sent;
  
                if (!users.length) {
                  _context.next = 22;
                  break;
                }
  
                _user = users[0].get({
                  plain: true
                });
                done(null, _user);
                _context.next = 33;
                break;
  
              case 22:
                _context.next = 24;
                return __WEBPACK_IMPORTED_MODULE_2__data_models__["a" /* User */].findOne({
                  where: {
                    email: profile._json.email
                  }
                });
  
              case 24:
                _user2 = _context.sent;
  
                if (!_user2) {
                  _context.next = 29;
                  break;
                }
  
                // There is already an account using this email address. Sign in to
                // that account and link it with Facebook manually from Account Settings.
                done(null);
                _context.next = 33;
                break;
  
              case 29:
                _context.next = 31;
                return __WEBPACK_IMPORTED_MODULE_2__data_models__["a" /* User */].create({
                  email: profile._json.email,
                  emailConfirmed: true,
                  logins: [{
                    name: loginName,
                    key: profile.id
                  }],
                  claims: [{
                    type: claimType,
                    value: accessToken
                  }],
                  profile: {
                    displayName: profile.displayName,
                    gender: profile._json.gender,
                    picture: "https://graph.facebook.com/".concat(profile.id, "/picture?type=large")
                  }
                }, {
                  include: [{
                    model: __WEBPACK_IMPORTED_MODULE_2__data_models__["c" /* UserLogin */],
                    as: 'logins'
                  }, {
                    model: __WEBPACK_IMPORTED_MODULE_2__data_models__["b" /* UserClaim */],
                    as: 'claims'
                  }, {
                    model: __WEBPACK_IMPORTED_MODULE_2__data_models__["d" /* UserProfile */],
                    as: 'profile'
                  }]
                });
  
              case 31:
                _user2 = _context.sent;
                done(null, {
                  id: _user2.id,
                  email: _user2.email
                });
  
              case 33:
              case "end":
                return _context.stop();
            }
          }
        }, _callee, this);
      }));
  
      return function fooBar() {
        return _ref.apply(this, arguments);
      };
    }();
  
    fooBar().catch(done);
  }));
  /* harmony default export */ __webpack_exports__["a"] = (__WEBPACK_IMPORTED_MODULE_0_passport___default.a);
  
  /***/ }),
  /* 57 */
  /***/ (function(module, exports) {
  
  module.exports = require("passport");
  
  /***/ }),
  /* 58 */
  /***/ (function(module, exports) {
  
  module.exports = require("passport-facebook");
  
  /***/ }),
  /* 59 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_sequelize__ = __webpack_require__(1);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_sequelize___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_sequelize__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__sequelize__ = __webpack_require__(0);
  /**
   * React Starter Kit (https://www.reactstarterkit.com/)
   *
   * Copyright © 2014-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  
  var User = __WEBPACK_IMPORTED_MODULE_1__sequelize__["a" /* default */].define('User', {
    id: {
      type: __WEBPACK_IMPORTED_MODULE_0_sequelize___default.a.UUID,
      defaultValue: __WEBPACK_IMPORTED_MODULE_0_sequelize___default.a.UUIDV1,
      primaryKey: true
    },
    email: {
      type: __WEBPACK_IMPORTED_MODULE_0_sequelize___default.a.STRING(255),
      validate: {
        isEmail: true
      }
    },
    emailConfirmed: {
      type: __WEBPACK_IMPORTED_MODULE_0_sequelize___default.a.BOOLEAN,
      defaultValue: false
    }
  }, {
    indexes: [{
      fields: ['email']
    }]
  });
  /* harmony default export */ __webpack_exports__["a"] = (User);
  
  /***/ }),
  /* 60 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_sequelize__ = __webpack_require__(1);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_sequelize___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_sequelize__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__sequelize__ = __webpack_require__(0);
  /**
   * React Starter Kit (https://www.reactstarterkit.com/)
   *
   * Copyright © 2014-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  
  var UserLogin = __WEBPACK_IMPORTED_MODULE_1__sequelize__["a" /* default */].define('UserLogin', {
    name: {
      type: __WEBPACK_IMPORTED_MODULE_0_sequelize___default.a.STRING(50),
      primaryKey: true
    },
    key: {
      type: __WEBPACK_IMPORTED_MODULE_0_sequelize___default.a.STRING(100),
      primaryKey: true
    }
  });
  /* harmony default export */ __webpack_exports__["a"] = (UserLogin);
  
  /***/ }),
  /* 61 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_sequelize__ = __webpack_require__(1);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_sequelize___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_sequelize__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__sequelize__ = __webpack_require__(0);
  /**
   * React Starter Kit (https://www.reactstarterkit.com/)
   *
   * Copyright © 2014-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  
  var UserClaim = __WEBPACK_IMPORTED_MODULE_1__sequelize__["a" /* default */].define('UserClaim', {
    type: {
      type: __WEBPACK_IMPORTED_MODULE_0_sequelize___default.a.STRING
    },
    value: {
      type: __WEBPACK_IMPORTED_MODULE_0_sequelize___default.a.STRING
    }
  });
  /* harmony default export */ __webpack_exports__["a"] = (UserClaim);
  
  /***/ }),
  /* 62 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_sequelize__ = __webpack_require__(1);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_sequelize___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_sequelize__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__sequelize__ = __webpack_require__(0);
  /**
   * React Starter Kit (https://www.reactstarterkit.com/)
   *
   * Copyright © 2014-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  
  var UserProfile = __WEBPACK_IMPORTED_MODULE_1__sequelize__["a" /* default */].define('UserProfile', {
    userId: {
      type: __WEBPACK_IMPORTED_MODULE_0_sequelize___default.a.UUID,
      primaryKey: true
    },
    displayName: {
      type: __WEBPACK_IMPORTED_MODULE_0_sequelize___default.a.STRING(100)
    },
    picture: {
      type: __WEBPACK_IMPORTED_MODULE_0_sequelize___default.a.STRING(255)
    },
    gender: {
      type: __WEBPACK_IMPORTED_MODULE_0_sequelize___default.a.STRING(50)
    },
    location: {
      type: __WEBPACK_IMPORTED_MODULE_0_sequelize___default.a.STRING(100)
    },
    website: {
      type: __WEBPACK_IMPORTED_MODULE_0_sequelize___default.a.STRING(255)
    }
  });
  /* harmony default export */ __webpack_exports__["a"] = (UserProfile);
  
  /***/ }),
  /* 63 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_universal_router__ = __webpack_require__(64);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_universal_router___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_universal_router__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__routes__ = __webpack_require__(65);
  /**
   * React Starter Kit (https://www.reactstarterkit.com/)
   *
   * Copyright © 2014-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  
  /* harmony default export */ __webpack_exports__["a"] = (new __WEBPACK_IMPORTED_MODULE_0_universal_router___default.a(__WEBPACK_IMPORTED_MODULE_1__routes__["a" /* default */], {
    resolveRoute: function resolveRoute(context, params) {
      if (typeof context.route.load === 'function') {
        return context.route.load().then(function (action) {
          return action.default(context, params);
        });
      }
  
      if (typeof context.route.action === 'function') {
        return context.route.action(context, params);
      }
  
      return undefined;
    }
  }));
  
  /***/ }),
  /* 64 */
  /***/ (function(module, exports) {
  
  module.exports = require("universal-router");
  
  /***/ }),
  /* 65 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _next(value) { step("next", value); } function _throw(err) { step("throw", err); } _next(); }); }; }
  
  /**
   * React Starter Kit (https://www.reactstarterkit.com/)
   *
   * Copyright © 2014-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  /* eslint-disable global-require */
  // The top-level (parent) route
  var routes = {
    path: '',
    // Keep in mind, routes are evaluated in order
    children: [{
      path: '',
      load: function load() {
        return __webpack_require__.e/* import() */(5).then(__webpack_require__.bind(null, 83));
      }
    }, {
      path: '/contact',
      load: function load() {
        return __webpack_require__.e/* import() */(6).then(__webpack_require__.bind(null, 84));
      }
    }, {
      path: '/login',
      load: function load() {
        return __webpack_require__.e/* import() */(4).then(__webpack_require__.bind(null, 85));
      }
    }, {
      path: '/register',
      load: function load() {
        return __webpack_require__.e/* import() */(2).then(__webpack_require__.bind(null, 86));
      }
    }, {
      path: '/about',
      load: function load() {
        return __webpack_require__.e/* import() */(1).then(__webpack_require__.bind(null, 87));
      }
    }, {
      path: '/privacy',
      load: function load() {
        return __webpack_require__.e/* import() */(0).then(__webpack_require__.bind(null, 88));
      }
    }, {
      path: '/admin',
      load: function load() {
        return __webpack_require__.e/* import() */(7).then(__webpack_require__.bind(null, 89));
      }
    }, // Wildcard routes, e.g. { path: '(.*)', ... } (must go last)
    {
      path: '(.*)',
      load: function load() {
        return __webpack_require__.e/* import() */(3).then(__webpack_require__.bind(null, 90));
      }
    }],
    action: function () {
      var _action = _asyncToGenerator(
      /*#__PURE__*/
      regeneratorRuntime.mark(function _callee(_ref) {
        var next, route;
        return regeneratorRuntime.wrap(function _callee$(_context) {
          while (1) {
            switch (_context.prev = _context.next) {
              case 0:
                next = _ref.next;
                _context.next = 3;
                return next();
  
              case 3:
                route = _context.sent;
                // Provide default values for title, description etc.
                route.title = "".concat(route.title || 'Untitled Page', " - www.reactstarterkit.com");
                route.description = route.description || '';
                return _context.abrupt("return", route);
  
              case 7:
              case "end":
                return _context.stop();
            }
          }
        }, _callee, this);
      }));
  
      return function action(_x) {
        return _action.apply(this, arguments);
      };
    }()
  }; // The error page is available by permanent url for development mode
  
  if (false) {
    routes.children.unshift({
      path: '/error',
      action: require('./error').default
    });
  }
  
  /* harmony default export */ __webpack_exports__["a"] = (routes);
  
  /***/ }),
  /* 66 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_graphql__ = __webpack_require__(4);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_graphql___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_graphql__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__queries_me__ = __webpack_require__(67);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__queries_news__ = __webpack_require__(69);
  /**
   * React Starter Kit (https://www.reactstarterkit.com/)
   *
   * Copyright © 2014-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  
  
  var schema = new __WEBPACK_IMPORTED_MODULE_0_graphql__["GraphQLSchema"]({
    query: new __WEBPACK_IMPORTED_MODULE_0_graphql__["GraphQLObjectType"]({
      name: 'Query',
      fields: {
        me: __WEBPACK_IMPORTED_MODULE_1__queries_me__["a" /* default */],
        news: __WEBPACK_IMPORTED_MODULE_2__queries_news__["a" /* default */]
      }
    })
  });
  /* harmony default export */ __webpack_exports__["a"] = (schema);
  
  /***/ }),
  /* 67 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__types_UserType__ = __webpack_require__(68);
  /**
   * React Starter Kit (https://www.reactstarterkit.com/)
   *
   * Copyright © 2014-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  var me = {
    type: __WEBPACK_IMPORTED_MODULE_0__types_UserType__["a" /* default */],
    resolve: function resolve(_ref) {
      var request = _ref.request;
      return request.user && {
        id: request.user.id,
        email: request.user.email
      };
    }
  };
  /* harmony default export */ __webpack_exports__["a"] = (me);
  
  /***/ }),
  /* 68 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_graphql__ = __webpack_require__(4);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_graphql___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_graphql__);
  /**
   * React Starter Kit (https://www.reactstarterkit.com/)
   *
   * Copyright © 2014-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  var UserType = new __WEBPACK_IMPORTED_MODULE_0_graphql__["GraphQLObjectType"]({
    name: 'User',
    fields: {
      id: {
        type: new __WEBPACK_IMPORTED_MODULE_0_graphql__["GraphQLNonNull"](__WEBPACK_IMPORTED_MODULE_0_graphql__["GraphQLID"])
      },
      email: {
        type: __WEBPACK_IMPORTED_MODULE_0_graphql__["GraphQLString"]
      }
    }
  });
  /* harmony default export */ __webpack_exports__["a"] = (UserType);
  
  /***/ }),
  /* 69 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_graphql__ = __webpack_require__(4);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_graphql___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_graphql__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_node_fetch__ = __webpack_require__(6);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_node_fetch___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_node_fetch__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__types_NewsItemType__ = __webpack_require__(70);
  /**
   * React Starter Kit (https://www.reactstarterkit.com/)
   *
   * Copyright © 2014-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  
   // React.js News Feed (RSS)
  
  var url = 'https://api.rss2json.com/v1/api.json' + '?rss_url=https%3A%2F%2Freactjsnews.com%2Ffeed.xml';
  var items = [];
  var lastFetchTask;
  var lastFetchTime = new Date(1970, 0, 1);
  var news = {
    type: new __WEBPACK_IMPORTED_MODULE_0_graphql__["GraphQLList"](__WEBPACK_IMPORTED_MODULE_2__types_NewsItemType__["a" /* default */]),
    resolve: function resolve() {
      if (lastFetchTask) {
        return lastFetchTask;
      }
  
      if (new Date() - lastFetchTime > 1000 * 60 * 10
      /* 10 mins */
      ) {
          lastFetchTime = new Date();
          lastFetchTask = __WEBPACK_IMPORTED_MODULE_1_node_fetch___default()(url).then(function (response) {
            return response.json();
          }).then(function (data) {
            if (data.status === 'ok') {
              items = data.items;
            }
  
            lastFetchTask = null;
            return items;
          }).catch(function (err) {
            lastFetchTask = null;
            throw err;
          });
  
          if (items.length) {
            return items;
          }
  
          return lastFetchTask;
        }
  
      return items;
    }
  };
  /* harmony default export */ __webpack_exports__["a"] = (news);
  
  /***/ }),
  /* 70 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_graphql__ = __webpack_require__(4);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_graphql___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_graphql__);
  /**
   * React Starter Kit (https://www.reactstarterkit.com/)
   *
   * Copyright © 2014-present Kriasoft, LLC. All rights reserved.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE.txt file in the root directory of this source tree.
   */
  
  var NewsItemType = new __WEBPACK_IMPORTED_MODULE_0_graphql__["GraphQLObjectType"]({
    name: 'NewsItem',
    fields: {
      title: {
        type: new __WEBPACK_IMPORTED_MODULE_0_graphql__["GraphQLNonNull"](__WEBPACK_IMPORTED_MODULE_0_graphql__["GraphQLString"])
      },
      link: {
        type: new __WEBPACK_IMPORTED_MODULE_0_graphql__["GraphQLNonNull"](__WEBPACK_IMPORTED_MODULE_0_graphql__["GraphQLString"])
      },
      author: {
        type: __WEBPACK_IMPORTED_MODULE_0_graphql__["GraphQLString"]
      },
      pubDate: {
        type: new __WEBPACK_IMPORTED_MODULE_0_graphql__["GraphQLNonNull"](__WEBPACK_IMPORTED_MODULE_0_graphql__["GraphQLString"])
      },
      content: {
        type: __WEBPACK_IMPORTED_MODULE_0_graphql__["GraphQLString"]
      }
    }
  });
  /* harmony default export */ __webpack_exports__["a"] = (NewsItemType);
  
  /***/ }),
  /* 71 */
  /***/ (function(module, exports) {
  
  module.exports = require("./assets.json");
  
  /***/ }),
  /* 72 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (immutable) */ __webpack_exports__["a"] = configureStore;
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_redux__ = __webpack_require__(10);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_redux___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_redux__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_redux_thunk__ = __webpack_require__(73);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_redux_thunk___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_redux_thunk__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__reducers__ = __webpack_require__(74);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__createHelpers__ = __webpack_require__(77);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__logger__ = __webpack_require__(78);
  
  
  
  
  
  function configureStore(initialState, helpersConfig) {
    var helpers = Object(__WEBPACK_IMPORTED_MODULE_3__createHelpers__["a" /* default */])(helpersConfig);
    var middleware = [__WEBPACK_IMPORTED_MODULE_1_redux_thunk___default.a.withExtraArgument(helpers)];
    var enhancer;
  
    if (false) {
      middleware.push(createLogger()); // https://github.com/zalmoxisus/redux-devtools-extension#redux-devtools-extension
  
      var devToolsExtension = function devToolsExtension(f) {
        return f;
      };
  
      if (process.env.BROWSER && window.devToolsExtension) {
        devToolsExtension = window.devToolsExtension();
      }
  
      enhancer = compose(applyMiddleware.apply(void 0, middleware), devToolsExtension);
    } else {
      enhancer = __WEBPACK_IMPORTED_MODULE_0_redux__["applyMiddleware"].apply(void 0, middleware);
    } // See https://github.com/rackt/redux/releases/tag/v3.1.0
  
  
    var store = Object(__WEBPACK_IMPORTED_MODULE_0_redux__["createStore"])(__WEBPACK_IMPORTED_MODULE_2__reducers__["a" /* default */], initialState, enhancer); // Hot reload reducers (requires Webpack or Browserify HMR to be enabled)
  
    if (false) {
      module.hot.accept('../reducers', function () {
        return (// eslint-disable-next-line global-require
          store.replaceReducer(require('../reducers').default)
        );
      });
    }
  
    return store;
  }
  
  /***/ }),
  /* 73 */
  /***/ (function(module, exports) {
  
  module.exports = require("redux-thunk");
  
  /***/ }),
  /* 74 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_redux__ = __webpack_require__(10);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_redux___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_redux__);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__user__ = __webpack_require__(75);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__runtime__ = __webpack_require__(76);
  
  
  
  /* harmony default export */ __webpack_exports__["a"] = (Object(__WEBPACK_IMPORTED_MODULE_0_redux__["combineReducers"])({
    user: __WEBPACK_IMPORTED_MODULE_1__user__["a" /* default */],
    runtime: __WEBPACK_IMPORTED_MODULE_2__runtime__["a" /* default */]
  }));
  
  /***/ }),
  /* 75 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (immutable) */ __webpack_exports__["a"] = user;
  function user() {
    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    var action = arguments.length > 1 ? arguments[1] : undefined;
  
    switch (action.type) {
      default:
        return state;
    }
  }
  
  /***/ }),
  /* 76 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (immutable) */ __webpack_exports__["a"] = runtime;
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants__ = __webpack_require__(11);
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
  
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
  
  
  function runtime() {
    var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    var action = arguments.length > 1 ? arguments[1] : undefined;
  
    switch (action.type) {
      case __WEBPACK_IMPORTED_MODULE_0__constants__["a" /* SET_RUNTIME_VARIABLE */]:
        return _extends({}, state, _defineProperty({}, action.payload.name, action.payload.value));
  
      default:
        return state;
    }
  }
  
  /***/ }),
  /* 77 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (immutable) */ __webpack_exports__["a"] = createHelpers;
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _next(value) { step("next", value); } function _throw(err) { step("throw", err); } _next(); }); }; }
  
  function createGraphqlRequest(fetch) {
    return (
      /*#__PURE__*/
      function () {
        var _graphqlRequest = _asyncToGenerator(
        /*#__PURE__*/
        regeneratorRuntime.mark(function _callee(query, variables) {
          var fetchConfig, resp;
          return regeneratorRuntime.wrap(function _callee$(_context) {
            while (1) {
              switch (_context.prev = _context.next) {
                case 0:
                  fetchConfig = {
                    method: 'post',
                    headers: {
                      Accept: 'application/json',
                      'Content-Type': 'application/json'
                    },
                    body: JSON.stringify({
                      query: query,
                      variables: variables
                    }),
                    credentials: 'include'
                  };
                  _context.next = 3;
                  return fetch('/graphql', fetchConfig);
  
                case 3:
                  resp = _context.sent;
  
                  if (!(resp.status !== 200)) {
                    _context.next = 6;
                    break;
                  }
  
                  throw new Error(resp.statusText);
  
                case 6:
                  return _context.abrupt("return", resp.json());
  
                case 7:
                case "end":
                  return _context.stop();
              }
            }
          }, _callee, this);
        }));
  
        return function graphqlRequest(_x, _x2) {
          return _graphqlRequest.apply(this, arguments);
        };
      }()
    );
  }
  
  function createHelpers(_ref) {
    var fetch = _ref.fetch,
        history = _ref.history;
    return {
      fetch: fetch,
      history: history,
      graphqlRequest: createGraphqlRequest(fetch)
    };
  }
  
  /***/ }),
  /* 78 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* unused harmony export default */
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_util__ = __webpack_require__(79);
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_util___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_util__);
  
  
  function inspectObject(object) {
    return Object(__WEBPACK_IMPORTED_MODULE_0_util__["inspect"])(object, {
      colors: true
    });
  }
  
  function singleLine(str) {
    return str.replace(/\s+/g, ' ');
  }
  
  var actionFormatters = {
    // This is used at feature/apollo branch, but it can help you when implementing Apollo
    APOLLO_QUERY_INIT: function APOLLO_QUERY_INIT(a) {
      return "queryId:".concat(a.queryId, " variables:").concat(inspectObject(a.variables), "\n   ").concat(singleLine(a.queryString));
    },
    APOLLO_QUERY_RESULT: function APOLLO_QUERY_RESULT(a) {
      return "queryId:".concat(a.queryId, "\n   ").concat(singleLine(inspectObject(a.result)));
    },
    APOLLO_QUERY_STOP: function APOLLO_QUERY_STOP(a) {
      return "queryId:".concat(a.queryId);
    }
  }; // Server side redux action logger
  
  function createLogger() {
    // eslint-disable-next-line no-unused-vars
    return function (store) {
      return function (next) {
        return function (action) {
          var formattedPayload = '';
          var actionFormatter = actionFormatters[action.type];
  
          if (typeof actionFormatter === 'function') {
            formattedPayload = actionFormatter(action);
          } else if (action.toString !== Object.prototype.toString) {
            formattedPayload = action.toString();
          } else if (typeof action.payload !== 'undefined') {
            formattedPayload = inspectObject(action.payload);
          } else {
            formattedPayload = inspectObject(action);
          }
  
          console.log(" * ".concat(action.type, ": ").concat(formattedPayload)); // eslint-disable-line no-console
  
          return next(action);
        };
      };
    };
  }
  
  /***/ }),
  /* 79 */
  /***/ (function(module, exports) {
  
  module.exports = require("util");
  
  /***/ }),
  /* 80 */
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony export (immutable) */ __webpack_exports__["a"] = setRuntimeVariable;
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants__ = __webpack_require__(11);
  /* eslint-disable import/prefer-default-export */
  
  function setRuntimeVariable(_ref) {
    var name = _ref.name,
        value = _ref.value;
    return {
      type: __WEBPACK_IMPORTED_MODULE_0__constants__["a" /* SET_RUNTIME_VARIABLE */],
      payload: {
        name: name,
        value: value
      }
    };
  }
  
  /***/ }),
  /* 81 */
  /***/ (function(module, exports) {
  
  module.exports = require("history/createBrowserHistory");
  
  /***/ }),
  /* 82 */
  /***/ (function(module, exports) {
  
  module.exports = require("classnames");
  
  /***/ })
  /******/ ]);
  //# sourceMappingURL=server.js.map