{"version":3,"file":"bundle.js","sources":["webpack:///webpack/bootstrap","webpack:///./app/client/actions.js","webpack:///./app/client/api/crud.actions.js","webpack:///./app/client/api/crud.fetch.js","webpack:///./app/client/api/crud.types.js","webpack:///./app/client/api/crud.upload.js","webpack:///./app/client/api/index.js","webpack:///./app/client/api/parser.js","webpack:///./app/client/audio/lib/draw.js","webpack:///./app/client/audio/lib/index.js","webpack:///./app/client/audio/lib/output.js","webpack:///./app/client/audio/lib/spectrum.js","webpack:///./app/client/audio/lib/startAudioContext.js","webpack:///./app/client/audio/pix2wav.js","webpack:///./app/client/audio/wav2pix.js","webpack:///./app/client/common/audioPlayer/audioPlayer.actions.js","webpack:///./app/client/common/audioPlayer/audioPlayer.component.js","webpack:///./app/client/common/audioPlayer/audioPlayer.reducer.js","webpack:///./app/client/common/button.component.js","webpack:///./app/client/common/currentTask.component.js","webpack:///./app/client/common/fileList.component.js","webpack:///./app/client/common/fileUpload.component.js","webpack:///./app/client/common/folderList.component.js","webpack:///./app/client/common/gallery.component.js","webpack:///./app/client/common/group.component.js","webpack:///./app/client/common/header.component.js","webpack:///./app/client/common/index.js","webpack:///./app/client/common/loading.component.js","webpack:///./app/client/common/param.component.js","webpack:///./app/client/common/paramGroup.component.js","webpack:///./app/client/common/player.component.js","webpack:///./app/client/common/progress.component.js","webpack:///./app/client/common/select.component.js","webpack:///./app/client/common/slider.component.js","webpack:///./app/client/common/textInput.component.js","webpack:///./app/client/common/views/index.js","webpack:///./app/client/common/views/new.view.js","webpack:///./app/client/dashboard/dashboard.actions.js","webpack:///./app/client/dashboard/dashboard.component.js","webpack:///./app/client/dashboard/dashboard.reducer.js","webpack:///./app/client/dashboard/dashboardheader.component.js","webpack:///./app/client/dashboard/tasklist.component.js","webpack:///./app/client/dataset/dataset.actions.js","webpack:///./app/client/dataset/dataset.component.js","webpack:///./app/client/dataset/dataset.form.js","webpack:///./app/client/dataset/dataset.loader.js","webpack:///./app/client/dataset/dataset.new.js","webpack:///./app/client/dataset/dataset.reducer.js","webpack:///./app/client/dataset/upload.reducer.js","webpack:///./app/client/dataset/upload.status.js","webpack:///./app/client/index.jsx","webpack:///./app/client/live/live.actions.js","webpack:///./app/client/live/live.reducer.js","webpack:///./app/client/live/player.js","webpack:///./app/client/live/whammy.js","webpack:///./app/client/modules/index.js","webpack:///./app/client/modules/module.reducer.js","webpack:///./app/client/modules/pix2pix/index.js","webpack:///./app/client/modules/pix2pix/pix2pix.actions.js","webpack:///./app/client/modules/pix2pix/pix2pix.module.js","webpack:///./app/client/modules/pix2pix/pix2pix.reducer.js","webpack:///./app/client/modules/pix2pix/pix2pix.tasks.js","webpack:///./app/client/modules/pix2pix/views/pix2pix.live.js","webpack:///./app/client/modules/pix2pix/views/pix2pix.new.js","webpack:///./app/client/modules/pix2pix/views/pix2pix.show.js","webpack:///./app/client/modules/pix2pixhd/index.js","webpack:///./app/client/modules/pix2pixhd/pix2pixhd.actions.js","webpack:///./app/client/modules/pix2pixhd/pix2pixhd.module.js","webpack:///./app/client/modules/pix2pixhd/pix2pixhd.reducer.js","webpack:///./app/client/modules/pix2pixhd/pix2pixhd.tasks.js","webpack:///./app/client/modules/pix2pixhd/views/pix2pixhd.live.js","webpack:///./app/client/modules/pix2pixhd/views/pix2pixhd.new.js","webpack:///./app/client/modules/pix2pixhd/views/pix2pixhd.results.js","webpack:///./app/client/modules/pix2pixhd/views/pix2pixhd.show.js","webpack:///./app/client/modules/pix2wav/index.js","webpack:///./app/client/modules/pix2wav/pix2wav.actions.js","webpack:///./app/client/modules/pix2wav/pix2wav.module.js","webpack:///./app/client/modules/pix2wav/pix2wav.reducer.js","webpack:///./app/client/modules/pix2wav/pix2wav.tasks.js","webpack:///./app/client/modules/pix2wav/views/pix2wav.live.js","webpack:///./app/client/modules/pix2wav/views/pix2wav.new.js","webpack:///./app/client/modules/pix2wav/views/pix2wav.show.js","webpack:///./app/client/modules/pix2wav/views/spectrogram.upload.js","webpack:///./app/client/modules/samplernn/index.js","webpack:///./app/client/modules/samplernn/samplernn.actions.js","webpack:///./app/client/modules/samplernn/samplernn.module.js","webpack:///./app/client/modules/samplernn/samplernn.reducer.js","webpack:///./app/client/modules/samplernn/samplernn.tasks.js","webpack:///./app/client/modules/samplernn/views/samplernn.graph.js","webpack:///./app/client/modules/samplernn/views/samplernn.import.js","webpack:///./app/client/modules/samplernn/views/samplernn.new.js","webpack:///./app/client/modules/samplernn/views/samplernn.results.js","webpack:///./app/client/modules/samplernn/views/samplernn.show.js","webpack:///./app/client/queue/queue.actions.js","webpack:///./app/client/queue/queue.reducer.js","webpack:///./app/client/socket/index.js","webpack:///./app/client/socket/socket.actions.js","webpack:///./app/client/socket/socket.api.js","webpack:///./app/client/socket/socket.connection.js","webpack:///./app/client/socket/socket.live.js","webpack:///./app/client/socket/socket.system.js","webpack:///./app/client/socket/socket.task.js","webpack:///./app/client/store.js","webpack:///./app/client/system/system.actions.js","webpack:///./app/client/system/system.component.js","webpack:///./app/client/system/system.reducer.js","webpack:///./app/client/types.js","webpack:///./app/client/util/format.js","webpack:///./app/client/util/hidpi-canvas.js","webpack:///./app/client/util/index.js","webpack:///./app/client/util/math.js","webpack:///./app/client/util/sort.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/buffer/node_modules/isarray/index.js","webpack:///./node_modules/core-util-is/lib/util.js","webpack:///./node_modules/events/events.js","webpack:///./node_modules/fbjs/lib/emptyFunction.js","webpack:///./node_modules/fbjs/lib/invariant.js","webpack:///./node_modules/fbjs/lib/warning.js","webpack:///./node_modules/fetch-jsonp/build/fetch-jsonp.js","webpack:///./node_modules/fft.js/lib/fft.js","webpack:///./node_modules/file-saver/FileSaver.js","webpack:///./node_modules/history/DOMUtils.js","webpack:///./node_modules/history/LocationUtils.js","webpack:///./node_modules/history/PathUtils.js","webpack:///./node_modules/history/createBrowserHistory.js","webpack:///./node_modules/history/createHashHistory.js","webpack:///./node_modules/history/createMemoryHistory.js","webpack:///./node_modules/history/createTransitionManager.js","webpack:///./node_modules/history/es/DOMUtils.js","webpack:///./node_modules/history/es/LocationUtils.js","webpack:///./node_modules/history/es/PathUtils.js","webpack:///./node_modules/history/es/createBrowserHistory.js","webpack:///./node_modules/history/es/createHashHistory.js","webpack:///./node_modules/history/es/createMemoryHistory.js","webpack:///./node_modules/history/es/createTransitionManager.js","webpack:///./node_modules/history/es/index.js","webpack:///./node_modules/hoist-non-react-statics/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/immediate/lib/browser.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/invariant/browser.js","webpack:///./node_modules/jszip/lib/base64.js","webpack:///./node_modules/jszip/lib/compressedObject.js","webpack:///./node_modules/jszip/lib/compressions.js","webpack:///./node_modules/jszip/lib/crc32.js","webpack:///./node_modules/jszip/lib/defaults.js","webpack:///./node_modules/jszip/lib/external.js","webpack:///./node_modules/jszip/lib/flate.js","webpack:///./node_modules/jszip/lib/generate/ZipFileWorker.js","webpack:///./node_modules/jszip/lib/generate/index.js","webpack:///./node_modules/jszip/lib/index.js","webpack:///./node_modules/jszip/lib/load.js","webpack:///./node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js","webpack:///./node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js","webpack:///./node_modules/jszip/lib/nodejsUtils.js","webpack:///./node_modules/jszip/lib/object.js","webpack:///./node_modules/jszip/lib/readable-stream-browser.js","webpack:///./node_modules/jszip/lib/reader/ArrayReader.js","webpack:///./node_modules/jszip/lib/reader/DataReader.js","webpack:///./node_modules/jszip/lib/reader/NodeBufferReader.js","webpack:///./node_modules/jszip/lib/reader/StringReader.js","webpack:///./node_modules/jszip/lib/reader/Uint8ArrayReader.js","webpack:///./node_modules/jszip/lib/reader/readerFor.js","webpack:///./node_modules/jszip/lib/signature.js","webpack:///./node_modules/jszip/lib/stream/ConvertWorker.js","webpack:///./node_modules/jszip/lib/stream/Crc32Probe.js","webpack:///./node_modules/jszip/lib/stream/DataLengthProbe.js","webpack:///./node_modules/jszip/lib/stream/DataWorker.js","webpack:///./node_modules/jszip/lib/stream/GenericWorker.js","webpack:///./node_modules/jszip/lib/stream/StreamHelper.js","webpack:///./node_modules/jszip/lib/support.js","webpack:///./node_modules/jszip/lib/utf8.js","webpack:///./node_modules/jszip/lib/utils.js","webpack:///./node_modules/jszip/lib/zipEntries.js","webpack:///./node_modules/jszip/lib/zipEntry.js","webpack:///./node_modules/jszip/lib/zipObject.js","webpack:///./node_modules/jszip/node_modules/core-js/library/fn/set-immediate.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_a-function.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_an-object.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_cof.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_ctx.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_descriptors.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_dom-create.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_export.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_fails.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_global.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_hide.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_html.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_invoke.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_is-object.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_object-dp.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_property-desc.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_task.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/_to-primitive.js","webpack:///./node_modules/jszip/node_modules/core-js/library/modules/web.immediate.js","webpack:///./node_modules/lie/lib/browser.js","webpack:///./node_modules/lodash-es/_Symbol.js","webpack:///./node_modules/lodash-es/_baseGetTag.js","webpack:///./node_modules/lodash-es/_freeGlobal.js","webpack:///./node_modules/lodash-es/_getPrototype.js","webpack:///./node_modules/lodash-es/_getRawTag.js","webpack:///./node_modules/lodash-es/_objectToString.js","webpack:///./node_modules/lodash-es/_overArg.js","webpack:///./node_modules/lodash-es/_root.js","webpack:///./node_modules/lodash-es/isObjectLike.js","webpack:///./node_modules/lodash-es/isPlainObject.js","webpack:///./node_modules/moment/min/moment.min.js","webpack:///./node_modules/node-fetch/browser.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/pako/index.js","webpack:///./node_modules/pako/lib/deflate.js","webpack:///./node_modules/pako/lib/inflate.js","webpack:///./node_modules/pako/lib/utils/common.js","webpack:///./node_modules/pako/lib/utils/strings.js","webpack:///./node_modules/pako/lib/zlib/adler32.js","webpack:///./node_modules/pako/lib/zlib/constants.js","webpack:///./node_modules/pako/lib/zlib/crc32.js","webpack:///./node_modules/pako/lib/zlib/deflate.js","webpack:///./node_modules/pako/lib/zlib/gzheader.js","webpack:///./node_modules/pako/lib/zlib/inffast.js","webpack:///./node_modules/pako/lib/zlib/inflate.js","webpack:///./node_modules/pako/lib/zlib/inftrees.js","webpack:///./node_modules/pako/lib/zlib/messages.js","webpack:///./node_modules/pako/lib/zlib/trees.js","webpack:///./node_modules/pako/lib/zlib/zstream.js","webpack:///./node_modules/preact-compat/dist/preact-compat.es.js","webpack:///./node_modules/preact/dist/preact.esm.js","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/prop-types/checkPropTypes.js","webpack:///./node_modules/prop-types/factoryWithTypeCheckers.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-redux/es/components/Provider.js","webpack:///./node_modules/react-redux/es/components/connectAdvanced.js","webpack:///./node_modules/react-redux/es/connect/connect.js","webpack:///./node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack:///./node_modules/react-redux/es/connect/mapStateToProps.js","webpack:///./node_modules/react-redux/es/connect/mergeProps.js","webpack:///./node_modules/react-redux/es/connect/selectorFactory.js","webpack:///./node_modules/react-redux/es/connect/verifySubselectors.js","webpack:///./node_modules/react-redux/es/connect/wrapMapToProps.js","webpack:///./node_modules/react-redux/es/index.js","webpack:///./node_modules/react-redux/es/utils/PropTypes.js","webpack:///./node_modules/react-redux/es/utils/Subscription.js","webpack:///./node_modules/react-redux/es/utils/shallowEqual.js","webpack:///./node_modules/react-redux/es/utils/verifyPlainObject.js","webpack:///./node_modules/react-redux/es/utils/warning.js","webpack:///./node_modules/react-router-dom/es/BrowserRouter.js","webpack:///./node_modules/react-router-dom/es/HashRouter.js","webpack:///./node_modules/react-router-dom/es/Link.js","webpack:///./node_modules/react-router-dom/es/MemoryRouter.js","webpack:///./node_modules/react-router-dom/es/NavLink.js","webpack:///./node_modules/react-router-dom/es/Prompt.js","webpack:///./node_modules/react-router-dom/es/Redirect.js","webpack:///./node_modules/react-router-dom/es/Route.js","webpack:///./node_modules/react-router-dom/es/Router.js","webpack:///./node_modules/react-router-dom/es/StaticRouter.js","webpack:///./node_modules/react-router-dom/es/Switch.js","webpack:///./node_modules/react-router-dom/es/index.js","webpack:///./node_modules/react-router-dom/es/matchPath.js","webpack:///./node_modules/react-router-dom/es/withRouter.js","webpack:///./node_modules/react-router-redux/lib/actions.js","webpack:///./node_modules/react-router-redux/lib/index.js","webpack:///./node_modules/react-router-redux/lib/middleware.js","webpack:///./node_modules/react-router-redux/lib/reducer.js","webpack:///./node_modules/react-router-redux/lib/sync.js","webpack:///./node_modules/react-router/es/MemoryRouter.js","webpack:///./node_modules/react-router/es/Prompt.js","webpack:///./node_modules/react-router/es/Redirect.js","webpack:///./node_modules/react-router/es/Route.js","webpack:///./node_modules/react-router/es/Router.js","webpack:///./node_modules/react-router/es/StaticRouter.js","webpack:///./node_modules/react-router/es/Switch.js","webpack:///./node_modules/react-router/es/matchPath.js","webpack:///./node_modules/react-router/es/withRouter.js","webpack:///./node_modules/react-router/node_modules/isarray/index.js","webpack:///./node_modules/react-router/node_modules/path-to-regexp/index.js","webpack:///./node_modules/readable-stream/duplex-browser.js","webpack:///./node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/readable-stream/node_modules/isarray/index.js","webpack:///./node_modules/readable-stream/passthrough.js","webpack:///./node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/readable-stream/transform.js","webpack:///./node_modules/readable-stream/writable-browser.js","webpack:///./node_modules/redux-thunk/lib/index.js","webpack:///./node_modules/redux/es/redux.js","webpack:///./node_modules/resolve-pathname/index.js","webpack:///./node_modules/safe-buffer/index.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/signal-windows/index.js","webpack:///./node_modules/signal-windows/src/framer.js","webpack:///./node_modules/signal-windows/src/windows.js","webpack:///./node_modules/sprintf-js/src/sprintf.js","webpack:///./node_modules/stream-browserify/index.js","webpack:///./node_modules/string_decoder/lib/string_decoder.js","webpack:///./node_modules/symbol-observable/es/index.js","webpack:///./node_modules/symbol-observable/es/ponyfill.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/tone/build/Tone.js","webpack:///./node_modules/util-deprecate/browser.js","webpack:///./node_modules/uuid/lib/bytesToUuid.js","webpack:///./node_modules/uuid/lib/rng-browser.js","webpack:///./node_modules/uuid/v1.js","webpack:///./node_modules/value-equal/index.js","webpack:///./node_modules/warning/browser.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:///(webpack)/buildin/module.js"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./app/client/index.jsx\");\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _redux = require('redux');\n\nvar _api = require('./api');\n\nvar _live = require('./live/live.actions');\n\nvar liveActions = _interopRequireWildcard(_live);\n\nvar _queue = require('./queue/queue.actions');\n\nvar queueActions = _interopRequireWildcard(_queue);\n\nvar _system = require('./system/system.actions');\n\nvar systemActions = _interopRequireWildcard(_system);\n\nvar _socket = require('./socket/socket.actions');\n\nvar socketActions = _interopRequireWildcard(_socket);\n\nvar _dataset = require('./dataset/dataset.actions');\n\nvar datasetActions = _interopRequireWildcard(_dataset);\n\nvar _audioPlayer = require('./common/audioPlayer/audioPlayer.actions');\n\nvar audioPlayerActions = _interopRequireWildcard(_audioPlayer);\n\nvar _store = require('./store');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nexports.default = Object.keys(_api.actions).map(function (a) {\n return [a, _api.actions[a]];\n}).concat([['live', liveActions], ['queue', queueActions], ['system', systemActions], ['dataset', datasetActions], ['audioPlayer', audioPlayerActions]]).map(function (p) {\n return [p[0], (0, _redux.bindActionCreators)(p[1], _store.store.dispatch)];\n}).concat([['socket', socketActions]]).reduce(function (a, b) {\n return (a[b[0]] = b[1]) && a;\n}, {});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.crud_action = undefined;\nexports.crud_actions = crud_actions;\n\nvar _crud = require('./crud.fetch');\n\nvar _crud2 = require('./crud.types');\n\nvar _crud3 = require('./crud.upload');\n\nfunction crud_actions(type) {\n var fetch_type = (0, _crud.crud_fetch)(type);\n return ['index', 'show', 'create', 'update', 'destroy'].reduce(function (lookup, param) {\n lookup[param] = crud_action(type, param, function (q) {\n return fetch_type[param](q);\n });\n return lookup;\n }, {\n action: function action(method, fn) {\n return crud_action(type, method, fn);\n },\n upload: function upload(id, fd) {\n return (0, _crud3.upload_action)(type, id, fd);\n }\n });\n}\n\nvar crud_action = exports.crud_action = function crud_action(type, method, fn) {\n return function (q) {\n return function (dispatch) {\n return new Promise(function (resolve, reject) {\n dispatch({ type: (0, _crud2.as_type)(type, method + '_loading') });\n fn(q).then(function (data) {\n dispatch({ type: (0, _crud2.as_type)(type, method), data: data });\n resolve(data);\n }).catch(function (e) {\n dispatch({ type: (0, _crud2.as_type)(type, method + '_error') });\n reject(e);\n });\n });\n };\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.crud_fetch = crud_fetch;\nexports.postBody = postBody;\n\nvar _nodeFetch = require('node-fetch');\n\nvar _nodeFetch2 = _interopRequireDefault(_nodeFetch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction crud_fetch(type, tag) {\n var uri = '/api/' + type + '/' + (tag || '');\n return {\n index: function index(q) {\n return (0, _nodeFetch2.default)(_get_url(uri, q), _get_headers()).then(function (req) {\n return req.json();\n }).catch(error);\n },\n\n show: function show(id) {\n return (0, _nodeFetch2.default)(uri + id).then(function (req) {\n return req.json();\n }).catch(error);\n },\n\n create: function create(data) {\n return (0, _nodeFetch2.default)(uri, post(data)).then(function (req) {\n return req.json();\n }).catch(error);\n },\n\n update: function update(data) {\n return (0, _nodeFetch2.default)(uri + data.id, put(data)).then(function (req) {\n return req.json();\n }).catch(error);\n },\n\n destroy: function destroy(data) {\n return (0, _nodeFetch2.default)(uri + data.id, _destroy(data)).then(function (req) {\n return req.json();\n }).catch(error);\n }\n };\n}\n\nfunction _get_url(_url, data) {\n var url = new URL(window.location.origin + _url);\n if (data) {\n Object.keys(data).forEach(function (key) {\n return url.searchParams.append(key, data[key]);\n });\n }\n return url;\n}\nfunction _get_headers() {\n return {\n method: 'GET',\n headers: {\n 'Accept': 'application/json'\n }\n };\n}\nfunction post(data) {\n return {\n method: 'POST',\n body: JSON.stringify(data),\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n }\n };\n}\nfunction postBody(data) {\n return {\n method: 'POST',\n body: data,\n headers: {\n 'Accept': 'application/json'\n }\n };\n}\nfunction put(data) {\n return {\n method: 'PUT',\n body: JSON.stringify(data),\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n }\n };\n}\nfunction _destroy(data) {\n return {\n method: 'DELETE',\n body: JSON.stringify(data),\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n }\n };\n}\nfunction error(err) {\n console.warn(err);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar as_type = exports.as_type = function as_type(a, b) {\n return [a, b].join('_').toUpperCase();\n};\n\nvar with_type = exports.with_type = function with_type(type, actions) {\n return actions.reduce(function (a, b) {\n return (a[b] = as_type(type, b)) && a;\n }, {});\n};\n\nvar crud_type = exports.crud_type = function crud_type(type) {\n var actions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return with_type(type, actions.concat(['index_loading', 'index', 'index_error', 'show_loading', 'show', 'show_error', 'create_loading', 'create', 'create_error', 'update_loading', 'update', 'update_error', 'destroy_loading', 'destroy', 'destroy_error', 'upload_loading', 'upload_progress', 'upload_waiting', 'upload_complete', 'upload_error', 'sort']));\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.upload_action = undefined;\nexports.crud_upload = crud_upload;\n\nvar _crud = require('./crud.types');\n\nfunction _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; }\n\nfunction crud_upload(type, fd, data, dispatch) {\n return new Promise(function (resolve, reject) {\n var id = data.id;\n\n Object.keys(data).forEach(function (key) {\n if (key !== 'id') {\n fd.append(key, data[key]);\n }\n });\n\n console.log('/api/' + type + '/' + id + '/upload/');\n\n var xhr = new XMLHttpRequest();\n xhr.upload.addEventListener(\"progress\", uploadProgress, false);\n xhr.addEventListener(\"load\", uploadComplete, false);\n xhr.addEventListener(\"error\", uploadFailed, false);\n xhr.addEventListener(\"abort\", uploadCancelled, false);\n xhr.open(\"POST\", '/api/' + type + '/' + id + '/upload/');\n xhr.send(fd);\n\n dispatch && dispatch({ type: (0, _crud.as_type)(type, 'upload_loading') });\n\n var complete = false;\n\n function uploadProgress(e) {\n if (e.lengthComputable) {\n var percent = Math.round(e.loaded * 100 / e.total) || 0;\n if (percent > 99) {\n dispatch && dispatch(_defineProperty({\n type: (0, _crud.as_type)(type, 'upload_waiting'),\n percent: percent\n }, type, id));\n } else {\n dispatch && dispatch(_defineProperty({\n type: (0, _crud.as_type)(type, 'upload_progress'),\n percent: percent\n }, type, id));\n }\n } else {\n dispatch && dispatch(_defineProperty({\n type: (0, _crud.as_type)(type, 'upload_error'),\n error: 'unable to compute upload progress'\n }, type, id));\n }\n }\n\n function uploadComplete(e) {\n var parsed = void 0;\n try {\n parsed = JSON.parse(e.target.responseText);\n } catch (e) {\n dispatch && dispatch(_defineProperty({\n type: (0, _crud.as_type)(type, 'upload_error'),\n error: 'upload failed'\n }, type, id));\n reject(e);\n return;\n }\n dispatch && dispatch(_defineProperty({\n type: (0, _crud.as_type)(type, 'upload_complete'),\n data: parsed\n }, type, id));\n if (parsed.files && parsed.files.length) {\n parsed.files.forEach(function (file) {\n console.log(file);\n dispatch && dispatch({\n type: (0, _crud.as_type)('file', 'create'),\n data: file\n });\n });\n }\n resolve(parsed);\n }\n\n function uploadFailed(evt) {\n dispatch && dispatch(_defineProperty({\n type: (0, _crud.as_type)(type, 'upload_error'),\n error: 'upload failed'\n }, type, id));\n reject(evt);\n }\n\n function uploadCancelled(evt) {\n dispatch && dispatch(_defineProperty({\n type: (0, _crud.as_type)(type, 'upload_error'),\n error: 'upload cancelled'\n }, type, id));\n reject(evt);\n }\n });\n}\n\nvar upload_action = exports.upload_action = function upload_action(type, id, fd) {\n return function (dispatch) {\n return crud_upload(type, id, fd, dispatch);\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.actions = exports.parser = exports.util = undefined;\n\nvar _crud = require('./crud.actions');\n\nvar _util = require('../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _parser = require('./parser');\n\nvar parser = _interopRequireWildcard(_parser);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\nfor our crud events, create corresponding actions\nthe actions fire a 'loading' event, call the underlying api method, and then resolve.\nso you can do ... \n import { folderActions } from '../../api'\n folderActions.index({ module: 'samplernn' })\n folderActions.show(12)\n folderActions.create({ module: 'samplernn', name: 'foo' })\n folderActions.update(12, { module: 'pix2pix' })\n folderActions.destroy(12, { confirm: true })\n folderActions.upload(12, form_data)\n*/\n\nexports.util = _util2.default;\nexports.parser = parser;\nvar actions = exports.actions = ['folder', 'file', 'dataset', 'task', 'user'].reduce(function (a, b) {\n return (a[b] = (0, _crud.crud_actions)(b)) && a;\n}, {});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.tumblr = exports.thumbnail = exports.loadImage = exports.tag = exports.parse = exports.lookup = exports.integrations = undefined;\n\nvar _nodeFetch = require('node-fetch');\n\nvar _nodeFetch2 = _interopRequireDefault(_nodeFetch);\n\nvar _fetchJsonp = require('fetch-jsonp');\n\nvar _fetchJsonp2 = _interopRequireDefault(_fetchJsonp);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar integrations = exports.integrations = [{\n type: 'image',\n regex: /\\.(jpeg|jpg|gif|png|svg)(\\?.*)?$/i,\n fetch: function fetch(url, done) {\n var img = new Image();\n img.onload = function () {\n if (!img) return;\n var width = img.naturalWidth,\n height = img.naturalHeight;\n img = null;\n done({\n url: url,\n type: \"image\",\n token: \"\",\n thumbnail: \"\",\n title: \"\",\n width: width,\n height: height\n });\n };\n img.src = url;\n if (img.complete) {\n img.onload();\n }\n },\n tag: function tag(media) {\n return '';\n }\n}, {\n type: 'video',\n regex: /\\.(mp4|webm)(\\?.*)?$/i,\n fetch: function fetch(url, done) {\n var video = document.createElement(\"video\");\n var url_parts = url.replace(/\\?.*$/, \"\").split(\"/\");\n var filename = url_parts[url_parts.length - 1];\n video.addEventListener(\"loadedmetadata\", function () {\n var width = video.videoWidth,\n height = video.videoHeight;\n video = null;\n done({\n url: url,\n type: \"video\",\n token: url,\n thumbnail: \"/public/assets/img/video-thumbnail.png\",\n title: filename,\n width: width,\n height: height\n });\n });\n video.src = url;\n video.load();\n },\n tag: function tag(media) {\n return '';\n }\n}, {\n type: 'audio',\n regex: /\\.(wav|mp3)(\\?.*)?$/i,\n fetch: function fetch(url, done) {\n var audio = document.createElement(\"audio\");\n var url_parts = url.replace(/\\?.*$/, \"\").split(\"/\");\n var filename = url_parts[url_parts.length - 1];\n audio.addEventListener(\"loadedmetadata\", function () {\n var duration = audio.duration;\n audio = null;\n done({\n url: url,\n type: \"audio\",\n token: url,\n thumbnail: \"/public/assets/img/audio-thumbnail.png\",\n title: filename,\n duration: duration\n });\n });\n audio.src = url;\n audio.load();\n },\n tag: function tag(media) {\n return '';\n }\n}, {\n type: 'youtube',\n regex: /(?:youtube\\.com\\/(?:[^\\/]+\\/.+\\/|(?:v|e(?:mbed)?)\\/|.*[?&]v=)|youtu\\.be\\/)([^\"&?\\/ ]{11})/i,\n fetch: function fetch(url, done) {\n var id = (url.match(/v=([-_a-zA-Z0-9]{11})/i) || url.match(/youtu.be\\/([-_a-zA-Z0-9]{11})/i) || url.match(/embed\\/([-_a-zA-Z0-9]{11})/i))[1].split('&')[0];\n var thumb = \"https://i.ytimg.com/vi/\" + id + \"/hqdefault.jpg\";\n\n var jsonp_url = new URL('https://www.googleapis.com/youtube/v3/videos');\n var data = {\n id: id,\n key: \"AIzaSyCaLRGY-hxs92045X-Jew7w1FgQPkStHgc\",\n part: \"id,contentDetails,snippet,status\"\n };\n Object.keys(data).forEach(function (key) {\n return jsonp_url.searchParams.append(key, data[key]);\n });\n\n (0, _fetchJsonp2.default)(jsonp_url.toString()).then(function (result) {\n return result.json();\n }).then(function (result) {\n if (!result || !result.items.length) {\n return alert(\"Sorry, this video URL is invalid.\");\n }\n var res = result.items[0];\n // console.log(res)\n\n var dd = res.contentDetails.duration.match(/\\d+/g).map(function (i) {\n return parseInt(i);\n });\n var duration = 0;\n if (dd.length == 3) {\n duration = dd[0] * 60 + dd[1] * 60 + dd[2];\n } else if (dd.length == 2) {\n duration = dd[0] * 60 + dd[1];\n } else {\n duration = dd[0];\n }\n\n [\"maxres\", \"high\", \"medium\", \"standard\", \"default\"].some(function (t) {\n if (res.snippet.thumbnails[t]) {\n thumb = res.snippet.thumbnails[t].url;\n return true;\n }\n return false;\n });\n\n done({\n url: url,\n type: \"youtube\",\n token: id,\n thumbnail: thumb,\n title: res.snippet.title,\n duration: duration,\n width: 640,\n height: 360\n });\n });\n },\n tag: function tag(media) {\n // return '▶';\n return '';\n }\n}, {\n type: 'vimeo',\n regex: /vimeo.com\\/\\d+$/i,\n fetch: function fetch(url, done) {\n var id = url.match(/\\d+$/i)[0];\n (0, _nodeFetch2.default)('https://vimeo.com/api/v2/video/' + id + '.json').then(function (result) {\n return result.json();\n }).then(function (result) {\n if (result.length == 0) {\n return done(id, \"\", 640, 360);\n }\n var res = result[0];\n if (res.embed_privacy != \"anywhere\") {\n alert(\"Sorry, the author of this video has marked it private, preventing it from being embedded.\", function () {});\n return;\n }\n done({\n url: url,\n type: \"vimeo\",\n token: id,\n thumbnail: res.thumbnail_large,\n duration: res.duration,\n title: res.title,\n width: res.width,\n height: res.height\n });\n });\n },\n tag: function tag(media) {\n // return '▶';\n return '';\n }\n},\n// {\n// type: 'soundcloud',\n// regex: /soundcloud.com\\/[-a-zA-Z0-9]+\\/[-a-zA-Z0-9]+\\/?$/i,\n// fetch: function (url, done) {\n// fetch('https://api.soundcloud.com/resolve.json?url=' \n// + url\n// + '&client_id=' \n// + '0673fbe6fc794a7750f680747e863b10')\n// .then(result => result.json())\n// .then(result => {\n// console.log(result)\n// done({\n// url: url,\n// type: \"soundcloud\",\n// token: result.id,\n// thumbnail: result.artwork_url || result.user.avatar_url,\n// title: result.user.username + \" - \" + result.title,\n// duration: result.duration,\n// width: 166,\n// height: 166,\n// })\n// })\n// },\n// tag: function (media) {\n// return ''\n// }\n// },\n{\n type: 'link',\n regex: /^http.+/i,\n fetch: function fetch(url, done) {\n done({\n url: url,\n type: \"link\",\n token: \"\",\n thumbnail: \"\",\n title: \"\",\n width: 100,\n height: 100\n });\n },\n tag: function tag(media) {\n return '' + media.url + '';\n }\n}];\n\nvar lookup = exports.lookup = integrations.reduce(function (a, b) {\n return (a[b.type] = b) && a;\n}, {});\n\nvar parse = exports.parse = function parse(url, cb) {\n var matched = integrations.some(function (integration) {\n if (integration.regex.test(url)) {\n integration.fetch(url, function (res) {\n cb(res);\n });\n return true;\n }\n return false;\n });\n if (!matched) {\n cb(null);\n }\n};\n\nvar tag = exports.tag = function tag(media) {\n if (media.type in lookup) {\n return lookup[media.type].tag(media);\n }\n return \"\";\n};\n\nvar loadImage = exports.loadImage = function loadImage(url, cb, error) {\n if (lookup.image.regex.test(url)) {\n lookup.image.fetch(url, function (media) {\n cb(media);\n });\n } else error && error();\n};\n\nvar thumbnail = exports.thumbnail = function thumbnail(media) {\n return '';\n};\n\nvar tumblr = exports.tumblr = function tumblr(url, cb) {\n var domain = url.replace(/^https?:\\/\\//, \"\").split(\"/\")[0];\n if (domain.indexOf(\".\") == -1) {\n domain += \".tumblr.com\";\n }\n (0, _fetchJsonp2.default)(\"http://\" + domain + \"/api/read\").then(function (data) {\n // const blog = data.tumblelog\n var media_list = data.posts.reduce(parseTumblrPost, []);\n cb(media_list);\n });\n};\n\nfunction parseTumblrPost(media_list, post) {\n var media = void 0,\n caption = void 0,\n url = void 0;\n switch (post.type) {\n case 'photo':\n caption = stripHTML(post['photo-caption']);\n if (post.photos.length) {\n post.photos.forEach(function (photo) {\n media = {\n url: photo['photo-url-1280'],\n type: \"image\",\n token: \"\",\n thumbnail: photo['photo-url-500'],\n description: caption,\n width: parseInt(photo.width),\n height: parseInt(photo.height)\n };\n media_list.push(media);\n });\n } else {\n media = {\n url: post['photo-url-1280'],\n type: \"image\",\n token: \"\",\n thumbnail: post['photo-url-500'],\n description: caption,\n width: parseInt(post.width),\n height: parseInt(post.height)\n };\n media_list.push(media);\n }\n break;\n case 'video':\n url = post['video-source'];\n if (url.indexOf(\"http\") !== 0) {\n break;\n }\n if (lookup.youtube.regex.test(url)) {\n var id = (url.match(/v=([-_a-zA-Z0-9]{11})/i) || url.match(/youtu.be\\/([-_a-zA-Z0-9]{11})/i) || url.match(/embed\\/([-_a-zA-Z0-9]{11})/i))[1].split('&')[0];\n var thumb = \"https://i.ytimg.com/vi/\" + id + \"/hqdefault.jpg\";\n media = {\n url: post['video-source'],\n type: \"youtube\",\n token: id,\n thumbnail: thumb,\n title: stripHTML(post['video-caption']),\n width: 640,\n height: 360\n };\n media_list.push(media);\n }\n break;\n default:\n break;\n }\n return media_list;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.spectrum = spectrum;\nexports.raw_spectrum = raw_spectrum;\n\nvar _util = require('../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar scratch = document.createElement('canvas');\nvar scratchCtx = scratch.getContext('2d-lodpi');\n\nvar w = 256;\nvar h = 256;\n\nfunction spectrum(spec, x0, y0, ww, hh) {\n var data = spec.data;\n var fft_size = spec.fft_size;\n var half_fft_size = spec.fft_size / 2;\n var spec_len = data.length;\n\n scratch.width = data.length;\n scratch.height = half_fft_size;\n\n var imageData = ctx.createImageData(scratch.width, scratch.height);\n var pixels = imageData.data;\n\n var i = void 0,\n j = void 0,\n u = void 0,\n v = void 0,\n _r = void 0,\n _i = void 0,\n col = void 0,\n hsl = void 0;\n\n for (i = 0; i < spec_len; i++) {\n col = data[i];\n\n for (j = 0; j < half_fft_size; j++) {\n u = ((half_fft_size - j) * spec_len + i) * 4;\n v = j * 2;\n _r = col[v];\n _i = mod(col[v + 1], Math.PI * 2) / (Math.PI * 2);\n hsl = color.hsl2rgb((_i + 1) / 2, 1.0, 1 - Math.abs(_r / 10));\n // red - real part\n // pixels[u] = _r * 127 + 127\n // // green - imag part\n // pixels[u+1] = _i * 127 + 127\n // // blue - magnitude\n // pixels[u+2] = Math.sqrt(Math.pow(_r, 2) + Math.pow(_i, 2)) * 128 + 127\n // pixels[u+3] = 255\n pixels[u] = hsl[0];\n pixels[u + 1] = hsl[1];\n pixels[u + 2] = hsl[2];\n pixels[u + 3] = 255;\n }\n }\n\n scratchCtx.putImageData(imageData, 0, 0);\n\n var pcm_length = spec.fft_overlap * spec_len;\n\n x0 = x0 * devicePixelRatio || 0;\n y0 = y0 * devicePixelRatio || Math.floor(h / 4);\n ww = ww * devicePixelRatio || w;\n hh = hh * devicePixelRatio || h / 4;\n\n var width = Math.round(pcm_length / spec.sr * pixels_per_second);\n var height = Math.floor(hh);\n\n ctx.save();\n clear(1, x0, y0, w, height);\n ctx.drawImage(scratch, x0, y0, width, height);\n ctx.restore();\n}\n\nfunction raw_spectrum(spec, x0, y0, ww, hh, def_min_r, def_min_i) {\n var data = spec.data;\n var fft_size = spec.fft_size;\n var half_fft_size = spec.fft_size / 2;\n var spec_len = data.length;\n\n var _scratch = document.createElement('canvas');\n var _scratchCtx = _scratch.getContext('2d-lodpi');\n _scratch.width = data.length;\n _scratch.height = half_fft_size;\n // console.log(\"spectrum w/h:\", _scratch.width, _scratch.height)\n\n var imageData = _scratchCtx.createImageData(_scratch.width, _scratch.height);\n var pixels = imageData.data;\n\n var i = void 0,\n j = void 0,\n u = void 0,\n v = void 0,\n _r = void 0,\n _i = void 0,\n col = void 0,\n hsl = void 0;\n // let min_r = Infinity, max_r = -Infinity\n // let min_i = Infinity, max_i = -Infinity\n\n // determined empirically..\n // let min_r = -60.4894057005308\n // let max_r = 107.23800966675353\n // let min_i = -59.4894057005308\n // let max_i = 108.23800966675353\n var min_r = -def_min_r;\n var max_r = def_min_r;\n var min_i = -def_min_i;\n var max_i = def_min_i;\n var delta_r = max_r - min_r;\n var delta_i = max_i - min_i;\n var mean_r = 0;\n var mean_i = 0;\n var sum_mean_r = 0,\n sum_mean_i = 0;\n var real = void 0,\n imag = void 0;\n\n for (i = 0; i < spec_len; i++) {\n col = data[i];\n mean_r = 0;\n mean_i = 0;\n\n for (j = 0; j < half_fft_size; j++) {\n u = (j * spec_len + i) * 4;\n v = j * 2;\n real = col[v];\n imag = col[v + 1];\n mean_r += real;\n mean_i += imag;\n _r = _util2.default.clamp((real - min_r) / delta_r * 255, 0, 255);\n _i = _util2.default.clamp((imag - min_i) / delta_i * 255, 0, 255);\n\n // hsl = color.hsl2rgb((_i + 1) / 2, 1.0, 1 - Math.abs(_r / 10))\n pixels[u + 0] = _r;\n pixels[u + 1] = _i;\n pixels[u + 2] = 127; // hsl[2]\n pixels[u + 3] = 255;\n\n // min_r = Math.min(min_r, col[v])\n // max_r = Math.max(max_r, col[v])\n // min_i = Math.min(min_i, col[v]+1)\n // max_i = Math.max(max_i, col[v]+1)\n }\n mean_r /= half_fft_size;\n mean_i /= half_fft_size;\n sum_mean_r += mean_r;\n sum_mean_i += mean_i;\n }\n\n sum_mean_r /= spec_len;\n sum_mean_i /= spec_len;\n // console.log(sum_mean_r, sum_mean_i)\n // console.log(\"r:\", min_r, max_r)\n // console.log(\"i:\", min_i, max_i)\n _scratchCtx.putImageData(imageData, 0, 0);\n\n return { canvas: _scratch, imageData: imageData };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.requestAudioContext = requestAudioContext;\n\nvar _tone = require('tone');\n\nvar _tone2 = _interopRequireDefault(_tone);\n\nvar _startAudioContext = require('./startAudioContext');\n\nvar _startAudioContext2 = _interopRequireDefault(_startAudioContext);\n\nvar _util = require('../../util');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction requestAudioContext(fn) {\n if (_util.is_mobile) {\n var container = document.createElement('div');\n var button = document.createElement('div');\n button.innerHTML = 'Tap to start - please unmute your phone';\n Object.assign(container.style, {\n display: 'block',\n position: 'absolute',\n width: '100%',\n height: '100%',\n zIndex: '10000',\n top: '0px',\n left: '0px',\n backgroundColor: 'rgba(0, 0, 0, 0.8)'\n });\n Object.assign(button.style, {\n display: 'block',\n position: 'absolute',\n left: '50%',\n top: '50%',\n padding: '20px',\n backgroundColor: '#7F33ED',\n color: 'white',\n fontFamily: 'monospace',\n borderRadius: '3px',\n transform: 'translate3D(-50%,-50%,0)',\n textAlign: 'center',\n lineHeight: '1.5',\n width: '150px'\n });\n container.appendChild(button);\n document.body.appendChild(container);\n _startAudioContext2.default.setContext(_tone2.default.context);\n _startAudioContext2.default.on(button);\n _startAudioContext2.default.onStarted(function (_) {\n container.remove();\n fn();\n });\n } else {\n fn();\n }\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _tone = require('tone');\n\nvar _tone2 = _interopRequireDefault(_tone);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// const compressor = new Tone.Compressor(-30, 3).toMaster()\n\nvar compressor = new _tone2.default.Compressor(-30, 3).toMaster();\nvar gain = new _tone2.default.Gain(1).connect(compressor);\n\nexports.default = gain;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _tone = require('tone');\n\nvar _tone2 = _interopRequireDefault(_tone);\n\nvar _util = require('../../util');\n\nvar _signalWindows = require('signal-windows');\n\nvar _fft = require('fft.js');\n\nvar _fft2 = _interopRequireDefault(_fft);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar fft_size = 512;\nvar fft_overlap = fft_size / 4;\n\nvar fft = new _fft2.default(fft_size);\n\nfunction toSpectrum(pcm, sr) {\n sr = sr || 44100;\n var ham = _signalWindows.windows.construct('ham', fft_size);\n var pcm_in = new Array(fft_size);\n var pcm_length = pcm.length;\n var pcm_q_length = Math.ceil(pcm_length / fft_size) * fft_size;\n var i = void 0,\n j = void 0,\n fft_out = void 0,\n data = [];\n for (i = -fft_size; i < pcm_q_length; i += fft_overlap) {\n for (j = 0; j < fft_size; j++) {\n pcm_in[j] = pcm[i + j] * ham[j] || 0;\n }\n fft_out = fft.createComplexArray();\n fft.realTransform(fft_out, pcm_in);\n fft.completeSpectrum(fft_out);\n data.push(fft_out);\n }\n return {\n data: data,\n sr: sr,\n fft_size: fft_size,\n fft_overlap: fft_overlap\n };\n}\n\nfunction fromSpectrum(spec) {\n var data = spec.data;\n var sr = spec.sr;\n var fft_size = spec.fft_size;\n var fft_overlap = spec.fft_overlap;\n var spec_len = data.length;\n\n var ham = _signalWindows.windows.construct('ham', fft_size);\n var out = fft.createComplexArray();\n var pcm_length = fft_overlap * spec_len;\n\n var audioBuffer = _tone2.default.context.createBuffer(1, pcm_length, sr);\n var pcm = audioBuffer.getChannelData(0);\n\n var i = void 0,\n j = void 0,\n u = void 0,\n col = void 0;\n\n for (i = 0; i < spec_len; i++) {\n col = data[i];\n // for (j = fft_size; j < fft_size << 1; j++) {\n // col[j] = 0\n // }\n // if (i == 0) console.log(col)\n fft.inverseTransform(out, col);\n u = i * fft_overlap;\n for (j = 0; j < fft_size; j++) {\n pcm[u + j] += out[j * 2] * ham[j] || 0;\n }\n }\n\n fadeInOut(pcm, fft_size);\n // console.log(pcm)\n return audioBuffer;\n}\n\nfunction fromImageData(imageData, sr, _r, _i) {\n var pixels = imageData.data;\n var w = imageData.width;\n var h = imageData.height;\n var data = new Array(w);\n var x = void 0,\n y = void 0,\n u = void 0,\n v = void 0,\n v2 = void 0;\n for (y = 0; y < h; y++) {\n var col = data[y] = new Float32Array(h * 4);\n for (x = 0; x < w; x++) {\n u = (x * w + y) * 4;\n v = x * 2;\n col[v] = (pixels[u] / 255 - 0.5) * _r;\n col[v + 1] = (pixels[u + 1] / 255 - 0.5) * _i;\n v2 = (h - y + h) * 2;\n col[v2] = col[v];\n col[v2 + 1] = 0; // col[v+1]\n }\n col[h * 2] = col[h * 2 + 1] = col[h * 2 - 1] = col[h * 2 - 2] = 0;\n }\n var spec = {\n data: data,\n sr: sr,\n fft_size: fft_size, fft_overlap: fft_overlap\n };\n return spec;\n}\n\nfunction binToHz(spec, i) {\n return i / spec.fft_size * spec.sr;\n}\n\nfunction fadeInOut(pcm, fade_size) {\n var pcm_length = pcm.length;\n var fade = 0,\n i = void 0;\n for (i = 0; i < fade_size; i++) {\n fade = i / fade_size;\n fade *= fade;\n pcm[i] *= fade;\n pcm[pcm_length - i] *= fade;\n }\n}\nfunction rotatePhase(spec, theta) {\n var data = spec.data,\n fft_size = spec.fft_size;\n\n var i = void 0,\n j = void 0,\n col = void 0,\n len = data.length;\n for (i = 0; i < len; i++) {\n col = data[i];\n for (j = 0; j < fft_size; j++) {\n col[j * 2 + 1] += theta;\n }\n }\n return spec;\n}\n\nfunction linearBins(spec, n) {\n n = n || 1;\n\n var bins = [],\n i = void 0,\n q_i = void 0;\n for (q_i = 0; q_i < n; q_i++) {\n bins[q_i] = [];\n }\n var step = Math.floor(spec.fft_size / n);\n var len_quantize_n = (0, _util.quantize)(spec.fft_size, n);\n for (i = 0; i < len_quantize_n; i++) {\n q_i = Math.floor(i / step);\n bins[q_i] = bins[q_i] || [];\n bins[q_i].push(i);\n }\n // leftover bins get put at end\n for (; i < spec.fft_size; i++) {\n bins[q_i].push(i);\n }\n return bins;\n}\nfunction logarithmicBins(spec) {\n var bins = [],\n i = void 0,\n j = void 0,\n q_i = void 0;\n var binCount = Math.log2(spec.fft_size) - 1;\n for (i = 0, q_i = 0, j = 0; i < binCount; i++) {\n j += 1 << i;\n bins[i] = [];\n for (; q_i < j; q_i++) {\n bins[i].push(q_i);\n }\n }\n return bins;\n}\nfunction concatBins(bins) {\n return bins.reduce(function (acc, cv) {\n return acc.concat(cv);\n }, []);\n}\nfunction reverseBins(bins) {\n return bins.map(function (bin) {\n return bin.reverse();\n });\n}\nfunction minBins(bins) {\n return bins.map(function (bin) {\n var b = bin[0];\n return bin.map(function () {\n return b;\n });\n });\n}\nfunction maxBins(bins) {\n return bins.map(function (bin) {\n var b = bin[bin.length - 1];\n return bin.map(function () {\n return b;\n });\n });\n}\nfunction rotateSpectrum(spec, n) {\n var fft_size = spec.fft_size;\n\n if (n && n < 1) {\n n -= 0.5;\n n *= fft_size;\n }\n n = Math.floor(n);\n var order = new Array(fft_size),\n i = void 0;\n for (i = 0; i < fft_size; i++) {\n order[i] = (0, _util.mod)(i + n, fft_size / 2);\n }\n return reorderBins(spec, order);\n}\nfunction cloneSpectrum(spec) {\n var data = spec.data,\n fft_size = spec.fft_size,\n sr = spec.sr,\n fft_overlap = spec.fft_overlap;\n\n var spec_len = data.length;\n\n var new_data = new Array(spec_len);\n var i = void 0;\n for (i = 0; i < spec_len; i++) {\n new_data[i] = data[i].concat();\n new_data[i][2] = 0;\n }\n\n return {\n data: new_data,\n fft_size: fft_size,\n sr: sr, fft_overlap: fft_overlap\n };\n}\nfunction reverseSpectrum(spec) {\n var new_spec = cloneSpectrum(spec);\n new_spec.data = new_spec.data.reverse();\n return new_spec;\n}\nfunction shuffleSpectrum(spec) {\n var fft_size = spec.fft_size;\n\n var order = new Array(fft_size),\n i = void 0;\n for (i = 0; i < fft_size; i++) {\n order[i] = i;\n }\n (0, _util.shuffle)(order);\n return reorderBins(spec, order);\n}\nfunction invertSpectrum(spec) {\n var fft_size = spec.fft_size;\n\n var order = new Array(fft_size),\n i = void 0;\n for (i = 0; i < fft_size; i++) {\n order[i] = fft_size - i - 1;\n }\n return reorderBins(spec, order);\n}\nfunction reorderBins(spec, order) {\n var new_spec = cloneSpectrum(spec);\n var data = spec.data,\n sr = spec.sr,\n fft_size = spec.fft_size,\n fft_overlap = spec.fft_overlap;\n\n var spec_len = data.length;\n var new_data = new_spec.data;\n\n\n var i = void 0,\n j = void 0,\n col = void 0,\n new_col = void 0;\n for (j = order.length; j < fft_size; j++) {\n order[j] = j;\n }\n\n for (i = 0; i < spec_len; i++) {\n col = data[i];\n new_col = new_data[i] = data[i].concat();\n col[0] = 0;\n col[2] = 0;\n col[4] = 0;\n for (j = 0; j < fft_size / 2; j++) {\n new_col[j * 2] = col[order[j] * 2];\n new_col[j * 2 + 1] = col[order[j] * 2 + 1];\n }\n for (; j < fft_size; j++) {\n new_col[j * 2] = 0;\n new_col[j * 2 + 1] = 0;\n }\n }\n\n return {\n data: new_data,\n sr: sr, fft_size: fft_size, fft_overlap: fft_overlap\n };\n}\n\nexports.default = {\n fft_size: fft_size, fft_overlap: fft_overlap,\n toSpectrum: toSpectrum, fromSpectrum: fromSpectrum, fromImageData: fromImageData, binToHz: binToHz,\n fadeInOut: fadeInOut,\n cloneSpectrum: cloneSpectrum,\n reverseSpectrum: reverseSpectrum, shuffleSpectrum: shuffleSpectrum, invertSpectrum: invertSpectrum, rotateSpectrum: rotateSpectrum,\n reorderBins: reorderBins,\n linearBins: linearBins, logarithmicBins: logarithmicBins,\n concatBins: concatBins,\n reverseBins: reverseBins, minBins: minBins, maxBins: maxBins,\n rotatePhase: rotatePhase\n};","\"use strict\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/**\n * StartAudioContext.js\n * @author Yotam Mann\n * @license http://opensource.org/licenses/MIT MIT License\n * @copyright 2016 Yotam Mann\n */\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === 'object' && module.exports) {\n module.exports = factory();\n } else {\n root.StartAudioContext = factory();\n }\n})(undefined, function () {\n\n /**\n * The StartAudioContext object\n */\n var StartAudioContext = {\n /**\n * The audio context passed in by the user\n * @type {AudioContext}\n */\n context: null,\n /**\n * The TapListeners bound to the elements\n * @type {Array}\n * @private\n */\n _tapListeners: [],\n /**\n * Callbacks to invoke when the audio context is started\n * @type {Array}\n * @private\n */\n _onStarted: []\n };\n\n /**\n * Set the context\n * @param {AudioContext} ctx\n * @returns {StartAudioContext}\n */\n StartAudioContext.setContext = function (ctx) {\n StartAudioContext.context = ctx;\n return StartAudioContext;\n };\n\n /**\n * Add a tap listener to the audio context\n * @param {Array|Element|String|jQuery} element\n * @returns {StartAudioContext}\n */\n StartAudioContext.on = function (element) {\n if (Array.isArray(element) || NodeList && element instanceof NodeList) {\n for (var i = 0; i < element.length; i++) {\n StartAudioContext.on(element[i]);\n }\n } else if (typeof element === \"string\") {\n StartAudioContext.on(document.querySelectorAll(element));\n } else if (element.jquery && typeof element.toArray === \"function\") {\n StartAudioContext.on(element.toArray());\n } else if (Element && element instanceof Element) {\n //if it's an element, create a TapListener\n var tap = new TapListener(element, onTap);\n StartAudioContext._tapListeners.push(tap);\n }\n return StartAudioContext;\n };\n\n /**\n * Bind a callback to when the audio context is started. \n * @param {Function} cb\n * @return {StartAudioContext}\n */\n StartAudioContext.onStarted = function (cb) {\n //if it's already started, invoke the callback\n if (StartAudioContext.isStarted()) {\n cb();\n } else {\n StartAudioContext._onStarted.push(cb);\n }\n return StartAudioContext;\n };\n\n /**\n * returns true if the context is started\n * @return {Boolean}\n */\n StartAudioContext.isStarted = function () {\n return StartAudioContext.context !== null && StartAudioContext.context.state === \"running\";\n };\n\n /**\n * @class Listens for non-dragging tap ends on the given element\n * @param {Element} element\n * @internal\n */\n var TapListener = function TapListener(element) {\n\n this._dragged = false;\n\n this._element = element;\n\n this._bindedMove = this._moved.bind(this);\n this._bindedEnd = this._ended.bind(this);\n\n element.addEventListener(\"touchmove\", this._bindedMove);\n element.addEventListener(\"touchend\", this._bindedEnd);\n element.addEventListener(\"mouseup\", this._bindedEnd);\n };\n\n /**\n * drag move event\n */\n TapListener.prototype._moved = function (e) {\n this._dragged = true;\n };\n\n /**\n * tap ended listener\n */\n TapListener.prototype._ended = function (e) {\n if (!this._dragged) {\n onTap();\n }\n this._dragged = false;\n };\n\n /**\n * remove all the bound events\n */\n TapListener.prototype.dispose = function () {\n this._element.removeEventListener(\"touchmove\", this._bindedMove);\n this._element.removeEventListener(\"touchend\", this._bindedEnd);\n this._element.removeEventListener(\"mouseup\", this._bindedEnd);\n this._bindedMove = null;\n this._bindedEnd = null;\n this._element = null;\n };\n\n /**\n * Invoked the first time of the elements is tapped.\n * Creates a silent oscillator when a non-dragging touchend \n * event has been triggered.\n */\n function onTap() {\n //start the audio context with a silent oscillator\n if (StartAudioContext.context && !StartAudioContext.isStarted()) {\n var osc = StartAudioContext.context.createOscillator();\n var silent = StartAudioContext.context.createGain();\n silent.gain.value = 0;\n osc.connect(silent);\n silent.connect(StartAudioContext.context.destination);\n var now = StartAudioContext.context.currentTime;\n osc.start(now);\n osc.stop(now + 0.5);\n }\n\n //dispose all the tap listeners\n if (StartAudioContext._tapListeners) {\n for (var i = 0; i < StartAudioContext._tapListeners.length; i++) {\n StartAudioContext._tapListeners[i].dispose();\n }\n StartAudioContext._tapListeners = null;\n }\n //the onstarted callbacks\n if (StartAudioContext._onStarted) {\n for (var j = 0; j < StartAudioContext._onStarted.length; j++) {\n StartAudioContext._onStarted[j]();\n }\n StartAudioContext._onStarted = null;\n }\n }\n\n return StartAudioContext;\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.play = play;\n\nvar _types = require('../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _tone = require('tone');\n\nvar _tone2 = _interopRequireDefault(_tone);\n\nvar _draw = require('./lib/draw');\n\nvar draw = _interopRequireWildcard(_draw);\n\nvar _output = require('./lib/output');\n\nvar _output2 = _interopRequireDefault(_output);\n\nvar _spectrum = require('./lib/spectrum');\n\nvar _spectrum2 = _interopRequireDefault(_spectrum);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _r = 8;\nvar _i = 8;\n\nfunction play(frame) {\n // const { canvas, imageData } = draw.raw_spectrum(fft, 0, 256, 0, 256, 1, 1)\n // console.log(_r, _i)\n // const { canvas, imageData } = draw.raw_spectrum(player.fft, 0, 256, 0, 256, _r, _i)\n var new_fft = _spectrum2.default.fromImageData(frame.imageData, 44100, _r, _i);\n // gallery.innerHTML = ''\n\n // console.log(player.fft.data, new_fft.data)\n var buf = _spectrum2.default.fromSpectrum(new_fft);\n var _p = new _tone2.default.Player(buf);\n _p.connect(_output2.default);\n _p.start(_tone2.default.now());\n // redraw(new_fft)\n}\n// function redraw(new_fft){\n// const { canvas, imageData } = draw.raw_spectrum(new_fft, 0, 256, 0, 256, _r, _i)\n// }","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.buildZip = exports.renderFrames = exports.loadPCM = exports.loadBuffer = exports.spectrum = exports.FRAME_STEP = exports.FRAME_LENGTH = undefined;\n\nvar _types = require('../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _tone = require('tone');\n\nvar _tone2 = _interopRequireDefault(_tone);\n\nvar _jszip = require('jszip');\n\nvar _jszip2 = _interopRequireDefault(_jszip);\n\nvar _sprintfJs = require('sprintf-js');\n\nvar _draw = require('./lib/draw');\n\nvar draw = _interopRequireWildcard(_draw);\n\nvar _output = require('./lib/output');\n\nvar _output2 = _interopRequireDefault(_output);\n\nvar _spectrum = require('./lib/spectrum');\n\nvar _spectrum2 = _interopRequireDefault(_spectrum);\n\nvar _lib = require('./lib');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar FRAME_LENGTH = exports.FRAME_LENGTH = 126 * 255;\nvar FRAME_STEP = exports.FRAME_STEP = Math.round(FRAME_LENGTH / 4);\n\nvar _r = 8;\nvar _i = 8;\n\nexports.spectrum = _spectrum2.default;\n// requestAudioContext(() => {})\n\nvar loadBuffer = exports.loadBuffer = function loadBuffer(file) {\n return new Promise(function (resolve, reject) {\n var url = URL.createObjectURL(file);\n var buffer = new _tone2.default.Buffer(url, loadBuffer, function (err) {\n console.error('err', err);\n reject(err);\n });\n function loadBuffer() {\n URL.revokeObjectURL(url);\n resolve(buffer);\n }\n });\n};\n\nvar loadPCM = exports.loadPCM = function loadPCM(file) {\n return new Promise(function (resolve, reject) {\n // if we've already fetched this file...\n if (file.pcm) {\n return resolve(file);\n }\n loadBuffer(file).then(function (buffer) {\n var pcm = buffer._buffer.getChannelData(0);\n var sr = buffer._buffer.sampleRate;\n if (!pcm) return reject();\n console.log(pcm.length, sr);\n resolve({ file: file, buffer: buffer, pcm: pcm, sr: sr });\n });\n });\n};\n\nvar renderFrames = exports.renderFrames = function renderFrames(file, _ref) {\n var _ref$frame_step = _ref.frame_step,\n frame_step = _ref$frame_step === undefined ? FRAME_STEP : _ref$frame_step,\n _ref$frame_start = _ref.frame_start,\n frame_start = _ref$frame_start === undefined ? 0 : _ref$frame_start,\n _ref$max = _ref.max,\n max = _ref$max === undefined ? 12 : _ref$max;\n return function (dispatch) {\n return new Promise(function (resolve, reject) {\n loadPCM(file).then(function (pcmProps) {\n var file = pcmProps.file,\n buffer = pcmProps.buffer,\n pcm = pcmProps.pcm,\n sr = pcmProps.sr;\n\n dispatch({ type: _types2.default.wav2pix.load });\n var frames = [];\n var count = 0;\n var _len = pcm.length - FRAME_LENGTH;\n var offset = Math.round(_len * frame_start);\n for (; offset < _len && count < max; offset += frame_step, count += 1) {\n frames.push(render(pcm.slice(offset, offset + FRAME_LENGTH), sr, count));\n }\n dispatch({ type: _types2.default.wav2pix.finish, message: 'Rendered ' + count + ' images' });\n resolve({ pcm: pcmProps, frames: frames });\n });\n });\n };\n};\n\nvar buildZip = exports.buildZip = function buildZip(name, file, _ref2) {\n var _ref2$frame_step = _ref2.frame_step,\n frame_step = _ref2$frame_step === undefined ? FRAME_STEP : _ref2$frame_step,\n _ref2$frame_start = _ref2.frame_start,\n frame_start = _ref2$frame_start === undefined ? 0 : _ref2$frame_start,\n _ref2$max = _ref2.max,\n max = _ref2$max === undefined ? 10000 : _ref2$max;\n return function (dispatch) {\n return new Promise(function (resolve, reject) {\n loadPCM(file).then(function (_ref3) {\n var buffer = _ref3.buffer,\n pcm = _ref3.pcm,\n sr = _ref3.sr;\n\n dispatch({ type: _types2.default.wav2pix.load });\n\n var zip = new _jszip2.default();\n var zip_folder = zip.folder(\"wav2pix_\" + name);\n\n var steps = (pcm.length - FRAME_LENGTH) / frame_step;\n console.log(steps);\n\n var count = 0;\n var _len = pcm.length - FRAME_LENGTH;\n var offset = Math.round(_len * frame_start);\n for (; offset < _len && count < max; offset += frame_step, count += 1) {\n if (count % 10 === 0) {\n dispatch({ type: _types2.default.wav2pix.progress, progress: { i: count / max * 6, n: 6 } });\n }\n render(pcm.slice(offset, offset + FRAME_LENGTH), sr, count, zip_folder);\n }\n\n // dispatch event\n dispatch({ type: _types2.default.wav2pix.finish, message: 'Rendered ' + count + ' images' });\n zip.generateAsync({ type: \"blob\" }).then(function (content) {\n dispatch({ type: _types2.default.wav2pix.zip, size: content.size });\n // FileSaver.saveAs(content, \"wav2pix_\" + name + \".zip\")\n resolve({\n zip: content,\n filename: \"wav2pix_\" + name + \".zip\",\n count: count\n });\n });\n });\n });\n };\n};\n\nfunction render(pcm, sr, count, zip) {\n var fft = _spectrum2.default.toSpectrum(pcm, sr);\n // console.log('render', fft)\n // const pcm_rev = pcm.slice().reverse()\n // const spec_rev = spectrum.toSpectrum(pcm_rev, spec.sr)\n\n var _draw$raw_spectrum = draw.raw_spectrum(fft, 0, 256, 0, 256, _r, _i),\n canvas = _draw$raw_spectrum.canvas,\n imageData = _draw$raw_spectrum.imageData;\n\n if (zip) {\n var name = (0, _sprintfJs.sprintf)('frame_%05d.png', count);\n var dataURL = canvas.toDataURL(\"image/png\");\n zip.file(name, dataURL.split(',')[1], { base64: true });\n }\n return { fft: fft, canvas: canvas, imageData: imageData };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.enqueue = exports.resume = exports.pause = exports.play = undefined;\n\nvar _types = require('../../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar play = exports.play = function play(file) {\n return { type: _types2.default.audioPlayer.play, file: file };\n};\nvar pause = exports.pause = function pause() {\n return { type: _types2.default.audioPlayer.pause };\n};\nvar resume = exports.resume = function resume() {\n return { type: _types2.default.audioPlayer.resume };\n};\nvar enqueue = exports.enqueue = function enqueue(file) {\n return { type: _types2.default.audioPlayer.enqueue, file: file };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _reactRedux = require('react-redux');\n\nvar _redux = require('redux');\n\nvar _audioPlayer = require('./audioPlayer.actions');\n\nvar audioPlayerActions = _interopRequireWildcard(_audioPlayer);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar AudioPlayer = function (_Component) {\n _inherits(AudioPlayer, _Component);\n\n function AudioPlayer(props) {\n _classCallCheck(this, AudioPlayer);\n\n var _this = _possibleConstructorReturn(this, (AudioPlayer.__proto__ || Object.getPrototypeOf(AudioPlayer)).call(this, props));\n\n _this.handleClick = _this.handleClick.bind(_this);\n return _this;\n }\n\n _createClass(AudioPlayer, [{\n key: 'handleClick',\n value: function handleClick(e) {\n var _props = this.props,\n audioPlayer = _props.audioPlayer,\n actions = _props.actions;\n\n if (audioPlayer.playing) {\n actions.pause();\n } else {\n actions.resume();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var audioPlayer = this.props.audioPlayer;\n\n return (0, _preact.h)(\n 'div',\n { className: 'audioPlayer' },\n (0, _preact.h)(\n 'span',\n null,\n this.props.title\n ),\n (0, _preact.h)(\n 'button',\n {\n onClick: this.handleClick\n },\n audioPlayer.playing ? '▶' : '~'\n )\n );\n }\n }]);\n\n return AudioPlayer;\n}(_preact.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n audioPlayer: state.audioPlayer\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: (0, _redux.bindActionCreators)(audioPlayerActions, dispatch)\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(AudioPlayer);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; };\n\nvar _types = require('../../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar audioPlayerInitialState = {\n loading: false,\n error: null,\n status: '',\n current: null,\n index: -1,\n playlist: []\n};\n\nvar audio = document.createElement('audio');\n\nvar audioPlayerReducer = function audioPlayerReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : audioPlayerInitialState;\n var action = arguments[1];\n\n switch (action.type) {\n case _types2.default.audioPlayer.play:\n if (!action.file.url) {\n return state;\n }\n audio.src = action.file.url;\n audio.play();\n return _extends({}, state, {\n playing: true,\n current: action.file\n });\n case _types2.default.audioPlayer.pause:\n audio.pause();\n return _extends({}, state, {\n playing: false\n });\n case _types2.default.audioPlayer.resume:\n audio.play();\n return _extends({}, state, {\n playing: true\n });\n default:\n return state;\n }\n};\n\nexports.default = audioPlayerReducer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _reactRedux = require('react-redux');\n\nvar _redux = require('redux');\n\nvar _live = require('../live/live.actions');\n\nvar liveActions = _interopRequireWildcard(_live);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar Button = function (_Component) {\n _inherits(Button, _Component);\n\n function Button(props) {\n _classCallCheck(this, Button);\n\n var _this = _possibleConstructorReturn(this, (Button.__proto__ || Object.getPrototypeOf(Button)).call(this, props));\n\n _this.handleClick = _this.handleClick.bind(_this);\n return _this;\n }\n\n _createClass(Button, [{\n key: 'handleClick',\n value: function handleClick(e) {\n this.props.onClick && this.props.onClick();\n }\n }, {\n key: 'render',\n value: function render() {\n return (0, _preact.h)(\n 'div',\n { className: 'button param' },\n (0, _preact.h)(\n 'label',\n null,\n (0, _preact.h)(\n 'span',\n null,\n this.props.title\n ),\n (0, _preact.h)(\n 'button',\n {\n onClick: this.handleClick\n },\n this.props.children\n )\n )\n );\n }\n }]);\n\n return Button;\n}(_preact.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {};\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {};\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Button);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _util = require('../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// import { Loading, CurrentTask, FileList, FileRow } from '../../../common'\n\nfunction CurrentTask(_ref) {\n var cpu = _ref.cpu,\n gpu = _ref.gpu,\n processor = _ref.processor;\n\n var processor_name = void 0;\n if (processor) {\n processor_name = processor === 'cpu' ? 'cpu' : 'gpu';\n } else if (gpu.status !== 'IDLE') {\n processor_name = 'gpu';\n } else if (cpu.status !== 'IDLE') {\n processor_name = 'cpu';\n }\n var p = processor_name === 'cpu' ? cpu : gpu;\n if (!p) return (0, _preact.h)('div', null);\n if (p.status === 'IDLE') {\n return (0, _preact.h)(\n 'div',\n null,\n processor_name,\n ' idle'\n );\n }\n var last_message = p.last_message,\n pid = p.pid,\n task = p.task;\n var activity = task.activity,\n epoch = task.epoch,\n epochs = task.epochs,\n dataset = task.dataset,\n module = task.module;\n\n return (0, _preact.h)(\n 'div',\n null,\n '#',\n pid,\n ': ',\n (0, _preact.h)(\n 'b',\n null,\n module,\n ' ',\n activity\n ),\n ' ',\n (0, _preact.h)(\n 'i',\n null,\n dataset\n ),\n ' ',\n epochs,\n ' epoch',\n _util2.default.courtesy_s(epochs),\n ' (currently #',\n epoch,\n ')',\n (0, _preact.h)('br', null),\n (0, _preact.h)('br', null),\n (0, _preact.h)(\n 'div',\n { 'class': 'quiet' },\n last_message\n )\n );\n}\n\nvar mapStateToProps = function mapStateToProps(state) {\n return state.system.runner;\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n // actions: bindActionCreators(samplernnActions, dispatch),\n // remote: bindActionCreators(samplernnTasks, dispatch),\n // audioPlayer: bindActionCreators(audioPlayerActions, dispatch),\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(CurrentTask);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FileRow = exports.FileList = undefined;\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _reactRouterDom = require('react-router-dom');\n\nvar _moment = require('moment/min/moment.min');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _util = require('../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar fieldSet = _util2.default.fieldSet(new Set(['name', 'date', 'size']));\n\nvar FileList = exports.FileList = function FileList(props) {\n var files = props.files,\n fields = props.fields,\n sort = props.sort,\n title = props.title,\n linkFiles = props.linkFiles,\n onClick = props.onClick,\n onDelete = props.onDelete,\n _props$orderBy = props.orderBy,\n orderBy = _props$orderBy === undefined ? 'name asc' : _props$orderBy,\n _props$className = props.className,\n className = _props$className === undefined ? '' : _props$className,\n _props$fileListClassN = props.fileListClassName,\n fileListClassName = _props$fileListClassN === undefined ? 'filelist' : _props$fileListClassN,\n _props$rowClassName = props.rowClassName,\n rowClassName = _props$rowClassName === undefined ? 'row file' : _props$rowClassName;\n\n var _util$sort$orderByFn = _util2.default.sort.orderByFn(orderBy),\n mapFn = _util$sort$orderByFn.mapFn,\n sortFn = _util$sort$orderByFn.sortFn;\n\n var fileList = (files || []).filter(function (f) {\n return !!f;\n }).map(mapFn).sort(sortFn).map(function (pair) {\n return (0, _preact.h)(FileRow, {\n file: pair[1],\n fields: fieldSet(fields),\n className: rowClassName,\n linkFiles: linkFiles,\n onDelete: onDelete,\n onClick: onClick\n });\n });\n if (!fileList || !fileList.length) {\n return (0, _preact.h)(\n 'div',\n { className: 'rows ' + className },\n (0, _preact.h)(\n 'div',\n { 'class': 'row heading' },\n (0, _preact.h)(\n 'h4',\n { 'class': 'noFiles' },\n 'No files'\n )\n )\n );\n }\n // console.log(files)\n return (0, _preact.h)(\n 'div',\n { className: 'rows ' + className },\n title && (0, _preact.h)(\n 'div',\n { 'class': 'row heading' },\n (0, _preact.h)(\n 'h3',\n null,\n title\n ),\n '}'\n ),\n (0, _preact.h)(\n 'div',\n { className: 'rows ' + fileListClassName },\n fileList\n )\n );\n};\n\nvar FileRow = exports.FileRow = function FileRow(props) {\n var file = props.file,\n linkFiles = props.linkFiles,\n onDelete = props.onDelete,\n _onClick = props.onClick,\n _props$className2 = props.className,\n className = _props$className2 === undefined ? 'row file' : _props$className2,\n _props$username = props.username,\n username = _props$username === undefined ? '' : _props$username;\n\n var fields = fieldSet(props.fields);\n\n var size = _util2.default.hush_size(file.size);\n var date = file.date || file.created_at;\n var epoch = file.epoch || file.epochs || 0;\n\n var name = void 0;\n var key = void 0;\n if (file.name) {\n name = file.name;\n key = name;\n } else if (file.url) {\n if (file.opt && file.opt.type) {\n name = file.opt.type + ': ' + file.opt.title;\n key = file.opt.token;\n } else {\n name = file.url.replace(/^https?:\\/\\//, '');\n key = name;\n }\n }\n\n return (0, _preact.h)(\n 'div',\n { 'class': className, key: key },\n fields.has('name') && (0, _preact.h)(\n 'div',\n { className: 'filename', title: file.name || file.url },\n file.persisted === false ? (0, _preact.h)(\n 'span',\n { className: 'unpersisted' },\n name\n ) : linkFiles && file.url ? (0, _preact.h)(\n 'a',\n { target: '_blank', onClick: function onClick(e) {\n if (!(e.metaKey || e.ctrlKey || e.altKey)) {\n e.preventDefault();_onClick && _onClick(file, e);\n }\n }, href: file.url },\n name\n ) : (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick(e) {\n return _onClick && _onClick(file, e);\n } },\n name\n )\n ),\n fields.has('age') && (0, _preact.h)(\n 'div',\n { className: \"age \" + _util2.default.carbon_date(date) },\n _util2.default.get_age(date)\n ),\n fields.has('username') && (0, _preact.h)(\n 'div',\n { className: \"username\" },\n username\n ),\n fields.has('epoch') && (0, _preact.h)(\n 'div',\n { className: \"epoch \" + _util2.default.hush_null(epoch)[0] },\n epoch > 0 ? 'ep. ' + epoch : ''\n ),\n fields.has('date') && (0, _preact.h)(\n 'div',\n { className: \"date \" + _util2.default.carbon_date(date) },\n (0, _moment2.default)(date).format(\"YYYY-MM-DD\")\n ),\n fields.has('datetime') && (0, _preact.h)(\n 'div',\n { className: \"datetime \" + _util2.default.carbon_date(date) },\n (0, _moment2.default)(date).format(\"YYYY-MM-DD h:mm a\")\n ),\n fields.has('size') && (0, _preact.h)(\n 'div',\n { className: \"size \" + size[0] },\n size[1]\n ),\n (fields.has('activity') || fields.has('module')) && (0, _preact.h)(\n 'div',\n { className: 'activity' },\n fields.has('activity') && file.activity,\n fields.has('module') && file.module\n ),\n fields.has('delete') && onDelete && file.id && (0, _preact.h)(\n 'div',\n { className: 'destroy', onClick: function onClick(e) {\n return onDelete(file);\n } },\n 'x'\n ),\n props.options && props.options(file)\n );\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar FileUpload = function (_Component) {\n _inherits(FileUpload, _Component);\n\n function FileUpload(props) {\n _classCallCheck(this, FileUpload);\n\n var _this = _possibleConstructorReturn(this, (FileUpload.__proto__ || Object.getPrototypeOf(FileUpload)).call(this, props));\n\n _this.handleChange = _this.handleChange.bind(_this);\n return _this;\n }\n\n _createClass(FileUpload, [{\n key: 'handleChange',\n value: function handleChange(e) {\n this.props.onChange && this.props.onChange();\n e.stopPropagation();\n e.preventDefault();\n this.setState({ thumbnails: [], images: [] });\n var files = e.dataTransfer ? e.dataTransfer.files : e.target.files;\n var i = void 0,\n f = void 0;\n for (i = 0, f; i < files.length; i++) {\n f = files[i];\n if (!f) continue;\n break;\n // if (!f.type.match(this.props.mime)) continue\n }\n this.props.onUpload && this.props.onUpload(f);\n }\n }, {\n key: 'render',\n value: function render() {\n return (0, _preact.h)(\n 'div',\n { className: 'fileUpload param' },\n (0, _preact.h)(\n 'label',\n null,\n (0, _preact.h)(\n 'span',\n null,\n this.props.title\n ),\n (0, _preact.h)('input', {\n type: 'file',\n accept: this.props.accept || '*/*',\n multiple: this.props.multiple,\n onChange: this.handleChange\n }),\n (0, _preact.h)(\n 'button',\n null,\n this.props.label || 'Choose file...'\n )\n )\n );\n }\n }]);\n\n return FileUpload;\n}(_preact.Component);\n\nexports.default = FileUpload;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nexports.default = FolderList;\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _reactRouterDom = require('react-router-dom');\n\nvar _util = require('../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _group = require('./group.component');\n\nvar _group2 = _interopRequireDefault(_group);\n\nvar _param = require('./param.component');\n\nvar _param2 = _interopRequireDefault(_param);\n\nvar _loading = require('./loading.component');\n\nvar _loading2 = _interopRequireDefault(_loading);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction FolderList(_ref) {\n var db = _ref.db,\n path = _ref.path,\n emptyText = _ref.emptyText;\n\n if (!db) return null;\n if (db.loading || !db.data) {\n return (0, _preact.h)(\n 'div',\n { 'class': 'col folderList' },\n (0, _preact.h)(_loading2.default, { progress: db.progress })\n );\n } else if (!db.data.folders.length && emptyText) {\n return (0, _preact.h)(\n 'div',\n { 'class': 'col folderList' },\n emptyText\n );\n }\n console.log(db.data.folders);\n var folders = db.data.folders.map(function (raw_folder) {\n var folder = db.data.folderLookup[raw_folder.id];\n var fileCount = folder.files ? folder.files.length : 0;\n\n var _util$hush_null = _util2.default.hush_null(fileCount),\n _util$hush_null2 = _slicedToArray(_util$hush_null, 2),\n className = _util$hush_null2[0],\n size = _util$hush_null2[1];\n\n return (0, _preact.h)(\n _param2.default,\n { title: (0, _preact.h)(\n _reactRouterDom.Link,\n { to: path + folder.id + '/' },\n folder.name\n ) },\n (0, _preact.h)(\n 'span',\n { className: className },\n fileCount,\n ' file',\n _util2.default.courtesy_s(fileCount)\n )\n );\n });\n\n return (0, _preact.h)(\n 'div',\n { 'class': 'col folderList' },\n (0, _preact.h)(\n _group2.default,\n { title: 'Projects' },\n folders\n )\n );\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\t\tvalue: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar Gallery = function (_Component) {\n\t\t_inherits(Gallery, _Component);\n\n\t\tfunction Gallery(props) {\n\t\t\t\t_classCallCheck(this, Gallery);\n\n\t\t\t\treturn _possibleConstructorReturn(this, (Gallery.__proto__ || Object.getPrototypeOf(Gallery)).call(this));\n\t\t}\n\n\t\t_createClass(Gallery, [{\n\t\t\t\tkey: 'render',\n\t\t\t\tvalue: function render() {\n\t\t\t\t\t\tvar _props = this.props,\n\t\t\t\t\t\t title = _props.title,\n\t\t\t\t\t\t images = _props.images;\n\n\t\t\t\t\t\tvar imageList = images.map(function (image) {\n\t\t\t\t\t\t\t\treturn (0, _preact.h)(\n\t\t\t\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\t\t(0, _preact.h)('img', { src: image.url })\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn (0, _preact.h)(\n\t\t\t\t\t\t\t\t'div',\n\t\t\t\t\t\t\t\t{ 'class': 'gallery' },\n\t\t\t\t\t\t\t\timageList\n\t\t\t\t\t\t);\n\t\t\t\t}\n\t\t}]);\n\n\t\treturn Gallery;\n}(_preact.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n\t\treturn {};\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n\t\treturn {\n\t\t\t\t// actions: bindActionCreators(liveActions, dispatch)\n\t\t};\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Gallery);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = Group;\n\nvar _preact = require('preact');\n\nfunction Group(props) {\n return (0, _preact.h)(\n 'div',\n { className: 'group' },\n this.props.title && (0, _preact.h)(\n 'h3',\n null,\n this.props.title\n ),\n this.props.children\n );\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRouterDom = require('react-router-dom');\n\nvar _reactRedux = require('react-redux');\n\nvar _system = require('../system/system.actions');\n\nvar systemActions = _interopRequireWildcard(_system);\n\nvar _modules = require('../modules');\n\nvar _modules2 = _interopRequireDefault(_modules);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction NavLink(props) {\n if (!props.to) {\n return (0, _preact.h)(\n 'span',\n null,\n props.children\n );\n }\n var children = props.to === props.location.pathname ? (0, _preact.h)(\n 'b',\n null,\n props.children\n ) : props.children;\n return (0, _preact.h)(\n 'span',\n null,\n (0, _preact.h)(\n _reactRouterDom.Link,\n { to: props.to },\n children\n )\n );\n}\n\nfunction Header(props) {\n var site = props.site,\n app = props.app,\n fps = props.fps,\n playing = props.playing,\n actions = props.actions,\n location = props.location,\n history = props.history;\n\n var tool_list = Object.keys(_modules2.default).map(function (name, i) {\n var label = name.replace(/_/, \" \");\n return (0, _preact.h)(\n 'option',\n { value: name, key: i },\n label\n );\n });\n var tool = _modules2.default[app.tool];\n var links = tool.links().map(function (link, i) {\n return (0, _preact.h)(\n NavLink,\n { key: i, location: location, to: link.url },\n link.name\n );\n });\n return (0, _preact.h)(\n 'header',\n null,\n (0, _preact.h)(\n 'span',\n null,\n (0, _preact.h)(\n 'b',\n null,\n site.name,\n ' cortex'\n )\n ),\n (0, _preact.h)(\n 'span',\n null,\n (0, _preact.h)(\n 'select',\n { onChange: function onChange(e) {\n var path = window.location.pathname.split(\"/\");\n path.shift();\n console.log(path);\n if (path[0] in _modules2.default && path[1]) {\n history.push('/' + e.target.value + '/' + path[1] + '/');\n }\n actions.changeTool(e.target.value, true);\n }, value: app.tool },\n tool_list\n )\n ),\n (0, _preact.h)(\n NavLink,\n { location: location, to: '/system' },\n 'system'\n ),\n (0, _preact.h)(\n NavLink,\n { location: location, to: '/dashboard' },\n 'dashboard'\n ),\n (0, _preact.h)(\n 'span',\n null,\n links\n ),\n playing && (0, _preact.h)(\n 'span',\n null,\n fps,\n ' fps'\n )\n );\n}\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n site: state.system.site,\n app: state.system.app,\n fps: state.live.fps,\n playing: state.live.playing\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: (0, _redux.bindActionCreators)(systemActions, dispatch)\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Header);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CurrentTask = exports.Button = exports.Select = exports.Slider = exports.TextInput = exports.Param = exports.ParamGroup = exports.Group = exports.Player = exports.Gallery = exports.FileUpload = exports.FileRow = exports.FileList = exports.FolderList = exports.Header = exports.Progress = exports.Loading = exports.Views = undefined;\n\nvar _button = require('./button.component');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _currentTask = require('./currentTask.component');\n\nvar _currentTask2 = _interopRequireDefault(_currentTask);\n\nvar _fileList = require('./fileList.component');\n\nvar _fileUpload = require('./fileUpload.component');\n\nvar _fileUpload2 = _interopRequireDefault(_fileUpload);\n\nvar _folderList = require('./folderList.component');\n\nvar _folderList2 = _interopRequireDefault(_folderList);\n\nvar _gallery = require('./gallery.component');\n\nvar _gallery2 = _interopRequireDefault(_gallery);\n\nvar _group = require('./group.component');\n\nvar _group2 = _interopRequireDefault(_group);\n\nvar _header = require('./header.component');\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _loading = require('./loading.component');\n\nvar _loading2 = _interopRequireDefault(_loading);\n\nvar _param = require('./param.component');\n\nvar _param2 = _interopRequireDefault(_param);\n\nvar _paramGroup = require('./paramGroup.component');\n\nvar _paramGroup2 = _interopRequireDefault(_paramGroup);\n\nvar _player = require('./player.component');\n\nvar _player2 = _interopRequireDefault(_player);\n\nvar _progress = require('./progress.component');\n\nvar _progress2 = _interopRequireDefault(_progress);\n\nvar _select = require('./select.component');\n\nvar _select2 = _interopRequireDefault(_select);\n\nvar _slider = require('./slider.component');\n\nvar _slider2 = _interopRequireDefault(_slider);\n\nvar _textInput = require('./textInput.component');\n\nvar _textInput2 = _interopRequireDefault(_textInput);\n\nvar _views = require('./views');\n\nvar Views = _interopRequireWildcard(_views);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Views = Views;\nexports.Loading = _loading2.default;\nexports.Progress = _progress2.default;\nexports.Header = _header2.default;\nexports.FolderList = _folderList2.default;\nexports.FileList = _fileList.FileList;\nexports.FileRow = _fileList.FileRow;\nexports.FileUpload = _fileUpload2.default;\nexports.Gallery = _gallery2.default;\nexports.Player = _player2.default;\nexports.Group = _group2.default;\nexports.ParamGroup = _paramGroup2.default;\nexports.Param = _param2.default;\nexports.TextInput = _textInput2.default;\nexports.Slider = _slider2.default;\nexports.Select = _select2.default;\nexports.Button = _button2.default;\nexports.CurrentTask = _currentTask2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = Loading;\n\nvar _preact = require('preact');\n\nvar _progress = require('./progress.component');\n\nvar _progress2 = _interopRequireDefault(_progress);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction Loading(_ref) {\n var progress = _ref.progress;\n\n return (0, _preact.h)(\n 'div',\n { className: 'loading' },\n 'Loading',\n (0, _preact.h)('br', null),\n progress && (0, _preact.h)(_progress2.default, { progress: progress })\n );\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _reactRedux = require('react-redux');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar Param = function (_Component) {\n _inherits(Param, _Component);\n\n function Param(props) {\n _classCallCheck(this, Param);\n\n return _possibleConstructorReturn(this, (Param.__proto__ || Object.getPrototypeOf(Param)).call(this, props));\n }\n\n _createClass(Param, [{\n key: 'render',\n value: function render() {\n return (0, _preact.h)(\n 'div',\n { className: 'button param' },\n (0, _preact.h)(\n 'span',\n null,\n this.props.title\n ),\n (0, _preact.h)(\n 'span',\n null,\n this.props.children\n )\n );\n }\n }]);\n\n return Param;\n}(_preact.Component);\n\nexports.default = Param;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _reactRedux = require('react-redux');\n\nvar _redux = require('redux');\n\nvar _live = require('../live/live.actions');\n\nvar liveActions = _interopRequireWildcard(_live);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar ParamGroup = function (_Component) {\n _inherits(ParamGroup, _Component);\n\n function ParamGroup(props) {\n _classCallCheck(this, ParamGroup);\n\n var _this = _possibleConstructorReturn(this, (ParamGroup.__proto__ || Object.getPrototypeOf(ParamGroup)).call(this, props));\n\n _this.handleClick = _this.handleClick.bind(_this);\n return _this;\n }\n\n _createClass(ParamGroup, [{\n key: 'handleClick',\n value: function handleClick(e) {\n clearTimeout(this.timeout);\n var new_value = e.target.checked;\n this.props.actions.set_param(this.props.name, new_value);\n this.props.onToggle && this.props.onToggle(new_value);\n }\n }, {\n key: 'render',\n value: function render() {\n var checked = this.props.opt[this.props.name];\n var toggle = !this.props.noToggle;\n var className = !toggle || checked ? 'paramGroup active' : 'paramGroup inactive';\n return (0, _preact.h)(\n 'div',\n { className: className },\n (0, _preact.h)(\n 'label',\n null,\n (0, _preact.h)(\n 'h3',\n null,\n this.props.title\n ),\n toggle ? (0, _preact.h)('input', {\n type: 'checkbox',\n onClick: this.handleClick,\n checked: checked\n }) : null\n ),\n this.props.children\n );\n }\n }]);\n\n return ParamGroup;\n}(_preact.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n opt: state.live.opt\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: (0, _redux.bindActionCreators)(liveActions, dispatch)\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ParamGroup);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _preact = require('preact');\n\nvar _reactRedux = require('react-redux');\n\nfunction Player(props) {\n return (0, _preact.h)(\n 'div',\n { className: 'player' },\n (0, _preact.h)('canvas', { width: props.width, height: props.height })\n );\n}\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {};\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {};\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Player);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = Progress;\n\nvar _preact = require('preact');\n\nfunction Progress(_ref) {\n var progress = _ref.progress;\n\n if (!progress) return;\n var i = progress.i,\n n = progress.n;\n\n var a = [];\n for (var j = 0; j < n; j++) {\n a.push((0, _preact.h)('div', { key: j, className: j < i ? 'x' : 'o' }));\n }\n return (0, _preact.h)(\n 'div',\n { className: 'progress' },\n a\n );\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _reactRedux = require('react-redux');\n\nvar _redux = require('redux');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar Select = function (_Component) {\n _inherits(Select, _Component);\n\n function Select(props) {\n _classCallCheck(this, Select);\n\n var _this = _possibleConstructorReturn(this, (Select.__proto__ || Object.getPrototypeOf(Select)).call(this, props));\n\n _this.handleChange = _this.handleChange.bind(_this);\n return _this;\n }\n\n _createClass(Select, [{\n key: 'handleChange',\n value: function handleChange(e) {\n clearTimeout(this.timeout);\n var new_value = e.target.value;\n this.props.onChange && this.props.onChange(this.props.name, new_value);\n }\n }, {\n key: 'render',\n value: function render() {\n var currentValue = this.props.opt[this.props.name];\n var lastValue = void 0;\n var options = (this.props.options || []).map(function (key, i) {\n var name = void 0,\n value = void 0;\n if (typeof key === 'string') {\n name = key.length < 4 ? key.toUpperCase() : key;\n value = key;\n } else if ((typeof key === 'undefined' ? 'undefined' : _typeof(key)) === 'object') {\n if (key.length) {\n var _key = _slicedToArray(key, 2);\n\n name = _key[0];\n value = _key[1];\n } else if (key.count) {\n var frames = Math.round(key.count / 30) + ' s.';\n name = key.name.replace(/_/g, ' ') + ' (' + frames + ')';\n value = key.name;\n } else {\n name = key.name;\n value = key.value || key.name;\n }\n }\n lastValue = value;\n return (0, _preact.h)(\n 'option',\n { value: value, key: i },\n name\n );\n });\n return (0, _preact.h)(\n 'div',\n { className: 'select param' },\n (0, _preact.h)(\n 'label',\n null,\n (0, _preact.h)(\n 'span',\n null,\n this.props.title\n ),\n (0, _preact.h)(\n 'select',\n {\n onChange: this.handleChange,\n value: currentValue || lastValue\n },\n options\n )\n ),\n this.props.children\n );\n }\n }]);\n\n return Select;\n}(_preact.Component);\n\nfunction capitalize(s) {\n return (s || \"\").replace(/(?:^|\\s)\\S/g, function (a) {\n return a.toUpperCase();\n });\n}\n\nvar mapStateToProps = function mapStateToProps(state, props) {\n return {\n opt: props.opt || state.live.opt\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {};\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Select);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _reactRedux = require('react-redux');\n\nvar _redux = require('redux');\n\nvar _live = require('../live/live.actions');\n\nvar liveActions = _interopRequireWildcard(_live);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar SLIDER_THROTTLE_TIME = 100;\n\nvar Slider = function (_Component) {\n _inherits(Slider, _Component);\n\n function Slider(props) {\n _classCallCheck(this, Slider);\n\n var _this = _possibleConstructorReturn(this, (Slider.__proto__ || Object.getPrototypeOf(Slider)).call(this, props));\n\n _this.timeout = 0;\n _this.state = {\n value: props.live ? props.opt[props.name] : props.value\n };\n _this.handleInput = _this.handleInput.bind(_this);\n _this.handleRange = _this.handleRange.bind(_this);\n return _this;\n }\n\n _createClass(Slider, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var next_value = nextProps.value || nextProps.opt[nextProps.name];\n if (next_value !== this.state.value) {\n this.setState({ value: next_value });\n }\n }\n }, {\n key: 'handleInput',\n value: function handleInput(e) {\n var _props = this.props,\n name = _props.name,\n opt = _props.opt;\n\n var old_value = opt[name];\n var new_value = e.target.value;\n console.log(this.props);\n console.log(new_value, this.props.defaultValue);\n if (new_value === '') {\n new_value = this.props.defaultValue || (this.props.max - this.props.min) / 2;\n } else if (this.props.type === 'int') {\n new_value = parseInt(new_value);\n } else if (this.props.type === 'odd') {\n new_value = parseInt(Math.floor(new_value / 2) * 2 + 1);\n }\n if (old_value !== new_value) {\n this.setState({ value: new_value });\n this.props.live && this.props.actions.set_param(this.props.name, new_value);\n this.props.onChange && this.props.onChange(new_value);\n }\n clearTimeout(this.timeout);\n }\n }, {\n key: 'handleRange',\n value: function handleRange(e) {\n var _this2 = this;\n\n clearTimeout(this.timeout);\n var new_value = e.target.value;\n if (this.props.type === 'int') {\n new_value = parseInt(new_value);\n }\n if (this.props.type === 'odd') {\n new_value = parseInt(Math.floor(new_value / 2) * 2 + 1);\n }\n this.setState({ value: new_value });\n this.timeout = setTimeout(function () {\n _this2.props.live && _this2.props.actions.set_param(_this2.props.name, new_value);\n _this2.props.onChange && _this2.props.onChange(new_value);\n }, SLIDER_THROTTLE_TIME);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props2 = this.props,\n name = _props2.name,\n title = _props2.title;\n\n var value = this.state.value;\n if (typeof value === 'undefined') {\n value = this.props.min;\n }\n var text_value = value;\n var step = void 0;\n if (this.props.type === 'int') {\n step = 1;\n } else {\n step = (this.props.max - this.props.min) / 100;\n text_value = parseFloat(value).toFixed(2);\n }\n return (0, _preact.h)(\n 'div',\n { 'class': 'slider param' },\n (0, _preact.h)(\n 'label',\n null,\n (0, _preact.h)(\n 'span',\n null,\n title || name.replace(/_/g, ' ')\n ),\n (0, _preact.h)('input', { type: 'text', value: text_value, onBlur: this.handleInput })\n ),\n (0, _preact.h)('input', {\n type: 'range',\n min: this.props.min,\n max: this.props.max,\n step: step,\n value: value,\n onInput: this.handleRange\n })\n );\n }\n }]);\n\n return Slider;\n}(_preact.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n opt: state.live.opt\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: (0, _redux.bindActionCreators)(liveActions, dispatch)\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Slider);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar TextInput = function (_Component) {\n _inherits(TextInput, _Component);\n\n function TextInput(props) {\n _classCallCheck(this, TextInput);\n\n var _this = _possibleConstructorReturn(this, (TextInput.__proto__ || Object.getPrototypeOf(TextInput)).call(this, props));\n\n _this.handleInput = _this.handleInput.bind(_this);\n _this.handleKeydown = _this.handleKeydown.bind(_this);\n return _this;\n }\n\n _createClass(TextInput, [{\n key: 'handleInput',\n value: function handleInput(e) {\n this.props.onInput && this.props.onInput(e.target.value);\n }\n }, {\n key: 'handleKeydown',\n value: function handleKeydown(e) {\n if (e.keyCode === 13) {\n this.props.onSave && this.props.onSave(e.target.value);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return (0, _preact.h)(\n 'div',\n { className: 'textInput param' },\n (0, _preact.h)(\n 'label',\n null,\n (0, _preact.h)(\n 'span',\n null,\n this.props.title\n ),\n (0, _preact.h)('input', {\n type: 'text',\n value: this.props.value,\n onInput: this.handleInput,\n onKeydown: this.handleKeydown,\n placeholder: this.props.placeholder,\n autofocus: this.props.autofocus\n })\n )\n );\n }\n }]);\n\n return TextInput;\n}(_preact.Component);\n\nexports.default = TextInput;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.New = undefined;\n\nvar _newView = require('./new.view.js');\n\nvar _newView2 = _interopRequireDefault(_newView);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar New = exports.New = _newView2.default;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _reactRouterDom = require('react-router-dom');\n\nvar _util = require('../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _group = require('../group.component');\n\nvar _group2 = _interopRequireDefault(_group);\n\nvar _param = require('../param.component');\n\nvar _param2 = _interopRequireDefault(_param);\n\nvar _loading = require('../loading.component');\n\nvar _loading2 = _interopRequireDefault(_loading);\n\nvar _folderList = require('../folderList.component');\n\nvar _folderList2 = _interopRequireDefault(_folderList);\n\nvar _dataset = require('../../dataset/dataset.new');\n\nvar _dataset2 = _interopRequireDefault(_dataset);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar NewView = function (_Component) {\n _inherits(NewView, _Component);\n\n function NewView(props) {\n _classCallCheck(this, NewView);\n\n var _this = _possibleConstructorReturn(this, (NewView.__proto__ || Object.getPrototypeOf(NewView)).call(this, props));\n\n console.log(props);\n if (!props.db.data) {\n props.actions.load_directories();\n }\n return _this;\n }\n\n _createClass(NewView, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n module = _props.module,\n history = _props.history,\n db = _props.db,\n path = _props.path;\n\n return (0, _preact.h)(\n 'div',\n { 'class': 'app new-view ' + module.name },\n (0, _preact.h)(\n 'div',\n { 'class': 'heading' },\n (0, _preact.h)(\n 'h1',\n null,\n module.displayName || module.name\n )\n ),\n (0, _preact.h)(\n 'div',\n { 'class': 'col narrow' },\n (0, _preact.h)(_dataset2.default, { module: module, history: history }),\n (0, _preact.h)(_folderList2.default, { db: db, path: path, emptyText: (0, _preact.h)(\n 'i',\n null,\n 'No projects yet. Please create one~'\n ) })\n )\n );\n }\n }]);\n\n return NewView;\n}(_preact.Component);\n\nexports.default = NewView;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.load = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _types = require('../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _actions = require('../actions');\n\nvar _actions2 = _interopRequireDefault(_actions);\n\nvar _util = require('../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar load = exports.load = function load() {\n return function (dispatch) {\n _util2.default.allProgress([_actions2.default.task.index({ limit: 40, orderBy: 'created_at desc' }), _actions2.default.folder.index(), _actions2.default.file.index({ module: 'samplernn', generated: 1, limit: 10, orderBy: 'created_at desc' })], function (percent, i, n) {\n console.log('dashboard load progress', i, n);\n dispatch({ type: _types2.default.app.load_progress, progress: { i: i, n: n } });\n }).then(function (res) {\n var _res = _slicedToArray(res, 3),\n tasks = _res[0],\n folders = _res[1],\n sampleRNNrenders = _res[2];\n\n var _util$sort$orderByFn = _util2.default.sort.orderByFn('date desc'),\n mapFn = _util$sort$orderByFn.mapFn,\n sortFn = _util$sort$orderByFn.sortFn;\n\n var foldersByModule = folders.map(mapFn).sort(sortFn).reduce(function (a, b) {\n var module = b[1].module;\n a[module] = a[module] || [];\n a[module].push(b[1]);\n return a;\n }, {});\n dispatch({\n type: _types2.default.dashboard.load,\n data: {\n tasks: tasks,\n folders: folders,\n sampleRNNrenders: sampleRNNrenders,\n foldersByModule: foldersByModule\n }\n });\n });\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRouterDom = require('react-router-dom');\n\nvar _reactRedux = require('react-redux');\n\nvar _player = require('../common/player.component');\n\nvar _player2 = _interopRequireDefault(_player);\n\nvar _group = require('../common/group.component');\n\nvar _group2 = _interopRequireDefault(_group);\n\nvar _slider = require('../common/slider.component');\n\nvar _slider2 = _interopRequireDefault(_slider);\n\nvar _select = require('../common/select.component');\n\nvar _select2 = _interopRequireDefault(_select);\n\nvar _button = require('../common/button.component');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _dashboardheader = require('./dashboardheader.component');\n\nvar _dashboardheader2 = _interopRequireDefault(_dashboardheader);\n\nvar _tasklist = require('./tasklist.component');\n\nvar _tasklist2 = _interopRequireDefault(_tasklist);\n\nvar _common = require('../common');\n\nvar _gallery = require('../common/gallery.component');\n\nvar _gallery2 = _interopRequireDefault(_gallery);\n\nvar _dashboard = require('./dashboard.actions');\n\nvar dashboardActions = _interopRequireWildcard(_dashboard);\n\nvar _audioPlayer = require('../common/audioPlayer/audioPlayer.actions');\n\nvar audioPlayerActions = _interopRequireWildcard(_audioPlayer);\n\nvar _modules = require('../modules');\n\nvar _modules2 = _interopRequireDefault(_modules);\n\nvar _actions = require('../actions');\n\nvar _actions2 = _interopRequireDefault(_actions);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar Dashboard = function (_Component) {\n _inherits(Dashboard, _Component);\n\n function Dashboard(props) {\n _classCallCheck(this, Dashboard);\n\n var _this = _possibleConstructorReturn(this, (Dashboard.__proto__ || Object.getPrototypeOf(Dashboard)).call(this));\n\n console.log(props);\n props.actions.load();\n return _this;\n }\n\n _createClass(Dashboard, [{\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps) {\n // if (nextProps.opt.checkpoint_name && nextProps.opt.checkpoint_name !== this.props.opt.checkpoint_name) {\n // this.props.actions.list_epochs(nextProps.opt.checkpoint_name)\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n site = _props.site,\n foldersByModule = _props.foldersByModule,\n sampleRNNrenders = _props.sampleRNNrenders,\n queue = _props.queue,\n images = _props.images;\n var tasks = queue.tasks;\n\n var folders = foldersByModule && Object.keys(_modules2.default).sort().map(function (key) {\n if (!foldersByModule[key]) return null;\n var path = key === 'samplernn' ? '/samplernn/datasets/' : '/' + key + '/sequences/';\n var folders = foldersByModule[key].map(function (folder) {\n return (0, _preact.h)(\n 'div',\n { key: folder.id },\n (0, _preact.h)(\n _reactRouterDom.Link,\n { to: path + folder.id + '/' },\n folder.name\n )\n );\n });\n var files = key === 'samplernn' && (0, _preact.h)(_common.FileList, {\n linkFiles: true,\n files: sampleRNNrenders,\n orderBy: 'date desc',\n fields: 'name date epoch size',\n onClick: function onClick(file, e) {\n e.preventDefault();\n e.stopPropagation();\n console.log('picked a file', file);\n _this2.handlePick(file);\n }\n });\n\n return (0, _preact.h)(\n 'div',\n { className: 'dashboardModule', key: key },\n (0, _preact.h)(\n 'div',\n { className: 'row moduleHeading' },\n (0, _preact.h)(\n 'h3',\n null,\n key\n ),\n (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(\n _reactRouterDom.Link,\n { to: '/' + key + '/new/' },\n 'new'\n )\n ),\n folders\n ),\n files\n );\n }).filter(function (a) {\n return !!a;\n });\n return (0, _preact.h)(\n 'div',\n { className: 'app dashboard' },\n (0, _preact.h)(_dashboardheader2.default, null),\n (0, _preact.h)(\n 'div',\n { className: 'params row' },\n (0, _preact.h)(\n 'div',\n { className: 'column' },\n !!queue.queue.length && (0, _preact.h)(\n _group2.default,\n { title: 'Upcoming Tasks' },\n (0, _preact.h)(_tasklist2.default, { tasks: queue.queue.map(function (id) {\n return tasks[id];\n }) })\n ),\n !!queue.completed.length && (0, _preact.h)(\n _group2.default,\n { title: 'Completed Tasks' },\n (0, _preact.h)(_tasklist2.default, { tasks: queue.completed.map(function (id) {\n return tasks[id];\n }) })\n )\n ),\n (0, _preact.h)(\n 'div',\n { className: 'column' },\n folders\n )\n )\n );\n }\n }, {\n key: 'handlePick',\n value: function handlePick(file) {\n this.props.audioPlayer.play(file);\n }\n }]);\n\n return Dashboard;\n}(_preact.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n site: state.system.site,\n foldersByModule: state.dashboard.data.foldersByModule,\n sampleRNNrenders: state.dashboard.data.sampleRNNrenders,\n images: state.dashboard.images,\n files: state.dashboard.files,\n queue: state.queue\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: (0, _redux.bindActionCreators)(dashboardActions, dispatch),\n audioPlayer: (0, _redux.bindActionCreators)(audioPlayerActions, dispatch)\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Dashboard);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; };\n\nvar _types = require('../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _moment = require('moment/min/moment.min');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar FileSaver = require('file-saver');\n\nvar dashboardInitialState = {\n loading: false,\n error: null,\n data: {},\n images: [],\n files: []\n};\n\nvar dashboardReducer = function dashboardReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : dashboardInitialState;\n var action = arguments[1];\n\n switch (action.type) {\n case _types2.default.dashboard.load:\n return _extends({}, state, {\n loading: false,\n error: null,\n data: action.data\n });\n default:\n return state;\n }\n};\n\nexports.default = dashboardReducer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _reactRedux = require('react-redux');\n\nvar _redux = require('redux');\n\nvar _util = require('../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar DashboardHeader = function (_Component) {\n _inherits(DashboardHeader, _Component);\n\n function DashboardHeader(props) {\n _classCallCheck(this, DashboardHeader);\n\n var _this = _possibleConstructorReturn(this, (DashboardHeader.__proto__ || Object.getPrototypeOf(DashboardHeader)).call(this, props));\n\n _this.handleClick = _this.handleClick.bind(_this);\n return _this;\n }\n\n _createClass(DashboardHeader, [{\n key: 'handleClick',\n value: function handleClick(e) {\n this.props.onClick && this.props.onClick();\n }\n }, {\n key: 'render',\n value: function render() {\n var site = this.props.site;\n\n return (0, _preact.h)(\n 'div',\n { 'class': 'dashboardHeader heading' },\n (0, _preact.h)(\n 'h1',\n null,\n site.name,\n ' cortex'\n ),\n this.renderGPUStatus()\n );\n }\n }, {\n key: 'renderGPUStatus',\n value: function renderGPUStatus() {\n var runner = this.props.runner;\n\n var gpu = runner.cpu;\n if (gpu.status === 'IDLE') {\n return null;\n }\n var task = gpu.task;\n var eta = task.epoch ? (task.epochs - (task.epoch || 0)) * 1000 / 60 + \" minutes\" : null;\n var activityPhrase = void 0,\n liveMessage = void 0;\n if (task.activity === 'live') {\n return (0, _preact.h)(\n 'div',\n null,\n 'Currently running ',\n task.module,\n ' live on \"',\n task.dataset,\n '\"'\n );\n } else {\n return (0, _preact.h)(\n 'div',\n null,\n 'Currently ',\n _util2.default.gerund(task.activity),\n ' ',\n task.module,\n ' on ',\n task.dataset,\n (0, _preact.h)('br', null),\n eta && (0, _preact.h)(\n 'span',\n null,\n 'Epoch: ',\n task.epoch,\n ' / ',\n task.epochs,\n ', ETA ',\n eta,\n (0, _preact.h)('br', null)\n ),\n (0, _preact.h)('br', null),\n 'Want to play live? ',\n (0, _preact.h)(\n 'button',\n null,\n 'Pause at the end of this epoch'\n )\n );\n }\n }\n }]);\n\n return DashboardHeader;\n}(_preact.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n runner: state.system.runner,\n site: state.system.site\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {};\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(DashboardHeader);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _reactRouterDom = require('react-router-dom');\n\nvar _util = require('../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _actions = require('../actions');\n\nvar _actions2 = _interopRequireDefault(_actions);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar TaskList = function (_Component) {\n _inherits(TaskList, _Component);\n\n function TaskList(props) {\n _classCallCheck(this, TaskList);\n\n return _possibleConstructorReturn(this, (TaskList.__proto__ || Object.getPrototypeOf(TaskList)).call(this));\n }\n\n _createClass(TaskList, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n title = _props.title,\n tasks = _props.tasks;\n\n var time = 0;\n\n var _util$sort$orderByFn = _util2.default.sort.orderByFn('date desc'),\n mapFn = _util$sort$orderByFn.mapFn,\n sortFn = _util$sort$orderByFn.sortFn;\n\n var taskList = tasks.map(mapFn).sort(sortFn).map(function (pair) {\n var task = pair[1];\n var dataset = task.dataset;\n\n var dataset_link = void 0;\n if (task.folder_id) {\n var href = '/' + task.module + '/' + (task.module === 'samplernn' ? 'datasets' : 'sequences') + '/' + task.folder_id + '/';\n dataset_link = (0, _preact.h)(\n _reactRouterDom.Link,\n { to: href },\n dataset\n );\n } else {\n dataset_link = dataset;\n }\n return (0, _preact.h)(\n 'div',\n { 'class': 'row' },\n (0, _preact.h)(\n 'div',\n { 'class': 'activity' },\n task.activity,\n ' ',\n task.module\n ),\n (0, _preact.h)(\n 'div',\n { 'class': 'dataset' },\n dataset_link\n ),\n (0, _preact.h)(\n 'div',\n { className: \"age \" + _util2.default.carbon_date(task.updated_at) },\n _util2.default.get_age(task.updated_at)\n ),\n (0, _preact.h)(\n 'div',\n { 'class': 'options' },\n (0, _preact.h)(\n 'span',\n { 'class': 'destroy', onClick: function onClick() {\n return _this2.handleDestroy(task);\n } },\n 'x'\n )\n )\n );\n });\n return (0, _preact.h)(\n 'div',\n { 'class': 'tasklist rows' },\n taskList\n );\n }\n }, {\n key: 'handleDestroy',\n value: function handleDestroy(task) {\n var yes = confirm('Are you sure you want to delete this task?');\n if (yes) {\n _actions2.default.task.destroy(task);\n }\n }\n }]);\n\n return TaskList;\n}(_preact.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {};\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n // actions: bindActionCreators(liveActions, dispatch)\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(TaskList);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.uploadFiles = exports.fetchURL = exports.uploadFile = exports.updateFolder = exports.createFolder = undefined;\n\nvar _types = require('../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _actions = require('../actions');\n\nvar _actions2 = _interopRequireDefault(_actions);\n\nvar _api = require('../api');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createFolder = exports.createFolder = function createFolder(module, name) {\n return function (dispatch) {\n return _actions2.default.folder.create({\n // username... should get added inside the API\n module: module.name,\n datatype: module.datatype,\n activity: 'dataset',\n name: name\n });\n };\n}; // import socket from '../socket'\nvar updateFolder = exports.updateFolder = function updateFolder(module, folder, name) {\n var opt = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n return function (dispatch) {\n if (!folder || !folder.id) {\n return null;\n }\n return _actions2.default.folder.update({\n id: folder.id,\n module: module.name,\n datatype: module.datatype,\n activity: 'dataset',\n name: name,\n opt: opt\n });\n };\n};\n\nvar uploadFile = exports.uploadFile = function uploadFile(module, folder, file, filename, opt) {\n return function (dispatch) {\n var fd = new FormData();\n fd.append('file', file, filename);\n _actions2.default.folder.upload(fd, {\n id: folder.id,\n module: module.name,\n activity: 'file',\n epoch: 0,\n processed: false,\n generated: false,\n opt: opt\n });\n };\n};\n\nvar fetchURL = exports.fetchURL = function fetchURL(module, folder, url) {\n return function (dispatch) {\n // name url\n // mime datatype\n // duration analysis\n // size activity\n // opt created_at updated_at\n console.log(module, folder, url);\n var seenURL = folder.files.some(function (file) {\n return file.url === url;\n });\n console.log(seenURL);\n if (seenURL) {\n console.log('already seen this url');\n return;\n }\n _api.parser.parse(url, function (media) {\n if (!media) return;\n console.log('media', media);\n _actions2.default.file.create({\n folder_id: folder.id,\n name: (media.title || \"\").replace(/\\.[^.]+$/g, '').replace(/[^a-zA-Z0-9_]/g, '_').replace(/\\s+/g, '_').replace(/_+/g, '_'),\n module: module.name,\n dataset: media.token,\n activity: 'url',\n duration: parseInt(media.duration) || 0,\n epoch: 0,\n processed: false,\n generated: false,\n opt: media,\n url: url\n });\n });\n };\n};\n\nvar uploadFiles = exports.uploadFiles = function uploadFiles(files) {\n return { type: _types2.default.dataset.upload_files };\n};\n\n// export const uploadFiles = (files) => {\n// return dispatch => {\n// // return { type: types.dataset.upload_files }\n// }\n// }\n\n// export const fetchURL = (url) => { type: types.dataset.fetch_url }","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _util = require('../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _actions = require('../actions');\n\nvar _actions2 = _interopRequireDefault(_actions);\n\nvar _fileList = require('../common/fileList.component');\n\nvar _loading = require('../common/loading.component');\n\nvar _loading2 = _interopRequireDefault(_loading);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar fieldSet = _util2.default.fieldSet(new Set(['input', 'status', 'checkpoint', 'output']));\n\nvar DatasetComponent = function (_Component) {\n _inherits(DatasetComponent, _Component);\n\n function DatasetComponent() {\n _classCallCheck(this, DatasetComponent);\n\n return _possibleConstructorReturn(this, (DatasetComponent.__proto__ || Object.getPrototypeOf(DatasetComponent)).apply(this, arguments));\n }\n\n _createClass(DatasetComponent, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n loading = _props.loading,\n progress = _props.progress,\n fields = _props.fields,\n module = _props.module,\n data = _props.data,\n folder = _props.folder,\n match = _props.match,\n history = _props.history;\n\n if (loading) {\n return (0, _preact.h)(_loading2.default, { progress: progress });\n }\n if (!data.folders.length) {\n console.log('no folders, redirect to /new');\n return history.push('/' + module.name + '/new/');\n }\n if (!folder || !folder.name) return;\n fields = fieldSet(fields);\n return (0, _preact.h)(\n 'div',\n { 'class': 'rows params datasets' },\n (0, _preact.h)(\n 'div',\n { 'class': 'row row-heading dataset' },\n fields.has('input') && (0, _preact.h)(\n 'div',\n { 'class': 'col' },\n 'input'\n ),\n fields.has('status') && (0, _preact.h)(\n 'div',\n { 'class': 'col' },\n 'status'\n ),\n fields.has('checkpoint') && (0, _preact.h)(\n 'div',\n { 'class': 'col' },\n 'checkpoint'\n ),\n fields.has('output') && (0, _preact.h)(\n 'div',\n { 'class': 'col' },\n 'output'\n )\n ),\n this.renderGroups()\n );\n }\n }, {\n key: 'renderGroups',\n value: function renderGroups() {\n var _this2 = this;\n\n var _props2 = this.props,\n module = _props2.module,\n data = _props2.data,\n folder = _props2.folder,\n fields = _props2.fields,\n runner = _props2.runner,\n onPickDataset = _props2.onPickDataset,\n onPickFile = _props2.onPickFile,\n datasetActions = _props2.datasetActions;\n\n fields = fieldSet(fields);\n var datasetLookup = data.datasetLookup,\n fileLookup = data.fileLookup;\n\n var _util$sort$orderByFn = _util2.default.sort.orderByFn('date desc'),\n mapFn = _util$sort$orderByFn.mapFn,\n sortFn = _util$sort$orderByFn.sortFn;\n\n var moduleOnCPU = runner && runner.cpu.task && runner.cpu.task.module === module.name;\n var moduleOnGPU = runner && runner.gpu.task && runner.gpu.task.module === module.name;\n var datasets = folder.datasets.map(function (name) {\n return datasetLookup[name];\n }).map(mapFn).sort(sortFn).map(function (pair) {\n var dataset = pair[1];\n var status = '';\n var isProcessing = false,\n isFetching = false;\n if (moduleOnGPU && runner.gpu.task.dataset === dataset) {\n status = _util2.default.gerund(runner.gpu.task.activity);\n isProcessing = true;\n } else if (moduleOnCPU && runner.cpu.task.activity === 'fetch' && runner.cpu.task.opt.file_id === dataset.input[0]) {\n isProcessing = true;\n isFetching = true;\n }\n return (0, _preact.h)(\n 'div',\n { key: dataset.name, className: 'row dataset', onClick: function onClick() {\n return onPickDataset && onPickDataset(dataset);\n } },\n _this2.props.beforeRow && _this2.props.beforeRow(dataset),\n fields.has('input') && (0, _preact.h)(\n 'div',\n { className: 'col' },\n !!dataset.input.length && (0, _preact.h)(_fileList.FileList, {\n files: dataset.input.map(function (id) {\n return fileLookup[id];\n }),\n className: 'input_files',\n fileListClassName: '',\n rowClassName: 'input_file',\n fields: 'name date size delete',\n linkFiles: true,\n onClick: onPickFile,\n onDelete: function onDelete(file) {\n return _this2.onDeleteFile(file);\n }\n })\n ),\n fields.has('status') && (0, _preact.h)(\n 'div',\n { className: ['col', 'quiet', dataset.isBuilt ? 'built' : 'not_built', isProcessing ? 'processing' : 'not_processing'].join(' ') },\n _this2.props.datasetActions && _this2.props.datasetActions(dataset, isFetching, isProcessing),\n status\n ),\n fields.has('checkpoint') && (0, _preact.h)(\n 'div',\n { className: 'col checkpoint' },\n !!dataset.checkpoints.length && (0, _preact.h)(_fileList.FileRow, {\n file: dataset.checkpoints[0],\n fields: 'name date epoch',\n className: 'row checkpoint'\n })\n ),\n fields.has('output') && (0, _preact.h)(\n 'div',\n { className: 'col' },\n !!dataset.output.length && (0, _preact.h)(_fileList.FileList, {\n files: dataset.output.map(function (id) {\n return fileLookup[id];\n }),\n orderBy: 'epoch desc',\n fields: 'name date epoch size',\n linkFiles: true,\n onClick: onPickFile,\n onDelete: function onDelete(file) {\n return _this2.onDeleteFile(file);\n }\n })\n ),\n _this2.props.afterRow && _this2.props.afterRow(dataset)\n );\n });\n return datasets;\n }\n }, {\n key: 'onDeleteFile',\n value: function onDeleteFile(file) {\n var yes = confirm('Are you sure you want to delete this file?');\n if (yes) {\n console.log('delete: confirmed');\n if (this.props.onDeleteFile) {\n console.log('calling custom deletefile function');\n this.props.onDeleteFile(file);\n } else {\n _actions2.default.file.destroy(file);\n }\n }\n }\n }]);\n\n return DatasetComponent;\n}(_preact.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n runner: state.system.runner\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {};\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(DatasetComponent);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _dataset = require('./dataset.actions');\n\nvar datasetActions = _interopRequireWildcard(_dataset);\n\nvar _group = require('../common/group.component');\n\nvar _group2 = _interopRequireDefault(_group);\n\nvar _param = require('../common/param.component');\n\nvar _param2 = _interopRequireDefault(_param);\n\nvar _fileList = require('../common/fileList.component');\n\nvar _fileUpload = require('../common/fileUpload.component');\n\nvar _fileUpload2 = _interopRequireDefault(_fileUpload);\n\nvar _textInput = require('../common/textInput.component');\n\nvar _textInput2 = _interopRequireDefault(_textInput);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar DatasetForm = function (_Component) {\n _inherits(DatasetForm, _Component);\n\n function DatasetForm() {\n _classCallCheck(this, DatasetForm);\n\n return _possibleConstructorReturn(this, (DatasetForm.__proto__ || Object.getPrototypeOf(DatasetForm)).apply(this, arguments));\n }\n\n _createClass(DatasetForm, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n loading = _props.loading,\n status = _props.status,\n error = _props.error,\n module = _props.module,\n folder = _props.folder,\n _props$title = _props.title,\n title = _props$title === undefined ? 'Dataset' : _props$title,\n canRename = _props.canRename,\n canUpload = _props.canUpload,\n canAddURL = _props.canAddURL;\n // sort files??\n\n if (!folder.id) {\n return (0, _preact.h)(\n 'div',\n { className: 'params row' },\n (0, _preact.h)(\n 'div',\n { className: 'column' },\n this.renderFolderNameInput(folder.name)\n )\n );\n }\n return (0, _preact.h)(\n 'div',\n { className: 'form params row' },\n (0, _preact.h)(\n 'div',\n { className: 'col' },\n (0, _preact.h)(\n _group2.default,\n null,\n canRename && this.renderFolderNameInput(folder.name),\n canUpload && this.renderUploadInput(),\n canAddURL && this.renderURLInput()\n )\n )\n );\n }\n }, {\n key: 'curry',\n value: function curry(action) {\n var _props2 = this.props,\n module = _props2.module,\n folder = _props2.folder;\n\n return function (param) {\n return action(module, folder, param);\n };\n }\n }, {\n key: 'renderFolderNameInput',\n value: function renderFolderNameInput(name) {\n return (0, _preact.h)(_textInput2.default, {\n title: 'Dataset name',\n value: name,\n onSave: this.curry(this.props.actions.dataset.updateFolder)\n });\n }\n }, {\n key: 'renderUploadInput',\n value: function renderUploadInput() {\n return (0, _preact.h)(_fileUpload2.default, {\n title: 'Upload a file',\n mime: 'image.*',\n onUpload: this.curry(this.props.actions.dataset.uploadFile)\n });\n }\n }, {\n key: 'renderURLInput',\n value: function renderURLInput() {\n return (0, _preact.h)(_textInput2.default, {\n title: 'Fetch a URL',\n placeholder: 'http://',\n onSave: this.curry(this.props.actions.dataset.fetchURL)\n });\n }\n }]);\n\n return DatasetForm;\n}(_preact.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return state.upload;\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: {\n dataset: (0, _redux.bindActionCreators)(datasetActions, dispatch)\n }\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(DatasetForm);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.load = exports.getDataset = exports.emptyDataset = exports.unsortedFolder = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _actions = require('../actions');\n\nvar _actions2 = _interopRequireDefault(_actions);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar unsortedFolders = {};\n\nvar unsortedFolder = exports.unsortedFolder = function unsortedFolder(module) {\n var instantiate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!unsortedFolders[module] || instantiate) {\n var folder = {\n id: 0,\n module: module,\n name: 'unsorted',\n files: [],\n datasets: []\n };\n unsortedFolders[module] = folder;\n }\n return unsortedFolders[module];\n};\n\nvar emptyDataset = exports.emptyDataset = function emptyDataset(module, datasetLookup, name, folder) {\n var dataset = {\n name: name,\n input: [],\n checkpoints: [],\n output: []\n };\n datasetLookup[name] = dataset;\n folder = folder || unsortedFolder(module);\n folder.datasets.push(name);\n return dataset;\n};\n\nvar getDataset = exports.getDataset = function getDataset(module, datasetLookup, name, folder, date) {\n var dataset = datasetLookup[name] || emptyDataset(module, datasetLookup, name, folder);\n // folder = folder || unsortedFolder(module)\n if (date) {\n dataset.date = dataset.date && !isNaN(dataset.date) ? Math.max(+new Date(date), dataset.date) : +new Date(date);\n }\n return dataset;\n};\n\nvar load = exports.load = function load(module) {\n console.log(module);\n return Promise.all([_actions2.default.folder.index({ module: module, limit: 0 }), _actions2.default.file.index({ module: module, limit: 0 }), _actions2.default.task.index({ module: module })]).then(function (res) {\n var _res = _slicedToArray(res, 3),\n folders = _res[0],\n files = _res[1],\n tasks = _res[2];\n\n var datasetLookup = {};\n var folderLookup = {};\n var fileLookup = {};\n\n // take all of the folders and put them in a lookup\n folderLookup = folders.reduce(function (folderLookup, folder) {\n folderLookup[folder.id] = {\n id: folder.id,\n name: folder.name,\n folder: folder,\n files: [],\n datasets: []\n };\n return folderLookup;\n }, {\n unsorted: unsortedFolder(module, true)\n });\n\n // prepare the files by splitting into two groups\n var generatedFiles = files.filter(function (file) {\n return file.generated;\n });\n var ungeneratedFiles = files.filter(function (file) {\n return !file.generated;\n });\n\n // build the initial dataset lookup table using the ungenerated files\n ungeneratedFiles.reduce(function (datasetLookup, file) {\n fileLookup[file.id] = file;\n if (!file.name) {\n if (file.opt && file.opt.media && file.opt.media.token) {\n file.name = file.opt.media.token;\n } else {\n file.name = file.url.replace(/^https?:\\/\\/(www.)?/, '').replace(/[^a-zA-Z0-9_]/g, '_').replace(/_+/g, '_') || 'unknown_' + Math.floor(1000 * Math.random());\n }\n }\n var name = (file.name || 'unsorted').split('.')[0];\n var folder = folderLookup[file.folder_id] || unsortedFolder(module);\n var dataset = getDataset(module, datasetLookup, file.dataset || name, folder, file.date || file.created_at);\n if (file.url.match(file.name)) file.persisted = true;\n dataset.input.push(file.id);\n folder.files.push(file.id);\n return datasetLookup;\n }, datasetLookup);\n\n // go over the generated files and add addl datasets (if the files were deleted)\n generatedFiles.map(function (file) {\n fileLookup[file.id] = file;\n var pair = file.name.split('.')[0].split('-');\n var folder = folderLookup[file.folder_id] || unsortedFolder(module);\n var dataset = getDataset(module, datasetLookup, file.dataset || pair[0], folder, file.date || file.created_at);\n dataset.output.push(file.id);\n folder.files.push(file.id);\n file.epoch = file.epoch || pair[1];\n });\n\n return {\n folderLookup: folderLookup,\n fileLookup: fileLookup,\n datasetLookup: datasetLookup,\n folders: folders,\n files: files,\n unsortedFolder: folderLookup.unsorted\n };\n }).catch(function (e) {\n console.error(e);\n });\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _dataset = require('./dataset.actions');\n\nvar datasetActions = _interopRequireWildcard(_dataset);\n\nvar _loading = require('../common/loading.component');\n\nvar _loading2 = _interopRequireDefault(_loading);\n\nvar _textInput = require('../common/textInput.component');\n\nvar _textInput2 = _interopRequireDefault(_textInput);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction NewDatasetForm(props) {\n var loading = props.loading,\n status = props.status,\n error = props.error,\n history = props.history,\n actions = props.actions,\n module = props.module;\n\n if (loading) return (0, _preact.h)(_loading2.default, null);\n console.log(props);\n return (0, _preact.h)(\n 'div',\n { 'class': 'opaque' },\n (0, _preact.h)(\n 'div',\n { 'class': 'heading' },\n (0, _preact.h)(\n 'h2',\n null,\n 'Create a new ',\n module.displayName,\n ' project'\n )\n ),\n (0, _preact.h)(\n 'div',\n { 'class': 'params' },\n (0, _preact.h)(_textInput2.default, {\n autofocus: true,\n title: 'Name your project',\n onSave: function onSave(name) {\n actions.createFolder(module, name).then(function (folder) {\n window.location.href = '/' + module.name + '/datasets/' + folder.id + '/';\n });\n }\n })\n )\n );\n}\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {};\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: (0, _redux.bindActionCreators)(datasetActions, dispatch)\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(NewDatasetForm);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; };\n\nvar _types = require('../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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; }\n\n/*\n Note:\n This is a sub-reducer intended to process the folder-file API output from the DB.\n Please run this from inside your module reducers :) \n*/\n\nvar datasetInitialState = function datasetInitialState() {\n return {\n loading: true,\n error: null,\n data: null,\n folder_id: 0\n };\n};\n\nvar datasetReducer = function datasetReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : datasetInitialState();\n var action = arguments[1];\n\n switch (action.type) {\n case _types2.default.app.load_progress:\n return _extends({}, state, {\n progress: action.progress\n });\n\n case _types2.default.dataset.load:\n return _extends({}, state, {\n loading: false,\n data: action.data\n });\n\n case _types2.default.dataset.set_folder:\n return _extends({}, state, {\n folder_id: action.data.folder_id\n });\n\n case _types2.default.folder.create:\n return _extends({}, state, {\n loading: false,\n data: {\n folders: state.data.folders.concat([action.data.id]),\n folderLookup: _extends({}, state.data.folderLookup, _defineProperty({}, action.data.id, action.data))\n }\n });\n return state;\n\n case _types2.default.file.create:\n return handleFileCreate(state, action);\n\n case _types2.default.file.update:\n return handleFileUpdate(state, action);\n\n case _types2.default.file.destroy:\n return handleFileDestroy(state, action);\n\n default:\n return state;\n }\n};\n\nfunction handleFileCreate(state, action) {\n console.log(action.data);\n var dataset = void 0,\n old_dataset = void 0,\n folder = void 0,\n old_folder = void 0;\n var dataset_name = void 0;\n if (action.data.dataset) {\n dataset_name = action.data.dataset;\n } else if (action.data.name) {\n dataset_name = action.data.name.split('.')[0];\n } else if (action.data.url) {\n dataset_name = action.data.url;\n } else {\n dataset_name = null;\n }\n if (dataset_name in state.data.datasetLookup) {\n old_dataset = state.data.datasetLookup[dataset_name];\n dataset = _extends({}, old_dataset, {\n input: action.data.generated ? old_dataset.input : [action.data.id].concat(old_dataset.input),\n output: !action.data.generated ? old_dataset.output : [action.data.id].concat(old_dataset.output)\n });\n } else {\n console.log(action.data.created_at, action.data.date);\n dataset = {\n name: dataset_name,\n date: action.data.created_at || action.data.date,\n input: action.data.generated ? [] : [action.data.id],\n checkpoints: [],\n output: !action.data.generated ? [] : [action.data.id]\n };\n }\n old_folder = state.data.folderLookup[action.data.folder_id];\n folder = _extends({}, old_folder, {\n datasets: old_folder.datasets.concat([dataset_name]),\n files: old_folder.files.concat([action.data.id])\n });\n return _extends({}, state, {\n loading: false,\n data: _extends({}, state.data, {\n files: state.data.files.concat([action.data.id]),\n folderLookup: _extends({}, state.data.folderLookup, _defineProperty({}, action.data.folder_id, folder)),\n fileLookup: _extends({}, state.data.fileLookup, _defineProperty({}, action.data.id, action.data)),\n datasetLookup: _extends({}, state.data.datasetLookup, _defineProperty({}, dataset_name, dataset))\n })\n });\n}\n\nfunction handleFileUpdate(state, action) {\n var _extends6;\n\n var old_dataset = void 0;\n var new_dataset = state.data.datasetLookup[action.data.dataset];\n var old_file = state.data.fileLookup[action.data.id];\n var new_dataset_update = void 0;\n if (old_file && action.data.dataset !== old_file.dataset) {\n if (state.data.datasetLookup[old_file.dataset]) {\n old_dataset = state.data.datasetLookup[old_file.dataset];\n old_dataset_update = _extends({}, old_dataset, {\n input: old_dataset.input.filter(function (id) {\n return id !== action.data.id;\n }),\n output: old_dataset.output.filter(function (id) {\n return id !== action.data.id;\n })\n });\n }\n new_dataset_update = _extends({}, new_dataset, {\n input: action.data.generated ? [] : [action.data.id],\n output: !action.data.generated ? [] : [action.data.id]\n });\n }\n console.log('old_dataset', old_dataset_update.name);\n console.log('new_dataset', new_dataset_update.name);\n return _extends({}, state, {\n loading: false,\n data: _extends({}, state.data, {\n datasetLookup: old_dataset ? _extends({}, state.data.datasetLookup, (_extends6 = {}, _defineProperty(_extends6, old_dataset.name, old_dataset_update), _defineProperty(_extends6, new_dataset.name, new_dataset_update), _extends6)) : new_dataset_update ? _extends({}, state.data.datasetLookup, _defineProperty({}, new_dataset.name, new_dataset_update)) : state.data.datasetLookup,\n fileLookup: _extends({}, state.data.fileLookup, _defineProperty({}, action.data.id, action.data))\n })\n });\n return state;\n}\n\nfunction handleFileDestroy(state, action) {\n // delete the key from fileLookup\n var fileLookup = _extends({}, state.data.fileLookup);\n var datasetLookup = _extends({}, state.data.datasetLookup);\n var folderLookup = _extends({}, state.data.folderLookup);\n var old_file = fileLookup[action.data.id];\n if (!old_file) return state;\n var old_dataset = state.data.datasetLookup[old_file.dataset];\n var dataset = void 0;\n if (old_dataset) {\n dataset = _extends({}, old_dataset, {\n input: old_dataset.input.filter(function (id) {\n return id !== old_file.id;\n }),\n output: old_dataset.output.filter(function (id) {\n return id !== old_file.id;\n })\n });\n if (!dataset.input.length && !dataset.checkpoints.length && !dataset.output.length) {\n delete datasetLookup[old_file.dataset];\n var old_folder = folderLookup[old_file.folder_id];\n folderLookup[old_file.folder_id] = _extends({}, old_folder, {\n datasets: old_folder.datasets.filter(function (name) {\n return name !== old_file.dataset;\n })\n });\n } else {\n console.log('dataset just needs sweeping');\n datasetLookup[old_file.dataset] = dataset;\n }\n }\n delete fileLookup[old_file.id];\n\n return _extends({}, state, {\n loading: false,\n data: _extends({}, state.data, {\n folderLookup: folderLookup,\n fileLookup: fileLookup,\n datasetLookup: datasetLookup\n })\n });\n}\n\nexports.default = datasetReducer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _types = require('../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar uploadInitialState = {\n loading: false,\n error: null,\n status: ''\n};\n\nvar uploadReducer = function uploadReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : uploadInitialState;\n var action = arguments[1];\n\n switch (action.type) {\n case _types2.default.folder.upload_loading:\n return {\n error: null,\n loading: true,\n status: 'Loading...'\n };\n case _types2.default.folder.upload_error:\n return {\n error: null,\n loading: false,\n status: 'Error uploading :('\n };\n case _types2.default.folder.upload_progress:\n return {\n error: null,\n loading: true,\n status: 'Upload progress ' + action.percent + '%'\n };\n case _types2.default.folder.upload_waiting:\n return {\n error: null,\n loading: true,\n status: 'Waiting for server to finish processing...'\n };\n case _types2.default.folder.upload_complete:\n return {\n error: null,\n loading: false,\n status: 'Upload complete'\n };\n case _types2.default.file.create_loading:\n return {\n error: null,\n loading: true,\n status: 'Creating file...'\n };\n default:\n return state;\n }\n};\n\nexports.default = uploadReducer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _loading = require('../common/loading.component');\n\nvar _loading2 = _interopRequireDefault(_loading);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction UploadStatus(props) {\n return (0, _preact.h)(\n 'div',\n { 'class': 'status' },\n props.status\n );\n}\n\nvar mapStateToProps = function mapStateToProps(state) {\n return state.upload;\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {};\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(UploadStatus);","'use strict';\n\nvar _preact = require('preact');\n\nvar _reactRedux = require('react-redux');\n\nvar _reactRouterDom = require('react-router-dom');\n\nvar _store = require('./store');\n\nvar _socket = require('./socket');\n\nvar socket = _interopRequireWildcard(_socket);\n\nvar _util = require('./util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _header = require('./common/header.component');\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _audioPlayer = require('./common/audioPlayer/audioPlayer.component');\n\nvar _audioPlayer2 = _interopRequireDefault(_audioPlayer);\n\nvar _system = require('./system/system.component');\n\nvar _system2 = _interopRequireDefault(_system);\n\nvar _dashboard = require('./dashboard/dashboard.component');\n\nvar _dashboard2 = _interopRequireDefault(_dashboard);\n\nvar _modules = require('./modules');\n\nvar _modules2 = _interopRequireDefault(_modules);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n// import client from './client'\n\nvar module_list = Object.keys(_modules2.default).map(function (name) {\n var module = _modules2.default[name];\n return (0, _preact.h)(_reactRouterDom.Route, { path: '/' + module.name, component: module.router });\n});\n\nvar app = (0, _preact.h)(\n _reactRedux.Provider,\n { store: _store.store },\n (0, _preact.h)(\n _reactRouterDom.BrowserRouter,\n null,\n (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/', component: _dashboard2.default }),\n (0, _preact.h)(_reactRouterDom.Route, { path: '/system/', component: _system2.default }),\n (0, _preact.h)(_reactRouterDom.Route, { path: '/dashboard/', component: _dashboard2.default }),\n module_list,\n (0, _preact.h)(_reactRouterDom.Route, { path: '/', component: _header2.default }),\n (0, _preact.h)(_audioPlayer2.default, null)\n )\n )\n);\n\n(0, _preact.render)(app, document.getElementById('container'));","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.play = exports.pause = exports.seek = exports.load_epoch = exports.load_sequence = exports.list_sequences = exports.list_epochs = exports.list_checkpoints = exports.set_param = exports.get_params = undefined;\n\nvar _socket = require('../socket');\n\nvar _socket2 = _interopRequireDefault(_socket);\n\nvar _types = require('../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _player = require('./player');\n\nvar player = _interopRequireWildcard(_player);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar get_params = exports.get_params = function get_params() {\n _socket2.default.live.get_params();\n return { type: _types2.default.player.get_params };\n};\n\nvar set_param = exports.set_param = function set_param(key, value) {\n console.log('set param', key, value);\n _socket2.default.live.set_param(key, value);\n return { type: _types2.default.player.set_param, key: key, value: value };\n};\n\nvar list_checkpoints = exports.list_checkpoints = function list_checkpoints(module) {\n _socket2.default.live.list_checkpoints(module);\n return { type: _types2.default.player.loading_checkpoints };\n};\n\nvar list_epochs = exports.list_epochs = function list_epochs(module, checkpoint) {\n _socket2.default.live.list_epochs(module, checkpoint);\n return { type: _types2.default.player.loading_epochs };\n};\n\nvar list_sequences = exports.list_sequences = function list_sequences(module) {\n _socket2.default.live.list_sequences(module);\n return { type: _types2.default.player.loading_sequences };\n};\n\nvar load_sequence = exports.load_sequence = function load_sequence(sequence_name) {\n _socket2.default.live.load_sequence(sequence_name);\n return { type: _types2.default.player.loading_sequence, sequence_name: sequence_name };\n};\n\nvar load_epoch = exports.load_epoch = function load_epoch(checkpoint_name, epoch) {\n _socket2.default.live.load_epoch(checkpoint_name, epoch);\n return { type: _types2.default.player.loading_checkpoint, checkpoint_name: checkpoint_name, epoch: epoch };\n};\n\nvar seek = exports.seek = function seek(frame) {\n _socket2.default.live.seek(frame);\n return { type: _types2.default.player.seeking };\n};\n\nvar pause = exports.pause = function pause(frame) {\n _socket2.default.live.pause(pause);\n player.toggleFPS(false);\n return { type: _types2.default.player.pausing };\n};\n\nvar play = exports.play = function play(frame) {\n _socket2.default.live.play();\n player.toggleFPS(true);\n return { type: _types2.default.player.playing };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; };\n\nvar _moment = require('moment/min/moment.min');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _fileSaver = require('file-saver');\n\nvar _fileSaver2 = _interopRequireDefault(_fileSaver);\n\nvar _types = require('../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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; }\n\nvar liveInitialState = {\n loading: false,\n error: null,\n opt: {},\n checkpoints: [],\n epochs: ['latest'],\n sequences: [],\n fps: 0,\n playing: false,\n last_message: '',\n frame: { i: 0, sequence_i: 0, sequence_len: '1' }\n};\n\nvar liveReducer = function liveReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : liveInitialState;\n var action = arguments[1];\n\n var results = void 0;\n switch (action.type) {\n case _types2.default.socket.load_params:\n if (!action.opt || !Object.keys(action.opt).length) {\n return state;\n }\n return _extends({}, state, {\n loading: false,\n error: null,\n opt: action.opt\n });\n\n case _types2.default.player.set_param:\n return _extends({}, state, {\n opt: _extends({}, state.opt, _defineProperty({}, action.key, action.value))\n });\n\n case _types2.default.socket.list_checkpoints:\n return _extends({}, state, {\n checkpoints: action.checkpoints,\n epochs: []\n });\n\n case _types2.default.socket.list_epochs:\n if (action.epochs === \"not found\") return _extends({}, state, { epochs: [] });\n return _extends({}, state, {\n epochs: (action.epochs || []).map(function (a) {\n return [a == 'latest' ? Infinity : a, a];\n }).sort(function (a, b) {\n return a[0] - b[0];\n }).map(function (a) {\n return a[1];\n })\n });\n\n case _types2.default.socket.list_sequences:\n return _extends({}, state, {\n sequences: action.sequences\n });\n\n case _types2.default.player.loading_sequence:\n return _extends({}, state, {\n opt: _extends({}, state.opt, {\n sequence_name: action.sequence_name\n })\n });\n\n case _types2.default.player.loading_checkpoint:\n return _extends({}, state, {\n opt: _extends({}, state.opt, {\n checkpoint_name: action.checkpoint_name,\n epoch: action.epoch\n })\n });\n\n case _types2.default.player.set_fps:\n return _extends({}, state, {\n fps: action.fps\n });\n\n case _types2.default.system.stdout:\n if (action.data.processor === 'gpu') {\n return _extends({}, state, {\n last_message: action.data.data\n });\n }\n return state;\n\n case _types2.default.player.current_frame:\n return action.meta ? _extends({}, state, {\n frame: action.meta\n }) : state;\n\n case _types2.default.player.pausing:\n return _extends({}, state, {\n playing: false\n });\n\n case _types2.default.player.playing:\n return _extends({}, state, {\n playing: true\n });\n\n case _types2.default.player.start_recording:\n return _extends({}, state, {\n opt: _extends({}, state.opt, {\n recording: true\n })\n });\n case _types2.default.player.add_record_frame:\n return _extends({}, state, {\n opt: _extends({}, state.opt, {\n recordFrames: (state.opt.recordFrames || 0) + 1\n })\n });\n case _types2.default.player.save_frame:\n _fileSaver2.default.saveAs(action.blob, state.opt.checkpoint_name + \"_\" + state.opt.sequence + \"_\" + (0, _moment2.default)().format(\"YYYYMMDD_HHmm\") + \".png\");\n return state;\n\n case _types2.default.player.saving_video:\n return _extends({}, state, {\n opt: _extends({}, state.opt, {\n savingVideo: true\n })\n });\n case _types2.default.player.save_video:\n _fileSaver2.default.saveAs(action.blob, state.opt.checkpoint_name + \"_\" + state.opt.sequence + \"_\" + (0, _moment2.default)().format(\"YYYYMMDD_HHmm\") + \".webm\");\n return _extends({}, state, {\n opt: _extends({}, state.opt, {\n recording: false,\n savingVideo: false,\n recordFrames: 0\n })\n });\n\n default:\n return state;\n }\n};\n\nexports.default = liveReducer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.startSynthesizing = startSynthesizing;\nexports.stopSynthesizing = stopSynthesizing;\nexports.startRecording = startRecording;\nexports.stopRecording = stopRecording;\nexports.saveFrame = saveFrame;\nexports.onFrame = onFrame;\nexports.toggleFPS = toggleFPS;\nexports.startWatchingFPS = startWatchingFPS;\nexports.stopWatchingFPS = stopWatchingFPS;\n\nvar _store = require('../store');\n\nvar _whammy = require('./whammy');\n\nvar _whammy2 = _interopRequireDefault(_whammy);\n\nvar _types = require('../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _pix2wav = require('../audio/pix2wav');\n\nvar pix2wav = _interopRequireWildcard(_pix2wav);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar fps = 0,\n last_frame = void 0;\nvar recording = false,\n saving = false,\n synthesizing = false;\nvar videoWriter = void 0;\n\nfunction startSynthesizing() {\n synthesizing = true;\n}\nfunction stopSynthesizing() {\n synthesizing = false;\n}\n\nfunction startRecording() {\n videoWriter = new _whammy2.default.Video(25, 0.95);\n recording = true;\n _store.store.dispatch({\n type: _types2.default.player.start_recording\n });\n}\n\nfunction stopRecording() {\n if (!recording) return;\n recording = false;\n _store.store.dispatch({\n type: _types2.default.player.saving_video\n });\n videoWriter.compile(false, function (blob) {\n // console.log(blob)\n _store.store.dispatch({\n type: _types2.default.player.save_video,\n blob: blob\n });\n });\n}\n\nfunction saveFrame() {\n saving = true;\n}\n\nfunction onFrame(data) {\n var blob = new Blob([data.frame], { type: 'image/jpg' });\n var url = URL.createObjectURL(blob);\n var img = new Image();\n var canvas = document.querySelector('.player canvas');\n if (!canvas) return console.error('no canvas for frame');\n img.onload = function () {\n img.onload = null;\n last_frame = data.meta;\n URL.revokeObjectURL(url);\n var ctx = canvas.getContext('2d-lodpi');\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n if (synthesizing) {\n var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n pix2wav.play({ imageData: imageData });\n }\n if (recording) {\n console.log('record frame');\n videoWriter.add(canvas);\n _store.store.dispatch({\n type: _types2.default.player.add_record_frame\n });\n }\n if (saving) {\n saving = false;\n canvas.toBlob(function (blob) {\n _store.store.dispatch({\n type: _types2.default.player.save_frame,\n blob: blob\n });\n });\n }\n fps += 1;\n };\n img.src = url;\n}\n\nvar previousValue = void 0,\n currentValue = void 0;\nfunction toggleFPS(state) {\n currentValue = typeof state !== 'undefined' ? state : _store.store.getState().live.playing;\n if (previousValue !== currentValue) {\n if (currentValue) {\n startWatchingFPS();\n } else {\n stopWatchingFPS();\n }\n }\n previousValue = currentValue;\n}\n\nvar fpsInterval = void 0;\n\nfunction startWatchingFPS() {\n clearInterval(fpsInterval);\n fpsInterval = setInterval(function () {\n _store.store.dispatch({\n type: _types2.default.player.set_fps,\n fps: fps\n });\n _store.store.dispatch({\n type: _types2.default.player.current_frame,\n meta: last_frame\n });\n fps = 0;\n }, 1000);\n}\nfunction stopWatchingFPS() {\n clearInterval(fpsInterval);\n}","\"use strict\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nmodule.exports = function () {\n // in this case, frames has a very specific meaning, which will be\n // detailed once i finish writing the code\n\n function toWebM(frames, outputAsArray) {\n var info = checkFrames(frames);\n\n //max duration by cluster in milliseconds\n var CLUSTER_MAX_DURATION = 30000;\n\n var EBML = [{\n \"id\": 0x1a45dfa3, // EBML\n \"data\": [{\n \"data\": 1,\n \"id\": 0x4286 // EBMLVersion\n }, {\n \"data\": 1,\n \"id\": 0x42f7 // EBMLReadVersion\n }, {\n \"data\": 4,\n \"id\": 0x42f2 // EBMLMaxIDLength\n }, {\n \"data\": 8,\n \"id\": 0x42f3 // EBMLMaxSizeLength\n }, {\n \"data\": \"webm\",\n \"id\": 0x4282 // DocType\n }, {\n \"data\": 2,\n \"id\": 0x4287 // DocTypeVersion\n }, {\n \"data\": 2,\n \"id\": 0x4285 // DocTypeReadVersion\n }]\n }, {\n \"id\": 0x18538067, // Segment\n \"data\": [{\n \"id\": 0x1549a966, // Info\n \"data\": [{\n \"data\": 1e6, //do things in millisecs (num of nanosecs for duration scale)\n \"id\": 0x2ad7b1 // TimecodeScale\n }, {\n \"data\": \"whammy\",\n \"id\": 0x4d80 // MuxingApp\n }, {\n \"data\": \"whammy\",\n \"id\": 0x5741 // WritingApp\n }, {\n \"data\": doubleToString(info.duration),\n \"id\": 0x4489 // Duration\n }]\n }, {\n \"id\": 0x1654ae6b, // Tracks\n \"data\": [{\n \"id\": 0xae, // TrackEntry\n \"data\": [{\n \"data\": 1,\n \"id\": 0xd7 // TrackNumber\n }, {\n \"data\": 1,\n \"id\": 0x73c5 // TrackUID\n }, {\n \"data\": 0,\n \"id\": 0x9c // FlagLacing\n }, {\n \"data\": \"und\",\n \"id\": 0x22b59c // Language\n }, {\n \"data\": \"V_VP8\",\n \"id\": 0x86 // CodecID\n }, {\n \"data\": \"VP8\",\n \"id\": 0x258688 // CodecName\n }, {\n \"data\": 1,\n \"id\": 0x83 // TrackType\n }, {\n \"id\": 0xe0, // Video\n \"data\": [{\n \"data\": info.width,\n \"id\": 0xb0 // PixelWidth\n }, {\n \"data\": info.height,\n \"id\": 0xba // PixelHeight\n }]\n }]\n }]\n }, {\n \"id\": 0x1c53bb6b, // Cues\n \"data\": [\n //cue insertion point\n ]\n\n //cluster insertion point\n }]\n }];\n\n var segment = EBML[1];\n var cues = segment.data[2];\n\n //Generate clusters (max duration)\n var frameNumber = 0;\n var clusterTimecode = 0;\n while (frameNumber < frames.length) {\n\n var cuePoint = {\n \"id\": 0xbb, // CuePoint\n \"data\": [{\n \"data\": Math.round(clusterTimecode),\n \"id\": 0xb3 // CueTime\n }, {\n \"id\": 0xb7, // CueTrackPositions\n \"data\": [{\n \"data\": 1,\n \"id\": 0xf7 // CueTrack\n }, {\n \"data\": 0, // to be filled in when we know it\n \"size\": 8,\n \"id\": 0xf1 // CueClusterPosition\n }]\n }]\n };\n\n cues.data.push(cuePoint);\n\n var clusterFrames = [];\n var clusterDuration = 0;\n do {\n clusterFrames.push(frames[frameNumber]);\n clusterDuration += frames[frameNumber].duration;\n frameNumber++;\n } while (frameNumber < frames.length && clusterDuration < CLUSTER_MAX_DURATION);\n\n var clusterCounter = 0;\n var cluster = {\n \"id\": 0x1f43b675, // Cluster\n \"data\": [{\n \"data\": Math.round(clusterTimecode),\n \"id\": 0xe7 // Timecode\n }].concat(clusterFrames.map(function (webp) {\n var block = makeSimpleBlock({\n discardable: 0,\n frame: webp.data.slice(4),\n invisible: 0,\n keyframe: 1,\n lacing: 0,\n trackNum: 1,\n timecode: Math.round(clusterCounter)\n });\n clusterCounter += webp.duration;\n return {\n data: block,\n id: 0xa3\n };\n }))\n\n //Add cluster to segment\n };segment.data.push(cluster);\n clusterTimecode += clusterDuration;\n }\n\n //First pass to compute cluster positions\n var position = 0;\n for (var i = 0; i < segment.data.length; i++) {\n if (i >= 3) {\n cues.data[i - 3].data[1].data[1].data = position;\n }\n var data = generateEBML([segment.data[i]], outputAsArray);\n position += data.size || data.byteLength || data.length;\n if (i != 2) {\n // not cues\n //Save results to avoid having to encode everything twice\n segment.data[i] = data;\n }\n }\n\n return generateEBML(EBML, outputAsArray);\n }\n\n // sums the lengths of all the frames and gets the duration, woo\n\n function checkFrames(frames) {\n var width = frames[0].width,\n height = frames[0].height,\n duration = frames[0].duration;\n for (var i = 1; i < frames.length; i++) {\n if (frames[i].width != width) throw \"Frame \" + (i + 1) + \" has a different width\";\n if (frames[i].height != height) throw \"Frame \" + (i + 1) + \" has a different height\";\n if (frames[i].duration < 0 || frames[i].duration > 0x7fff) throw \"Frame \" + (i + 1) + \" has a weird duration (must be between 0 and 32767)\";\n duration += frames[i].duration;\n }\n return {\n duration: duration,\n width: width,\n height: height\n };\n }\n\n function numToBuffer(num) {\n var parts = [];\n while (num > 0) {\n parts.push(num & 0xff);\n num = num >> 8;\n }\n return new Uint8Array(parts.reverse());\n }\n\n function numToFixedBuffer(num, size) {\n var parts = new Uint8Array(size);\n for (var i = size - 1; i >= 0; i--) {\n parts[i] = num & 0xff;\n num = num >> 8;\n }\n return parts;\n }\n\n function strToBuffer(str) {\n // return new Blob([str]);\n\n var arr = new Uint8Array(str.length);\n for (var i = 0; i < str.length; i++) {\n arr[i] = str.charCodeAt(i);\n }\n return arr;\n // this is slower\n // return new Uint8Array(str.split('').map(function(e){\n // return e.charCodeAt(0)\n // }))\n }\n\n //sorry this is ugly, and sort of hard to understand exactly why this was done\n // at all really, but the reason is that there's some code below that i dont really\n // feel like understanding, and this is easier than using my brain.\n\n function bitsToBuffer(bits) {\n var data = [];\n var pad = bits.length % 8 ? new Array(1 + 8 - bits.length % 8).join('0') : '';\n bits = pad + bits;\n for (var i = 0; i < bits.length; i += 8) {\n data.push(parseInt(bits.substr(i, 8), 2));\n }\n return new Uint8Array(data);\n }\n\n function generateEBML(json, outputAsArray) {\n var ebml = [];\n for (var i = 0; i < json.length; i++) {\n if (!('id' in json[i])) {\n //already encoded blob or byteArray\n ebml.push(json[i]);\n continue;\n }\n\n var data = json[i].data;\n if ((typeof data === \"undefined\" ? \"undefined\" : _typeof(data)) == 'object') data = generateEBML(data, outputAsArray);\n if (typeof data == 'number') data = 'size' in json[i] ? numToFixedBuffer(data, json[i].size) : bitsToBuffer(data.toString(2));\n if (typeof data == 'string') data = strToBuffer(data);\n\n if (data.length) {\n var z = z;\n }\n\n var len = data.size || data.byteLength || data.length;\n var zeroes = Math.ceil(Math.ceil(Math.log(len) / Math.log(2)) / 8);\n var size_str = len.toString(2);\n var padded = new Array(zeroes * 7 + 7 + 1 - size_str.length).join('0') + size_str;\n var size = new Array(zeroes).join('0') + '1' + padded;\n\n //i actually dont quite understand what went on up there, so I'm not really\n //going to fix this, i'm probably just going to write some hacky thing which\n //converts that string into a buffer-esque thing\n\n ebml.push(numToBuffer(json[i].id));\n ebml.push(bitsToBuffer(size));\n ebml.push(data);\n }\n\n //output as blob or byteArray\n if (outputAsArray) {\n //convert ebml to an array\n var buffer = toFlatArray(ebml);\n return new Uint8Array(buffer);\n } else {\n return new Blob(ebml, { type: \"video/webm\" });\n }\n }\n\n function toFlatArray(arr, outBuffer) {\n if (outBuffer == null) {\n outBuffer = [];\n }\n for (var i = 0; i < arr.length; i++) {\n if (_typeof(arr[i]) == 'object') {\n //an array\n toFlatArray(arr[i], outBuffer);\n } else {\n //a simple element\n outBuffer.push(arr[i]);\n }\n }\n return outBuffer;\n }\n\n //OKAY, so the following two functions are the string-based old stuff, the reason they're\n //still sort of in here, is that they're actually faster than the new blob stuff because\n //getAsFile isn't widely implemented, or at least, it doesn't work in chrome, which is the\n // only browser which supports get as webp\n\n //Converting between a string of 0010101001's and binary back and forth is probably inefficient\n //TODO: get rid of this function\n function toBinStr_old(bits) {\n var data = '';\n var pad = bits.length % 8 ? new Array(1 + 8 - bits.length % 8).join('0') : '';\n bits = pad + bits;\n for (var i = 0; i < bits.length; i += 8) {\n data += String.fromCharCode(parseInt(bits.substr(i, 8), 2));\n }\n return data;\n }\n\n function generateEBML_old(json) {\n var ebml = '';\n for (var i = 0; i < json.length; i++) {\n var data = json[i].data;\n if ((typeof data === \"undefined\" ? \"undefined\" : _typeof(data)) == 'object') data = generateEBML_old(data);\n if (typeof data == 'number') data = toBinStr_old(data.toString(2));\n\n var len = data.length;\n var zeroes = Math.ceil(Math.ceil(Math.log(len) / Math.log(2)) / 8);\n var size_str = len.toString(2);\n var padded = new Array(zeroes * 7 + 7 + 1 - size_str.length).join('0') + size_str;\n var size = new Array(zeroes).join('0') + '1' + padded;\n\n ebml += toBinStr_old(json[i].id.toString(2)) + toBinStr_old(size) + data;\n }\n return ebml;\n }\n\n //woot, a function that's actually written for this project!\n //this parses some json markup and makes it into that binary magic\n //which can then get shoved into the matroska comtainer (peaceably)\n\n function makeSimpleBlock(data) {\n var flags = 0;\n if (data.keyframe) flags |= 128;\n if (data.invisible) flags |= 8;\n if (data.lacing) flags |= data.lacing << 1;\n if (data.discardable) flags |= 1;\n if (data.trackNum > 127) {\n throw \"TrackNumber > 127 not supported\";\n }\n var out = [data.trackNum | 0x80, data.timecode >> 8, data.timecode & 0xff, flags].map(function (e) {\n return String.fromCharCode(e);\n }).join('') + data.frame;\n\n return out;\n }\n\n // here's something else taken verbatim from weppy, awesome rite?\n\n function parseWebP(riff) {\n var VP8 = riff.RIFF[0].WEBP[0];\n\n var frame_start = VP8.indexOf('\\x9d\\x01\\x2a'); //A VP8 keyframe starts with the 0x9d012a header\n for (var i = 0, c = []; i < 4; i++) {\n c[i] = VP8.charCodeAt(frame_start + 3 + i);\n }var width, horizontal_scale, height, vertical_scale, tmp;\n\n //the code below is literally copied verbatim from the bitstream spec\n tmp = c[1] << 8 | c[0];\n width = tmp & 0x3FFF;\n horizontal_scale = tmp >> 14;\n tmp = c[3] << 8 | c[2];\n height = tmp & 0x3FFF;\n vertical_scale = tmp >> 14;\n return {\n width: width,\n height: height,\n data: VP8,\n riff: riff\n };\n }\n\n // i think i'm going off on a riff by pretending this is some known\n // idiom which i'm making a casual and brilliant pun about, but since\n // i can't find anything on google which conforms to this idiomatic\n // usage, I'm assuming this is just a consequence of some psychotic\n // break which makes me make up puns. well, enough riff-raff (aha a\n // rescue of sorts), this function was ripped wholesale from weppy\n\n function parseRIFF(string) {\n var offset = 0;\n var chunks = {};\n\n while (offset < string.length) {\n var id = string.substr(offset, 4);\n chunks[id] = chunks[id] || [];\n if (id == 'RIFF' || id == 'LIST') {\n var len = parseInt(string.substr(offset + 4, 4).split('').map(function (i) {\n var unpadded = i.charCodeAt(0).toString(2);\n return new Array(8 - unpadded.length + 1).join('0') + unpadded;\n }).join(''), 2);\n var data = string.substr(offset + 4 + 4, len);\n offset += 4 + 4 + len;\n chunks[id].push(parseRIFF(data));\n } else if (id == 'WEBP') {\n // Use (offset + 8) to skip past \"VP8 \"/\"VP8L\"/\"VP8X\" field after \"WEBP\"\n chunks[id].push(string.substr(offset + 8));\n offset = string.length;\n } else {\n // Unknown chunk type; push entire payload\n chunks[id].push(string.substr(offset + 4));\n offset = string.length;\n }\n }\n return chunks;\n }\n\n // here's a little utility function that acts as a utility for other functions\n // basically, the only purpose is for encoding \"Duration\", which is encoded as\n // a double (considerably more difficult to encode than an integer)\n function doubleToString(num) {\n return [].slice.call(new Uint8Array(new Float64Array([num]) //create a float64 array\n .buffer) //extract the array buffer\n , 0) // convert the Uint8Array into a regular array\n .map(function (e) {\n //since it's a regular array, we can now use map\n return String.fromCharCode(e); // encode all the bytes individually\n }).reverse() //correct the byte endianness (assume it's little endian for now)\n .join(''); // join the bytes in holy matrimony as a string\n }\n\n function WhammyVideo(speed, quality) {\n // a more abstract-ish API\n this.frames = [];\n this.duration = 1000 / speed;\n this.quality = quality || 0.8;\n }\n\n WhammyVideo.prototype.add = function (frame, duration) {\n if (typeof duration != 'undefined' && this.duration) throw \"you can't pass a duration if the fps is set\";\n if (typeof duration == 'undefined' && !this.duration) throw \"if you don't have the fps set, you need to have durations here.\";\n if (frame.canvas) {\n //CanvasRenderingContext2D\n frame = frame.canvas;\n }\n if (frame.toDataURL) {\n // frame = frame.toDataURL('image/webp', this.quality);\n // quickly store image data so we don't block cpu. encode in compile method.\n frame = frame.getContext('2d-lodpi').getImageData(0, 0, frame.width, frame.height);\n } else if (typeof frame != \"string\") {\n throw \"frame must be a a HTMLCanvasElement, a CanvasRenderingContext2D or a DataURI formatted string\";\n }\n if (typeof frame === \"string\" && !/^data:image\\/webp;base64,/ig.test(frame)) {\n throw \"Input must be formatted properly as a base64 encoded DataURI of type image/webp\";\n }\n this.frames.push({\n image: frame,\n duration: duration || this.duration\n });\n };\n\n // deferred webp encoding. Draws image data to canvas, then encodes as dataUrl\n WhammyVideo.prototype.encodeFrames = function (callback) {\n\n if (this.frames[0].image instanceof ImageData) {\n\n var frames = this.frames;\n var tmpCanvas = document.createElement('canvas');\n var tmpContext = tmpCanvas.getContext('2d-lodpi');\n tmpCanvas.width = this.frames[0].image.width;\n tmpCanvas.height = this.frames[0].image.height;\n\n var encodeFrame = function (index) {\n console.log('encodeFrame', index);\n var frame = frames[index];\n tmpContext.putImageData(frame.image, 0, 0);\n frame.image = tmpCanvas.toDataURL('image/webp', this.quality);\n if (index < frames.length - 1) {\n setTimeout(function () {\n encodeFrame(index + 1);\n }, 1);\n } else {\n callback();\n }\n }.bind(this);\n\n encodeFrame(0);\n } else {\n callback();\n }\n };\n\n WhammyVideo.prototype.compile = function (outputAsArray, callback) {\n\n this.encodeFrames(function () {\n var width = 0;\n var height = 0;\n var webm = new toWebM(this.frames.map(function (frame) {\n var webp = parseWebP(parseRIFF(atob(frame.image.slice(23))));\n webp.duration = frame.duration;\n if (!webp || !webp.width || !webp.height) return null;\n if (!width) width = webp.width;else if (width !== webp.width) return null;\n if (!height) height = webp.height;else if (height !== webp.height) return null;\n return webp;\n }).filter(function (frame) {\n return !!frame;\n }), outputAsArray);\n callback(webm);\n }.bind(this));\n };\n\n return {\n Video: WhammyVideo,\n fromImageArray: function fromImageArray(images, fps, outputAsArray) {\n return toWebM(images.map(function (image) {\n var webp = parseWebP(parseRIFF(atob(image.slice(23))));\n webp.duration = 1000 / fps;\n return webp;\n }), outputAsArray);\n },\n toWebM: toWebM\n // expose methods of madness\n };\n}();","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _pix2pix = require('./pix2pix');\n\nvar _pix2pix2 = _interopRequireDefault(_pix2pix);\n\nvar _pix2pixhd = require('./pix2pixhd');\n\nvar _pix2pixhd2 = _interopRequireDefault(_pix2pixhd);\n\nvar _pix2wav = require('./pix2wav');\n\nvar _pix2wav2 = _interopRequireDefault(_pix2wav);\n\nvar _samplernn = require('./samplernn');\n\nvar _samplernn2 = _interopRequireDefault(_samplernn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n pix2pix: _pix2pix2.default, pix2pixhd: _pix2pixhd2.default, pix2wav: _pix2wav2.default, samplernn: _samplernn2.default\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.moduleReducer = undefined;\n\nvar _redux = require('redux');\n\nvar _pix2pix = require('./pix2pix/pix2pix.reducer');\n\nvar _pix2pix2 = _interopRequireDefault(_pix2pix);\n\nvar _pix2pixhd = require('./pix2pixhd/pix2pixhd.reducer');\n\nvar _pix2pixhd2 = _interopRequireDefault(_pix2pixhd);\n\nvar _pix2wav = require('./pix2wav/pix2wav.reducer');\n\nvar _pix2wav2 = _interopRequireDefault(_pix2wav);\n\nvar _samplernn = require('./samplernn/samplernn.reducer');\n\nvar _samplernn2 = _interopRequireDefault(_samplernn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar moduleReducer = exports.moduleReducer = (0, _redux.combineReducers)({\n pix2pix: _pix2pix2.default,\n pix2pixhd: _pix2pixhd2.default,\n pix2wav: _pix2wav2.default,\n samplernn: _samplernn2.default\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _reactRouterDom = require('react-router-dom');\n\nvar _actions = require('../../actions');\n\nvar _actions2 = _interopRequireDefault(_actions);\n\nvar _util = require('../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _pix2pix = require('./views/pix2pix.new');\n\nvar _pix2pix2 = _interopRequireDefault(_pix2pix);\n\nvar _pix2pix3 = require('./views/pix2pix.show');\n\nvar _pix2pix4 = _interopRequireDefault(_pix2pix3);\n\nvar _pix2pix5 = require('./views/pix2pix.live');\n\nvar _pix2pix6 = _interopRequireDefault(_pix2pix5);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar router = function () {\n function router() {\n _classCallCheck(this, router);\n }\n\n _createClass(router, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n _actions2.default.system.changeTool('pix2pix');\n document.body.style.backgroundImage = 'linear-gradient(' + (_util2.default.randint(40) + 40) + 'deg, #fde, #ffe)';\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps() {\n _actions2.default.system.changeTool('pix2pix');\n document.body.style.backgroundImage = 'linear-gradient(' + (_util2.default.randint(40) + 40) + 'deg, #fde, #ffe)';\n }\n }, {\n key: 'render',\n value: function render() {\n return (0, _preact.h)(\n 'section',\n null,\n (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/pix2pix/new/', component: _pix2pix2.default }),\n (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/pix2pix/sequences/', component: _pix2pix4.default }),\n (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/pix2pix/sequences/:id/', component: _pix2pix4.default }),\n (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/pix2pix/live/', component: _pix2pix6.default })\n );\n }\n }]);\n\n return router;\n}();\n\nfunction links() {\n return [{ url: '/pix2pix/new/', name: 'new' }, { url: '/pix2pix/sequences/', name: 'sequences' }, { url: '/pix2pix/live/', name: 'live' }];\n}\n\nexports.default = {\n name: 'pix2pix',\n router: router, links: links\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.load_directories = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _v = require('uuid/v1');\n\nvar _v2 = _interopRequireDefault(_v);\n\nvar _socket = require('../../socket');\n\nvar _socket2 = _interopRequireDefault(_socket);\n\nvar _types = require('../../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _dataset = require('../../dataset/dataset.loader');\n\nvar datasetLoader = _interopRequireWildcard(_dataset);\n\nvar _actions = require('../../actions');\n\nvar _actions2 = _interopRequireDefault(_actions);\n\nvar _util = require('../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _pix2pix = require('./pix2pix.module');\n\nvar _pix2pix2 = _interopRequireDefault(_pix2pix);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar load_directories = exports.load_directories = function load_directories(id) {\n return function (dispatch) {\n var module = _pix2pix2.default.name;\n _util2.default.allProgress([datasetLoader.load(module), _actions2.default.socket.list_directory({ module: module, dir: 'sequences/pix2pix/' }), _actions2.default.socket.list_directory({ module: module, dir: 'datasets/pix2pix/' }), _actions2.default.socket.list_directory({ module: module, dir: 'checkpoints/pix2pix/' })], function (percent, i, n) {\n console.log('pix2pix load progress', i, n);\n dispatch({ type: _types2.default.app.load_progress, progress: { i: i, n: n } });\n }).then(function (res) {\n var _res = _slicedToArray(res, 4),\n datasetApiReport = _res[0],\n sequences = _res[1],\n datasets = _res[2],\n checkpoints = _res[3]; //, datasets, results, output, datasetUsage, lossReport] = res\n\n\n var folderLookup = datasetApiReport.folderLookup,\n fileLookup = datasetApiReport.fileLookup,\n datasetLookup = datasetApiReport.datasetLookup,\n folders = datasetApiReport.folders,\n files = datasetApiReport.files,\n unsortedFolder = datasetApiReport.unsortedFolder;\n // console.log(datasetUsage)\n\n var sequenceDirectories = sequences.filter(function (s) {\n return s.dir;\n });\n // console.log(sequenceDirectories)\n sequenceDirectories.forEach(function (dir) {\n var dataset = datasetLoader.getDataset(module, datasetLookup, dir.name);\n dataset.isBuilt = true;\n // console.log(dir.name, dataset)\n });\n\n datasets.filter(function (s) {\n return s.dir;\n }).forEach(function (dir) {\n var dataset = datasetLoader.getDataset(module, datasetLookup, dir.name);\n dataset.hasDataset = true;\n });\n\n var checkpointDirectories = checkpoints.filter(function (s) {\n return s.dir;\n });\n checkpointDirectories.forEach(function (dir) {\n var dataset = datasetLoader.getDataset(module, datasetLookup, dir.name);\n dataset.hasCheckpoints = true;\n dataset.checkpoints = [dir];\n });\n\n // console.log(res)\n\n // flatDatasets.forEach(file => {\n // file.uuid = uuidv1()\n // fileLookup[file.uuid] = file\n // const name = file.name.split('.')[0]\n // const dataset = datasetLoader.getDataset(module, datasetLookup, name, unsortedFolder, file.date)\n // file.persisted = false\n // dataset.input.push(file.uuid)\n // })\n\n // // exp:coccokit_3-frame_sizes:8,2-n_rnn:2-dataset:coccokit_3\n // const checkpoints = results.filter(s => s.dir).map(s => {\n // const checkpoint = s.name\n // .split('-')\n // .map(s => s.split(':'))\n // .filter(b => b.length && b[1])\n // .reduce((a,b) => (a[b[0]] = b[1]) && a, {})\n // checkpoint.name = checkpoint.name || checkpoint.dataset || checkpoint.exp\n // checkpoint.date = s.date\n // checkpoint.dir = s\n // checkpoint.persisted = false\n // const dataset = datasetLoader.getDataset(module, datasetLookup, checkpoint.name, unsortedFolder, checkpoint.date)\n // const loss = lossReport[checkpoint.name]\n // if (loss) {\n // dataset.epoch = checkpoint.epoch = loss.length\n // checkpoint.training_loss = loss\n // }\n // dataset.checkpoints.push(checkpoint)\n // return checkpoint\n // })\n\n // output.map(file => {\n // file.uuid = uuidv1()\n // fileLookup[file.uuid] = file\n // const pair = file.name.split('.')[0].split('-')\n // const dataset = datasetLoader.getDataset(module, datasetLookup, pair[0], unsortedFolder, file.date)\n // file.persisted = false\n // file.epoch = parseInt(file.epoch || pair[1].replace(/^\\D+/, '')) || 0\n // dataset.epoch = Math.max(file.epoch, dataset.epoch || 0)\n // // here check if the file exists in dataset, if so just check that it's persisted\n // const found = dataset.output.some(file_id => {\n // // if (f.name === \n // if (fileLookup[file_id].name === file.name) {\n // fileLookup[file_id].persisted = true\n // return true\n // }\n // return false\n // })\n // if (! found) {\n // dataset.output.push(file.uuid)\n // }\n // })\n\n dispatch({\n type: _types2.default.dataset.load,\n data: {\n module: module,\n folderLookup: folderLookup,\n fileLookup: fileLookup,\n datasetLookup: datasetLookup,\n folders: folders, files: files,\n sequences: sequenceDirectories,\n datasets: datasets,\n checkpoints: checkpointDirectories\n }\n });\n if (id) {\n console.log('folder id', id);\n dispatch({\n type: _types2.default.dataset.set_folder,\n data: {\n folder_id: id,\n module: module\n }\n });\n }\n }).catch(function (e) {\n console.error(e);\n });\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar pix2pixModule = {\n name: 'pix2pix',\n displayName: 'Pix2Pix',\n datatype: 'video'\n};\n\nexports.default = pix2pixModule;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _types = require('../../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _dataset = require('../../dataset/dataset.reducer');\n\nvar _dataset2 = _interopRequireDefault(_dataset);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar pix2pixInitialState = {\n loading: true,\n progress: { i: 0, n: 0 },\n error: null,\n folder_id: 0,\n data: null\n};\n\nvar pix2pixReducer = function pix2pixReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : pix2pixInitialState;\n var action = arguments[1];\n\n if (action.data && action.data.module === 'pix2pix') {\n state = (0, _dataset2.default)(state, action);\n }\n\n switch (action.type) {\n default:\n return state;\n }\n};\n\nexports.default = pix2pixReducer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.train_task = exports.live_task = exports.fetch_task = undefined;\n\nvar _v = require('uuid/v1');\n\nvar _v2 = _interopRequireDefault(_v);\n\nvar _socket = require('../../socket');\n\nvar _socket2 = _interopRequireDefault(_socket);\n\nvar _types = require('../../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _actions = require('../../actions');\n\nvar _actions2 = _interopRequireDefault(_actions);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar fetch_task = exports.fetch_task = function fetch_task(url, file_id, dataset) {\n return function (dispatch) {\n if (!url) return console.log('input file inaccessible (no url)');\n var task = {\n module: 'pix2pix',\n activity: 'fetch',\n dataset: dataset,\n opt: {\n url: url,\n file_id: file_id,\n dataset: dataset\n }\n };\n return _actions2.default.queue.add_task(task);\n };\n};\n\nvar live_task = exports.live_task = function live_task(sequence, checkpoint) {\n return function (dispatch) {\n var task = {\n module: 'pix2pix',\n activity: 'live',\n dataset: sequence,\n checkpoint: checkpoint,\n opt: {\n poll_delay: 0.09\n }\n };\n console.log(task);\n console.log('add live task');\n return _actions2.default.queue.add_task(task);\n };\n};\n\nvar train_task = exports.train_task = function train_task(dataset, folder_id) {\n var epochs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n return function (dispatch) {\n var task = {\n module: 'pix2pix',\n activity: 'train',\n dataset: dataset.name,\n epoch: 0,\n epochs: epochs,\n opt: {\n folder_id: folder_id,\n load_size: 264 // switch to 256 for pix2wav\n }\n };\n console.log(task);\n return _actions2.default.queue.add_task(task);\n };\n};\n// export const log_task = (dataset) => dispatch => {\n// const task = {\n// module: 'samplernn',\n// activity: 'log',\n// dataset: dataset.name,\n// }\n// return actions.queue.add_task(task)\n// }\n// export const clear_cache_task = (dataset) => dispatch => {\n// const task = {\n// module: 'samplernn',\n// activity: 'clear_cache',\n// dataset: dataset.name,\n// }\n// return actions.queue.add_task(task)\n// }","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _common = require('../../../common/');\n\nvar _player = require('../../../live/player');\n\nvar _live = require('../../../live/live.actions');\n\nvar liveActions = _interopRequireWildcard(_live);\n\nvar _queue = require('../../../queue/queue.actions');\n\nvar queueActions = _interopRequireWildcard(_queue);\n\nvar _pix2pix = require('../pix2pix.tasks');\n\nvar pix2pixTasks = _interopRequireWildcard(_pix2pix);\n\nvar _pix2pix2 = require('../pix2pix.actions');\n\nvar pix2pixActions = _interopRequireWildcard(_pix2pix2);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar Pix2PixLive = function (_Component) {\n _inherits(Pix2PixLive, _Component);\n\n function Pix2PixLive(props) {\n _classCallCheck(this, Pix2PixLive);\n\n // if (! props.pix2pix || ! props.pix2pix.data) {\n var _this = _possibleConstructorReturn(this, (Pix2PixLive.__proto__ || Object.getPrototypeOf(Pix2PixLive)).call(this));\n\n props.actions.pix2pix.load_directories();\n // }\n props.actions.live.get_params();\n // props.actions.live.list_checkpoints('pix2pix')\n // props.actions.live.list_sequences('pix2pix')\n _this.changeCheckpoint = _this.changeCheckpoint.bind(_this);\n _this.changeEpoch = _this.changeEpoch.bind(_this);\n _this.changeSequence = _this.changeSequence.bind(_this);\n _this.seek = _this.seek.bind(_this);\n _this.togglePlaying = _this.togglePlaying.bind(_this);\n _this.toggleRecording = _this.toggleRecording.bind(_this);\n return _this;\n }\n\n _createClass(Pix2PixLive, [{\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps) {\n if (nextProps.opt.checkpoint_name && nextProps.opt.checkpoint_name !== this.props.opt.checkpoint_name) {\n this.props.actions.live.list_epochs('pix2pix', nextProps.opt.checkpoint_name);\n }\n }\n }, {\n key: 'changeCheckpoint',\n value: function changeCheckpoint(field, checkpoint_name) {\n this.props.actions.live.load_epoch(checkpoint_name, 'latest');\n }\n }, {\n key: 'changeEpoch',\n value: function changeEpoch(field, epoch_name) {\n this.props.actions.live.load_epoch(this.props.opt.checkpoint_name, epoch_name);\n }\n }, {\n key: 'changeSequence',\n value: function changeSequence(field, sequence) {\n console.log('load sequence', sequence);\n this.props.actions.live.load_sequence(sequence);\n }\n }, {\n key: 'seek',\n value: function seek(percentage) {\n var frame = Math.floor(percentage * (parseInt(this.props.frame.sequence_len) || 1) + 1);\n console.log(\"seek to frame\", percentage, frame);\n this.props.actions.live.seek(frame);\n }\n }, {\n key: 'start',\n value: function start() {\n // console.log(this.props)\n var sequence = this.props.pix2pix.data.sequences[0].name;\n var checkpoint = this.props.pix2pix.data.checkpoints[0].name;\n console.log('starting up!', sequence, checkpoint);\n this.props.actions.tasks.live_task(sequence, checkpoint);\n }\n }, {\n key: 'interrupt',\n value: function interrupt() {\n this.props.actions.queue.stop_task('gpu');\n }\n }, {\n key: 'togglePlaying',\n value: function togglePlaying() {\n if (this.props.opt.processing) {\n this.props.actions.live.pause();\n } else {\n this.props.actions.live.play();\n }\n }\n }, {\n key: 'toggleRecording',\n value: function toggleRecording() {\n if (this.props.opt.recording) {\n (0, _player.stopRecording)();\n this.props.actions.live.pause();\n } else {\n (0, _player.startRecording)();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n // console.log(this.props)\n if (this.props.pix2pix.loading) {\n return (0, _preact.h)(_common.Loading, null);\n }\n return (0, _preact.h)(\n 'div',\n { className: 'app centered' },\n (0, _preact.h)(_common.Player, { width: 424, height: 256 }),\n (0, _preact.h)(\n 'div',\n { className: 'params row' },\n (0, _preact.h)(\n 'div',\n { className: 'column' },\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Playback',\n noToggle: true\n },\n (0, _preact.h)(_common.Select, {\n name: 'send_image',\n title: 'view mode',\n options: ['a', 'b', 'sequence', 'recursive'],\n onChange: this.props.actions.live.set_param\n }),\n (0, _preact.h)(_common.Select, {\n name: 'sequence_name',\n title: 'sequence',\n options: this.props.pix2pix.data.sequences.map(function (file) {\n return file.name;\n }),\n onChange: this.changeSequence\n }),\n (0, _preact.h)(_common.Select, {\n name: 'checkpoint_name',\n title: 'checkpoint',\n options: this.props.pix2pix.data.checkpoints.map(function (file) {\n return file.name;\n }),\n onChange: this.changeCheckpoint\n }),\n (0, _preact.h)(_common.Select, {\n name: 'epoch',\n title: 'epoch',\n options: this.props.epochs,\n onChange: this.changeEpoch\n }),\n (0, _preact.h)(_common.Slider, {\n name: 'position',\n min: 0.0, max: 1.0, type: 'float',\n value: (this.props.frame.sequence_i || 0) / (this.props.frame.sequence_len || 1),\n onChange: this.seek\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'frame_delay',\n min: 0.05, max: 2.0, type: 'float'\n }),\n this.renderRestartButton(),\n (0, _preact.h)(\n _common.Button,\n {\n title: this.props.opt.savingVideo ? 'Saving video...' : this.props.opt.recording ? 'Recording (' + timeInSeconds(this.props.opt.recordFrames / 25) + ')' : 'Record video',\n onClick: this.toggleRecording\n },\n this.props.opt.savingVideo ? 'Saving' : this.props.opt.recording ? 'Recording' : 'Record'\n ),\n (0, _preact.h)(\n _common.Button,\n {\n title: 'Save frame',\n onClick: _player.saveFrame\n },\n 'Save'\n ),\n (0, _preact.h)(_common.ParamGroup, {\n title: 'Render on server',\n name: 'store_b',\n onToggle: function onToggle(value) {\n // now storing frames on server...\n }\n }),\n (0, _preact.h)(\n 'p',\n { 'class': 'last_message' },\n this.props.last_message\n )\n )\n ),\n (0, _preact.h)(\n 'div',\n { className: 'column' },\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Transition',\n name: 'transition'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'transition_period',\n min: 10, max: 5000, type: 'int'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'transition_min',\n min: 0.001, max: 0.2, type: 'float'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'transition_max',\n min: 0.1, max: 1.0, type: 'float'\n })\n ),\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Recursion',\n name: 'recursive'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'recursive_frac',\n min: 0.0, max: 0.5, type: 'float'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'recurse_roll',\n min: -64, max: 64, type: 'int'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'recurse_roll_axis',\n min: 0, max: 1, type: 'int'\n })\n ),\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Sequence',\n name: 'sequence'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'sequence_frac',\n min: 0.0, max: 0.5, type: 'float'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'process_frac',\n min: 0, max: 1, type: 'float'\n })\n )\n ),\n (0, _preact.h)(\n 'div',\n { className: 'column' },\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Clahe',\n name: 'clahe'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'clip_limit',\n min: 1.0, max: 4.0, type: 'float'\n })\n ),\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Posterize',\n name: 'posterize'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'spatial_window',\n min: 2, max: 128, type: 'int'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'color_window',\n min: 2, max: 128, type: 'int'\n })\n ),\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Blur',\n name: 'blur'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'blur_radius',\n min: 3, max: 7, type: 'odd'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'blur_sigma',\n min: 0, max: 2, type: 'float'\n })\n ),\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Canny Edge Detection',\n name: 'canny'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'canny_lo',\n min: 10, max: 200, type: 'int'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'canny_hi',\n min: 10, max: 200, type: 'int'\n })\n )\n )\n )\n );\n }\n }, {\n key: 'renderRestartButton',\n value: function renderRestartButton() {\n var _this2 = this;\n\n if (this.props.runner.gpu.status === 'IDLE') {\n return (0, _preact.h)(\n _common.Button,\n {\n title: 'GPU Idle',\n onClick: function onClick() {\n return _this2.start();\n }\n },\n 'Start'\n );\n }\n if (this.props.runner.gpu.task.module !== 'pix2pix') {\n return (0, _preact.h)(\n _common.Button,\n {\n title: 'GPU Busy',\n onClick: function onClick() {\n return _this2.interrupt();\n }\n },\n 'Interrupt'\n );\n }\n if (!this.props.opt.processing) {\n return (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(\n _common.Button,\n {\n title: 'Not processing',\n onClick: this.togglePlaying\n },\n 'Restart'\n ),\n (0, _preact.h)(\n _common.Button,\n {\n title: 'GPU Busy',\n onClick: function onClick() {\n return _this2.interrupt();\n }\n },\n 'Interrupt'\n )\n );\n }\n return (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(\n _common.Button,\n {\n title: 'Processing',\n onClick: this.togglePlaying\n },\n 'Pause'\n ),\n (0, _preact.h)(\n _common.Button,\n {\n title: 'GPU Busy',\n onClick: function onClick() {\n return _this2.interrupt();\n }\n },\n 'Interrupt'\n )\n );\n }\n }]);\n\n return Pix2PixLive;\n}(_preact.Component);\n\nfunction timeInSeconds(n) {\n return n.toFixed(1) + ' s.';\n}\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n last_message: state.live.last_message,\n opt: state.live.opt,\n frame: state.live.frame,\n checkpoints: state.live.checkpoints,\n epochs: state.live.epochs,\n sequences: state.live.sequences,\n runner: state.system.runner,\n pix2pix: state.module.pix2pix\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: {\n live: (0, _redux.bindActionCreators)(liveActions, dispatch),\n queue: (0, _redux.bindActionCreators)(queueActions, dispatch),\n pix2pix: (0, _redux.bindActionCreators)(pix2pixActions, dispatch),\n tasks: (0, _redux.bindActionCreators)(pix2pixTasks, dispatch), s: s\n }\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Pix2PixLive);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _reactRouterDom = require('react-router-dom');\n\nvar _util = require('../../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _common = require('../../../common');\n\nvar _pix2pix = require('../pix2pix.actions');\n\nvar pix2pixActions = _interopRequireWildcard(_pix2pix);\n\nvar _pix2pix2 = require('../pix2pix.module');\n\nvar _pix2pix3 = _interopRequireDefault(_pix2pix2);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction Pix2PixNew(props) {\n return (0, _preact.h)(_common.Views.New, {\n db: props.pix2pix,\n path: '/pix2pix/sequences/',\n actions: props.actions,\n module: _pix2pix3.default,\n history: props.history\n });\n}\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n pix2pix: state.module.pix2pix\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: (0, _redux.bindActionCreators)(pix2pixActions, dispatch)\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Pix2PixNew);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _util = require('../../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _pix2pix = require('../pix2pix.actions');\n\nvar pix2pixActions = _interopRequireWildcard(_pix2pix);\n\nvar _pix2pix2 = require('../pix2pix.tasks');\n\nvar pix2pixTasks = _interopRequireWildcard(_pix2pix2);\n\nvar _common = require('../../../common');\n\nvar _dataset = require('../../../dataset/dataset.form');\n\nvar _dataset2 = _interopRequireDefault(_dataset);\n\nvar _dataset3 = require('../../../dataset/dataset.new');\n\nvar _dataset4 = _interopRequireDefault(_dataset3);\n\nvar _upload = require('../../../dataset/upload.status');\n\nvar _upload2 = _interopRequireDefault(_upload);\n\nvar _dataset5 = require('../../../dataset/dataset.component');\n\nvar _dataset6 = _interopRequireDefault(_dataset5);\n\nvar _pix2pix3 = require('../pix2pix.module');\n\nvar _pix2pix4 = _interopRequireDefault(_pix2pix3);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar Pix2pixShow = function (_Component) {\n _inherits(Pix2pixShow, _Component);\n\n function Pix2pixShow(props) {\n _classCallCheck(this, Pix2pixShow);\n\n var _this = _possibleConstructorReturn(this, (Pix2pixShow.__proto__ || Object.getPrototypeOf(Pix2pixShow)).call(this, props));\n\n _this.datasetActions = _this.datasetActions.bind(_this);\n return _this;\n }\n\n _createClass(Pix2pixShow, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n var id = this.props.match.params.id || localStorage.getItem('pix2pix.last_id');\n console.log('load dataset:', id);\n var _props = this.props,\n match = _props.match,\n pix2pix = _props.pix2pix,\n actions = _props.actions;\n\n if (id === 'new') return;\n if (id) {\n if (parseInt(id)) localStorage.setItem('pix2pix.last_id', id);\n if (!pix2pix.folder || pix2pix.folder.id !== id) {\n actions.load_directories(id);\n }\n } else {\n this.props.history.push('/pix2pix/new/');\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props2 = this.props,\n pix2pix = _props2.pix2pix,\n match = _props2.match,\n history = _props2.history;\n\n var _ref = pix2pix.data || {},\n folderLookup = _ref.folderLookup;\n\n var folder = (folderLookup || {})[pix2pix.folder_id] || {};\n\n return (0, _preact.h)(\n 'div',\n { className: 'app pix2pix' },\n (0, _preact.h)(\n 'div',\n { 'class': 'heading' },\n (0, _preact.h)(\n 'div',\n { 'class': 'spaced' },\n (0, _preact.h)(\n 'h1',\n null,\n folder ? folder.name : (0, _preact.h)(_common.Loading, null)\n ),\n (0, _preact.h)(_upload2.default, null)\n )\n ),\n (0, _preact.h)(\n 'div',\n { className: 'row' },\n folder && folder.name && folder.name !== 'unsorted' && (0, _preact.h)(_dataset2.default, {\n title: 'Add Files',\n module: _pix2pix4.default,\n folder: folder,\n canUpload: true, canAddURL: true\n }),\n (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(_upload2.default, null),\n (0, _preact.h)(_common.CurrentTask, null)\n )\n ),\n (0, _preact.h)(_dataset6.default, {\n loading: pix2pix.loading,\n progress: pix2pix.progress,\n id: pix2pix.folder_id,\n module: _pix2pix4.default,\n data: pix2pix.data,\n folder: folder,\n history: history,\n onPickFile: function onPickFile(file, e) {\n e.preventDefault();\n e.stopPropagation();\n console.log('picked a file', file);\n },\n datasetActions: this.datasetActions\n })\n );\n }\n }, {\n key: 'datasetActions',\n value: function datasetActions(dataset) {\n var isFetching = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var isProcessing = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _props3 = this.props,\n pix2pix = _props3.pix2pix,\n remote = _props3.remote;\n\n var input = pix2pix.data.fileLookup[dataset.input[0]];\n if (!input) return null;\n if (input.name && input.name.match(/(gif|jpe?g|png)$/i)) return null;\n console.log(dataset);\n return (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(\n 'div',\n { 'class': 'actions' },\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.train_task(dataset, pix2pix.folder_id, 1);\n } },\n 'train'\n ),\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.train_task(dataset, pix2pix.folder_id, 5);\n } },\n '5x'\n ),\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.train_task(dataset, pix2pix.folder_id, 10);\n } },\n '10x'\n ),\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.train_task(dataset, pix2pix.folder_id, 20);\n } },\n '20x'\n ),\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.train_task(dataset, pix2pix.folder_id, 50);\n } },\n '50x'\n )\n ),\n dataset.isBuilt ? (0, _preact.h)(\n 'div',\n { 'class': 'subtext' },\n 'fetched ',\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.clear_cache_task(dataset);\n } },\n 'rm'\n )\n ) : isFetching ? (0, _preact.h)(\n 'div',\n { 'class': 'subtext' },\n 'fetching'\n ) : (0, _preact.h)(\n 'div',\n { 'class': 'subtext' },\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.fetch_task(input.url, input.id, dataset.name);\n } },\n 'fetch'\n )\n )\n );\n }\n }]);\n\n return Pix2pixShow;\n}(_preact.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n pix2pix: state.module.pix2pix\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: (0, _redux.bindActionCreators)(pix2pixActions, dispatch),\n remote: (0, _redux.bindActionCreators)(pix2pixTasks, dispatch)\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Pix2pixShow);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _reactRouterDom = require('react-router-dom');\n\nvar _actions = require('../../actions');\n\nvar _actions2 = _interopRequireDefault(_actions);\n\nvar _util = require('../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _pix2pixhd = require('./views/pix2pixhd.new');\n\nvar _pix2pixhd2 = _interopRequireDefault(_pix2pixhd);\n\nvar _pix2pixhd3 = require('./views/pix2pixhd.show');\n\nvar _pix2pixhd4 = _interopRequireDefault(_pix2pixhd3);\n\nvar _pix2pixhd5 = require('./views/pix2pixhd.results');\n\nvar _pix2pixhd6 = _interopRequireDefault(_pix2pixhd5);\n\nvar _pix2pixhd7 = require('./views/pix2pixhd.live');\n\nvar _pix2pixhd8 = _interopRequireDefault(_pix2pixhd7);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar router = function () {\n function router() {\n _classCallCheck(this, router);\n }\n\n _createClass(router, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n _actions2.default.system.changeTool('pix2pixhd');\n document.body.style.backgroundImage = 'linear-gradient(' + (_util2.default.randint(40) + 40) + 'deg, #def, #dfe)';\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps() {\n _actions2.default.system.changeTool('pix2pixhd');\n document.body.style.backgroundImage = 'linear-gradient(' + (_util2.default.randint(40) + 40) + 'deg, #def, #dfe)';\n }\n }, {\n key: 'render',\n value: function render() {\n return (0, _preact.h)(\n 'section',\n null,\n (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/pix2pixhd/new/', component: _pix2pixhd2.default }),\n (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/pix2pixhd/sequences/', component: _pix2pixhd4.default }),\n (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/pix2pixhd/sequences/:id/', component: _pix2pixhd4.default }),\n (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/pix2pixhd/results/', component: _pix2pixhd6.default }),\n (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/pix2pixhd/live/', component: _pix2pixhd8.default })\n );\n }\n }]);\n\n return router;\n}();\n\nfunction links() {\n return [{ url: '/pix2pixhd/new/', name: 'new' }, { url: '/pix2pixhd/sequences/', name: 'sequences' }, { url: '/pix2pixhd/results/', name: 'results' }, { url: '/pix2pixhd/live/', name: 'live' }];\n}\n\nexports.default = {\n name: 'pix2pixhd',\n router: router, links: links\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.load_directories = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _v = require('uuid/v1');\n\nvar _v2 = _interopRequireDefault(_v);\n\nvar _socket = require('../../socket');\n\nvar _socket2 = _interopRequireDefault(_socket);\n\nvar _types = require('../../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _dataset = require('../../dataset/dataset.loader');\n\nvar datasetLoader = _interopRequireWildcard(_dataset);\n\nvar _actions = require('../../actions');\n\nvar _actions2 = _interopRequireDefault(_actions);\n\nvar _util = require('../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _pix2pixhd = require('./pix2pixhd.module');\n\nvar _pix2pixhd2 = _interopRequireDefault(_pix2pixhd);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar load_directories = exports.load_directories = function load_directories(id) {\n return function (dispatch) {\n var module = _pix2pixhd2.default.name;\n _util2.default.allProgress([datasetLoader.load(module), _actions2.default.socket.list_directory({ module: module, dir: 'sequences' }), _actions2.default.socket.list_directory({ module: module, dir: 'datasets' }), _actions2.default.socket.list_directory({ module: module, dir: 'checkpoints' })], function (percent, i, n) {\n console.log('pix2pixhd load progress', i, n);\n dispatch({ type: _types2.default.app.load_progress, progress: { i: i, n: n } });\n }).then(function (res) {\n var _res = _slicedToArray(res, 4),\n datasetApiReport = _res[0],\n sequences = _res[1],\n datasets = _res[2],\n checkpoints = _res[3]; //, datasets, results, output, datasetUsage, lossReport] = res\n\n\n var folderLookup = datasetApiReport.folderLookup,\n fileLookup = datasetApiReport.fileLookup,\n datasetLookup = datasetApiReport.datasetLookup,\n folders = datasetApiReport.folders,\n files = datasetApiReport.files,\n unsortedFolder = datasetApiReport.unsortedFolder;\n // console.log(datasetUsage)\n\n var sequenceDirectories = sequences.filter(function (s) {\n return s.dir;\n });\n console.log(sequenceDirectories);\n sequenceDirectories.forEach(function (dir) {\n var dataset = datasetLoader.getDataset(module, datasetLookup, dir.name);\n dataset.isBuilt = true;\n console.log(dir.name, dataset);\n });\n\n datasets.filter(function (s) {\n return s.dir;\n }).forEach(function (dir) {\n var dataset = datasetLoader.getDataset(module, datasetLookup, dir.name);\n dataset.hasDataset = true;\n });\n\n var checkpointDirectories = checkpoints.filter(function (s) {\n return s.dir;\n });\n checkpointDirectories.forEach(function (dir) {\n var dataset = datasetLoader.getDataset(module, datasetLookup, dir.name);\n dataset.hasCheckpoints = true;\n dataset.checkpoints = [dir];\n });\n\n // console.log(res)\n\n // flatDatasets.forEach(file => {\n // file.uuid = uuidv1()\n // fileLookup[file.uuid] = file\n // const name = file.name.split('.')[0]\n // const dataset = datasetLoader.getDataset(module, datasetLookup, name, unsortedFolder, file.date)\n // file.persisted = false\n // dataset.input.push(file.uuid)\n // })\n\n // // exp:coccokit_3-frame_sizes:8,2-n_rnn:2-dataset:coccokit_3\n // const checkpoints = results.filter(s => s.dir).map(s => {\n // const checkpoint = s.name\n // .split('-')\n // .map(s => s.split(':'))\n // .filter(b => b.length && b[1])\n // .reduce((a,b) => (a[b[0]] = b[1]) && a, {})\n // checkpoint.name = checkpoint.name || checkpoint.dataset || checkpoint.exp\n // checkpoint.date = s.date\n // checkpoint.dir = s\n // checkpoint.persisted = false\n // const dataset = datasetLoader.getDataset(module, datasetLookup, checkpoint.name, unsortedFolder, checkpoint.date)\n // const loss = lossReport[checkpoint.name]\n // if (loss) {\n // dataset.epoch = checkpoint.epoch = loss.length\n // checkpoint.training_loss = loss\n // }\n // dataset.checkpoints.push(checkpoint)\n // return checkpoint\n // })\n\n // output.map(file => {\n // file.uuid = uuidv1()\n // fileLookup[file.uuid] = file\n // const pair = file.name.split('.')[0].split('-')\n // const dataset = datasetLoader.getDataset(module, datasetLookup, pair[0], unsortedFolder, file.date)\n // file.persisted = false\n // file.epoch = parseInt(file.epoch || pair[1].replace(/^\\D+/, '')) || 0\n // dataset.epoch = Math.max(file.epoch, dataset.epoch || 0)\n // // here check if the file exists in dataset, if so just check that it's persisted\n // const found = dataset.output.some(file_id => {\n // // if (f.name === \n // if (fileLookup[file_id].name === file.name) {\n // fileLookup[file_id].persisted = true\n // return true\n // }\n // return false\n // })\n // if (! found) {\n // dataset.output.push(file.uuid)\n // }\n // })\n\n dispatch({\n type: _types2.default.dataset.load,\n data: {\n module: module,\n folderLookup: folderLookup,\n fileLookup: fileLookup,\n datasetLookup: datasetLookup,\n folders: folders, files: files,\n sequences: sequenceDirectories,\n datasets: datasets,\n checkpoints: checkpointDirectories\n }\n });\n if (id) {\n console.log('folder id', id);\n dispatch({\n type: _types2.default.dataset.set_folder,\n data: {\n folder_id: id,\n module: module\n }\n });\n }\n }).catch(function (e) {\n console.error(e);\n });\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar pix2pixhdModule = {\n name: 'pix2pixhd',\n displayName: 'Pix2PixHD',\n datatype: 'video'\n};\n\nexports.default = pix2pixhdModule;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _types = require('../../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _dataset = require('../../dataset/dataset.reducer');\n\nvar _dataset2 = _interopRequireDefault(_dataset);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar pix2pixhdInitialState = {\n loading: true,\n progress: { i: 0, n: 0 },\n error: null,\n folder_id: 0,\n data: null\n};\n\nvar pix2pixhdReducer = function pix2pixhdReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : pix2pixhdInitialState;\n var action = arguments[1];\n\n if (action.data && action.data.module === 'pix2pixhd') {\n state = (0, _dataset2.default)(state, action);\n }\n\n switch (action.type) {\n default:\n return state;\n }\n};\n\nexports.default = pix2pixhdReducer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.live_task = exports.train_task = exports.fetch_task = undefined;\n\nvar _v = require('uuid/v1');\n\nvar _v2 = _interopRequireDefault(_v);\n\nvar _socket = require('../../socket');\n\nvar _socket2 = _interopRequireDefault(_socket);\n\nvar _types = require('../../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _actions = require('../../actions');\n\nvar _actions2 = _interopRequireDefault(_actions);\n\nvar _pix2pixhd = require('./pix2pixhd.module');\n\nvar _pix2pixhd2 = _interopRequireDefault(_pix2pixhd);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar fetch_task = exports.fetch_task = function fetch_task(url, file_id, dataset) {\n return function (dispatch) {\n if (!url) return console.log('input file inaccessible (no url)');\n var task = {\n module: _pix2pixhd2.default.name,\n activity: 'fetch',\n dataset: dataset,\n opt: {\n url: url,\n file_id: file_id,\n dataset: dataset\n }\n };\n return _actions2.default.queue.add_task(task);\n };\n};\n\nvar train_task = exports.train_task = function train_task(dataset, folder_id) {\n var epochs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n return function (dispatch) {\n var task = {\n module: _pix2pixhd2.default.name,\n activity: 'train',\n dataset: dataset.name,\n epoch: 0,\n epochs: epochs,\n opt: {\n folder_id: folder_id,\n load_size: 264 // switch to 256 for pix2wav\n }\n };\n console.log(task);\n return _actions2.default.queue.add_task(task);\n };\n};\n\nvar live_task = exports.live_task = function live_task(sequence, checkpoint) {\n return function (dispatch) {\n var task = {\n module: _pix2pixhd2.default.name,\n activity: 'live',\n dataset: sequence,\n checkpoint: checkpoint,\n opt: {\n poll_delay: 0.09\n }\n };\n console.log(task);\n console.log('add live task');\n return _actions2.default.queue.add_task(task);\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _common = require('../../../common/');\n\nvar _player = require('../../../live/player');\n\nvar _live = require('../../../live/live.actions');\n\nvar liveActions = _interopRequireWildcard(_live);\n\nvar _queue = require('../../../queue/queue.actions');\n\nvar queueActions = _interopRequireWildcard(_queue);\n\nvar _pix2pixhd = require('../pix2pixhd.tasks');\n\nvar pix2pixhdTasks = _interopRequireWildcard(_pix2pixhd);\n\nvar _pix2pixhd2 = require('../pix2pixhd.actions');\n\nvar pix2pixhdActions = _interopRequireWildcard(_pix2pixhd2);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar Pix2PixHDLive = function (_Component) {\n _inherits(Pix2PixHDLive, _Component);\n\n function Pix2PixHDLive(props) {\n _classCallCheck(this, Pix2PixHDLive);\n\n // if (! props.pix2pixhd || ! props.pix2pixhd.data) {\n var _this = _possibleConstructorReturn(this, (Pix2PixHDLive.__proto__ || Object.getPrototypeOf(Pix2PixHDLive)).call(this));\n\n props.actions.pix2pixhd.load_directories();\n // }\n props.actions.live.get_params();\n // props.actions.live.list_checkpoints('pix2pixhd')\n // props.actions.live.list_sequences('pix2pixhd')\n _this.changeCheckpoint = _this.changeCheckpoint.bind(_this);\n _this.changeEpoch = _this.changeEpoch.bind(_this);\n _this.changeSequence = _this.changeSequence.bind(_this);\n _this.seek = _this.seek.bind(_this);\n _this.togglePlaying = _this.togglePlaying.bind(_this);\n _this.toggleRecording = _this.toggleRecording.bind(_this);\n return _this;\n }\n\n _createClass(Pix2PixHDLive, [{\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps) {\n if (nextProps.opt.checkpoint_name && nextProps.opt.checkpoint_name !== this.props.opt.checkpoint_name) {\n this.props.actions.live.list_epochs('pix2pixhd', nextProps.opt.checkpoint_name);\n }\n }\n }, {\n key: 'changeCheckpoint',\n value: function changeCheckpoint(field, checkpoint_name) {\n this.props.actions.live.load_epoch(checkpoint_name, 'latest');\n }\n }, {\n key: 'changeEpoch',\n value: function changeEpoch(field, epoch_name) {\n this.props.actions.live.load_epoch(this.props.opt.checkpoint_name, epoch_name);\n }\n }, {\n key: 'changeSequence',\n value: function changeSequence(field, sequence) {\n console.log('load sequence', sequence);\n this.props.actions.live.load_sequence(sequence);\n }\n }, {\n key: 'seek',\n value: function seek(percentage) {\n var frame = Math.floor(percentage * (parseInt(this.props.frame.sequence_len) || 1) + 1);\n console.log(\"seek to frame\", percentage, frame);\n this.props.actions.live.seek(frame);\n }\n }, {\n key: 'start',\n value: function start() {\n // console.log(this.props)\n var sequence = this.props.pix2pixhd.data.sequences[0].name;\n var checkpoint = this.props.pix2pixhd.data.checkpoints[0].name;\n console.log('starting up!', sequence, checkpoint);\n this.props.actions.tasks.live_task(sequence, checkpoint);\n }\n }, {\n key: 'interrupt',\n value: function interrupt() {\n this.props.actions.queue.stop_task('gpu');\n }\n }, {\n key: 'togglePlaying',\n value: function togglePlaying() {\n if (this.props.opt.processing) {\n this.props.actions.live.pause();\n } else {\n this.props.actions.live.play();\n }\n }\n }, {\n key: 'toggleRecording',\n value: function toggleRecording() {\n if (this.props.opt.recording) {\n (0, _player.stopRecording)();\n this.props.actions.live.pause();\n } else {\n (0, _player.startRecording)();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n // console.log(this.props)\n if (this.props.pix2pixhd.loading) {\n return (0, _preact.h)(_common.Loading, null);\n }\n return (0, _preact.h)(\n 'div',\n { className: 'app centered' },\n (0, _preact.h)(_common.Player, { width: 424, height: 256 }),\n (0, _preact.h)(\n 'div',\n { className: 'params row' },\n (0, _preact.h)(\n 'div',\n { className: 'column' },\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Playback',\n noToggle: true\n },\n (0, _preact.h)(_common.Select, {\n name: 'send_image',\n title: 'view mode',\n options: ['a', 'b', 'sequence', 'recursive'],\n onChange: this.props.actions.live.set_param\n }),\n (0, _preact.h)(_common.Select, {\n name: 'sequence_name',\n title: 'sequence',\n options: this.props.pix2pixhd.data.sequences.map(function (file) {\n return file.name;\n }),\n onChange: this.changeSequence\n }),\n (0, _preact.h)(_common.Select, {\n name: 'checkpoint_name',\n title: 'checkpoint',\n options: this.props.pix2pixhd.data.checkpoints.map(function (file) {\n return file.name;\n }),\n onChange: this.changeCheckpoint\n }),\n (0, _preact.h)(_common.Select, {\n name: 'epoch',\n title: 'epoch',\n options: this.props.epochs,\n onChange: this.changeEpoch\n }),\n (0, _preact.h)(_common.Slider, {\n name: 'position',\n min: 0.0, max: 1.0, type: 'float',\n value: (this.props.frame.sequence_i || 0) / (this.props.frame.sequence_len || 1),\n onChange: this.seek\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'frame_delay',\n min: 0.05, max: 2.0, type: 'float'\n }),\n this.renderRestartButton(),\n (0, _preact.h)(\n _common.Button,\n {\n title: this.props.opt.savingVideo ? 'Saving video...' : this.props.opt.recording ? 'Recording (' + timeInSeconds(this.props.opt.recordFrames / 25) + ')' : 'Record video',\n onClick: this.toggleRecording\n },\n this.props.opt.savingVideo ? 'Saving' : this.props.opt.recording ? 'Recording' : 'Record'\n ),\n (0, _preact.h)(\n _common.Button,\n {\n title: 'Save frame',\n onClick: _player.saveFrame\n },\n 'Save'\n ),\n (0, _preact.h)(_common.ParamGroup, {\n title: 'Render on server',\n name: 'store_b',\n onToggle: function onToggle(value) {\n // now storing frames on server...\n }\n }),\n (0, _preact.h)(\n 'p',\n { 'class': 'last_message' },\n this.props.last_message\n )\n )\n ),\n (0, _preact.h)(\n 'div',\n { className: 'column' },\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Transition',\n name: 'transition'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'transition_period',\n min: 10, max: 5000, type: 'int'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'transition_min',\n min: 0.001, max: 0.2, type: 'float'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'transition_max',\n min: 0.1, max: 1.0, type: 'float'\n })\n ),\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Recursion',\n name: 'recursive'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'recursive_frac',\n min: 0.0, max: 0.5, type: 'float'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'recurse_roll',\n min: -64, max: 64, type: 'int'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'recurse_roll_axis',\n min: 0, max: 1, type: 'int'\n })\n ),\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Sequence',\n name: 'sequence'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'sequence_frac',\n min: 0.0, max: 0.5, type: 'float'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'process_frac',\n min: 0, max: 1, type: 'float'\n })\n )\n ),\n (0, _preact.h)(\n 'div',\n { className: 'column' },\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Clahe',\n name: 'clahe'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'clip_limit',\n min: 1.0, max: 4.0, type: 'float'\n })\n ),\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Posterize',\n name: 'posterize'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'spatial_window',\n min: 2, max: 128, type: 'int'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'color_window',\n min: 2, max: 128, type: 'int'\n })\n ),\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Blur',\n name: 'blur'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'blur_radius',\n min: 3, max: 7, type: 'odd'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'blur_sigma',\n min: 0, max: 2, type: 'float'\n })\n ),\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Canny Edge Detection',\n name: 'canny'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'canny_lo',\n min: 10, max: 200, type: 'int'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'canny_hi',\n min: 10, max: 200, type: 'int'\n })\n )\n )\n )\n );\n }\n }, {\n key: 'renderRestartButton',\n value: function renderRestartButton() {\n var _this2 = this;\n\n if (this.props.runner.gpu.status === 'IDLE') {\n return (0, _preact.h)(\n _common.Button,\n {\n title: 'GPU Idle',\n onClick: function onClick() {\n return _this2.start();\n }\n },\n 'Start'\n );\n }\n if (this.props.runner.gpu.task.module !== 'pix2pixhd') {\n return (0, _preact.h)(\n _common.Button,\n {\n title: 'GPU Busy',\n onClick: function onClick() {\n return _this2.interrupt();\n }\n },\n 'Interrupt'\n );\n }\n if (!this.props.opt.processing) {\n return (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(\n _common.Button,\n {\n title: 'Not processing',\n onClick: this.togglePlaying\n },\n 'Restart'\n ),\n (0, _preact.h)(\n _common.Button,\n {\n title: 'GPU Busy',\n onClick: function onClick() {\n return _this2.interrupt();\n }\n },\n 'Interrupt'\n )\n );\n }\n return (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(\n _common.Button,\n {\n title: 'Processing',\n onClick: this.togglePlaying\n },\n 'Pause'\n ),\n (0, _preact.h)(\n _common.Button,\n {\n title: 'GPU Busy',\n onClick: function onClick() {\n return _this2.interrupt();\n }\n },\n 'Interrupt'\n )\n );\n }\n }]);\n\n return Pix2PixHDLive;\n}(_preact.Component);\n\nfunction timeInSeconds(n) {\n return n.toFixed(1) + ' s.';\n}\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n last_message: state.live.last_message,\n opt: state.live.opt,\n frame: state.live.frame,\n checkpoints: state.live.checkpoints,\n epochs: state.live.epochs,\n sequences: state.live.sequences,\n runner: state.system.runner,\n pix2pixhd: state.module.pix2pixhd\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: {\n live: (0, _redux.bindActionCreators)(liveActions, dispatch),\n queue: (0, _redux.bindActionCreators)(queueActions, dispatch),\n pix2pixhd: (0, _redux.bindActionCreators)(pix2pixhdActions, dispatch),\n tasks: (0, _redux.bindActionCreators)(pix2pixhdTasks, dispatch), s: s\n }\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Pix2PixHDLive);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _reactRouterDom = require('react-router-dom');\n\nvar _util = require('../../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _common = require('../../../common');\n\nvar _pix2pixhd = require('../pix2pixhd.actions');\n\nvar pix2pixhdActions = _interopRequireWildcard(_pix2pixhd);\n\nvar _pix2pixhd2 = require('../pix2pixhd.module');\n\nvar _pix2pixhd3 = _interopRequireDefault(_pix2pixhd2);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction Pix2PixHDNew(props) {\n return (0, _preact.h)(_common.Views.New, {\n db: props.pix2pixhd,\n path: '/pix2pixhd/sequences/',\n actions: props.actions,\n module: _pix2pixhd3.default,\n history: props.history\n });\n}\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n pix2pixhd: state.module.pix2pixhd\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: (0, _redux.bindActionCreators)(pix2pixhdActions, dispatch)\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Pix2PixHDNew);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRouterDom = require('react-router-dom');\n\nvar _reactRedux = require('react-redux');\n\nvar _util = require('../../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _pix2pixhd = require('../pix2pixhd.actions');\n\nvar pix2pixhdActions = _interopRequireWildcard(_pix2pixhd);\n\nvar _pix2pixhd2 = require('../pix2pixhd.tasks');\n\nvar pix2pixhdTasks = _interopRequireWildcard(_pix2pixhd2);\n\nvar _loading = require('../../../common/loading.component');\n\nvar _loading2 = _interopRequireDefault(_loading);\n\nvar _fileList = require('../../../common/fileList.component');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar Pix2pixHDResults = function (_Component) {\n _inherits(Pix2pixHDResults, _Component);\n\n function Pix2pixHDResults(props) {\n _classCallCheck(this, Pix2pixHDResults);\n\n return _possibleConstructorReturn(this, (Pix2pixHDResults.__proto__ || Object.getPrototypeOf(Pix2pixHDResults)).call(this));\n // if (!props.pix2pixhd.data) props.actions.load_directories()\n }\n\n _createClass(Pix2pixHDResults, [{\n key: 'render',\n value: function render() {\n if (this.props.pix2pixhd.loading) return (0, _preact.h)(_loading2.default, { progress: this.props.pix2pixhd.progress });\n // const { folderLookup, fileLookup, datasetLookup } = this.props.samplernn.data\n\n // console.log(bestRenders.map(r => r.epoch))\n // const path = folder.name === 'unsorted'\n // ? \"/samplernn/import/\"\n // : \"/samplernn/datasets/\" + folder.id + \"/\"\n // return (\n // \n // {folder.name}\n // {\n // e.preventDefault()\n // e.stopPropagation()\n // console.log('picked a file', file)\n // this.handlePick(file)\n // }}\n // />\n // \n // )\n\n return (0, _preact.h)(\n 'div',\n { className: 'app pix2pixhd' },\n (0, _preact.h)(\n 'div',\n { className: 'heading row middle' },\n (0, _preact.h)(\n 'h1',\n null,\n 'Pix2PixHD Results'\n )\n ),\n (0, _preact.h)('div', { 'class': 'rows params renders' })\n );\n }\n }, {\n key: 'handlePick',\n value: function handlePick(file) {\n // this.props.audioPlayer.play(file)\n }\n }]);\n\n return Pix2pixHDResults;\n}(_preact.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n pix2pixhd: state.module.pix2pixhd\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: (0, _redux.bindActionCreators)(pix2pixhdActions, dispatch),\n remote: (0, _redux.bindActionCreators)(pix2pixhdTasks, dispatch)\n // audioPlayer: bindActionCreators(audioPlayerActions, dispatch),\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Pix2pixHDResults);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _util = require('../../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _pix2pixhd = require('../pix2pixhd.actions');\n\nvar pix2pixhdActions = _interopRequireWildcard(_pix2pixhd);\n\nvar _pix2pixhd2 = require('../pix2pixhd.tasks');\n\nvar pix2pixhdTasks = _interopRequireWildcard(_pix2pixhd2);\n\nvar _common = require('../../../common');\n\nvar _dataset = require('../../../dataset/dataset.form');\n\nvar _dataset2 = _interopRequireDefault(_dataset);\n\nvar _dataset3 = require('../../../dataset/dataset.new');\n\nvar _dataset4 = _interopRequireDefault(_dataset3);\n\nvar _upload = require('../../../dataset/upload.status');\n\nvar _upload2 = _interopRequireDefault(_upload);\n\nvar _dataset5 = require('../../../dataset/dataset.component');\n\nvar _dataset6 = _interopRequireDefault(_dataset5);\n\nvar _pix2pixhd3 = require('../pix2pixhd.module');\n\nvar _pix2pixhd4 = _interopRequireDefault(_pix2pixhd3);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar Pix2PixHDShow = function (_Component) {\n _inherits(Pix2PixHDShow, _Component);\n\n function Pix2PixHDShow(props) {\n _classCallCheck(this, Pix2PixHDShow);\n\n var _this = _possibleConstructorReturn(this, (Pix2PixHDShow.__proto__ || Object.getPrototypeOf(Pix2PixHDShow)).call(this, props));\n\n _this.datasetActions = _this.datasetActions.bind(_this);\n return _this;\n }\n\n _createClass(Pix2PixHDShow, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n var id = this.props.match.params.id || localStorage.getItem('pix2pixhd.last_id');\n console.log('load dataset:', id);\n var _props = this.props,\n match = _props.match,\n pix2pixhd = _props.pix2pixhd,\n actions = _props.actions;\n\n if (id === 'new') return;\n if (id) {\n if (parseInt(id)) localStorage.setItem('pix2pixhd.last_id', id);\n if (!pix2pixhd.folder || pix2pixhd.folder.id !== id) {\n actions.load_directories(id);\n }\n } else {\n this.props.history.push('/pix2pixhd/new/');\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props2 = this.props,\n pix2pixhd = _props2.pix2pixhd,\n match = _props2.match,\n history = _props2.history;\n\n var _ref = pix2pixhd.data || {},\n folderLookup = _ref.folderLookup;\n\n var folder = (folderLookup || {})[pix2pixhd.folder_id] || {};\n\n return (0, _preact.h)(\n 'div',\n { className: 'app pix2pixhd' },\n (0, _preact.h)(\n 'div',\n { 'class': 'heading' },\n (0, _preact.h)(\n 'div',\n { 'class': 'spaced' },\n (0, _preact.h)(\n 'h1',\n null,\n folder ? folder.name : (0, _preact.h)(_common.Loading, null)\n ),\n (0, _preact.h)(_upload2.default, null)\n )\n ),\n (0, _preact.h)(\n 'div',\n { className: 'row' },\n folder && folder.name && folder.name !== 'unsorted' && (0, _preact.h)(_dataset2.default, {\n title: 'Add Files',\n module: _pix2pixhd4.default,\n folder: folder,\n canUpload: true, canAddURL: true\n }),\n (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(_upload2.default, null),\n (0, _preact.h)(_common.CurrentTask, null)\n )\n ),\n (0, _preact.h)(_dataset6.default, {\n loading: pix2pixhd.loading,\n progress: pix2pixhd.progress,\n id: pix2pixhd.folder_id,\n module: _pix2pixhd4.default,\n data: pix2pixhd.data,\n folder: folder,\n history: history,\n onPickFile: function onPickFile(file, e) {\n e.preventDefault();\n e.stopPropagation();\n console.log('picked a file', file);\n },\n datasetActions: this.datasetActions\n })\n );\n }\n }, {\n key: 'datasetActions',\n value: function datasetActions(dataset) {\n var isFetching = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var isProcessing = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _props3 = this.props,\n pix2pixhd = _props3.pix2pixhd,\n remote = _props3.remote;\n\n var input = pix2pixhd.data.fileLookup[dataset.input[0]];\n if (!input) return null;\n if (input.name && input.name.match(/(gif|jpe?g|png)$/i)) return null;\n console.log(dataset);\n return (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(\n 'div',\n { 'class': 'actions' },\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.train_task(dataset, pix2pixhd.folder_id, 1);\n } },\n 'train'\n ),\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.train_task(dataset, pix2pixhd.folder_id, 5);\n } },\n '5x'\n ),\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.train_task(dataset, pix2pixhd.folder_id, 10);\n } },\n '10x'\n ),\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.train_task(dataset, pix2pixhd.folder_id, 20);\n } },\n '20x'\n ),\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.train_task(dataset, pix2pixhd.folder_id, 50);\n } },\n '50x'\n )\n ),\n dataset.isBuilt ? (0, _preact.h)(\n 'div',\n { 'class': 'subtext' },\n 'fetched ',\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.clear_cache_task(dataset);\n } },\n 'rm'\n )\n ) : isFetching ? (0, _preact.h)(\n 'div',\n { 'class': 'subtext' },\n 'fetching'\n ) : (0, _preact.h)(\n 'div',\n { 'class': 'subtext' },\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.fetch_task(input.url, input.id, dataset.name);\n } },\n 'fetch'\n )\n )\n );\n }\n }]);\n\n return Pix2PixHDShow;\n}(_preact.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n pix2pixhd: state.module.pix2pixhd\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: (0, _redux.bindActionCreators)(pix2pixhdActions, dispatch),\n remote: (0, _redux.bindActionCreators)(pix2pixhdTasks, dispatch)\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Pix2PixHDShow);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _reactRouterDom = require('react-router-dom');\n\nvar _actions = require('../../actions');\n\nvar _actions2 = _interopRequireDefault(_actions);\n\nvar _util = require('../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _pix2wav = require('./views/pix2wav.new');\n\nvar _pix2wav2 = _interopRequireDefault(_pix2wav);\n\nvar _pix2wav3 = require('./views/pix2wav.show');\n\nvar _pix2wav4 = _interopRequireDefault(_pix2wav3);\n\nvar _pix2wav5 = require('./views/pix2wav.live');\n\nvar _pix2wav6 = _interopRequireDefault(_pix2wav5);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar router = function () {\n function router() {\n _classCallCheck(this, router);\n }\n\n _createClass(router, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n _actions2.default.system.changeTool('pix2wav');\n document.body.style.backgroundImage = 'linear-gradient(' + (_util2.default.randint(40) + 40) + 'deg, #bdf, #def)';\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps() {\n _actions2.default.system.changeTool('pix2wav');\n document.body.style.backgroundImage = 'linear-gradient(' + (_util2.default.randint(40) + 40) + 'deg, #bdf, #def)';\n }\n }, {\n key: 'render',\n value: function render() {\n return (0, _preact.h)(\n 'section',\n null,\n (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/pix2wav/new/', component: _pix2wav2.default }),\n (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/pix2wav/datasets/', component: _pix2wav4.default }),\n (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/pix2wav/datasets/:id/', component: _pix2wav4.default }),\n (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/pix2wav/live/', component: _pix2wav6.default })\n );\n }\n }]);\n\n return router;\n}();\n\nfunction links() {\n return [{ url: '/pix2wav/new/', name: 'new' }, { url: '/pix2wav/datasets/', name: 'datasets' }, { url: '/pix2wav/live/', name: 'live' }];\n}\n\nexports.default = {\n name: 'pix2wav',\n router: router, links: links\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.load_directories = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _v = require('uuid/v1');\n\nvar _v2 = _interopRequireDefault(_v);\n\nvar _socket = require('../../socket');\n\nvar _socket2 = _interopRequireDefault(_socket);\n\nvar _types = require('../../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _dataset = require('../../dataset/dataset.loader');\n\nvar datasetLoader = _interopRequireWildcard(_dataset);\n\nvar _actions = require('../../actions');\n\nvar _actions2 = _interopRequireDefault(_actions);\n\nvar _util = require('../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _pix2wav = require('./pix2wav.module');\n\nvar _pix2wav2 = _interopRequireDefault(_pix2wav);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar load_directories = exports.load_directories = function load_directories(id) {\n return function (dispatch) {\n var module = _pix2wav2.default.name;\n _util2.default.allProgress([datasetLoader.load(module), _actions2.default.socket.list_directory({ module: 'pix2pix', dir: 'sequences/pix2wav/' }), _actions2.default.socket.list_directory({ module: 'pix2pix', dir: 'datasets/pix2wav/' }), _actions2.default.socket.list_directory({ module: 'pix2pix', dir: 'checkpoints/pix2wav/' }), _actions2.default.socket.list_directory({ module: 'pix2pix', dir: 'checkpoints/pix2pix/' })], function (percent, i, n) {\n console.log('progress', i, n);\n dispatch({ type: _types2.default.app.load_progress, progress: { i: i, n: n } });\n }).then(function (res) {\n var _res = _slicedToArray(res, 5),\n datasetApiReport = _res[0],\n sequences = _res[1],\n datasets = _res[2],\n checkpoints = _res[3],\n pix2pixCheckpoints = _res[4];\n\n var folderLookup = datasetApiReport.folderLookup,\n fileLookup = datasetApiReport.fileLookup,\n datasetLookup = datasetApiReport.datasetLookup,\n folders = datasetApiReport.folders,\n files = datasetApiReport.files,\n unsortedFolder = datasetApiReport.unsortedFolder;\n\n\n var sequenceDirectories = sequences.filter(function (s) {\n return s.dir;\n });\n sequenceDirectories.forEach(function (dir) {\n var dataset = datasetLoader.getDataset(module, datasetLookup, dir.name);\n dataset.isBuilt = true;\n });\n\n datasets.filter(function (s) {\n return s.dir;\n }).forEach(function (dir) {\n var dataset = datasetLoader.getDataset(module, datasetLookup, dir.name);\n dataset.hasDataset = true;\n });\n\n var checkpointDirectories = checkpoints.filter(function (s) {\n return s.dir;\n });\n checkpointDirectories.forEach(function (dir) {\n var dataset = datasetLoader.getDataset(module, datasetLookup, dir.name);\n dataset.hasCheckpoints = true;\n dir.module = 'pix2wav';\n });\n\n var pix2pixCheckpointDirectories = pix2pixCheckpoints.filter(function (s) {\n return s.dir;\n });\n pix2pixCheckpointDirectories.forEach(function (dir) {\n var dataset = datasetLoader.getDataset(module, datasetLookup, dir.name);\n dataset.hasCheckpoints = true;\n dir.module = 'pix2pix';\n });\n\n console.log(res);\n console.log(checkpointDirectories);\n console.log(pix2pixCheckpointDirectories);\n\n dispatch({\n type: _types2.default.dataset.load,\n data: {\n module: module,\n folderLookup: folderLookup,\n fileLookup: fileLookup,\n datasetLookup: datasetLookup,\n folders: folders, files: files,\n sequences: sequenceDirectories,\n datasets: datasets,\n checkpoints: checkpointDirectories.concat(pix2pixCheckpointDirectories)\n }\n });\n\n if (id) {\n console.log('folder id', id);\n dispatch({\n type: _types2.default.dataset.set_folder,\n data: {\n folder_id: id,\n module: module\n }\n });\n }\n }).catch(function (e) {\n console.error(e);\n });\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar pix2wavModule = {\n name: 'pix2wav',\n displayName: 'Pix2Wav',\n datatype: 'spectrogram'\n};\n\nexports.default = pix2wavModule;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; };\n\nvar _types = require('../../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _dataset = require('../../dataset/dataset.reducer');\n\nvar _dataset2 = _interopRequireDefault(_dataset);\n\nvar _util = require('../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar pix2wavInitialState = {\n loading: true,\n progress: { i: 0, n: 0 },\n status: '',\n error: null,\n folder_id: 0,\n data: null\n};\n\nvar pix2wavReducer = function pix2wavReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : pix2wavInitialState;\n var action = arguments[1];\n\n if (action.data && action.data.module === 'pix2wav') {\n state = (0, _dataset2.default)(state, action);\n }\n\n switch (action.type) {\n case _types2.default.wav2pix.load:\n return _extends({}, state, {\n status: 'Loaded buffer'\n });\n case _types2.default.wav2pix.progress:\n return _extends({}, state, {\n status: 'Rendering frame ' + action.count\n });\n case _types2.default.wav2pix.finish:\n return _extends({}, state, {\n status: action.message || 'Render complete'\n });\n case _types2.default.wav2pix.zip:\n return _extends({}, state, {\n status: 'Built zip file ' + _util2.default.hush_size(state.size)[1]\n });\n case _types2.default.wav2pix.uploading:\n return _extends({}, state, {\n status: 'Uploading zip file'\n });\n default:\n return state;\n }\n};\n\nexports.default = pix2wavReducer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.live_task = undefined;\n\nvar _v = require('uuid/v1');\n\nvar _v2 = _interopRequireDefault(_v);\n\nvar _socket = require('../../socket');\n\nvar _socket2 = _interopRequireDefault(_socket);\n\nvar _types = require('../../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _actions = require('../../actions');\n\nvar _actions2 = _interopRequireDefault(_actions);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar live_task = exports.live_task = function live_task(sequence, checkpoint) {\n return function (dispatch) {\n var task = {\n module: 'pix2wav',\n activity: 'live',\n dataset: sequence,\n checkpoint: checkpoint,\n opt: {\n poll_delay: 0.2\n }\n };\n console.log(task);\n console.log('add live task');\n return _actions2.default.queue.add_task(task);\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _common = require('../../../common/');\n\nvar _player = require('../../../live/player');\n\nvar playerActions = _interopRequireWildcard(_player);\n\nvar _live = require('../../../live/live.actions');\n\nvar liveActions = _interopRequireWildcard(_live);\n\nvar _queue = require('../../../queue/queue.actions');\n\nvar queueActions = _interopRequireWildcard(_queue);\n\nvar _pix2wav = require('../pix2wav.tasks');\n\nvar pix2wavTasks = _interopRequireWildcard(_pix2wav);\n\nvar _pix2wav2 = require('../pix2wav.actions');\n\nvar pix2wavActions = _interopRequireWildcard(_pix2wav2);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar Pix2WavLive = function (_Component) {\n _inherits(Pix2WavLive, _Component);\n\n function Pix2WavLive(props) {\n _classCallCheck(this, Pix2WavLive);\n\n var _this = _possibleConstructorReturn(this, (Pix2WavLive.__proto__ || Object.getPrototypeOf(Pix2WavLive)).call(this));\n\n props.actions.pix2wav.load_directories();\n props.actions.live.get_params();\n _this.changeCheckpoint = _this.changeCheckpoint.bind(_this);\n _this.changeEpoch = _this.changeEpoch.bind(_this);\n _this.changeSequence = _this.changeSequence.bind(_this);\n _this.seek = _this.seek.bind(_this);\n _this.togglePlaying = _this.togglePlaying.bind(_this);\n _this.toggleRecording = _this.toggleRecording.bind(_this);\n return _this;\n }\n\n _createClass(Pix2WavLive, [{\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps) {\n if (nextProps.opt.checkpoint_name && nextProps.opt.checkpoint_name !== this.props.opt.checkpoint_name) {\n console.log('fetch checkpoint', nextProps.opt.checkpoint_name);\n this.props.actions.live.list_epochs('pix2wav', nextProps.opt.checkpoint_name);\n }\n }\n }, {\n key: 'changeCheckpoint',\n value: function changeCheckpoint(field, checkpoint_name) {\n this.props.actions.live.load_epoch(checkpoint_name, 'latest');\n }\n }, {\n key: 'changeEpoch',\n value: function changeEpoch(field, epoch_name) {\n this.props.actions.live.load_epoch(this.props.opt.checkpoint_name, epoch_name);\n }\n }, {\n key: 'changeSequence',\n value: function changeSequence(field, sequence) {\n console.log('got sequence', sequence);\n this.props.actions.live.load_sequence(sequence);\n }\n }, {\n key: 'seek',\n value: function seek(percentage) {\n var frame = Math.floor(percentage * (parseInt(this.props.frame.sequence_len) || 1) + 1);\n this.props.actions.live.seek(frame);\n }\n }, {\n key: 'start',\n value: function start() {\n // console.log(this.props)\n console.log(this.props.pix2wav.data);\n var sequence = this.props.pix2wav.data.sequences[0].name || '';\n var checkpoint = this.props.pix2wav.data.checkpoints[0].name || '';\n console.log('starting up!', sequence, checkpoint);\n this.props.actions.tasks.live_task(sequence, checkpoint);\n }\n }, {\n key: 'interrupt',\n value: function interrupt() {\n this.props.actions.queue.stop_task('gpu');\n }\n }, {\n key: 'exit',\n value: function exit() {\n this.props.actions.queue.stop_task('gpu', { sigkill: true });\n }\n }, {\n key: 'togglePlaying',\n value: function togglePlaying() {\n if (this.props.opt.processing) {\n this.props.actions.live.pause();\n } else {\n this.props.actions.live.play();\n }\n }\n }, {\n key: 'toggleRecording',\n value: function toggleRecording() {\n if (this.props.opt.recording) {\n (0, _player.stopRecording)();\n this.props.actions.live.pause();\n } else {\n (0, _player.startRecording)();\n }\n }\n }, {\n key: 'render',\n value: function render() {\n // console.log(this.props)\n if (this.props.pix2wav.loading) {\n return (0, _preact.h)(_common.Loading, null);\n }\n // console.log('sequence', this.props.opt)\n return (0, _preact.h)(\n 'div',\n { className: 'app pix2wav centered' },\n (0, _preact.h)(\n 'div',\n { className: 'row' },\n (0, _preact.h)(\n 'div',\n { className: 'column' },\n (0, _preact.h)(_common.Player, { width: 256, height: 256 })\n ),\n (0, _preact.h)(\n 'div',\n { className: 'params column audioParams' },\n (0, _preact.h)(\n _common.Group,\n { title: 'Audio playback' },\n (0, _preact.h)(\n _common.Button,\n { title: 'Start playback',\n onClick: function onClick() {\n return playerActions.startSynthesizing();\n }\n },\n 'Start'\n ),\n (0, _preact.h)(\n _common.Button,\n { title: 'Stop playback',\n onClick: function onClick() {\n return playerActions.stopSynthesizing();\n }\n },\n 'Stop'\n )\n )\n )\n ),\n (0, _preact.h)(\n 'div',\n { className: 'params row' },\n (0, _preact.h)(\n 'div',\n { className: 'column' },\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Playback',\n noToggle: true\n },\n (0, _preact.h)(_common.Select, {\n name: 'send_image',\n title: 'view mode',\n options: ['a', 'b', 'sequence', 'recursive'],\n onChange: this.props.actions.live.set_param\n }),\n (0, _preact.h)(_common.Select, {\n name: 'sequence_name',\n title: 'sequence',\n options: this.props.pix2wav.data.sequences,\n onChange: this.changeSequence\n }),\n (0, _preact.h)(_common.Select, {\n name: 'output_format',\n title: 'format',\n options: ['JPEG', 'PNG']\n }),\n (0, _preact.h)(_common.Select, {\n name: 'checkpoint_name',\n title: 'checkpoint',\n options: this.props.pix2wav.data.checkpoints,\n onChange: this.changeCheckpoint\n }),\n (0, _preact.h)(_common.Select, {\n name: 'epoch',\n title: 'epoch',\n options: this.props.epochs,\n onChange: this.changeEpoch\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'position',\n min: 0.0, max: 1.0, type: 'float',\n value: (this.props.frame.sequence_i || 0) / (this.props.frame.sequence_len || 1),\n onChange: this.seek\n }),\n this.renderRestartButton(),\n (0, _preact.h)(\n _common.Button,\n {\n title: this.props.opt.savingVideo ? 'Saving video...' : this.props.opt.recording ? 'Recording (' + timeInSeconds(this.props.opt.recordFrames) + ')' : 'Record video',\n onClick: this.toggleRecording\n },\n this.props.opt.savingVideo ? 'Saving' : this.props.opt.recording ? 'Recording' : 'Record'\n ),\n (0, _preact.h)(\n _common.Button,\n {\n title: 'Save frame',\n onClick: _player.saveFrame\n },\n 'Save'\n ),\n (0, _preact.h)(\n 'p',\n { 'class': 'last_message' },\n this.props.last_message\n )\n )\n ),\n (0, _preact.h)(\n 'div',\n { className: 'column' },\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Transition',\n name: 'transition'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'transition_period',\n min: 10, max: 5000, type: 'int'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'transition_min',\n min: 0.001, max: 0.2, type: 'float'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'transition_max',\n min: 0.1, max: 1.0, type: 'float'\n })\n ),\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Recursion',\n name: 'recursive'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'recursive_frac',\n min: 0.0, max: 0.5, type: 'float'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'recurse_roll',\n min: -64, max: 64, type: 'int'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'recurse_roll_axis',\n min: 0, max: 1, type: 'int'\n })\n ),\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Sequence',\n name: 'sequence'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'sequence_frac',\n min: 0.0, max: 1, type: 'float'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'process_frac',\n min: 0, max: 1, type: 'float'\n })\n )\n ),\n (0, _preact.h)(\n 'div',\n { className: 'column' },\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Clahe',\n name: 'clahe'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'clip_limit',\n min: 1.0, max: 4.0, type: 'float'\n })\n ),\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Posterize',\n name: 'posterize'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'spatial_window',\n min: 2, max: 128, type: 'int'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'color_window',\n min: 2, max: 128, type: 'int'\n })\n ),\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Blur',\n name: 'blur'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'blur_radius',\n min: 3, max: 7, type: 'odd'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'blur_sigma',\n min: 0, max: 2, type: 'float'\n })\n ),\n (0, _preact.h)(\n _common.ParamGroup,\n {\n title: 'Canny Edge Detection',\n name: 'canny'\n },\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'canny_lo',\n min: 10, max: 200, type: 'int'\n }),\n (0, _preact.h)(_common.Slider, { live: true,\n name: 'canny_hi',\n min: 10, max: 200, type: 'int'\n })\n )\n )\n )\n );\n }\n }, {\n key: 'renderRestartButton',\n value: function renderRestartButton() {\n var _this2 = this;\n\n if (this.props.runner.gpu.status === 'IDLE') {\n return (0, _preact.h)(\n _common.Button,\n {\n title: 'GPU Idle',\n onClick: function onClick() {\n return _this2.start();\n }\n },\n 'Start'\n );\n }\n if (this.props.runner.gpu.task.module !== 'pix2pix' && this.props.runner.gpu.task.module !== 'pix2wav') {\n return (0, _preact.h)(\n _common.Button,\n {\n title: 'GPU Busy',\n onClick: function onClick() {\n return _this2.interrupt();\n }\n },\n 'Interrupt'\n );\n }\n if (!this.props.opt.processing) {\n return (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(\n _common.Button,\n {\n title: 'Not processing',\n onClick: this.togglePlaying\n },\n 'Restart'\n ),\n (0, _preact.h)(\n _common.Button,\n {\n title: 'GPU Busy',\n onClick: function onClick() {\n return _this2.interrupt();\n }\n },\n 'Interrupt'\n ),\n (0, _preact.h)(\n _common.Button,\n {\n title: 'Last resort',\n onClick: function onClick() {\n return _this2.exit();\n }\n },\n 'Exit'\n )\n );\n }\n return (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(\n _common.Button,\n {\n title: 'Processing',\n onClick: this.togglePlaying\n },\n 'Pause'\n ),\n (0, _preact.h)(\n _common.Button,\n {\n title: 'GPU Busy',\n onClick: function onClick() {\n return _this2.interrupt();\n }\n },\n 'Interrupt'\n ),\n (0, _preact.h)(\n _common.Button,\n {\n title: 'Last resort',\n onClick: function onClick() {\n return _this2.exit();\n }\n },\n 'Exit'\n )\n );\n }\n }]);\n\n return Pix2WavLive;\n}(_preact.Component);\n\nfunction timeInSeconds(n) {\n return (n / 10).toFixed(1) + ' s.';\n}\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n last_message: state.live.last_message,\n opt: state.live.opt,\n frame: state.live.frame,\n checkpoints: state.live.checkpoints,\n epochs: state.live.epochs,\n sequences: state.live.sequences,\n runner: state.system.runner,\n pix2wav: state.module.pix2wav\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: {\n live: (0, _redux.bindActionCreators)(liveActions, dispatch),\n queue: (0, _redux.bindActionCreators)(queueActions, dispatch),\n pix2wav: (0, _redux.bindActionCreators)(pix2wavActions, dispatch),\n tasks: (0, _redux.bindActionCreators)(pix2wavTasks, dispatch), s: s\n }\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Pix2WavLive);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = Pix2WavNew;\n\nvar _preact = require('preact');\n\nvar _dataset = require('../../../dataset/dataset.new');\n\nvar _dataset2 = _interopRequireDefault(_dataset);\n\nvar _pix2wav = require('../pix2wav.module');\n\nvar _pix2wav2 = _interopRequireDefault(_pix2wav);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction Pix2WavNew(_ref) {\n var history = _ref.history;\n\n return (0, _preact.h)(\n 'div',\n { 'class': 'app pix2wav' },\n (0, _preact.h)(_dataset2.default, { module: _pix2wav2.default, history: history })\n );\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _util = require('../../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _pix2wav = require('../pix2wav.actions');\n\nvar pix2wavActions = _interopRequireWildcard(_pix2wav);\n\nvar _pix2wav2 = require('../pix2wav.tasks');\n\nvar pix2wavTasks = _interopRequireWildcard(_pix2wav2);\n\nvar _loading = require('../../../common/loading.component');\n\nvar _loading2 = _interopRequireDefault(_loading);\n\nvar _dataset = require('../../../dataset/dataset.form');\n\nvar _dataset2 = _interopRequireDefault(_dataset);\n\nvar _dataset3 = require('../../../dataset/dataset.new');\n\nvar _dataset4 = _interopRequireDefault(_dataset3);\n\nvar _upload = require('../../../dataset/upload.status');\n\nvar _upload2 = _interopRequireDefault(_upload);\n\nvar _fileList = require('../../../common/fileList.component');\n\nvar _spectrogram = require('./spectrogram.upload');\n\nvar _spectrogram2 = _interopRequireDefault(_spectrogram);\n\nvar _dataset5 = require('../../../dataset/dataset.component');\n\nvar _dataset6 = _interopRequireDefault(_dataset5);\n\nvar _pix2wav3 = require('../pix2wav.module');\n\nvar _pix2wav4 = _interopRequireDefault(_pix2wav3);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar Pix2wavShow = function (_Component) {\n _inherits(Pix2wavShow, _Component);\n\n function Pix2wavShow(props) {\n _classCallCheck(this, Pix2wavShow);\n\n var _this = _possibleConstructorReturn(this, (Pix2wavShow.__proto__ || Object.getPrototypeOf(Pix2wavShow)).call(this, props));\n\n _this.datasetActions = _this.datasetActions.bind(_this);\n return _this;\n }\n\n _createClass(Pix2wavShow, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n var id = this.props.match.params.id || localStorage.getItem('pix2wav.last_id');\n console.log('load dataset:', id);\n var _props = this.props,\n match = _props.match,\n pix2wav = _props.pix2wav,\n actions = _props.actions;\n\n if (id === 'new') return;\n if (id) {\n if (parseInt(id)) localStorage.setItem('pix2wav.last_id', id);\n if (!pix2wav.folder || pix2wav.folder.id !== id) {\n actions.load_directories(id);\n }\n } else {\n this.props.history.push('/pix2wav/new/');\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props2 = this.props,\n pix2wav = _props2.pix2wav,\n match = _props2.match,\n history = _props2.history;\n\n var _ref = pix2wav.data || {},\n folderLookup = _ref.folderLookup;\n\n var folder = (folderLookup || {})[pix2wav.folder_id] || {};\n\n return (0, _preact.h)(\n 'div',\n { className: 'app pix2wav' },\n (0, _preact.h)(\n 'div',\n { 'class': 'heading' },\n (0, _preact.h)(\n 'div',\n { 'class': 'spaced' },\n (0, _preact.h)(\n 'h1',\n null,\n folder ? folder.name : (0, _preact.h)(_loading2.default, null)\n ),\n (0, _preact.h)(_upload2.default, null)\n )\n ),\n (0, _preact.h)(_spectrogram2.default, {\n loading: pix2wav.loading,\n progress: pix2wav.progress,\n id: pix2wav.folder_id,\n module: _pix2wav4.default,\n data: pix2wav.data,\n folder: folder\n }),\n (0, _preact.h)(_dataset6.default, {\n loading: pix2wav.loading,\n progress: pix2wav.progress,\n id: pix2wav.folder_id,\n module: _pix2wav4.default,\n data: pix2wav.data,\n folder: folder,\n history: history,\n onPickFile: function onPickFile(file, e) {\n e.preventDefault();\n e.stopPropagation();\n console.log('picked a file', file);\n },\n datasetActions: this.datasetActions\n })\n );\n }\n }, {\n key: 'datasetActions',\n value: function datasetActions(dataset) {\n var isFetching = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var isProcessing = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _props3 = this.props,\n pix2wav = _props3.pix2wav,\n remote = _props3.remote;\n\n var input = pix2wav.data.fileLookup[dataset.input[0]];\n if (!input) return null;\n if (input.name && input.name.match(/(gif|jpe?g|png)$/i)) return null;\n return (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(\n 'div',\n { 'class': 'actions' },\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.train_task(dataset, pix2wav.folder_id, 1);\n } },\n 'train'\n ),\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.train_task(dataset, pix2wav.folder_id, 2);\n } },\n '2x'\n ),\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.train_task(dataset, pix2wav.folder_id, 4);\n } },\n '4x'\n ),\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.train_task(dataset, pix2wav.folder_id, 6);\n } },\n '6x'\n ),\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.train_task(dataset, pix2wav.folder_id, 18);\n } },\n '18x'\n )\n ),\n dataset.isBuilt ? (0, _preact.h)(\n 'div',\n { 'class': 'subtext' },\n 'fetched ',\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.clear_cache_task(dataset);\n } },\n 'rm'\n )\n ) : isFetching ? (0, _preact.h)(\n 'div',\n { 'class': 'subtext' },\n 'fetching'\n ) : (0, _preact.h)(\n 'div',\n { 'class': 'subtext' },\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.fetch_task(input.url, input.id, dataset.name);\n } },\n 'fetch'\n )\n )\n );\n }\n }]);\n\n return Pix2wavShow;\n}(_preact.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n pix2wav: state.module.pix2wav\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: (0, _redux.bindActionCreators)(pix2wavActions, dispatch),\n remote: (0, _redux.bindActionCreators)(pix2wavTasks, dispatch)\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(Pix2wavShow);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; };\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _moment = require('moment/min/moment.min');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _util = require('../../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _pix2wav = require('../pix2wav.actions');\n\nvar pix2wavActions = _interopRequireWildcard(_pix2wav);\n\nvar _pix2wav2 = require('../pix2wav.tasks');\n\nvar pix2wavTasks = _interopRequireWildcard(_pix2wav2);\n\nvar _common = require('../../../common');\n\nvar _dataset = require('../../../dataset/dataset.actions');\n\nvar datasetActions = _interopRequireWildcard(_dataset);\n\nvar _wav2pix = require('../../../audio/wav2pix');\n\nvar wav2pixActions = _interopRequireWildcard(_wav2pix);\n\nvar _pix2wav3 = require('../../../audio/pix2wav');\n\nvar pix2wavPlayer = _interopRequireWildcard(_pix2wav3);\n\nvar _pix2wav4 = require('../pix2wav.module');\n\nvar _pix2wav5 = _interopRequireDefault(_pix2wav4);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar date_stamp = function date_stamp() {\n return (0, _moment2.default)().format(\"_YYYYMMDD_HHmm\");\n};\n\nvar SpectrogramUpload = function (_Component) {\n _inherits(SpectrogramUpload, _Component);\n\n function SpectrogramUpload(props) {\n _classCallCheck(this, SpectrogramUpload);\n\n var _this = _possibleConstructorReturn(this, (SpectrogramUpload.__proto__ || Object.getPrototypeOf(SpectrogramUpload)).call(this, props));\n\n _this.state = {\n file: null,\n pcm: null,\n name: \"\",\n datasetName: \"\",\n frames: [],\n frame_start: 0,\n max: 1000,\n preview_count: 8 * 4,\n frame_step: wav2pixActions.FRAME_STEP\n };\n var audioElement = document.createElement('audio');\n audioElement.addEventListener('loadedmetadata', function () {\n var duration = audioElement.duration;\n var total_frame_count = Math.floor((duration * 44100 - wav2pixActions.FRAME_LENGTH) / _this.state.frame_step);\n _this.setState({\n duration: duration,\n max: Math.min(_this.state.max, total_frame_count, 1000)\n });\n });\n _this.audioElement = audioElement;\n return _this;\n }\n\n _createClass(SpectrogramUpload, [{\n key: 'pickFile',\n value: function pickFile(file) {\n var _this2 = this;\n\n var name = file.name.split('.')[0].replace(/\\s+/g, '_').replace(/-/g, '_').replace(/_+/g, '_');\n this.setState({\n file: file,\n name: name + date_stamp(),\n datasetName: name,\n pcm: ''\n }, function () {\n _this2.rebuildFrames();\n });\n this.audioElement.src = URL.createObjectURL(file);\n }\n }, {\n key: 'rebuildFrames',\n value: function rebuildFrames() {\n var _this3 = this;\n\n var _state = this.state,\n file = _state.file,\n pcm = _state.pcm,\n frame_step = _state.frame_step,\n frame_start = _state.frame_start,\n preview_count = _state.preview_count;\n\n this.props.wav2pix.renderFrames(pcm || file, { frame_start: frame_start, frame_step: frame_step, max: preview_count }).then(function (data) {\n console.log('got frames', data.frames.length);\n _this3.setState(_extends({}, _this3.state, {\n frames: data.frames,\n pcm: data.pcm\n }));\n });\n }\n }, {\n key: 'buildZip',\n value: function buildZip() {\n var _this4 = this;\n\n var _state2 = this.state,\n pcm = _state2.pcm,\n file = _state2.file,\n max = _state2.max,\n frame_step = _state2.frame_step,\n frame_start = _state2.frame_start;\n\n this.props.wav2pix.buildZip(this.state.name, pcm || file, { frame_start: frame_start, frame_step: frame_step, max: max }).then(function (_ref) {\n var zip = _ref.zip,\n filename = _ref.filename,\n count = _ref.count;\n\n _this4.props.datasetActions.uploadFile(_this4.props.module, _this4.props.folder, zip, filename, { count: count, max: max, frame_step: frame_step, frame_size: wav2pixActions.FRAME_LENGTH / 44100 });\n });\n }\n }, {\n key: 'playFrame',\n value: function playFrame(i) {\n var _this5 = this;\n\n return function () {\n var frame = _this5.state.frames[i];\n pix2wavPlayer.play(frame);\n };\n }\n }, {\n key: 'render',\n value: function render() {\n var _this6 = this;\n\n // loading={pix2wav.loading}\n // progress={pix2wav.progress}\n // id={pix2wav.folder_id}\n // module={pix2wavModule}\n // data={pix2wav.data}\n // folder={folder}\n var _state3 = this.state,\n file = _state3.file,\n frames = _state3.frames,\n preview_count = _state3.preview_count;\n\n var canvases = [];\n for (var i = 0, _len = preview_count; i < _len; i++) {\n canvases.push((0, _preact.h)('canvas', { key: i, onClick: this.playFrame(i) }));\n }\n return (0, _preact.h)(\n 'div',\n { className: 'row' },\n (0, _preact.h)(\n 'div',\n { className: 'col spectrogramBuilder' },\n (0, _preact.h)(\n _common.Group,\n { title: 'Spectrogram Builder' },\n (0, _preact.h)(\n 'p',\n null,\n \"Convert your sounds into spectrograms. \",\n \"Sound files can be WAV, MP3, AIFF, or FLAC. \"\n ),\n (0, _preact.h)(_common.FileUpload, {\n title: 'Choose a sound file',\n accept: 'audio/*',\n onUpload: function onUpload(file) {\n return _this6.pickFile(file);\n }\n }),\n file && this.renderMetadata(file)\n )\n ),\n (0, _preact.h)(\n 'div',\n { ref: function ref(c) {\n _this6.canvases = c;\n }, className: 'thumbs', id: 'pix2wav_canvases' },\n canvases\n )\n );\n }\n }, {\n key: 'renderMetadata',\n value: function renderMetadata(file) {\n var _this7 = this;\n\n var _state4 = this.state,\n duration = _state4.duration,\n preview_count = _state4.preview_count;\n\n var size = _util2.default.hush_size(file.size);\n var total_frame_count = Math.floor((duration * 44100 - wav2pixActions.FRAME_LENGTH) / this.state.frame_step);\n var frame_size = Math.round(wav2pixActions.FRAME_LENGTH / 44100 * 1000) + ' ms.';\n var frame_step = Math.round(this.state.frame_step / 44100 * 1000) + ' ms.';\n return (0, _preact.h)(\n 'div',\n { className: 'fileMetadata' },\n (0, _preact.h)(\n _common.Group,\n { title: 'Metadata' },\n (0, _preact.h)(\n _common.Param,\n { title: 'Name' },\n file.name\n ),\n (0, _preact.h)(\n _common.Param,\n { title: 'Type' },\n file.type\n ),\n (0, _preact.h)(\n _common.Param,\n { title: 'Size' },\n (0, _preact.h)(\n 'span',\n { className: size[0] },\n size[1]\n )\n ),\n (0, _preact.h)(\n _common.Param,\n { title: 'Date' },\n (0, _moment2.default)(file.lastModifiedDate).format(\"YYYY-MM-DD h:mm a\")\n ),\n (0, _preact.h)(\n _common.Param,\n { title: 'Duration' },\n Math.floor(duration) + ' s.'\n ),\n (0, _preact.h)('br', null),\n (0, _preact.h)(\n _common.Param,\n { title: 'Frames' },\n total_frame_count\n ),\n (0, _preact.h)(\n _common.Param,\n { title: 'Frame Size' },\n frame_size\n ),\n (0, _preact.h)(\n _common.Param,\n { title: 'Frame Step' },\n frame_step\n ),\n (0, _preact.h)(\n _common.Param,\n { title: 'FFT Size' },\n wav2pixActions.spectrum.fft_size\n ),\n (0, _preact.h)('br', null),\n (0, _preact.h)(\n _common.Param,\n { title: 'Status' },\n this.props.pix2wav.status\n ),\n (0, _preact.h)('br', null)\n ),\n (0, _preact.h)(\n _common.Group,\n { title: 'Data settings' },\n (0, _preact.h)(_common.TextInput, {\n title: 'Dataset name',\n onChange: function onChange(e) {\n return _this7.setState({ name: e.target.value });\n },\n value: this.state.name\n }),\n (0, _preact.h)(_common.Slider, {\n name: 'Starting Frame',\n min: 0, max: 1, type: 'float',\n value: this.state.frame_start,\n defaultValue: 0,\n onChange: function onChange(frame_start) {\n _this7.setState({\n frame_start: frame_start\n }, function () {\n _this7.rebuildFrames();\n });\n }\n }),\n (0, _preact.h)(_common.Slider, {\n name: 'No. Frames',\n min: 10, max: Math.min(total_frame_count, 1000), type: 'int',\n value: this.state.max,\n defaultValue: Math.min(total_frame_count, 300),\n onChange: function onChange(max) {\n return _this7.setState({ max: max });\n }\n }),\n (0, _preact.h)(_common.Slider, {\n name: 'Frame step',\n min: 10, max: 20000, type: 'int',\n value: this.state.frame_step,\n defaultValue: wav2pixActions.FRAME_STEP,\n onChange: function onChange(frame_step) {\n var total_frame_count = Math.floor((duration * 44100 - wav2pixActions.FRAME_LENGTH) / frame_step);\n _this7.setState({\n name: _this7.state.datasetName + '_step_' + frame_step + date_stamp(),\n frame_step: frame_step,\n max: Math.min(_this7.state.max, total_frame_count)\n }, function () {\n _this7.rebuildFrames();\n });\n }\n }),\n (0, _preact.h)(\n _common.Button,\n {\n onClick: function onClick() {\n return _this7.buildZip();\n }\n },\n 'Upload Frames'\n )\n ),\n (0, _preact.h)(_common.Progress, null)\n );\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n var _this8 = this;\n\n (this.state.frames || []).map(function (frame, i) {\n var canvas = _this8.canvases.children[i];\n var ctx = canvas.getContext('2d-lodpi');\n canvas.width = frame.canvas.width;\n canvas.height = frame.canvas.height;\n ctx.drawImage(frame.canvas, 0, 0);\n });\n }\n }]);\n\n return SpectrogramUpload;\n}(_preact.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n pix2wav: state.module.pix2wav,\n upload: state.upload\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n datasetActions: (0, _redux.bindActionCreators)(datasetActions, dispatch),\n actions: (0, _redux.bindActionCreators)(pix2wavActions, dispatch),\n remote: (0, _redux.bindActionCreators)(pix2wavTasks, dispatch),\n wav2pix: (0, _redux.bindActionCreators)(wav2pixActions, dispatch)\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SpectrogramUpload);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _reactRouterDom = require('react-router-dom');\n\nvar _actions = require('../../actions');\n\nvar _actions2 = _interopRequireDefault(_actions);\n\nvar _util = require('../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _samplernn = require('./views/samplernn.new');\n\nvar _samplernn2 = _interopRequireDefault(_samplernn);\n\nvar _samplernn3 = require('./views/samplernn.show');\n\nvar _samplernn4 = _interopRequireDefault(_samplernn3);\n\nvar _samplernn5 = require('./views/samplernn.import');\n\nvar _samplernn6 = _interopRequireDefault(_samplernn5);\n\nvar _samplernn7 = require('./views/samplernn.results');\n\nvar _samplernn8 = _interopRequireDefault(_samplernn7);\n\nvar _samplernn9 = require('./views/samplernn.graph');\n\nvar _samplernn10 = _interopRequireDefault(_samplernn9);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar router = function () {\n function router() {\n _classCallCheck(this, router);\n }\n\n _createClass(router, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n _actions2.default.system.changeTool('samplernn');\n document.body.style.backgroundImage = 'linear-gradient(' + (_util2.default.randint(40) + 40) + 'deg, #eef, #fef)';\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps() {\n _actions2.default.system.changeTool('samplernn');\n document.body.style.backgroundImage = 'linear-gradient(' + (_util2.default.randint(40) + 40) + 'deg, #eef, #fef)';\n }\n }, {\n key: 'render',\n value: function render() {\n return (0, _preact.h)(\n 'section',\n null,\n (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/samplernn/new', component: _samplernn2.default }),\n (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/samplernn/datasets', component: _samplernn4.default }),\n (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/samplernn/datasets/:id', component: _samplernn4.default }),\n (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/samplernn/import', component: _samplernn6.default }),\n (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/samplernn/results', component: _samplernn8.default }),\n (0, _preact.h)(_reactRouterDom.Route, { exact: true, path: '/samplernn/graph', component: _samplernn10.default })\n );\n }\n }]);\n\n return router;\n}();\n\nfunction links() {\n return [{ url: '/samplernn/new/', name: 'new' }, { url: '/samplernn/datasets/', name: 'datasets' }, { url: '/samplernn/graph/', name: 'graph' }, { url: '/samplernn/results/', name: 'results' }];\n}\n\nexports.default = {\n name: 'samplernn',\n router: router, links: links\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.import_files = exports.load_loss = exports.load_graph = exports.load_directories = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _v = require('uuid/v1');\n\nvar _v2 = _interopRequireDefault(_v);\n\nvar _socket = require('../../socket');\n\nvar _socket2 = _interopRequireDefault(_socket);\n\nvar _types = require('../../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _dataset = require('../../dataset/dataset.loader');\n\nvar datasetLoader = _interopRequireWildcard(_dataset);\n\nvar _actions = require('../../actions');\n\nvar _actions2 = _interopRequireDefault(_actions);\n\nvar _util = require('../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _samplernn = require('./samplernn.module');\n\nvar _samplernn2 = _interopRequireDefault(_samplernn);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nvar load_directories = exports.load_directories = function load_directories(id) {\n return function (dispatch) {\n var module = _samplernn2.default.name;\n _util2.default.allProgress([datasetLoader.load(module), _actions2.default.socket.list_directory({ module: module, dir: 'datasets' }), _actions2.default.socket.list_directory({ module: module, dir: 'results' }), _actions2.default.socket.list_directory({ module: module, dir: 'output' }), _actions2.default.socket.disk_usage({ module: module, dir: 'datasets' }), load_loss()(dispatch)], function (percent, i, n) {\n dispatch({ type: _types2.default.app.load_progress, progress: { i: i, n: n } });\n }).then(function (res) {\n // console.log(res)\n var _res = _slicedToArray(res, 6),\n datasetApiReport = _res[0],\n datasets = _res[1],\n results = _res[2],\n output = _res[3],\n datasetUsage = _res[4],\n lossReport = _res[5];\n\n var folderLookup = datasetApiReport.folderLookup,\n fileLookup = datasetApiReport.fileLookup,\n datasetLookup = datasetApiReport.datasetLookup,\n folders = datasetApiReport.folders,\n files = datasetApiReport.files,\n unsortedFolder = datasetApiReport.unsortedFolder;\n\n console.log(datasetUsage);\n\n // also show the various flat audio files we have, in the input area..\n var flatDatasets = datasets.filter(function (s) {\n return s.name.match(/(wav|aiff?|flac|mp3)$/) && !s.dir;\n });\n var builtDatasets = datasets.filter(function (s) {\n return s.dir;\n });\n builtDatasets.forEach(function (dir) {\n var dataset = datasetLoader.getDataset(module, datasetLookup, dir.name, unsortedFolder, dir.date);\n dataset.isBuilt = true;\n });\n\n flatDatasets.forEach(function (file) {\n file.uuid = (0, _v2.default)();\n fileLookup[file.uuid] = file;\n var name = file.name.split('.')[0];\n var dataset = datasetLoader.getDataset(module, datasetLookup, name, unsortedFolder, file.date);\n file.persisted = false;\n dataset.input.push(file.uuid);\n });\n\n // exp:coccokit_3-frame_sizes:8,2-n_rnn:2-dataset:coccokit_3\n var checkpoints = results.filter(function (s) {\n return s.dir;\n }).map(function (s) {\n var checkpoint = s.name.split('-').map(function (s) {\n return s.split(':');\n }).filter(function (b) {\n return b.length && b[1];\n }).reduce(function (a, b) {\n return (a[b[0]] = b[1]) && a;\n }, {});\n checkpoint.name = checkpoint.name || checkpoint.dataset || checkpoint.exp;\n checkpoint.date = s.date;\n checkpoint.dir = s;\n checkpoint.persisted = false;\n var dataset = datasetLoader.getDataset(module, datasetLookup, checkpoint.name, unsortedFolder, checkpoint.date);\n var loss = lossReport[checkpoint.name];\n if (loss) {\n dataset.epoch = checkpoint.epoch = loss.length;\n checkpoint.training_loss = loss;\n }\n dataset.checkpoints.push(checkpoint);\n return checkpoint;\n });\n\n output.map(function (file) {\n file.uuid = (0, _v2.default)();\n fileLookup[file.uuid] = file;\n var pair = file.name.split('.')[0].split('-');\n var dataset = datasetLoader.getDataset(module, datasetLookup, pair[0], unsortedFolder, file.date);\n file.persisted = false;\n file.epoch = parseInt(file.epoch || pair[1].replace(/^\\D+/, '')) || 0;\n dataset.epoch = Math.max(file.epoch, dataset.epoch || 0);\n // here check if the file exists in dataset, if so just check that it's persisted\n var found = dataset.output.some(function (file_id) {\n // if (f.name === \n if (fileLookup[file_id].name === file.name) {\n fileLookup[file_id].persisted = true;\n return true;\n }\n return false;\n });\n if (!found) {\n dataset.output.push(file.uuid);\n }\n });\n\n dispatch({\n type: _types2.default.dataset.load,\n data: {\n module: module,\n folderLookup: folderLookup,\n fileLookup: fileLookup,\n datasetLookup: datasetLookup,\n folders: folders, files: files,\n checkpoints: checkpoints,\n output: output\n }\n });\n if (id) {\n dispatch({\n type: _types2.default.dataset.set_folder,\n data: {\n folder_id: id,\n module: module\n }\n });\n }\n }).catch(function (e) {\n console.error(e);\n });\n };\n};\n\nvar load_graph = exports.load_graph = function load_graph() {\n return function (dispatch) {\n var module = _samplernn2.default.name;\n _util2.default.allProgress([load_loss()(dispatch), _actions2.default.socket.list_directory({ module: module, dir: 'results' })], function (percent, i, n) {\n dispatch({ type: _types2.default.app.load_progress, progress: { i: i, n: n } });\n }).then(function (res) {\n var _res2 = _slicedToArray(res, 2),\n lossReport = _res2[0],\n results = _res2[1];\n\n dispatch({\n type: _types2.default.samplernn.load_graph,\n lossReport: lossReport,\n results: results\n });\n });\n };\n};\n\nvar load_loss = exports.load_loss = function load_loss() {\n return function (dispatch) {\n return _actions2.default.socket.run_script({ module: 'samplernn', activity: 'report' }).then(function (report) {\n var lossReport = {};\n report.stdout.split('\\n\\n').filter(function (a) {\n return !!a;\n }).forEach(function (data) {\n var _data$split = data.split('\\n'),\n _data$split2 = _toArray(_data$split),\n name = _data$split2[0],\n lines = _data$split2.slice(1);\n\n lossReport[name] = lines.map(function (s) {\n return s.split('\\t').reduce(function (a, s) {\n var b = s.split(': ');\n a[b[0]] = b[1];\n return a;\n }, {});\n });\n // console.log(data, name, lossReport[name])\n });\n dispatch({\n type: _types2.default.samplernn.load_loss,\n lossReport: lossReport\n });\n return lossReport;\n });\n };\n};\n\nvar import_files = exports.import_files = function import_files(state, datasetLookup, fileLookup) {\n return function (dispatch) {\n var selected = state.selected,\n folder_id = state.folder_id,\n url_base = state.url_base,\n import_action = state.import_action;\n\n var names = Object.keys(selected).filter(function (k) {\n return selected[k];\n });\n var promises = void 0;\n switch (import_action) {\n case 'Hotlink':\n // in this case, create a new file for each file we see.\n promises = names.reduce(function (a, name) {\n return datasetLookup[name].output.map(function (id) {\n return fileLookup[id];\n }).map(function (file) {\n var partz = file.name.split('.');\n var ext = partz.pop();\n return _actions2.default.file.create({\n folder_id: folder_id,\n name: file.name,\n url: url_base + file.name,\n mime: 'audio/' + ext,\n epoch: file.epoch,\n size: file.size,\n module: 'samplernn',\n dataset: name,\n activity: 'train',\n datatype: 'audio',\n generated: true,\n created_at: new Date(file.date),\n updated_at: new Date(file.date)\n });\n }).concat(a);\n }, []);\n break;\n case 'Upload':\n promises = names.reduce(function (a, name) {\n return datasetLookup[name].input.map(function (id) {\n return fileLookup[id];\n }).map(function (file) {\n if (file.persisted) return null;\n var partz = file.name.split('.');\n var ext = partz.pop();\n if (ext === 'wav' || ext === 'flac') return;\n console.log(file);\n return _actions2.default.socket.upload_file({\n folder_id: folder_id,\n module: 'samplernn',\n activity: 'train',\n path: 'datasets',\n filename: file.name,\n generated: false,\n processed: false,\n datatype: 'audio',\n ttl: 60000\n });\n }).concat(a);\n }, []).filter(function (a) {\n return !!a;\n });\n break;\n default:\n break;\n }\n console.log(promises);\n return Promise.all(promises).then(function (data) {\n console.log(data);\n window.location.href = '/samplernn/datasets/' + folder_id + '/';\n }).catch(function (e) {\n console.error(e);\n });\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar samplernnModule = {\n name: 'samplernn',\n displayName: 'SampleRNN',\n datatype: 'audio'\n};\n\nexports.default = samplernnModule;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; };\n\nvar _types = require('../../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _dataset = require('../../dataset/dataset.reducer');\n\nvar _dataset2 = _interopRequireDefault(_dataset);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar samplernnInitialState = {\n loading: true,\n progress: { i: 0, n: 0 },\n error: null,\n folders: [],\n folder_id: 0,\n data: null,\n lossReport: null,\n results: null\n};\n\nvar samplernnReducer = function samplernnReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : samplernnInitialState;\n var action = arguments[1];\n\n if (action.data && action.data.module === 'samplernn') {\n return (0, _dataset2.default)(state, action);\n }\n\n switch (action.type) {\n case _types2.default.samplernn.load_loss:\n return _extends({}, state, {\n lossReport: action.lossReport\n });\n case _types2.default.samplernn.load_graph:\n return _extends({}, state, {\n lossReport: action.lossReport,\n results: action.results\n });\n default:\n return state;\n }\n};\n\nexports.default = samplernnReducer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.clear_cache_task = exports.log_task = exports.fetch_task = exports.train_task = undefined;\n\nvar _v = require('uuid/v1');\n\nvar _v2 = _interopRequireDefault(_v);\n\nvar _socket = require('../../socket');\n\nvar _socket2 = _interopRequireDefault(_socket);\n\nvar _types = require('../../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _actions = require('../../actions');\n\nvar _actions2 = _interopRequireDefault(_actions);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar train_task = exports.train_task = function train_task(dataset, folder_id) {\n var epochs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n return function (dispatch) {\n var task = {\n module: 'samplernn',\n activity: 'train',\n dataset: dataset.name,\n epoch: dataset.checkpoints.length ? dataset.checkpoints[0].epoch || 0 : 0,\n epochs: epochs,\n folder_id: folder_id,\n opt: {\n sample_length: 44100 * 5,\n n_samples: 6,\n keep_old_checkpoints: false\n }\n };\n console.log(task);\n return _actions2.default.queue.add_task(task);\n };\n};\nvar fetch_task = exports.fetch_task = function fetch_task(url, folder_id, file_id, dataset) {\n return function (dispatch) {\n if (!url) return console.log('input file inaccessible (no url)');\n var task = {\n module: 'samplernn',\n activity: 'fetch',\n dataset: dataset,\n folder_id: folder_id,\n opt: {\n url: url,\n file_id: file_id,\n dataset: dataset\n }\n };\n return _actions2.default.queue.add_task(task);\n };\n};\nvar log_task = exports.log_task = function log_task(dataset) {\n return function (dispatch) {\n var task = {\n module: 'samplernn',\n activity: 'log',\n dataset: dataset.name\n };\n return _actions2.default.queue.add_task(task);\n };\n};\nvar clear_cache_task = exports.clear_cache_task = function clear_cache_task(dataset) {\n return function (dispatch) {\n var task = {\n module: 'samplernn',\n activity: 'clear_cache',\n dataset: dataset.name\n };\n return _actions2.default.queue.add_task(task);\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _util = require('../../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _samplernn = require('../samplernn.actions');\n\nvar samplernnActions = _interopRequireWildcard(_samplernn);\n\nvar _group = require('../../../common/group.component');\n\nvar _group2 = _interopRequireDefault(_group);\n\nvar _slider = require('../../../common/slider.component');\n\nvar _slider2 = _interopRequireDefault(_slider);\n\nvar _select = require('../../../common/select.component');\n\nvar _select2 = _interopRequireDefault(_select);\n\nvar _button = require('../../../common/button.component');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _fileList = require('../../../common/fileList.component');\n\nvar _textInput = require('../../../common/textInput.component');\n\nvar _textInput2 = _interopRequireDefault(_textInput);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar lerp = _util2.default.lerp,\n norm = _util2.default.norm,\n randint = _util2.default.randint,\n randrange = _util2.default.randrange;\n\nvar SampleRNNGraph = function (_Component) {\n _inherits(SampleRNNGraph, _Component);\n\n function SampleRNNGraph(props) {\n _classCallCheck(this, SampleRNNGraph);\n\n var _this = _possibleConstructorReturn(this, (SampleRNNGraph.__proto__ || Object.getPrototypeOf(SampleRNNGraph)).call(this));\n\n props.actions.load_graph();\n return _this;\n }\n\n _createClass(SampleRNNGraph, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n this.refs = {};\n return (0, _preact.h)(\n 'div',\n { className: 'app lossGraph' },\n (0, _preact.h)(\n 'div',\n { className: 'heading' },\n (0, _preact.h)(\n 'h3',\n null,\n 'SampleRNN Loss Graph'\n ),\n (0, _preact.h)('canvas', { ref: function ref(_ref) {\n return _this2.refs['canvas'] = _ref;\n } })\n )\n );\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n var _props$samplernn = this.props.samplernn,\n lossReport = _props$samplernn.lossReport,\n results = _props$samplernn.results;\n\n if (!lossReport || !results) return;\n var canvas = this.refs.canvas;\n canvas.width = window.innerWidth;\n canvas.height = window.innerHeight;\n canvas.style.width = canvas.width + 'px';\n canvas.style.height = canvas.height + 'px';\n\n var ctx = canvas.getContext('2d');\n var w = canvas.width;\n var h = canvas.height;\n ctx.clearRect(0, 0, w, h);\n\n var resultsByDate = results.map(function (file) {\n if (!file.name.match(/^exp:/)) return null;\n var dataset = file.name.split(\"-\")[3].split(\":\")[1];\n return [+new Date(file.date), dataset];\n }).filter(function (a) {\n return !!a;\n }).sort(function (a, b) {\n return a[0] - a[1];\n });\n\n var keys = Object.keys(lossReport).filter(function (k) {\n return !!lossReport[k].length;\n });\n var scaleMax = 0;\n var scaleMin = Infinity;\n var epochsMax = 0;\n keys.forEach(function (key) {\n var loss = lossReport[key];\n epochsMax = Math.max(loss.length, epochsMax);\n loss.forEach(function (a) {\n var v = parseFloat(a.training_loss);\n if (!v) return;\n scaleMax = Math.max(v, scaleMax);\n scaleMin = Math.min(v, scaleMin);\n });\n });\n // scaleMax *= 10\n console.log(scaleMax, scaleMin, epochsMax);\n\n scaleMax = 3;\n scaleMin = 0;\n var margin = 0;\n var wmin = 0;\n var wmax = w / 2;\n var hmin = 0;\n var hmax = h / 2;\n var epochsScaleFactor = 1; // 3/2\n\n ctx.save();\n var X = void 0,\n Y = void 0;\n for (var ii = 0; ii < epochsMax; ii++) {\n X = lerp(ii / (epochsMax / epochsScaleFactor) * epochsScaleFactor, wmin, wmax);\n ctx.strokeStyle = 'rgba(0,0,0,0.3)';\n ctx.beginPath(0, 0);\n ctx.moveTo(X, 0);\n ctx.lineTo(X, h);\n ctx.lineWidth = 0.5;\n // ctx.stroke()\n if ((ii + 1) % 6 === 0) {\n ctx.lineWidth = 0.5;\n ctx.stroke();\n var fontSize = 12;\n ctx.font = 'italic ' + fontSize + 'px \"Georgia\"';\n ctx.fillStyle = 'rgba(0,12,28,0.6)';\n ctx.fillText(ii / 5 * 6, X + 8, h - (fontSize + 4));\n }\n }\n for (var ii = scaleMin; ii < scaleMax; ii += 1) {\n Y = lerp(ii / scaleMax, hmin, hmax);\n // ctx.strokeStyle = 'rgba(255,255,255,1.0)'\n ctx.beginPath(0, 0);\n ctx.moveTo(0, h - Y);\n ctx.lineTo(w, h - Y);\n ctx.lineWidth = 1;\n // ctx.stroke() \n // if ( (ii % 1) < 0.1) {\n // ctx.strokeStyle = 'rgba(255,255,255,1.0)'\n ctx.lineWidth = 2;\n ctx.setLineDash([4, 4]);\n ctx.stroke();\n ctx.stroke();\n ctx.stroke();\n ctx.setLineDash([1, 1]);\n var _fontSize = 12;\n ctx.font = 'italic ' + _fontSize + 'px \"Georgia\"';\n ctx.fillStyle = 'rgba(0,12,28,0.6)';\n ctx.fillText(ii.toFixed(1), w - 50, h - Y + _fontSize + 10);\n // }\n }\n ctx.lineWidth = 1;\n ctx.restore();\n\n var min_date = resultsByDate[0][0];\n var max_date = resultsByDate[resultsByDate.length - 1][0];\n resultsByDate.forEach(function (pair) {\n var date = pair[0];\n var key = pair[1];\n var loss = lossReport[key];\n if (!key || !loss || !loss.length) return;\n var vf = parseFloat(loss[loss.length - 1].training_loss) || 0;\n var vg = parseFloat(loss[0].training_loss) || 5;\n // console.log(vf)\n var vv = 1 - norm(vf, scaleMin, scaleMax / 2);\n ctx.lineWidth = (1 - norm(vf, scaleMin, scaleMax)) * 4;\n // ctx.lineWidth = norm(date, min_date, max_date) * 3\n console.log(date, min_date, max_date);\n ctx.strokeStyle = 'rgba(' + [randrange(30, 190), randrange(30, 150), randrange(60, 120)].join(',') + ',' + 0.8 + ')';\n var begun = false;\n loss.forEach(function (a, i) {\n var v = parseFloat(a.training_loss);\n if (!v) return;\n var x = lerp(i / (epochsMax / epochsScaleFactor) * epochsScaleFactor, wmin, wmax);\n var y = lerp(norm(v, scaleMin, scaleMax), hmax, hmin);\n if (!begun) {\n begun = true;\n ctx.beginPath(0, 0);\n ctx.moveTo(x, y);\n } else {\n ctx.lineTo(x, y);\n // ctx.stroke()\n }\n });\n ctx.stroke();\n var i = loss.length - 1;\n var v = parseFloat(loss[i].training_loss);\n var x = lerp(i / (epochsMax / epochsScaleFactor) * epochsScaleFactor, wmin, wmax);\n var y = lerp(norm(v, scaleMin, scaleMax), hmax, hmin);\n var fontSize = 9;\n ctx.font = 'italic ' + fontSize + 'px \"Georgia\"';\n ctx.fillStyle = 'rgba(0,12,28,0.6)';\n ctx.fillText(key, x + 4, y + fontSize / 2);\n });\n }\n }]);\n\n return SampleRNNGraph;\n}(_preact.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n samplernn: state.module.samplernn\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: (0, _redux.bindActionCreators)(samplernnActions, dispatch)\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SampleRNNGraph);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; };\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _util = require('../../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _samplernn = require('../samplernn.actions');\n\nvar samplernnActions = _interopRequireWildcard(_samplernn);\n\nvar _select = require('../../../common/select.component');\n\nvar _select2 = _interopRequireDefault(_select);\n\nvar _textInput = require('../../../common/textInput.component');\n\nvar _textInput2 = _interopRequireDefault(_textInput);\n\nvar _button = require('../../../common/button.component');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _dataset = require('../../../dataset/dataset.component');\n\nvar _dataset2 = _interopRequireDefault(_dataset);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar samplernnModule = {\n name: 'samplernn',\n datatype: 'audio'\n};\n\nvar SampleRNNImport = function (_Component) {\n _inherits(SampleRNNImport, _Component);\n\n function SampleRNNImport() {\n _classCallCheck(this, SampleRNNImport);\n\n var _this = _possibleConstructorReturn(this, (SampleRNNImport.__proto__ || Object.getPrototypeOf(SampleRNNImport)).call(this));\n\n _this.state = {\n folder_id: 1,\n import_action: 'Hotlink',\n url_base: 'https://s3.amazonaws.com/i.asdf.us/bucky/data/4279/',\n selected: {}\n };\n return _this;\n }\n\n _createClass(SampleRNNImport, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n var id = this.props.match.params.id || localStorage.getItem('samplernn.last_id');\n console.log('load dataset:', id);\n var _props = this.props,\n match = _props.match,\n samplernn = _props.samplernn,\n samplernnActions = _props.samplernnActions;\n\n if (id === 'new') return;\n if (id) {\n if (parseInt(id)) localStorage.setItem('samplernn.last_id', id);\n if (!samplernn.folder || samplernn.folder.id !== id) {\n this.props.actions.load_directories(id);\n }\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var samplernn = this.props.samplernn;\n\n var datasets = [],\n folder = void 0;\n if (this.props.samplernn.data) {\n datasets = (this.props.samplernn.data.folders || []).map(function (folder) {\n return [folder.name, folder.id];\n });\n folder = this.props.samplernn.data.folderLookup.unsorted;\n }\n return (0, _preact.h)(\n 'div',\n { className: 'app top' },\n (0, _preact.h)(\n 'div',\n { 'class': 'heading' },\n (0, _preact.h)(\n 'h1',\n null,\n 'Import'\n )\n ),\n (0, _preact.h)(\n 'div',\n { 'class': 'params form row datasets' },\n (0, _preact.h)(\n 'div',\n { 'class': 'row dataset' },\n (0, _preact.h)('div', { 'class': 'col' }),\n (0, _preact.h)('div', { 'class': 'col' }),\n (0, _preact.h)('div', { 'class': 'col' }),\n (0, _preact.h)(\n 'div',\n { 'class': 'col' },\n (0, _preact.h)(\n 'h2',\n null,\n 'Import to dataset'\n ),\n (0, _preact.h)(_select2.default, {\n title: 'Destination dataset',\n options: datasets,\n name: 'folder_id',\n opt: this.state,\n onChange: function onChange(name, value) {\n return _this2.setState({ folder_id: value });\n }\n }),\n (0, _preact.h)(_select2.default, {\n title: 'Import action',\n options: ['Hotlink', 'Upload'],\n name: 'import_action',\n opt: this.state,\n onChange: function onChange(name, value) {\n return _this2.setState({ import_action: value });\n }\n }),\n (0, _preact.h)(_textInput2.default, {\n title: 'Remote URL base',\n value: this.state.url_base,\n placeholder: 'http://',\n onSave: function onSave(value) {\n return _this2.setState({ url_base: value });\n }\n }),\n (0, _preact.h)(\n _button2.default,\n {\n title: '',\n onClick: function onClick() {\n return _this2.doImport();\n }\n },\n 'Import'\n )\n )\n )\n ),\n (0, _preact.h)(_dataset2.default, {\n loading: samplernn.loading,\n progress: samplernn.progress,\n module: samplernnModule,\n data: samplernn.data,\n id: 'unsorted',\n folder: folder,\n history: this.props.history,\n onPickDataset: function onPickDataset(dataset) {\n return _this2.toggle(dataset.name, _this2.state.selected[name]);\n },\n beforeRow: function beforeRow(dataset) {\n return _this2.beforeRow(dataset);\n },\n afterRow: function afterRow(dataset) {\n return _this2.afterRow(dataset);\n }\n })\n );\n }\n }, {\n key: 'toggle',\n value: function toggle(name) {\n this.setState(_extends({}, this.state, {\n selected: _extends({}, this.state.selected, _defineProperty({}, name, !this.state.selected[name]))\n }));\n }\n }, {\n key: 'beforeRow',\n value: function beforeRow(dataset) {\n // console.log(dataset)\n }\n }, {\n key: 'afterRow',\n value: function afterRow(dataset) {\n var name = dataset.name;\n return (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)('input', {\n type: 'checkbox',\n value: name,\n checked: !!this.state.selected[name]\n })\n );\n }\n }, {\n key: 'doImport',\n value: function doImport() {\n var samplernn = this.props.samplernn;\n\n console.log(this.state);\n this.props.actions.import_files(this.state, samplernn.data.datasetLookup, samplernn.data.fileLookup);\n }\n }]);\n\n return SampleRNNImport;\n}(_preact.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n samplernn: state.module.samplernn,\n runner: state.system.runner,\n task: state.task\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: (0, _redux.bindActionCreators)(samplernnActions, dispatch)\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SampleRNNImport);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _reactRouterDom = require('react-router-dom');\n\nvar _util = require('../../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _common = require('../../../common');\n\nvar _samplernn = require('../samplernn.actions');\n\nvar samplernnActions = _interopRequireWildcard(_samplernn);\n\nvar _samplernn2 = require('../samplernn.module');\n\nvar _samplernn3 = _interopRequireDefault(_samplernn2);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction SampleRNNNew(props) {\n return (0, _preact.h)(_common.Views.New, {\n db: props.samplernn,\n path: '/samplernn/datasets/',\n actions: props.actions,\n module: _samplernn3.default,\n history: props.history\n });\n}\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n samplernn: state.module.samplernn\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: (0, _redux.bindActionCreators)(samplernnActions, dispatch)\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SampleRNNNew);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRouterDom = require('react-router-dom');\n\nvar _reactRedux = require('react-redux');\n\nvar _util = require('../../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _samplernn = require('../samplernn.actions');\n\nvar samplernnActions = _interopRequireWildcard(_samplernn);\n\nvar _audioPlayer = require('../../../common/audioPlayer/audioPlayer.actions');\n\nvar audioPlayerActions = _interopRequireWildcard(_audioPlayer);\n\nvar _loading = require('../../../common/loading.component');\n\nvar _loading2 = _interopRequireDefault(_loading);\n\nvar _fileList = require('../../../common/fileList.component');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar SampleRNNResults = function (_Component) {\n _inherits(SampleRNNResults, _Component);\n\n function SampleRNNResults(props) {\n _classCallCheck(this, SampleRNNResults);\n\n var _this = _possibleConstructorReturn(this, (SampleRNNResults.__proto__ || Object.getPrototypeOf(SampleRNNResults)).call(this));\n\n if (!props.samplernn.data) props.actions.load_directories();\n return _this;\n }\n\n _createClass(SampleRNNResults, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n if (this.props.samplernn.loading) return (0, _preact.h)(_loading2.default, { progress: this.props.samplernn.progress });\n var _props$samplernn$data = this.props.samplernn.data,\n folderLookup = _props$samplernn$data.folderLookup,\n fileLookup = _props$samplernn$data.fileLookup,\n datasetLookup = _props$samplernn$data.datasetLookup;\n // const { folderLookup } = samplernn\n\n var renders = Object.keys(folderLookup).sort(_util2.default.sort.stringSort.asc).map(function (key) {\n var folder = folderLookup[key];\n\n var _util$sort$orderByFn = _util2.default.sort.orderByFn('epoch desc'),\n mapFn = _util$sort$orderByFn.mapFn,\n sortFn = _util$sort$orderByFn.sortFn;\n\n var datasetPairs = folder.datasets.map(function (name) {\n return datasetLookup[name];\n }).map(mapFn).sort(sortFn);\n var bestRenders = datasetPairs.map(function (pair) {\n return pair[1];\n }).filter(function (dataset) {\n return dataset.output.length;\n }).map(function (dataset) {\n var output = dataset.output;\n\n return output.map(function (id) {\n return fileLookup[id];\n }).map(mapFn).sort(sortFn)[0][1];\n });\n // console.log(bestRenders.map(r => r.epoch))\n var path = folder.name === 'unsorted' ? \"/samplernn/import/\" : \"/samplernn/datasets/\" + folder.id + \"/\";\n return (0, _preact.h)(\n 'div',\n { className: 'col bestRenders' },\n (0, _preact.h)(\n 'h3',\n null,\n (0, _preact.h)(\n _reactRouterDom.Link,\n { to: path },\n folder.name\n )\n ),\n (0, _preact.h)(_fileList.FileList, {\n linkFiles: true,\n files: bestRenders,\n orderBy: 'date desc',\n fields: 'name date epoch size',\n onClick: function onClick(file, e) {\n e.preventDefault();\n e.stopPropagation();\n console.log('picked a file', file);\n _this2.handlePick(file);\n }\n })\n );\n });\n\n return (0, _preact.h)(\n 'div',\n { className: 'app samplernn' },\n (0, _preact.h)(\n 'div',\n { className: 'heading row middle' },\n (0, _preact.h)(\n 'h1',\n null,\n 'SampleRNN Results'\n )\n ),\n (0, _preact.h)(\n 'div',\n { 'class': 'rows params renders' },\n renders\n )\n );\n }\n }, {\n key: 'handlePick',\n value: function handlePick(file) {\n this.props.audioPlayer.play(file);\n }\n }]);\n\n return SampleRNNResults;\n}(_preact.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n samplernn: state.module.samplernn\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: (0, _redux.bindActionCreators)(samplernnActions, dispatch),\n audioPlayer: (0, _redux.bindActionCreators)(audioPlayerActions, dispatch)\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SampleRNNResults);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _util = require('../../../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _samplernn = require('../samplernn.actions');\n\nvar samplernnActions = _interopRequireWildcard(_samplernn);\n\nvar _samplernn2 = require('../samplernn.tasks');\n\nvar samplernnTasks = _interopRequireWildcard(_samplernn2);\n\nvar _audioPlayer = require('../../../common/audioPlayer/audioPlayer.actions');\n\nvar audioPlayerActions = _interopRequireWildcard(_audioPlayer);\n\nvar _common = require('../../../common');\n\nvar _dataset = require('../../../dataset/dataset.form');\n\nvar _dataset2 = _interopRequireDefault(_dataset);\n\nvar _upload = require('../../../dataset/upload.status');\n\nvar _upload2 = _interopRequireDefault(_upload);\n\nvar _dataset3 = require('../../../dataset/dataset.component');\n\nvar _dataset4 = _interopRequireDefault(_dataset3);\n\nvar _samplernn3 = require('../samplernn.module');\n\nvar _samplernn4 = _interopRequireDefault(_samplernn3);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar SampleRNNShow = function (_Component) {\n _inherits(SampleRNNShow, _Component);\n\n function SampleRNNShow(props) {\n _classCallCheck(this, SampleRNNShow);\n\n var _this = _possibleConstructorReturn(this, (SampleRNNShow.__proto__ || Object.getPrototypeOf(SampleRNNShow)).call(this, props));\n\n _this.datasetActions = _this.datasetActions.bind(_this);\n return _this;\n }\n\n _createClass(SampleRNNShow, [{\n key: 'componentWillMount',\n value: function componentWillMount() {\n var id = this.props.match.params.id || localStorage.getItem('samplernn.last_id');\n console.log('load dataset:', id);\n var _props = this.props,\n match = _props.match,\n samplernn = _props.samplernn,\n actions = _props.actions;\n\n if (id === 'new') return;\n if (id) {\n if (parseInt(id)) localStorage.setItem('samplernn.last_id', id);\n if (!samplernn.folder || samplernn.folder.id !== id) {\n // console.log('looooooooooad', id)\n actions.load_directories(id);\n }\n } else {\n this.props.history.push('/samplernn/new/');\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props2 = this.props,\n samplernn = _props2.samplernn,\n runner = _props2.runner,\n match = _props2.match,\n history = _props2.history;\n\n var _ref = samplernn.data || {},\n folderLookup = _ref.folderLookup;\n // console.log(runner)\n\n\n var folder = (folderLookup || {})[samplernn.folder_id] || {};\n return (0, _preact.h)(\n 'div',\n { className: 'app samplernn' },\n (0, _preact.h)(\n 'div',\n { className: 'heading' },\n (0, _preact.h)(\n 'h1',\n null,\n folder ? folder.name : (0, _preact.h)(_common.Loading, null)\n )\n ),\n (0, _preact.h)(\n 'div',\n { className: 'row' },\n folder && folder.name && folder.name !== 'unsorted' && (0, _preact.h)(_dataset2.default, {\n title: 'Add Files',\n module: _samplernn4.default,\n folder: folder,\n canUpload: true, canAddURL: true\n }),\n (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(_upload2.default, null),\n (0, _preact.h)(_common.CurrentTask, { processor: 'gpu' })\n )\n ),\n (0, _preact.h)(_dataset4.default, {\n loading: samplernn.loading,\n progress: samplernn.progress,\n id: samplernn.folder_id,\n module: _samplernn4.default,\n data: samplernn.data,\n folder: folder,\n history: history,\n onPickFile: function onPickFile(file, e) {\n e.preventDefault();\n e.stopPropagation();\n // console.log('picked a file', file)\n _this2.handlePick(file);\n },\n datasetActions: this.datasetActions\n })\n );\n }\n }, {\n key: 'datasetActions',\n value: function datasetActions(dataset) {\n var isFetching = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var isProcessing = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _props3 = this.props,\n samplernn = _props3.samplernn,\n remote = _props3.remote;\n\n var input = samplernn.data.fileLookup[dataset.input[0]];\n if (!input) return null;\n if (input.name && input.name.match(/(gif|jpe?g|png)$/i)) return null;\n return (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(\n 'div',\n { 'class': 'actions' },\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.train_task(dataset, samplernn.folder_id, 1);\n } },\n 'train'\n ),\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.train_task(dataset, samplernn.folder_id, 2);\n } },\n '2x'\n ),\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.train_task(dataset, samplernn.folder_id, 4);\n } },\n '4x'\n ),\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.train_task(dataset, samplernn.folder_id, 6);\n } },\n '6x'\n ),\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.train_task(dataset, samplernn.folder_id, 18);\n } },\n '18x'\n )\n ),\n dataset.isBuilt ? (0, _preact.h)(\n 'div',\n { 'class': 'subtext' },\n 'fetched ',\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.clear_cache_task(dataset);\n } },\n 'x'\n )\n ) : isFetching ? (0, _preact.h)(\n 'div',\n { 'class': 'subtext' },\n 'fetching'\n ) : (0, _preact.h)(\n 'div',\n { 'class': 'subtext' },\n (0, _preact.h)(\n 'span',\n { 'class': 'link', onClick: function onClick() {\n return remote.fetch_task(input.url, samplernn.folder_id, input.id, dataset.name);\n } },\n 'fetch'\n )\n )\n );\n }\n }, {\n key: 'handlePick',\n value: function handlePick(file) {\n // console.log(file)\n this.props.audioPlayer.play(file);\n }\n }]);\n\n return SampleRNNShow;\n}(_preact.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n samplernn: state.module.samplernn,\n runner: state.system.runner\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: (0, _redux.bindActionCreators)(samplernnActions, dispatch),\n remote: (0, _redux.bindActionCreators)(samplernnTasks, dispatch),\n audioPlayer: (0, _redux.bindActionCreators)(audioPlayerActions, dispatch)\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SampleRNNShow);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.stop_queue = exports.start_queue = exports.add_task = exports.stop_task = exports.start_task = undefined;\n\nvar _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; };\n\nvar _socket = require('../socket');\n\nvar _socket2 = _interopRequireDefault(_socket);\n\nvar _types = require('../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _actions = require('../actions');\n\nvar _actions2 = _interopRequireDefault(_actions);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar start_task = exports.start_task = function start_task(task) {\n var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _socket2.default.task.start_task(task, opt);\n return _extends({ type: _types2.default.task.starting_task, task: task }, opt);\n};\n\nvar stop_task = exports.stop_task = function stop_task(task) {\n var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _socket2.default.task.stop_task(task, opt);\n return _extends({ type: _types2.default.task.stopping_task, task: task }, opt);\n};\n\nvar add_task = exports.add_task = function add_task(new_task) {\n return function (dispatch) {\n _actions2.default.task.create(new_task).then(function (task) {\n _socket2.default.task.add_task(task);\n });\n };\n};\n\nvar start_queue = exports.start_queue = function start_queue(task) {\n var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _socket2.default.task.start_queue(task, opt);\n return _extends({ type: _types2.default.task.starting_queue, task: task }, opt);\n};\n\nvar stop_queue = exports.stop_queue = function stop_queue(task) {\n var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _socket2.default.task.stop_queue(task, opt);\n return _extends({ type: _types2.default.task.stopping_queue, task: task }, opt);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; };\n\nvar _types = require('../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _util = require('../util');\n\nvar _util2 = _interopRequireDefault(_util);\n\nvar _moment = require('moment/min/moment.min');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _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; }\n\nvar queueInitialState = {\n loading: false,\n error: null,\n tasks: {},\n queue: [],\n completed: []\n};\n\nvar dateSort = _util2.default.sort.orderByFn('updated_at desc');\nvar prioritySort = _util2.default.sort.orderByFn('priority asc');\n\nvar queueReducer = function queueReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : queueInitialState;\n var action = arguments[1];\n\n switch (action.type) {\n case _types2.default.task.index:\n return _extends({}, state, {\n tasks: action.data.reduce(function (a, b) {\n return a[b.id] = b, a;\n }, {}),\n queue: action.data.filter(function (a) {\n return !a.completed;\n }).map(dateSort.mapFn).sort(dateSort.sortFn).map(function (pair) {\n return pair[1].id;\n }),\n completed: action.data.filter(function (a) {\n return a.completed;\n }).map(prioritySort.mapFn).sort(prioritySort.sortFn).map(function (pair) {\n return pair[1].id;\n })\n });\n case _types2.default.task.create:\n console.log(action.data);\n return _extends({}, state, {\n tasks: _extends({}, state.tasks, _defineProperty({}, action.data.id, action.data)),\n queue: state.queue.concat([action.data.id])\n });\n case _types2.default.task.update:\n return _extends({}, state, {\n tasks: _extends({}, state.tasks, _defineProperty({}, action.data.id, action.data))\n });\n case _types2.default.task.destroy:\n var _state$tasks = state.tasks,\n deletedTask = _state$tasks[action.data.id],\n taskLookup = _objectWithoutProperties(_state$tasks, [action.data.id]);\n\n return _extends({}, state, {\n queue: state.queue.filter(function (id) {\n return id !== deletedTask.id;\n }),\n completed: state.completed.filter(function (id) {\n return id !== deletedTask.id;\n }),\n tasks: taskLookup\n });\n case _types2.default.task.task_finish:\n return _extends({}, state, {\n queue: state.queue.filter(function (a) {\n return a !== action.task.id;\n }),\n completed: [action.task.id].concat(state.completed)\n });\n default:\n return state;\n }\n};\n\nexports.default = queueReducer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; };\n\nvar _store = require('../store');\n\nvar _types = require('../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _socket = require('./socket.connection');\n\nvar _socket2 = require('./socket.actions');\n\nvar actions = _interopRequireWildcard(_socket2);\n\nvar _socket3 = require('./socket.system');\n\nvar system = _interopRequireWildcard(_socket3);\n\nvar _socket4 = require('./socket.live');\n\nvar live = _interopRequireWildcard(_socket4);\n\nvar _socket5 = require('./socket.task');\n\nvar task = _interopRequireWildcard(_socket5);\n\nvar _socket6 = require('./socket.api');\n\nvar api = _interopRequireWildcard(_socket6);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n socket: _socket.socket,\n actions: actions,\n system: system,\n live: live,\n task: task,\n api: api\n};\n\n\n_socket.socket.on('status', function (data) {\n console.log('got status', data.key, data.value);\n _store.store.dispatch(_extends({ type: _types2.default.socket.status }, data));\n switch (data.key) {\n case 'processing':\n _store.store.dispatch(_extends({\n type: 'SET_PARAM'\n }, data));\n break;\n default:\n break;\n }\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.syscall_async = undefined;\n\nvar _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; };\n\nexports.run_system_command = run_system_command;\nexports.disk_usage = disk_usage;\nexports.list_directory = list_directory;\nexports.run_script = run_script;\nexports.upload_file = upload_file;\n\nvar _v = require('uuid/v1');\n\nvar _v2 = _interopRequireDefault(_v);\n\nvar _socket = require('./socket.connection');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction run_system_command(opt) {\n return syscall_async('run_system_command', opt);\n}\nfunction disk_usage(opt) {\n return syscall_async('run_system_command', _extends({ cmd: 'du' }, opt));\n}\nfunction list_directory(opt) {\n return syscall_async('list_directory', opt).then(function (res) {\n return res.files;\n });\n}\nfunction run_script(opt) {\n return syscall_async('run_script', opt);\n}\nfunction upload_file(opt) {\n return syscall_async('upload_file', opt);\n}\nvar syscall_async = exports.syscall_async = function syscall_async(tag, payload) {\n var ttl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10000;\n\n ttl = payload.ttl || ttl;\n return new Promise(function (resolve, reject) {\n var uuid = (0, _v2.default)();\n var timeout = setTimeout(function () {\n _socket.socket.off('system_res', cb);\n reject('timeout');\n }, ttl);\n var cb = function cb(data) {\n if (!data.uuid) return;\n if (data.uuid === uuid) {\n clearTimeout(timeout);\n _socket.socket.off('system_res', cb);\n resolve(data);\n }\n };\n _socket.socket.emit('system', { cmd: tag, payload: payload, uuid: uuid });\n _socket.socket.on('system_res', cb);\n });\n};","'use strict';\n\nvar _store = require('../store');\n\nvar _types = require('../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _socket = require('./socket.connection');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_socket.socket.on('api_res', function (data) {\n // console.log('system response', data)\n var type = _types2.default[data.datatype];\n console.log('api_res', data.type, data.datatype);\n if (!type) return console.error('socket:api_res bad datatype', data.datatype);\n switch (data.type) {\n case 'create':\n return (0, _store.dispatch)({\n type: type.create,\n source: 'socket',\n data: data.data\n });\n case 'update':\n return (0, _store.dispatch)({\n type: type.update,\n source: 'socket',\n data: data.data\n });\n case 'destroy':\n return (0, _store.dispatch)({\n type: type.destroy,\n source: 'socket',\n data: data.data\n });\n default:\n break;\n }\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.socket = undefined;\n\nvar _store = require('../store');\n\nvar _types = require('../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar socket = exports.socket = io.connect('/client');\n\n// SOCKET ACTIONS\n\nsocket.on('connect', function () {\n return _store.store.dispatch({ type: _types2.default.socket.connect });\n});\nsocket.on('connect_error', function (error) {\n return _store.store.dispatch({ type: _types2.default.socket.connect_error, error: error });\n});\nsocket.on('reconnect', function (attempt) {\n return _store.store.dispatch({ type: _types2.default.socket.reconnect, attempt: attempt });\n});\nsocket.on('reconnecting', function () {\n return _store.store.dispatch({ type: _types2.default.socket.reconnecting });\n});\nsocket.on('reconnect_error', function (error) {\n return _store.store.dispatch({ type: _types2.default.socket.reconnect_error, error: error });\n});\nsocket.on('reconnect_failed', function (error) {\n return _store.store.dispatch({ type: _types2.default.socket.reconnect_failed, error: error });\n});\nsocket.on('disconnect', function () {\n return _store.store.dispatch({ type: _types2.default.socket.disconnect });\n});\nsocket.on('error', function (error) {\n return _store.store.dispatch({ type: _types2.default.socket.error, error: error });\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.list_checkpoints = list_checkpoints;\nexports.list_epochs = list_epochs;\nexports.list_sequences = list_sequences;\nexports.load_epoch = load_epoch;\nexports.load_sequence = load_sequence;\nexports.seek = seek;\nexports.pause = pause;\nexports.play = play;\nexports.get_params = get_params;\nexports.set_param = set_param;\n\nvar _store = require('../store');\n\nvar _types = require('../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _player = require('../live/player');\n\nvar player = _interopRequireWildcard(_player);\n\nvar _socket = require('./socket.connection');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_socket.socket.on('res', function (data) {\n // console.log('socket:', data.cmd)\n switch (data.cmd) {\n case 'get_last_frame':\n if (data.res !== 'working') {\n _socket.socket.emit('cmd', {\n cmd: 'get_last_frame'\n });\n }\n break;\n case 'get_params':\n data.res && (0, _store.dispatch)({\n type: _types2.default.socket.load_params,\n opt: data.res\n });\n data.res && player.toggleFPS(data.res.processing);\n break;\n case 'list_checkpoints':\n (0, _store.dispatch)({\n type: _types2.default.socket.list_checkpoints,\n checkpoints: data.res\n });\n break;\n case 'list_epochs':\n (0, _store.dispatch)({\n type: _types2.default.socket.list_epochs,\n epochs: data.res\n });\n break;\n case 'list_sequences':\n (0, _store.dispatch)({\n type: _types2.default.socket.list_sequences,\n sequences: data.res\n });\n break;\n default:\n break;\n }\n // console.log(data)\n});\n\n_socket.socket.on('frame', player.onFrame);\n\nfunction list_checkpoints(module) {\n _socket.socket.emit('cmd', {\n cmd: 'list_checkpoints',\n payload: module\n });\n}\nfunction list_epochs(module, checkpoint_name) {\n _socket.socket.emit('cmd', {\n cmd: 'list_epochs',\n payload: module + '/' + checkpoint_name\n });\n}\nfunction list_sequences(module) {\n _socket.socket.emit('cmd', {\n cmd: 'list_sequences',\n payload: module\n });\n}\nfunction load_epoch(checkpoint_name, epoch) {\n console.log(\">> SWITCH CHECKPOINT\", checkpoint_name, epoch);\n _socket.socket.emit('cmd', {\n cmd: 'load_epoch',\n payload: checkpoint_name + ':' + epoch\n });\n}\nfunction load_sequence(sequence) {\n _socket.socket.emit('cmd', {\n cmd: 'load_sequence',\n payload: sequence\n });\n}\nfunction seek(frame) {\n _socket.socket.emit('cmd', {\n cmd: 'seek',\n payload: frame\n });\n}\nfunction pause(frame) {\n _socket.socket.emit('cmd', {\n cmd: 'pause'\n });\n}\nfunction play(frame) {\n _socket.socket.emit('cmd', {\n cmd: 'play'\n });\n}\nfunction get_params() {\n _socket.socket.emit('cmd', {\n cmd: 'get_params'\n });\n}\nfunction set_param(key, value) {\n _socket.socket.emit('cmd', {\n cmd: 'set_param',\n payload: {\n 'key': key,\n 'value': value\n }\n });\n}","'use strict';\n\nvar _store = require('../store');\n\nvar _types = require('../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _socket = require('./socket.connection');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_socket.socket.on('system_res', function (data) {\n // console.log('system response', data)\n switch (data.type) {\n case 'relay_connected':\n return (0, _store.dispatch)({\n type: _types2.default.system.relay_connected\n });\n case 'relay_disconnected':\n return (0, _store.dispatch)({\n type: _types2.default.system.relay_disconnected\n });\n case 'rpc_connected':\n return (0, _store.dispatch)({\n type: _types2.default.system.rpc_connected,\n runner: data.runner\n });\n case 'rpc_disconnected':\n return (0, _store.dispatch)({\n type: _types2.default.system.rpc_disconnected\n });\n case 'relay_status':\n return (0, _store.dispatch)({\n type: data.rpc_connected ? _types2.default.system.rpc_connected : _types2.default.system.rpc_disconnected,\n runner: data.runner\n });\n case 'site':\n return (0, _store.dispatch)({\n type: _types2.default.system.load_site,\n site: data.site\n });\n default:\n break;\n }\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.stop_queue = exports.start_queue = exports.stop_task = exports.start_task = exports.remove_task = exports.add_task = undefined;\n\nvar _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; };\n\nexports.emit = emit;\n\nvar _store = require('../store');\n\nvar _types = require('../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _socket = require('./socket.connection');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar finishTimeout = void 0;\n\n_socket.socket.on('task_res', function (data) {\n console.log('task response', data);\n if (data.task) {\n (0, _store.dispatch)({ type: _types2.default.task.update, data: data.task });\n }\n switch (data.type) {\n case 'start':\n // return dispatch({ type: types.system.rpc_connected, runner: data.runner })\n break;\n case 'stop':\n break;\n // begin and finish calls often arrive out of order, if the old task was preempted\n case 'task_begin':\n (0, _store.dispatch)({ type: _types2.default.task.task_begin, task: data.task });\n break;\n case 'task_finish':\n (0, _store.dispatch)({ type: _types2.default.task.task_finish, task: data.task });\n break;\n case 'kill':\n break;\n case 'stdout':\n return (0, _store.dispatch)({ type: _types2.default.system.stdout, data: data });\n break;\n case 'stderr':\n return (0, _store.dispatch)({ type: _types2.default.system.stderr, data: data });\n break;\n case 'add':\n break;\n case 'remove':\n break;\n case 'start_queue':\n break;\n case 'stop_queue':\n break;\n case 'list':\n break;\n case 'set_priority':\n break;\n case 'progress':\n (0, _store.dispatch)({ type: _types2.default.task.progress, task: data.task });\n break;\n case 'epoch':\n (0, _store.dispatch)({ type: _types2.default.task.epoch, task: data.task });\n break;\n case 'task_error':\n return console.log('task error', data);\n default:\n return console.log('no such task command', data.type);\n }\n});\n\nfunction emit(type) {\n var task = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var opt = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n _socket.socket.emit('task', _extends({ type: type, task: task }, opt));\n}\n\nvar add_task = exports.add_task = function add_task(task) {\n var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return emit('add', task, opt);\n};\nvar remove_task = exports.remove_task = function remove_task(task) {\n var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return emit('remove', task, opt);\n};\nvar start_task = exports.start_task = function start_task(task) {\n var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return emit('start', task, opt);\n};\nvar stop_task = exports.stop_task = function stop_task(task) {\n var opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return emit('stop', task, opt);\n};\nvar start_queue = exports.start_queue = function start_queue() {\n var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return emit('start_queue', {}, opt);\n};\nvar stop_queue = exports.stop_queue = function stop_queue() {\n var opt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return emit('stop_queue', {}, opt);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dispatch = exports.store = exports.history = undefined;\n\nvar _redux = require('redux');\n\nvar _reactRouterRedux = require('react-router-redux');\n\nvar _reduxThunk = require('redux-thunk');\n\nvar _reduxThunk2 = _interopRequireDefault(_reduxThunk);\n\nvar _createBrowserHistory = require('history/createBrowserHistory');\n\nvar _createBrowserHistory2 = _interopRequireDefault(_createBrowserHistory);\n\nvar _system = require('./system/system.reducer');\n\nvar _system2 = _interopRequireDefault(_system);\n\nvar _dashboard = require('./dashboard/dashboard.reducer');\n\nvar _dashboard2 = _interopRequireDefault(_dashboard);\n\nvar _live = require('./live/live.reducer');\n\nvar _live2 = _interopRequireDefault(_live);\n\nvar _upload = require('./dataset/upload.reducer');\n\nvar _upload2 = _interopRequireDefault(_upload);\n\nvar _queue = require('./queue/queue.reducer');\n\nvar _queue2 = _interopRequireDefault(_queue);\n\nvar _audioPlayer = require('./common/audioPlayer/audioPlayer.reducer');\n\nvar _audioPlayer2 = _interopRequireDefault(_audioPlayer);\n\nvar _module = require('./modules/module.reducer');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar appReducer = (0, _redux.combineReducers)({\n system: _system2.default,\n dashboard: _dashboard2.default,\n live: _live2.default,\n upload: _upload2.default,\n queue: _queue2.default,\n router: _reactRouterRedux.routerReducer,\n module: _module.moduleReducer,\n audioPlayer: _audioPlayer2.default\n});\n\n// import navReducer from './nav.reducer'\nvar history = exports.history = (0, _createBrowserHistory2.default)();\nvar store = exports.store = (0, _redux.createStore)(appReducer, (0, _redux.compose)((0, _redux.applyMiddleware)(\n// createLogger(),\n_reduxThunk2.default, (0, _reactRouterRedux.routerMiddleware)(history))));\n\nvar dispatch = exports.dispatch = store.dispatch;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.enqueue_test_task = exports.changeTool = exports.listDirectory = exports.run = undefined;\n\nvar _socket = require('../socket');\n\nvar _socket2 = _interopRequireDefault(_socket);\n\nvar _types = require('../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// import actions from '../actions'\n\nvar run = exports.run = function run(cmd) {\n return function (dispatch) {\n dispatch({ type: _types2.default.system.running_command, cmd: cmd });\n _socket2.default.actions.run_system_command({ cmd: cmd }).then(function (data) {\n dispatch({\n type: _types2.default.system.command_output,\n data: data\n });\n });\n };\n};\n\nvar listDirectory = exports.listDirectory = function listDirectory(opt) {\n return function (dispatch) {\n dispatch({ type: _types2.default.system.listing_directory, opt: opt });\n _socket2.default.actions.list_directory(opt).then(function (data) {\n dispatch({\n type: _types2.default.system.list_directory,\n data: data\n });\n });\n };\n};\n\nvar changeTool = exports.changeTool = function changeTool(tool) {\n localStorage.setItem('system.last_tool', tool);\n return { type: _types2.default.app.change_tool, tool: tool };\n};\n\nvar enqueue_test_task = exports.enqueue_test_task = function enqueue_test_task(dataset) {\n return function (dispatch) {\n var task = {\n module: 'test',\n activity: 'cpu',\n dataset: dataset\n // return actions.queue.add_task(task)\n };\n };\n};\n\nwindow.addEventListener('keyDown', function (e) {\n if (e.altKey) {\n switch (e.keyCode) {\n case 192:\n // tilde - switch tool\n break;\n case 49:\n // 1\n break;\n case 50:\n // 2\n break;\n case 51:\n // 3\n break;\n case 52:\n // 4\n break;\n case 53:\n // 5\n break;\n case 54:\n // 6\n break;\n case 55:\n // 7\n break;\n case 56:\n // 8\n break;\n case 57:\n // 9\n break;\n case 48:\n // 0\n break;\n }\n }\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; };\n\nvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _preact = require('preact');\n\nvar _redux = require('redux');\n\nvar _reactRedux = require('react-redux');\n\nvar _group = require('../common/group.component');\n\nvar _group2 = _interopRequireDefault(_group);\n\nvar _param = require('../common/param.component');\n\nvar _param2 = _interopRequireDefault(_param);\n\nvar _system = require('./system.actions');\n\nvar systemActions = _interopRequireWildcard(_system);\n\nvar _live = require('../live/live.actions');\n\nvar liveActions = _interopRequireWildcard(_live);\n\nvar _queue = require('../queue/queue.actions');\n\nvar queueActions = _interopRequireWildcard(_queue);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } 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; }\n\nvar cpu_test_task = {\n activity: 'cpu',\n module: 'test',\n dataset: 'test',\n epochs: 1,\n opt: {}\n};\nvar gpu_test_task = {\n activity: 'gpu',\n module: 'test',\n dataset: 'test',\n epochs: 1,\n opt: {}\n};\nvar live_test_task = {\n activity: 'live',\n module: 'test',\n dataset: 'test',\n epochs: 1,\n opt: {}\n};\nvar wait_test_task = {\n activity: 'wait',\n module: 'test',\n dataset: 'test',\n epochs: 1,\n opt: {}\n};\nvar fruits = [\"apple\", \"pear\", \"orange\", \"strawberry\"];\nfunction choice(a) {\n return a[Math.floor(Math.random() * a.length)];\n}\n\nvar System = function (_Component) {\n _inherits(System, _Component);\n\n function System(props) {\n _classCallCheck(this, System);\n\n return _possibleConstructorReturn(this, (System.__proto__ || Object.getPrototypeOf(System)).call(this));\n }\n\n _createClass(System, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this._screen.scrollHeight > this._screen.scrollTop - this._screen.offsetHeight + 100) {\n this._screen.scrollTop = this._screen.scrollHeight;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n site = _props.site,\n server = _props.server,\n relay = _props.relay,\n runner = _props.runner,\n rpc = _props.rpc,\n actions = _props.actions;\n\n return (0, _preact.h)(\n 'div',\n { className: 'app system' },\n (0, _preact.h)(\n 'div',\n { className: 'heading' },\n (0, _preact.h)(\n 'h1',\n null,\n site.name,\n ' system'\n )\n ),\n (0, _preact.h)(\n 'div',\n { className: 'row params' },\n (0, _preact.h)(\n 'div',\n { className: 'column' },\n (0, _preact.h)(\n _group2.default,\n { title: 'Status' },\n (0, _preact.h)(\n _param2.default,\n { title: 'Server' },\n server.status\n ),\n server.error && (0, _preact.h)(\n _param2.default,\n { title: 'Server error' },\n server.error.message\n ),\n (0, _preact.h)(\n _param2.default,\n { title: 'Relay' },\n relay.status\n ),\n (0, _preact.h)(\n _param2.default,\n { title: 'RPC' },\n rpc.status\n ),\n (0, _preact.h)(\n _param2.default,\n { title: 'CPU' },\n this.renderStatus(runner.cpu)\n ),\n (0, _preact.h)(\n _param2.default,\n { title: 'GPU' },\n this.renderStatus(runner.gpu)\n )\n ),\n (0, _preact.h)(\n _group2.default,\n { title: 'Diagnostics' },\n (0, _preact.h)(\n _param2.default,\n { title: 'Check GPU' },\n (0, _preact.h)(\n 'button',\n { onClick: function onClick() {\n return actions.system.run('nvidia-smi');\n } },\n 'nvidia-smi'\n )\n ),\n (0, _preact.h)(\n _param2.default,\n { title: 'List processes' },\n (0, _preact.h)(\n 'button',\n { onClick: function onClick() {\n return actions.system.run('ps');\n } },\n 'ps'\n )\n ),\n (0, _preact.h)(\n _param2.default,\n { title: 'List users' },\n (0, _preact.h)(\n 'button',\n { onClick: function onClick() {\n return actions.system.run('w');\n } },\n 'w'\n )\n ),\n (0, _preact.h)(\n _param2.default,\n { title: 'Disk free space' },\n (0, _preact.h)(\n 'button',\n { onClick: function onClick() {\n return actions.system.run('df');\n } },\n 'df'\n )\n )\n ),\n (0, _preact.h)(\n _group2.default,\n { title: 'Tasks' },\n (0, _preact.h)(\n _param2.default,\n { title: 'Kill task' },\n (0, _preact.h)(\n 'button',\n { onClick: function onClick() {\n return actions.queue.stop_task('cpu');\n } },\n 'CPU'\n ),\n (0, _preact.h)(\n 'button',\n { onClick: function onClick() {\n return actions.queue.stop_task('gpu');\n } },\n 'GPU'\n )\n ),\n (0, _preact.h)(\n _param2.default,\n { title: 'Queue' },\n (0, _preact.h)(\n 'button',\n { onClick: function onClick() {\n return actions.queue.start_queue();\n } },\n 'Start'\n ),\n (0, _preact.h)(\n 'button',\n { onClick: function onClick() {\n return actions.queue.stop_queue();\n } },\n 'Stop'\n )\n )\n ),\n (0, _preact.h)(\n _group2.default,\n { title: 'Test' },\n (0, _preact.h)(\n _param2.default,\n { title: 'CPU Test Task' },\n (0, _preact.h)(\n 'button',\n { onClick: function onClick() {\n return actions.queue.start_task(cpu_test_task, { preempt: true, watch: true });\n } },\n 'Start'\n ),\n (0, _preact.h)(\n 'button',\n { onClick: function onClick() {\n return actions.queue.stop_task(runner.cpu.task);\n } },\n 'Stop'\n )\n ),\n (0, _preact.h)(\n _param2.default,\n { title: 'GPU Test Task' },\n (0, _preact.h)(\n 'button',\n { onClick: function onClick() {\n return actions.queue.start_task(gpu_test_task, { preempt: true, watch: true });\n } },\n 'Start'\n ),\n (0, _preact.h)(\n 'button',\n { onClick: function onClick() {\n return actions.queue.stop_task(runner.gpu.task);\n } },\n 'Stop'\n )\n ),\n (0, _preact.h)(\n _param2.default,\n { title: 'Live Test Task' },\n (0, _preact.h)(\n 'button',\n { onClick: function onClick() {\n return actions.queue.start_task(live_test_task, { preempt: true, watch: true });\n } },\n 'Start'\n ),\n (0, _preact.h)(\n 'button',\n { onClick: function onClick() {\n return actions.queue.stop_task(runner.cpu.task);\n } },\n 'Stop'\n )\n ),\n (0, _preact.h)(\n _param2.default,\n { title: 'Test Live RPC' },\n (0, _preact.h)(\n 'button',\n { onClick: function onClick() {\n return actions.live.get_params();\n } },\n 'Get'\n ),\n (0, _preact.h)(\n 'button',\n { onClick: function onClick() {\n return actions.live.set_param('fruit', choice(fruits));\n } },\n 'Set'\n )\n ),\n (0, _preact.h)(\n _param2.default,\n { title: 'Queue Tests' },\n (0, _preact.h)(\n 'button',\n { onClick: function onClick() {\n return actions.system.enqueue_test_task(choice(fruits));\n } },\n '+Add test task'\n )\n ),\n (0, _preact.h)(\n _param2.default,\n { title: '' },\n (0, _preact.h)(\n 'button',\n { onClick: function onClick() {\n return actions.queue.start_task(wait_test_task, { preempt: true, watch: true });\n } },\n 'Wait and Buzz'\n )\n )\n )\n ),\n this.renderCommandOutput()\n )\n );\n }\n }, {\n key: 'renderStatus',\n value: function renderStatus(processor) {\n if (!processor) {\n return 'unknown';\n }\n if (processor.status === 'IDLE') {\n return 'idle';\n }\n var task = processor.task;\n return task.activity + ' ' + task.module;\n }\n }, {\n key: 'renderCommandOutput',\n value: function renderCommandOutput() {\n var _this2 = this;\n\n var _props2 = this.props,\n cmd = _props2.cmd,\n stdout = _props2.stdout,\n stderr = _props2.stderr;\n\n var output = void 0;\n if (cmd.loading) {\n output = 'Loading: ' + cmd.name;\n } else if (cmd.loaded) {\n if (cmd.error) {\n output = 'Error: ' + cmd.name + '\\n\\n' + JSON.stringify(cmd.error, null, 2);\n } else {\n output = cmd.stdout;\n if (cmd.stderr) {\n output += '\\n\\n_________________________________\\n\\n';\n output += cmd.stderr;\n }\n }\n } else {\n output = stdout;\n if (stderr.length) {\n output += '\\n\\n_________________________________\\n\\n';\n output += stderr;\n }\n }\n return (0, _preact.h)(\n 'div',\n null,\n (0, _preact.h)(\n 'div',\n { ref: function ref(_ref) {\n return _this2._screen = _ref;\n }, className: 'screen' },\n output\n )\n );\n }\n }]);\n\n return System;\n}(_preact.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return _extends({}, state.system, state.live);\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, ownProps) {\n return {\n actions: {\n system: (0, _redux.bindActionCreators)(systemActions, dispatch),\n queue: (0, _redux.bindActionCreators)(queueActions, dispatch),\n live: (0, _redux.bindActionCreators)(liveActions, dispatch)\n }\n };\n};\n\nexports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(System);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; };\n\nvar _types = require('../types');\n\nvar _types2 = _interopRequireDefault(_types);\n\nvar _moment = require('moment/min/moment.min');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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; }\n\nvar FileSaver = require('file-saver');\n\nvar systemInitialState = {\n loading: false,\n error: null,\n\n site: {\n name: 'loading'\n },\n app: {\n tool: localStorage.getItem('system.last_tool') || 'pix2pix'\n },\n server: {\n connected: false,\n status: \"disconnected\",\n error: null\n },\n relay: {\n connected: false,\n status: \"unknown\",\n error: null\n },\n rpc: {\n connected: false,\n status: \"disconnected\",\n error: null\n },\n cmd: {\n loading: false,\n loaded: false,\n name: null,\n error: null,\n stdout: \"\",\n stderr: \"\"\n },\n runner: {\n cpu: { status: 'IDLE', task: {} },\n gpu: { status: 'IDLE', task: {} }\n },\n stdout: \"\",\n stderr: \"\"\n};\n\nvar modules = ['pix2pix', 'samplernn', 'pix2wav'].reduce(function (a, b) {\n return a[b] = b, a;\n}, {});\n\nvar systemReducer = function systemReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : systemInitialState;\n var action = arguments[1];\n\n // console.log(action.type)\n var processor = null;\n switch (action.type) {\n case _types2.default.socket.connect:\n case _types2.default.socket.reconnecting:\n return _extends({}, state, {\n server: {\n status: 'connected',\n connected: true,\n error: null\n }\n });\n case _types2.default.socket.reconnect:\n return _extends({}, state, {\n server: {\n status: 'reconnecting (attempt ' + action.attempt + ')',\n connected: false,\n error: null\n }\n });\n case _types2.default.socket.connect_error:\n case _types2.default.socket.reconnect_error:\n case _types2.default.socket.disconnect:\n case _types2.default.socket.reconnect_failed:\n return _extends({}, state, {\n server: {\n status: 'disconnected',\n connected: false,\n error: action.error || null\n }\n });\n case _types2.default.socket.error:\n return _extends({}, state, {\n server: _extends({}, state.socket, {\n error: action.error\n })\n });\n case _types2.default.system.relay_connected:\n return _extends({}, state, {\n relay: {\n status: 'connected',\n connected: true,\n error: null\n }\n });\n case _types2.default.system.relay_disconnected:\n return _extends({}, state, {\n relay: {\n status: 'disconnected',\n connected: false,\n error: null\n },\n rpc: {\n status: 'disconnected',\n connected: false,\n error: null\n }\n });\n case _types2.default.system.rpc_connected:\n return _extends({}, state, {\n rpc: {\n status: 'connected',\n connected: true,\n error: null\n },\n runner: action.runner\n });\n case _types2.default.system.rpc_disconnected:\n return _extends({}, state, {\n rpc: {\n status: 'disconnected',\n connected: false,\n error: null\n },\n runner: action.runner || state.runner\n });\n case _types2.default.system.load_site:\n document.querySelector('title').innerHTML = action.site.name + '.cortex';\n var tool = state.app.tool;\n var path = window.location.pathname.split('/')[1];\n if (path in modules) {\n tool = path;\n }\n return _extends({}, state, {\n site: action.site,\n app: _extends({}, state.app, {\n tool: tool\n })\n });\n case _types2.default.system.running_command:\n return _extends({}, state, {\n cmd: {\n loading: true,\n loaded: false,\n name: action.cmd,\n error: null,\n stdout: null,\n stderr: null\n }\n });\n case _types2.default.system.command_output:\n return _extends({}, state, {\n cmd: {\n loading: false,\n loaded: true,\n name: action.data.cmd,\n error: action.data.error,\n stdout: action.data.stdout,\n stderr: action.data.stderr\n }\n });\n case _types2.default.task.task_begin:\n console.log('task begin', action.task, action.task.processor);\n return _extends({}, state, {\n runner: _extends({}, state.runner, _defineProperty({}, action.task.processor, { status: 'RUNNING', task: action.task })),\n cmd: _extends({}, state.cmd, {\n loaded: false,\n stdout: \"\",\n stderr: \"\"\n }),\n stdout: \"\",\n stderr: \"\"\n });\n case _types2.default.task.task_finish:\n if (action.task === 'cpu' || state.runner.cpu.task && action.task && state.runner.cpu.task.uuid === action.task.uuid) {\n processor = 'cpu';\n } else if (action.task === 'gpu' || state.runner.gpu.task && action.task && state.runner.gpu.task.uuid === action.task.uuid) {\n processor = 'gpu';\n } else {\n processor = null;\n }\n return _extends({}, state, {\n rpc: {\n connected: false,\n status: \"disconnected\",\n error: null\n },\n runner: processor ? _extends({}, state.runner, _defineProperty({}, processor, { status: 'IDLE', task: {} })) : state.runner\n });\n case _types2.default.app.change_tool:\n return _extends({}, state, {\n app: _extends({}, state.app, {\n tool: action.tool\n })\n });\n case _types2.default.system.stdout:\n if (action.data.processor && state.runner[action.data.processor]) {\n return _extends({}, state, {\n runner: _extends({}, state.runner, _defineProperty({}, action.data.processor, _extends({}, state.runner[action.data.processor], {\n last_message: action.data.data\n }))),\n stdout: state.stdout + action.data.data\n });\n }\n return _extends({}, state, {\n stdout: state.stdout + action.data.data\n });\n case _types2.default.system.stderr:\n return _extends({}, state, {\n last_message: action.data.data,\n stderr: state.stderr + action.data.data\n });\n default:\n return state;\n }\n};\n\nexports.default = systemReducer;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _crud = require('./api/crud.types');\n\nexports.default = {\n\tsystem: {\n\t\tload_site: 'SYSTEM_LOAD_SITE',\n\t\trunning_command: 'SYSTEM_RUNNING_COMMAND',\n\t\tcommand_output: 'SYSTEM_COMMAND_OUTPUT',\n\t\trelay_connected: 'SYSTEM_RELAY_CONNECTED',\n\t\trelay_disconnected: 'SYSTEM_RELAY_DISCONNECTED',\n\t\trpc_connected: 'SYSTEM_RPC_CONNECTED',\n\t\trpc_disconnected: 'SYSTEM_RPC_DISCONNECTED',\n\t\tlist_directory: 'SYSTEM_LIST_DIRECTORY',\n\t\tlisting_directory: 'SYSTEM_LISTING_DIRECTORY',\n\t\tstdout: 'SYSTEM_STDOUT',\n\t\tstderr: 'SYSTEM_STDERR'\n\t},\n\tapp: {\n\t\tchange_tool: \"APP_CHANGE_TOOL\",\n\t\tload_progress: \"APP_LOAD_PROGRESS\"\n\t},\n\tfolder: (0, _crud.crud_type)('folder', []),\n\tfile: (0, _crud.crud_type)('file', []),\n\ttask: (0, _crud.crud_type)('task', ['starting_task', 'stopping_task', 'task_begin', 'task_finish', 'start_queue', 'stop_queue', 'starting_queue', 'stopping_queue', 'progress', 'epoch']),\n\tsocket: {\n\t\tconnect: 'SOCKET_CONNECT',\n\t\tconnect_error: 'SOCKET_CONNECT_ERROR',\n\t\treconnect: 'SOCKET_RECONNECT',\n\t\treconnecting: 'SOCKET_RECONNECTING',\n\t\treconnect_error: 'SOCKET_RECONNECT_ERROR',\n\t\treconnect_failed: 'SOCKET_RECONNECT_FAILED',\n\t\tdisconnect: 'SOCKET_DISCONNECT',\n\t\terror: 'SOCKET_ERROR',\n\t\tstatus: 'SOCKET_STATUS',\n\n\t\tload_params: 'SOCKET_LOAD_PARAMS',\n\t\tlist_checkpoints: 'SOCKET_LIST_CHECKPOINTS',\n\t\tlist_sequences: 'SOCKET_LIST_SEQUENCES',\n\t\tlist_epochs: 'SOCKET_LIST_EPOCHS'\n\t},\n\tplayer: {\n\t\tget_params: 'GET_PARAMS',\n\t\tset_param: 'SET_PARAM',\n\n\t\tloading_checkpoints: 'LOADING_CHECKPOINTS',\n\t\tloading_checkpoint: 'LOADING_CHECKPOINT',\n\t\tlist_checkpoints: 'LIST_CHECKPOINTS',\n\n\t\tloading_sequences: 'LOADING_SEQUENCES',\n\t\tloading_sequence: 'LOADING_SEQUENCE',\n\t\tload_sequence: 'LOAD_SEQUENCE',\n\n\t\tloading_epochs: 'LOADING_EPOCHS',\n\t\tload_epoch: 'LOAD_EPOCH',\n\n\t\tset_fps: 'SET_FPS',\n\t\tseeking: 'SEEKING',\n\t\tpausing: 'PAUSING',\n\t\tplaying: 'PLAYING',\n\t\tcurrent_frame: 'CURRENT_FRAME',\n\t\tstart_recording: 'START_RECORDING',\n\t\tadd_record_frame: 'ADD_RECORD_FRAME',\n\t\tsave_frame: 'SAVE_FRAME',\n\t\tsaving_video: 'SAVING_VIDEO',\n\t\tsave_video: 'SAVE_VIDEO'\n\t},\n\taudioPlayer: {\n\t\tplay: 'AUDIO_PLAY',\n\t\tpause: 'AUDIO_PAUSE',\n\t\tresume: 'AUDIO_RESUME',\n\t\tenqueue: 'AUDIO_ENQUEUE'\n\t},\n\tdataset: {\n\t\tload: 'DATASET_LOAD',\n\t\tset_folder: 'DATASET_SET_FOLDER',\n\t\tupload_files: 'DATASET_UPLOAD_FILES',\n\t\tfile_progress: 'DATASET_FILE_PROGRESS',\n\t\tfile_uploaded: 'DATASET_FILE_UPLOADED',\n\t\tfetch_url: 'DATASET_FETCH_URL',\n\t\tfetch_progress: 'DATASET_FETCH_PROGRESS'\n\t},\n\tsamplernn: {\n\t\tinit: 'SAMPLERNN_INIT',\n\t\tset_folder: 'SAMPLERNN_SET_FOLDER',\n\t\tload_loss: 'SAMPLERNN_LOAD_LOSS',\n\t\tload_graph: 'SAMPLERNN_LOAD_GRAPH'\n\t\t// queue and train\n\t\t// update checkpoint settings\n\t\t// reset checkpoint settings\n\t\t// queue new checkpoint\n\t},\n\tpix2pix: (0, _crud.with_type)('pix2pix', ['init', 'set_folder']),\n\tpix2pixhd: (0, _crud.with_type)('pix2pixhd', ['init', 'set_folder']),\n\tpix2wav: (0, _crud.with_type)('pix2wav', ['init', 'set_folder']),\n\twav2pix: (0, _crud.with_type)('wav2pix', ['load', 'progress', 'finish', 'zip', 'uploading']),\n\tdashboard: (0, _crud.with_type)('dashboard', ['load'])\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.timeInSeconds = timeInSeconds;\nexports.gerund = gerund;\nexports.commatize = commatize;\nexports.carbon_date = carbon_date;\nexports.hush_views = hush_views;\nexports.hush_threads = hush_threads;\nexports.hush_size = hush_size;\nexports.hush_null = hush_null;\nexports.get_age = get_age;\nexports.courtesy_s = courtesy_s;\nfunction timeInSeconds(n) {\n return (n / 10).toFixed(1) + ' s.';\n}\nfunction gerund(s) {\n return s.replace(/e?$/, 'ing');\n}\nfunction commatize(n, radix) {\n radix = radix || 1024;\n var nums = [],\n i,\n counter = 0,\n r = Math.floor;\n if (n > radix) {\n n /= radix;\n nums.unshift(r(n * 10 % 10));\n nums.unshift(\".\");\n }\n do {\n i = n % 10;\n n = r(n / 10);\n if (n && !(++counter % 3)) {\n i = ' ' + r(i);\n }\n nums.unshift(r(i));\n } while (n);\n return nums.join(\"\");\n}\nfunction carbon_date(date, no_bold) {\n var span = (+new Date() - new Date(date)) / 1000,\n color;\n if (!no_bold && span < 86400) // modified today\n {\n color = \"new\";\n } else if (span < 604800) // modifed this week\n {\n color = \"recent\";\n } else if (span < 1209600) // modifed 2 weeks ago\n {\n color = \"med\";\n } else if (span < 3024000) // modifed 5 weeks ago\n {\n color = \"old\";\n } else if (span < 12315200) // modifed 6 months ago\n {\n color = \"older\";\n } else {\n color = \"quiet\";\n }\n return color;\n}\nfunction hush_views(n, bias, no_bold) {\n var txt = commatize(n, 1000);\n bias = bias || 1;\n n = n || 0;\n if (n < 30) {\n return [\"quiet\", n + \" v.\"];\n }\n if (n < 200) {\n return [\"quiet\", txt + \" v.\"];\n } else if (n < 500) {\n return [\"quiet\", txt + \" v.\"];\n } else if (n < 1000) {\n return [\"old\", txt + \" v.\"];\n } else if (n < 5000) {\n return [\"med\", txt + \" kv.\"];\n } else if (no_bold || n < 10000) {\n return [\"recent\", txt + \" kv.\"];\n } else {\n return [\"new\", txt + \" kv.\"];\n }\n}\nfunction hush_threads(n, bias, no_bold) {\n var txt = commatize(n, 1000);\n bias = bias || 1;\n n = n || 0;\n if (n < 10) {\n return [\"quiet\", n + \" t.\"];\n } else if (n < 25) {\n return [\"old\", txt + \" t.\"];\n } else if (n < 50) {\n return [\"med\", txt + \" t.\"];\n } else if (no_bold || n < 100) {\n return [\"recent\", txt + \" t.\"];\n } else {\n return [\"new\", txt + \" t.\"];\n }\n}\nfunction hush_size(n, bias, no_bold) {\n var txt = commatize(Math.round(n / 1024));\n bias = 1 || bias;\n n = n || 0;\n if (!n) {\n return ['', ''];\n }\n if (n < 1000) {\n return [\"quiet\", n + \" b.\"];\n }\n if (n < 1000000) {\n return [\"quiet\", txt + \" kb.\"];\n } else if (n < 20000000 / bias) {\n return [\"quiet\", txt + \" mb.\"];\n } else if (n < 50000000 / bias) {\n return [\"old\", txt + \" mb.\"];\n } else if (n < 80000000 / bias) {\n return [\"med\", txt + \" mb.\"];\n } else if (no_bold || n < 170000000 / bias) {\n return [\"recent\", txt + \" mb.\"];\n } else {\n return [\"new\", txt + \" mb.\"];\n }\n}\nfunction hush_null(n, unit, no_bold) {\n var s = unit ? n + \" \" + unit + \".\" : n;\n if (n < 3) {\n return [\"quiet\", s];\n } else if (n < 6) {\n return [\"older\", s];\n } else if (n < 10) {\n return [\"old\", s];\n } else if (n < 16) {\n return [\"med\", s];\n } else if (no_bold || n < 21) {\n return [\"recent\", s];\n } else {\n return [\"new\", s];\n }\n}\nfunction get_age(t) {\n var age = Math.abs(+Date.now() - new Date(t)) / 1000;\n var r = Math.floor;\n var m;\n if (age < 5) {\n return \"now\";\n }\n if (age < 60) {\n return r(age) + \"s\";\n }\n age /= 60;\n if (age < 60) {\n return r(age) + \"m\";\n }\n m = r(age % 60);\n age /= 60;\n if (m > 0 && age < 2) {\n return r(age) + \"h\" + m + \"m\";\n }\n if (age < 24) {\n return r(age) + \"h\";\n }\n age /= 24;\n if (age < 7) {\n return r(age) + \"d\";\n }\n age /= 7;\n if (age < 12) {\n return r(age) + \"w\";\n }\n age /= 4;\n if (age < 12) {\n return r(age) + \"m\";\n }\n age /= 12;\n return r(age) + \"y\";\n}\nfunction courtesy_s(n, s) {\n return n == 1 ? \"\" : s || \"s\";\n}","'use strict';\n\n/**\n * HiDPI Canvas Polyfill (1.0.10)\n *\n * Author: Jonathan D. Johnson (http://jondavidjohn.com)\n * Homepage: https://github.com/jondavidjohn/hidpi-canvas-polyfill\n * Issue Tracker: https://github.com/jondavidjohn/hidpi-canvas-polyfill/issues\n * License: Apache-2.0\n*/\n(function (prototype) {\n\n var pixelRatio = function () {\n var canvas = window.document.createElement('canvas'),\n context = canvas.getContext('2d'),\n backingStore = context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1;\n\n return (window.devicePixelRatio || 1) / backingStore;\n }(),\n forEach = function forEach(obj, func) {\n for (var p in obj) {\n if (obj.hasOwnProperty(p)) {\n func(obj[p], p);\n }\n }\n },\n ratioArgs = {\n 'fillRect': 'all',\n 'clearRect': 'all',\n 'strokeRect': 'all',\n 'moveTo': 'all',\n 'lineTo': 'all',\n 'arc': [0, 1, 2],\n 'arcTo': 'all',\n 'bezierCurveTo': 'all',\n 'isPointinPath': 'all',\n 'isPointinStroke': 'all',\n 'quadraticCurveTo': 'all',\n 'rect': 'all',\n 'translate': 'all',\n 'createRadialGradient': 'all',\n 'createLinearGradient': 'all'\n };\n\n if (pixelRatio === 1) return;\n\n forEach(ratioArgs, function (value, key) {\n prototype[key] = function (_super) {\n return function () {\n var i,\n len,\n args = Array.prototype.slice.call(arguments);\n\n if (value === 'all') {\n args = args.map(function (a) {\n return a * pixelRatio;\n });\n } else if (Array.isArray(value)) {\n for (i = 0, len = value.length; i < len; i++) {\n args[value[i]] *= pixelRatio;\n }\n }\n\n return _super.apply(this, args);\n };\n }(prototype[key]);\n });\n\n // Stroke lineWidth adjustment\n prototype.stroke = function (_super) {\n return function () {\n this.lineWidth *= pixelRatio;\n _super.apply(this, arguments);\n this.lineWidth /= pixelRatio;\n };\n }(prototype.stroke);\n\n // Text\n //\n prototype.fillText = function (_super) {\n return function () {\n var args = Array.prototype.slice.call(arguments);\n\n args[1] *= pixelRatio; // x\n args[2] *= pixelRatio; // y\n\n this.font = this.font.replace(/(\\d+)(px|em|rem|pt)/g, function (w, m, u) {\n return m * pixelRatio + u;\n });\n\n _super.apply(this, args);\n\n this.font = this.font.replace(/(\\d+)(px|em|rem|pt)/g, function (w, m, u) {\n return m / pixelRatio + u;\n });\n };\n }(prototype.fillText);\n\n prototype.strokeText = function (_super) {\n return function () {\n var args = Array.prototype.slice.call(arguments);\n\n args[1] *= pixelRatio; // x\n args[2] *= pixelRatio; // y\n\n this.font = this.font.replace(/(\\d+)(px|em|rem|pt)/g, function (w, m, u) {\n return m * pixelRatio + u;\n });\n\n _super.apply(this, args);\n\n this.font = this.font.replace(/(\\d+)(px|em|rem|pt)/g, function (w, m, u) {\n return m / pixelRatio + u;\n });\n };\n }(prototype.strokeText);\n})(window.CanvasRenderingContext2D.prototype);\n;(function (prototype) {\n prototype.getContext = function (_super) {\n return function (type) {\n var backingStore, ratio, context;\n\n if (type == '2d-lodpi') {\n context = _super.call(this, '2d');\n } else if (type === '2d') {\n context = _super.call(this, '2d');\n\n backingStore = context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1;\n\n ratio = (window.devicePixelRatio || 1) / backingStore;\n\n if (ratio > 1) {\n this.style.height = this.height + 'px';\n this.style.width = this.width + 'px';\n this.width *= ratio;\n this.height *= ratio;\n }\n } else {\n context = _super.call(this, type);\n }\n\n return context;\n };\n }(prototype.getContext);\n})(window.HTMLCanvasElement.prototype);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _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; };\n\nvar _sort = require('./sort');\n\nvar sort = _interopRequireWildcard(_sort);\n\nvar _format = require('./format');\n\nvar format = _interopRequireWildcard(_format);\n\nvar _math = require('./math');\n\nvar maths = _interopRequireWildcard(_math);\n\nrequire('./hidpi-canvas');\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nvar is_iphone = !!(navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i));\nvar is_ipad = !!navigator.userAgent.match(/iPad/i);\nvar is_android = !!navigator.userAgent.match(/Android/i);\nvar is_mobile = is_iphone || is_ipad || is_android;\nvar is_desktop = !is_mobile;\n\nvar htmlClassList = document.body.parentNode.classList;\nhtmlClassList.add(is_desktop ? 'desktop' : 'mobile');\nhtmlClassList.remove('loading');\n\n// window.debug = false\n\nvar allProgress = function allProgress(promises, progress_cb) {\n var d = 0;\n progress_cb(0, 0, promises.length);\n promises.forEach(function (p) {\n p.then(function (s) {\n d += 1;\n progress_cb(Math.floor(d * 100 / promises.length), d, promises.length);\n return s;\n });\n });\n return Promise.all(promises);\n};\n\ndocument.body.style.backgroundImage = 'linear-gradient(' + (maths.randint(40) + 40) + 'deg, #fde, #ffe)';\n\nvar fieldSet = function fieldSet(defaultFields) {\n return function (fields) {\n if (fields) {\n if (fields instanceof Set) {\n return fields;\n }\n return new Set(fields.split(' '));\n }\n return defaultFields;\n };\n};\n\nexports.default = _extends({}, maths, format, {\n sort: sort,\n allProgress: allProgress, fieldSet: fieldSet,\n is_iphone: is_iphone, is_ipad: is_ipad, is_android: is_android, is_mobile: is_mobile, is_desktop: is_desktop\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.randrange = randrange;\nexports.randsign = randsign;\nexports.choice = choice;\nexports.angle = angle;\nexports.dist = dist;\nexports.xor = xor;\nexports.quantize = quantize;\nexports.shuffle = shuffle;\nexports.gaussian = gaussian;\nvar mod = exports.mod = function mod(n, m) {\n return n - m * Math.floor(n / m);\n};\nvar clamp = exports.clamp = function clamp(n, a, b) {\n return n < a ? a : n < b ? n : b;\n};\nvar norm = exports.norm = function norm(n, a, b) {\n return (n - a) / (b - a);\n};\nvar lerp = exports.lerp = function lerp(n, a, b) {\n return (b - a) * n + a;\n};\nvar mix = exports.mix = function mix(n, a, b) {\n return a * (1 - n) + b * n;\n};\nvar randint = exports.randint = function randint(n) {\n return Math.floor(Math.random() * n);\n};\nfunction randrange(a, b) {\n return Math.random() * (b - a) + a;\n}\nfunction randsign() {\n return Math.random() >= 0.5 ? -1 : 1;\n}\nfunction choice(a) {\n return a[Math.floor(Math.random() * a.length)];\n}\nfunction angle(x0, y0, x1, y1) {\n return Math.atan2(y1 - y0, x1 - x0);\n}\nfunction dist(x0, y0, x1, y1) {\n return Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2));\n}\nfunction xor(a, b) {\n a = !!a;b = !!b;return (a || b) && !(a && b);\n}\nfunction quantize(a, b) {\n return Math.floor(a / b) * b;\n}\nfunction shuffle(a) {\n for (var i = a.length; i > 0; i--) {\n var r = randint(i);\n var swap = a[i - 1];\n a[i - 1] = a[r];\n a[r] = swap;\n }\n return a;\n}\n// returns a gaussian random function with the given mean and stdev.\nfunction gaussian(mean, stdev) {\n var y2 = void 0;\n var use_last = false;\n return function () {\n var y1 = void 0;\n if (use_last) {\n y1 = y2;\n use_last = false;\n } else {\n var x1 = void 0,\n x2 = void 0,\n w = void 0;\n do {\n x1 = 2.0 * Math.random() - 1.0;\n x2 = 2.0 * Math.random() - 1.0;\n w = x1 * x1 + x2 * x2;\n } while (w >= 1.0);\n w = Math.sqrt(-2.0 * Math.log(w) / w);\n y1 = x1 * w;\n y2 = x2 * w;\n use_last = true;\n }\n\n var retval = mean + stdev * y1;\n if (retval > 0) return retval;\n return -retval;\n };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar numericSort = exports.numericSort = {\n asc: function asc(a, b) {\n return a[0] - b[0];\n },\n desc: function desc(a, b) {\n return b[0] - a[0];\n }\n};\nvar stringSort = exports.stringSort = {\n asc: function asc(a, b) {\n return a[0].localeCompare(b[0]);\n },\n desc: function desc(a, b) {\n return b[0].localeCompare(a[0]);\n }\n};\nvar orderByFn = exports.orderByFn = function orderByFn() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'name asc';\n\n var _s$split = s.split(' '),\n _s$split2 = _slicedToArray(_s$split, 2),\n _s$split2$ = _s$split2[0],\n field = _s$split2$ === undefined ? 'name' : _s$split2$,\n _s$split2$2 = _s$split2[1],\n direction = _s$split2$2 === undefined ? 'asc' : _s$split2$2;\n\n var mapFn = void 0,\n sortFn = void 0;\n switch (field) {\n case 'epoch':\n mapFn = function mapFn(a) {\n return [parseInt(a.epoch || a.epochs) || 0, a];\n };\n sortFn = numericSort[direction];\n break;\n case 'size':\n mapFn = function mapFn(a) {\n return [parseInt(a.size) || 0, a];\n };\n sortFn = numericSort[direction];\n break;\n case 'date':\n mapFn = function mapFn(a) {\n return [+new Date(a.date || a.created_at), a];\n };\n sortFn = numericSort[direction];\n break;\n case 'updated_at':\n mapFn = function mapFn(a) {\n return [+new Date(a.updated_at), a];\n };\n sortFn = numericSort[direction];\n break;\n case 'priority':\n mapFn = function mapFn(a) {\n return [parseInt(a.priority) || parseInt(a.id) || 1000, a];\n };\n sortFn = numericSort[direction];\n case 'name':\n default:\n mapFn = function mapFn(a) {\n return [a.name || \"\", a];\n };\n sortFn = stringSort[direction];\n break;\n }\n return { mapFn: mapFn, sortFn: sortFn };\n};","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n for (var i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","(function (global, factory) {\n if (typeof define === 'function' && define.amd) {\n define(['exports', 'module'], factory);\n } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') {\n factory(exports, module);\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, mod);\n global.fetchJsonp = mod.exports;\n }\n})(this, function (exports, module) {\n 'use strict';\n\n var defaultOptions = {\n timeout: 5000,\n jsonpCallback: 'callback',\n jsonpCallbackFunction: null\n };\n\n function generateCallbackFunction() {\n return 'jsonp_' + Date.now() + '_' + Math.ceil(Math.random() * 100000);\n }\n\n function clearFunction(functionName) {\n // IE8 throws an exception when you try to delete a property on window\n // http://stackoverflow.com/a/1824228/751089\n try {\n delete window[functionName];\n } catch (e) {\n window[functionName] = undefined;\n }\n }\n\n function removeScript(scriptId) {\n var script = document.getElementById(scriptId);\n if (script) {\n document.getElementsByTagName('head')[0].removeChild(script);\n }\n }\n\n function fetchJsonp(_url) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n // to avoid param reassign\n var url = _url;\n var timeout = options.timeout || defaultOptions.timeout;\n var jsonpCallback = options.jsonpCallback || defaultOptions.jsonpCallback;\n\n var timeoutId = undefined;\n\n return new Promise(function (resolve, reject) {\n var callbackFunction = options.jsonpCallbackFunction || generateCallbackFunction();\n var scriptId = jsonpCallback + '_' + callbackFunction;\n\n window[callbackFunction] = function (response) {\n resolve({\n ok: true,\n // keep consistent with fetch API\n json: function json() {\n return Promise.resolve(response);\n }\n });\n\n if (timeoutId) clearTimeout(timeoutId);\n\n removeScript(scriptId);\n\n clearFunction(callbackFunction);\n };\n\n // Check if the user set their own params, and if not add a ? to start a list of params\n url += url.indexOf('?') === -1 ? '?' : '&';\n\n var jsonpScript = document.createElement('script');\n jsonpScript.setAttribute('src', '' + url + jsonpCallback + '=' + callbackFunction);\n if (options.charset) {\n jsonpScript.setAttribute('charset', options.charset);\n }\n jsonpScript.id = scriptId;\n document.getElementsByTagName('head')[0].appendChild(jsonpScript);\n\n timeoutId = setTimeout(function () {\n reject(new Error('JSONP request to ' + _url + ' timed out'));\n\n clearFunction(callbackFunction);\n removeScript(scriptId);\n window[callbackFunction] = function () {\n clearFunction(callbackFunction);\n };\n }, timeout);\n\n // Caught if got 404/500\n jsonpScript.onerror = function () {\n reject(new Error('JSONP request to ' + _url + ' failed'));\n\n clearFunction(callbackFunction);\n removeScript(scriptId);\n if (timeoutId) clearTimeout(timeoutId);\n };\n });\n }\n\n // export as global function\n /*\n let local;\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n local.fetchJsonp = fetchJsonp;\n */\n\n module.exports = fetchJsonp;\n});","'use strict';\n\nfunction FFT(size) {\n this.size = size | 0;\n if (this.size <= 1 || (this.size & (this.size - 1)) !== 0)\n throw new Error('FFT size must be a power of two and bigger than 1');\n\n this._csize = size << 1;\n\n // NOTE: Use of `var` is intentional for old V8 versions\n var table = new Array(this.size * 2);\n for (var i = 0; i < table.length; i += 2) {\n const angle = Math.PI * i / this.size;\n table[i] = Math.cos(angle);\n table[i + 1] = -Math.sin(angle);\n }\n this.table = table;\n\n // Find size's power of two\n var power = 0;\n for (var t = 1; this.size > t; t <<= 1)\n power++;\n\n // Calculate initial step's width:\n // * If we are full radix-4 - it is 2x smaller to give inital len=8\n // * Otherwise it is the same as `power` to give len=4\n this._width = power % 2 === 0 ? power - 1 : power;\n\n // Pre-compute bit-reversal patterns\n this._bitrev = new Array(1 << this._width);\n for (var j = 0; j < this._bitrev.length; j++) {\n this._bitrev[j] = 0;\n for (var shift = 0; shift < this._width; shift += 2) {\n var revShift = this._width - shift - 2;\n this._bitrev[j] |= ((j >>> shift) & 3) << revShift;\n }\n }\n\n this._out = null;\n this._data = null;\n this._inv = 0;\n}\nmodule.exports = FFT;\n\nFFT.prototype.fromComplexArray = function fromComplexArray(complex, storage) {\n var res = storage || new Array(complex.length >>> 1);\n for (var i = 0; i < complex.length; i += 2)\n res[i >>> 1] = complex[i];\n return res;\n};\n\nFFT.prototype.createComplexArray = function createComplexArray() {\n const res = new Array(this._csize);\n for (var i = 0; i < res.length; i++)\n res[i] = 0;\n return res;\n};\n\nFFT.prototype.toComplexArray = function toComplexArray(input, storage) {\n var res = storage || this.createComplexArray();\n for (var i = 0; i < res.length; i += 2) {\n res[i] = input[i >>> 1];\n res[i + 1] = 0;\n }\n return res;\n};\n\nFFT.prototype.completeSpectrum = function completeSpectrum(spectrum) {\n var size = this._csize;\n var half = size >>> 1;\n for (var i = 2; i < half; i += 2) {\n spectrum[size - i] = spectrum[i];\n spectrum[size - i + 1] = -spectrum[i + 1];\n }\n};\n\nFFT.prototype.transform = function transform(out, data) {\n if (out === data)\n throw new Error('Input and output buffers must be different');\n\n this._out = out;\n this._data = data;\n this._inv = 0;\n this._transform4();\n this._out = null;\n this._data = null;\n};\n\nFFT.prototype.realTransform = function realTransform(out, data) {\n if (out === data)\n throw new Error('Input and output buffers must be different');\n\n this._out = out;\n this._data = data;\n this._inv = 0;\n this._realTransform4();\n this._out = null;\n this._data = null;\n};\n\nFFT.prototype.inverseTransform = function inverseTransform(out, data) {\n if (out === data)\n throw new Error('Input and output buffers must be different');\n\n this._out = out;\n this._data = data;\n this._inv = 1;\n this._transform4();\n for (var i = 0; i < out.length; i++)\n out[i] /= this.size;\n this._out = null;\n this._data = null;\n};\n\n// radix-4 implementation\n//\n// NOTE: Uses of `var` are intentional for older V8 version that do not\n// support both `let compound assignments` and `const phi`\nFFT.prototype._transform4 = function _transform4() {\n var out = this._out;\n var size = this._csize;\n\n // Initial step (permute and transform)\n var width = this._width;\n var step = 1 << width;\n var len = (size / step) << 1;\n\n var outOff;\n var t;\n var bitrev = this._bitrev;\n if (len === 4) {\n for (outOff = 0, t = 0; outOff < size; outOff += len, t++) {\n const off = bitrev[t];\n this._singleTransform2(outOff, off, step);\n }\n } else {\n // len === 8\n for (outOff = 0, t = 0; outOff < size; outOff += len, t++) {\n const off = bitrev[t];\n this._singleTransform4(outOff, off, step);\n }\n }\n\n // Loop through steps in decreasing order\n var inv = this._inv ? -1 : 1;\n var table = this.table;\n for (step >>= 2; step >= 2; step >>= 2) {\n len = (size / step) << 1;\n var quarterLen = len >>> 2;\n\n // Loop through offsets in the data\n for (outOff = 0; outOff < size; outOff += len) {\n // Full case\n var limit = outOff + quarterLen;\n for (var i = outOff, k = 0; i < limit; i += 2, k += step) {\n const A = i;\n const B = A + quarterLen;\n const C = B + quarterLen;\n const D = C + quarterLen;\n\n // Original values\n const Ar = out[A];\n const Ai = out[A + 1];\n const Br = out[B];\n const Bi = out[B + 1];\n const Cr = out[C];\n const Ci = out[C + 1];\n const Dr = out[D];\n const Di = out[D + 1];\n\n // Middle values\n const MAr = Ar;\n const MAi = Ai;\n\n const tableBr = table[k];\n const tableBi = inv * table[k + 1];\n const MBr = Br * tableBr - Bi * tableBi;\n const MBi = Br * tableBi + Bi * tableBr;\n\n const tableCr = table[2 * k];\n const tableCi = inv * table[2 * k + 1];\n const MCr = Cr * tableCr - Ci * tableCi;\n const MCi = Cr * tableCi + Ci * tableCr;\n\n const tableDr = table[3 * k];\n const tableDi = inv * table[3 * k + 1];\n const MDr = Dr * tableDr - Di * tableDi;\n const MDi = Dr * tableDi + Di * tableDr;\n\n // Pre-Final values\n const T0r = MAr + MCr;\n const T0i = MAi + MCi;\n const T1r = MAr - MCr;\n const T1i = MAi - MCi;\n const T2r = MBr + MDr;\n const T2i = MBi + MDi;\n const T3r = inv * (MBr - MDr);\n const T3i = inv * (MBi - MDi);\n\n // Final values\n const FAr = T0r + T2r;\n const FAi = T0i + T2i;\n\n const FCr = T0r - T2r;\n const FCi = T0i - T2i;\n\n const FBr = T1r + T3i;\n const FBi = T1i - T3r;\n\n const FDr = T1r - T3i;\n const FDi = T1i + T3r;\n\n out[A] = FAr;\n out[A + 1] = FAi;\n out[B] = FBr;\n out[B + 1] = FBi;\n out[C] = FCr;\n out[C + 1] = FCi;\n out[D] = FDr;\n out[D + 1] = FDi;\n }\n }\n }\n};\n\n// radix-2 implementation\n//\n// NOTE: Only called for len=4\nFFT.prototype._singleTransform2 = function _singleTransform2(outOff, off,\n step) {\n const out = this._out;\n const data = this._data;\n\n const evenR = data[off];\n const evenI = data[off + 1];\n const oddR = data[off + step];\n const oddI = data[off + step + 1];\n\n const leftR = evenR + oddR;\n const leftI = evenI + oddI;\n const rightR = evenR - oddR;\n const rightI = evenI - oddI;\n\n out[outOff] = leftR;\n out[outOff + 1] = leftI;\n out[outOff + 2] = rightR;\n out[outOff + 3] = rightI;\n};\n\n// radix-4\n//\n// NOTE: Only called for len=8\nFFT.prototype._singleTransform4 = function _singleTransform4(outOff, off,\n step) {\n const out = this._out;\n const data = this._data;\n const inv = this._inv ? -1 : 1;\n const step2 = step * 2;\n const step3 = step * 3;\n\n // Original values\n const Ar = data[off];\n const Ai = data[off + 1];\n const Br = data[off + step];\n const Bi = data[off + step + 1];\n const Cr = data[off + step2];\n const Ci = data[off + step2 + 1];\n const Dr = data[off + step3];\n const Di = data[off + step3 + 1];\n\n // Pre-Final values\n const T0r = Ar + Cr;\n const T0i = Ai + Ci;\n const T1r = Ar - Cr;\n const T1i = Ai - Ci;\n const T2r = Br + Dr;\n const T2i = Bi + Di;\n const T3r = inv * (Br - Dr);\n const T3i = inv * (Bi - Di);\n\n // Final values\n const FAr = T0r + T2r;\n const FAi = T0i + T2i;\n\n const FBr = T1r + T3i;\n const FBi = T1i - T3r;\n\n const FCr = T0r - T2r;\n const FCi = T0i - T2i;\n\n const FDr = T1r - T3i;\n const FDi = T1i + T3r;\n\n out[outOff] = FAr;\n out[outOff + 1] = FAi;\n out[outOff + 2] = FBr;\n out[outOff + 3] = FBi;\n out[outOff + 4] = FCr;\n out[outOff + 5] = FCi;\n out[outOff + 6] = FDr;\n out[outOff + 7] = FDi;\n};\n\n// Real input radix-4 implementation\nFFT.prototype._realTransform4 = function _realTransform4() {\n var out = this._out;\n var size = this._csize;\n\n // Initial step (permute and transform)\n var width = this._width;\n var step = 1 << width;\n var len = (size / step) << 1;\n\n var outOff;\n var t;\n var bitrev = this._bitrev;\n if (len === 4) {\n for (outOff = 0, t = 0; outOff < size; outOff += len, t++) {\n const off = bitrev[t];\n this._singleRealTransform2(outOff, off >>> 1, step >>> 1);\n }\n } else {\n // len === 8\n for (outOff = 0, t = 0; outOff < size; outOff += len, t++) {\n const off = bitrev[t];\n this._singleRealTransform4(outOff, off >>> 1, step >>> 1);\n }\n }\n\n // Loop through steps in decreasing order\n var inv = this._inv ? -1 : 1;\n var table = this.table;\n for (step >>= 2; step >= 2; step >>= 2) {\n len = (size / step) << 1;\n var halfLen = len >>> 1;\n var quarterLen = halfLen >>> 1;\n var hquarterLen = quarterLen >>> 1;\n\n // Loop through offsets in the data\n for (outOff = 0; outOff < size; outOff += len) {\n for (var i = 0, k = 0; i <= hquarterLen; i += 2, k += step) {\n var A = outOff + i;\n var B = A + quarterLen;\n var C = B + quarterLen;\n var D = C + quarterLen;\n\n // Original values\n var Ar = out[A];\n var Ai = out[A + 1];\n var Br = out[B];\n var Bi = out[B + 1];\n var Cr = out[C];\n var Ci = out[C + 1];\n var Dr = out[D];\n var Di = out[D + 1];\n\n // Middle values\n var MAr = Ar;\n var MAi = Ai;\n\n var tableBr = table[k];\n var tableBi = inv * table[k + 1];\n var MBr = Br * tableBr - Bi * tableBi;\n var MBi = Br * tableBi + Bi * tableBr;\n\n var tableCr = table[2 * k];\n var tableCi = inv * table[2 * k + 1];\n var MCr = Cr * tableCr - Ci * tableCi;\n var MCi = Cr * tableCi + Ci * tableCr;\n\n var tableDr = table[3 * k];\n var tableDi = inv * table[3 * k + 1];\n var MDr = Dr * tableDr - Di * tableDi;\n var MDi = Dr * tableDi + Di * tableDr;\n\n // Pre-Final values\n var T0r = MAr + MCr;\n var T0i = MAi + MCi;\n var T1r = MAr - MCr;\n var T1i = MAi - MCi;\n var T2r = MBr + MDr;\n var T2i = MBi + MDi;\n var T3r = inv * (MBr - MDr);\n var T3i = inv * (MBi - MDi);\n\n // Final values\n var FAr = T0r + T2r;\n var FAi = T0i + T2i;\n\n var FBr = T1r + T3i;\n var FBi = T1i - T3r;\n\n out[A] = FAr;\n out[A + 1] = FAi;\n out[B] = FBr;\n out[B + 1] = FBi;\n\n // Output final middle point\n if (i === 0) {\n var FCr = T0r - T2r;\n var FCi = T0i - T2i;\n out[C] = FCr;\n out[C + 1] = FCi;\n continue;\n }\n\n // Do not overwrite ourselves\n if (i === hquarterLen)\n continue;\n\n // In the flipped case:\n // MAi = -MAi\n // MBr=-MBi, MBi=-MBr\n // MCr=-MCr\n // MDr=MDi, MDi=MDr\n var ST0r = T1r;\n var ST0i = -T1i;\n var ST1r = T0r;\n var ST1i = -T0i;\n var ST2r = -inv * T3i;\n var ST2i = -inv * T3r;\n var ST3r = -inv * T2i;\n var ST3i = -inv * T2r;\n\n var SFAr = ST0r + ST2r;\n var SFAi = ST0i + ST2i;\n\n var SFBr = ST1r + ST3i;\n var SFBi = ST1i - ST3r;\n\n var SA = outOff + quarterLen - i;\n var SB = outOff + halfLen - i;\n\n out[SA] = SFAr;\n out[SA + 1] = SFAi;\n out[SB] = SFBr;\n out[SB + 1] = SFBi;\n }\n }\n }\n};\n\n// radix-2 implementation\n//\n// NOTE: Only called for len=4\nFFT.prototype._singleRealTransform2 = function _singleRealTransform2(outOff,\n off,\n step) {\n const out = this._out;\n const data = this._data;\n\n const evenR = data[off];\n const oddR = data[off + step];\n\n const leftR = evenR + oddR;\n const rightR = evenR - oddR;\n\n out[outOff] = leftR;\n out[outOff + 1] = 0;\n out[outOff + 2] = rightR;\n out[outOff + 3] = 0;\n};\n\n// radix-4\n//\n// NOTE: Only called for len=8\nFFT.prototype._singleRealTransform4 = function _singleRealTransform4(outOff,\n off,\n step) {\n const out = this._out;\n const data = this._data;\n const inv = this._inv ? -1 : 1;\n const step2 = step * 2;\n const step3 = step * 3;\n\n // Original values\n const Ar = data[off];\n const Br = data[off + step];\n const Cr = data[off + step2];\n const Dr = data[off + step3];\n\n // Pre-Final values\n const T0r = Ar + Cr;\n const T1r = Ar - Cr;\n const T2r = Br + Dr;\n const T3r = inv * (Br - Dr);\n\n // Final values\n const FAr = T0r + T2r;\n\n const FBr = T1r;\n const FBi = -T3r;\n\n const FCr = T0r - T2r;\n\n const FDr = T1r;\n const FDi = T3r;\n\n out[outOff] = FAr;\n out[outOff + 1] = 0;\n out[outOff + 2] = FBr;\n out[outOff + 3] = FBi;\n out[outOff + 4] = FCr;\n out[outOff + 5] = 0;\n out[outOff + 6] = FDr;\n out[outOff + 7] = FDi;\n};\n","/* FileSaver.js\n * A saveAs() FileSaver implementation.\n * 1.3.2\n * 2016-06-16 18:25:19\n *\n * By Eli Grey, http://eligrey.com\n * License: MIT\n * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md\n */\n\n/*global self */\n/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */\n\n/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */\n\nvar saveAs = saveAs || (function(view) {\n\t\"use strict\";\n\t// IE <10 is explicitly unsupported\n\tif (typeof view === \"undefined\" || typeof navigator !== \"undefined\" && /MSIE [1-9]\\./.test(navigator.userAgent)) {\n\t\treturn;\n\t}\n\tvar\n\t\t doc = view.document\n\t\t // only get URL when necessary in case Blob.js hasn't overridden it yet\n\t\t, get_URL = function() {\n\t\t\treturn view.URL || view.webkitURL || view;\n\t\t}\n\t\t, save_link = doc.createElementNS(\"http://www.w3.org/1999/xhtml\", \"a\")\n\t\t, can_use_save_link = \"download\" in save_link\n\t\t, click = function(node) {\n\t\t\tvar event = new MouseEvent(\"click\");\n\t\t\tnode.dispatchEvent(event);\n\t\t}\n\t\t, is_safari = /constructor/i.test(view.HTMLElement) || view.safari\n\t\t, is_chrome_ios =/CriOS\\/[\\d]+/.test(navigator.userAgent)\n\t\t, throw_outside = function(ex) {\n\t\t\t(view.setImmediate || view.setTimeout)(function() {\n\t\t\t\tthrow ex;\n\t\t\t}, 0);\n\t\t}\n\t\t, force_saveable_type = \"application/octet-stream\"\n\t\t// the Blob API is fundamentally broken as there is no \"downloadfinished\" event to subscribe to\n\t\t, arbitrary_revoke_timeout = 1000 * 40 // in ms\n\t\t, revoke = function(file) {\n\t\t\tvar revoker = function() {\n\t\t\t\tif (typeof file === \"string\") { // file is an object URL\n\t\t\t\t\tget_URL().revokeObjectURL(file);\n\t\t\t\t} else { // file is a File\n\t\t\t\t\tfile.remove();\n\t\t\t\t}\n\t\t\t};\n\t\t\tsetTimeout(revoker, arbitrary_revoke_timeout);\n\t\t}\n\t\t, dispatch = function(filesaver, event_types, event) {\n\t\t\tevent_types = [].concat(event_types);\n\t\t\tvar i = event_types.length;\n\t\t\twhile (i--) {\n\t\t\t\tvar listener = filesaver[\"on\" + event_types[i]];\n\t\t\t\tif (typeof listener === \"function\") {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlistener.call(filesaver, event || filesaver);\n\t\t\t\t\t} catch (ex) {\n\t\t\t\t\t\tthrow_outside(ex);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t, auto_bom = function(blob) {\n\t\t\t// prepend BOM for UTF-8 XML and text/* types (including HTML)\n\t\t\t// note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n\t\t\tif (/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n\t\t\t\treturn new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});\n\t\t\t}\n\t\t\treturn blob;\n\t\t}\n\t\t, FileSaver = function(blob, name, no_auto_bom) {\n\t\t\tif (!no_auto_bom) {\n\t\t\t\tblob = auto_bom(blob);\n\t\t\t}\n\t\t\t// First try a.download, then web filesystem, then object URLs\n\t\t\tvar\n\t\t\t\t filesaver = this\n\t\t\t\t, type = blob.type\n\t\t\t\t, force = type === force_saveable_type\n\t\t\t\t, object_url\n\t\t\t\t, dispatch_all = function() {\n\t\t\t\t\tdispatch(filesaver, \"writestart progress write writeend\".split(\" \"));\n\t\t\t\t}\n\t\t\t\t// on any filesys errors revert to saving with object URLs\n\t\t\t\t, fs_error = function() {\n\t\t\t\t\tif ((is_chrome_ios || (force && is_safari)) && view.FileReader) {\n\t\t\t\t\t\t// Safari doesn't allow downloading of blob urls\n\t\t\t\t\t\tvar reader = new FileReader();\n\t\t\t\t\t\treader.onloadend = function() {\n\t\t\t\t\t\t\tvar url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');\n\t\t\t\t\t\t\tvar popup = view.open(url, '_blank');\n\t\t\t\t\t\t\tif(!popup) view.location.href = url;\n\t\t\t\t\t\t\turl=undefined; // release reference before dispatching\n\t\t\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\t\t\tdispatch_all();\n\t\t\t\t\t\t};\n\t\t\t\t\t\treader.readAsDataURL(blob);\n\t\t\t\t\t\tfilesaver.readyState = filesaver.INIT;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\t// don't create more object URLs than needed\n\t\t\t\t\tif (!object_url) {\n\t\t\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\t\t}\n\t\t\t\t\tif (force) {\n\t\t\t\t\t\tview.location.href = object_url;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar opened = view.open(object_url, \"_blank\");\n\t\t\t\t\t\tif (!opened) {\n\t\t\t\t\t\t\t// Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html\n\t\t\t\t\t\t\tview.location.href = object_url;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\tdispatch_all();\n\t\t\t\t\trevoke(object_url);\n\t\t\t\t}\n\t\t\t;\n\t\t\tfilesaver.readyState = filesaver.INIT;\n\n\t\t\tif (can_use_save_link) {\n\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tsave_link.href = object_url;\n\t\t\t\t\tsave_link.download = name;\n\t\t\t\t\tclick(save_link);\n\t\t\t\t\tdispatch_all();\n\t\t\t\t\trevoke(object_url);\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfs_error();\n\t\t}\n\t\t, FS_proto = FileSaver.prototype\n\t\t, saveAs = function(blob, name, no_auto_bom) {\n\t\t\treturn new FileSaver(blob, name || blob.name || \"download\", no_auto_bom);\n\t\t}\n\t;\n\t// IE 10+ (native saveAs)\n\tif (typeof navigator !== \"undefined\" && navigator.msSaveOrOpenBlob) {\n\t\treturn function(blob, name, no_auto_bom) {\n\t\t\tname = name || blob.name || \"download\";\n\n\t\t\tif (!no_auto_bom) {\n\t\t\t\tblob = auto_bom(blob);\n\t\t\t}\n\t\t\treturn navigator.msSaveOrOpenBlob(blob, name);\n\t\t};\n\t}\n\n\tFS_proto.abort = function(){};\n\tFS_proto.readyState = FS_proto.INIT = 0;\n\tFS_proto.WRITING = 1;\n\tFS_proto.DONE = 2;\n\n\tFS_proto.error =\n\tFS_proto.onwritestart =\n\tFS_proto.onprogress =\n\tFS_proto.onwrite =\n\tFS_proto.onabort =\n\tFS_proto.onerror =\n\tFS_proto.onwriteend =\n\t\tnull;\n\n\treturn saveAs;\n}(\n\t typeof self !== \"undefined\" && self\n\t|| typeof window !== \"undefined\" && window\n\t|| this.content\n));\n// `self` is undefined in Firefox for Android content script context\n// while `this` is nsIContentFrameMessageManager\n// with an attribute `content` that corresponds to the window\n\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports.saveAs = saveAs;\n} else if ((typeof define !== \"undefined\" && define !== null) && (define.amd !== null)) {\n define(\"FileSaver.js\", function() {\n return saveAs;\n });\n}\n","'use strict';\n\nexports.__esModule = true;\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nvar getConfirmation = exports.getConfirmation = function getConfirmation(message, callback) {\n return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nvar supportsPopStateOnHashChange = exports.supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nvar isExtraneousPopstateEvent = exports.isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};","'use strict';\n\nexports.__esModule = true;\nexports.locationsAreEqual = exports.createLocation = undefined;\n\nvar _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; };\n\nvar _resolvePathname = require('resolve-pathname');\n\nvar _resolvePathname2 = _interopRequireDefault(_resolvePathname);\n\nvar _valueEqual = require('value-equal');\n\nvar _valueEqual2 = _interopRequireDefault(_valueEqual);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createLocation = exports.createLocation = function createLocation(path, state, key, currentLocation) {\n var location = void 0;\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = (0, _PathUtils.parsePath)(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = (0, _resolvePathname2.default)(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && (0, _valueEqual2.default)(a.state, b.state);\n};","'use strict';\n\nexports.__esModule = true;\nvar addLeadingSlash = exports.addLeadingSlash = function addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nvar stripLeadingSlash = exports.stripLeadingSlash = function stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nvar hasBasename = exports.hasBasename = function hasBasename(path, prefix) {\n return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n};\n\nvar stripBasename = exports.stripBasename = function stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n};\n\nvar stripTrailingSlash = exports.stripTrailingSlash = function stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n\n\n var path = pathname || '/';\n\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n return path;\n};","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _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; };\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _DOMUtils = require('./DOMUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Browser history needs a DOM');\n\n var globalHistory = window.history;\n var canUseHistory = (0, _DOMUtils.supportsHistory)();\n var needsHashChangeListener = !(0, _DOMUtils.supportsPopStateOnHashChange)();\n\n var _props$forceRefresh = props.forceRefresh,\n forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n _props$getUserConfirm = props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';\n\n var getDOMLocation = function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n\n\n var path = pathname + search + hash;\n\n (0, _warning2.default)(!basename || (0, _PathUtils.hasBasename)(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n if (basename) path = (0, _PathUtils.stripBasename)(path, basename);\n\n return (0, _LocationUtils.createLocation)(path, state, key);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var transitionManager = (0, _createTransitionManager2.default)();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var handlePopState = function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if ((0, _DOMUtils.isExtraneousPopstateEvent)(event)) return;\n\n handlePop(getDOMLocation(event.state));\n };\n\n var handleHashChange = function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n };\n\n var forceNextPop = false;\n\n var handlePop = function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({ action: action, location: location });\n } else {\n revertPop(location);\n }\n });\n }\n };\n\n var revertPop = function revertPop(fromLocation) {\n var toLocation = history.location;\n\n // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n\n if (toIndex === -1) toIndex = 0;\n\n var fromIndex = allKeys.indexOf(fromLocation.key);\n\n if (fromIndex === -1) fromIndex = 0;\n\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n };\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key];\n\n // Public interface\n\n var createHref = function createHref(location) {\n return basename + (0, _PathUtils.createPath)(location);\n };\n\n var push = function push(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'PUSH';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.pushState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n nextKeys.push(location.key);\n allKeys = nextKeys;\n\n setState({ action: action, location: location });\n }\n } else {\n (0, _warning2.default)(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n\n window.location.href = href;\n }\n });\n };\n\n var replace = function replace(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'REPLACE';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.replaceState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n setState({ action: action, location: location });\n }\n } else {\n (0, _warning2.default)(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n\n window.location.replace(href);\n }\n });\n };\n\n var go = function go(n) {\n globalHistory.go(n);\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var listenerCount = 0;\n\n var checkDOMListeners = function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1) {\n (0, _DOMUtils.addEventListener)(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n (0, _DOMUtils.removeEventListener)(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n }\n };\n\n var isBlocked = false;\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n };\n\n var listen = function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n };\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexports.default = createBrowserHistory;","'use strict';\n\nexports.__esModule = true;\n\nvar _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; };\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _DOMUtils = require('./DOMUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar HashChangeEvent = 'hashchange';\n\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + (0, _PathUtils.stripLeadingSlash)(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: _PathUtils.stripLeadingSlash,\n decodePath: _PathUtils.addLeadingSlash\n },\n slash: {\n encodePath: _PathUtils.addLeadingSlash,\n decodePath: _PathUtils.addLeadingSlash\n }\n};\n\nvar getHashPath = function getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n};\n\nvar pushHashPath = function pushHashPath(path) {\n return window.location.hash = path;\n};\n\nvar replaceHashPath = function replaceHashPath(path) {\n var hashIndex = window.location.href.indexOf('#');\n\n window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n};\n\nvar createHashHistory = function createHashHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Hash history needs a DOM');\n\n var globalHistory = window.history;\n var canGoWithoutReload = (0, _DOMUtils.supportsGoWithoutReloadUsingHash)();\n\n var _props$getUserConfirm = props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n _props$hashType = props.hashType,\n hashType = _props$hashType === undefined ? 'slash' : _props$hashType;\n\n var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';\n\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n\n var getDOMLocation = function getDOMLocation() {\n var path = decodePath(getHashPath());\n\n (0, _warning2.default)(!basename || (0, _PathUtils.hasBasename)(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n if (basename) path = (0, _PathUtils.stripBasename)(path, basename);\n\n return (0, _LocationUtils.createLocation)(path);\n };\n\n var transitionManager = (0, _createTransitionManager2.default)();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var forceNextPop = false;\n var ignorePath = null;\n\n var handleHashChange = function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n\n if (!forceNextPop && (0, _LocationUtils.locationsAreEqual)(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === (0, _PathUtils.createPath)(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n\n handlePop(location);\n }\n };\n\n var handlePop = function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({ action: action, location: location });\n } else {\n revertPop(location);\n }\n });\n }\n };\n\n var revertPop = function revertPop(fromLocation) {\n var toLocation = history.location;\n\n // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(toLocation));\n\n if (toIndex === -1) toIndex = 0;\n\n var fromIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(fromLocation));\n\n if (fromIndex === -1) fromIndex = 0;\n\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n };\n\n // Ensure the hash is encoded properly before doing anything else.\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) replaceHashPath(encodedPath);\n\n var initialLocation = getDOMLocation();\n var allPaths = [(0, _PathUtils.createPath)(initialLocation)];\n\n // Public interface\n\n var createHref = function createHref(location) {\n return '#' + encodePath(basename + (0, _PathUtils.createPath)(location));\n };\n\n var push = function push(path, state) {\n (0, _warning2.default)(state === undefined, 'Hash history cannot push state; it is ignored');\n\n var action = 'PUSH';\n var location = (0, _LocationUtils.createLocation)(path, undefined, undefined, history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var path = (0, _PathUtils.createPath)(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n\n var prevIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(history.location));\n var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n nextPaths.push(path);\n allPaths = nextPaths;\n\n setState({ action: action, location: location });\n } else {\n (0, _warning2.default)(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack');\n\n setState();\n }\n });\n };\n\n var replace = function replace(path, state) {\n (0, _warning2.default)(state === undefined, 'Hash history cannot replace state; it is ignored');\n\n var action = 'REPLACE';\n var location = (0, _LocationUtils.createLocation)(path, undefined, undefined, history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var path = (0, _PathUtils.createPath)(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf((0, _PathUtils.createPath)(history.location));\n\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n\n setState({ action: action, location: location });\n });\n };\n\n var go = function go(n) {\n (0, _warning2.default)(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser');\n\n globalHistory.go(n);\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var listenerCount = 0;\n\n var checkDOMListeners = function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1) {\n (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n }\n };\n\n var isBlocked = false;\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n };\n\n var listen = function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n };\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexports.default = createHashHistory;","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _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; };\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar clamp = function clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n};\n\n/**\n * Creates a history object that stores locations in memory.\n */\nvar createMemoryHistory = function createMemoryHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var getUserConfirmation = props.getUserConfirmation,\n _props$initialEntries = props.initialEntries,\n initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n _props$initialIndex = props.initialIndex,\n initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n var transitionManager = (0, _createTransitionManager2.default)();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? (0, _LocationUtils.createLocation)(entry, undefined, createKey()) : (0, _LocationUtils.createLocation)(entry, undefined, entry.key || createKey());\n });\n\n // Public interface\n\n var createHref = _PathUtils.createPath;\n\n var push = function push(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'PUSH';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n\n var nextEntries = history.entries.slice(0);\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n };\n\n var replace = function replace(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'REPLACE';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n history.entries[history.index] = location;\n\n setState({ action: action, location: location });\n });\n };\n\n var go = function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\n var action = 'POP';\n var location = history.entries[nextIndex];\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var canGo = function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n };\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n return transitionManager.setPrompt(prompt);\n };\n\n var listen = function listen(listener) {\n return transitionManager.appendListener(listener);\n };\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexports.default = createMemoryHistory;","'use strict';\n\nexports.__esModule = true;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createTransitionManager = function createTransitionManager() {\n var prompt = null;\n\n var setPrompt = function setPrompt(nextPrompt) {\n (0, _warning2.default)(prompt == null, 'A history supports only one prompt at a time');\n\n prompt = nextPrompt;\n\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n (0, _warning2.default)(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n };\n\n var listeners = [];\n\n var appendListener = function appendListener(fn) {\n var isActive = true;\n\n var listener = function listener() {\n if (isActive) fn.apply(undefined, arguments);\n };\n\n listeners.push(listener);\n\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var notifyListeners = function notifyListeners() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(undefined, args);\n });\n };\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n};\n\nexports.default = createTransitionManager;","export var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nexport var addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nexport var removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nexport var getConfirmation = function getConfirmation(message, callback) {\n return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nexport var supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nexport var supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nexport var supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nexport var isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};","var _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; };\n\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport { parsePath } from './PathUtils';\n\nexport var createLocation = function createLocation(path, state, key, currentLocation) {\n var location = void 0;\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n};\n\nexport var locationsAreEqual = function locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n};","export var addLeadingSlash = function addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nexport var stripLeadingSlash = function stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nexport var hasBasename = function hasBasename(path, prefix) {\n return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n};\n\nexport var stripBasename = function stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n};\n\nexport var stripTrailingSlash = function stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n};\n\nexport var parsePath = function parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n};\n\nexport var createPath = function createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n\n\n var path = pathname || '/';\n\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n return path;\n};","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _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; };\n\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport { createLocation } from './LocationUtils';\nimport { addLeadingSlash, stripTrailingSlash, hasBasename, stripBasename, createPath } from './PathUtils';\nimport createTransitionManager from './createTransitionManager';\nimport { canUseDOM, addEventListener, removeEventListener, getConfirmation, supportsHistory, supportsPopStateOnHashChange, isExtraneousPopstateEvent } from './DOMUtils';\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nvar getHistoryState = function getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n};\n\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\nvar createBrowserHistory = function createBrowserHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n invariant(canUseDOM, 'Browser history needs a DOM');\n\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n\n var _props$forceRefresh = props.forceRefresh,\n forceRefresh = _props$forceRefresh === undefined ? false : _props$forceRefresh,\n _props$getUserConfirm = props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === undefined ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n var getDOMLocation = function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n\n\n var path = pathname + search + hash;\n\n warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n if (basename) path = stripBasename(path, basename);\n\n return createLocation(path, state, key);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var transitionManager = createTransitionManager();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var handlePopState = function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n\n handlePop(getDOMLocation(event.state));\n };\n\n var handleHashChange = function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n };\n\n var forceNextPop = false;\n\n var handlePop = function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({ action: action, location: location });\n } else {\n revertPop(location);\n }\n });\n }\n };\n\n var revertPop = function revertPop(fromLocation) {\n var toLocation = history.location;\n\n // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n\n if (toIndex === -1) toIndex = 0;\n\n var fromIndex = allKeys.indexOf(fromLocation.key);\n\n if (fromIndex === -1) fromIndex = 0;\n\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n };\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key];\n\n // Public interface\n\n var createHref = function createHref(location) {\n return basename + createPath(location);\n };\n\n var push = function push(path, state) {\n warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.pushState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n nextKeys.push(location.key);\n allKeys = nextKeys;\n\n setState({ action: action, location: location });\n }\n } else {\n warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history');\n\n window.location.href = href;\n }\n });\n };\n\n var replace = function replace(path, state) {\n warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n\n if (canUseHistory) {\n globalHistory.replaceState({ key: key, state: state }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n\n setState({ action: action, location: location });\n }\n } else {\n warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history');\n\n window.location.replace(href);\n }\n });\n };\n\n var go = function go(n) {\n globalHistory.go(n);\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var listenerCount = 0;\n\n var checkDOMListeners = function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1) {\n addEventListener(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) addEventListener(window, HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n removeEventListener(window, PopStateEvent, handlePopState);\n\n if (needsHashChangeListener) removeEventListener(window, HashChangeEvent, handleHashChange);\n }\n };\n\n var isBlocked = false;\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n };\n\n var listen = function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n };\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexport default createBrowserHistory;","var _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; };\n\nimport warning from 'warning';\nimport invariant from 'invariant';\nimport { createLocation, locationsAreEqual } from './LocationUtils';\nimport { addLeadingSlash, stripLeadingSlash, stripTrailingSlash, hasBasename, stripBasename, createPath } from './PathUtils';\nimport createTransitionManager from './createTransitionManager';\nimport { canUseDOM, addEventListener, removeEventListener, getConfirmation, supportsGoWithoutReloadUsingHash } from './DOMUtils';\n\nvar HashChangeEvent = 'hashchange';\n\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nvar getHashPath = function getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n};\n\nvar pushHashPath = function pushHashPath(path) {\n return window.location.hash = path;\n};\n\nvar replaceHashPath = function replaceHashPath(path) {\n var hashIndex = window.location.href.indexOf('#');\n\n window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n};\n\nvar createHashHistory = function createHashHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n invariant(canUseDOM, 'Hash history needs a DOM');\n\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n\n var _props$getUserConfirm = props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === undefined ? getConfirmation : _props$getUserConfirm,\n _props$hashType = props.hashType,\n hashType = _props$hashType === undefined ? 'slash' : _props$hashType;\n\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n\n var getDOMLocation = function getDOMLocation() {\n var path = decodePath(getHashPath());\n\n warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n if (basename) path = stripBasename(path, basename);\n\n return createLocation(path);\n };\n\n var transitionManager = createTransitionManager();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var forceNextPop = false;\n var ignorePath = null;\n\n var handleHashChange = function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n\n if (!forceNextPop && locationsAreEqual(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n\n handlePop(location);\n }\n };\n\n var handlePop = function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({ action: action, location: location });\n } else {\n revertPop(location);\n }\n });\n }\n };\n\n var revertPop = function revertPop(fromLocation) {\n var toLocation = history.location;\n\n // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n\n if (toIndex === -1) toIndex = 0;\n\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n\n if (fromIndex === -1) fromIndex = 0;\n\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n };\n\n // Ensure the hash is encoded properly before doing anything else.\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) replaceHashPath(encodedPath);\n\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)];\n\n // Public interface\n\n var createHref = function createHref(location) {\n return '#' + encodePath(basename + createPath(location));\n };\n\n var push = function push(path, state) {\n warning(state === undefined, 'Hash history cannot push state; it is ignored');\n\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n nextPaths.push(path);\n allPaths = nextPaths;\n\n setState({ action: action, location: location });\n } else {\n warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack');\n\n setState();\n }\n });\n };\n\n var replace = function replace(path, state) {\n warning(state === undefined, 'Hash history cannot replace state; it is ignored');\n\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n\n setState({ action: action, location: location });\n });\n };\n\n var go = function go(n) {\n warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser');\n\n globalHistory.go(n);\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var listenerCount = 0;\n\n var checkDOMListeners = function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1) {\n addEventListener(window, HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n removeEventListener(window, HashChangeEvent, handleHashChange);\n }\n };\n\n var isBlocked = false;\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n };\n\n var listen = function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n };\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexport default createHashHistory;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _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; };\n\nimport warning from 'warning';\nimport { createPath } from './PathUtils';\nimport { createLocation } from './LocationUtils';\nimport createTransitionManager from './createTransitionManager';\n\nvar clamp = function clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n};\n\n/**\n * Creates a history object that stores locations in memory.\n */\nvar createMemoryHistory = function createMemoryHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var getUserConfirmation = props.getUserConfirmation,\n _props$initialEntries = props.initialEntries,\n initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n _props$initialIndex = props.initialIndex,\n initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n var transitionManager = createTransitionManager();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n });\n\n // Public interface\n\n var createHref = createPath;\n\n var push = function push(path, state) {\n warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n\n var nextEntries = history.entries.slice(0);\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n };\n\n var replace = function replace(path, state) {\n warning(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n history.entries[history.index] = location;\n\n setState({ action: action, location: location });\n });\n };\n\n var go = function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\n var action = 'POP';\n var location = history.entries[nextIndex];\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var canGo = function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n };\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n return transitionManager.setPrompt(prompt);\n };\n\n var listen = function listen(listener) {\n return transitionManager.appendListener(listener);\n };\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexport default createMemoryHistory;","import warning from 'warning';\n\nvar createTransitionManager = function createTransitionManager() {\n var prompt = null;\n\n var setPrompt = function setPrompt(nextPrompt) {\n warning(prompt == null, 'A history supports only one prompt at a time');\n\n prompt = nextPrompt;\n\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n };\n\n var listeners = [];\n\n var appendListener = function appendListener(fn) {\n var isActive = true;\n\n var listener = function listener() {\n if (isActive) fn.apply(undefined, arguments);\n };\n\n listeners.push(listener);\n\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var notifyListeners = function notifyListeners() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(undefined, args);\n });\n };\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n};\n\nexport default createTransitionManager;","import _createBrowserHistory from './createBrowserHistory';\nexport { _createBrowserHistory as createBrowserHistory };\nimport _createHashHistory from './createHashHistory';\nexport { _createHashHistory as createHashHistory };\nimport _createMemoryHistory from './createMemoryHistory';\nexport { _createMemoryHistory as createMemoryHistory };\n\nexport { createLocation, locationsAreEqual } from './LocationUtils';\nexport { parsePath, createPath } from './PathUtils';","/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.hoistNonReactStatics = factory());\n}(this, (function () {\n 'use strict';\n \n var REACT_STATICS = {\n childContextTypes: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n };\n \n var KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n };\n \n var defineProperty = Object.defineProperty;\n var getOwnPropertyNames = Object.getOwnPropertyNames;\n var getOwnPropertySymbols = Object.getOwnPropertySymbols;\n var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var getPrototypeOf = Object.getPrototypeOf;\n var objectPrototype = getPrototypeOf && getPrototypeOf(Object);\n \n return function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components\n \n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n \n var keys = getOwnPropertyNames(sourceComponent);\n \n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n \n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!REACT_STATICS[key] && !KNOWN_STATICS[key] && (!blacklist || !blacklist[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try { // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n \n return targetComponent;\n }\n \n return targetComponent;\n };\n})));\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\n{\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a