{"version":3,"sources":["webpack:///./node_modules/elasticsearch/src/elasticsearch.js","webpack:///./node_modules/events/events.js","webpack:///./node_modules/elasticsearch/src/lib/serializers/angular.js","webpack:///./node_modules/elasticsearch/src/lib/connectors/browser_index.js","webpack:///./node_modules/util/support/isBufferBrowser.js","webpack:///./node_modules/elasticsearch/src/lib/connectors/jquery.js","webpack:///./node_modules/elasticsearch/src/lib/serializers/json.js","webpack:///./node_modules/@material-ui/core/esm/Card/Card.js","webpack:///./node_modules/elasticsearch/src/lib/transport.js","webpack:///./node_modules/elasticsearch/src/lib/selectors/random.js","webpack:///./node_modules/elasticsearch/src/lib/errors.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/querystring-es3/encode.js","webpack:///./node_modules/elasticsearch/src/lib/connectors/angular.js","webpack:///./node_modules/react-typewriting/dist/Typewriting.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/elasticsearch/src/lib/connection.js","webpack:///./node_modules/url/url.js","webpack:///./node_modules/node-libs-browser/node_modules/punycode/punycode.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/node-libs-browser/node_modules/buffer/index.js","webpack:///./node_modules/elasticsearch/src/lib/connection_pool.js","webpack:///./node_modules/@material-ui/core/esm/CardMedia/CardMedia.js","webpack:///./node_modules/elasticsearch/src/lib/client.js","webpack:///./node_modules/elasticsearch/src/lib/logger.js","webpack:///./node_modules/util/node_modules/inherits/inherits_browser.js","webpack:///./node_modules/util/util.js","webpack:///./node_modules/url/util.js","webpack:///./node_modules/elasticsearch/src/lib/connectors/xhr.js","webpack:///./node_modules/elasticsearch/src/lib/selectors/index.js","webpack:///./node_modules/elasticsearch/src/lib/host.js","webpack:///./node_modules/elasticsearch/src/lib/loggers/browser_index.js","webpack:///./node_modules/react-input-hints/dist/InputHints.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/elasticsearch/src/lib/apis/browser_index.js","webpack:///./node_modules/elasticsearch/src/lib/nodes_to_host.js","webpack:///./node_modules/elasticsearch/src/lib/serializers/index.js","webpack:///./src/components/Layout/SEOHelmet.jsx","webpack:///./node_modules/elasticsearch/src/lib/log.js","webpack:///./node_modules/elasticsearch/src/lib/transport/find_common_protocol.js","webpack:///./node_modules/elasticsearch/src/lib/loggers/console.js","webpack:///./node_modules/elasticsearch/src/lib/transport/sniff_on_connection_fault.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/querystring-es3/decode.js","webpack:///./node_modules/elasticsearch/src/lib/utils.js","webpack:///./node_modules/@material-ui/core/esm/CardContent/CardContent.js","webpack:///./node_modules/querystring-es3/index.js","webpack:///./node_modules/@material-ui/core/esm/Grid/Grid.js","webpack:///./node_modules/elasticsearch/src/lib/client_action.js","webpack:///./src/components/Index/ElasticParam.js","webpack:///./node_modules/elasticsearch/src/lib/selectors/round_robin.js"],"names":["es","Error","Client","ConnectionPool","Transport","errors","module","exports","ReflectOwnKeys","R","Reflect","ReflectApply","apply","target","receiver","args","Function","prototype","call","ownKeys","Object","getOwnPropertySymbols","getOwnPropertyNames","concat","NumberIsNaN","Number","isNaN","value","EventEmitter","init","this","once","emitter","name","Promise","resolve","reject","eventListener","undefined","errorListener","removeListener","slice","arguments","err","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","TypeError","_getMaxListeners","that","_addListener","type","prepend","m","events","existing","warning","create","newListener","emit","unshift","push","length","warned","w","String","count","console","warn","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","bind","_listeners","unwrap","evlistener","arr","ret","Array","i","unwrapListeners","arrayClone","listenerCount","n","copy","defineProperty","enumerable","get","set","arg","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","error","er","message","context","handler","len","listeners","addListener","on","prependListener","prependOnceListener","list","position","originalListener","shift","index","pop","spliceOne","off","removeAllListeners","key","keys","rawListeners","eventNames","utils","JsonSerializer","AngularSerializer","inherits","encode","val","angular","toJson","opts","xhr","jquery","each","conn","_default","fill","readUInt8","JqueryConnector","ConnectionAbstract","ConnectionFault","host","config","request","params","cb","ajax","url","makeUrl","data","body","method","dataType","headers","getHeaders","done","jqXHR","jQuery","statusCode","getResponseHeader","fail","a","b","responseText","abort","Json","_","serialize","replacer","spaces","JSON","stringify","contentType","deserialize","str","parse","e","bulkBody","isArray","Card","props","ref","classes","className","_props$raised","raised","other","root","elevation","overflow","Host","patchSniffOnConnectionFault","findCommonProtocol","self","LogClass","_config","log","funcEnum","connectionPools","connectionPool","Serializer","serializers","serializer","nodesToHostCallback","nodesToHostCallbacks","maxRetries","hasOwnProperty","sniffEndpoint","requestTimeout","pingTimeout","defer","randomizeHosts","hosts","hostsConfig","createArray","isPlainObject","isString","shuffle","setHosts","sniffedNodesProtocol","getAllHosts","sniffedNodesFilterPath","join","sniffOnStart","sniff","sniffInterval","_timeout","doSniff","sniffOnConnectionFault","main","promise","connection","requestAborter","requestTimeoutId","remainingRetries","aborted","transform","toLowerCase","debug","process","domain","abortRequest","nextTick","respond","serializeFn","path","requestParam","sendReqWithConnection","_connection","req","checkRespForFailure","NoConnections","status","RequestTypeError","setStatus","errMsg","select","parsedBody","isJson","indexOf","Serialization","ignore","includes","errorMetadata","pick","response","wwwAuthenticateDirective","Generic","castExists","NotFound","query","Infinity","RequestTimeout","delay","closed","id","timers","_timers","setTimeout","pull","clearTimeout","splice","noop","filter_path","resp","nodes","hostsConfigs","stack","forEach","hostConfig","protocol","globalConfig","map","conf","close","connections","Math","floor","random","canCapture","captureStackTrace","canStack","ErrorAbstract","msg","constructor","metadata","assign","toString","toJSON","_Abstract","feature","tuple","names","allNames","primaryName","studlyCase","StatusCodeError","displayName","esErrObject","root_cause","reduce","memo","cause","reason","extraData","omit","size","print","v","subv","uniq","stringifyPrimitive","isFinite","obj","sep","eq","objectKeys","k","ks","encodeURIComponent","xs","f","res","AngularConnector","$injector","invoke","$http","$q","cache","transformRequest","transformResponse","timeout","then","_extends","source","_createClass","defineProperties","descriptor","configurable","writable","Constructor","protoProps","staticProps","React","PureComponent","PropTypes","getComponentProps","_ref","_objectWithoutProperties","strings","stringPropName","waitBeforeDeleteMs","writeSpeedMs","deleteSpeedMs","component","oneOfType","number","propName","componentName","prop","randomizeTimeout","ms","max","Typewriting","_PureComponent","instance","_classCallCheck","_this","ReferenceError","_possibleConstructorReturn","__proto__","_tick","_this$state","currentTextIdx","currentCharPos","isDeleting","currentText","nextCharPos","_moveToNextText","setState","_queueTick","_ticker","subClass","superClass","setPrototypeOf","_inherits","_props","nextTextIdx","_props2","_state","text","componentProps","Component","createElement","_registerRef","defaultProps","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","array","title","browser","env","argv","version","versions","binding","cwd","chdir","dir","umask","Log","makeBoundMethods","ping","defaults","origStatus","punycode","util","Url","slashes","auth","port","hostname","hash","search","pathname","href","urlParse","relative","resolveObject","format","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","parseQueryString","slashesDenoteHost","isObject","u","queryIndex","splitter","uSplit","split","replace","rest","trim","simplePath","exec","substr","proto","lowerProto","match","atSign","hostEnd","hec","lastIndexOf","decodeURIComponent","parseHost","ipv6Hostname","hostparts","l","part","newpart","j","charCodeAt","validParts","notHost","bit","toASCII","p","h","ae","esc","escape","qm","s","charAt","rel","result","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","last","hasTrailingSlash","up","isAbsolute","nodeType","freeGlobal","global","window","maxInt","regexPunycode","regexNonASCII","regexSeparators","stringFromCharCode","fromCharCode","fn","mapDomain","string","parts","ucs2decode","extra","output","counter","ucs2encode","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","baseMinusTMin","base","decode","input","out","basic","oldi","t","baseMinusT","codePoint","inputLength","bias","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","test","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","len2","encodeChunk","lookup","Uint8Array","code","start","end","num","base64","ieee754","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","encodingOrOffset","allocUnsafe","from","ArrayBuffer","byteOffset","fromArrayLike","fromArrayBuffer","encoding","isEncoding","actual","write","fromString","isBuffer","checked","buffer","fromObject","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","read","buf","readUInt16BE","foundIndex","found","hexWrite","offset","remaining","strLen","parsed","parseInt","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","c","hi","lo","utf16leToBytes","min","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","bytesPerSequence","codePoints","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","Symbol","species","allocUnsafeSlow","_isBuffer","compare","x","y","pos","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","_arr","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","stringtrim","base64clean","src","dst","selector","selectors","defaultSelector","Connection","connectionClasses","defaultConnectionClass","deadTimeout","maxDeadTimeout","calcDeadTimeout","calcDeadTimeoutOptions","_conns","alive","dead","_timeouts","flat","attempt","baseTimeout","exponential","_selectDeadConnection","onStatusSet","oldStatus","died","wasAlreadyDead","revived","noChange","to","_onConnectionDied","_onConnectionRevived","alreadyWasDead","revive","runAt","now","orderedTimeouts","sortBy","next","getConnections","addConnection","info","bound","removeConnection","toRemove","clone","removeIds","values","empty","MEDIA_COMPONENTS","CardMedia","children","_props$component","image","style","isMediaComponent","composedStyle","backgroundImage","media","img","display","backgroundSize","backgroundRepeat","backgroundPosition","width","objectFit","clientAction","__reused","EsApiClient","transport","Fn","ApiNamespace","_namespaces","apis","plugins","cloneDeep","setup","connectors","loggers","Errors","Logger","NodesToHost","LoggerAbstract","listeningLevels","cleanUpListeners","setupListeners","levels","padNumToTen","timestamp","d","Date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","label","space","repeat","line","level","fnName","ucfirst","onError","onWarning","onInfo","onDebug","onTrace","requestDetails","_formatTraceMessage","_prettyJson","ctor","superCtor","super_","TempCtor","getOwnPropertyDescriptors","descriptors","getOwnPropertyDescriptor","formatRegExp","objects","deprecate","noDeprecation","throwDeprecation","traceDeprecation","trace","debugEnviron","debugs","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","styles","recurseTimes","isFunction","primitive","simple","isNumber","formatPrimitive","visibleKeys","idx","arrayToHash","isError","formatError","isRegExp","RegExp","isDate","braces","toUTCString","formatProperty","formatArray","prev","cur","numLinesEst","reduceToSingleString","desc","ar","re","objectToString","o","pad","debuglog","NODE_DEBUG","toUpperCase","pid","isSymbol","isPrimitive","months","time","getHours","getMinutes","getSeconds","getDate","getMonth","origin","add","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","promisify","original","promiseResolve","promiseReject","custom","callbackify","callbackified","maybeCb","rej","XhrConnector","asyncDefault","navigator","userAgent","getXhr","XMLHttpRequest","appName","ActiveXObject","compact","head","async","open","setRequestHeader","onreadystatechange","readyState","timeoutId","statusText","send","roundRobin","btoa","qs","startsWithProtocolRE","defaultProto","location","urlParseFields","simplify","sslDefaults","pfx","passphrase","cert","ca","ciphers","rejectUnauthorized","secureProtocol","suggestCompression","ssl","firstColon","firstSlash","noSlash","portNoPath","substring","defaultPorts","httpAuth","Authorization","forOwn","isNumeric","objectPropertyGetter","preOverride","overrides","http","https","getQuery","InputHints","placeholders","default","webpackPolyfill","paths","hostProp","extractHostPartsRE1x","node","address","_meta","malformedError","matches1x","withHostParts","addressParts","json","defaultTitle","titleTemplate","charSet","httpEquiv","content","description","property","lang","outputs","isArrayOfStrings","addOutput","clearAllListeners","event","parseLevels","valid","intersection","arrayish","item","requestUrl","responseBody","responseStatus","normalizeTraceArgs","isEmpty","commonProtocol","Console","color","has","failures","pool","originalOnDied","work","timerId","countdown","countdownTo","restore","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","abs","LN2","options","regexp","maxKeys","kstr","vstr","nodeUtils","adjustWordCase","firstWordCap","otherWordsCap","upper","lower","words","word","every","camelCase","snakeCase","toUpperString","any","parseFloat","intervalRE","isInterval","what","times","applyArgs","func","sliceIndex","bindKey","_provideBound","def","identity","getUnwrittenFromStream","stream","writeBuffer","getStreamWriteBuffer","writeReq","chunk","_writableState","writeState","getBuffer","clearWriteStreamBuffer","getTime","CardContent","padding","paddingBottom","SPACINGS","GRID_SIZES","getOffset","div","Grid","_props$alignContent","alignContent","_props$alignItems","alignItems","classNameProp","_props$container","container","_props$direction","direction","_props$item","_props$justify","justify","_props$lg","lg","_props$md","md","_props$sm","sm","_props$spacing","spacing","_props$wrap","wrap","_props$xl","xl","_props$xs","_props$zeroMinWidth","zeroMinWidth","StyledGrid","theme","boxSizing","flexWrap","margin","minWidth","flexDirection","justifyContent","breakpoint","themeSpacing","generateGutter","breakpoints","accumulator","globalStyles","round","flexBasis","flexGrow","maxWidth","generateGrid","makeFactoryWithModifier","modifier","factory","spec","action","paramAsBody","castToArray","param","needsBody","resolveUrl","urls","minUrl","paramKeys","requireParamKeys","required","paramSpec","castType","proxy","proxyFactory","_resolveUrl","namespaceFactory","ClientNamespace","client","enum","validSelection","commaSepList","duration","boolean","vars","reqParamKeys","opt","optParamKeys","template","fmt","note","_connectionString","_index","_type"],"mappings":"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","file":"6f5cf6782137dbad99a2c1669b55015f42474cab-8a479b2886a8cdec1cec.js","sourcesContent":["// In order to help people who were accidentally upgraded to this ES client,\n// throw an error when they try to instanciate the exported function.\n// previous \"elasticsearch\" module -> https://github.com/ncb000gt/node-es\nfunction es() {\n throw new Error('Looks like you are expecting the previous \"elasticsearch\" module. ' + 'It is now the \"es\" module. To create a client with this module use ' + '`new es.Client(params)`.');\n}\n\nes.Client = require('./lib/client');\nes.ConnectionPool = require('./lib/connection_pool');\nes.Transport = require('./lib/transport');\nes.errors = require('./lib/errors');\nmodule.exports = es;","// 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'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null;\nvar ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n};\nvar ReflectOwnKeys;\n\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys;\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n};\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\n\nmodule.exports = EventEmitter;\nmodule.exports.once = once; // Backwards-compat with node 0.10.x\n\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined; // 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.\n\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function get() {\n return defaultMaxListeners;\n },\n set: function set(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function () {\n if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n}; // Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\n\n\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n\n for (var i = 1; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var doError = type === 'error';\n var events = this._events;\n if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false; // If there is no 'error' event listener then throw.\n\n if (doError) {\n var er;\n if (args.length > 0) er = args[0];\n\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n } // At least give some kind of context to the user\n\n\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n if (handler === undefined) return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n\n for (var i = 0; i < len; ++i) {\n ReflectApply(listeners[i], this, args);\n }\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type, listener.listener ? listener.listener : listener); // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n\n events = target._events;\n }\n\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] : [existing, listener]; // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n } // Check for listener leak\n\n\n m = _getMaxListeners(target);\n\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true; // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n\n var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n};\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0) return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = {\n fired: false,\n wrapFn: undefined,\n target: target,\n type: type,\n listener: listener\n };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n}; // Emits a 'removeListener' event if and only if the listener was removed.\n\n\nEventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === undefined) return this;\n list = events[type];\n if (list === undefined) return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else {\n delete events[type];\n if (events.removeListener) this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0) return this;\n if (position === 0) list.shift();else {\n spliceOne(list, position);\n }\n if (list.length === 1) events[type] = list[0];\n if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === undefined) return this; // not listening for removeListener, no need to emit\n\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else delete events[type];\n }\n\n return this;\n } // emit removeListener for all listeners on all events\n\n\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n};\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === undefined) return [];\n var evlistener = events[type];\n if (evlistener === undefined) return [];\n if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function (emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\n\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n\n for (var i = 0; i < n; ++i) {\n copy[i] = arr[i];\n }\n\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++) {\n list[index] = list[index + 1];\n }\n\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n\n resolve([].slice.call(arguments));\n }\n\n ;\n var errorListener; // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\n}","/* global angular */\nvar utils = require('../utils');\n\nvar JsonSerializer = require('../serializers/json');\n\nfunction AngularSerializer() {}\n\nutils.inherits(AngularSerializer, JsonSerializer); // mimic the JsonSerializer's encode method, but use angular's toJson instead\n\nAngularSerializer.prototype.encode = function (val) {\n switch (typeof val) {\n case 'string':\n return val;\n\n case 'object':\n if (val) return angular.toJson(val);\n\n /* falls through */\n\n default:\n return undefined;\n }\n};\n\nmodule.exports = AngularSerializer;","var opts = {\n xhr: require('./xhr'),\n jquery: require('./jquery'),\n angular: require('./angular')\n};\n\nvar _ = require('lodash'); // remove modules that have been ignored by browserify\n\n\n_.each(opts, function (conn, name) {\n if (typeof conn !== 'function') {\n delete opts[name];\n }\n}); // custom _default specification\n\n\nif (opts.xhr) {\n opts._default = 'xhr';\n} else if (opts.angular) {\n opts._default = 'angular';\n} else {\n opts._default = 'jquery';\n}\n\nmodule.exports = opts;","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object' && typeof arg.copy === 'function' && typeof arg.fill === 'function' && typeof arg.readUInt8 === 'function';\n};","/* global jQuery: false */\n\n/**\n * Simple connection class for using the XHR object in browsers\n *\n * @class {XhrConnection}\n */\nmodule.exports = JqueryConnector;\n\nvar utils = require('../utils');\n\nvar ConnectionAbstract = require('../connection');\n\nvar ConnectionFault = require('../errors').ConnectionFault;\n\nfunction JqueryConnector(host, config) {\n ConnectionAbstract.call(this, host, config);\n}\n\nutils.inherits(JqueryConnector, ConnectionAbstract);\n\nJqueryConnector.prototype.request = function (params, cb) {\n var ajax = {\n url: this.host.makeUrl(params),\n data: params.body,\n type: params.method,\n dataType: 'text',\n headers: this.host.getHeaders(params.headers),\n done: cb\n };\n var jqXHR = jQuery.ajax(ajax).done(function (data) {\n cb(null, data, jqXHR.statusCode(), {\n 'content-type': jqXHR.getResponseHeader('content-type')\n });\n }).fail(function (a, b, err) {\n // if response is available, execute cb. Else throw ConnectionFault\n if (a && a.responseText) {\n cb(null, a.responseText, jqXHR.statusCode(), {\n 'content-type': jqXHR.getResponseHeader('content-type')\n });\n } else {\n cb(new ConnectionFault(err && err.message));\n }\n });\n return function () {\n jqXHR.abort();\n };\n};","/**\n * Simple JSON serializer\n * @type {[type]}\n */\nmodule.exports = Json;\n\nvar _ = require('lodash');\n\nfunction Json() {}\n/**\n * Converts a value into a string, or an error\n * @param {*} val - Any value, methods are stripped and\n * see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify about other params\n * @return {String|Error} - A string is always returned, unless an error occured. then it will be that error.\n */\n\n\nJson.prototype.serialize = function (val, replacer, spaces) {\n switch (typeof val) {\n case 'string':\n return val;\n\n case 'object':\n if (val) {\n if (replacer || spaces) {\n return JSON.stringify(val, replacer, spaces);\n } else {\n return JSON.stringify(val);\n }\n }\n\n /* falls through */\n\n default:\n return undefined;\n }\n};\n\nJson.prototype.serialize.contentType = 'application/json';\n/**\n * Parse a JSON string, if it is already parsed it is ignored\n * @param {String} str - the string to parse\n * @return {[type]}\n */\n\nJson.prototype.deserialize = function (str) {\n if (typeof str === 'string') {\n try {\n return JSON.parse(str);\n } catch (e) {}\n }\n};\n\nJson.prototype.bulkBody = function (val) {\n var body = '';\n var i;\n\n if (_.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n body += this.serialize(val[i]) + '\\n';\n }\n } else if (typeof val === 'string') {\n // make sure the string ends in a new line\n body = val + (val[val.length - 1] === '\\n' ? '' : '\\n');\n } else {\n throw new TypeError('Bulk body should either be an Array of commands/string, or a String');\n }\n\n return body;\n};\n\nJson.prototype.bulkBody.contentType = 'application/x-ndjson';","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Paper from '../Paper';\nimport withStyles from '../styles/withStyles';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n overflow: 'hidden'\n }\n};\nvar Card = /*#__PURE__*/React.forwardRef(function Card(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$raised = props.raised,\n raised = _props$raised === void 0 ? false : _props$raised,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"raised\"]);\n\n return /*#__PURE__*/React.createElement(Paper, _extends({\n className: clsx(classes.root, className),\n elevation: raised ? 8 : 1,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n name: 'MuiCard'\n})(Card);","/**\n * Class that manages making request, called by all of the API methods.\n * @type {[type]}\n */\nmodule.exports = Transport;\n\nvar _ = require('lodash');\n\nvar utils = require('./utils');\n\nvar errors = require('./errors');\n\nvar Host = require('./host');\n\nvar patchSniffOnConnectionFault = require('./transport/sniff_on_connection_fault');\n\nvar findCommonProtocol = require('./transport/find_common_protocol');\n\nfunction Transport(config) {\n var self = this;\n config = self._config = config || {};\n var LogClass = typeof config.log === 'function' ? config.log : require('./log');\n config.log = self.log = new LogClass(config); // setup the connection pool\n\n var ConnectionPool = utils.funcEnum(config, 'connectionPool', Transport.connectionPools, 'main');\n self.connectionPool = new ConnectionPool(config); // setup the serializer\n\n var Serializer = utils.funcEnum(config, 'serializer', Transport.serializers, 'json');\n self.serializer = new Serializer(config); // setup the nodesToHostCallback\n\n self.nodesToHostCallback = utils.funcEnum(config, 'nodesToHostCallback', Transport.nodesToHostCallbacks, 'main'); // setup max retries\n\n self.maxRetries = config.hasOwnProperty('maxRetries') ? config.maxRetries : 3; // setup endpoint to use for sniffing\n\n self.sniffEndpoint = config.hasOwnProperty('sniffEndpoint') ? config.sniffEndpoint : '/_nodes/_all/http'; // setup requestTimeout default\n\n self.requestTimeout = config.hasOwnProperty('requestTimeout') ? config.requestTimeout : 30000;\n self.pingTimeout = config.hasOwnProperty('pingTimeout') ? config.pingTimeout : 3000;\n\n if (config.hasOwnProperty('defer')) {\n self.defer = config.defer;\n } // randomizeHosts option\n\n\n var randomizeHosts = config.hasOwnProperty('randomizeHosts') ? !!config.randomizeHosts : true;\n\n if (config.host) {\n config.hosts = config.host;\n }\n\n if (config.hosts) {\n var hostsConfig = utils.createArray(config.hosts, function (val) {\n if (_.isPlainObject(val) || _.isString(val) || val instanceof Host) {\n return val;\n }\n });\n\n if (!hostsConfig) {\n throw new TypeError('Invalid hosts config. Expected a URL, an array of urls, a host config object, ' + 'or an array of host config objects.');\n }\n\n if (randomizeHosts) {\n hostsConfig = _.shuffle(hostsConfig);\n }\n\n self.setHosts(hostsConfig);\n }\n\n if (config.hasOwnProperty('sniffedNodesProtocol')) {\n self.sniffedNodesProtocol = config.sniffedNodesProtocol || null;\n } else {\n self.sniffedNodesProtocol = findCommonProtocol(self.connectionPool.getAllHosts()) || null;\n }\n\n if (config.hasOwnProperty('sniffedNodesFilterPath')) {\n self.sniffedNodesFilterPath = config.sniffedNodesFilterPath;\n } else {\n self.sniffedNodesFilterPath = ['nodes.*.http.publish_address', 'nodes.*.name', 'nodes.*.hostname', 'nodes.*.host', 'nodes.*.version'].join(',');\n }\n\n if (config.sniffOnStart) {\n self.sniff();\n }\n\n if (config.sniffInterval) {\n self._timeout(function doSniff() {\n self.sniff();\n\n self._timeout(doSniff, config.sniffInterval);\n }, config.sniffInterval);\n }\n\n if (config.sniffOnConnectionFault) {\n patchSniffOnConnectionFault(self);\n }\n}\n\nTransport.connectionPools = {\n main: require('./connection_pool')\n};\nTransport.serializers = require('./serializers');\nTransport.nodesToHostCallbacks = {\n main: require('./nodes_to_host')\n};\n\nTransport.prototype.defer = function () {\n if (typeof Promise === 'undefined') {\n throw new Error('No Promise implementation found. In order for elasticsearch-js to create promises ' + 'either specify the `defer` configuration or include a global Promise shim');\n }\n\n var defer = {};\n defer.promise = new Promise(function (resolve, reject) {\n defer.resolve = resolve;\n defer.reject = reject;\n });\n return defer;\n};\n/**\n * Perform a request with the client's transport\n *\n * @method request\n * @todo async body writing\n * @todo abort\n * @todo access to custom headers, modifying of request in general\n * @param {object} params\n * @param {Number} params.requestTimeout - timeout for the entire request (inculding all retries)\n * @param {Number} params.maxRetries - number of times to re-run request if the\n * original node chosen can not be connected to.\n * @param {string} [params.path=\"/\"] - URL pathname. Do not include query string.\n * @param {string|object} [params.query] - Query string.\n * @param {String} params.method - The HTTP method for the request\n * @param {String} params.body - The body of the HTTP request\n * @param {Function} cb - A function to call back with (error, responseBody, responseStatus)\n */\n\n\nTransport.prototype.request = function (params, cb) {\n var self = this;\n var remainingRetries = this.maxRetries;\n var requestTimeout = this.requestTimeout;\n var connection; // set in sendReqWithConnection\n\n var aborted = false; // several connector will respond with an error when the request is aborted\n\n var requestAborter; // an abort function, returned by connection#request()\n\n var requestTimeoutId; // the id of the ^timeout\n\n var ret; // the object returned to the user, might be a promise\n\n var defer; // the defer object, will be set when we are using promises.\n\n var body = params.body;\n var headers = !params.headers ? {} : _.transform(params.headers, function (headers, val, name) {\n headers[String(name).toLowerCase()] = val;\n });\n self.log.debug('starting request', params); // determine the response based on the presense of a callback\n\n if (typeof cb === 'function') {\n // handle callbacks within a domain\n if (process.domain) {\n cb = process.domain.bind(cb);\n }\n\n ret = {\n abort: abortRequest\n };\n } else {\n defer = this.defer();\n ret = defer.promise;\n ret.abort = abortRequest;\n }\n\n if (body && params.method === 'GET') {\n utils.nextTick(respond, new TypeError('Body can not be sent with method \"GET\"'));\n return ret;\n } // serialize the body\n\n\n if (body) {\n var serializer = self.serializer;\n var serializeFn = serializer[params.bulkBody ? 'bulkBody' : 'serialize'];\n body = serializeFn.call(serializer, body);\n\n if (!headers['content-type']) {\n headers['content-type'] = serializeFn.contentType;\n }\n }\n\n if (params.hasOwnProperty('maxRetries')) {\n remainingRetries = params.maxRetries;\n }\n\n if (params.hasOwnProperty('requestTimeout')) {\n requestTimeout = params.requestTimeout;\n }\n\n var pingRequest = params.path === '/' && params.method === 'HEAD';\n\n if (pingRequest) {\n var requestParam = params.hasOwnProperty('requestTimeout') && params.requestTimeout;\n requestTimeout = requestParam || this.pingTimeout;\n }\n\n params.req = {\n method: params.method,\n path: params.path || '/',\n query: params.query,\n body: body,\n headers: headers\n };\n\n function sendReqWithConnection(err, _connection) {\n if (aborted) {\n return;\n }\n\n if (err) {\n respond(err);\n } else if (_connection) {\n connection = _connection;\n requestAborter = connection.request(params.req, checkRespForFailure);\n } else {\n self.log.warning('No living connections');\n respond(new errors.NoConnections());\n }\n }\n\n function checkRespForFailure(err, body, status, headers) {\n if (aborted) {\n return;\n }\n\n requestAborter = void 0;\n\n if (err instanceof errors.RequestTypeError) {\n self.log.error('Connection refused to execute the request', err);\n respond(err, body, status, headers);\n return;\n }\n\n if (err) {\n connection.setStatus('dead');\n var errMsg = err.message || '';\n errMsg = '\\n' + params.req.method + ' ' + connection.host.makeUrl(params.req) + (errMsg.length ? ' => ' : '') + errMsg;\n\n if (remainingRetries) {\n remainingRetries--;\n self.log.error('Request error, retrying' + errMsg);\n self.connectionPool.select(sendReqWithConnection);\n } else {\n self.log.error('Request complete with error' + errMsg);\n respond(new errors.ConnectionFault(err));\n }\n } else {\n self.log.debug('Request complete');\n respond(void 0, body, status, headers);\n }\n }\n\n function respond(err, body, status, headers) {\n if (aborted) {\n return;\n }\n\n self._timeout(requestTimeoutId);\n\n var parsedBody;\n var isJson = !headers || headers['content-type'] && ~headers['content-type'].indexOf('application/json');\n\n if (!err && body) {\n if (isJson) {\n parsedBody = self.serializer.deserialize(body);\n\n if (parsedBody == null) {\n err = new errors.Serialization();\n parsedBody = body;\n }\n } else {\n parsedBody = body;\n }\n } // does the response represent an error?\n\n\n if ((!err || err instanceof errors.Serialization) && (status < 200 || status >= 300) && (!params.ignore || !_.includes(params.ignore, status))) {\n var errorMetadata = _.pick(params.req, ['path', 'query', 'body']);\n\n errorMetadata.statusCode = status;\n errorMetadata.response = body;\n\n if (status === 401 && headers && headers['www-authenticate']) {\n errorMetadata.wwwAuthenticateDirective = headers['www-authenticate'];\n }\n\n if (errors[status]) {\n err = new errors[status](parsedBody && parsedBody.error, errorMetadata);\n } else {\n err = new errors.Generic('unknown error', errorMetadata);\n }\n } // can we cast notfound to false?\n\n\n if (params.castExists) {\n if (err && err instanceof errors.NotFound) {\n parsedBody = false;\n err = void 0;\n } else {\n parsedBody = !err;\n }\n } // how do we send the response?\n\n\n if (typeof cb === 'function') {\n if (err) {\n cb(err, parsedBody, status);\n } else {\n cb(void 0, parsedBody, status);\n }\n } else if (err) {\n err.body = parsedBody;\n err.status = status;\n defer.reject(err);\n } else {\n defer.resolve(parsedBody);\n }\n }\n\n function abortRequest() {\n if (aborted) {\n return;\n }\n\n aborted = true;\n remainingRetries = 0;\n\n self._timeout(requestTimeoutId);\n\n if (typeof requestAborter === 'function') {\n requestAborter();\n }\n }\n\n if (requestTimeout && requestTimeout !== Infinity) {\n requestTimeoutId = this._timeout(function () {\n respond(new errors.RequestTimeout('Request Timeout after ' + requestTimeout + 'ms'));\n abortRequest();\n }, requestTimeout);\n }\n\n if (connection) {\n sendReqWithConnection(void 0, connection);\n } else {\n self.connectionPool.select(sendReqWithConnection);\n }\n\n return ret;\n};\n\nTransport.prototype._timeout = function (cb, delay) {\n if (this.closed) return;\n var id;\n var timers = this._timers || (this._timers = []);\n\n if (typeof cb !== 'function') {\n id = cb;\n cb = void 0;\n }\n\n if (cb) {\n // set the timer\n id = setTimeout(function () {\n _.pull(timers, id);\n\n cb();\n }, delay);\n timers.push(id);\n return id;\n }\n\n if (id) {\n clearTimeout(id);\n\n var i = this._timers.indexOf(id);\n\n if (i !== -1) {\n this._timers.splice(i, 1);\n }\n }\n};\n/**\n * Ask an ES node for a list of all the nodes, add/remove nodes from the connection\n * pool as appropriate\n *\n * @param {Function} cb - Function to call back once complete\n */\n\n\nTransport.prototype.sniff = function (cb) {\n var self = this;\n var nodesToHostCallback = this.nodesToHostCallback;\n var log = this.log;\n var sniffedNodesProtocol = this.sniffedNodesProtocol;\n var sniffedNodesFilterPath = this.sniffedNodesFilterPath; // make cb a function if it isn't\n\n cb = typeof cb === 'function' ? cb : _.noop;\n this.request({\n path: this.sniffEndpoint,\n query: {\n filter_path: sniffedNodesFilterPath\n },\n method: 'GET'\n }, function (err, resp, status) {\n if (!err && resp && resp.nodes) {\n var hostsConfigs;\n\n try {\n hostsConfigs = nodesToHostCallback(resp.nodes);\n } catch (e) {\n log.error(new Error('Unable to convert node list from ' + self.sniffEndpoint + ' to hosts durring sniff. Encountered error:\\n' + (e.stack || e.message)));\n return;\n }\n\n _.forEach(hostsConfigs, function (hostConfig) {\n if (sniffedNodesProtocol) hostConfig.protocol = sniffedNodesProtocol;\n });\n\n self.setHosts(hostsConfigs);\n }\n\n cb(err, resp, status);\n });\n};\n/**\n * Set the host list that the transport should use.\n *\n * @param {Array} hostsConfigs - an array of Hosts, or configuration objects\n * that will be used to create Host objects.\n */\n\n\nTransport.prototype.setHosts = function (hostsConfigs) {\n var globalConfig = this._config;\n this.connectionPool.setHosts(_.map(hostsConfigs, function (conf) {\n return conf instanceof Host ? conf : new Host(conf, globalConfig);\n }));\n};\n/**\n * Close the Transport, which closes the logs and connection pool\n * @return {[type]} [description]\n */\n\n\nTransport.prototype.close = function () {\n this.log.close();\n this.closed = true;\n\n _.each(this._timers, clearTimeout);\n\n this._timers = null;\n this.connectionPool.close();\n};","/**\n * Selects a connection randomly\n *\n * @module selectors\n * @type {Function}\n * @param {Array} connection - The list of connections to choose from\n * @return {Connection} - The selected connection\n */\nmodule.exports = function RandomSelector(connections) {\n return connections[Math.floor(Math.random() * connections.length)];\n};","require(\"core-js/modules/es.array.reduce.js\");\n\nvar _ = require('lodash');\n\nvar utils = require('./utils');\n\nvar errors = module.exports;\nvar canCapture = typeof Error.captureStackTrace === 'function';\nvar canStack = !!new Error().stack;\n\nfunction ErrorAbstract(msg, constructor, metadata) {\n this.message = msg;\n Error.call(this, this.message);\n\n if (canCapture) {\n Error.captureStackTrace(this, constructor);\n } else if (canStack) {\n this.stack = new Error().stack;\n } else {\n this.stack = '';\n }\n\n if (metadata) {\n _.assign(this, metadata);\n\n this.toString = function () {\n return msg + ' :: ' + JSON.stringify(metadata);\n };\n\n this.toJSON = function () {\n return _.assign({\n msg: msg\n }, metadata);\n };\n }\n}\n\nerrors._Abstract = ErrorAbstract;\nutils.inherits(ErrorAbstract, Error);\n/**\n * Connection Error\n * @param {String} [msg] - An error message that will probably end up in a log.\n */\n\nerrors.ConnectionFault = function ConnectionFault(msg) {\n ErrorAbstract.call(this, msg || 'Connection Failure', errors.ConnectionFault);\n};\n\nutils.inherits(errors.ConnectionFault, ErrorAbstract);\n/**\n * No Living Connections\n * @param {String} [msg] - An error message that will probably end up in a log.\n */\n\nerrors.NoConnections = function NoConnections(msg) {\n ErrorAbstract.call(this, msg || 'No Living connections', errors.NoConnections);\n};\n\nutils.inherits(errors.NoConnections, ErrorAbstract);\n/**\n * Generic Error\n * @param {String} [msg] - An error message that will probably end up in a log.\n */\n\nerrors.Generic = function Generic(msg, metadata) {\n ErrorAbstract.call(this, msg || 'Generic Error', errors.Generic, metadata);\n};\n\nutils.inherits(errors.Generic, ErrorAbstract);\n/**\n * Request Timeout Error\n * @param {String} [msg] - An error message that will probably end up in a log.\n */\n\nerrors.RequestTimeout = function RequestTimeout(msg) {\n ErrorAbstract.call(this, msg || 'Request Timeout', errors.RequestTimeout);\n};\n\nutils.inherits(errors.RequestTimeout, ErrorAbstract);\n/**\n * Request Body could not be parsed\n * @param {String} [msg] - An error message that will probably end up in a log.\n */\n\nerrors.Serialization = function Serialization(msg) {\n ErrorAbstract.call(this, msg || 'Unable to parse/serialize body', errors.Serialization);\n};\n\nutils.inherits(errors.Serialization, ErrorAbstract);\n/**\n * Thrown when a browser compatability issue is detected (cough, IE, cough)\n */\n\nerrors.RequestTypeError = function RequestTypeError(feature) {\n ErrorAbstract.call(this, 'Cross-domain AJAX requests ' + feature + ' are not supported', errors.RequestTypeError);\n};\n\nutils.inherits(errors.RequestTypeError, ErrorAbstract);\nvar statusCodes = [[300, 'Multiple Choices'], [301, 'Moved Permanently'], [302, 'Found'], [303, 'See Other'], [304, 'Not Modified'], [305, 'Use Proxy'], [307, 'Temporary Redirect'], [308, 'Permanent Redirect'], [400, 'Bad Request'], [401, 'Authentication Exception'], [402, 'Payment Required'], [403, ['Authorization Exception', 'Forbidden']], [404, 'Not Found'], [405, 'Method Not Allowed'], [406, 'Not Acceptable'], [407, 'Proxy Authentication Required'], [408, 'Request Timeout'], [409, 'Conflict'], [410, 'Gone'], [411, 'Length Required'], [412, 'Precondition Failed'], [413, 'Request Entity Too Large'], [414, 'Request URIToo Long'], [415, 'Unsupported Media Type'], [416, 'Requested Range Not Satisfiable'], [417, 'Expectation Failed'], [418, 'Im ATeapot'], [421, 'Too Many Connections From This IP'], [426, 'Upgrade Required'], [429, 'Too Many Requests'], [450, 'Blocked By Windows Parental Controls'], [494, 'Request Header Too Large'], [497, 'HTTPTo HTTPS'], [499, 'Client Closed Request'], [500, 'Internal Server Error'], [501, 'Not Implemented'], [502, 'Bad Gateway'], [503, 'Service Unavailable'], [504, 'Gateway Timeout'], [505, 'HTTPVersion Not Supported'], [506, 'Variant Also Negotiates'], [510, 'Not Extended']];\n\n_.each(statusCodes, function createStatusCodeError(tuple) {\n var status = tuple[0];\n var names = tuple[1];\n var allNames = [].concat(names, status);\n var primaryName = allNames[0];\n var className = utils.studlyCase(primaryName);\n allNames = _.uniq(allNames.concat(className));\n\n function StatusCodeError(msg, metadata) {\n this.status = status;\n this.displayName = className;\n var esErrObject = null;\n\n if (_.isPlainObject(msg)) {\n esErrObject = msg;\n msg = null;\n }\n\n if (!esErrObject) {\n // errors from es now come in two forms, an error string < 2.0 and\n // an object >= 2.0\n // TODO: remove after dropping support for < 2.0\n ErrorAbstract.call(this, msg || primaryName, StatusCodeError, metadata);\n return this;\n }\n\n msg = [].concat(esErrObject.root_cause || []).reduce(function (memo, cause) {\n if (memo) memo += ' (and) ';\n memo += '[' + cause.type + '] ' + cause.reason;\n\n var extraData = _.omit(cause, ['type', 'reason']);\n\n if (_.size(extraData)) {\n memo += ', with ' + prettyPrint(extraData);\n }\n\n return memo;\n }, '');\n\n if (!msg) {\n if (esErrObject.type) msg += '[' + esErrObject.type + '] ';\n if (esErrObject.reason) msg += esErrObject.reason;\n }\n\n ErrorAbstract.call(this, msg || primaryName, StatusCodeError, metadata);\n return this;\n }\n\n utils.inherits(StatusCodeError, ErrorAbstract);\n allNames.forEach(function (name) {\n errors[name] = StatusCodeError;\n });\n});\n\nfunction prettyPrint(data) {\n var path = [];\n return function print(v) {\n if (typeof v === 'object') {\n if (path.indexOf(v) > -1) return '[circular]';\n path.push(v);\n\n try {\n return '{ ' + _.map(v, function (subv, name) {\n return name + '=' + print(subv);\n }).join(' & ') + ' }';\n } finally {\n path.pop();\n }\n } else {\n return JSON.stringify(v);\n }\n }(data);\n}","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\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'use strict';\n\nvar stringifyPrimitive = function stringifyPrimitive(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function (obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function (k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n\n if (isArray(obj[k])) {\n return map(obj[k], function (v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq + encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map(xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n\n return res;\n};","/**\n * Connection that registers a module with angular, using angular's $http service\n * to communicate with ES.\n *\n * @class connections.Angular\n */\nmodule.exports = AngularConnector;\n\nvar utils = require('../utils');\n\nvar ConnectionAbstract = require('../connection');\n\nvar ConnectionFault = require('../errors').ConnectionFault;\n\nfunction AngularConnector(host, config) {\n ConnectionAbstract.call(this, host, config);\n var self = this;\n config.$injector.invoke(['$http', '$q', function ($http, $q) {\n self.$q = $q;\n self.$http = $http;\n }]);\n}\n\nutils.inherits(AngularConnector, ConnectionAbstract);\n\nAngularConnector.prototype.request = function (params, cb) {\n var abort = this.$q.defer();\n this.$http({\n method: params.method,\n url: this.host.makeUrl(params),\n data: params.body,\n cache: false,\n headers: this.host.getHeaders(params.headers),\n transformRequest: [],\n transformResponse: [],\n // not actually for timing out, that's handled by the transport\n timeout: abort.promise\n }).then(function (response) {\n cb(null, response.data, response.status, response.headers());\n }, function (err) {\n if (err.status) {\n cb(null, err.data, err.status, err.headers());\n } else {\n cb(new ConnectionFault(err.message));\n }\n });\n return function () {\n abort.resolve();\n };\n};","(function (f) {\n if (typeof exports === \"object\" && typeof module !== \"undefined\") {\n module.exports = f();\n } else if (typeof define === \"function\" && define.amd) {\n define([], f);\n } else {\n var g;\n\n if (typeof window !== \"undefined\") {\n g = window;\n } else if (typeof global !== \"undefined\") {\n g = global;\n } else if (typeof self !== \"undefined\") {\n g = self;\n } else {\n g = this;\n }\n\n g.Typewriting = f();\n }\n})(function () {\n var define, module, exports;\n module = {\n exports: exports = {}\n };\n 'use strict';\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n function _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n }\n\n var React = require('react');\n\n var PureComponent = React.PureComponent;\n\n var PropTypes = require('prop-types');\n\n var TICK_INIT = 'TICK_INIT';\n var TICK_WRITE = 'TICK_WRITE';\n var TICK_DELETE = 'TICK_DELETE';\n var START_DELETE = 'START_DELETE';\n\n function getComponentProps(_ref) {\n var props = _objectWithoutProperties(_ref, []);\n\n delete props.strings;\n delete props.stringPropName;\n delete props.waitBeforeDeleteMs;\n delete props.writeSpeedMs;\n delete props.deleteSpeedMs;\n delete props.component;\n return props;\n }\n\n var SpeedTuple = function SpeedTuple(props, propName, componentName) {\n var prop = props[propName];\n var isValid = Array.isArray(prop) && prop.length === 2 && typeof prop[0] === \"number\" && typeof prop[1] === \"number\";\n\n if (!isValid) {\n return new Error('Invalid prop `' + propName + '` supplied to' + ' `' + componentName + '`. Expected a tuple of numbers.');\n }\n };\n\n var NumberInterval = PropTypes.oneOfType([PropTypes.number, SpeedTuple]);\n\n var randomizeTimeout = function randomizeTimeout(ms) {\n return Array.isArray(ms) ? // random value inside the specified min and max thresholds\n ms[0] + Math.random() * (ms[1] - ms[0]) : // randomize the value - with a minimum threshold\n Math.max(Math.random() * ms, 30);\n };\n\n var Typewriting = function (_PureComponent) {\n _inherits(Typewriting, _PureComponent);\n\n function Typewriting(props) {\n _classCallCheck(this, Typewriting);\n\n var _this = _possibleConstructorReturn(this, (Typewriting.__proto__ || Object.getPrototypeOf(Typewriting)).call(this, props));\n\n _this._tick = function () {\n var strings = _this.props.strings;\n var _this$state = _this.state,\n currentTextIdx = _this$state.currentTextIdx,\n currentCharPos = _this$state.currentCharPos,\n isDeleting = _this$state.isDeleting;\n var currentText = strings[currentTextIdx];\n var nextCharPos = isDeleting ? currentCharPos - 1 : currentCharPos + 1;\n\n if (isDeleting) {\n if (nextCharPos < 0) {\n _this._moveToNextText();\n } else {\n _this.setState({\n currentCharPos: nextCharPos\n });\n }\n\n _this._queueTick(TICK_DELETE);\n } else {\n if (nextCharPos > currentText.length) {\n _this.setState({\n isDeleting: true\n });\n\n _this._queueTick(START_DELETE);\n } else {\n _this.setState({\n currentCharPos: nextCharPos\n });\n\n _this._queueTick(TICK_WRITE);\n }\n }\n };\n\n _this._ticker = null;\n _this._ref = null;\n _this.state = {\n currentTextIdx: 0,\n currentCharPos: 0,\n isDeleting: false\n };\n return _this;\n }\n\n _createClass(Typewriting, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this._queueTick(TICK_INIT);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n clearTimeout(this._ticker);\n }\n }, {\n key: '_queueTick',\n value: function _queueTick(type) {\n var _props = this.props,\n writeSpeedMs = _props.writeSpeedMs,\n deleteSpeedMs = _props.deleteSpeedMs,\n waitBeforeDeleteMs = _props.waitBeforeDeleteMs;\n var timeout = type === TICK_INIT ? 0 : type === TICK_WRITE ? randomizeTimeout(writeSpeedMs) : type === TICK_DELETE ? randomizeTimeout(deleteSpeedMs) : type === START_DELETE ? waitBeforeDeleteMs : 0; // ¯\\_(ツ)_/¯\n\n this._ticker = setTimeout(this._tick, timeout);\n }\n }, {\n key: '_moveToNextText',\n value: function _moveToNextText() {\n var strings = this.props.strings;\n var currentTextIdx = this.state.currentTextIdx;\n var nextTextIdx = currentTextIdx + 1;\n this.setState({\n isDeleting: false,\n currentTextIdx: nextTextIdx < strings.length ? nextTextIdx : 0,\n currentCharPos: 0\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props2 = this.props,\n strings = _props2.strings,\n component = _props2.component;\n var _state = this.state,\n currentTextIdx = _state.currentTextIdx,\n currentCharPos = _state.currentCharPos;\n var currentText = strings[currentTextIdx];\n var text = currentText.slice(0, currentCharPos);\n\n var componentProps = _extends({}, getComponentProps(this.props), _defineProperty({}, this.props.stringPropName, text));\n\n var Component = component;\n return React.createElement(Component, _extends({\n ref: this._registerRef\n }, componentProps));\n }\n }]);\n\n return Typewriting;\n }(PureComponent);\n\n Typewriting.defaultProps = {\n waitBeforeDeleteMs: 9000,\n writeSpeedMs: 100,\n deleteSpeedMs: 60,\n stringPropName: 'children',\n component: 'span'\n };\n module.exports = Typewriting;\n return module.exports;\n});","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","module.exports = ConnectionAbstract;\n\nvar _ = require('lodash');\n\nvar utils = require('./utils');\n\nvar EventEmitter = require('events').EventEmitter;\n\nvar Log = require('./log');\n\nvar Host = require('./host');\n\nvar errors = require('./errors');\n/**\n * Abstract class used for Connection classes\n * @class ConnectionAbstract\n * @constructor\n */\n\n\nfunction ConnectionAbstract(host, config) {\n config = config || {};\n EventEmitter.call(this);\n this.log = config.log || new Log();\n this.pingTimeout = config.pingTimeout || 3000;\n\n if (!host) {\n throw new TypeError('Missing host');\n } else if (host instanceof Host) {\n this.host = host;\n } else {\n throw new TypeError('Invalid host');\n }\n\n utils.makeBoundMethods(this);\n}\n\nutils.inherits(ConnectionAbstract, EventEmitter);\n/**\n * Make a request using this connection. Must be overridden by Connection classes, which can add whatever keys to\n * params that they like. These are just the basics.\n *\n * @param [params] {Object} - The parameters for the request\n * @param params.path {String} - The path for which you are requesting\n * @param params.method {String} - The HTTP method for the request (GET, HEAD, etc.)\n * @param params.requestTimeout {Integer} - The amount of time in milliseconds that this request should be allowed to run for.\n * @param cb {Function} - A callback to be called once with `cb(err, responseBody, responseStatus)`\n */\n\nConnectionAbstract.prototype.request = function () {\n throw new Error('Connection#request must be overwritten by the Connector');\n};\n\nConnectionAbstract.prototype.ping = function (params, cb) {\n if (typeof params === 'function') {\n cb = params;\n params = null;\n } else {\n cb = typeof cb === 'function' ? cb : null;\n }\n\n var requestTimeout = this.pingTimeout;\n var requestTimeoutId;\n var aborted;\n var abort;\n\n if (params && params.hasOwnProperty('requestTimeout')) {\n requestTimeout = params.requestTimeout;\n }\n\n abort = this.request(_.defaults(params || {}, {\n path: '/',\n method: 'HEAD'\n }), function (err) {\n if (aborted) {\n return;\n }\n\n clearTimeout(requestTimeoutId);\n\n if (cb) {\n cb(err);\n }\n });\n\n if (requestTimeout) {\n requestTimeoutId = setTimeout(function () {\n if (abort) {\n abort();\n }\n\n aborted = true;\n\n if (cb) {\n cb(new errors.RequestTimeout('Ping Timeout after ' + requestTimeout + 'ms'));\n }\n }, requestTimeout);\n }\n};\n\nConnectionAbstract.prototype.setStatus = function (status) {\n var origStatus = this.status;\n this.status = status;\n this.emit('status set', status, origStatus, this);\n\n if (status === 'closed') {\n this.removeAllListeners();\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'use strict';\n\nvar punycode = require('punycode');\n\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n} // Reference: RFC 3986, RFC 1808, RFC 2396\n// define these here so at least they only have to be\n// compiled once on the first module load.\n\n\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n // Special case for a simple path URL\nsimplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n // RFC 2396: characters reserved for delimiting URLs.\n// We actually just auto-escape these.\ndelims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n // RFC 2396: characters not allowed for various reasons.\nunwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\nautoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n// Note that any invalid chars are also handled, but these\n// are the ones that are *expected* to be seen, so we fast-path\n// them.\nnonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\nunsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n},\n // protocols that never have a hostname.\nhostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n},\n // protocols that always contain a // bit.\nslashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n},\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n var u = new Url();\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function (url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n } // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n\n\n var queryIndex = url.indexOf('?'),\n splitter = queryIndex !== -1 && queryIndex < url.indexOf('#') ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n var rest = url; // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n\n if (simplePath[2]) {\n this.search = simplePath[2];\n\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n } // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n\n\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] && (slashes || proto && !slashedProtocol[proto])) {\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) hostEnd = hec;\n } // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n\n\n var auth, atSign;\n\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n } // Now we have a portion which is definitely the auth.\n // Pull that off.\n\n\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n } // the host is the remaining to the left of the first non-host char\n\n\n hostEnd = -1;\n\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) hostEnd = hec;\n } // if we still have not hit it, then the entire thing is a host.\n\n\n if (hostEnd === -1) hostEnd = rest.length;\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd); // pull out port.\n\n this.parseHost(); // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n\n this.hostname = this.hostname || ''; // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n\n var ipv6Hostname = this.hostname[0] === '[' && this.hostname[this.hostname.length - 1] === ']'; // validate a little.\n\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n } // we test again with ASCII char only\n\n\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host; // strip [ and ] from the hostname\n // the host field still retains them, though\n\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n } // now rest is set to the post-host stuff.\n // chop off any delim chars.\n\n\n if (!unsafeProtocol[lowerProto]) {\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1) continue;\n var esc = encodeURIComponent(ae);\n\n if (esc === ae) {\n esc = escape(ae);\n }\n\n rest = rest.split(ae).join(esc);\n }\n } // chop off from the tail first.\n\n\n var hash = rest.indexOf('#');\n\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n\n var qm = rest.indexOf('?');\n\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n\n if (rest) this.pathname = rest;\n\n if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {\n this.pathname = '/';\n } //to support http.request\n\n\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n } // finally, reconstruct the href based on what has been validated.\n\n\n this.href = this.format();\n return this;\n}; // format a parsed object into a url string\n\n\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function () {\n var auth = this.auth || '';\n\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ? this.hostname : '[' + this.hostname + ']');\n\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query && util.isObject(this.query) && Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || query && '?' + query || '';\n if (protocol && protocol.substr(-1) !== ':') protocol += ':'; // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n\n if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n pathname = pathname.replace(/[?#]/g, function (match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function (relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function (relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n } // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n\n\n result.hash = relative.hash; // if the relative url is empty, then there's nothing left to do here.\n\n if (relative.href === '') {\n result.href = result.format();\n return result;\n } // hrefs like //foo/bar always cut to the protocol.\n\n\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol') result[rkey] = relative[rkey];\n } //urlParse appends trailing / to urls like http://www.example.com\n\n\n if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n\n while (relPath.length && !(relative.host = relPath.shift())) {\n ;\n }\n\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port; // to support http.request\n\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = result.pathname && result.pathname.charAt(0) === '/',\n isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === '/',\n mustEndAbs = isRelAbs || isSourceAbs || result.host && relative.pathname,\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol]; // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;else srcPath.unshift(result.host);\n }\n\n result.host = '';\n\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;else relPath.unshift(relative.host);\n }\n\n relative.host = null;\n }\n\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = relative.host || relative.host === '' ? relative.host : result.host;\n result.hostname = relative.hostname || relative.hostname === '' ? relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath; // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift(); //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n result.search = relative.search;\n result.query = relative.query; //to support http.request\n\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null; //to support http.request\n\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n\n result.href = result.format();\n return result;\n } // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n\n\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === '.' || last === '..') || last === ''; // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n\n var up = 0;\n\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' && (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && srcPath.join('/').substr(-1) !== '/') {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' || srcPath[0] && srcPath[0].charAt(0) === '/'; // put the host back\n\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' : srcPath.length ? srcPath.shift() : ''; //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || result.host && srcPath.length;\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n } //to support request.http\n\n\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function () {\n var host = this.host;\n var port = portPattern.exec(host);\n\n if (port) {\n port = port[0];\n\n if (port !== ':') {\n this.port = port.substr(1);\n }\n\n host = host.substr(0, host.length - port.length);\n }\n\n if (host) this.hostname = host;\n};","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;\n\n(function (root) {\n /** Detect free variables */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n var freeModule = typeof module == 'object' && module && !module.nodeType && module;\n var freeGlobal = typeof global == 'object' && global;\n\n if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal) {\n root = freeGlobal;\n }\n /**\n * The `punycode` object.\n * @name punycode\n * @type Object\n */\n\n\n var punycode,\n\n /** Highest positive signed 32-bit float value */\n maxInt = 2147483647,\n // aka. 0x7FFFFFFF or 2^31-1\n\n /** Bootstring parameters */\n base = 36,\n tMin = 1,\n tMax = 26,\n skew = 38,\n damp = 700,\n initialBias = 72,\n initialN = 128,\n // 0x80\n delimiter = '-',\n // '\\x2D'\n\n /** Regular expressions */\n regexPunycode = /^xn--/,\n regexNonASCII = /[^\\x20-\\x7E]/,\n // unprintable ASCII chars + non-ASCII chars\n regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g,\n // RFC 3490 separators\n\n /** Error messages */\n errors = {\n 'overflow': 'Overflow: input needs wider integers to process',\n 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n 'invalid-input': 'Invalid input'\n },\n\n /** Convenience shortcuts */\n baseMinusTMin = base - tMin,\n floor = Math.floor,\n stringFromCharCode = String.fromCharCode,\n\n /** Temporary variable */\n key;\n /*--------------------------------------------------------------------------*/\n\n /**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\n\n function error(type) {\n throw new RangeError(errors[type]);\n }\n /**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\n\n\n function map(array, fn) {\n var length = array.length;\n var result = [];\n\n while (length--) {\n result[length] = fn(array[length]);\n }\n\n return result;\n }\n /**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\n\n\n function mapDomain(string, fn) {\n var parts = string.split('@');\n var result = '';\n\n if (parts.length > 1) {\n // In email addresses, only the domain name should be punycoded. Leave\n // the local part (i.e. everything up to `@`) intact.\n result = parts[0] + '@';\n string = parts[1];\n } // Avoid `split(regex)` for IE8 compatibility. See #17.\n\n\n string = string.replace(regexSeparators, '\\x2E');\n var labels = string.split('.');\n var encoded = map(labels, fn).join('.');\n return result + encoded;\n }\n /**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\n\n\n function ucs2decode(string) {\n var output = [],\n counter = 0,\n length = string.length,\n value,\n extra;\n\n while (counter < length) {\n value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // low surrogate\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n }\n /**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\n\n\n function ucs2encode(array) {\n return map(array, function (value) {\n var output = '';\n\n if (value > 0xFFFF) {\n value -= 0x10000;\n output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n value = 0xDC00 | value & 0x3FF;\n }\n\n output += stringFromCharCode(value);\n return output;\n }).join('');\n }\n /**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\n\n\n function basicToDigit(codePoint) {\n if (codePoint - 48 < 10) {\n return codePoint - 22;\n }\n\n if (codePoint - 65 < 26) {\n return codePoint - 65;\n }\n\n if (codePoint - 97 < 26) {\n return codePoint - 97;\n }\n\n return base;\n }\n /**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\n\n\n function digitToBasic(digit, flag) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n }\n /**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\n\n\n function adapt(delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n\n for (;\n /* no initialization */\n delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n }\n /**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\n\n\n function decode(input) {\n // Don't use UCS-2\n var output = [],\n inputLength = input.length,\n out,\n i = 0,\n n = initialN,\n bias = initialBias,\n basic,\n j,\n index,\n oldi,\n w,\n k,\n digit,\n t,\n\n /** Cached calculation results */\n baseMinusT; // Handle the basic code points: let `basic` be the number of input code\n // points before the last delimiter, or `0` if there is none, then copy\n // the first basic code points to the output.\n\n basic = input.lastIndexOf(delimiter);\n\n if (basic < 0) {\n basic = 0;\n }\n\n for (j = 0; j < basic; ++j) {\n // if it's not a basic code point\n if (input.charCodeAt(j) >= 0x80) {\n error('not-basic');\n }\n\n output.push(input.charCodeAt(j));\n } // Main decoding loop: start just after the last delimiter if any basic code\n // points were copied; start at the beginning otherwise.\n\n\n for (index = basic > 0 ? basic + 1 : 0; index < inputLength;)\n /* no final expression */\n {\n // `index` is the index of the next character to be consumed.\n // Decode a generalized variable-length integer into `delta`,\n // which gets added to `i`. The overflow checking is easier\n // if we increase `i` as we go, then subtract off its starting\n // value at the end to obtain `delta`.\n for (oldi = i, w = 1, k = base;;\n /* no condition */\n k += base) {\n if (index >= inputLength) {\n error('invalid-input');\n }\n\n digit = basicToDigit(input.charCodeAt(index++));\n\n if (digit >= base || digit > floor((maxInt - i) / w)) {\n error('overflow');\n }\n\n i += digit * w;\n t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (digit < t) {\n break;\n }\n\n baseMinusT = base - t;\n\n if (w > floor(maxInt / baseMinusT)) {\n error('overflow');\n }\n\n w *= baseMinusT;\n }\n\n out = output.length + 1;\n bias = adapt(i - oldi, out, oldi == 0); // `i` was supposed to wrap around from `out` to `0`,\n // incrementing `n` each time, so we'll fix that now:\n\n if (floor(i / out) > maxInt - n) {\n error('overflow');\n }\n\n n += floor(i / out);\n i %= out; // Insert `n` at position `i` of the output\n\n output.splice(i++, 0, n);\n }\n\n return ucs2encode(output);\n }\n /**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\n\n\n function encode(input) {\n var n,\n delta,\n handledCPCount,\n basicLength,\n bias,\n j,\n m,\n q,\n k,\n t,\n currentValue,\n output = [],\n\n /** `inputLength` will hold the number of code points in `input`. */\n inputLength,\n\n /** Cached calculation results */\n handledCPCountPlusOne,\n baseMinusT,\n qMinusT; // Convert the input in UCS-2 to Unicode\n\n input = ucs2decode(input); // Cache the length\n\n inputLength = input.length; // Initialize the state\n\n n = initialN;\n delta = 0;\n bias = initialBias; // Handle the basic code points\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n handledCPCount = basicLength = output.length; // `handledCPCount` is the number of code points that have been handled;\n // `basicLength` is the number of basic code points.\n // Finish the basic string - if it is not empty - with a delimiter\n\n if (basicLength) {\n output.push(delimiter);\n } // Main encoding loop:\n\n\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next\n // larger one:\n for (m = maxInt, j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n } // Increase `delta` enough to advance the decoder's state to ,\n // but guard against overflow\n\n\n handledCPCountPlusOne = handledCPCount + 1;\n\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error('overflow');\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < n && ++delta > maxInt) {\n error('overflow');\n }\n\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer\n for (q = delta, k = base;;\n /* no condition */\n k += base) {\n t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (q < t) {\n break;\n }\n\n qMinusT = q - t;\n baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n\n return output.join('');\n }\n /**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\n\n\n function toUnicode(input) {\n return mapDomain(input, function (string) {\n return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n });\n }\n /**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\n\n\n function toASCII(input) {\n return mapDomain(input, function (string) {\n return regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n });\n }\n /*--------------------------------------------------------------------------*/\n\n /** Define the public API */\n\n\n punycode = {\n /**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n 'version': '1.4.1',\n\n /**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see \n * @memberOf punycode\n * @type Object\n */\n 'ucs2': {\n 'decode': ucs2decode,\n 'encode': ucs2encode\n },\n 'decode': decode,\n 'encode': encode,\n 'toASCII': toASCII,\n 'toUnicode': toUnicode\n };\n /** Expose `punycode` */\n // Some AMD build optimizers, like r.js, check for specific condition patterns\n // like the following:\n\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n define('punycode', function () {\n return punycode;\n });\n } else if (freeExports && freeModule) {\n if (module.exports == freeExports) {\n // in Node.js, io.js, or RingoJS v0.8.0+\n freeModule.exports = punycode;\n } else {\n // in Narwhal or RingoJS v0.7.0-\n for (key in punycode) {\n punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n }\n }\n } else {\n // in Rhino or a web browser\n root.punycode = punycode;\n }\n})(this);","'use strict';\n\nexports.byteLength = byteLength;\nexports.toByteArray = toByteArray;\nexports.fromByteArray = fromByteArray;\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n} // Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\n\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 } // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n\n\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n} // base64 is 4/3 + up to two characters of the original data\n\n\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 var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0; // if there are placeholders, only get up to the last complete 4 chars\n\n var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i;\n\n for (i = 0; i < len; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | 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 = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | 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] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];\n}\n\nfunction encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\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\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n // go through the array every three bytes, we'll deal with trailing stuff later\n\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '==');\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '=');\n }\n\n return parts.join('');\n}","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n/* eslint-disable no-proto */\n'use strict';\n\nvar base64 = require('base64-js');\n\nvar ieee754 = require('ieee754');\n\nvar isArray = require('isarray');\n\nexports.Buffer = Buffer;\nexports.SlowBuffer = SlowBuffer;\nexports.INSPECT_MAX_BYTES = 50;\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 */\n\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport();\n/*\n * Export kMaxLength after typed array support is determined.\n */\n\nexports.kMaxLength = kMaxLength();\n\nfunction typedArraySupport() {\n try {\n var arr = new Uint8Array(1);\n arr.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function foo() {\n return 42;\n }\n };\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 ? 0x7fffffff : 0x3fffffff;\n}\n\nfunction createBuffer(that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length');\n }\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\n that.length = length;\n }\n\n return that;\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\n\nfunction Buffer(arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length);\n } // Common case.\n\n\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error('If encoding is specified then the first argument must be a string');\n }\n\n return allocUnsafe(this, arg);\n }\n\n return from(this, arg, encodingOrOffset, length);\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n// TODO: Legacy, not needed anymore. Remove in next major version.\n\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 * 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 **/\n\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\n if (typeof Symbol !== 'undefined' && Symbol.species && 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\n if (size <= 0) {\n return createBuffer(that, size);\n }\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' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);\n }\n\n return createBuffer(that, size);\n}\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\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\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n\n return that;\n}\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\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 */\n\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 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\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\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\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' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0);\n }\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 ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes');\n }\n\n return length | 0;\n}\n\nfunction SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\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 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\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\n if (length === undefined) {\n length = 0;\n\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\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n\n return buffer;\n};\n\nfunction byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength;\n }\n\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0; // Use a for loop to avoid recursion\n\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length;\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n\n case 'hex':\n return len >>> 1;\n\n case 'base64':\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) return utf8ToBytes(string).length; // assume utf8\n\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\n\nBuffer.byteLength = byteLength;\n\nfunction slowToString(encoding, start, end) {\n var loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\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\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\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 } // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\n\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} // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\n\n\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\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n};\n\nBuffer.prototype.swap32 = function swap32() {\n var len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\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\n return this;\n};\n\nBuffer.prototype.swap64 = function swap64() {\n var len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\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\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\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\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\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\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\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\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}; // 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\n\n\nfunction bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\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\n byteOffset = +byteOffset; // Coerce to Number.\n\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 } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\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\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\n if (Buffer.TYPED_ARRAY_SUPPORT && 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\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\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\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\n if (dir) {\n var foundIndex = -1;\n\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\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n\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\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\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n } // must be an even number of digits\n\n\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\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\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; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n } // legacy write(string, encoding, offset, length) - remove in v0.13\n\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\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 var loweredCase = false;\n\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 var i = start;\n\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 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\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\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\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\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} // 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\n\n\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n var res = '';\n var i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, 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\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\n return ret;\n}\n\nfunction hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n\n return out;\n}\n\nfunction utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\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 var newBuf;\n\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\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf;\n};\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\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 var val = this[offset];\n var mul = 1;\n var i = 0;\n\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\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n\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 return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n};\n\nBuffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | 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 var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\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 var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\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 return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | 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\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\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\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\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\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)) >>> (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\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\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\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\n return offset + 2;\n};\n\nfunction objectWriteUInt32(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n\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\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\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\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\n return offset + 4;\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\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\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\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\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\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\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\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\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\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\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\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\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\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\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\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\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\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}; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\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; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\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'); // Are we oob?\n\n if (end > this.length) end = this.length;\n\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(target, this.subarray(start, start + len), targetStart);\n }\n\n return len;\n}; // Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\n\n\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\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n\n if (code < 256) {\n val = code;\n }\n }\n\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\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 } // Invalid ranges are not set to a default, so can range check early.\n\n\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 if (!val) val = 0;\n var i;\n\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) ? val : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n}; // HELPER FUNCTIONS\n// ================\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, ''); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\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); // is surrogate component\n\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 } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\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; // encode utf8\n\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(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n\n return bytes;\n}\n\nfunction asciiToBytes(str) {\n var byteArray = [];\n\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\n return byteArray;\n}\n\nfunction utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\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\n return i;\n}\n\nfunction isnan(val) {\n return val !== val; // eslint-disable-line no-self-compare\n}","/**\n * Manager of connections to a node(s), capable of ensuring that connections are clear and living\n * before providing them to the application\n *\n * @class ConnectionPool\n * @constructor\n * @param {Object} config - The config object passed to the transport.\n */\nmodule.exports = ConnectionPool;\n\nvar _ = require('lodash');\n\nvar utils = require('./utils');\n\nvar Log = require('./log');\n\nfunction ConnectionPool(config) {\n config = config || {};\n utils.makeBoundMethods(this);\n\n if (!config.log) {\n this.log = new Log();\n config.log = this.log;\n } else {\n this.log = config.log;\n } // we will need this when we create connections down the road\n\n\n this._config = config; // get the selector config var\n\n this.selector = utils.funcEnum(config, 'selector', ConnectionPool.selectors, ConnectionPool.defaultSelector); // get the connection class\n\n this.Connection = utils.funcEnum(config, 'connectionClass', ConnectionPool.connectionClasses, ConnectionPool.defaultConnectionClass); // time that connections will wait before being revived\n\n this.deadTimeout = config.hasOwnProperty('deadTimeout') ? config.deadTimeout : 60000;\n this.maxDeadTimeout = config.hasOwnProperty('maxDeadTimeout') ? config.maxDeadTimeout : 18e5;\n this.calcDeadTimeout = utils.funcEnum(config, 'calcDeadTimeout', ConnectionPool.calcDeadTimeoutOptions, 'exponential'); // a map of connections to their \"id\" property, used when sniffing\n\n this.index = {};\n this._conns = {\n alive: [],\n dead: []\n }; // information about timeouts for dead connections\n\n this._timeouts = [];\n} // selector options\n\n\nConnectionPool.selectors = require('./selectors');\nConnectionPool.defaultSelector = 'roundRobin'; // get the connection options\n\nConnectionPool.connectionClasses = require('./connectors');\nConnectionPool.defaultConnectionClass = ConnectionPool.connectionClasses._default;\ndelete ConnectionPool.connectionClasses._default; // the function that calculates timeouts based on attempts\n\nConnectionPool.calcDeadTimeoutOptions = {\n flat: function flat(attempt, baseTimeout) {\n return baseTimeout;\n },\n exponential: function exponential(attempt, baseTimeout) {\n return Math.min(baseTimeout * 2 * Math.pow(2, attempt * 0.5 - 1), this.maxDeadTimeout);\n }\n};\n/**\n * Selects a connection from the list using the this.selector\n * Features:\n * - detects if the selector is async or not\n * - sync selectors should still return asynchronously\n * - catches errors in sync selectors\n * - automatically selects the first dead connection when there no living connections\n *\n * @param {Function} cb [description]\n * @return {[type]} [description]\n */\n\nConnectionPool.prototype.select = function (cb) {\n if (this._conns.alive.length) {\n if (this.selector.length > 1) {\n this.selector(this._conns.alive, cb);\n } else {\n try {\n utils.nextTick(cb, void 0, this.selector(this._conns.alive));\n } catch (e) {\n cb(e);\n }\n }\n } else if (this._timeouts.length) {\n this._selectDeadConnection(cb);\n } else {\n utils.nextTick(cb, void 0);\n }\n};\n/**\n * Handler for the \"set status\" event emitted but the connections. It will move\n * the connection to it's proper connection list (unless it was closed).\n *\n * @param {String} status - the connection's new status\n * @param {String} oldStatus - the connection's old status\n * @param {ConnectionAbstract} connection - the connection object itself\n */\n\n\nConnectionPool.prototype.onStatusSet = utils.handler(function (status, oldStatus, connection) {\n var index;\n var died = status === 'dead';\n var wasAlreadyDead = died && oldStatus === 'dead';\n var revived = !died && oldStatus === 'dead';\n var noChange = oldStatus === status;\n var from = this._conns[oldStatus];\n var to = this._conns[status];\n\n if (noChange && !died) {\n return true;\n }\n\n if (from !== to) {\n if (_.isArray(from)) {\n index = from.indexOf(connection);\n\n if (index !== -1) {\n from.splice(index, 1);\n }\n }\n\n if (_.isArray(to)) {\n index = to.indexOf(connection);\n\n if (index === -1) {\n to.push(connection);\n }\n }\n }\n\n if (died) {\n this._onConnectionDied(connection, wasAlreadyDead);\n }\n\n if (revived) {\n this._onConnectionRevived(connection);\n }\n});\n/**\n * Handler used to clear the times created when a connection dies\n * @param {ConnectionAbstract} connection\n */\n\nConnectionPool.prototype._onConnectionRevived = function (connection) {\n var timeout;\n\n for (var i = 0; i < this._timeouts.length; i++) {\n if (this._timeouts[i].conn === connection) {\n timeout = this._timeouts[i];\n\n if (timeout.id) {\n clearTimeout(timeout.id);\n }\n\n this._timeouts.splice(i, 1);\n\n break;\n }\n }\n};\n/**\n * Handler used to update or create a timeout for the connection which has died\n * @param {ConnectionAbstract} connection\n * @param {Boolean} alreadyWasDead - If the connection was preivously dead this must be set to true\n */\n\n\nConnectionPool.prototype._onConnectionDied = function (connection, alreadyWasDead) {\n var timeout;\n\n if (alreadyWasDead) {\n for (var i = 0; i < this._timeouts.length; i++) {\n if (this._timeouts[i].conn === connection) {\n timeout = this._timeouts[i];\n break;\n }\n }\n } else {\n timeout = {\n conn: connection,\n attempt: 0,\n revive: function revive(cb) {\n timeout.attempt++;\n connection.ping(function (err) {\n connection.setStatus(err ? 'dead' : 'alive');\n\n if (cb && typeof cb === 'function') {\n cb(err);\n }\n });\n }\n };\n\n this._timeouts.push(timeout);\n }\n\n if (timeout.id) {\n clearTimeout(timeout.id);\n }\n\n var ms = this.calcDeadTimeout(timeout.attempt, this.deadTimeout);\n timeout.id = setTimeout(timeout.revive, ms);\n timeout.runAt = utils.now() + ms;\n};\n\nConnectionPool.prototype._selectDeadConnection = function (cb) {\n var orderedTimeouts = _.sortBy(this._timeouts, 'runAt');\n\n var log = this.log;\n process.nextTick(function next() {\n var timeout = orderedTimeouts.shift();\n\n if (!timeout) {\n cb(void 0);\n return;\n }\n\n if (!timeout.conn) {\n next();\n return;\n }\n\n if (timeout.conn.status === 'dead') {\n timeout.revive(function (err) {\n if (err) {\n log.warning('Unable to revive connection: ' + timeout.conn.id);\n process.nextTick(next);\n } else {\n cb(void 0, timeout.conn);\n }\n });\n } else {\n cb(void 0, timeout.conn);\n }\n });\n};\n/**\n * Returns a random list of nodes from the living connections up to the limit.\n * If there are no living connections it will fall back to the dead connections.\n * If there are no dead connections it will return nothing.\n *\n * This is used for testing (when we just want the one existing node)\n * and sniffing, where using the selector to get all of the living connections\n * is not reasonable.\n *\n * @param {string} [status] - optional status of the connection to fetch\n * @param {Number} [limit] - optional limit on the number of connections to return\n */\n\n\nConnectionPool.prototype.getConnections = function (status, limit) {\n var list;\n\n if (status) {\n list = this._conns[status];\n } else {\n list = this._conns[this._conns.alive.length ? 'alive' : 'dead'];\n }\n\n if (limit == null) {\n return list.slice(0);\n } else {\n return _.shuffle(list).slice(0, limit);\n }\n};\n/**\n * Add a single connection to the pool and change it's status to \"alive\".\n * The connection should inherit from ConnectionAbstract\n *\n * @param {ConnectionAbstract} connection - The connection to add\n */\n\n\nConnectionPool.prototype.addConnection = function (connection) {\n if (!connection.id) {\n connection.id = connection.host.toString();\n }\n\n if (!this.index[connection.id]) {\n this.log.info('Adding connection to', connection.id);\n this.index[connection.id] = connection;\n connection.on('status set', this.bound.onStatusSet);\n connection.setStatus('alive');\n }\n};\n/**\n * Remove a connection from the pool, and set it's status to \"closed\".\n *\n * @param {ConnectionAbstract} connection - The connection to remove/close\n */\n\n\nConnectionPool.prototype.removeConnection = function (connection) {\n if (!connection.id) {\n connection.id = connection.host.toString();\n }\n\n if (this.index[connection.id]) {\n delete this.index[connection.id];\n connection.setStatus('closed');\n connection.removeListener('status set', this.bound.onStatusSet);\n }\n};\n/**\n * Override the internal node list. All connections that are not in the new host\n * list are closed and removed. Non-unique hosts are ignored.\n *\n * @param {Host[]} hosts - An array of Host instances.\n */\n\n\nConnectionPool.prototype.setHosts = function (hosts) {\n var connection;\n var i;\n var id;\n var host;\n\n var toRemove = _.clone(this.index);\n\n for (i = 0; i < hosts.length; i++) {\n host = hosts[i];\n id = host.toString();\n\n if (this.index[id]) {\n delete toRemove[id];\n } else {\n connection = new this.Connection(host, this._config);\n connection.id = id;\n this.addConnection(connection);\n }\n }\n\n var removeIds = _.keys(toRemove);\n\n for (i = 0; i < removeIds.length; i++) {\n this.removeConnection(this.index[removeIds[i]]);\n }\n};\n\nConnectionPool.prototype.getAllHosts = function () {\n return _.values(this.index).map(function (connection) {\n return connection.host;\n });\n};\n/**\n * Close the conncetion pool, as well as all of it's connections\n */\n\n\nConnectionPool.prototype.close = function () {\n this.setHosts([]);\n};\n\nConnectionPool.prototype.empty = ConnectionPool.prototype.close;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'block',\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center'\n },\n\n /* Styles applied to the root element if `component=\"video, audio, picture, iframe, or img\"`. */\n media: {\n width: '100%'\n },\n\n /* Styles applied to the root element if `component=\"picture or img\"`. */\n img: {\n // ⚠️ object-fit is not supported by IE 11.\n objectFit: 'cover'\n }\n};\nvar MEDIA_COMPONENTS = ['video', 'audio', 'picture', 'iframe', 'img'];\nvar CardMedia = /*#__PURE__*/React.forwardRef(function CardMedia(props, ref) {\n var children = props.children,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n image = props.image,\n src = props.src,\n style = props.style,\n other = _objectWithoutProperties(props, [\"children\", \"classes\", \"className\", \"component\", \"image\", \"src\", \"style\"]);\n\n var isMediaComponent = MEDIA_COMPONENTS.indexOf(Component) !== -1;\n var composedStyle = !isMediaComponent && image ? _extends({\n backgroundImage: \"url(\\\"\".concat(image, \"\\\")\")\n }, style) : style;\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, isMediaComponent && classes.media, \"picture img\".indexOf(Component) !== -1 && classes.img),\n ref: ref,\n style: composedStyle,\n src: isMediaComponent ? image || src : undefined\n }, other), children);\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n name: 'MuiCardMedia'\n})(CardMedia);","/**\n * A client that makes requests to Elasticsearch via a {{#crossLink \"Transport\"}}Transport{{/crossLink}}\n *\n * Initializing a client might look something like:\n *\n * ```\n * var client = new es.Client({\n * hosts: [\n * 'es1.net:9200',\n * {\n * host: 'es2.net',\n * port: 9200\n * }\n * ],\n * sniffOnStart: true,\n * log: {\n * type: 'file',\n * level: 'warning'\n * }\n * });\n * ```\n *\n * @class Client\n * @constructor\n */\nmodule.exports = Client;\n\nvar Transport = require('./transport');\n\nvar clientAction = require('./client_action');\n\nvar _ = require('lodash');\n\nvar utils = require('./utils');\n\nfunction Client(config) {\n config = config || {};\n\n if (config.__reused) {\n throw new Error('Do not reuse objects to configure the elasticsearch Client class: ' + 'https://github.com/elasticsearch/elasticsearch-js/issues/33');\n } else {\n config.__reused = true;\n }\n\n function EsApiClient() {\n // our client will log minimally by default\n if (!config.hasOwnProperty('log')) {\n config.log = 'warning';\n }\n\n if (!config.hosts && !config.host) {\n config.host = 'http://localhost:9200';\n }\n\n this.close = function () {\n this.transport.close();\n };\n\n this.transport = new Transport(config);\n\n _.each(EsApiClient.prototype, _.bind(function (Fn, prop) {\n if (Fn.prototype instanceof clientAction.ApiNamespace) {\n this[prop] = new Fn(this.transport, this);\n }\n }, this));\n\n delete this._namespaces;\n }\n\n EsApiClient.prototype = utils.funcEnum(config, 'apiVersion', Client.apis, '_default');\n\n if (!config.sniffEndpoint && EsApiClient.prototype === Client.apis['0.90']) {\n config.sniffEndpoint = '/_cluster/nodes';\n }\n\n var Constructor = EsApiClient;\n\n if (config.plugins) {\n Constructor.prototype = _.cloneDeep(Constructor.prototype);\n\n _.each(config.plugins, function (setup) {\n Constructor = setup(Constructor, config, {\n apis: require('./apis'),\n connectors: require('./connectors'),\n loggers: require('./loggers'),\n selectors: require('./selectors'),\n serializers: require('./serializers'),\n Client: require('./client'),\n clientAction: clientAction,\n Connection: require('./connection'),\n ConnectionPool: require('./connection_pool'),\n Errors: require('./errors'),\n Host: require('./host'),\n Log: require('./log'),\n Logger: require('./logger'),\n NodesToHost: require('./nodes_to_host'),\n Transport: require('./transport')\n }) || Constructor;\n });\n }\n\n return new Constructor();\n}\n\nClient.apis = require('./apis');","var _ = require('lodash');\n\nvar utils = require('./utils');\n/**\n * Abstract class providing common functionality to loggers\n * @param {[type]} log [description]\n * @param {[type]} config [description]\n */\n\n\nfunction LoggerAbstract(log, config) {\n this.log = log;\n this.listeningLevels = [];\n utils.makeBoundMethods(this); // when the log closes, remove our event listeners\n\n this.log.once('closing', this.bound.cleanUpListeners);\n this.setupListeners(config.levels);\n}\n\nfunction padNumToTen(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n/**\n * Create a timestamp string used in the format function. Defers to Log.timestamp if it is defined,\n * Also, feel free to override this at the logger level.\n * @return {String} - Timestamp in ISO 8601 UTC\n */\n\n\nLoggerAbstract.prototype.timestamp = function () {\n var d = new Date();\n return d.getUTCFullYear() + '-' + padNumToTen(d.getUTCMonth() + 1) + '-' + padNumToTen(d.getUTCDate()) + 'T' + padNumToTen(d.getUTCHours()) + ':' + padNumToTen(d.getUTCMinutes()) + ':' + padNumToTen(d.getUTCSeconds()) + 'Z';\n};\n\nfunction indent(text, spaces) {\n var space = utils.repeat(' ', spaces || 2);\n return (text || '').split(/\\r?\\n/).map(function (line) {\n return space + line;\n }).join('\\n');\n}\n\nLoggerAbstract.prototype.format = function (label, message) {\n return label + ': ' + this.timestamp() + '\\n' + indent(message) + '\\n\\n';\n};\n\nLoggerAbstract.prototype.write = function () {\n throw new Error('This should be overwritten by the logger');\n};\n/**\n * Clear the current event listeners and then re-listen for events based on the level specified\n *\n * @method setupListeners\n * @private\n * @param {Integer} level - The max log level that this logger should listen to\n * @return {undefined}\n */\n\n\nLoggerAbstract.prototype.setupListeners = function (levels) {\n this.cleanUpListeners();\n this.listeningLevels = [];\n\n _.each(levels, _.bind(function (level) {\n var fnName = 'on' + utils.ucfirst(level);\n\n if (this.bound[fnName]) {\n this.listeningLevels.push(level);\n this.log.on(level, this.bound[fnName]);\n } else {\n throw new Error('Unable to listen for level \"' + level + '\"');\n }\n }, this));\n};\n/**\n * Clear the current event listeners\n *\n * @method cleanUpListeners\n * @private\n * @return {undefined}\n */\n\n\nLoggerAbstract.prototype.cleanUpListeners = utils.handler(function () {\n _.each(this.listeningLevels, _.bind(function (level) {\n this.log.removeListener(level, this.bound['on' + utils.ucfirst(level)]);\n }, this));\n});\n/**\n * Handler for the logs \"error\" event\n *\n * @method onError\n * @private\n * @param {Error} e - The Error object to log\n * @return {undefined}\n */\n\nLoggerAbstract.prototype.onError = utils.handler(function (e) {\n this.write(e.name === 'Error' ? 'ERROR' : e.name, e.stack);\n});\n/**\n * Handler for the logs \"warning\" event\n *\n * @method onWarning\n * @private\n * @param {String} msg - The message to be logged\n * @return {undefined}\n */\n\nLoggerAbstract.prototype.onWarning = utils.handler(function (msg) {\n this.write('WARNING', msg);\n});\n/**\n * Handler for the logs \"info\" event\n *\n * @method onInfo\n * @private\n * @param {String} msg - The message to be logged\n * @return {undefined}\n */\n\nLoggerAbstract.prototype.onInfo = utils.handler(function (msg) {\n this.write('INFO', msg);\n});\n/**\n * Handler for the logs \"debug\" event\n *\n * @method onDebug\n * @private\n * @param {String} msg - The message to be logged\n * @return {undefined}\n */\n\nLoggerAbstract.prototype.onDebug = utils.handler(function (msg) {\n this.write('DEBUG', msg);\n});\n/**\n * Handler for the logs \"trace\" event\n *\n * @method onTrace\n * @private\n * @param {String} msg - The message to be logged\n * @return {undefined}\n */\n\nLoggerAbstract.prototype.onTrace = utils.handler(function (requestDetails) {\n this.write('TRACE', this._formatTraceMessage(requestDetails));\n});\n\nLoggerAbstract.prototype._formatTraceMessage = function (req) {\n return '-> ' + req.method + ' ' + req.url + '\\n' + this._prettyJson(req.body) + '\\n' + '<- ' + req.status + '\\n' + this._prettyJson(req.response);\n /*\n -> GET https://sldfkjsdlfksjdf:9200/slsdkfjlxckvxhclks?sdlkj=sdlfkje\n {\n asdflksjdf\n }\n <- 502\n {\n sldfksjdlf\n }\n */\n};\n\nLoggerAbstract.prototype._prettyJson = function (body) {\n try {\n if (typeof body === 'string') {\n body = JSON.parse(body);\n }\n\n return JSON.stringify(body, null, ' ').replace(/'/g, \"\\\\u0027\");\n } catch (e) {\n return typeof body === 'string' ? body : '';\n }\n};\n\nmodule.exports = LoggerAbstract;","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n };\n}","require(\"core-js/modules/es.array.reduce.js\");\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.\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n\n return descriptors;\n};\n\nvar formatRegExp = /%[sdj%]/g;\n\nexports.format = function (f) {\n if (!isString(f)) {\n var objects = [];\n\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function (x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n\n switch (x) {\n case '%s':\n return String(args[i++]);\n\n case '%d':\n return Number(args[i++]);\n\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n\n default:\n return x;\n }\n });\n\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n\n return str;\n}; // Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\n\n\nexports.deprecate = function (fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n } // Allow for deprecating things in the process of starting up.\n\n\n if (typeof process === 'undefined') {\n return function () {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n\n warned = true;\n }\n\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\nvar debugs = {};\nvar debugEnviron;\n\nexports.debuglog = function (set) {\n if (isUndefined(debugEnviron)) debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n\n debugs[set] = function () {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function () {};\n }\n }\n\n return debugs[set];\n};\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n\n/* legacy: obj, showHidden, depth, colors*/\n\n\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n }; // legacy...\n\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n } // set default options\n\n\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\n\nexports.inspect = inspect; // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\n\ninspect.colors = {\n 'bold': [1, 22],\n 'italic': [3, 23],\n 'underline': [4, 24],\n 'inverse': [7, 27],\n 'white': [37, 39],\n 'grey': [90, 39],\n 'black': [30, 39],\n 'blue': [34, 39],\n 'cyan': [36, 39],\n 'green': [32, 39],\n 'magenta': [35, 39],\n 'red': [31, 39],\n 'yellow': [33, 39]\n}; // Don't use 'blue' not visible on cmd.exe\n\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return \"\\x1B[\" + inspect.colors[style][0] + 'm' + str + \"\\x1B[\" + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\nfunction arrayToHash(array) {\n var hash = {};\n array.forEach(function (val, idx) {\n hash[val] = true;\n });\n return hash;\n}\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect && value && isFunction(value.inspect) && // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect && // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n\n return ret;\n } // Primitive types cannot have properties\n\n\n var primitive = formatPrimitive(ctx, value);\n\n if (primitive) {\n return primitive;\n } // Look up the keys of the object.\n\n\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n } // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n\n\n if (isError(value) && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n } // Some type of object without properties can be shortcutted.\n\n\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '',\n array = false,\n braces = ['{', '}']; // Make Array say that they are Array\n\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n } // Make functions say that they are functions\n\n\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n } // Make RegExps say that they are RegExps\n\n\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n } // Make dates with properties first say the date\n\n\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n } // Make error with message first say the error\n\n\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n var output;\n\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function (key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n return reduceToSingleString(output, base, braces);\n}\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value)) return ctx.stylize('undefined', 'undefined');\n\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '').replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n\n if (isNumber(value)) return ctx.stylize('' + value, 'number');\n if (isBoolean(value)) return ctx.stylize('' + value, 'boolean'); // For some reason typeof null is \"object\", so special case here.\n\n if (isNull(value)) return ctx.stylize('null', 'null');\n}\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, String(i), true));\n } else {\n output.push('');\n }\n }\n\n keys.forEach(function (key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, key, true));\n }\n });\n return output;\n}\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || {\n value: value[key]\n };\n\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function (line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function (line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n\n name = JSON.stringify('' + key);\n\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"').replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function (prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] + (base === '' ? '' : base + '\\n ') + ' ' + output.join(',\\n ') + ' ' + braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\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\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\n\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\n\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\n\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\n\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\n\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\n\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\n\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) && (objectToString(e) === '[object Error]' || e instanceof Error);\n}\n\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null || typeof arg === 'boolean' || typeof arg === 'number' || typeof arg === 'string' || typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nexports.isPrimitive = isPrimitive;\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; // 26 Feb 16:19:34\n\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n} // log is just a thin wrapper to console.log that prepends a timestamp\n\n\nexports.log = function () {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\n\n\nexports.inherits = require('inherits');\n\nexports._extend = function (origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n var keys = Object.keys(add);\n var i = keys.length;\n\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function') throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn,\n enumerable: false,\n writable: false,\n configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n var args = [];\n\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn,\n enumerable: false,\n writable: false,\n configurable: true\n });\n return Object.defineProperties(fn, getOwnPropertyDescriptors(original));\n};\n\nexports.promisify.custom = kCustomPromisifiedSymbol;\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n } // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n\n\n function callbackified() {\n var args = [];\n\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n\n var self = this;\n\n var cb = function cb() {\n return maybeCb.apply(self, arguments);\n }; // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n\n\n original.apply(this, args).then(function (ret) {\n process.nextTick(cb, null, ret);\n }, function (rej) {\n process.nextTick(callbackifyOnRejected, rej, cb);\n });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified, getOwnPropertyDescriptors(original));\n return callbackified;\n}\n\nexports.callbackify = callbackify;","'use strict';\n\nmodule.exports = {\n isString: function isString(arg) {\n return typeof arg === 'string';\n },\n isObject: function isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n },\n isNull: function isNull(arg) {\n return arg === null;\n },\n isNullOrUndefined: function isNullOrUndefined(arg) {\n return arg == null;\n }\n};","/**\n * Generic Transport for the browser, using the XmlHttpRequest object\n *\n * @class connections.Xhr\n */\nmodule.exports = XhrConnector;\n/* eslint-env browser */\n\nvar _ = require('lodash');\n\nvar utils = require('../utils');\n\nvar ConnectionAbstract = require('../connection');\n\nvar ConnectionFault = require('../errors').ConnectionFault;\n\nvar asyncDefault = !(navigator && /PhantomJS/i.test(navigator.userAgent));\n\nfunction XhrConnector(host, config) {\n ConnectionAbstract.call(this, host, config);\n}\n\nutils.inherits(XhrConnector, ConnectionAbstract);\n/**\n * Simply returns an XHR object cross browser\n * @type {Function}\n */\n\nvar getXhr = _.noop;\n\nif (typeof XMLHttpRequest !== 'undefined') {\n // rewrite the getXhr method to always return the native implementation\n getXhr = function getXhr() {\n return new XMLHttpRequest();\n };\n} else {\n // find the first MS implementation available\n getXhr = _(['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0']).map(function (appName) {\n try {\n var test = new window.ActiveXObject(appName); // eslint-disable-line no-unused-vars\n\n return function () {\n return new window.ActiveXObject(appName);\n };\n } catch (e) {\n return false;\n }\n }).compact().head();\n}\n\nif (!getXhr) {\n throw new Error('getXhr(): XMLHttpRequest not available');\n}\n\nXhrConnector.prototype.request = function (params, cb) {\n var xhr = getXhr();\n var timeoutId;\n var host = this.host;\n var log = this.log;\n var url = host.makeUrl(params);\n var headers = host.getHeaders(params.headers);\n var async = params.async === false ? false : asyncDefault;\n xhr.open(params.method || 'GET', url, async);\n\n if (headers) {\n for (var key in headers) {\n if (headers[key] !== void 0) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n }\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n clearTimeout(timeoutId);\n log.trace(params.method, url, params.body, xhr.responseText, xhr.status);\n var err = xhr.status ? void 0 : new ConnectionFault(xhr.statusText || 'Request failed to complete.');\n cb(err, xhr.responseText, xhr.status);\n }\n };\n\n xhr.send(params.body || void 0);\n return function () {\n xhr.abort();\n };\n};","module.exports = {\n random: require('./random'),\n roundRobin: require('./round_robin')\n};","/**\n * Class to wrap URLS, formatting them and maintaining their separate details\n * @type {[type]}\n */\nmodule.exports = Host;\n\nvar url = require('url');\n\nvar qs = require('querystring');\n\nvar _ = require('lodash');\n\nvar utils = require('./utils');\n\nvar startsWithProtocolRE = /^([a-z]+:)?\\/\\//;\nvar defaultProto = 'http:';\nvar btoa;\n\nif (typeof window !== 'undefined' && typeof window.location !== 'undefined') {\n defaultProto = window.location.protocol;\n btoa = window.btoa;\n}\n\nbtoa = btoa || function (data) {\n return new Buffer(data, 'utf8').toString('base64');\n};\n\nvar urlParseFields = ['protocol', 'hostname', 'pathname', 'port', 'auth', 'query'];\nvar simplify = ['host', 'path'];\nvar sslDefaults = {\n pfx: null,\n key: null,\n passphrase: null,\n cert: null,\n ca: null,\n ciphers: undefined,\n rejectUnauthorized: false,\n secureProtocol: null\n}; // simple reference used when formatting as a url\n// and defines when parsing from a string\n\nHost.defaultPorts = {\n http: 80,\n https: 443\n};\n\nfunction Host(config, globalConfig) {\n config = _.clone(config || {});\n globalConfig = globalConfig || {}; // defaults\n\n this.protocol = 'http';\n this.host = 'localhost';\n this.path = '';\n this.port = 9200;\n this.query = null;\n this.headers = null;\n this.suggestCompression = !!globalConfig.suggestCompression;\n this.ssl = _.defaults({}, config.ssl || {}, globalConfig.ssl || {}, sslDefaults);\n\n if (typeof config === 'string') {\n var firstColon = config.indexOf(':');\n var firstSlash = config.indexOf('/');\n var noSlash = firstSlash === -1;\n var portNoPath = firstColon > -1 && noSlash;\n var portWithPath = !portNoPath && firstColon < firstSlash;\n\n if ((noSlash || portNoPath || portWithPath) && !startsWithProtocolRE.test(config)) {\n config = defaultProto + '//' + config;\n }\n\n config = _.pick(url.parse(config, false, true), urlParseFields); // default logic for the port is to use 9200 for the default. When a string is specified though,\n // we will use the default from the protocol of the string.\n\n if (!config.port) {\n var proto = config.protocol || 'http';\n\n if (proto.charAt(proto.length - 1) === ':') {\n proto = proto.substring(0, proto.length - 1);\n }\n\n if (Host.defaultPorts[proto]) {\n config.port = Host.defaultPorts[proto];\n }\n }\n }\n\n if (_.isObject(config)) {\n // move hostname/portname to host/port semi-intelligently.\n _.each(simplify, function (to) {\n var from = to + 'name';\n\n if (config[from] && config[to]) {\n if (config[to].indexOf(config[from]) === 0) {\n config[to] = config[from];\n }\n } else if (config[from]) {\n config[to] = config[from];\n }\n\n delete config[from];\n });\n } else {\n config = {};\n }\n\n if (!config.auth && globalConfig.httpAuth) {\n config.auth = globalConfig.httpAuth;\n }\n\n if (config.auth) {\n config.headers = config.headers || {};\n config.headers.Authorization = 'Basic ' + btoa(config.auth);\n delete config.auth;\n }\n\n _.forOwn(config, _.bind(function (val, prop) {\n if (val != null) this[prop] = _.clone(val);\n }, this)); // make sure the query string is parsed\n\n\n if (this.query === null) {\n // majority case\n this.query = {};\n } else if (!_.isPlainObject(this.query)) {\n this.query = qs.parse(this.query);\n } // make sure that the port is a number\n\n\n if (utils.isNumeric(this.port)) {\n this.port = parseInt(this.port, 10);\n } else {\n this.port = 9200;\n } // make sure the path starts with a leading slash\n\n\n if (this.path === '/') {\n this.path = '';\n } else if (this.path && this.path.charAt(0) !== '/') {\n this.path = '/' + (this.path || '');\n } // strip trailing ':' on the protocol (when config comes from url.parse)\n\n\n if (this.protocol.substr(-1) === ':') {\n this.protocol = this.protocol.substring(0, this.protocol.length - 1);\n }\n}\n\nHost.prototype.makeUrl = function (params) {\n params = params || {}; // build the port\n\n var port = '';\n\n if (this.port !== Host.defaultPorts[this.protocol]) {\n // add an actual port\n port = ':' + this.port;\n } // build the path\n\n\n var path = '' + (this.path || '') + (params.path || ''); // if path doesn't start with '/' add it.\n\n if (path.charAt(0) !== '/') {\n path = '/' + path;\n } // build the query string\n\n\n var query = qs.stringify(this.getQuery(params.query));\n\n if (this.host) {\n return this.protocol + '://' + this.host + port + path + (query ? '?' + query : '');\n } else {\n return path + (query ? '?' + query : '');\n }\n};\n\nfunction objectPropertyGetter(prop, preOverride) {\n return function (overrides) {\n if (preOverride) {\n overrides = preOverride.call(this, overrides);\n }\n\n var obj = this[prop];\n\n if (!obj && !overrides) {\n return null;\n }\n\n if (overrides) {\n obj = _.assign({}, obj, overrides);\n }\n\n return _.size(obj) ? obj : null;\n };\n}\n\nHost.prototype.getHeaders = objectPropertyGetter('headers', function (overrides) {\n if (!this.suggestCompression) {\n return overrides;\n }\n\n return _.defaults(overrides || {}, {\n 'Accept-Encoding': 'gzip,deflate'\n });\n});\nHost.prototype.getQuery = objectPropertyGetter('query', function (query) {\n return typeof query === 'string' ? qs.parse(query) : query;\n});\n\nHost.prototype.toString = function () {\n return this.makeUrl();\n};","module.exports = {\n console: require('./console')\n};","(function (f) {\n if (typeof exports === \"object\" && typeof module !== \"undefined\") {\n module.exports = f();\n } else if (typeof define === \"function\" && define.amd) {\n define([], f);\n } else {\n var g;\n\n if (typeof window !== \"undefined\") {\n g = window;\n } else if (typeof global !== \"undefined\") {\n g = global;\n } else if (typeof self !== \"undefined\") {\n g = self;\n } else {\n g = this;\n }\n\n g.InputHints = f();\n }\n})(function () {\n var define, module, exports;\n module = {\n exports: exports = {}\n };\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n function _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n }\n\n var React = require('react');\n\n var PureComponent = React.PureComponent;\n\n var PropTypes = require('prop-types');\n\n var Typewriting = require('react-typewriting');\n\n var InputHints = function (_PureComponent) {\n _inherits(InputHints, _PureComponent);\n\n function InputHints() {\n _classCallCheck(this, InputHints);\n\n return _possibleConstructorReturn(this, (InputHints.__proto__ || Object.getPrototypeOf(InputHints)).apply(this, arguments));\n }\n\n _createClass(InputHints, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n placeholders = _props.placeholders,\n props = _objectWithoutProperties(_props, ['placeholders']);\n\n return React.createElement(Typewriting, _extends({}, props, {\n component: 'input',\n stringPropName: 'placeholder',\n strings: placeholders\n }));\n }\n }]);\n\n return InputHints;\n }(PureComponent);\n\n InputHints.defaultProps = {\n waitBeforeDeleteMs: 2000\n };\n exports.default = InputHints;\n return module.exports;\n});","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","module.exports = {\n '_default': require('./7_6'),\n '7.6': require('./7_6'),\n '7.5': require('./7_5'),\n '7.4': require('./7_4'),\n '7.3': require('./7_3'),\n '7.2': require('./7_2'),\n '7.7': require('./7_7'),\n '7.x': require('./7_x'),\n 'master': require('./master')\n};","var _ = require('lodash');\n\nvar extractHostPartsRE1x = /\\[(?:(.*)\\/)?(.+?):(\\d+)\\]/;\n\nfunction makeNodeParser(hostProp) {\n return function (nodes) {\n return _.transform(nodes, function (hosts, node, id) {\n var address = _.get(node, hostProp);\n\n if (!address) return;\n var host = {\n host: undefined,\n port: undefined,\n _meta: {\n id: id,\n name: node.name,\n version: node.version\n }\n };\n var malformedError = new Error('Malformed ' + hostProp + '.' + ' Got ' + JSON.stringify(address) + ' and expected it to match \"{hostname?}/{ip}:{port}\".');\n var matches1x = extractHostPartsRE1x.exec(address);\n\n if (matches1x) {\n host.host = matches1x[1] || matches1x[2];\n host.port = parseInt(matches1x[3], 10);\n hosts.push(host);\n return;\n }\n\n if (address.indexOf('/') > -1) {\n var withHostParts = address.split('/');\n if (withHostParts.length !== 2) throw malformedError;\n host.host = withHostParts.shift();\n address = withHostParts.shift();\n }\n\n if (address.indexOf(':') < 0) {\n throw malformedError;\n }\n\n var addressParts = address.split(':');\n\n if (addressParts.length !== 2) {\n throw malformedError;\n }\n\n host.host = host.host || addressParts[0];\n host.port = parseInt(addressParts[1], 10);\n hosts.push(host);\n }, []);\n };\n}\n\nmodule.exports = makeNodeParser('http.publish_address');","module.exports = {\n angular: require('./angular'),\n json: require('./json')\n};","import React from 'react'\nimport Helmet from 'react-helmet'\n\n\n\nexport default (props) => (\n \n \n \n \n \n \n\n {/* General tags */}\n {props.title}\n \n \n\n {/* OpenGraph tags */}\n \n \n \n \n \n \n\n {/* Twitter Card tags */}\n \n \n \n \n \n \n\n \n \n \n)\n\n","var _ = require('lodash');\n\nvar utils = require('./utils');\n\nvar url = require('url');\n\nvar EventEmitter = require('events').EventEmitter;\n/**\n * Log bridge, which is an [EventEmitter](http://nodejs.org/api/events.html#events_class_events_eventemitter)\n * that sends events to one or more outputs/loggers. Setup these loggers by\n * specifying their config as the first argument, or by passing it to addOutput().\n *\n * @class Log\n * @uses Loggers.Stdio\n * @constructor\n * @param {object} config\n * @param {string|Object|ArrayOfStrings|ArrayOfObjects} config.log - Either the level\n * to setup a single logger, a full config object for a logger, or an array of\n * config objects to use for creating log outputs.\n * @param {string|array} config.log.level|config.log.levels - One or more keys in Log.levels (error, warning, etc.)\n * @param {string} config.log.type - The name of the logger to use for this output\n */\n\n\nfunction Log(config) {\n config = config || {};\n if (!config.log) return;\n var i;\n var outputs;\n\n if (utils.isArrayOfStrings(config.log)) {\n outputs = [{\n levels: config.log\n }];\n } else {\n outputs = utils.createArray(config.log, function (val) {\n if (_.isPlainObject(val)) {\n return val;\n }\n\n if (typeof val === 'string') {\n return {\n level: val\n };\n }\n });\n }\n\n if (!outputs) {\n throw new TypeError('Invalid logging output config. Expected either a log level, array of log levels, ' + 'a logger config object, or an array of logger config objects.');\n }\n\n for (i = 0; i < outputs.length; i++) {\n this.addOutput(outputs[i]);\n }\n}\n\nutils.inherits(Log, EventEmitter);\nLog.loggers = require('./loggers');\n\nLog.prototype.close = function () {\n this.emit('closing');\n\n if (this.listenerCount()) {\n console.error('Something is still listening for log events, but the logger is closing.'); // eslint-disable-line no-console\n\n this.clearAllListeners();\n }\n};\n\nif (EventEmitter.prototype.listenerCount) {\n // If the event emitter implements it's own listenerCount method\n // we don't need to (newer nodes do this).\n Log.prototype.listenerCount = EventEmitter.prototype.listenerCount;\n} else if (EventEmitter.listenerCount) {\n // some versions of node expose EventEmitter::listenerCount\n // which is more efficient the getting all listeners of a\n // specific type\n Log.prototype.listenerCount = function (event) {\n return EventEmitter.listenerCount(this, event);\n };\n} else {\n // all other versions of node expose a #listeners() method, which returns\n // and array we have to count\n Log.prototype.listenerCount = function (event) {\n return this.listeners(event).length;\n };\n}\n/**\n * Levels observed by the loggers, ordered by rank\n *\n * @property levels\n * @type Array\n * @static\n */\n\n\nLog.levels = [\n/**\n * Event fired for error level log entries\n * @event error\n * @param {Error} error - The error object to log\n */\n'error',\n/**\n * Event fired for \"warning\" level log entries, which usually represent things\n * like correctly formatted error responses from ES (400, ...) and recoverable\n * errors (one node unresponsive)\n *\n * @event warning\n * @param {String} message - A message to be logged\n */\n'warning',\n/**\n * Event fired for \"info\" level log entries, which usually describe what a\n * client is doing (sniffing etc)\n *\n * @event info\n * @param {String} message - A message to be logged\n */\n'info',\n/**\n * Event fired for \"debug\" level log entries, which will describe requests sent,\n * including their url (no data, response codes, or exec times)\n *\n * @event debug\n * @param {String} message - A message to be logged\n */\n'debug',\n/**\n * Event fired for \"trace\" level log entries, which provide detailed information\n * about each request made from a client, including reponse codes, execution times,\n * and a full curl command that can be copied and pasted into a terminal\n *\n * @event trace\n * @param {String} method method, , body, responseStatus, responseBody\n * @param {String} url - The url the request was made to\n * @param {String} body - The body of the request\n * @param {Integer} responseStatus - The status code returned from the response\n * @param {String} responseBody - The body of the response\n */\n'trace'];\n/**\n * Converts a log config value (string or array) to an array of level names which\n * it represents\n *\n * @method parseLevels\n * @static\n * @private\n * @param {String|ArrayOfStrings} input - Cound be a string to specify the max\n * level, or an array of exact levels\n * @return {Array} -\n */\n\nLog.parseLevels = function (input) {\n switch (typeof input) {\n case 'string':\n var i = _.indexOf(Log.levels, input);\n\n if (i >= 0) {\n return Log.levels.slice(0, i + 1);\n }\n\n /* fall through */\n\n case 'object':\n if (_.isArray(input)) {\n var valid = _.intersection(input, Log.levels);\n\n if (valid.length === input.length) {\n return valid;\n }\n }\n\n /* fall through */\n\n default:\n throw new TypeError('invalid logging level ' + input + '. Expected zero or more of these options: ' + Log.levels.join(', '));\n }\n};\n/**\n * Combine the array-like param into a simple string\n *\n * @method join\n * @static\n * @private\n * @param {*} arrayish - An array like object that can be itterated by _.each\n * @return {String} - The final string.\n */\n\n\nLog.join = function (arrayish) {\n return _.map(arrayish, function (item) {\n if (_.isPlainObject(item)) {\n return JSON.stringify(item, null, 2) + '\\n';\n } else {\n return item.toString();\n }\n }).join(' ');\n};\n/**\n * Create a new logger, based on the config.\n *\n * @method addOutput\n * @param {object} config - An object with config options for the logger.\n * @param {String} [config.type=stdio] - The name of an output/logger. Options\n * can be found in the `src/loggers` directory.\n * @param {String|ArrayOfStrings} [config.level|config.levels=warning] - The levels to output\n * to this logger, when an array is specified no levels other than the ones\n * specified will be listened to. When a string is specified, that and all lower\n * levels will be logged.\n * @return {Logger}\n */\n\n\nLog.prototype.addOutput = function (config) {\n config = config || {}; // force \"levels\" key\n\n config.levels = Log.parseLevels(config.levels || config.level || 'warning');\n delete config.level;\n var Logger = utils.funcEnum(config, 'type', Log.loggers, process.browser ? 'console' : 'stdio');\n return new Logger(this, config);\n};\n/**\n * Log an error\n *\n * @method error\n * @param {Error|String} error The Error to log\n * @return {Boolean} - True if any outputs accepted the message\n */\n\n\nLog.prototype.error = function (e) {\n if (this.listenerCount('error')) {\n return this.emit('error', e instanceof Error ? e : new Error(e));\n }\n};\n/**\n * Log a warning message\n *\n * @method warning\n * @param {*} msg* - Any amount of messages that will be joined before logged\n * @return {Boolean} - True if any outputs accepted the message\n */\n\n\nLog.prototype.warning = function ()\n/* ...msg */\n{\n if (this.listenerCount('warning')) {\n return this.emit('warning', Log.join(arguments));\n }\n};\n/**\n * Log useful info about what's going on\n *\n * @method info\n * @param {*} msg* - Any amount of messages that will be joined before logged\n * @return {Boolean} - True if any outputs accepted the message\n */\n\n\nLog.prototype.info = function ()\n/* ...msg */\n{\n if (this.listenerCount('info')) {\n return this.emit('info', Log.join(arguments));\n }\n};\n/**\n * Log a debug level message\n *\n * @method debug\n * @param {*} msg* - Any amount of messages that will be joined before logged\n * @return {Boolean} - True if any outputs accepted the message\n */\n\n\nLog.prototype.debug = function ()\n/* ...msg */\n{\n if (this.listenerCount('debug')) {\n return this.emit('debug', Log.join(arguments));\n }\n};\n/**\n * Log a trace level message\n *\n * @method trace\n * @param {String} method - HTTP request method\n * @param {String|Object} requestUrl - URL requested. If the value is an object,\n * it is expected to be the return value of Node's url.parse()\n * @param {String} body - The request's body\n * @param {String} responseBody - body returned from ES\n * @param {String} responseStatus - HTTP status code\n * @return {Boolean} - True if any outputs accepted the message\n */\n\n\nLog.prototype.trace = function (method, requestUrl, body, responseBody, responseStatus) {\n if (this.listenerCount('trace')) {\n return this.emit('trace', Log.normalizeTraceArgs(method, requestUrl, body, responseBody, responseStatus));\n }\n};\n\nLog.normalizeTraceArgs = function (method, requestUrl, body, responseBody, responseStatus) {\n if (typeof requestUrl === 'string') {\n requestUrl = url.parse(requestUrl, true, true);\n } else {\n requestUrl = _.clone(requestUrl);\n\n if (requestUrl.path) {\n requestUrl.query = url.parse(requestUrl.path, true, false).query;\n }\n\n if (!requestUrl.pathname && requestUrl.path) {\n requestUrl.pathname = requestUrl.path.split('?').shift();\n }\n }\n\n delete requestUrl.auth;\n return {\n method: method,\n url: url.format(requestUrl),\n body: body,\n status: responseStatus,\n response: responseBody\n };\n};\n\nmodule.exports = Log;","var _ = require('lodash');\n\nmodule.exports = function (hosts) {\n if (_.isEmpty(hosts)) return false;\n var commonProtocol = hosts.shift().protocol;\n\n for (var i = 0; i < hosts.length; i++) {\n if (commonProtocol !== hosts[i].protocol) {\n return false;\n }\n }\n\n return commonProtocol;\n};","/**\n * Special version of the Stream logger, which logs errors and warnings to stderr and all other\n * levels to stdout.\n *\n * @class Loggers.Console\n * @extends LoggerAbstract\n * @constructor\n * @param {Object} config - The configuration for the Logger\n * @param {string} config.level - The highest log level for this logger to output.\n * @param {Log} bridge - The object that triggers logging events, which we will record\n */\nmodule.exports = Console;\n\nvar LoggerAbstract = require('../logger');\n\nvar _ = require('lodash');\n\nvar utils = require('../utils');\n\nfunction Console(log, config) {\n LoggerAbstract.call(this, log, config); // config/state\n\n this.color = _.has(config, 'color') ? !!config.color : true;\n}\n\nutils.inherits(Console, LoggerAbstract);\n/**\n * Override the LoggerAbstract's setup listeners to do a little extra setup\n *\n * @param {Array} levels - The levels that we should be listeneing for\n */\n\nConsole.prototype.setupListeners = function (levels) {\n // call the super method\n LoggerAbstract.prototype.setupListeners.call(this, levels);\n};\n\nConsole.prototype.write = function (label, message, to) {\n if (console[to]) {\n console[to](this.format(label, message));\n }\n};\n/**\n * Handler for the bridges \"error\" event\n *\n * @method onError\n * @private\n * @param {Error} e - The Error object to log\n * @return {undefined}\n */\n\n\nConsole.prototype.onError = utils.handler(function (e) {\n var to = console.error ? 'error' : 'log';\n this.write(e.name === 'Error' ? 'ERROR' : e.name, e.stack || e.message, to);\n});\n/**\n * Handler for the bridges \"warning\" event\n *\n * @method onWarning\n * @private\n * @param {String} msg - The message to be logged\n * @return {undefined}\n */\n\nConsole.prototype.onWarning = utils.handler(function (msg) {\n this.write('WARNING', msg, console.warn ? 'warn' : 'log');\n});\n/**\n * Handler for the bridges \"info\" event\n *\n * @method onInfo\n * @private\n * @param {String} msg - The message to be logged\n * @return {undefined}\n */\n\nConsole.prototype.onInfo = utils.handler(function (msg) {\n this.write('INFO', msg, console.info ? 'info' : 'log');\n});\n/**\n * Handler for the bridges \"debug\" event\n *\n * @method onDebug\n * @private\n * @param {String} msg - The message to be logged\n * @return {undefined}\n */\n\nConsole.prototype.onDebug = utils.handler(function (msg) {\n this.write('DEBUG', msg, console.debug ? 'debug' : 'log');\n});\n/**\n * Handler for the bridges \"trace\" event\n *\n * @method onTrace\n * @private\n * @return {undefined}\n */\n\nConsole.prototype.onTrace = utils.handler(function (msg) {\n this.write('TRACE', this._formatTraceMessage(msg), 'log');\n});","var utils = require('../utils');\n/**\n * Patch the transport's connection pool to schedule a sniff after a connection fails.\n * When a connection fails for the first time it will schedule a sniff 1 second in the\n * future, and increase the timeout based on the deadTimeout algorithm chosen by the\n * connectionPool, and the number of times the sniff has failed.\n *\n * @param {Transport} transport - the transport that will be using this behavior\n * @return {undefined}\n */\n\n\nmodule.exports = function setupSniffOnConnectionFault(transport) {\n var failures = 0;\n var pool = transport.connectionPool;\n var originalOnDied = pool._onConnectionDied; // do the actual sniff, if the sniff is unable to\n // connect to a node this function will be called again by the connectionPool\n\n var work = function work() {\n work.timerId = transport._timeout(work.timerId);\n transport.sniff();\n }; // create a function that will count down to a\n // point n milliseconds into the future\n\n\n var countdownTo = function countdownTo(ms) {\n var start = utils.now();\n return function () {\n return start - ms;\n };\n }; // overwrite the function, but still call it\n\n\n pool._onConnectionDied = function (connection, wasAlreadyDead) {\n var ret = originalOnDied.call(pool, connection, wasAlreadyDead); // clear the failures if this is the first failure we have seen\n\n failures = work.timerId ? failures + 1 : 0;\n var ms = pool.calcDeadTimeout(failures, 1000);\n\n if (work.timerId && ms < work.timerId && work.countdown()) {\n // clear the timer\n work.timerId = transport._timeout(work.timerId);\n }\n\n if (!work.timerId) {\n work.timerId = transport._timeout(work, ms);\n work.countdown = countdownTo(ms);\n }\n\n return ret;\n };\n\n pool._onConnectionDied.restore = function () {\n pool._onConnectionDied = originalOnDied;\n };\n};","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.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 i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n\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\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\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 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\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\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\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\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'use strict'; // If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function (qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n var maxKeys = 1000;\n\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length; // maxKeys <= 0 means that we should not limit keys count\n\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr,\n vstr,\n k,\n v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};","var _ = require('lodash');\n\nvar nodeUtils = require('util');\n/**\n * Custom utils library\n *\n * @class utils\n * @static\n */\n\n\nvar utils = {};\nutils.inherits = nodeUtils.inherits;\n/**\n * Test if a value is an array and its contents are string type\n *\n * @method isArrayOfStrings\n * @param {Array} arr - An array to check\n * @return {Boolean}\n */\n\nutils.isArrayOfStrings = function (arr) {\n // quick shallow check of arrays\n return _.isArray(arr) && _.every(arr.slice(0, 10), _.isString);\n};\n/**\n * Capitalize the first letter of a word\n *\n * @method ucfirst\n * @param {string} word - The word to transform\n * @return {string}\n */\n\n\nutils.ucfirst = function (word) {\n return word[0].toUpperCase() + word.substring(1).toLowerCase();\n};\n/**\n * Base algo for studlyCase and camelCase\n * @param {boolean} firstWordCap - Should the first character of the first word be capitalized\n * @return {Function}\n */\n\n\nfunction adjustWordCase(firstWordCap, otherWordsCap, sep) {\n return function (string) {\n var i = 0;\n var words = [];\n var word = '';\n var code, c, upper, lower;\n\n for (; i < string.length; i++) {\n code = string.charCodeAt(i);\n c = string.charAt(i);\n lower = code >= 97 && code <= 122 || code >= 48 && code <= 57;\n upper = code >= 65 && code <= 90;\n\n if (upper || !lower) {\n // new word\n if (word.length) {\n words.push(word);\n }\n\n word = '';\n }\n\n if (upper || lower) {\n if (lower && word.length) {\n word += c;\n } else {\n if (!words.length && firstWordCap || words.length && otherWordsCap) {\n word = c.toUpperCase();\n } else {\n word = c.toLowerCase();\n }\n }\n }\n }\n\n if (word.length) {\n words.push(word);\n } // add the leading underscore back to strings the had it originally\n\n\n if (words.length && string.charAt(0) === '_') {\n words[0] = '_' + words[0];\n }\n\n return words.join(sep);\n };\n}\n/**\n * Transform a string into StudlyCase\n *\n * @method studlyCase\n * @param {String} string\n * @return {String}\n */\n\n\nutils.studlyCase = adjustWordCase(true, true, '');\n/**\n * Transform a string into camelCase\n *\n * @method camelCase\n * @param {String} string\n * @return {String}\n */\n\nutils.camelCase = adjustWordCase(false, true, '');\n/**\n * Transform a string into snakeCase\n *\n * @method snakeCase\n * @param {String} string\n * @return {String}\n */\n\nutils.snakeCase = adjustWordCase(false, false, '_');\n/**\n * Upper-case the string, return an empty string if any is not a string\n *\n * @param any {*} - Something or nothing\n * @returns {string}\n */\n\nutils.toUpperString = function (any) {\n if (any) {\n if (typeof any !== 'string') {\n any = any.toString();\n }\n } else {\n any = '';\n }\n\n return any.toUpperCase();\n};\n/**\n * Test if a value is \"numeric\" meaning that it can be transformed into something besides NaN\n *\n * @method isNumeric\n * @param {*} val\n * @return {Boolean}\n */\n\n\nutils.isNumeric = function (val) {\n return typeof val !== 'object' && val - parseFloat(val) >= 0;\n}; // regexp to test for intervals\n\n\nvar intervalRE = /^(\\d+(?:\\.\\d+)?)(M|w|d|h|m|s|y|ms)$/;\n/**\n * Test if a string represents an interval (eg. 1m, 2Y)\n *\n * @method isInterval\n * @param {String} val\n * @return {Boolean}\n */\n\nutils.isInterval = function (val) {\n return !!(val.match && val.match(intervalRE));\n};\n/**\n * Repeat a string n times\n *\n * @todo TestPerformance\n * @method repeat\n * @param {String} what - The string to repeat\n * @param {Number} times - Times the string should be repeated\n * @return {String}\n */\n\n\nutils.repeat = function (what, times) {\n return new Array(times + 1).join(what);\n};\n/**\n * Call a function, applying the arguments object to it in an optimized way, rather than always turning it into an array\n *\n * @param func {Function} - The function to execute\n * @param context {*} - The context the function will be executed with\n * @param args {Arguments} - The arguments to send to func\n * @param [sliceIndex=0] {Integer} - The index that args should be sliced at, before feeding args to func\n * @returns {*} - the return value of func\n */\n\n\nutils.applyArgs = function (func, context, args, sliceIndex) {\n sliceIndex = sliceIndex || 0;\n\n switch (args.length - sliceIndex) {\n case 0:\n return func.call(context);\n\n case 1:\n return func.call(context, args[0 + sliceIndex]);\n\n case 2:\n return func.call(context, args[0 + sliceIndex], args[1 + sliceIndex]);\n\n case 3:\n return func.call(context, args[0 + sliceIndex], args[1 + sliceIndex], args[2 + sliceIndex]);\n\n case 4:\n return func.call(context, args[0 + sliceIndex], args[1 + sliceIndex], args[2 + sliceIndex], args[3 + sliceIndex]);\n\n case 5:\n return func.call(context, args[0 + sliceIndex], args[1 + sliceIndex], args[2 + sliceIndex], args[3 + sliceIndex], args[4 + sliceIndex]);\n\n default:\n return func.apply(context, Array.prototype.slice.call(args, sliceIndex));\n }\n};\n/**\n * Schedule a function to be called on the next tick, and supply it with these arguments\n * when it is called.\n * @return {[type]} [description]\n */\n\n\nutils.nextTick = function (cb) {\n // bind the function and schedule it\n process.nextTick(_.bindKey(utils, 'applyArgs', cb, null, arguments, 1));\n};\n/**\n * Marks a method as a handler. Currently this just makes a property on the method\n * flagging it to be bound to the object at object creation when \"makeBoundMethods\" is called\n *\n * ```\n * ClassName.prototype.methodName = utils.handler(function () {\n * // this will always be bound when called via classInstance.bound.methodName\n * this === classInstance\n * });\n * ```\n *\n * @param {Function} func - The method that is being defined\n * @return {Function}\n */\n\n\nutils.handler = function (func) {\n func._provideBound = true;\n return func;\n};\n/**\n * Creates an \"bound\" property on an object, which all or a subset of methods from\n * the object which are bound to the original object.\n *\n * ```\n * var obj = {\n * onEvent: function () {}\n * };\n *\n * utils.makeBoundMethods(obj);\n *\n * obj.bound.onEvent() // is bound to obj, and can safely be used as an event handler.\n * ```\n *\n * @param {Object} obj - The object to bind the methods to\n */\n\n\nutils.makeBoundMethods = function (obj) {\n obj.bound = {};\n\n for (var prop in obj) {\n // dearest maintainer, we want to look through the prototype\n if (typeof obj[prop] === 'function' && obj[prop]._provideBound === true) {\n obj.bound[prop] = _.bind(obj[prop], obj);\n }\n }\n};\n/**\n * Implements the standard \"string or constructor\" check that I was copy/pasting everywhere\n * @param {String|Function} val - the value that the user passed in\n * @param {Object} opts - a map of the options\n * @return {Function|undefined} - If a valid option was specified, then the constructor is returned\n */\n\n\nutils.funcEnum = function (config, name, opts, def) {\n var val = config[name];\n\n switch (typeof val) {\n case 'undefined':\n return opts[def];\n\n case 'function':\n return val;\n\n case 'string':\n if (opts.hasOwnProperty(val)) {\n return opts[val];\n }\n\n /* falls through */\n\n default:\n var err = 'Invalid ' + name + ' \"' + val + '\", expected a function';\n\n switch (_.size(opts)) {\n case 0:\n break;\n\n case 1:\n err += ' or ' + _.keys(opts)[0];\n break;\n\n default:\n err += ' or one of ' + _.keys(opts).join(', ');\n break;\n }\n\n throw new TypeError(err);\n }\n};\n/**\n * Accepts any object and attempts to convert it into an array. If the object passed in is not\n * an array it will be wrapped in one. Then the transform/map function will be called for each element\n * and create a new array that is returned. If the map function fails to return something, the loop is\n * halted and false is returned instead of an array.\n *\n * @param {*} input - The value to convert\n * @param {Function} transform - A function called for each element of the resulting array\n * @return {Array|false} - an array on success, or false on failure.\n */\n\n\nutils.createArray = function (input, transform) {\n transform = typeof transform === 'function' ? transform : _.identity;\n var output = [];\n var item;\n var i;\n\n if (!_.isArray(input)) {\n input = [input];\n }\n\n for (i = 0; i < input.length; i++) {\n item = transform(input[i]);\n\n if (item === void 0) {\n return false;\n } else {\n output.push(item);\n }\n }\n\n return output;\n};\n/**\n * Takes a WritableStream, and returns the chunks that have not successfully written, returning them as a string.\n *\n * ONLY WORKS FOR TEXT STREAMS\n *\n * @param {WritableStream} stream - an instance of stream.Writable\n * @return {string} - the remaining test to be written to the stream\n */\n\n\nutils.getUnwrittenFromStream = function (stream) {\n var writeBuffer = utils.getStreamWriteBuffer(stream);\n if (!writeBuffer) return; // flush the write buffer\n\n var out = '';\n if (!writeBuffer.length) return out;\n\n _.each(writeBuffer, function (writeReq) {\n if (writeReq.chunk) {\n // 0.9.12+ uses WriteReq objects with a chunk prop\n out += '' + writeReq.chunk;\n } else if (_.isArray(writeReq) && (typeof writeReq[0] === 'string' || Buffer.isBuffer(writeReq[0]))) {\n // 0.9.4 - 0.9.9 buffers are arrays of arrays like [[chunk, cb], [chunk, undef], ...].\n out += '' + writeReq[0];\n } else {\n return false;\n }\n });\n\n return out;\n};\n\nutils.getStreamWriteBuffer = function (stream) {\n if (!stream || !stream._writableState) return;\n var writeState = stream._writableState;\n\n if (writeState.getBuffer) {\n return writeState.getBuffer();\n } else if (writeState.buffer) {\n return writeState.buffer;\n }\n};\n\nutils.clearWriteStreamBuffer = function (stream) {\n var buffer = utils.getStreamWriteBuffer(stream);\n return buffer && buffer.splice(0);\n};\n/**\n * return the current time in milliseconds since epoch\n */\n\n\nutils.now = function () {\n return typeof Date.now === 'function' ? Date.now() : new Date().getTime();\n};\n\nmodule.exports = utils;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n padding: 16,\n '&:last-child': {\n paddingBottom: 24\n }\n }\n};\nvar CardContent = /*#__PURE__*/React.forwardRef(function CardContent(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n name: 'MuiCardContent'\n})(CardContent);","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');","import \"core-js/modules/es.array.reduce.js\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\"; // A grid component using the following libs as inspiration.\n//\n// For the implementation:\n// - https://getbootstrap.com/docs/4.3/layout/grid/\n// - https://github.com/kristoferjoseph/flexboxgrid/blob/master/src/css/flexboxgrid.css\n// - https://github.com/roylee0704/react-flexbox-grid\n// - https://material.angularjs.org/latest/layout/introduction\n//\n// Follow this flexbox Guide to better understand the underlying model:\n// - https://css-tricks.com/snippets/css/a-guide-to-flexbox/\n\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport requirePropFactory from '../utils/requirePropFactory';\nvar SPACINGS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar GRID_SIZES = ['auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n\nfunction generateGrid(globalStyles, theme, breakpoint) {\n var styles = {};\n GRID_SIZES.forEach(function (size) {\n var key = \"grid-\".concat(breakpoint, \"-\").concat(size);\n\n if (size === true) {\n // For the auto layouting\n styles[key] = {\n flexBasis: 0,\n flexGrow: 1,\n maxWidth: '100%'\n };\n return;\n }\n\n if (size === 'auto') {\n styles[key] = {\n flexBasis: 'auto',\n flexGrow: 0,\n maxWidth: 'none'\n };\n return;\n } // Keep 7 significant numbers.\n\n\n var width = \"\".concat(Math.round(size / 12 * 10e7) / 10e5, \"%\"); // Close to the bootstrap implementation:\n // https://github.com/twbs/bootstrap/blob/8fccaa2439e97ec72a4b7dc42ccc1f649790adb0/scss/mixins/_grid.scss#L41\n\n styles[key] = {\n flexBasis: width,\n flexGrow: 0,\n maxWidth: width\n };\n }); // No need for a media query for the first size.\n\n if (breakpoint === 'xs') {\n _extends(globalStyles, styles);\n } else {\n globalStyles[theme.breakpoints.up(breakpoint)] = styles;\n }\n}\n\nfunction getOffset(val) {\n var div = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var parse = parseFloat(val);\n return \"\".concat(parse / div).concat(String(val).replace(String(parse), '') || 'px');\n}\n\nfunction generateGutter(theme, breakpoint) {\n var styles = {};\n SPACINGS.forEach(function (spacing) {\n var themeSpacing = theme.spacing(spacing);\n\n if (themeSpacing === 0) {\n return;\n }\n\n styles[\"spacing-\".concat(breakpoint, \"-\").concat(spacing)] = {\n margin: \"-\".concat(getOffset(themeSpacing, 2)),\n width: \"calc(100% + \".concat(getOffset(themeSpacing), \")\"),\n '& > $item': {\n padding: getOffset(themeSpacing, 2)\n }\n };\n });\n return styles;\n} // Default CSS values\n// flex: '0 1 auto',\n// flexDirection: 'row',\n// alignItems: 'flex-start',\n// flexWrap: 'nowrap',\n// justifyContent: 'flex-start',\n\n\nexport var styles = function styles(theme) {\n return _extends({\n /* Styles applied to the root element. */\n root: {},\n\n /* Styles applied to the root element if `container={true}`. */\n container: {\n boxSizing: 'border-box',\n display: 'flex',\n flexWrap: 'wrap',\n width: '100%'\n },\n\n /* Styles applied to the root element if `item={true}`. */\n item: {\n boxSizing: 'border-box',\n margin: '0' // For instance, it's useful when used with a `figure` element.\n\n },\n\n /* Styles applied to the root element if `zeroMinWidth={true}`. */\n zeroMinWidth: {\n minWidth: 0\n },\n\n /* Styles applied to the root element if `direction=\"column\"`. */\n 'direction-xs-column': {\n flexDirection: 'column'\n },\n\n /* Styles applied to the root element if `direction=\"column-reverse\"`. */\n 'direction-xs-column-reverse': {\n flexDirection: 'column-reverse'\n },\n\n /* Styles applied to the root element if `direction=\"row-reverse\"`. */\n 'direction-xs-row-reverse': {\n flexDirection: 'row-reverse'\n },\n\n /* Styles applied to the root element if `wrap=\"nowrap\"`. */\n 'wrap-xs-nowrap': {\n flexWrap: 'nowrap'\n },\n\n /* Styles applied to the root element if `wrap=\"reverse\"`. */\n 'wrap-xs-wrap-reverse': {\n flexWrap: 'wrap-reverse'\n },\n\n /* Styles applied to the root element if `alignItems=\"center\"`. */\n 'align-items-xs-center': {\n alignItems: 'center'\n },\n\n /* Styles applied to the root element if `alignItems=\"flex-start\"`. */\n 'align-items-xs-flex-start': {\n alignItems: 'flex-start'\n },\n\n /* Styles applied to the root element if `alignItems=\"flex-end\"`. */\n 'align-items-xs-flex-end': {\n alignItems: 'flex-end'\n },\n\n /* Styles applied to the root element if `alignItems=\"baseline\"`. */\n 'align-items-xs-baseline': {\n alignItems: 'baseline'\n },\n\n /* Styles applied to the root element if `alignContent=\"center\"`. */\n 'align-content-xs-center': {\n alignContent: 'center'\n },\n\n /* Styles applied to the root element if `alignContent=\"flex-start\"`. */\n 'align-content-xs-flex-start': {\n alignContent: 'flex-start'\n },\n\n /* Styles applied to the root element if `alignContent=\"flex-end\"`. */\n 'align-content-xs-flex-end': {\n alignContent: 'flex-end'\n },\n\n /* Styles applied to the root element if `alignContent=\"space-between\"`. */\n 'align-content-xs-space-between': {\n alignContent: 'space-between'\n },\n\n /* Styles applied to the root element if `alignContent=\"space-around\"`. */\n 'align-content-xs-space-around': {\n alignContent: 'space-around'\n },\n\n /* Styles applied to the root element if `justify=\"center\"`. */\n 'justify-xs-center': {\n justifyContent: 'center'\n },\n\n /* Styles applied to the root element if `justify=\"flex-end\"`. */\n 'justify-xs-flex-end': {\n justifyContent: 'flex-end'\n },\n\n /* Styles applied to the root element if `justify=\"space-between\"`. */\n 'justify-xs-space-between': {\n justifyContent: 'space-between'\n },\n\n /* Styles applied to the root element if `justify=\"space-around\"`. */\n 'justify-xs-space-around': {\n justifyContent: 'space-around'\n },\n\n /* Styles applied to the root element if `justify=\"space-evenly\"`. */\n 'justify-xs-space-evenly': {\n justifyContent: 'space-evenly'\n }\n }, generateGutter(theme, 'xs'), theme.breakpoints.keys.reduce(function (accumulator, key) {\n // Use side effect over immutability for better performance.\n generateGrid(accumulator, theme, key);\n return accumulator;\n }, {}));\n};\nvar Grid = /*#__PURE__*/React.forwardRef(function Grid(props, ref) {\n var _props$alignContent = props.alignContent,\n alignContent = _props$alignContent === void 0 ? 'stretch' : _props$alignContent,\n _props$alignItems = props.alignItems,\n alignItems = _props$alignItems === void 0 ? 'stretch' : _props$alignItems,\n classes = props.classes,\n classNameProp = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _props$container = props.container,\n container = _props$container === void 0 ? false : _props$container,\n _props$direction = props.direction,\n direction = _props$direction === void 0 ? 'row' : _props$direction,\n _props$item = props.item,\n item = _props$item === void 0 ? false : _props$item,\n _props$justify = props.justify,\n justify = _props$justify === void 0 ? 'flex-start' : _props$justify,\n _props$lg = props.lg,\n lg = _props$lg === void 0 ? false : _props$lg,\n _props$md = props.md,\n md = _props$md === void 0 ? false : _props$md,\n _props$sm = props.sm,\n sm = _props$sm === void 0 ? false : _props$sm,\n _props$spacing = props.spacing,\n spacing = _props$spacing === void 0 ? 0 : _props$spacing,\n _props$wrap = props.wrap,\n wrap = _props$wrap === void 0 ? 'wrap' : _props$wrap,\n _props$xl = props.xl,\n xl = _props$xl === void 0 ? false : _props$xl,\n _props$xs = props.xs,\n xs = _props$xs === void 0 ? false : _props$xs,\n _props$zeroMinWidth = props.zeroMinWidth,\n zeroMinWidth = _props$zeroMinWidth === void 0 ? false : _props$zeroMinWidth,\n other = _objectWithoutProperties(props, [\"alignContent\", \"alignItems\", \"classes\", \"className\", \"component\", \"container\", \"direction\", \"item\", \"justify\", \"lg\", \"md\", \"sm\", \"spacing\", \"wrap\", \"xl\", \"xs\", \"zeroMinWidth\"]);\n\n var className = clsx(classes.root, classNameProp, container && [classes.container, spacing !== 0 && classes[\"spacing-xs-\".concat(String(spacing))]], item && classes.item, zeroMinWidth && classes.zeroMinWidth, direction !== 'row' && classes[\"direction-xs-\".concat(String(direction))], wrap !== 'wrap' && classes[\"wrap-xs-\".concat(String(wrap))], alignItems !== 'stretch' && classes[\"align-items-xs-\".concat(String(alignItems))], alignContent !== 'stretch' && classes[\"align-content-xs-\".concat(String(alignContent))], justify !== 'flex-start' && classes[\"justify-xs-\".concat(String(justify))], xs !== false && classes[\"grid-xs-\".concat(String(xs))], sm !== false && classes[\"grid-sm-\".concat(String(sm))], md !== false && classes[\"grid-md-\".concat(String(md))], lg !== false && classes[\"grid-lg-\".concat(String(lg))], xl !== false && classes[\"grid-xl-\".concat(String(xl))]);\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: className,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nvar StyledGrid = withStyles(styles, {\n name: 'MuiGrid'\n})(Grid);\n\nif (process.env.NODE_ENV !== 'production') {\n var requireProp = requirePropFactory('Grid');\n StyledGrid.propTypes = _extends({}, StyledGrid.propTypes, {\n alignContent: requireProp('container'),\n alignItems: requireProp('container'),\n direction: requireProp('container'),\n justify: requireProp('container'),\n lg: requireProp('item'),\n md: requireProp('item'),\n sm: requireProp('item'),\n spacing: requireProp('container'),\n wrap: requireProp('container'),\n xs: requireProp('item'),\n zeroMinWidth: requireProp('item')\n });\n}\n\nexport default StyledGrid;","var _ = require('lodash');\n\nvar utils = require('./utils');\n/**\n * Constructs a client action factory that uses specific defaults\n * @type {Function}\n */\n\n\nexports.makeFactoryWithModifier = makeFactoryWithModifier;\n/**\n * Constructs a function that can be called to make a request to ES\n * @type {Function}\n */\n\nexports.factory = makeFactoryWithModifier();\n/**\n * Constructs a proxy to another api method\n * @type {Function}\n */\n\nexports.proxyFactory = exports.factory.proxy; // export so that we can test this\n\nexports._resolveUrl = resolveUrl;\n\nexports.ApiNamespace = function () {};\n\nexports.namespaceFactory = function () {\n function ClientNamespace(transport, client) {\n this.transport = transport;\n this.client = client;\n }\n\n ClientNamespace.prototype = new exports.ApiNamespace();\n return ClientNamespace;\n};\n\nfunction makeFactoryWithModifier(modifier) {\n modifier = modifier || _.identity;\n\n var factory = function factory(spec) {\n spec = modifier(spec);\n\n if (!_.isPlainObject(spec.params)) {\n spec.params = {};\n }\n\n if (!spec.method) {\n spec.method = 'GET';\n }\n\n function action(params, cb) {\n if (typeof params === 'function') {\n cb = params;\n params = {};\n } else {\n params = params || {};\n cb = typeof cb === 'function' ? cb : null;\n }\n\n try {\n return exec(this.transport, spec, _.clone(params), cb);\n } catch (e) {\n if (typeof cb === 'function') {\n utils.nextTick(cb, e);\n } else {\n var def = this.transport.defer();\n def.reject(e);\n return def.promise;\n }\n }\n }\n\n action.spec = spec;\n return action;\n };\n\n factory.proxy = function (fn, spec) {\n return function (params, cb) {\n if (typeof params === 'function') {\n cb = params;\n params = {};\n } else {\n params = params || {};\n cb = typeof cb === 'function' ? cb : null;\n }\n\n if (spec.transform) {\n spec.transform(params);\n }\n\n return fn.call(this, params, cb);\n };\n };\n\n return factory;\n}\n\nvar castType = {\n enum: function validSelection(param, val, name) {\n if (_.isString(val) && val.indexOf(',') > -1) {\n val = commaSepList(val);\n }\n\n if (_.isArray(val)) {\n return val.map(function (v) {\n return validSelection(param, v, name);\n }).join(',');\n }\n\n for (var i = 0; i < param.options.length; i++) {\n if (param.options[i] === String(val)) {\n return param.options[i];\n }\n }\n\n throw new TypeError('Invalid ' + name + ': expected ' + (param.options.length > 1 ? 'one of ' + param.options.join(',') : param.options[0]));\n },\n duration: function duration(param, val, name) {\n if (utils.isNumeric(val) || utils.isInterval(val)) {\n return val;\n } else {\n throw new TypeError('Invalid ' + name + ': expected a number or interval ' + '(an integer followed by one of M, w, d, h, m, s, y or ms).');\n }\n },\n list: function list(param, val, name) {\n switch (typeof val) {\n case 'number':\n case 'boolean':\n return '' + val;\n\n case 'string':\n val = commaSepList(val);\n\n /* falls through */\n\n case 'object':\n if (_.isArray(val)) {\n return val.join(',');\n }\n\n /* falls through */\n\n default:\n throw new TypeError('Invalid ' + name + ': expected be a comma separated list, array, number or string.');\n }\n },\n boolean: function boolean(param, val) {\n val = _.isString(val) ? val.toLowerCase() : val;\n return val === 'no' || val === 'off' ? false : !!val;\n },\n number: function number(param, val, name) {\n if (utils.isNumeric(val)) {\n return val * 1;\n } else {\n throw new TypeError('Invalid ' + name + ': expected a number.');\n }\n },\n string: function string(param, val, name) {\n switch (typeof val) {\n case 'number':\n case 'string':\n return '' + val;\n\n default:\n throw new TypeError('Invalid ' + name + ': expected a string.');\n }\n },\n time: function time(param, val, name) {\n if (typeof val === 'string') {\n return val;\n } else if (utils.isNumeric(val)) {\n return '' + val;\n } else if (val instanceof Date) {\n return '' + val.getTime();\n } else {\n throw new TypeError('Invalid ' + name + ': expected some sort of time.');\n }\n }\n};\n\nfunction resolveUrl(url, params) {\n var vars = {};\n var i;\n var key;\n\n if (url.req) {\n // url has required params\n if (!url.reqParamKeys) {\n // create cached key list on demand\n url.reqParamKeys = _.keys(url.req);\n }\n\n for (i = 0; i < url.reqParamKeys.length; i++) {\n key = url.reqParamKeys[i];\n\n if (!params.hasOwnProperty(key) || params[key] == null) {\n // missing a required param\n return false;\n } else {\n // cast of copy required param\n if (castType[url.req[key].type]) {\n vars[key] = castType[url.req[key].type](url.req[key], params[key], key);\n } else {\n vars[key] = params[key];\n }\n }\n }\n }\n\n if (url.opt) {\n // url has optional params\n if (!url.optParamKeys) {\n url.optParamKeys = _.keys(url.opt);\n }\n\n for (i = 0; i < url.optParamKeys.length; i++) {\n key = url.optParamKeys[i];\n\n if (params[key]) {\n if (castType[url.opt[key].type] || params[key] == null) {\n vars[key] = castType[url.opt[key].type](url.opt[key], params[key], key);\n } else {\n vars[key] = params[key];\n }\n } else {\n vars[key] = url.opt[key]['default'];\n }\n }\n }\n\n if (!url.template) {\n // compile the template on demand\n url.template = _.template(url.fmt);\n }\n\n return url.template(_.transform(vars, function (note, val, name) {\n // encode each value\n note[name] = encodeURIComponent(val); // remove it from the params so that it isn't sent to the final request\n\n delete params[name];\n }, {}));\n}\n\nfunction exec(transport, spec, params, cb) {\n var request = {\n method: spec.method\n };\n var query = {};\n var i; // pass the timeout from the spec\n\n if (spec.requestTimeout) {\n request.requestTimeout = spec.requestTimeout;\n }\n\n if (!params.body && spec.paramAsBody) {\n if (typeof spec.paramAsBody === 'object') {\n params.body = {};\n\n if (spec.paramAsBody.castToArray) {\n params.body[spec.paramAsBody.body] = [].concat(params[spec.paramAsBody.param]);\n } else {\n params.body[spec.paramAsBody.body] = params[spec.paramAsBody.param];\n }\n\n delete params[spec.paramAsBody.param];\n } else {\n params.body = params[spec.paramAsBody];\n delete params[spec.paramAsBody];\n }\n } // verify that we have the body if needed\n\n\n if (spec.needsBody && !params.body) {\n throw new TypeError('A request body is required.');\n } // control params\n\n\n if (spec.bulkBody) {\n request.bulkBody = true;\n }\n\n if (spec.method === 'HEAD') {\n request.castExists = true;\n } // pick the url\n\n\n if (spec.url) {\n // only one url option\n request.path = resolveUrl(spec.url, params);\n } else {\n for (i = 0; i < spec.urls.length; i++) {\n request.path = resolveUrl(spec.urls[i], params);\n\n if (request.path) {\n break;\n }\n }\n }\n\n if (!request.path) {\n // there must have been some mimimun requirements that were not met\n var minUrl = spec.url || spec.urls[spec.urls.length - 1];\n throw new TypeError('Unable to build a path with those params. Supply at least ' + _.keys(minUrl.req).join(', '));\n } // build the query string\n\n\n if (!spec.paramKeys) {\n // build a key list on demand\n spec.paramKeys = _.keys(spec.params);\n spec.requireParamKeys = _.transform(spec.params, function (req, param, key) {\n if (param.required) {\n req.push(key);\n }\n }, []);\n }\n\n for (var key in params) {\n if (params.hasOwnProperty(key) && params[key] != null) {\n switch (key) {\n case 'body':\n case 'headers':\n case 'requestTimeout':\n case 'maxRetries':\n request[key] = params[key];\n break;\n\n case 'ignore':\n request.ignore = _.isArray(params[key]) ? params[key] : [params[key]];\n break;\n\n case 'method':\n request.method = utils.toUpperString(params[key]);\n break;\n\n default:\n var paramSpec = spec.params[key];\n\n if (paramSpec) {\n // param keys don't always match the param name, in those cases it's stored in the param def as \"name\"\n paramSpec.name = paramSpec.name || key;\n\n if (params[key] != null) {\n if (castType[paramSpec.type]) {\n query[paramSpec.name] = castType[paramSpec.type](paramSpec, params[key], key);\n } else {\n query[paramSpec.name] = params[key];\n }\n\n if (paramSpec['default'] && query[paramSpec.name] === paramSpec['default']) {\n delete query[paramSpec.name];\n }\n }\n } else {\n query[key] = params[key];\n }\n\n }\n }\n }\n\n for (i = 0; i < spec.requireParamKeys.length; i++) {\n if (!query.hasOwnProperty(spec.requireParamKeys[i])) {\n throw new TypeError('Missing required parameter ' + spec.requireParamKeys[i]);\n }\n }\n\n request.query = query;\n return transport.request(request, cb);\n}\n\nfunction commaSepList(str) {\n return str.split(',').map(function (i) {\n return i.trim();\n });\n}","export const _connectionString = 'https://search.instar.wiki';\n// export const _connectionString = 'http://localhost:9200';\n// export const _connectionString = 'http://192.168.2.110:9200';\n// export const _index = 'wiki_de_prefix_2020_11_14';\n// export const _index = 'wiki_en_prefix_2020_11_14';\nexport const _index = 'wiki_fr_prefix_2020_12_16';\nexport const _type = '_doc';","/**\n * Selects a connection the simplest way possible, Round Robin\n *\n * @module selectors\n * @type {Function}\n * @param {Array} connections - The list of connections that this selector needs to choose from\n * @return {Connection} - The selected connection\n */\nmodule.exports = function (connections) {\n var connection = connections[0];\n connections.push(connections.shift());\n return connection;\n};"],"sourceRoot":""}