UNPKG

348 kBJavaScriptView Raw
1!function(e){var t={}
2function n(i){if(t[i])return t[i].exports
3var a=t[i]={i,l:!1,exports:{}}
4e[i].call(a.exports,a,a.exports,n)
5a.l=!0
6return a.exports}n.m=e
7n.c=t
8n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})}
9n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})
10Object.defineProperty(e,"__esModule",{value:!0})}
11n.t=function(e,t){1&t&&(e=n(e))
12if(8&t)return e
13if(4&t&&"object"==typeof e&&e&&e.__esModule)return e
14var i=Object.create(null)
15n.r(i)
16Object.defineProperty(i,"default",{enumerable:!0,value:e})
17if(2&t&&"string"!=typeof e)for(var a in e)n.d(i,a,function(t){return e[t]}.bind(null,a))
18return i}
19n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e}
20n.d(t,"a",t)
21return t}
22n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}
23n.p=""
24n(n.s=55)}([function(e,t){e.exports=require("fs")},function(e,t){e.exports=require("util")},function(e,t){e.exports=require("path")},function(e,t){e.exports=require("url")},function(e,t){e.exports=require("os")},function(e,t){e.exports=require("crypto")},function(e,t,n){"undefined"==typeof process||"renderer"===process.type?e.exports=n(105):e.exports=n(104)},function(e,t){e.exports=require("events")},function(e,t){e.exports=require("http")},function(e,t){e.exports=require("zlib")},function(e,t,n){var i=n(87)
25var a=i.Buffer
26function o(e,t){for(var n in e)t[n]=e[n]}if(a.from&&a.alloc&&a.allocUnsafe&&a.allocUnsafeSlow)e.exports=i
27else{o(i,t)
28t.Buffer=s}function s(e,t,n){return a(e,t,n)}o(a,s)
29s.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number")
30return a(e,t,n)}
31s.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number")
32var i=a(e)
33void 0!==t?"string"==typeof n?i.fill(t,n):i.fill(t):i.fill(0)
34return i}
35s.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number")
36return a(e)}
37s.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number")
38return i.SlowBuffer(e)}},function(e,t,n){"use strict"
39var i=/development/i.test("production")||/\bredis\b/i.test(process.env.NODE_DEBUG)
40e.exports=function(e,t,n,a){this.command=e
41this.args=t
42this.buffer_args=!1
43this.callback=n
44this.call_on_write=a
45i&&(this.error=new Error)}},function(e,t,n){"use strict"
46var i
47function a(e,t,n,i){t?t(n,i):n&&e.emit("error",n)}e.exports={reply_to_strings:function e(t){if(t instanceof Buffer)return t.toString()
48if(t instanceof Array){var n=new Array(t.length)
49for(var i=0;i<t.length;i++)n[i]=e(t[i])
50return n}return t},reply_to_object:function(e){if(0===e.length||!(e instanceof Array))return null
51var t={}
52for(var n=0;n<e.length;n+=2)t[e[n].toString("binary")]=e[n+1]
53return t},print:function(e,t){e?console.log(e.toString()):console.log("Reply: "+t)},err_code:/^([A-Z]+)\s+(.+)$/,monitor_regex:/^[0-9]{10,11}\.[0-9]+ \[[0-9]+ .+\]( ".+?")+$/,clone:function(e){i=!1
54e=function e(t){var n
55if(Array.isArray(t)){n=new Array(t.length)
56for(var a=0;a<t.length;a++)n[a]=e(t[a])
57return n}if("[object Object]"===Object.prototype.toString.call(t)){n={}
58var o=Object.keys(t)
59var s
60for(;s=o.pop();)if("tls"!==s){var r=s.replace(/[A-Z][^A-Z]/g,"_$&").toLowerCase()
61r!==s.toLowerCase()&&(i=!0)
62n[r]=e(t[s])}else n[s]=t[s]
63return n}return t}(e)||{}
64i&&(e.camel_case=!0)
65return e},callback_or_emit:a,reply_in_order:function(e,t,n,i,o){var s
66if(s=o?o.peekBack():e.offline_queue.peekBack()||e.command_queue.peekBack()){var r=s.callback
67s.callback=r?function(o,s){r(o,s)
68a(e,t,n,i)}:function(o,s){o&&e.emit("error",o)
69a(e,t,n,i)}}else process.nextTick(function(){a(e,t,n,i)})}}},function(e,t,n){"use strict"
70var i=n(33)
71var a=n(72)
72var o=n(1)
73var s=n(12)
74var r=n(11)
75var c=n(32)
76var p=n(71)
77var l=n(7)
78var u=n(30)
79var d=n(28)
80var f=n(21)
81var h=n(65)
82var m={subscribe:!0,unsubscribe:!0,psubscribe:!0,punsubscribe:!0}
83"function"!=typeof l&&(l=l.EventEmitter)
84function v(){}function g(e,t,n){(!1===n||this.message_buffers)&&(e=s.reply_to_strings(e))
85"hgetall"===t&&(e=s.reply_to_object(e))
86return e}t.debug_mode=/\bredis\b/i.test(process.env.NODE_DEBUG)
87function y(e,t){e=s.clone(e)
88l.call(this)
89var n={}
90for(var a in e.tls){n[a]=e.tls[a]
91"port"!==a&&"host"!==a&&"path"!==a&&"family"!==a||(e[a]=e.tls[a])}if(t){e.stream=t
92this.address='"Private stream"'}else if(e.path){n.path=e.path
93this.address=e.path}else{n.port=+e.port||6379
94n.host=e.host||"127.0.0.1"
95n.family=!e.family&&i.isIP(n.host)||("IPv6"===e.family?6:4)
96this.address=n.host+":"+n.port}if("function"==typeof e.retry_strategy){if("max_attempts"in e){this.warn("WARNING: You activated the retry_strategy and max_attempts at the same time. This is not possible and max_attempts will be ignored.")
97delete e.max_attempts}if("retry_max_delay"in e){this.warn("WARNING: You activated the retry_strategy and retry_max_delay at the same time. This is not possible and retry_max_delay will be ignored.")
98delete e.retry_max_delay}}this.connection_options=n
99this.connection_id=y.connection_id++
100this.connected=!1
101this.ready=!1
102void 0===e.socket_nodelay?e.socket_nodelay=!0:e.socket_nodelay||this.warn("socket_nodelay is deprecated and will be removed in v.3.0.0.\nSetting socket_nodelay to false likely results in a reduced throughput. Please use .batch for pipelining instead.\nIf you are sure you rely on the NAGLE-algorithm you can activate it by calling client.stream.setNoDelay(false) instead.")
103void 0===e.socket_keepalive&&(e.socket_keepalive=!0)
104for(var o in e.rename_commands)e.rename_commands[o.toLowerCase()]=e.rename_commands[o]
105e.return_buffers=!!e.return_buffers
106e.detect_buffers=!!e.detect_buffers
107if(e.return_buffers&&e.detect_buffers){this.warn("WARNING: You activated return_buffers and detect_buffers at the same time. The return value is always going to be a buffer.")
108e.detect_buffers=!1}e.detect_buffers&&(this.handle_reply=g)
109this.should_buffer=!1
110this.max_attempts=0|e.max_attempts
111"max_attempts"in e&&this.warn("max_attempts is deprecated and will be removed in v.3.0.0.\nTo reduce the number of options and to improve the reconnection handling please use the new `retry_strategy` option instead.\nThis replaces the max_attempts and retry_max_delay option.")
112this.command_queue=new c
113this.offline_queue=new c
114this.pipeline_queue=new c
115this.connect_timeout=+e.connect_timeout||36e5
116this.enable_offline_queue=!1!==e.enable_offline_queue
117this.retry_max_delay=+e.retry_max_delay||null
118"retry_max_delay"in e&&this.warn("retry_max_delay is deprecated and will be removed in v.3.0.0.\nTo reduce the amount of options and the improve the reconnection handling please use the new `retry_strategy` option instead.\nThis replaces the max_attempts and retry_max_delay option.")
119this.initialize_retry_vars()
120this.pub_sub_mode=0
121this.subscription_set={}
122this.monitoring=!1
123this.message_buffers=!1
124this.closing=!1
125this.server_info={}
126this.auth_pass=e.auth_pass||e.password
127this.selected_db=e.db
128this.old_state=null
129this.fire_strings=!0
130this.pipeline=!1
131this.sub_commands_left=0
132this.times_connected=0
133this.buffers=e.return_buffers||e.detect_buffers
134this.options=e
135this.reply="ON"
136this.create_stream()
137this.on("newListener",function(e){if("idle"===e)this.warn("The idle event listener is deprecated and will likely be removed in v.3.0.0.\nIf you rely on this feature please open a new ticket in node_redis with your use case")
138else if("drain"===e)this.warn("The drain event listener is deprecated and will be removed in v.3.0.0.\nIf you want to keep on listening to this event please listen to the stream drain event directly.")
139else if(!("message_buffer"!==e&&"pmessage_buffer"!==e&&"messageBuffer"!==e&&"pmessageBuffer"!==e||this.buffers||this.message_buffers)){if("javascript"!==this.reply_parser.name)return this.warn('You attached the "'+e+'" listener without the returnBuffers option set to true.\nPlease use the JavaScript parser or set the returnBuffers option to true to return buffers.')
140this.reply_parser.optionReturnBuffers=!0
141this.message_buffers=!0
142this.handle_reply=g}})}o.inherits(y,l)
143y.connection_id=0
144y.prototype.create_stream=function(){var e=this
145this.reply_parser=function(e){return new u({returnReply:function(t){e.return_reply(t)},returnError:function(t){e.return_error(t)},returnFatalError:function(t){t.message+=". Please report this."
146e.ready=!1
147e.flush_and_error({message:"Fatal error encountert. Command aborted.",code:"NR_FATAL"},{error:t,queues:["command_queue"]})
148e.emit("error",t)
149e.create_stream()},returnBuffers:e.buffers||e.message_buffers,name:e.options.parser||"javascript",stringNumbers:e.options.string_numbers||!1})}(this)
150if(this.options.stream){if(this.stream)return
151this.stream=this.options.stream}else{if(this.stream){this.stream.removeAllListeners()
152this.stream.destroy()}this.options.tls?this.stream=a.connect(this.connection_options):this.stream=i.createConnection(this.connection_options)}this.options.connect_timeout&&this.stream.setTimeout(this.connect_timeout,function(){e.retry_totaltime=e.connect_timeout
153e.connection_gone("timeout")})
154var t=this.options.tls?"secureConnect":"connect"
155this.stream.once(t,function(){this.removeAllListeners("timeout")
156e.times_connected++
157e.on_connect()})
158this.stream.on("data",function(t){f("Net read "+e.address+" id "+e.connection_id)
159e.reply_parser.execute(t)
160e.emit_idle()})
161this.stream.on("error",function(t){e.on_error(t)})
162this.stream.on("clientError",function(t){f("clientError occured")
163e.on_error(t)})
164this.stream.once("close",function(t){e.connection_gone("close")})
165this.stream.once("end",function(){e.connection_gone("end")})
166this.stream.on("drain",function(){e.drain()})
167this.options.socket_nodelay&&this.stream.setNoDelay()
168if(void 0!==this.auth_pass){this.ready=!0
169this.auth(this.auth_pass,function(t){t&&"UNCERTAIN_STATE"!==t.code&&e.emit("error",t)})
170this.ready=!1}}
171y.prototype.handle_reply=function(e,t){"hgetall"===t&&(e=s.reply_to_object(e))
172return e}
173y.prototype.cork=v
174y.prototype.uncork=v
175y.prototype.initialize_retry_vars=function(){this.retry_timer=null
176this.retry_totaltime=0
177this.retry_delay=200
178this.retry_backoff=1.7
179this.attempts=1}
180y.prototype.warn=function(e){var t=this
181process.nextTick(function(){0!==t.listeners("warning").length?t.emit("warning",e):console.warn("node_redis:",e)})}
182y.prototype.flush_and_error=function(e,n){var i=[]
183var a=(n=n||{}).queues||["command_queue","offline_queue"]
184for(var o=0;o<a.length;o++){"command_queue"===a[o]?e.message+=" It might have been processed.":e.message=e.message.replace(" It might have been processed.","")
185for(var s=this[a[o]].shift();s;s=this[a[o]].shift()){var r=new p.AbortError(e)
186s.error&&(r.stack=r.stack+s.error.stack.replace(/^Error.*?\n/,"\n"))
187r.command=s.command.toUpperCase()
188s.args&&s.args.length&&(r.args=s.args)
189n.error&&(r.origin=n.error)
190"function"==typeof s.callback?s.callback(r):i.push(r)}}if(t.debug_mode&&i.length){var c
191if(1===i.length)c=i[0]
192else{e.message=e.message.replace("It","They").replace(/command/i,"$&s");(c=new p.AggregateError(e)).errors=i}this.emit("error",c)}}
193y.prototype.on_error=function(e){if(!this.closing){e.message="Redis connection to "+this.address+" failed - "+e.message
194f(e.message)
195this.connected=!1
196this.ready=!1
197this.options.retry_strategy||this.emit("error",e)
198this.connection_gone("error",e)}}
199y.prototype.on_connect=function(){f("Stream connected "+this.address+" id "+this.connection_id)
200this.connected=!0
201this.ready=!1
202this.emitted_end=!1
203this.stream.setKeepAlive(this.options.socket_keepalive)
204this.stream.setTimeout(0)
205this.emit("connect")
206this.initialize_retry_vars()
207this.options.no_ready_check?this.on_ready():this.ready_check()}
208y.prototype.on_ready=function(){var e=this
209f("on_ready called "+this.address+" id "+this.connection_id)
210this.ready=!0
211this.cork=function(){e.pipeline=!0
212e.stream.cork&&e.stream.cork()}
213this.uncork=function(){e.fire_strings?e.write_strings():e.write_buffers()
214e.pipeline=!1
215e.fire_strings=!0
216e.stream.uncork&&e.stream.uncork()}
217void 0!==this.selected_db&&this.internal_send_command(new r("select",[this.selected_db]))
218this.monitoring&&this.internal_send_command(new r("monitor",[]))
219var t=Object.keys(this.subscription_set).length
220if(this.options.disable_resubscribing||!t){this.send_offline_queue()
221this.emit("ready")}else{var n=function(){0===--t&&e.emit("ready")}
222f("Sending pub/sub on_ready commands")
223for(var i in this.subscription_set){var a=i.slice(0,i.indexOf("_"))
224var o=this.subscription_set[i]
225this[a]([o],n)}this.send_offline_queue()}}
226y.prototype.on_info_cmd=function(e,t){if(e){if("ERR unknown command 'info'"===e.message){this.on_ready()
227return}e.message="Ready check failed: "+e.message
228this.emit("error",e)}else if(t){if(!this.server_info.loading||"0"===this.server_info.loading){if(!this.server_info.master_link_status||"up"===this.server_info.master_link_status){f("Redis server ready.")
229this.on_ready()
230return}this.server_info.loading_eta_seconds=.05}var n=1e3*+this.server_info.loading_eta_seconds
231n>1e3&&(n=1e3)
232f("Redis server still loading, trying again in "+n)
233setTimeout(function(e){e.ready_check()},n,this)}else{f("The info command returned without any data.")
234this.on_ready()}}
235y.prototype.ready_check=function(){var e=this
236f("Checking server ready state...")
237this.ready=!0
238this.info(function(t,n){e.on_info_cmd(t,n)})
239this.ready=!1}
240y.prototype.send_offline_queue=function(){for(var e=this.offline_queue.shift();e;e=this.offline_queue.shift()){f("Sending offline command: "+e.command)
241this.internal_send_command(e)}this.drain()}
242var x=function(e,t){f("Retrying connection...")
243var n={delay:e.retry_delay,attempt:e.attempts,error:t}
244if(e.options.camel_case){n.totalRetryTime=e.retry_totaltime
245n.timesConnected=e.times_connected}else{n.total_retry_time=e.retry_totaltime
246n.times_connected=e.times_connected}e.emit("reconnecting",n)
247e.retry_totaltime+=e.retry_delay
248e.attempts+=1
249e.retry_delay=Math.round(e.retry_delay*e.retry_backoff)
250e.create_stream()
251e.retry_timer=null}
252y.prototype.connection_gone=function(e,t){if(!this.retry_timer){t=t||null
253f("Redis connection is gone from "+e+" event.")
254this.connected=!1
255this.ready=!1
256this.cork=v
257this.uncork=v
258this.pipeline=!1
259this.pub_sub_mode=0
260if(!this.emitted_end){this.emit("end")
261this.emitted_end=!0}if(this.closing){f("Connection ended by quit / end command, not retrying.")
262this.flush_and_error({message:"Stream connection ended and command aborted.",code:"NR_CLOSED"},{error:t})}else{if("function"==typeof this.options.retry_strategy){var n={attempt:this.attempts,error:t}
263if(this.options.camel_case){n.totalRetryTime=this.retry_totaltime
264n.timesConnected=this.times_connected}else{n.total_retry_time=this.retry_totaltime
265n.times_connected=this.times_connected}this.retry_delay=this.options.retry_strategy(n)
266if("number"!=typeof this.retry_delay){this.retry_delay instanceof Error&&(t=this.retry_delay)
267this.flush_and_error({message:"Stream connection ended and command aborted.",code:"NR_CLOSED"},{error:t})
268this.end(!1)
269return}}if(0!==this.max_attempts&&this.attempts>=this.max_attempts||this.retry_totaltime>=this.connect_timeout){var i="Redis connection in broken state: "
270this.retry_totaltime>=this.connect_timeout?i+="connection timeout exceeded.":i+="maximum connection attempts exceeded."
271this.flush_and_error({message:i,code:"CONNECTION_BROKEN"},{error:t})
272var a=new Error(i)
273a.code="CONNECTION_BROKEN"
274t&&(a.origin=t)
275this.emit("error",a)
276this.end(!1)}else{if(this.options.retry_unfulfilled_commands){this.offline_queue.unshift.apply(this.offline_queue,this.command_queue.toArray())
277this.command_queue.clear()}else 0!==this.command_queue.length&&this.flush_and_error({message:"Redis connection lost and command aborted.",code:"UNCERTAIN_STATE"},{error:t,queues:["command_queue"]})
278null!==this.retry_max_delay&&this.retry_delay>this.retry_max_delay?this.retry_delay=this.retry_max_delay:this.retry_totaltime+this.retry_delay>this.connect_timeout&&(this.retry_delay=this.connect_timeout-this.retry_totaltime)
279f("Retry connection in "+this.retry_delay+" ms")
280this.retry_timer=setTimeout(x,this.retry_delay,this,t)}}}}
281y.prototype.return_error=function(e){var t=this.command_queue.shift()
282t.error&&(e.stack=t.error.stack.replace(/^Error.*?\n/,"ReplyError: "+e.message+"\n"))
283e.command=t.command.toUpperCase()
284t.args&&t.args.length&&(e.args=t.args)
285this.pub_sub_mode>1&&this.pub_sub_mode--
286var n=e.message.match(s.err_code)
287n&&(e.code=n[1])
288s.callback_or_emit(this,t.callback,e)}
289y.prototype.drain=function(){this.emit("drain")
290this.should_buffer=!1}
291y.prototype.emit_idle=function(){0===this.command_queue.length&&0===this.pub_sub_mode&&this.emit("idle")}
292function b(e,t){var n=e.command_queue.shift()
293if("function"==typeof n.callback){"exec"!==n.command&&(t=e.handle_reply(t,n.command,n.buffer_args))
294n.callback(null,t)}else f("No callback for reply")}function w(e,t){var n=t[0].toString()
295if("message"===n)if(!e.options.return_buffers||e.message_buffers){e.emit("message",t[1].toString(),t[2].toString())
296e.emit("message_buffer",t[1],t[2])
297e.emit("messageBuffer",t[1],t[2])}else e.emit("message",t[1],t[2])
298else if("pmessage"===n)if(!e.options.return_buffers||e.message_buffers){e.emit("pmessage",t[1].toString(),t[2].toString(),t[3].toString())
299e.emit("pmessage_buffer",t[1],t[2],t[3])
300e.emit("pmessageBuffer",t[1],t[2],t[3])}else e.emit("pmessage",t[1],t[2],t[3])
301else!function(e,t,n){var i=e.command_queue.get(0)
302var a=e.options.return_buffers||e.options.detect_buffers&&i.buffer_args||null===t[1]?t[1]:t[1].toString()
303var o=+t[2]
304f(n,a)
305if(null!==a){e.emit(n,a,o)
306if("subscribe"===n||"psubscribe"===n)e.subscription_set[n+"_"+a]=a
307else{n="unsubscribe"===n?"subscribe":"psubscribe"
308delete e.subscription_set[n+"_"+a]}}if(1===i.args.length||1===e.sub_commands_left||0===i.args.length&&(0===o||null===a)){if(0===o){var s
309var r=1
310e.pub_sub_mode=0
311for(;s=e.command_queue.get(r);){if(m[s.command]){e.pub_sub_mode=r
312break}r++}}e.command_queue.shift()
313"function"==typeof i.callback&&i.callback(null,a)
314e.sub_commands_left=0}else 0!==e.sub_commands_left?e.sub_commands_left--:e.sub_commands_left=i.args.length?i.args.length-1:o}(e,t,n)}y.prototype.return_reply=function(e){if(this.monitoring){var t
315if("string"==typeof(t=this.buffers&&Buffer.isBuffer(e)?e.toString():e)&&s.monitor_regex.test(t)){var n=t.slice(0,t.indexOf(" "))
316var i=t.slice(t.indexOf('"')+1,-1).split('" "').map(function(e){return e.replace(/\\"/g,'"')})
317this.emit("monitor",n,i,t)
318return}}if(0===this.pub_sub_mode)b(this,e)
319else if(1!==this.pub_sub_mode){this.pub_sub_mode--
320b(this,e)}else!(e instanceof Array)||e.length<=2?b(this,e):w(this,e)}
321y.prototype.internal_send_command=function(e){var t,n
322var i=0
323var a=""
324var o=e.args
325var r=e.command
326var c=o.length
327var l=!1
328var u=new Array(c)
329process.domain&&e.callback&&(e.callback=process.domain.bind(e.callback))
330if(!1===this.ready||!1===this.stream.writable){!function(e,t){var n=t.command
331var i,a
332if(e.closing||!e.enable_offline_queue){n=n.toUpperCase()
333a=e.closing?"The connection is already closed.":e.stream.writable?"The connection is not yet established and the offline queue is deactivated.":"Stream not writeable."
334i=new p.AbortError({message:n+" can't be processed. "+a,code:"NR_CLOSED",command:n})
335t.args.length&&(i.args=t.args)
336s.reply_in_order(e,t.callback,i)}else{f("Queueing "+n+" for next server connection.")
337e.offline_queue.push(t)}e.should_buffer=!0}(this,e)
338return!1}for(i=0;i<c;i+=1)if("string"==typeof o[i])if(o[i].length>3e4){l=!0
339u[i]=new Buffer(o[i],"utf8")}else u[i]=o[i]
340else if("object"==typeof o[i])if(o[i]instanceof Date)u[i]=o[i].toString()
341else if(null===o[i]){this.warn("Deprecated: The "+r.toUpperCase()+' command contains a "null" argument.\nThis is converted to a "null" string now and will return an error from v.3.0 on.\nPlease handle this in your code to make sure everything works as you intended it to.')
342u[i]="null"}else if(Buffer.isBuffer(o[i])){u[i]=o[i]
343e.buffer_args=!0
344l=!0}else{this.warn("Deprecated: The "+r.toUpperCase()+" command contains a argument of type "+o[i].constructor.name+'.\nThis is converted to "'+o[i].toString()+'" by using .toString() now and will return an error from v.3.0 on.\nPlease handle this in your code to make sure everything works as you intended it to.')
345u[i]=o[i].toString()}else if(void 0===o[i]){this.warn("Deprecated: The "+r.toUpperCase()+' command contains a "undefined" argument.\nThis is converted to a "undefined" string now and will return an error from v.3.0 on.\nPlease handle this in your code to make sure everything works as you intended it to.')
346u[i]="undefined"}else u[i]=""+o[i]
347if(this.options.prefix)for(i=(n=d.getKeyIndexes(r,u)).pop();void 0!==i;i=n.pop())u[i]=this.options.prefix+u[i]
348this.options.rename_commands&&this.options.rename_commands[r]&&(r=this.options.rename_commands[r])
349a="*"+(c+1)+"\r\n$"+r.length+"\r\n"+r+"\r\n"
350if(!1===l){for(i=0;i<c;i+=1){t=u[i]
351a+="$"+Buffer.byteLength(t)+"\r\n"+t+"\r\n"}f("Send "+this.address+" id "+this.connection_id+": "+a)
352this.write(a)}else{f("Send command ("+a+") has Buffer arguments")
353this.fire_strings=!1
354this.write(a)
355for(i=0;i<c;i+=1){if("string"==typeof(t=u[i]))this.write("$"+Buffer.byteLength(t)+"\r\n"+t+"\r\n")
356else{this.write("$"+t.length+"\r\n")
357this.write(t)
358this.write("\r\n")}f("send_command: buffer send "+t.length+" bytes")}}e.call_on_write&&e.call_on_write()
359if("ON"===this.reply)this.command_queue.push(e)
360else{e.callback&&s.reply_in_order(this,e.callback,null,void 0,this.command_queue)
361"SKIP"===this.reply?this.reply="SKIP_ONE_MORE":"SKIP_ONE_MORE"===this.reply&&(this.reply="ON")}return!this.should_buffer}
362y.prototype.write_strings=function(){var e=""
363for(var t=this.pipeline_queue.shift();t;t=this.pipeline_queue.shift()){if(e.length+t.length>4194304){this.should_buffer=!this.stream.write(e)
364e=""}e+=t}""!==e&&(this.should_buffer=!this.stream.write(e))}
365y.prototype.write_buffers=function(){for(var e=this.pipeline_queue.shift();e;e=this.pipeline_queue.shift())this.should_buffer=!this.stream.write(e)}
366y.prototype.write=function(e){!1!==this.pipeline?this.pipeline_queue.push(e):this.should_buffer=!this.stream.write(e)}
367Object.defineProperty(t,"debugMode",{get:function(){return this.debug_mode},set:function(e){this.debug_mode=e}})
368Object.defineProperty(y.prototype,"command_queue_length",{get:function(){return this.command_queue.length}})
369Object.defineProperty(y.prototype,"offline_queue_length",{get:function(){return this.offline_queue.length}})
370Object.defineProperty(y.prototype,"retryDelay",{get:function(){return this.retry_delay}})
371Object.defineProperty(y.prototype,"retryBackoff",{get:function(){return this.retry_backoff}})
372Object.defineProperty(y.prototype,"commandQueueLength",{get:function(){return this.command_queue.length}})
373Object.defineProperty(y.prototype,"offlineQueueLength",{get:function(){return this.offline_queue.length}})
374Object.defineProperty(y.prototype,"shouldBuffer",{get:function(){return this.should_buffer}})
375Object.defineProperty(y.prototype,"connectionId",{get:function(){return this.connection_id}})
376Object.defineProperty(y.prototype,"serverInfo",{get:function(){return this.server_info}})
377t.createClient=function(){return new y(h.apply(null,arguments))}
378t.RedisClient=y
379t.print=s.print
380t.Multi=n(20)
381t.AbortError=p.AbortError
382t.RedisError=u.RedisError
383t.ParserError=u.ParserError
384t.ReplyError=u.ReplyError
385t.AggregateError=p.AggregateError
386n(64)
387n(63)
388t.addCommand=t.add_command=n(62)},function(e,t){e.exports=require("https")},function(e,t,n){"use strict"
389function i(e,t){Object.defineProperty(this,"message",{value:e||"",configurable:!0,writable:!0});(t||void 0===t)&&Error.captureStackTrace(this,i)}n(1).inherits(i,Error)
390Object.defineProperty(i.prototype,"name",{value:"RedisError",configurable:!0,writable:!0})
391e.exports=i},function(e,t,n){var i=n(6)("socket.io-parser")
392var a=n(78)
393var o=n(77)
394var s=n(37)
395var r=n(36)
396t.protocol=4
397t.types=["CONNECT","DISCONNECT","EVENT","ACK","ERROR","BINARY_EVENT","BINARY_ACK"]
398t.CONNECT=0
399t.DISCONNECT=1
400t.EVENT=2
401t.ACK=3
402t.ERROR=4
403t.BINARY_EVENT=5
404t.BINARY_ACK=6
405t.Encoder=c
406t.Decoder=u
407function c(){}var p=t.ERROR+'"encode error"'
408c.prototype.encode=function(e,n){i("encoding packet %j",e)
409if(t.BINARY_EVENT===e.type||t.BINARY_ACK===e.type)!function(e,t){o.removeBlobs(e,function(e){var n=o.deconstructPacket(e)
410var i=l(n.packet)
411var a=n.buffers
412a.unshift(i)
413t(a)})}(e,n)
414else{n([l(e)])}}
415function l(e){var n=""+e.type
416t.BINARY_EVENT!==e.type&&t.BINARY_ACK!==e.type||(n+=e.attachments+"-")
417e.nsp&&"/"!==e.nsp&&(n+=e.nsp+",")
418null!=e.id&&(n+=e.id)
419if(null!=e.data){var a=function(e){try{return JSON.stringify(e)}catch(e){return!1}}(e.data)
420if(!1===a)return p
421n+=a}i("encoded %j as %s",e,n)
422return n}function u(){this.reconstructor=null}a(u.prototype)
423u.prototype.add=function(e){var n
424if("string"==typeof e){n=function(e){var n=0
425var a={type:Number(e.charAt(0))}
426if(null==t.types[a.type])return f("unknown packet type "+a.type)
427if(t.BINARY_EVENT===a.type||t.BINARY_ACK===a.type){var o=""
428for(;"-"!==e.charAt(++n);){o+=e.charAt(n)
429if(n==e.length)break}if(o!=Number(o)||"-"!==e.charAt(n))throw new Error("Illegal attachments")
430a.attachments=Number(o)}if("/"===e.charAt(n+1)){a.nsp=""
431for(;++n;){var r=e.charAt(n)
432if(","===r)break
433a.nsp+=r
434if(n===e.length)break}}else a.nsp="/"
435var c=e.charAt(n+1)
436if(""!==c&&Number(c)==c){a.id=""
437for(;++n;){var r=e.charAt(n)
438if(null==r||Number(r)!=r){--n
439break}a.id+=e.charAt(n)
440if(n===e.length)break}a.id=Number(a.id)}if(e.charAt(++n)){var p=function(e){try{return JSON.parse(e)}catch(e){return!1}}(e.substr(n))
441var l=!1!==p&&(a.type===t.ERROR||s(p))
442if(!l)return f("invalid payload")
443a.data=p}i("decoded %s as %j",e,a)
444return a}(e)
445if(t.BINARY_EVENT===n.type||t.BINARY_ACK===n.type){this.reconstructor=new d(n)
4460===this.reconstructor.reconPack.attachments&&this.emit("decoded",n)}else this.emit("decoded",n)}else{if(!r(e)&&!e.base64)throw new Error("Unknown type: "+e)
447if(!this.reconstructor)throw new Error("got binary data when not reconstructing a packet")
448if(n=this.reconstructor.takeBinaryData(e)){this.reconstructor=null
449this.emit("decoded",n)}}}
450u.prototype.destroy=function(){this.reconstructor&&this.reconstructor.finishedReconstruction()}
451function d(e){this.reconPack=e
452this.buffers=[]}d.prototype.takeBinaryData=function(e){this.buffers.push(e)
453if(this.buffers.length===this.reconPack.attachments){var t=o.reconstructPacket(this.reconPack,this.buffers)
454this.finishedReconstruction()
455return t}return null}
456d.prototype.finishedReconstruction=function(){this.reconPack=null
457this.buffers=[]}
458function f(e){return{type:t.ERROR,data:"parser error: "+e}}},function(e,t,n){"use strict"
459const i=n(10).Buffer
460t.BINARY_TYPES=["nodebuffer","arraybuffer","fragments"]
461t.GUID="258EAFA5-E914-47DA-95CA-C5AB0DC85B11"
462t.EMPTY_BUFFER=i.alloc(0)
463t.NOOP=(()=>{})},function(e,t,n){"use strict"
464const i=n(10)
465const a=n(86)
466const o=n(9)
467const s=n(23)
468const r=i.Buffer
469const c=r.from([0,0,255,255])
470const p=r.from([0])
471const l=Symbol("write-in-progress")
472const u=Symbol("pending-close")
473const d=Symbol("total-length")
474const f=Symbol("callback")
475const h=Symbol("buffers")
476const m=Symbol("error")
477const v=Symbol("owner")
478let g
479e.exports=class{constructor(e,t,n){this._maxPayload=0|n
480this._options=e||{}
481this._threshold=void 0!==this._options.threshold?this._options.threshold:1024
482this._isServer=!!t
483this._deflate=null
484this._inflate=null
485this.params=null
486if(!g){const e=void 0!==this._options.concurrencyLimit?this._options.concurrencyLimit:10
487g=new a({concurrency:e})}}static get extensionName(){return"permessage-deflate"}offer(){const e={}
488this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0)
489this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0)
490this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits)
491this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:null==this._options.clientMaxWindowBits&&(e.client_max_window_bits=!0)
492return e}accept(e){e=this.normalizeParams(e)
493var t
494t=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e)
495this.params=t
496return t}cleanup(){if(this._inflate)if(this._inflate[l])this._inflate[u]=!0
497else{this._inflate.close()
498this._inflate=null}if(this._deflate)if(this._deflate[l])this._deflate[u]=!0
499else{this._deflate.close()
500this._deflate=null}}acceptAsServer(e){const t={}
501if(!e.some(e=>{if(!(!1===this._options.serverNoContextTakeover&&e.server_no_context_takeover||!1===this._options.serverMaxWindowBits&&e.server_max_window_bits||"number"==typeof this._options.serverMaxWindowBits&&"number"==typeof e.server_max_window_bits&&this._options.serverMaxWindowBits>e.server_max_window_bits||"number"==typeof this._options.clientMaxWindowBits&&!e.client_max_window_bits)){(this._options.serverNoContextTakeover||e.server_no_context_takeover)&&(t.server_no_context_takeover=!0);(this._options.clientNoContextTakeover||!1!==this._options.clientNoContextTakeover&&e.client_no_context_takeover)&&(t.client_no_context_takeover=!0)
502"number"==typeof this._options.serverMaxWindowBits?t.server_max_window_bits=this._options.serverMaxWindowBits:"number"==typeof e.server_max_window_bits&&(t.server_max_window_bits=e.server_max_window_bits)
503"number"==typeof this._options.clientMaxWindowBits?t.client_max_window_bits=this._options.clientMaxWindowBits:!1!==this._options.clientMaxWindowBits&&"number"==typeof e.client_max_window_bits&&(t.client_max_window_bits=e.client_max_window_bits)
504return!0}}))throw new Error("Doesn't support the offered configuration")
505return t}acceptAsClient(e){const t=e[0]
506if(!1===this._options.clientNoContextTakeover&&t.client_no_context_takeover)throw new Error('Invalid value for "client_no_context_takeover"')
507if("number"==typeof this._options.clientMaxWindowBits&&(!t.client_max_window_bits||t.client_max_window_bits>this._options.clientMaxWindowBits)||!1===this._options.clientMaxWindowBits&&t.client_max_window_bits)throw new Error('Invalid value for "client_max_window_bits"')
508return t}normalizeParams(e){return e.map(e=>{Object.keys(e).forEach(t=>{var n=e[t]
509if(n.length>1)throw new Error(`Multiple extension parameters for ${t}`)
510n=n[0]
511switch(t){case"server_no_context_takeover":case"client_no_context_takeover":if(!0!==n)throw new Error(`invalid extension parameter value for ${t} (${n})`)
512e[t]=!0
513break
514case"server_max_window_bits":case"client_max_window_bits":if("string"==typeof n){n=parseInt(n,10)
515if(Number.isNaN(n)||n<o.Z_MIN_WINDOWBITS||n>o.Z_MAX_WINDOWBITS)throw new Error(`invalid extension parameter value for ${t} (${n})`)}if(!this._isServer&&!0===n)throw new Error(`Missing extension parameter value for ${t}`)
516e[t]=n
517break
518default:throw new Error(`Not defined extension parameter (${t})`)}})
519return e})}decompress(e,t,n){g.push(i=>{this._decompress(e,t,(e,t)=>{i()
520n(e,t)})})}compress(e,t,n){g.push(i=>{this._compress(e,t,(e,t)=>{i()
521n(e,t)})})}_decompress(e,t,n){const i=this._isServer?"client":"server"
522if(!this._inflate){const e=`${i}_max_window_bits`
523const t="number"!=typeof this.params[e]?o.Z_DEFAULT_WINDOWBITS:this.params[e]
524this._inflate=o.createInflateRaw({windowBits:t})
525this._inflate[d]=0
526this._inflate[h]=[]
527this._inflate[v]=this
528this._inflate.on("error",b)
529this._inflate.on("data",x)}this._inflate[f]=n
530this._inflate[l]=!0
531this._inflate.write(e)
532t&&this._inflate.write(c)
533this._inflate.flush(()=>{const e=this._inflate[m]
534if(e){this._inflate.close()
535this._inflate=null
536n(e)
537return}const a=s.concat(this._inflate[h],this._inflate[d])
538if(t&&this.params[`${i}_no_context_takeover`]||this._inflate[u]){this._inflate.close()
539this._inflate=null}else{this._inflate[l]=!1
540this._inflate[d]=0
541this._inflate[h]=[]}n(null,a)})}_compress(e,t,n){if(!e||0===e.length){process.nextTick(n,null,p)
542return}const i=this._isServer?"server":"client"
543if(!this._deflate){const e=`${i}_max_window_bits`
544const t="number"!=typeof this.params[e]?o.Z_DEFAULT_WINDOWBITS:this.params[e]
545this._deflate=o.createDeflateRaw({memLevel:this._options.memLevel,level:this._options.level,flush:o.Z_SYNC_FLUSH,windowBits:t})
546this._deflate[d]=0
547this._deflate[h]=[]
548this._deflate.on("data",y)}this._deflate[l]=!0
549this._deflate.write(e)
550this._deflate.flush(o.Z_SYNC_FLUSH,()=>{var e=s.concat(this._deflate[h],this._deflate[d])
551t&&(e=e.slice(0,e.length-4))
552if(t&&this.params[`${i}_no_context_takeover`]||this._deflate[u]){this._deflate.close()
553this._deflate=null}else{this._deflate[l]=!1
554this._deflate[d]=0
555this._deflate[h]=[]}n(null,e)})}}
556function y(e){this[h].push(e)
557this[d]+=e.length}function x(e){this[d]+=e.length
558if(this[v]._maxPayload<1||this[d]<=this[v]._maxPayload)this[h].push(e)
559else{this[m]=new Error("max payload size exceeded")
560this[m].closeCode=1009
561this.removeListener("data",x)
562this.reset()}}function b(e){this[v]._inflate=null
563this[f](e)}},function(e,t,n){var i=n(110)
564var a=n(24)
565var o=n(107)
566var s=n(106)
567t.protocol=3
568var r=t.packets={open:0,close:1,ping:2,pong:3,message:4,upgrade:5,noop:6}
569var c=s(r)
570var p={type:"error",data:"parser error"}
571t.encodePacket=function(e,t,n,a){if("function"==typeof t){a=t
572t=null}if("function"==typeof n){a=n
573n=null}if(Buffer.isBuffer(e.data))return l(e,t,a)
574if(e.data&&(e.data.buffer||e.data)instanceof ArrayBuffer){e.data=f(e.data)
575return l(e,t,a)}var o=r[e.type]
576void 0!==e.data&&(o+=n?i.encode(String(e.data),{strict:!1}):String(e.data))
577return a(""+o)}
578function l(e,n,i){if(!n)return t.encodeBase64Packet(e,i)
579var a=e.data
580var o=new Buffer(1)
581o[0]=r[e.type]
582return i(Buffer.concat([o,a]))}t.encodeBase64Packet=function(e,t){Buffer.isBuffer(e.data)||(e.data=f(e.data))
583var n="b"+r[e.type]
584return t(n+=e.data.toString("base64"))}
585t.decodePacket=function(e,n,a){if(void 0===e)return p
586var o
587if("string"==typeof e)return"b"===(o=e.charAt(0))?t.decodeBase64Packet(e.substr(1),n):a&&!1===(e=function(e){try{e=i.decode(e,{strict:!1})}catch(e){return!1}return e}(e))?p:Number(o)==o&&c[o]?e.length>1?{type:c[o],data:e.substring(1)}:{type:c[o]}:p
588if("arraybuffer"===n){var s=new Uint8Array(e)
589o=s[0]
590return{type:c[o],data:s.buffer.slice(1)}}e instanceof ArrayBuffer&&(e=f(e))
591o=e[0]
592return{type:c[o],data:e.slice(1)}}
593t.decodeBase64Packet=function(e,t){var n=c[e.charAt(0)]
594var i=new Buffer(e.substr(1),"base64")
595if("arraybuffer"===t){var a=new Uint8Array(i.length)
596for(var o=0;o<a.length;o++)a[o]=i[o]
597i=a.buffer}return{type:n,data:i}}
598t.encodePayload=function(e,n,i){if("function"==typeof n){i=n
599n=null}if(n&&a(e))return t.encodePayloadAsBinary(e,i)
600if(!e.length)return i("0:")
601u(e,function(e,i){t.encodePacket(e,n,!1,function(e){i(null,function(e){return e.length+":"+e}(e))})},function(e,t){return i(t.join(""))})}
602function u(e,t,n){var i=new Array(e.length)
603var a=o(e.length,n)
604for(var s=0;s<e.length;s++)t(e[s],function(e,t){i[s]=t
605a(e,i)})}t.decodePayload=function(e,n,i){if("string"!=typeof e)return t.decodePayloadAsBinary(e,n,i)
606if("function"==typeof n){i=n
607n=null}if(""===e)return i(p,0,1)
608var a,o,s,r=""
609for(var c=0,l=e.length;c<l;c++){var u=e.charAt(c)
610if(":"===u){if(""===r||r!=(a=Number(r)))return i(p,0,1)
611if(r!=(o=e.substr(c+1,a)).length)return i(p,0,1)
612if(o.length){s=t.decodePacket(o,n,!1)
613if(p.type===s.type&&p.data===s.data)return i(p,0,1)
614if(!1===i(s,c+a,l))return}c+=a
615r=""}else r+=u}return""!==r?i(p,0,1):void 0}
616function d(e){var t=""
617for(var n=0,i=e.length;n<i;n++)t+=String.fromCharCode(e[n])
618return t}function f(e){var t=new Uint8Array(e.buffer||e)
619var n=e.byteLength||e.length
620var i=e.byteOffset||0
621var a=new Buffer(n)
622for(var o=0;o<n;o++)a[o]=t[i+o]
623return a}t.encodePayloadAsBinary=function(e,t){if(!e.length)return t(new Buffer(0))
624u(e,h,function(e,n){return t(Buffer.concat(n))})}
625function h(e,n){t.encodePacket(e,!0,!0,function(e){var t=""+e.length
626var i
627if("string"==typeof e){(i=new Buffer(t.length+2))[0]=0
628for(var a=0;a<t.length;a++)i[a+1]=parseInt(t[a],10)
629i[i.length-1]=255
630return n(null,Buffer.concat([i,function(e){var t=new Buffer(e.length)
631for(var n=0,i=e.length;n<i;n++)t.writeUInt8(e.charCodeAt(n),n)
632return t}(e)]))}(i=new Buffer(t.length+2))[0]=1
633for(a=0;a<t.length;a++)i[a+1]=parseInt(t[a],10)
634i[i.length-1]=255
635n(null,Buffer.concat([i,e]))})}t.decodePayloadAsBinary=function(e,n,i){if("function"==typeof n){i=n
636n=null}var a=e
637var o=[]
638var s
639for(;a.length>0;){var r=""
640var c=0===a[0]
641for(s=1;255!==a[s];s++){if(r.length>310)return i(p,0,1)
642r+=""+a[s]}a=a.slice(r.length+1)
643var l=parseInt(r,10)
644var u=a.slice(1,l+1)
645c&&(u=d(u))
646o.push(u)
647a=a.slice(l+1)}var f=o.length
648for(s=0;s<f;s++){var h=o[s]
649i(t.decodePacket(h,n,!0),s,f)}}},function(e,t,n){"use strict"
650var i=n(32)
651var a=n(12)
652var o=n(11)
653function s(e,t){this._client=e
654this.queue=new i
655var n,a
656if(t)for(var o=0;o<t.length;o++){n=t[o][0]
657a=t[o].slice(1)
658Array.isArray(n)?this[n[0]].apply(this,n.slice(1).concat(a)):this[n].apply(this,a)}}function r(e,t,n){var i=t.callback
659t.callback=function(a,o){if(a&&-1!==n){i&&i(a)
660a.position=n
661e.errors.push(a)}e.wants_buffers[n]=t.buffer_args
662t.callback=i}
663e._client.internal_send_command(t)}s.prototype.exec_atomic=s.prototype.EXEC_ATOMIC=s.prototype.execAtomic=function(e){return this.queue.length<2?this.exec_batch(e):this.exec(e)}
664s.prototype.exec_transaction=function(e){if(this.monitoring||this._client.monitoring){var t=new RangeError("Using transaction with a client that is in monitor mode does not work due to faulty return values of Redis.")
665t.command="EXEC"
666t.code="EXECABORT"
667return a.reply_in_order(this._client,e,t)}var n=this
668var i=n.queue.length
669n.errors=[]
670n.callback=e
671n._client.cork()
672n.wants_buffers=new Array(i)
673r(n,new o("multi",[]),-1)
674for(var s=0;s<i;s++)r(n,n.queue.get(s),s)
675n._client.internal_send_command(new o("exec",[],function(e,t){!function(e,t,n){var i,o=0
676if(t){t.errors=e.errors
677e.callback?e.callback(t):"CONNECTION_BROKEN"!==t.code&&e._client.emit("error",t)}else{if(n)for(;i=e.queue.shift();){if(n[o]instanceof Error){var s=n[o].message.match(a.err_code)
678s&&(n[o].code=s[1])
679n[o].command=i.command.toUpperCase()
680"function"==typeof i.callback&&i.callback(n[o])}else{n[o]=e._client.handle_reply(n[o],i.command,e.wants_buffers[o])
681"function"==typeof i.callback&&i.callback(null,n[o])}o++}e.callback&&e.callback(null,n)}}(n,e,t)}))
682n._client.uncork()
683return!n._client.should_buffer}
684function c(e,t,n){return function(i,a){if(i){e.results[n]=i
685e.results[n].position=n}else e.results[n]=a
686t(i,a)}}s.prototype.exec=s.prototype.EXEC=s.prototype.exec_batch=function(e){var t=this
687var n=t.queue.length
688var i=0
689var o
690if(0===n){a.reply_in_order(t._client,e,null,[])
691return!t._client.should_buffer}t._client.cork()
692if(!e){for(;o=t.queue.shift();)t._client.internal_send_command(o)
693t._client.uncork()
694return!t._client.should_buffer}var s=function(e,n){if(e){t.results.push(e)
695var i=t.results.length-1
696t.results[i].position=i}else t.results.push(n)}
697var r=function(n){return function(i,a){n(i,a)
698e(null,t.results)}}
699t.results=[]
700for(;o=t.queue.shift();){"function"==typeof o.callback?o.callback=c(t,o.callback,i):o.callback=s
701"function"==typeof e&&i===n-1&&(o.callback=r(o.callback))
702this._client.internal_send_command(o)
703i++}t._client.uncork()
704return!t._client.should_buffer}
705e.exports=s},function(e,t,n){"use strict"
706var i=n(13)
707e.exports=function(){i.debug_mode&&console.error.apply(null,arguments)}},function(e,t,n){"use strict"
708var i=n(1)
709var a=n(15)
710var o=!1
711function s(e){var t=Error.stackTraceLimit
712Error.stackTraceLimit=2
713a.call(this,e,o)
714Error.captureStackTrace(this,s)
715Error.stackTraceLimit=t}i.inherits(s,a)
716Object.defineProperty(s.prototype,"name",{value:"ReplyError",configurable:!0,writable:!0})
717e.exports=s},function(e,t,n){"use strict"
718const i=n(10).Buffer
719const a=(e,t)=>{const n=i.allocUnsafe(t)
720var a=0
721for(var o=0;o<e.length;o++){const t=e[o]
722t.copy(n,a)
723a+=t.length}return n}
724try{const t=n(85)
725e.exports=Object.assign({concat:a},t.BufferUtil||t)}catch(t){const n=(e,t,n,i,a)=>{for(var o=0;o<a;o++)n[i+o]=e[o]^t[3&o]}
726const i=(e,t)=>{const n=e.length
727for(var i=0;i<n;i++)e[i]^=t[3&i]}
728e.exports={concat:a,mask:n,unmask:i}}},function(e,t,n){var i=n(108)
729var a=Object.prototype.toString
730var o="function"==typeof Blob||"undefined"!=typeof Blob&&"[object BlobConstructor]"===a.call(Blob)
731var s="function"==typeof File||"undefined"!=typeof File&&"[object FileConstructor]"===a.call(File)
732e.exports=function e(t){if(!t||"object"!=typeof t)return!1
733if(i(t)){for(var n=0,a=t.length;n<a;n++)if(e(t[n]))return!0
734return!1}if("function"==typeof Buffer&&Buffer.isBuffer&&Buffer.isBuffer(t)||"function"==typeof ArrayBuffer&&t instanceof ArrayBuffer||o&&t instanceof Blob||s&&t instanceof File)return!0
735if(t.toJSON&&"function"==typeof t.toJSON&&1===arguments.length)return e(t.toJSON(),!0)
736for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)&&e(t[r]))return!0
737return!1}},function(e,t,n){var i=n(7).EventEmitter
738var a=n(19)
739var o=n(1)
740var s=n(6)("engine:transport")
741e.exports=c
742function r(){}function c(e){this.readyState="open"
743this.discarded=!1}o.inherits(c,i)
744c.prototype.discard=function(){this.discarded=!0}
745c.prototype.onRequest=function(e){s("setting request")
746this.req=e}
747c.prototype.close=function(e){if("closed"!==this.readyState&&"closing"!==this.readyState){this.readyState="closing"
748this.doClose(e||r)}}
749c.prototype.onError=function(e,t){if(this.listeners("error").length){var n=new Error(e)
750n.type="TransportError"
751n.description=t
752this.emit("error",n)}else s("ignored transport error %s (%s)",e,t)}
753c.prototype.onPacket=function(e){this.emit("packet",e)}
754c.prototype.onData=function(e){this.onPacket(a.decodePacket(e))}
755c.prototype.onClose=function(){this.readyState="closed"
756this.emit("close")}},function(e){e.exports={a:"imock-socket",b:"0.0.12"}},function(e,t,n){(t=e.exports=a.debug=a.default=a).coerce=function(e){return e instanceof Error?e.stack||e.message:e}
757t.disable=function(){t.enable("")}
758t.enable=function(e){t.save(e)
759t.names=[]
760t.skips=[]
761var n=("string"==typeof e?e:"").split(/[\s,]+/)
762var i=n.length
763for(var a=0;a<i;a++)n[a]&&("-"===(e=n[a].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))}
764t.enabled=function(e){var n,i
765for(n=0,i=t.skips.length;n<i;n++)if(t.skips[n].test(e))return!1
766for(n=0,i=t.names.length;n<i;n++)if(t.names[n].test(e))return!0
767return!1}
768t.humanize=n(46)
769t.names=[]
770t.skips=[]
771t.formatters={}
772var i
773function a(e){function n(){if(n.enabled){var e=n
774var a=+new Date
775var o=a-(i||a)
776e.diff=o
777e.prev=i
778e.curr=a
779i=a
780var s=new Array(arguments.length)
781for(var r=0;r<s.length;r++)s[r]=arguments[r]
782s[0]=t.coerce(s[0])
783"string"!=typeof s[0]&&s.unshift("%O")
784var c=0
785s[0]=s[0].replace(/%([a-zA-Z%])/g,function(n,i){if("%%"===n)return n
786c++
787var a=t.formatters[i]
788if("function"==typeof a){var o=s[c]
789n=a.call(e,o)
790s.splice(c,1)
791c--}return n})
792t.formatArgs.call(e,s);(n.log||t.log||console.log.bind(console)).apply(e,s)}}n.namespace=e
793n.enabled=t.enabled(e)
794n.useColors=t.useColors()
795n.color=function(e){var n,i=0
796for(n in e){i=(i<<5)-i+e.charCodeAt(n)
797i|=0}return t.colors[Math.abs(i)%t.colors.length]}(e)
798"function"==typeof t.init&&t.init(n)
799return n}},function(e,t,n){"use strict"
800var i=n(66)
801t.list=Object.keys(i)
802var a={}
803t.list.forEach(function(e){a[e]=i[e].flags.reduce(function(e,t){e[t]=!0
804return e},{})})
805t.exists=function(e){return Boolean(i[e])}
806t.hasFlag=function(e,t){if(!a[e])throw new Error("Unknown command "+e)
807return Boolean(a[e][t])}
808t.getKeyIndexes=function(e,t,n){var a=i[e]
809if(!a)throw new Error("Unknown command "+e)
810if(!Array.isArray(t))throw new Error("Expect args to be an array")
811var s=[]
812var r,c,p,l
813switch(e){case"zunionstore":case"zinterstore":s.push(0)
814case"eval":case"evalsha":p=Number(t[1])+2
815for(r=2;r<p;r++)s.push(r)
816break
817case"sort":l=n&&n.parseExternalKey
818s.push(0)
819for(r=1;r<t.length-1;r++)if("string"==typeof t[r]){var u=t[r].toUpperCase()
820if("GET"===u)"#"!==t[r+=1]&&(l?s.push([r,o(t[r])]):s.push(r))
821else if("BY"===u){r+=1
822l?s.push([r,o(t[r])]):s.push(r)}else if("STORE"===u){r+=1
823s.push(r)}}break
824case"migrate":if(""===t[2]){for(r=5;r<t.length-1;r++)if("KEYS"===t[r].toUpperCase()){for(var d=r+1;d<t.length;d++)s.push(d)
825break}}else s.push(2)
826break
827default:if(a.step>0){c=a.keyStart-1
828p=a.keyStop>0?a.keyStop:t.length+a.keyStop+1
829for(r=c;r<p;r+=a.step)s.push(r)}}return s}
830function o(e){"string"!=typeof e&&(e=String(e))
831var t=e.indexOf("->")
832return-1===t?e.length:t}},function(e,t,n){"use strict"
833var i=n(1)
834var a=n(31)
835var o=n(15)
836var s=!1
837function r(e,t,n){a(t)
838a.strictEqual(typeof n,"number")
839o.call(this,e,s)
840this.offset=n
841this.buffer=t
842Error.captureStackTrace(this,r)}i.inherits(r,o)
843Object.defineProperty(r.prototype,"name",{value:"ParserError",configurable:!0,writable:!0})
844e.exports=r},function(e,t,n){"use strict"
845e.exports=n(70)
846e.exports.ReplyError=n(22)
847e.exports.RedisError=n(15)
848e.exports.ParserError=n(15)},function(e,t){e.exports=require("assert")},function(e,t,n){"use strict"
849function i(e){this._capacity=o(e)
850this._length=0
851this._front=0
852if(a(e)){var t=e.length
853for(var n=0;n<t;++n)this[n]=e[n]
854this._length=t}}i.prototype.toArray=function(){var e=this._length
855var t=new Array(e)
856var n=this._front
857var i=this._capacity
858for(var a=0;a<e;++a)t[a]=this[n+a&i-1]
859return t}
860i.prototype.push=function(e){var t=arguments.length
861var n=this._length
862if(t>1){var i=this._capacity
863if(n+t>i){for(var a=0;a<t;++a){this._checkCapacity(n+1)
864this[o=this._front+n&this._capacity-1]=arguments[a]
865n++
866this._length=n}return n}var o=this._front
867for(a=0;a<t;++a){this[o+n&i-1]=arguments[a]
868o++}this._length=n+t
869return n+t}if(0===t)return n
870this._checkCapacity(n+1)
871this[a=this._front+n&this._capacity-1]=e
872this._length=n+1
873return n+1}
874i.prototype.pop=function(){var e=this._length
875if(0!==e){var t=this._front+e-1&this._capacity-1
876var n=this[t]
877this[t]=void 0
878this._length=e-1
879return n}}
880i.prototype.shift=function(){var e=this._length
881if(0!==e){var t=this._front
882var n=this[t]
883this[t]=void 0
884this._front=t+1&this._capacity-1
885this._length=e-1
886return n}}
887i.prototype.unshift=function(e){var t=this._length
888var n=arguments.length
889if(n>1){if(t+n>(a=this._capacity)){for(var i=n-1;i>=0;i--){this._checkCapacity(t+1)
890var a=this._capacity
891this[s=(this._front-1&a-1^a)-a]=arguments[i]
892t++
893this._length=t
894this._front=s}return t}var o=this._front
895for(i=n-1;i>=0;i--){var s
896this[s=(o-1&a-1^a)-a]=arguments[i]
897o=s}this._front=o
898this._length=t+n
899return t+n}if(0===n)return t
900this._checkCapacity(t+1)
901a=this._capacity
902this[i=(this._front-1&a-1^a)-a]=e
903this._length=t+1
904this._front=i
905return t+1}
906i.prototype.peekBack=function(){var e=this._length
907if(0!==e){return this[this._front+e-1&this._capacity-1]}}
908i.prototype.peekFront=function(){if(0!==this._length)return this[this._front]}
909i.prototype.get=function(e){var t=e
910if(t===(0|t)){var n=this._length
911t<0&&(t+=n)
912if(!(t<0||t>=n))return this[this._front+t&this._capacity-1]}}
913i.prototype.isEmpty=function(){return 0===this._length}
914i.prototype.clear=function(){var e=this._length
915var t=this._front
916var n=this._capacity
917for(var i=0;i<e;++i)this[t+i&n-1]=void 0
918this._length=0
919this._front=0}
920i.prototype.toString=function(){return this.toArray().toString()}
921i.prototype.valueOf=i.prototype.toString
922i.prototype.removeFront=i.prototype.shift
923i.prototype.removeBack=i.prototype.pop
924i.prototype.insertFront=i.prototype.unshift
925i.prototype.insertBack=i.prototype.push
926i.prototype.enqueue=i.prototype.push
927i.prototype.dequeue=i.prototype.shift
928i.prototype.toJSON=i.prototype.toArray
929Object.defineProperty(i.prototype,"length",{get:function(){return this._length},set:function(){throw new RangeError("")}})
930i.prototype._checkCapacity=function(e){this._capacity<e&&this._resizeTo(o(1.5*this._capacity+16))}
931i.prototype._resizeTo=function(e){var t=this._capacity
932this._capacity=e
933var n=this._front
934var i=this._length
935if(n+i>t){!function(e,t,n,i,a){for(var o=0;o<a;++o){n[o+i]=e[o+t]
936e[o+t]=void 0}}(this,0,this,t,n+i&t-1)}}
937var a=Array.isArray
938function o(e){if("number"!=typeof e){if(!a(e))return 16
939e=e.length}return function(e){e>>>=0
940e-=1
941e|=e>>1
942e|=e>>2
943e|=e>>4
944e|=e>>8
945return 1+(e|=e>>16)}(Math.min(Math.max(16,e),1073741824))}e.exports=i},function(e,t){e.exports=require("net")},function(e,t,n){var i=n(7).EventEmitter
946e.exports=a
947function a(e){this.nsp=e
948this.rooms={}
949this.sids={}
950this.encoder=e.server.encoder}a.prototype.__proto__=i.prototype
951a.prototype.add=function(e,t,n){return this.addAll(e,[t],n)}
952a.prototype.addAll=function(e,t,n){for(var i=0;i<t.length;i++){var a=t[i]
953this.sids[e]=this.sids[e]||{}
954this.sids[e][a]=!0
955this.rooms[a]=this.rooms[a]||o()
956this.rooms[a].add(e)}n&&process.nextTick(n.bind(null,null))}
957a.prototype.del=function(e,t,n){this.sids[e]=this.sids[e]||{}
958delete this.sids[e][t]
959if(this.rooms.hasOwnProperty(t)){this.rooms[t].del(e)
9600===this.rooms[t].length&&delete this.rooms[t]}n&&process.nextTick(n.bind(null,null))}
961a.prototype.delAll=function(e,t){var n=this.sids[e]
962if(n)for(var i in n)if(this.rooms.hasOwnProperty(i)){this.rooms[i].del(e)
9630===this.rooms[i].length&&delete this.rooms[i]}delete this.sids[e]
964t&&process.nextTick(t.bind(null,null))}
965a.prototype.broadcast=function(e,t){var n=t.rooms||[]
966var i=t.except||[]
967var a=t.flags||{}
968var o={preEncoded:!0,volatile:a.volatile,compress:a.compress}
969var s={}
970var r=this
971var c
972e.nsp=this.nsp.name
973this.encoder.encode(e,function(e){if(n.length)for(var t=0;t<n.length;t++){var a=r.rooms[n[t]]
974if(a){var p=a.sockets
975for(var l in p)if(p.hasOwnProperty(l)){if(s[l]||~i.indexOf(l))continue
976if(c=r.nsp.connected[l]){c.packet(e,o)
977s[l]=!0}}}}else for(var l in r.sids)if(r.sids.hasOwnProperty(l)){if(~i.indexOf(l))continue;(c=r.nsp.connected[l])&&c.packet(e,o)}})}
978a.prototype.clients=function(e,t){if("function"==typeof e){t=e
979e=null}var n={}
980var i=[]
981if((e=e||[]).length)for(var a=0;a<e.length;a++){var o=this.rooms[e[a]]
982if(o){var s=o.sockets
983for(var r in s)if(s.hasOwnProperty(r)){if(n[r])continue
984if(this.nsp.connected[r]){i.push(r)
985n[r]=!0}}}}else for(var r in this.sids)this.sids.hasOwnProperty(r)&&this.nsp.connected[r]&&i.push(r)
986t&&process.nextTick(t.bind(null,null,i))}
987a.prototype.clientRooms=function(e,t){var n=this.sids[e]
988t&&process.nextTick(t.bind(null,null,n?Object.keys(n):null))}
989function o(){if(!(this instanceof o))return new o
990this.sockets={}
991this.length=0}o.prototype.add=function(e){if(!this.sockets.hasOwnProperty(e)){this.sockets[e]=!0
992this.length++}}
993o.prototype.del=function(e){if(this.sockets.hasOwnProperty(e)){delete this.sockets[e]
994this.length--}}},function(e,t,n){var i=n(76)
995var a=n(7).EventEmitter
996var o=n(16)
997var s=n(24)
998var r=n(6)("socket.io:namespace")
999e.exports=t=p
1000t.events=["connect","connection","newListener"]
1001t.flags=["json","volatile","local"]
1002var c=a.prototype.emit
1003function p(e,t){this.name=t
1004this.server=e
1005this.sockets={}
1006this.connected={}
1007this.fns=[]
1008this.ids=0
1009this.rooms=[]
1010this.flags={}
1011this.initAdapter()}p.prototype.__proto__=a.prototype
1012t.flags.forEach(function(e){Object.defineProperty(p.prototype,e,{get:function(){this.flags[e]=!0
1013return this}})})
1014p.prototype.initAdapter=function(){this.adapter=new(this.server.adapter())(this)}
1015p.prototype.use=function(e){if(this.server.eio&&"/"===this.name){r("removing initial packet")
1016delete this.server.eio.initialPacket}this.fns.push(e)
1017return this}
1018p.prototype.run=function(e,t){var n=this.fns.slice(0)
1019if(!n.length)return t(null)
1020!function i(a){n[a](e,function(e){if(e)return t(e)
1021if(!n[a+1])return t(null)
1022i(a+1)})}(0)}
1023p.prototype.to=p.prototype.in=function(e){~this.rooms.indexOf(e)||this.rooms.push(e)
1024return this}
1025p.prototype.add=function(e,t,n){r("adding socket to nsp %s",this.name)
1026var a=new i(this,e,t)
1027var o=this
1028this.run(a,function(t){process.nextTick(function(){if("open"==e.conn.readyState){if(t)return a.error(t.data||t.message)
1029o.sockets[a.id]=a
1030a.onconnect()
1031n&&n()
1032o.emit("connect",a)
1033o.emit("connection",a)}else r("next called after client was closed - ignoring socket")})})
1034return a}
1035p.prototype.remove=function(e){this.sockets.hasOwnProperty(e.id)?delete this.sockets[e.id]:r("ignoring remove for %s",e.id)}
1036p.prototype.emit=function(e){if(~t.events.indexOf(e)){c.apply(this,arguments)
1037return this}var n=Array.prototype.slice.call(arguments)
1038var i={type:(void 0!==this.flags.binary?this.flags.binary:s(n))?o.BINARY_EVENT:o.EVENT,data:n}
1039if("function"==typeof n[n.length-1])throw new Error("Callbacks are not supported when broadcasting")
1040var a=this.rooms.slice(0)
1041var r=Object.assign({},this.flags)
1042this.rooms=[]
1043this.flags={}
1044this.adapter.broadcast(i,{rooms:a,flags:r})
1045return this}
1046p.prototype.send=p.prototype.write=function(){var e=Array.prototype.slice.call(arguments)
1047e.unshift("message")
1048this.emit.apply(this,e)
1049return this}
1050p.prototype.clients=function(e){this.adapter.clients(this.rooms,e)
1051this.rooms=[]
1052return this}
1053p.prototype.compress=function(e){this.flags.compress=e
1054return this}
1055p.prototype.binary=function(e){this.flags.binary=e
1056return this}},function(e,t){e.exports=function(e){return n&&global.Buffer.isBuffer(e)||i&&(e instanceof global.ArrayBuffer||a(e))}
1057var n="function"==typeof global.Buffer&&"function"==typeof global.Buffer.isBuffer
1058var i="function"==typeof global.ArrayBuffer
1059var a=function(){return i&&"function"==typeof global.ArrayBuffer.isView?global.ArrayBuffer.isView:function(e){return e.buffer instanceof global.ArrayBuffer}}()},function(e,t){var n={}.toString
1060e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict"
1061const i=n(10)
1062const a=n(5)
1063const o=n(18)
1064const s=n(23)
1065const r=n(39)
1066const c=n(17)
1067const p=i.Buffer
1068class l{constructor(e,t){this._extensions=t||{}
1069this._socket=e
1070this._firstFragment=!0
1071this._compress=!1
1072this._bufferedBytes=0
1073this._deflating=!1
1074this._queue=[]}static frame(e,t){const n=e.length<1024||t.mask&&t.readOnly
1075var i=t.mask?6:2
1076var o=e.length
1077if(e.length>=65536){i+=8
1078o=127}else if(e.length>125){i+=2
1079o=126}const r=p.allocUnsafe(n?e.length+i:i)
1080r[0]=t.fin?128|t.opcode:t.opcode
1081t.rsv1&&(r[0]|=64)
1082if(126===o)r.writeUInt16BE(e.length,2,!0)
1083else if(127===o){r.writeUInt32BE(0,2,!0)
1084r.writeUInt32BE(e.length,6,!0)}if(!t.mask){r[1]=o
1085if(n){e.copy(r,i)
1086return[r]}return[r,e]}const c=a.randomBytes(4)
1087r[1]=128|o
1088r[i-4]=c[0]
1089r[i-3]=c[1]
1090r[i-2]=c[2]
1091r[i-1]=c[3]
1092if(n){s.mask(e,c,r,i,e.length)
1093return[r]}s.mask(e,c,e,0,e.length)
1094return[r,e]}close(e,t,n,i){var a
1095if(void 0===e)e=1e3
1096else if("number"!=typeof e||!r.isValidErrorCode(e))throw new Error("first argument must be a valid error code number")
1097if(void 0===t||""===t)1e3===e?a=c.EMPTY_BUFFER:(a=p.allocUnsafe(2)).writeUInt16BE(e,0,!0)
1098else{(a=p.allocUnsafe(2+p.byteLength(t))).writeUInt16BE(e,0,!0)
1099a.write(t,2)}this._deflating?this.enqueue([this.doClose,a,n,i]):this.doClose(a,n,i)}doClose(e,t,n){this.sendFrame(l.frame(e,{fin:!0,rsv1:!1,opcode:8,mask:t,readOnly:!1}),n)}ping(e,t){var n=!0
1100if(!p.isBuffer(e))if(e instanceof ArrayBuffer)e=p.from(e)
1101else if(ArrayBuffer.isView(e))e=u(e)
1102else{e=p.from(e)
1103n=!1}this._deflating?this.enqueue([this.doPing,e,t,n]):this.doPing(e,t,n)}doPing(e,t,n){this.sendFrame(l.frame(e,{fin:!0,rsv1:!1,opcode:9,mask:t,readOnly:n}))}pong(e,t){var n=!0
1104if(!p.isBuffer(e))if(e instanceof ArrayBuffer)e=p.from(e)
1105else if(ArrayBuffer.isView(e))e=u(e)
1106else{e=p.from(e)
1107n=!1}this._deflating?this.enqueue([this.doPong,e,t,n]):this.doPong(e,t,n)}doPong(e,t,n){this.sendFrame(l.frame(e,{fin:!0,rsv1:!1,opcode:10,mask:t,readOnly:n}))}send(e,t,n){var i=t.binary?2:1
1108var a=t.compress
1109var s=!0
1110if(!p.isBuffer(e))if(e instanceof ArrayBuffer)e=p.from(e)
1111else if(ArrayBuffer.isView(e))e=u(e)
1112else{e=p.from(e)
1113s=!1}const r=this._extensions[o.extensionName]
1114if(this._firstFragment){this._firstFragment=!1
1115a&&r&&(a=e.length>=r._threshold)
1116this._compress=a}else{a=!1
1117i=0}t.fin&&(this._firstFragment=!0)
1118if(r){const o={fin:t.fin,rsv1:a,opcode:i,mask:t.mask,readOnly:s}
1119this._deflating?this.enqueue([this.dispatch,e,this._compress,o,n]):this.dispatch(e,this._compress,o,n)}else this.sendFrame(l.frame(e,{fin:t.fin,rsv1:!1,opcode:i,mask:t.mask,readOnly:s}),n)}dispatch(e,t,n,i){if(!t){this.sendFrame(l.frame(e,n),i)
1120return}const a=this._extensions[o.extensionName]
1121this._deflating=!0
1122a.compress(e,n.fin,(e,t)=>{n.readOnly=!1
1123this.sendFrame(l.frame(t,n),i)
1124this._deflating=!1
1125this.dequeue()})}dequeue(){for(;!this._deflating&&this._queue.length;){const e=this._queue.shift()
1126this._bufferedBytes-=e[1].length
1127e[0].apply(this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[1].length
1128this._queue.push(e)}sendFrame(e,t){if(2===e.length){this._socket.write(e[0])
1129this._socket.write(e[1],t)}else this._socket.write(e[0],t)}}e.exports=l
1130function u(e){const t=p.from(e.buffer)
1131return e.byteLength!==e.buffer.byteLength?t.slice(e.byteOffset,e.byteOffset+e.byteLength):t}},function(e,t,n){"use strict"
1132e.exports={isValidErrorCode:function(e){return e>=1e3&&e<=1013&&1004!==e&&1005!==e&&1006!==e||e>=3e3&&e<=4999},1000:"normal",1001:"going away",1002:"protocol error",1003:"unsupported data",1004:"reserved",1005:"reserved for extensions",1006:"reserved for extensions",1007:"inconsistent or invalid data",1008:"policy violation",1009:"message too big",1010:"extension handshake missing",1011:"an unexpected condition prevented the request from being fulfilled",1012:"service restart",1013:"try again later"}},function(e,t,n){"use strict"
1133const i=n(10)
1134const a=n(18)
1135const o=n(83)
1136const s=n(23)
1137const r=n(39)
1138const c=n(17)
1139const p=i.Buffer
1140const l=0
1141const u=1
1142const d=2
1143const f=3
1144const h=4
1145const m=5
1146e.exports=class{constructor(e,t,n){this._binaryType=n||c.BINARY_TYPES[0]
1147this._extensions=e||{}
1148this._maxPayload=0|t
1149this._bufferedBytes=0
1150this._buffers=[]
1151this._compressed=!1
1152this._payloadLength=0
1153this._fragmented=0
1154this._masked=!1
1155this._fin=!1
1156this._mask=null
1157this._opcode=0
1158this._totalPayloadLength=0
1159this._messageLength=0
1160this._fragments=[]
1161this._cleanupCallback=null
1162this._hadError=!1
1163this._dead=!1
1164this._loop=!1
1165this.onmessage=null
1166this.onclose=null
1167this.onerror=null
1168this.onping=null
1169this.onpong=null
1170this._state=l}readBuffer(e){var t=0
1171var n
1172var i
1173this._bufferedBytes-=e
1174if(e===this._buffers[0].length)return this._buffers.shift()
1175if(e<this._buffers[0].length){n=this._buffers[0].slice(0,e)
1176this._buffers[0]=this._buffers[0].slice(e)
1177return n}n=p.allocUnsafe(e)
1178for(;e>0;){if(e>=(i=this._buffers[0].length)){this._buffers[0].copy(n,t)
1179t+=i
1180this._buffers.shift()}else{this._buffers[0].copy(n,t,0,e)
1181this._buffers[0]=this._buffers[0].slice(e)}e-=i}return n}hasBufferedBytes(e){if(this._bufferedBytes>=e)return!0
1182this._loop=!1
1183this._dead&&this.cleanup(this._cleanupCallback)
1184return!1}add(e){if(!this._dead){this._bufferedBytes+=e.length
1185this._buffers.push(e)
1186this.startLoop()}}startLoop(){this._loop=!0
1187for(;this._loop;)switch(this._state){case l:this.getInfo()
1188break
1189case u:this.getPayloadLength16()
1190break
1191case d:this.getPayloadLength64()
1192break
1193case f:this.getMask()
1194break
1195case h:this.getData()
1196break
1197default:this._loop=!1}}getInfo(){if(!this.hasBufferedBytes(2))return
1198const e=this.readBuffer(2)
1199if(0!=(48&e[0])){this.error(new Error("RSV2 and RSV3 must be clear"),1002)
1200return}const t=64==(64&e[0])
1201if(!t||this._extensions[a.extensionName]){this._fin=128==(128&e[0])
1202this._opcode=15&e[0]
1203this._payloadLength=127&e[1]
1204if(0===this._opcode){if(t){this.error(new Error("RSV1 must be clear"),1002)
1205return}if(!this._fragmented){this.error(new Error(`invalid opcode: ${this._opcode}`),1002)
1206return}this._opcode=this._fragmented}else if(1===this._opcode||2===this._opcode){if(this._fragmented){this.error(new Error(`invalid opcode: ${this._opcode}`),1002)
1207return}this._compressed=t}else{if(!(this._opcode>7&&this._opcode<11)){this.error(new Error(`invalid opcode: ${this._opcode}`),1002)
1208return}if(!this._fin){this.error(new Error("FIN must be set"),1002)
1209return}if(t){this.error(new Error("RSV1 must be clear"),1002)
1210return}if(this._payloadLength>125){this.error(new Error("invalid payload length"),1002)
1211return}}this._fin||this._fragmented||(this._fragmented=this._opcode)
1212this._masked=128==(128&e[1])
1213126===this._payloadLength?this._state=u:127===this._payloadLength?this._state=d:this.haveLength()}else this.error(new Error("RSV1 must be clear"),1002)}getPayloadLength16(){if(this.hasBufferedBytes(2)){this._payloadLength=this.readBuffer(2).readUInt16BE(0,!0)
1214this.haveLength()}}getPayloadLength64(){if(!this.hasBufferedBytes(8))return
1215const e=this.readBuffer(8)
1216const t=e.readUInt32BE(0,!0)
1217if(t>Math.pow(2,21)-1)this.error(new Error("max payload size exceeded"),1009)
1218else{this._payloadLength=t*Math.pow(2,32)+e.readUInt32BE(4,!0)
1219this.haveLength()}}haveLength(){this._opcode<8&&this.maxPayloadExceeded(this._payloadLength)||(this._masked?this._state=f:this._state=h)}getMask(){if(this.hasBufferedBytes(4)){this._mask=this.readBuffer(4)
1220this._state=h}}getData(){var e=c.EMPTY_BUFFER
1221if(this._payloadLength){if(!this.hasBufferedBytes(this._payloadLength))return
1222e=this.readBuffer(this._payloadLength)
1223this._masked&&s.unmask(e,this._mask)}if(this._opcode>7)this.controlMessage(e)
1224else if(this._compressed){this._state=m
1225this.decompress(e)}else this.pushFragment(e)&&this.dataMessage()}decompress(e){this._extensions[a.extensionName].decompress(e,this._fin,(e,t)=>{if(e)this.error(e,1009===e.closeCode?1009:1007)
1226else{this.pushFragment(t)&&this.dataMessage()
1227this.startLoop()}})}dataMessage(){if(this._fin){const t=this._messageLength
1228const n=this._fragments
1229this._totalPayloadLength=0
1230this._messageLength=0
1231this._fragmented=0
1232this._fragments=[]
1233if(2===this._opcode){var e
1234e="nodebuffer"===this._binaryType?v(n,t):"arraybuffer"===this._binaryType?function(e){return 0===e.byteOffset&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}(v(n,t)):n
1235this.onmessage(e)}else{const e=v(n,t)
1236if(!o(e)){this.error(new Error("invalid utf8 sequence"),1007)
1237return}this.onmessage(e.toString())}}this._state=l}controlMessage(e){if(8!==this._opcode){9===this._opcode?this.onping(e):this.onpong(e)
1238this._state=l}else if(0===e.length){this.onclose(1e3,"")
1239this._loop=!1
1240this.cleanup(this._cleanupCallback)}else if(1===e.length)this.error(new Error("invalid payload length"),1002)
1241else{const t=e.readUInt16BE(0,!0)
1242if(!r.isValidErrorCode(t)){this.error(new Error(`invalid status code: ${t}`),1002)
1243return}const n=e.slice(2)
1244if(!o(n)){this.error(new Error("invalid utf8 sequence"),1007)
1245return}this.onclose(t,n.toString())
1246this._loop=!1
1247this.cleanup(this._cleanupCallback)}}error(e,t){this.onerror(e,t)
1248this._hadError=!0
1249this._loop=!1
1250this.cleanup(this._cleanupCallback)}maxPayloadExceeded(e){if(0===e||this._maxPayload<1)return!1
1251const t=this._totalPayloadLength+e
1252if(t<=this._maxPayload){this._totalPayloadLength=t
1253return!1}this.error(new Error("max payload size exceeded"),1009)
1254return!0}pushFragment(e){if(0===e.length)return!0
1255const t=this._messageLength+e.length
1256if(this._maxPayload<1||t<=this._maxPayload){this._messageLength=t
1257this._fragments.push(e)
1258return!0}this.error(new Error("max payload size exceeded"),1009)
1259return!1}cleanup(e){this._dead=!0
1260if(this._hadError||!this._loop&&this._state!==m){this._extensions=null
1261this._fragments=null
1262this._buffers=null
1263this._mask=null
1264this._cleanupCallback=null
1265this.onmessage=null
1266this.onclose=null
1267this.onerror=null
1268this.onping=null
1269this.onpong=null
1270e&&e()}else this._cleanupCallback=e}}
1271function v(e,t){return 1===e.length?e[0]:e.length>1?s.concat(e,t):c.EMPTY_BUFFER}},function(e,t,n){"use strict"
1272const i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0]
1273function a(e,t,n){Object.prototype.hasOwnProperty.call(e,t)?e[t].push(n):e[t]=[n]}e.exports={format:function(e){return Object.keys(e).map(t=>{var n=e[t]
1274Array.isArray(n)||(n=[n])
1275return n.map(e=>[t].concat(Object.keys(e).map(t=>{var n=e[t]
1276Array.isArray(n)||(n=[n])
1277return n.map(e=>!0===e?t:`${t}=${e}`).join("; ")})).join("; ")).join(", ")}).join(", ")},parse:function(e){const t={}
1278if(void 0===e||""===e)return t
1279var n={}
1280var o=!1
1281var s=!1
1282var r=!1
1283var c
1284var p
1285var l=-1
1286var u=-1
1287for(var d=0;d<e.length;d++){const h=e.charCodeAt(d)
1288if(void 0===c)if(-1===u&&1===i[h])-1===l&&(l=d)
1289else if(32===h||9===h)-1===u&&-1!==l&&(u=d)
1290else{if(59!==h&&44!==h)throw new Error(`unexpected character at index ${d}`)
1291{if(-1===l)throw new Error(`unexpected character at index ${d}`);-1===u&&(u=d)
1292const i=e.slice(l,u)
1293if(44===h){a(t,i,n)
1294n={}}else c=i
1295l=u=-1}}else if(void 0===p)if(-1===u&&1===i[h])-1===l&&(l=d)
1296else if(32===h||9===h)-1===u&&-1!==l&&(u=d)
1297else if(59===h||44===h){if(-1===l)throw new Error(`unexpected character at index ${d}`);-1===u&&(u=d)
1298a(n,e.slice(l,u),!0)
1299if(44===h){a(t,c,n)
1300n={}
1301c=void 0}l=u=-1}else{if(61!==h||-1===l||-1!==u)throw new Error(`unexpected character at index ${d}`)
1302p=e.slice(l,d)
1303l=u=-1}else if(s){if(1!==i[h])throw new Error(`unexpected character at index ${d}`);-1===l?l=d:o||(o=!0)
1304s=!1}else if(r)if(1===i[h])-1===l&&(l=d)
1305else if(34===h&&-1!==l){r=!1
1306u=d}else{if(92!==h)throw new Error(`unexpected character at index ${d}`)
1307s=!0}else if(34===h&&61===e.charCodeAt(d-1))r=!0
1308else if(-1===u&&1===i[h])-1===l&&(l=d)
1309else if(-1===l||32!==h&&9!==h){if(59!==h&&44!==h)throw new Error(`unexpected character at index ${d}`)
1310if(-1===l)throw new Error(`unexpected character at index ${d}`);-1===u&&(u=d)
1311var f=e.slice(l,u)
1312if(o){f=f.replace(/\\/g,"")
1313o=!1}a(n,p,f)
1314if(44===h){a(t,c,n)
1315n={}
1316c=void 0}p=void 0
1317l=u=-1}else-1===u&&(u=d)}if(-1===l||r)throw new Error("unexpected end of input");-1===u&&(u=d)
1318const h=e.slice(l,u)
1319if(void 0===c)a(t,h,{})
1320else{void 0===p?a(n,h,!0):a(n,p,o?h.replace(/\\/g,""):h)
1321a(t,c,n)}return t}}},function(e,t,n){"use strict"
1322var i=Object.prototype.hasOwnProperty
1323var a=0
1324function o(e){if(!(this instanceof o))return new o(e)
1325this.id=a++
1326this.ee=e}o.prototype.on=function(e,t,n){t.__ultron=this.id
1327this.ee.on(e,t,n)
1328return this}
1329o.prototype.once=function(e,t,n){t.__ultron=this.id
1330this.ee.once(e,t,n)
1331return this}
1332o.prototype.remove=function(){var e,t=arguments,n=this.ee
1333if(1===t.length&&"string"==typeof t[0])t=t[0].split(/[, ]+/)
1334else if(!t.length)if(n.eventNames)t=n.eventNames()
1335else if(n._events){t=[]
1336for(e in n._events)i.call(n._events,e)&&t.push(e)
1337Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n._events)))}for(var a=0;a<t.length;a++){var o=n.listeners(t[a])
1338for(var s=0;s<o.length;s++){if((e=o[s]).listener){if(e.listener.__ultron!==this.id)continue}else if(e.__ultron!==this.id)continue
1339n.removeListener(t[a],e)}}return this}
1340o.prototype.destroy=function(){if(!this.ee)return!1
1341this.remove()
1342this.ee=null
1343return!0}
1344e.exports=o},function(e,t,n){"use strict"
1345const i=n(7)
1346const a=n(5)
1347const o=n(42)
1348const s=n(14)
1349const r=n(8)
1350const c=n(3)
1351const p=n(18)
1352const l=n(84)
1353const u=n(41)
1354const d=n(17)
1355const f=n(40)
1356const h=n(38)
1357const m=[8,13]
1358const v=3e4
1359class g extends i{constructor(e,t,n){super()
1360if(t){if("string"==typeof t)t=[t]
1361else if(!Array.isArray(t)){n=t
1362t=[]}}else t=[]
1363this.readyState=g.CONNECTING
1364this.bytesReceived=0
1365this.extensions={}
1366this.protocol=""
1367this._binaryType=d.BINARY_TYPES[0]
1368this._finalize=this.finalize.bind(this)
1369this._closeFrameReceived=!1
1370this._closeFrameSent=!1
1371this._closeMessage=""
1372this._closeTimer=null
1373this._finalized=!1
1374this._closeCode=1006
1375this._receiver=null
1376this._sender=null
1377this._socket=null
1378this._ultron=null
1379Array.isArray(e)?function(e,t,n){this.protocolVersion=n.protocolVersion
1380this._maxPayload=n.maxPayload
1381this.extensions=n.extensions
1382this.protocol=n.protocol
1383this._isServer=!0
1384this.setSocket(e,t)}.call(this,e[0],e[1],n):function(e,t,n){n=Object.assign({protocolVersion:m[1],protocol:t.join(","),perMessageDeflate:!0,handshakeTimeout:null,localAddress:null,headers:null,family:null,origin:null,agent:null,host:null,checkServerIdentity:null,rejectUnauthorized:null,passphrase:null,ciphers:null,ecdhCurve:null,cert:null,key:null,pfx:null,ca:null},n)
1385if(-1===m.indexOf(n.protocolVersion))throw new Error(`unsupported protocol version: ${n.protocolVersion} `+`(supported versions: ${m.join(", ")})`)
1386this.protocolVersion=n.protocolVersion
1387this._isServer=!1
1388this.url=e
1389const i=c.parse(e)
1390const o="ws+unix:"===i.protocol
1391if(!(i.host||o&&i.path))throw new Error("invalid url")
1392const l="wss:"===i.protocol||"https:"===i.protocol
1393const f=a.randomBytes(16).toString("base64")
1394const h=l?s:r
1395var v
1396const y={port:i.port||(l?443:80),host:i.hostname,path:"/",headers:{"Sec-WebSocket-Version":n.protocolVersion,"Sec-WebSocket-Key":f,Connection:"Upgrade",Upgrade:"websocket"}}
1397n.headers&&Object.assign(y.headers,n.headers)
1398if(n.perMessageDeflate){v=new p(!0!==n.perMessageDeflate?n.perMessageDeflate:{},!1)
1399y.headers["Sec-WebSocket-Extensions"]=u.format({[p.extensionName]:v.offer()})}n.protocol&&(y.headers["Sec-WebSocket-Protocol"]=n.protocol)
1400n.origin&&(n.protocolVersion<13?y.headers["Sec-WebSocket-Origin"]=n.origin:y.headers.Origin=n.origin)
1401n.host&&(y.headers.Host=n.host)
1402i.auth&&(y.auth=i.auth)
1403n.localAddress&&(y.localAddress=n.localAddress)
1404n.family&&(y.family=n.family)
1405if(o){const e=i.path.split(":")
1406y.socketPath=e[0]
1407y.path=e[1]}else i.path&&("/"!==i.path.charAt(0)?y.path=`/${i.path}`:y.path=i.path)
1408var x=n.agent
1409if(null!=n.rejectUnauthorized||n.checkServerIdentity||n.passphrase||n.ciphers||n.ecdhCurve||n.cert||n.key||n.pfx||n.ca){n.passphrase&&(y.passphrase=n.passphrase)
1410n.ciphers&&(y.ciphers=n.ciphers)
1411n.ecdhCurve&&(y.ecdhCurve=n.ecdhCurve)
1412n.cert&&(y.cert=n.cert)
1413n.key&&(y.key=n.key)
1414n.pfx&&(y.pfx=n.pfx)
1415n.ca&&(y.ca=n.ca)
1416n.checkServerIdentity&&(y.checkServerIdentity=n.checkServerIdentity)
1417null!=n.rejectUnauthorized&&(y.rejectUnauthorized=n.rejectUnauthorized)
1418x||(x=new h.Agent(y))}x&&(y.agent=x)
1419this._req=h.get(y)
1420n.handshakeTimeout&&this._req.setTimeout(n.handshakeTimeout,()=>{this._req.abort()
1421this.finalize(new Error("opening handshake has timed out"))})
1422this._req.on("error",e=>{if(!this._req.aborted){this._req=null
1423this.finalize(e)}})
1424this._req.on("response",e=>{if(!this.emit("unexpected-response",this._req,e)){this._req.abort()
1425this.finalize(new Error(`unexpected server response (${e.statusCode})`))}})
1426this._req.on("upgrade",(e,t,i)=>{this.emit("headers",e.headers,e)
1427if(this.readyState!==g.CONNECTING)return
1428this._req=null
1429const o=a.createHash("sha1").update(f+d.GUID,"binary").digest("base64")
1430if(e.headers["sec-websocket-accept"]!==o){t.destroy()
1431return this.finalize(new Error("invalid server key"))}const s=e.headers["sec-websocket-protocol"]
1432const r=(n.protocol||"").split(/, */)
1433var c
1434!n.protocol&&s?c="server sent a subprotocol even though none requested":n.protocol&&!s?c="server sent no subprotocol even though requested":s&&-1===r.indexOf(s)&&(c="server responded with an invalid protocol")
1435if(c){t.destroy()
1436return this.finalize(new Error(c))}s&&(this.protocol=s)
1437if(v)try{const n=u.parse(e.headers["sec-websocket-extensions"])
1438if(n[p.extensionName]){v.accept(n[p.extensionName])
1439this.extensions[p.extensionName]=v}}catch(e){t.destroy()
1440this.finalize(new Error("invalid Sec-WebSocket-Extensions header"))
1441return}this.setSocket(t,i)})}.call(this,e,t,n)}get CONNECTING(){return g.CONNECTING}get CLOSING(){return g.CLOSING}get CLOSED(){return g.CLOSED}get OPEN(){return g.OPEN}get bufferedAmount(){var e=0
1442this._socket&&(e=this._socket.bufferSize+this._sender._bufferedBytes)
1443return e}get binaryType(){return this._binaryType}set binaryType(e){if(!(d.BINARY_TYPES.indexOf(e)<0)){this._binaryType=e
1444this._receiver&&(this._receiver._binaryType=e)}}setSocket(e,t){e.setTimeout(0)
1445e.setNoDelay()
1446this._receiver=new f(this.extensions,this._maxPayload,this.binaryType)
1447this._sender=new h(e,this.extensions)
1448this._ultron=new o(e)
1449this._socket=e
1450this._ultron.on("close",this._finalize)
1451this._ultron.on("error",this._finalize)
1452this._ultron.on("end",this._finalize)
1453t.length>0&&e.unshift(t)
1454this._ultron.on("data",e=>{this.bytesReceived+=e.length
1455this._receiver.add(e)})
1456this._receiver.onmessage=(e=>this.emit("message",e))
1457this._receiver.onping=(e=>{this.pong(e,!this._isServer,!0)
1458this.emit("ping",e)})
1459this._receiver.onpong=(e=>this.emit("pong",e))
1460this._receiver.onclose=((e,t)=>{this._closeFrameReceived=!0
1461this._closeMessage=t
1462this._closeCode=e
1463this._finalized||this.close(e,t)})
1464this._receiver.onerror=((e,t)=>{this._closeMessage=""
1465this._closeCode=t
1466this.readyState=g.CLOSING
1467this.emit("error",e)
1468this.finalize(!0)})
1469this.readyState=g.OPEN
1470this.emit("open")}finalize(e){if(!this._finalized){this.readyState=g.CLOSING
1471this._finalized=!0
1472"object"==typeof e&&this.emit("error",e)
1473if(!this._socket)return this.emitClose()
1474clearTimeout(this._closeTimer)
1475this._closeTimer=null
1476this._ultron.destroy()
1477this._ultron=null
1478this._socket.on("error",d.NOOP)
1479e?this._socket.destroy():this._socket.end()
1480this._socket=null
1481this._sender=null
1482this._receiver.cleanup(()=>this.emitClose())
1483this._receiver=null}}emitClose(){this.readyState=g.CLOSED
1484this.emit("close",this._closeCode,this._closeMessage)
1485this.extensions[p.extensionName]&&this.extensions[p.extensionName].cleanup()
1486this.extensions=null
1487this.removeAllListeners()}pause(){if(this.readyState!==g.OPEN)throw new Error("not opened")
1488this._socket.pause()}resume(){if(this.readyState!==g.OPEN)throw new Error("not opened")
1489this._socket.resume()}close(e,t){if(this.readyState!==g.CLOSED)if(this.readyState!==g.CONNECTING)if(this.readyState!==g.CLOSING){this.readyState=g.CLOSING
1490this._sender.close(e,t,!this._isServer,e=>{if(!e){this._closeFrameSent=!0
1491if(!this._finalized){this._closeFrameReceived&&this._socket.end()
1492this._closeTimer=setTimeout(this._finalize,v,!0)}}})}else this._closeFrameSent&&this._closeFrameReceived&&this._socket.end()
1493else{this._req.abort()
1494this.finalize(new Error("closed before the connection is established"))}}ping(e,t,n){if(this.readyState!==g.OPEN){if(n)return
1495throw new Error("not opened")}"number"==typeof e&&(e=e.toString())
1496void 0===t&&(t=!this._isServer)
1497this._sender.ping(e||d.EMPTY_BUFFER,t)}pong(e,t,n){if(this.readyState!==g.OPEN){if(n)return
1498throw new Error("not opened")}"number"==typeof e&&(e=e.toString())
1499void 0===t&&(t=!this._isServer)
1500this._sender.pong(e||d.EMPTY_BUFFER,t)}send(e,t,n){if("function"==typeof t){n=t
1501t={}}if(this.readyState!==g.OPEN){if(!n)throw new Error("not opened")
1502n(new Error("not opened"))
1503return}"number"==typeof e&&(e=e.toString())
1504const i=Object.assign({binary:"string"!=typeof e,mask:!this._isServer,compress:!0,fin:!0},t)
1505this.extensions[p.extensionName]||(i.compress=!1)
1506this._sender.send(e||d.EMPTY_BUFFER,i,n)}terminate(){if(this.readyState!==g.CLOSED)if(this.readyState!==g.CONNECTING)this.finalize(!0)
1507else{this._req.abort()
1508this.finalize(new Error("closed before the connection is established"))}}}g.CONNECTING=0
1509g.OPEN=1
1510g.CLOSING=2
1511g.CLOSED=3;["open","error","close","message"].forEach(e=>{Object.defineProperty(g.prototype,`on${e}`,{get(){const t=this.listeners(e)
1512for(var n=0;n<t.length;n++)if(t[n]._listener)return t[n]._listener},set(t){const n=this.listeners(e)
1513for(var i=0;i<n.length;i++)n[i]._listener&&this.removeListener(e,n[i])
1514this.addEventListener(e,t)}})})
1515g.prototype.addEventListener=l.addEventListener
1516g.prototype.removeEventListener=l.removeEventListener
1517e.exports=g},function(e,t,n){var i=n(7).EventEmitter
1518var a=n(1)
1519var o=n(6)("engine:socket")
1520e.exports=s
1521function s(e,t,n,i){this.id=e
1522this.server=t
1523this.upgrading=!1
1524this.upgraded=!1
1525this.readyState="opening"
1526this.writeBuffer=[]
1527this.packetsFn=[]
1528this.sentCallbackFn=[]
1529this.cleanupFn=[]
1530this.request=i
1531i.websocket&&i.websocket._socket?this.remoteAddress=i.websocket._socket.remoteAddress:this.remoteAddress=i.connection.remoteAddress
1532this.checkIntervalTimer=null
1533this.upgradeTimeoutTimer=null
1534this.pingTimeoutTimer=null
1535this.setTransport(n)
1536this.onOpen()}a.inherits(s,i)
1537s.prototype.onOpen=function(){this.readyState="open"
1538this.transport.sid=this.id
1539this.sendPacket("open",JSON.stringify({sid:this.id,upgrades:this.getAvailableUpgrades(),pingInterval:this.server.pingInterval,pingTimeout:this.server.pingTimeout}))
1540this.server.initialPacket&&this.sendPacket("message",this.server.initialPacket)
1541this.emit("open")
1542this.setPingTimeout()}
1543s.prototype.onPacket=function(e){if("open"===this.readyState){o("packet")
1544this.emit("packet",e)
1545this.setPingTimeout()
1546switch(e.type){case"ping":o("got ping")
1547this.sendPacket("pong")
1548this.emit("heartbeat")
1549break
1550case"error":this.onClose("parse error")
1551break
1552case"message":this.emit("data",e.data)
1553this.emit("message",e.data)}}else o("packet received with closed socket")}
1554s.prototype.onError=function(e){o("transport error")
1555this.onClose("transport error",e)}
1556s.prototype.setPingTimeout=function(){var e=this
1557clearTimeout(e.pingTimeoutTimer)
1558e.pingTimeoutTimer=setTimeout(function(){e.onClose("ping timeout")},e.server.pingInterval+e.server.pingTimeout)}
1559s.prototype.setTransport=function(e){var t=this.onError.bind(this)
1560var n=this.onPacket.bind(this)
1561var i=this.flush.bind(this)
1562var a=this.onClose.bind(this,"transport close")
1563this.transport=e
1564this.transport.once("error",t)
1565this.transport.on("packet",n)
1566this.transport.on("drain",i)
1567this.transport.once("close",a)
1568this.setupSendCallback()
1569this.cleanupFn.push(function(){e.removeListener("error",t)
1570e.removeListener("packet",n)
1571e.removeListener("drain",i)
1572e.removeListener("close",a)})}
1573s.prototype.maybeUpgrade=function(e){o('might upgrade socket transport from "%s" to "%s"',this.transport.name,e.name)
1574this.upgrading=!0
1575var t=this
1576t.upgradeTimeoutTimer=setTimeout(function(){o("client did not complete upgrade - closing transport")
1577a()
1578"open"===e.readyState&&e.close()},this.server.upgradeTimeout)
1579function n(n){if("ping"===n.type&&"probe"===n.data){e.send([{type:"pong",data:"probe"}])
1580t.emit("upgrading",e)
1581clearInterval(t.checkIntervalTimer)
1582t.checkIntervalTimer=setInterval(i,100)}else if("upgrade"===n.type&&"closed"!==t.readyState){o("got upgrade packet - upgrading")
1583a()
1584t.transport.discard()
1585t.upgraded=!0
1586t.clearTransport()
1587t.setTransport(e)
1588t.emit("upgrade",e)
1589t.setPingTimeout()
1590t.flush()
1591"closing"===t.readyState&&e.close(function(){t.onClose("forced close")})}else{a()
1592e.close()}}function i(){if("polling"===t.transport.name&&t.transport.writable){o("writing a noop packet to polling for fast upgrade")
1593t.transport.send([{type:"noop"}])}}function a(){t.upgrading=!1
1594clearInterval(t.checkIntervalTimer)
1595t.checkIntervalTimer=null
1596clearTimeout(t.upgradeTimeoutTimer)
1597t.upgradeTimeoutTimer=null
1598e.removeListener("packet",n)
1599e.removeListener("close",r)
1600e.removeListener("error",s)
1601t.removeListener("close",c)}function s(t){o("client did not complete upgrade - %s",t)
1602a()
1603e.close()
1604e=null}function r(){s("transport closed")}function c(){s("socket closed")}e.on("packet",n)
1605e.once("close",r)
1606e.once("error",s)
1607t.once("close",c)}
1608s.prototype.clearTransport=function(){var e=this.cleanupFn.length
1609for(var t=0;t<e;t++)this.cleanupFn.shift()()
1610this.transport.on("error",function(){o("error triggered by discarded transport")})
1611this.transport.close()
1612clearTimeout(this.pingTimeoutTimer)}
1613s.prototype.onClose=function(e,t){if("closed"!==this.readyState){this.readyState="closed"
1614clearTimeout(this.pingTimeoutTimer)
1615clearInterval(this.checkIntervalTimer)
1616this.checkIntervalTimer=null
1617clearTimeout(this.upgradeTimeoutTimer)
1618var n=this
1619process.nextTick(function(){n.writeBuffer=[]})
1620this.packetsFn=[]
1621this.sentCallbackFn=[]
1622this.clearTransport()
1623this.emit("close",e,t)}}
1624s.prototype.setupSendCallback=function(){var e=this
1625this.transport.on("drain",t)
1626this.cleanupFn.push(function(){e.transport.removeListener("drain",t)})
1627function t(){if(e.sentCallbackFn.length>0){var t=e.sentCallbackFn.splice(0,1)[0]
1628if("function"==typeof t){o("executing send callback")
1629t(e.transport)}else if(Array.isArray(t)){o("executing batch send callback")
1630for(var n=t.length,i=0;i<n;i++)"function"==typeof t[i]&&t[i](e.transport)}}}}
1631s.prototype.send=s.prototype.write=function(e,t,n){this.sendPacket("message",e,t,n)
1632return this}
1633s.prototype.sendPacket=function(e,t,n,i){if("function"==typeof n){i=n
1634n=null}(n=n||{}).compress=!1!==n.compress
1635if("closing"!==this.readyState&&"closed"!==this.readyState){o('sending packet "%s" (%s)',e,t)
1636var a={type:e,options:n}
1637t&&(a.data=t)
1638this.emit("packetCreate",a)
1639this.writeBuffer.push(a)
1640i&&this.packetsFn.push(i)
1641this.flush()}}
1642s.prototype.flush=function(){if("closed"!==this.readyState&&this.transport.writable&&this.writeBuffer.length){o("flushing buffer to transport")
1643this.emit("flush",this.writeBuffer)
1644this.server.emit("flush",this,this.writeBuffer)
1645var e=this.writeBuffer
1646this.writeBuffer=[]
1647this.transport.supportsFraming?this.sentCallbackFn.push.apply(this.sentCallbackFn,this.packetsFn):this.sentCallbackFn.push(this.packetsFn)
1648this.packetsFn=[]
1649this.transport.send(e)
1650this.emit("drain")
1651this.server.emit("drain",this)}}
1652s.prototype.getAvailableUpgrades=function(){var e=[]
1653var t=this.server.upgrades(this.transport.name)
1654for(var n=0,i=t.length;n<i;++n){var a=t[n];-1!==this.server.transports.indexOf(a)&&e.push(a)}return e}
1655s.prototype.close=function(e){if("open"===this.readyState){this.readyState="closing"
1656this.writeBuffer.length?this.once("drain",this.closeTransport.bind(this,e)):this.closeTransport(e)}}
1657s.prototype.closeTransport=function(e){e&&this.transport.discard()
1658this.transport.close(this.onClose.bind(this,"forced close"))}},function(e,t){e.exports=require("tty")},function(e,t){var n=1e3
1659var i=60*n
1660var a=60*i
1661var o=24*a
1662var s=365.25*o
1663e.exports=function(e,t){t=t||{}
1664var c=typeof e
1665if("string"===c&&e.length>0)return function(e){if((e=String(e)).length>100)return
1666var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e)
1667if(!t)return
1668var r=parseFloat(t[1])
1669switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return r*s
1670case"days":case"day":case"d":return r*o
1671case"hours":case"hour":case"hrs":case"hr":case"h":return r*a
1672case"minutes":case"minute":case"mins":case"min":case"m":return r*i
1673case"seconds":case"second":case"secs":case"sec":case"s":return r*n
1674case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r
1675default:return}}(e)
1676if("number"===c&&!1===isNaN(e))return t.long?function(e){return r(e,o,"day")||r(e,a,"hour")||r(e,i,"minute")||r(e,n,"second")||e+" ms"}(e):function(e){if(e>=o)return Math.round(e/o)+"d"
1677if(e>=a)return Math.round(e/a)+"h"
1678if(e>=i)return Math.round(e/i)+"m"
1679if(e>=n)return Math.round(e/n)+"s"
1680return e+"ms"}(e)
1681throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}
1682function r(e,t,n){if(!(e<t))return e<1.5*t?Math.floor(e/t)+" "+n:Math.ceil(e/t)+" "+n+"s"}},function(e,t,n){(t=e.exports=i.debug=i.default=i).coerce=function(e){return e instanceof Error?e.stack||e.message:e}
1683t.disable=function(){t.enable("")}
1684t.enable=function(e){t.save(e)
1685t.names=[]
1686t.skips=[]
1687var n
1688var i=("string"==typeof e?e:"").split(/[\s,]+/)
1689var a=i.length
1690for(n=0;n<a;n++)i[n]&&("-"===(e=i[n].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))
1691for(n=0;n<t.instances.length;n++){var o=t.instances[n]
1692o.enabled=t.enabled(o.namespace)}}
1693t.enabled=function(e){if("*"===e[e.length-1])return!0
1694var n,i
1695for(n=0,i=t.skips.length;n<i;n++)if(t.skips[n].test(e))return!1
1696for(n=0,i=t.names.length;n<i;n++)if(t.names[n].test(e))return!0
1697return!1}
1698t.humanize=n(46)
1699t.instances=[]
1700t.names=[]
1701t.skips=[]
1702t.formatters={}
1703function i(e){var n
1704function i(){if(i.enabled){var e=i
1705var a=+new Date
1706var o=a-(n||a)
1707e.diff=o
1708e.prev=n
1709e.curr=a
1710n=a
1711var s=new Array(arguments.length)
1712for(var r=0;r<s.length;r++)s[r]=arguments[r]
1713s[0]=t.coerce(s[0])
1714"string"!=typeof s[0]&&s.unshift("%O")
1715var c=0
1716s[0]=s[0].replace(/%([a-zA-Z%])/g,function(n,i){if("%%"===n)return n
1717c++
1718var a=t.formatters[i]
1719if("function"==typeof a){var o=s[c]
1720n=a.call(e,o)
1721s.splice(c,1)
1722c--}return n})
1723t.formatArgs.call(e,s);(i.log||t.log||console.log.bind(console)).apply(e,s)}}i.namespace=e
1724i.enabled=t.enabled(e)
1725i.useColors=t.useColors()
1726i.color=function(e){var n,i=0
1727for(n in e){i=(i<<5)-i+e.charCodeAt(n)
1728i|=0}return t.colors[Math.abs(i)%t.colors.length]}(e)
1729i.destroy=a
1730"function"==typeof t.init&&t.init(i)
1731t.instances.push(i)
1732return i}function a(){var e=t.instances.indexOf(this)
1733if(-1!==e){t.instances.splice(e,1)
1734return!0}return!1}},function(e,t,n){var i=n(25)
1735var a=n(19)
1736var o=n(9)
1737var s=n(101)
1738var r=n(1)
1739var c=n(6)("engine:polling")
1740var p={gzip:o.createGzip,deflate:o.createDeflate}
1741e.exports=l
1742function l(e){i.call(this,e)
1743this.closeTimeout=3e4
1744this.maxHttpBufferSize=null
1745this.httpCompression=null}r.inherits(l,i)
1746l.prototype.name="polling"
1747l.prototype.onRequest=function(e){var t=e.res
1748if("GET"===e.method)this.onPollRequest(e,t)
1749else if("POST"===e.method)this.onDataRequest(e,t)
1750else{t.writeHead(500)
1751t.end()}}
1752l.prototype.onPollRequest=function(e,t){if(this.req){c("request overlap")
1753this.onError("overlap from client")
1754t.writeHead(500)
1755t.end()}else{c("setting request")
1756this.req=e
1757this.res=t
1758var n=this
1759e.cleanup=function(){e.removeListener("close",i)
1760n.req=n.res=null}
1761e.on("close",i)
1762this.writable=!0
1763this.emit("drain")
1764if(this.writable&&this.shouldClose){c("triggering empty send to append close packet")
1765this.send([{type:"noop"}])}}function i(){n.onError("poll connection closed prematurely")}}
1766l.prototype.onDataRequest=function(e,t){if(this.dataReq){this.onError("data request overlap from client")
1767t.writeHead(500)
1768t.end()}else{var n="application/octet-stream"===e.headers["content-type"]
1769this.dataReq=e
1770this.dataRes=t
1771var i=n?Buffer.concat([]):""
1772var a=this
1773e.on("close",s)
1774n||e.setEncoding("utf8")
1775e.on("data",r)
1776e.on("end",c)}function o(){e.removeListener("data",r)
1777e.removeListener("end",c)
1778e.removeListener("close",s)
1779a.dataReq=a.dataRes=i=null}function s(){o()
1780a.onError("data request connection closed prematurely")}function r(t){var o
1781if(n)o=(i=Buffer.concat([i,t])).length
1782else{i+=t
1783o=Buffer.byteLength(i)}if(o>a.maxHttpBufferSize){i=n?Buffer.concat([]):""
1784e.connection.destroy()}}function c(){a.onData(i)
1785t.writeHead(200,a.headers(e,{"Content-Type":"text/html","Content-Length":2}))
1786t.end("ok")
1787o()}}
1788l.prototype.onData=function(e){c('received "%s"',e)
1789var t=this
1790a.decodePayload(e,function(e){if("close"===e.type){c("got xhr close packet")
1791t.onClose()
1792return!1}t.onPacket(e)})}
1793l.prototype.onClose=function(){this.writable&&this.send([{type:"noop"}])
1794i.prototype.onClose.call(this)}
1795l.prototype.send=function(e){this.writable=!1
1796if(this.shouldClose){c("appending close packet to payload")
1797e.push({type:"close"})
1798this.shouldClose()
1799this.shouldClose=null}var t=this
1800a.encodePayload(e,this.supportsBinary,function(n){var i=e.some(function(e){return e.options&&e.options.compress})
1801t.write(n,{compress:i})})}
1802l.prototype.write=function(e,t){c('writing "%s"',e)
1803var n=this
1804this.doWrite(e,t,function(){n.req.cleanup()})}
1805l.prototype.doWrite=function(e,t,n){var i=this
1806var a="string"==typeof e
1807var o={"Content-Type":a?"text/plain; charset=UTF-8":"application/octet-stream"}
1808if(this.httpCompression&&t.compress){if((a?Buffer.byteLength(e):e.length)<this.httpCompression.threshold)c(e)
1809else{var r=s(this.req).encodings(["gzip","deflate"])
1810r?this.compress(e,r,function(e,t){if(e){i.res.writeHead(500)
1811i.res.end()
1812n(e)}else{o["Content-Encoding"]=r
1813c(t)}}):c(e)}}else c(e)
1814function c(e){o["Content-Length"]="string"==typeof e?Buffer.byteLength(e):e.length
1815i.res.writeHead(200,i.headers(i.req,o))
1816i.res.end(e)
1817n()}}
1818l.prototype.compress=function(e,t,n){c("compressing")
1819var i=[]
1820var a=0
1821p[t](this.httpCompression).on("error",n).on("data",function(e){i.push(e)
1822a+=e.length}).on("end",function(){n(null,Buffer.concat(i,a))}).end(e)}
1823l.prototype.doClose=function(e){c("closing")
1824var t=this
1825var n
1826if(this.dataReq){c("aborting ongoing data request")
1827this.dataReq.destroy()}if(this.writable){c("transport writable - closing right away")
1828this.send([{type:"close"}])
1829i()}else if(this.discarded){c("transport discarded - closing right away")
1830i()}else{c("transport not writable - buffering orderly close")
1831this.shouldClose=i
1832n=setTimeout(i,this.closeTimeout)}function i(){clearTimeout(n)
1833e()
1834t.onClose()}}
1835l.prototype.headers=function(e,t){t=t||{}
1836var n=e.headers["user-agent"]
1837n&&(~n.indexOf(";MSIE")||~n.indexOf("Trident/"))&&(t["X-XSS-Protection"]="0")
1838this.emit("headers",t)
1839return t}},function(e,t,n){var i=n(111)
1840var a=n(92)
1841e.exports=t={polling:function(e){return"string"==typeof e._query.j?new a(e):new i(e)},websocket:n(91)}
1842t.polling.upgradesTo=["websocket"]},function(e,t){e.exports=require("querystring")},function(e,t){e.exports=require("stream")},function(e,t,n){var i=n(73)
1843var a=n(13).createClient
1844var o=n(61)
1845var s=n(34)
1846var r=n(58)("socket.io-redis")
1847e.exports=function(e,t){t=t||{}
1848if("object"==typeof e){t=e
1849e=null}var n=t.pubClient
1850var p=t.subClient
1851var l=t.key||"socket.io"
1852var u=t.requestsTimeout||5e3
1853function d(){return e?a(e,t):a(t)}n||(n=d())
1854p||(p=d())
1855var f=i(6)
1856function h(e){s.call(this,e)
1857this.uid=f
1858this.prefix=l
1859this.requestsTimeout=u
1860this.channel=l+"#"+e.name+"#"
1861this.requestChannel=l+"-request#"+this.nsp.name+"#"
1862this.responseChannel=l+"-response#"+this.nsp.name+"#"
1863this.requests={}
1864this.customHook=function(e,t){t(null)}
1865String.prototype.startsWith?this.channelMatches=function(e,t){return e.startsWith(t)}:this.channelMatches=function(e,t){return e.substr(0,t.length)===t}
1866this.pubClient=n
1867this.subClient=p
1868var t=this
1869p.psubscribe(this.channel+"*",function(e){e&&t.emit("error",e)})
1870p.on("pmessageBuffer",this.onmessage.bind(this))
1871p.subscribe([this.requestChannel,this.responseChannel],function(e){e&&t.emit("error",e)})
1872p.on("messageBuffer",this.onrequest.bind(this))
1873function i(e){t.emit("error",e)}n.on("error",i)
1874p.on("error",i)}h.prototype.__proto__=s.prototype
1875h.prototype.onmessage=function(e,t,n){t=t.toString()
1876if(!this.channelMatches(t,this.channel))return r("ignore different channel")
1877var i=t.slice(this.channel.length,-1)
1878if(""!==i&&!this.rooms.hasOwnProperty(i))return r("ignore unknown room %s",i)
1879var a=o.decode(n)
1880var s
1881if(f===a.shift())return r("ignore same uid");(s=a[0])&&void 0===s.nsp&&(s.nsp="/")
1882if(!s||s.nsp!=this.nsp.name)return r("ignore different namespace")
1883a.push(!0)
1884this.broadcast.apply(this,a)}
1885h.prototype.onrequest=function(e,t){e=e.toString()
1886if(this.channelMatches(e,this.responseChannel))return this.onresponse(e,t)
1887if(!this.channelMatches(e,this.requestChannel))return r("ignore different channel")
1888var i=this
1889var a
1890try{a=JSON.parse(t)}catch(e){i.emit("error",e)
1891return}r("received request %j",a)
1892switch(a.type){case c.clients:s.prototype.clients.call(i,a.rooms,function(e,t){if(e)i.emit("error",e)
1893else{var o=JSON.stringify({requestid:a.requestid,clients:t})
1894n.publish(i.responseChannel,o)}})
1895break
1896case c.clientRooms:s.prototype.clientRooms.call(i,a.sid,function(e,t){if(e)i.emit("error",e)
1897else if(t){var o=JSON.stringify({requestid:a.requestid,rooms:t})
1898n.publish(i.responseChannel,o)}})
1899break
1900case c.allRooms:var o=JSON.stringify({requestid:a.requestid,rooms:Object.keys(this.rooms)})
1901n.publish(i.responseChannel,o)
1902break
1903case c.remoteJoin:var p=this.nsp.connected[a.sid]
1904if(!p)return
1905p.join(a.room,function(){var e=JSON.stringify({requestid:a.requestid})
1906n.publish(i.responseChannel,e)})
1907break
1908case c.remoteLeave:var p=this.nsp.connected[a.sid]
1909if(!p)return
1910p.leave(a.room,function(){var e=JSON.stringify({requestid:a.requestid})
1911n.publish(i.responseChannel,e)})
1912break
1913case c.remoteDisconnect:var p=this.nsp.connected[a.sid]
1914if(!p)return
1915p.disconnect(a.close)
1916var o=JSON.stringify({requestid:a.requestid})
1917n.publish(i.responseChannel,o)
1918break
1919case c.customRequest:this.customHook(a.data,function(e){var t=JSON.stringify({requestid:a.requestid,data:e})
1920n.publish(i.responseChannel,t)})
1921break
1922default:r("ignoring unknown request type: %s",a.type)}}
1923h.prototype.onresponse=function(e,t){var n
1924try{n=JSON.parse(t)}catch(e){this.emit("error",e)
1925return}var i=n.requestid
1926if(i&&this.requests[i]){r("received response %j",n)
1927var a=this.requests[i]
1928switch(a.type){case c.clients:a.msgCount++
1929if(!n.clients||!Array.isArray(n.clients))return
1930for(var o=0;o<n.clients.length;o++)a.clients[n.clients[o]]=!0
1931if(a.msgCount===a.numsub){clearTimeout(a.timeout)
1932a.callback&&process.nextTick(a.callback.bind(null,null,Object.keys(a.clients)))
1933delete this.requests[i]}break
1934case c.clientRooms:clearTimeout(a.timeout)
1935a.callback&&process.nextTick(a.callback.bind(null,null,n.rooms))
1936delete this.requests[i]
1937break
1938case c.allRooms:a.msgCount++
1939if(!n.rooms||!Array.isArray(n.rooms))return
1940for(var o=0;o<n.rooms.length;o++)a.rooms[n.rooms[o]]=!0
1941if(a.msgCount===a.numsub){clearTimeout(a.timeout)
1942a.callback&&process.nextTick(a.callback.bind(null,null,Object.keys(a.rooms)))
1943delete this.requests[i]}break
1944case c.remoteJoin:case c.remoteLeave:case c.remoteDisconnect:clearTimeout(a.timeout)
1945a.callback&&process.nextTick(a.callback.bind(null,null))
1946delete this.requests[i]
1947break
1948case c.customRequest:a.msgCount++
1949a.replies.push(n.data)
1950if(a.msgCount===a.numsub){clearTimeout(a.timeout)
1951a.callback&&process.nextTick(a.callback.bind(null,null,a.replies))
1952delete this.requests[i]}break
1953default:r("ignoring unknown request type: %s",a.type)}}else r("ignoring unknown request")}
1954h.prototype.broadcast=function(e,t,i){e.nsp=this.nsp.name
1955if(!(i||t&&t.flags&&t.flags.local)){var a=o.encode([f,e,t])
1956var c=this.channel
1957t.rooms&&1===t.rooms.length&&(c+=t.rooms[0]+"#")
1958r("publishing message to channel %s",c)
1959n.publish(c,a)}s.prototype.broadcast.call(this,e,t)}
1960h.prototype.clients=function(e,t){if("function"==typeof e){t=e
1961e=null}e=e||[]
1962var a=this
1963var o=i(6)
1964n.send_command("pubsub",["numsub",a.requestChannel],function(i,s){if(i){a.emit("error",i)
1965t&&t(i)}else{s=parseInt(s[1],10)
1966r('waiting for %d responses to "clients" request',s)
1967var p=JSON.stringify({requestid:o,type:c.clients,rooms:e})
1968var l=setTimeout(function(){var e=a.requests[o]
1969t&&process.nextTick(t.bind(null,new Error("timeout reached while waiting for clients response"),Object.keys(e.clients)))
1970delete a.requests[o]},a.requestsTimeout)
1971a.requests[o]={type:c.clients,numsub:s,msgCount:0,clients:{},callback:t,timeout:l}
1972n.publish(a.requestChannel,p)}})}
1973h.prototype.clientRooms=function(e,t){var a=this
1974var o=i(6)
1975var s=this.sids[e]
1976if(s)t&&process.nextTick(t.bind(null,null,Object.keys(s)))
1977else{var r=JSON.stringify({requestid:o,type:c.clientRooms,sid:e})
1978var p=setTimeout(function(){t&&process.nextTick(t.bind(null,new Error("timeout reached while waiting for rooms response")))
1979delete a.requests[o]},a.requestsTimeout)
1980a.requests[o]={type:c.clientRooms,callback:t,timeout:p}
1981n.publish(a.requestChannel,r)}}
1982h.prototype.allRooms=function(e){var t=this
1983var a=i(6)
1984n.send_command("pubsub",["numsub",t.requestChannel],function(i,o){if(i){t.emit("error",i)
1985e&&e(i)}else{o=parseInt(o[1],10)
1986r('waiting for %d responses to "allRooms" request',o)
1987var s=JSON.stringify({requestid:a,type:c.allRooms})
1988var p=setTimeout(function(){var n=t.requests[a]
1989e&&process.nextTick(e.bind(null,new Error("timeout reached while waiting for allRooms response"),Object.keys(n.rooms)))
1990delete t.requests[a]},t.requestsTimeout)
1991t.requests[a]={type:c.allRooms,numsub:o,msgCount:0,rooms:{},callback:e,timeout:p}
1992n.publish(t.requestChannel,s)}})}
1993h.prototype.remoteJoin=function(e,t,a){var o=this
1994var s=i(6)
1995var r=this.nsp.connected[e]
1996if(r)r.join(t,a)
1997else{var p=JSON.stringify({requestid:s,type:c.remoteJoin,sid:e,room:t})
1998var l=setTimeout(function(){a&&process.nextTick(a.bind(null,new Error("timeout reached while waiting for remoteJoin response")))
1999delete o.requests[s]},o.requestsTimeout)
2000o.requests[s]={type:c.remoteJoin,callback:a,timeout:l}
2001n.publish(o.requestChannel,p)}}
2002h.prototype.remoteLeave=function(e,t,a){var o=this
2003var s=i(6)
2004var r=this.nsp.connected[e]
2005if(r)r.leave(t,a)
2006else{var p=JSON.stringify({requestid:s,type:c.remoteLeave,sid:e,room:t})
2007var l=setTimeout(function(){a&&process.nextTick(a.bind(null,new Error("timeout reached while waiting for remoteLeave response")))
2008delete o.requests[s]},o.requestsTimeout)
2009o.requests[s]={type:c.remoteLeave,callback:a,timeout:l}
2010n.publish(o.requestChannel,p)}}
2011h.prototype.remoteDisconnect=function(e,t,a){var o=this
2012var s=i(6)
2013var r=this.nsp.connected[e]
2014if(r){r.disconnect(t)
2015a&&process.nextTick(a.bind(null,null))}else{var p=JSON.stringify({requestid:s,type:c.remoteDisconnect,sid:e,close:t})
2016var l=setTimeout(function(){a&&process.nextTick(a.bind(null,new Error("timeout reached while waiting for remoteDisconnect response")))
2017delete o.requests[s]},o.requestsTimeout)
2018o.requests[s]={type:c.remoteDisconnect,callback:a,timeout:l}
2019n.publish(o.requestChannel,p)}}
2020h.prototype.customRequest=function(e,t){if("function"==typeof e){t=e
2021e=null}var a=this
2022var o=i(6)
2023n.send_command("pubsub",["numsub",a.requestChannel],function(i,s){if(i){a.emit("error",i)
2024t&&t(i)}else{s=parseInt(s[1],10)
2025r('waiting for %d responses to "customRequest" request',s)
2026var p=JSON.stringify({requestid:o,type:c.customRequest,data:e})
2027var l=setTimeout(function(){var e=a.requests[o]
2028t&&process.nextTick(t.bind(null,new Error("timeout reached while waiting for customRequest response"),e.replies))
2029delete a.requests[o]},a.requestsTimeout)
2030a.requests[o]={type:c.customRequest,numsub:s,msgCount:0,replies:[],callback:t,timeout:l}
2031n.publish(a.requestChannel,p)}})}
2032h.uid=f
2033h.pubClient=n
2034h.subClient=p
2035h.prefix=l
2036h.requestsTimeout=u
2037return h}
2038var c={clients:0,clientRooms:1,allRooms:2,remoteJoin:3,remoteLeave:4,customRequest:5,remoteDisconnect:6}},function(e,t,n){"use strict";(function(t){var i=n(8)
2039var a=n(0).readFileSync
2040var o=n(2)
2041var s=n(0).existsSync
2042var r=n(114)
2043var c=n(80).version
2044var p=n(79)
2045var l=n(7).EventEmitter
2046var u=n(35)
2047var d=n(75)
2048var f=n(34)
2049var h=n(16)
2050var m=n(6)("socket.io:server")
2051var v=n(3)
2052e.exports=x
2053var g=void 0
2054var y=void 0
2055function x(e,t){if(!(this instanceof x))return new x(e,t)
2056if("object"==typeof e&&e instanceof Object&&!e.listen){t=e
2057e=null}t=t||{}
2058this.nsps={}
2059this.parentNsps=new Map
2060this.path(t.path||"/socket.io")
2061this.serveClient(!1!==t.serveClient)
2062this.parser=t.parser||h
2063this.encoder=new this.parser.Encoder
2064this.adapter(t.adapter||f)
2065this.origins(t.origins||"*:*")
2066this.sockets=this.of("/")
2067e&&this.attach(e,t)}x.prototype.checkRequest=function(e,t){var n=e.headers.origin||e.headers.referer
2068"null"!=n&&null!=n||(n="*")
2069if(n&&"function"==typeof this._origins)return this._origins(n,t)
2070if(-1!==this._origins.indexOf("*:*"))return t(null,!0)
2071if(n)try{var i=v.parse(n)
2072var a="https:"==i.protocol?443:80
2073i.port=null!=i.port?i.port:a
2074var o=~this._origins.indexOf(i.protocol+"//"+i.hostname+":"+i.port)||~this._origins.indexOf(i.hostname+":"+i.port)||~this._origins.indexOf(i.hostname+":*")||~this._origins.indexOf("*:"+i.port)
2075m("origin %s is %svalid",n,o?"":"not ")
2076return t(null,!!o)}catch(e){}t(null,!1)}
2077x.prototype.serveClient=function(e){if(!arguments.length)return this._serveClient
2078this._serveClient=e
2079var i=function(e){var i=o.resolve(t,"./../../",e)
2080return s(i)?i:n(74).resolve(e)}
2081if(e&&!g){g=a(i("socket.io-client/dist/socket.io.js"),"utf-8")
2082try{y=a(i("socket.io-client/dist/socket.io.js.map"),"utf-8")}catch(e){m("could not load sourcemap file")}}return this}
2083var b={transports:"transports","heartbeat timeout":"pingTimeout","heartbeat interval":"pingInterval","destroy buffer size":"maxHttpBufferSize"}
2084x.prototype.set=function(e,t){"authorization"==e&&t?this.use(function(e,n){t(e.request,function(e,t){if(e)return n(new Error(e))
2085if(!t)return n(new Error("Not authorized"))
2086n()})}):"origins"==e&&t?this.origins(t):"resource"==e?this.path(t):b[e]&&this.eio[b[e]]?this.eio[b[e]]=t:console.error("Option %s is not valid. Please refer to the README.",e)
2087return this}
2088x.prototype.checkNamespace=function(e,t,n){if(0===this.parentNsps.size)return n(!1)
2089const i=this.parentNsps.keys()
2090const a=()=>{let o=i.next()
2091if(o.done)return n(!1)
2092o.value(e,t,(t,i)=>{t||!i?a():n(this.parentNsps.get(o.value).createChild(e))})}
2093a()}
2094x.prototype.path=function(e){if(!arguments.length)return this._path
2095this._path=e.replace(/\/$/,"")
2096return this}
2097x.prototype.adapter=function(e){if(!arguments.length)return this._adapter
2098this._adapter=e
2099for(var t in this.nsps)this.nsps.hasOwnProperty(t)&&this.nsps[t].initAdapter()
2100return this}
2101x.prototype.origins=function(e){if(!arguments.length)return this._origins
2102this._origins=e
2103return this}
2104x.prototype.listen=x.prototype.attach=function(e,t){if("function"==typeof e){throw new Error("You are trying to attach socket.io to an express request handler function. Please pass a http.Server instance.")}Number(e)==e&&(e=Number(e))
2105if("number"==typeof e){m("creating http server and binding to %d",e)
2106var n=e;(e=i.Server(function(e,t){t.writeHead(404)
2107t.end()})).listen(n)}(t=t||{}).path=t.path||this.path()
2108t.allowRequest=t.allowRequest||this.checkRequest.bind(this)
2109if(this.sockets.fns.length>0){this.initEngine(e,t)
2110return this}var a=this
2111var o={type:h.CONNECT,nsp:"/"}
2112this.encoder.encode(o,function(n){t.initialPacket=n
2113a.initEngine(e,t)})
2114return this}
2115x.prototype.initEngine=function(e,t){m("creating engine.io instance with opts %j",t)
2116this.eio=r.attach(e,t)
2117this._serveClient&&this.attachServe(e)
2118this.httpServer=e
2119this.bind(this.eio)}
2120x.prototype.attachServe=function(e){m("attaching client serving req handler")
2121var t=this._path+"/socket.io.js"
2122var n=this._path+"/socket.io.js.map"
2123var i=e.listeners("request").slice(0)
2124var a=this
2125e.removeAllListeners("request")
2126e.on("request",function(o,s){if(0===o.url.indexOf(n))a.serveMap(o,s)
2127else if(0===o.url.indexOf(t))a.serve(o,s)
2128else for(var r=0;r<i.length;r++)i[r].call(e,o,s)})}
2129x.prototype.serve=function(e,t){var n='"'+c+'"'
2130var i=e.headers["if-none-match"]
2131if(i&&n==i){m("serve client 304")
2132t.writeHead(304)
2133t.end()}else{m("serve client source")
2134t.setHeader("Content-Type","application/javascript")
2135t.setHeader("ETag",n)
2136t.writeHead(200)
2137t.end(g)}}
2138x.prototype.serveMap=function(e,t){var n='"'+c+'"'
2139var i=e.headers["if-none-match"]
2140if(i&&n==i){m("serve client 304")
2141t.writeHead(304)
2142t.end()}else{m("serve client sourcemap")
2143t.setHeader("Content-Type","application/json")
2144t.setHeader("ETag",n)
2145t.writeHead(200)
2146t.end(y)}}
2147x.prototype.bind=function(e){this.engine=e
2148this.engine.on("connection",this.onconnection.bind(this))
2149return this}
2150x.prototype.onconnection=function(e){m("incoming connection with id %s",e.id)
2151new p(this,e).connect("/")
2152return this}
2153x.prototype.of=function(e,t){if("function"==typeof e||e instanceof RegExp){const n=new d(this)
2154m("initializing parent namespace %s",n.name)
2155"function"==typeof e?this.parentNsps.set(e,n):this.parentNsps.set((t,n,i)=>i(null,e.test(t)),n)
2156t&&n.on("connect",t)
2157return n}"/"!==String(e)[0]&&(e="/"+e)
2158var n=this.nsps[e]
2159if(!n){m("initializing namespace %s",e)
2160n=new u(this,e)
2161this.nsps[e]=n}t&&n.on("connect",t)
2162return n}
2163x.prototype.close=function(e){for(var t in this.nsps["/"].sockets)this.nsps["/"].sockets.hasOwnProperty(t)&&this.nsps["/"].sockets[t].onclose()
2164this.engine.close()
2165this.httpServer?this.httpServer.close(e):e&&e()}
2166Object.keys(l.prototype).filter(function(e){return"function"==typeof l.prototype[e]}).concat(["to","in","use","send","write","clients","compress","binary"]).forEach(function(e){x.prototype[e]=function(){return this.sockets[e].apply(this.sockets,arguments)}})
2167u.flags.forEach(function(e){Object.defineProperty(x.prototype,e,{get:function(){this.sockets.flags=this.sockets.flags||{}
2168this.sockets.flags[e]=!0
2169return this}})})
2170x.listen=x}).call(this,"/")},function(e,t){e.exports=require("readline")},function(e,t,n){"use strict"
2171n.r(t)
2172var i=n(2)
2173var a=n(0)
2174var o=n(1)
2175n(54)
2176Object(o.promisify)(a.stat)
2177const s=Object(o.promisify)(a.lstat)
2178Object(o.promisify)(a.rename)
2179Object(o.promisify)(a.unlink)
2180Object(o.promisify)(a.access)
2181const r=Object(o.promisify)(a.mkdir)
2182Object(o.promisify)(a.rmdir)
2183Object(o.promisify)(a.readdir)
2184const c=Object(o.promisify)(a.readFile)
2185const p=Object(o.promisify)(a.writeFile)
2186a.copyFile?Object(o.promisify)(a.copyFile):(()=>{const e=Object(o.promisify)(a.open)
2187const t=Object(o.promisify)(a.fstat)})()
2188i.sep
2189const l="File",u="Directory",d="SymbolicLink",f="Other",h="Error"
2190const m=e=>e.isDirectory()?u:e.isFile()?l:e.isSymbolicLink()?d:f
2191const v=e=>h
2192const g=e=>s(e).then(m,v)
2193const y=async(e,t)=>{void 0===t&&(t=await g(e))
2194if(t===u)return
2195if(t!==h)throw new Error("[createDirectory] path already taken by non-directory")
2196const n=Object(i.dirname)(e)
2197const a=await g(n)
2198a!==u&&await y(n,a)
2199t!==u&&await r(e)}
2200const x=e=>{console.warn(e)
2201throw e}
2202const b=(e,t,...n)=>{try{return e[t](...n)}catch(e){}}
2203const w=(e,...t)=>{let n,i
2204try{n=e(...t)}catch(e){i=e}return{result:n,error:i}}
2205const k=async(e,...t)=>{let n,i
2206try{n=await e(...t)}catch(e){i=e}return{result:n,error:i}}
2207const _=({queueLengthThreshold:e,...t})=>(({outputStream:e,queueLengthThreshold:t=1024})=>{const n=[]
2208const i=()=>{n.push("")
2209const e=n.join("\n")
2210n.length=0
2211return e}
2212const a=()=>{0!==n.length&&e.write(i())}
2213return{add:e=>{n.push(e)
2214n.length>t&&a()},save:a,end:()=>{0!==n.length&&e.write(i())
2215e.end()}}})({outputStream:(({pathOutputFile:e,flag:t="w",mode:n=438,onError:i=x})=>{let o=Object(a.openSync)(e,t,n)
2216let s=[]
2217let r=[]
2218const c=e=>e?i(e):s.length=0
2219const p=e=>o&&Object(a.write)(o,e,c)
2220return{write:e=>{if(e){r.push(e)
2221if(0===s.length){[s,r]=[r,[]]
2222process.nextTick(p,s.join(""))}}},end:()=>{const e=[...s,...r]
22230!==e.length&&Object(a.writeSync)(o,e.join(""))
2224Object(a.closeSync)(o)
2225o=null
2226r.length=s.length=0}}})(t),queueLengthThreshold:e})
2227const S=[{event:"exit",listener:e=>O({eventType:"exit",code:e})},{event:"uncaughtException",listener:e=>j({eventType:"uncaughtException",error:e})},{event:"unhandledRejection",listener:(e,t)=>j({eventType:"unhandledRejection",error:e,promise:t})},...["SIGINT","SIGHUP","SIGQUIT","SIGTERM"].map(e=>({event:e,listener:()=>j({eventType:"signal",signalEventType:e})}))]
2228const E=new Set
2229const C=new Set
2230const O=e=>{for(const t of Array.from(E))w(t,e)}
2231const j=async e=>{A()
2232for(const t of Array.from(C))await k(t,e)
2233O(e)
2234process.exit(e.code||(e.error?-1:0))}
2235let q=!1
2236const T=()=>{q=!0
2237S.forEach(({event:e,listener:t})=>process.on(e,t))}
2238const A=()=>{q=!1
2239S.forEach(({event:e,listener:t})=>process.removeListener(e,t))}
2240const N=(...e)=>{e.forEach(e=>E.add(e))
2241!q&&T()}
2242const B=()=>{}
2243const L=async({pathLogDirectory:e,prefixLogFile:t})=>{const n=(({add:e,...t})=>({...t,add:(...t)=>e((new Date).toISOString(),...t)}))(e?await(async({pathLogDirectory:e,prefixLogFile:t="",getLogFileName:n=(()=>`${t}${(new Date).toISOString().replace(/\W/g,"-")}.log`),saveInterval:a=3e5,splitInterval:o=864e5,...s})=>{let r
2244let c
2245let p
2246const l=()=>{f()
2247const t=Object(i.resolve)(e,n())
2248r=_({...s,pathOutputFile:t})
2249c=a&&setInterval(u,a)
2250p=o&&setTimeout(d,o)}
2251const u=()=>{r&&r.save()}
2252const d=()=>{r&&l()}
2253const f=()=>{r&&r.end()
2254c&&clearInterval(c)
2255p&&clearTimeout(p)
2256r=null
2257c=null
2258p=null}
2259await y(e)
2260l()
2261return{add:(...e)=>{r&&r.add(e.join(" "))},save:u,split:d,end:f}})({pathLogDirectory:e,prefixLogFile:t,flags:"a"}):{add:console.log,save:B,split:B,end:B});((...e)=>{e.forEach(e=>C.add(e))
2262!q&&T()})(e=>{n.add(`[EXITING] ${JSON.stringify(e)}`)})
2263N(e=>{n.add(`[EXIT] ${JSON.stringify(e)}`)
2264e.error&&n.add(`[EXIT][ERROR] ${e.error.stack||e.error}`)
2265n.end()})
2266return n}
2267var R=n(5)
2268var I=n(8)
2269var P=n(14)
2270const z=()=>"undefined"!=typeof window?window:"undefined"!=typeof global?global:void 0
2271const F=z()
2272Math.floor(.001*Date.now())
2273const $=(()=>{try{const e=F.performance.now
2274if(e()<=e())return e}catch(e){}try{const e=F.performance.now.bind(F.performance)
2275if(e()<=e())return e}catch(e){}try{const e=()=>{const[e,t]=F.process.hrtime()
2276return 1e3*e+1e-6*t}
2277if(e()<=e())return e}catch(e){}return Date.now})()
2278const[U,M]=F.requestAnimationFrame?[F.requestAnimationFrame,F.cancelAnimationFrame]:[e=>setTimeout(e,1e3/60),clearTimeout]
2279const D=(e,t=null,n=null)=>({value:e,prev:t,next:n})
2280const H=(e,t,n,i)=>({...D(t),key:e,size:n,expireAt:i})
2281const J=({valueSizeSumMax:e,valueSizeSingleMax:t=Math.max(.05*e,1)})=>{const{clear:n,subscribe:i,unsubscribe:a,send:o}=(()=>{let e=new Set
2282return{clear:()=>e.clear(),subscribe:t=>{e.add(t)},unsubscribe:t=>{e.delete(t)},send:t=>e.forEach(e=>e(t))}})()
2283const s=new Map
2284const r=(()=>{let e,t,n
2285const i=()=>{e=new Set
2286t=D(null)
2287n=D(null)
2288t.next=n
2289n.prev=t}
2290i()
2291const a=(t,n)=>{const{next:i}=n
2292n.next=i.prev=t
2293t.prev=n
2294t.next=i
2295e.add(t)}
2296const o=(t,n)=>{const{prev:i}=n
2297n.prev=i.next=t
2298t.prev=i
2299t.next=n
2300e.add(t)}
2301const s=t=>{const{prev:n,next:i}=t
2302n.next=i
2303i.prev=n
2304t.prev=t.next=null
2305e.delete(t)}
2306return{clear:i,getHead:()=>t,getTail:()=>n,getLength:()=>e.size,insertAfter:a,insertBefore:o,remove:s,removeBetween:(t,n)=>{const{prev:i}=t
2307const{next:a}=n
2308i.next=a
2309a.prev=i
2310t.prev=n.next=null
2311let o=t
2312for(;o;){e.delete(o)
2313o=o.next}},forEach:e=>{let i=t.next
2314let a=0
2315for(;i!==n;){e(i,a)
2316i=i.next
2317a++}},forEachReverse:i=>{let a=n.prev
2318let o=e.size-1
2319for(;a!==t;){i(a,o)
2320a=a.prev
2321o--}},reverse:()=>{let e=t.next
2322for(;e!==n;){const{prev:t,next:n}=e
2323e.prev=n
2324e.next=t
2325e=n}const{next:i}=t
2326const{prev:a}=n
2327t.next=a
2328n.prev=i
2329a.prev=t
2330i.next=n},setFirst:e=>{if(e===t.next)return
2331const{prev:n,next:i}=e
2332n.next=i
2333i.prev=n
2334e.prev=t
2335e.next=t.next
2336t.next=e},setLast:e=>{if(e===n.prev)return
2337const{prev:t,next:i}=e
2338t.next=i
2339i.prev=t
2340e.prev=n.prev
2341e.next=n
2342n.prev=e},push:e=>o(e,n),pop:()=>s(n.prev),unshift:e=>a(e,t),shift:()=>s(t.next)}})()
2343let c=0
2344const p=e=>{s.set(e.key,e)
2345r.unshift(e)
2346c+=e.size
2347o({type:"add",key:e.key,payload:e.value})}
2348const l=e=>{s.delete(e.key)
2349r.remove(e)
2350c-=e.size
2351o({type:"delete",key:e.key,payload:e.value})}
2352return{clearHub:n,subscribe:i,unsubscribe:a,getSize:()=>s.size,clear:()=>s.forEach(l),set:(n,i,a=1,o=Date.now()+6e4)=>{const u=s.get(n)
2353u&&l(u)
2354if(!(a>t)){for(;a+c>e;)l(r.getTail().prev)
2355p(H(n,i,a,o))}},get:(e,t=Date.now())=>{const n=s.get(e)
2356if(n){if(n.expireAt<=t)return l(n)
2357r.setFirst(n)
2358return n.value}},touch:(e,t=Date.now()+6e4)=>{const n=s.get(e)
2359if(n){n.expireAt=t
2360r.setFirst(n)
2361return n.value}},delete:e=>{const t=s.get(e)
2362t&&l(t)
2363return t&&t.value},packList:()=>{const e=[]
2364r.forEachReverse(({key:t,value:n,size:i,expireAt:a})=>e.push({key:t,value:n,size:i,expireAt:a}))
2365return e},parseList:(e,t=Date.now())=>e.forEach(({key:e,value:n,size:i,expireAt:a})=>{const o=H(e,n,i,a)
2366o.expireAt<=t?l(o):p(o)})}}
2367const V=Number.isInteger
2368const G=e=>"object"==typeof e&&null!==e&&!Array.isArray(e)
2369const W=Array.isArray
2370const Y=e=>{const t=typeof e
2371let n
2372if("function"===t)n="() => { ... }"
2373else try{n=JSON.stringify(e)}catch(e){n="{ ... }"}return`<${t}> ${n}`}
2374const K=e=>`${(100*e).toFixed(2)}%`
2375Math.pow(10,-12)
2376Math.pow(10,-9)
2377Math.pow(10,-6)
2378Math.pow(10,-3)
2379Math.pow(10,0)
2380Math.pow(10,3)
2381Math.pow(10,6)
2382Math.pow(10,9)
2383Math.pow(10,12)
2384Math.pow(10,15)
2385Math.pow(10,18)
2386const Z=e=>{const t=.75*Math.abs(e)
2387return t<1e3?`${Math.floor(e)}ms`:t<6e4?`${(e/1e3).toFixed(2)}s`:t<36e5?`${(e/6e4).toFixed(2)}m`:t<864e5?`${(e/36e5).toFixed(2)}h`:`${(e/864e5).toFixed(2)}d`}
2388const Q=Math.pow(2,10)
2389const X=Math.pow(2,20)
2390const ee=Math.pow(2,30)
2391const te=Math.pow(2,40)
2392const ne=e=>{const t=.75*Math.abs(e)
2393return t<Q?`${Math.floor(e)}`:t<X?`${(e/Q).toFixed(2)}Ki`:t<ee?`${(e/X).toFixed(2)}Mi`:t<te?`${(e/ee).toFixed(2)}Gi`:`${(e/te).toFixed(2)}Ti`}
2394const ie=(e,t=" ")=>`${t}${e.replace(/\n/g,`\n${t}`)}`
2395const ae=(e,t,n)=>{throw new Error(`[verify|${e}]${t?` ${t};`:""} ${n}`)}
2396const oe=(e,t)=>(n,i)=>t(n)||ae(e,i,`get: ${Y(n)}`)
2397const se=oe("String",e=>"string"==typeof e)
2398const re=oe("Number",e=>"number"==typeof e)
2399const ce=oe("Integer",V)
2400oe("BasicObject",G)
2401oe("Array",W)
2402const pe=(e,t,n)=>((e,t)=>W(e)&&e.length===t)(e,t)||ae("ArrayLength",n,`expect length: ${t}, get: ${e.length}`)
2403oe("Function",e=>"function"==typeof e)
2404var le=n(3)
2405const ue=e=>{if(e.response.finished)return e
2406const{error:t}=e.getState()
2407!e.response.headersSent&&e.response.writeHead(t?500:400)
2408e.response.end()}
2409const de=({url:e,method:t,headers:{host:n=""},socket:{remoteAddress:i,remotePort:a}})=>`[${t}] ${n}${e} (${i}:${a})`
2410const fe={protocol:"https:",hostname:"localhost",port:443,isSecure:!0,secureOptions:R.constants.SSL_OP_NO_SSLv3|R.constants.SSL_OP_NO_SSLv2}
2411const he={protocol:"http:",hostname:"localhost",port:80,isSecure:!1}
2412const me=new Set([fe.protocol,he.protocol])
2413const ve=ue
2414const ge=async({protocol:e="http:",hostname:t="localhost",port:n,fileSSLKey:i,fileSSLCert:a,fileSSLChain:o,fileSSLDHParam:s})=>{const r="https:"===e
2415return(({protocol:e,...t})=>{if(!me.has(e))throw new Error(`[createServer] invalid protocol: ${e}`);(t={..."https:"===e?fe:he,...t}).baseUrl=`${e}//${t.hostname}:${t.port}`
2416const n=t.isSecure?Object(P.createServer)(t):Object(I.createServer)()
2417t.isSecure&&(e=>{const t=J({valueSizeSumMax:4096})
2418e.on("newSession",(e,n,i)=>{t.set(e.toString("hex"),n,1,Date.now()+6e5)
2419i()})
2420e.on("resumeSession",(e,n)=>{n(null,t.get(e.toString("hex"))||null)})})(n)
2421return{server:n,option:t,start:()=>{!n.listening&&n.listen(t.port,t.hostname)},stop:()=>{n.listening&&n.close()}}})({protocol:e,hostname:t,port:n,key:r&&i?await c(i):null,cert:r&&a?await c(a):null,ca:r&&o?await c(o):null,dhparam:r&&s?await c(s):null})}
2422const ye={name:"",nameENV:"",nameJSON:"",shortName:"",aliasNameList:[],optional:!1,argumentCount:"0",argumentLengthMin:0,argumentLengthMax:0,argumentListNormalize:e=>e,argumentListVerify:e=>{},description:"",extendFormatList:[]}
2423const xe=/^(\d+)(-)?(\d+)?$/
2424const be=(e,t)=>{"function"!=typeof e&&(e=!!e&&we)
2425return t?(n,i,a)=>e&&e(n,i,a)||!i.has(t):e}
2426const we=()=>!0
2427const ke=(e,t,n)=>{e={...ye,...e}
2428!_e.test(e.name)&&Ee(`name '${e.name}'`,e,t,n)
2429e.shortName&&!Se.test(e.shortName)&&Ee(`shortName '${e.shortName}'`,e,t,n)
2430{const i=e.aliasNameList.findIndex(e=>!_e.test(e));-1!==i&&Ee(`aliasNameList #${i} '${e.aliasNameList[i]}'`,e,t,n)}{!xe.test(e.argumentCount)&&Ee(`argumentCount '${e.argumentCount}'`,e,t,n)
2431const[,i,,a]=xe.exec(e.argumentCount)
2432a&&parseInt(a)<parseInt(i)&&Ee(`argumentCount '${e.argumentCount}'`,e,t,n)}e.extendFormatList.length&&(e.extendFormatList=e.extendFormatList.map((t,n)=>ke(t,n,e)))
2433return e}
2434const _e=/^[A-Za-z][A-Za-z0-9-]*$/
2435const Se=/^[A-Za-z]$/
2436const Ee=(e,t,n,i)=>{throw new Error(`[Format] ${Re(t)} #${n}${i?` of ${Re(i)}`:""} | ${e}`)}
2437const Ce=(e,t)=>n=>{const i=[]
2438const a=()=>i[i.length-1].argumentList
2439for(let o=0,s=n.length;o<s;o++){const s=n[o]
2440if(Oe.test(s)){const[,t,,n]=Oe.exec(s)
2441const o=e.get(t)
2442!o&&qe(t)
2443i.push({format:o,argumentList:[]})
2444n&&a().push(n)}else if(je.test(s)){const[,e,,n]=je.exec(s)
2445e.split("").forEach(n=>{const a=t.get(n)
2446!a&&qe(n,`from '${e}'`)
2447i.push({format:a,argumentList:[]})})
2448n&&a().push(n)}else{!i.length&&qe(s,"no leading option found")
2449"--"===s?a().push(...n.slice(o)):a().push(s)}}return i}
2450const Oe=/^--([A-Za-z][A-Za-z0-9-]*)(=(.*))?$/
2451const je=/^-([A-Za-z]+)(=(.*))?$/
2452const qe=(e,t="invalid option")=>{throw new Error(`[ParseArgv] unexpected '${e}', ${t}`)}
2453const Te=e=>(t,n={})=>e(t).reduce((e,{format:t,argumentList:n})=>{e[t.name]?e[t.name].argumentList.push(...n):e[t.name]={format:t,argumentList:n,source:"CLI"}
2454return e},n)
2455const Ae=e=>(t,n={})=>{e.forEach((e,i)=>{let a=t[i]
2456if(a){try{a=JSON.parse(a)}catch(e){}n[e.name]={format:e,argumentList:Array.isArray(a)?a:[a],source:"ENV"}}})
2457return n}
2458const Ne=e=>(t,n={})=>{e.forEach((e,i)=>{const a=t[i]
2459a&&(n[e.name]={format:e,argumentList:Array.isArray(a)?a:[a],source:"JSON"})})
2460return n}
2461const Be=(e,t)=>(n,i)=>{const a=new Set
2462Object.entries(n).forEach(([e,t])=>{const{format:n,argumentList:o}=t
2463n.argumentLengthMin>o.length&&Le(`expected ${n.argumentLengthMin-o.length} more argument`,n)
2464n.argumentLengthMax<o.length&&Le(`expected ${o.length-n.argumentLengthMax} less argument`,n)
2465t.argumentList=n.argumentListNormalize(o,i)
2466n.argumentListVerify(t.argumentList,i)
2467a.add(n)})
2468e.forEach(e=>!a.has(e)&&Le("non-optional option",e))
2469t.forEach(({format:e,checkOptional:t})=>!t(n,a,e)&&!a.has(e)&&Le("non-optional option",e))
2470return n}
2471const Le=(e,t)=>{throw new Error(`[Process] ${Re(t)} | ${e}`)}
2472const Re=({name:e,shortName:t,aliasNameList:n})=>`${e}${n.length?`|${n.join("|")}`:""}${t?` [-${t}]`:""}`
2473const Ie=e=>Je(e,Pe)
2474const Pe=e=>Ve(Me(e,`--${e.name}${e.aliasNameList.length?` --${e.aliasNameList.join(" --")}`:""}`,e.shortName&&`-${e.shortName}`),e.description&&Ge(e.description,4),De(e.extendFormatList,Pe,2))
2475const ze=e=>Ve('"',Ge(`#!/usr/bin/env bash\n${Je(e,Fe)}`),'"')
2476const Fe=e=>Ve(`export ${e.nameENV}="${Me(e)}"`,De(e.extendFormatList,Fe,0))
2477const $e=e=>Ve("{",Ge(Je(e,Ue)),"}")
2478const Ue=e=>Ve(`"${e.nameJSON}": [ "${Me(e)}" ],`,De(e.extendFormatList,Ue,0))
2479const Me=({optional:e,argumentLengthMin:t,argumentLengthMax:n},...i)=>[...i,e&&(e===we?"[OPTIONAL]":"[OPTIONAL-CHECK]"),(t||n)&&`[ARGUMENT=${He(t,n)}]`].filter(Boolean).join(" ")
2480const De=(e,t,n)=>e.length&&Ge(Je(e,t),n)
2481const He=(e,t)=>`${e}${t===1/0?"+":t>e?`-${t}`:""}`
2482const Je=(e,t)=>Ve(...e.map(t))
2483const Ve=(...e)=>e.filter(Boolean).join("\n")
2484const Ge=(e,t=2)=>t?ie(e," ".repeat(t)):e
2485const We=e=>pe(e,1,"single argument expected")
2486const Ye=(e,t)=>n=>{We(n)
2487e(n[0],`single ${t} argument expected`)}
2488const Ke=(e,t)=>n=>{n.forEach((n,i)=>e(n,`${t} expected at #${i}`))}
2489const Ze=Ke(se,"String")
2490const Qe=Ke(re,"Number")
2491const Xe=Ke(ce,"Integer")
2492const et=e=>e.map(String)
2493const tt=e=>e.map(Number)
2494const nt=e=>e.map(parseInt)
2495const it=(e,t=(e=>e),n=(()=>{}),i="",a=!1)=>({argumentCount:e,argumentListNormalize:t,argumentListVerify:n,description:i,optional:a})
2496const at=(e,t)=>n=>{t(n)
2497return it(1,e,(e=>t=>{We(t);((e,t,n)=>((e,t)=>t.includes(e))(e,t)||ae("OneOf",n,`expect one of: [${t}], get: ${Y(e)}`))(t[0],e)})(n),`one of:\n ${((e,t)=>{const n=[]
2498for(let i=0,a=e.length;i<a;i+=t)n.push(e.slice(i,i+t))
2499return n})(n,4).map(e=>e.join(" ")).join("\n ")}`)}
2500const ot={SingleString:it(1,et,Ye(se,"String")),SingleNumber:it(1,tt,Ye(re,"Number")),SingleInteger:it(1,nt,Ye(ce,"Integer")),AllString:it("1-",et,Ze),AllNumber:it("1-",tt,Qe),AllInteger:it("1-",nt,Xe),OneOfString:at(et,Ze),OneOfNumber:at(tt,Qe),OneOfInteger:at(nt,Xe),BooleanFlag:it("0-",()=>[!0],void 0,"set to enable",!0),Any:it("0-",void 0,void 0,"optional",!0)}
2501const st={...ot,SinglePath:{...ot.SingleString,isPath:!0},AllPath:{...ot.AllString,isPath:!0},Config:{...ot.SingleString,description:"# from JSON: set to 'path/to/config.json'\n# from ENV: set to 'env'",optional:!0,name:"config",shortName:"c"}}
2502const rt=(e,t)=>{Object.values(e).forEach(({format:{isPath:e},argumentList:n})=>e&&n.forEach((e,a)=>n[a]=Object(i.resolve)(t,e)))
2503return e}
2504const{SingleString:ct,SingleInteger:pt,SinglePath:lt,BooleanFlag:ut}=st
2505const{SingleString:dt,SingleInteger:ft,BooleanFlag:ht,Config:mt}=st
2506const vt={prefixENV:"imock-socket",formatList:[mt,{...ht,name:"help",shortName:"h"},{...ht,name:"version",shortName:"v"},((e=[])=>({...ct,optional:!0,name:"hostname",shortName:"H",extendFormatList:[{...pt,name:"port",shortName:"P"},{...ut,name:"https",shortName:"S",extendFormatList:[{...lt,name:"file-SSL-key"},{...lt,name:"file-SSL-cert"},{...lt,name:"file-SSL-chain"},{...lt,name:"file-SSL-dhparam"}]},{...lt,optional:!0,name:"path-log",extendFormatList:[{...ct,optional:!0,name:"prefix-log-file"}]},{...lt,optional:!0,name:"file-pid",extendFormatList:[{...ut,name:"pid-ignore-exist"}]},...e]}))([{...ft,optional:!0,name:"port-admin-server"},{...dt,optional:!0,name:"socket-path"},{...dt,name:"url-server-socket-action"},{...ht,name:"cluster",shortName:"r",extendFormatList:[{...dt,optional:!0,name:"redis-host"},{...ft,optional:!0,name:"redis-port"}]}])]}
2507const{parseOption:gt,formatUsage:yt}=(e=>{const{parseCLI:t,parseENV:n,parseJSON:a,processOptionMap:o,formatUsage:s}=(({formatList:e,prefixENV:t="",prefixJSON:n=""})=>{const i=new Map
2508const a=new Map
2509const o=new Map
2510const s=new Map
2511const r=new Set
2512const c=new Set
2513const p=(e,l,u)=>{const{name:d,shortName:f,aliasNameList:h,argumentCount:m}=e
2514const[,v,g,y]=xe.exec(m.toString())
2515e.nameENV=(t?`${t}-${d}`:d).split("-").join("_").toUpperCase()
2516e.nameJSON=((e,t=1)=>e.reduce((e,n,i)=>i>=t?e+n[0].toUpperCase()+n.slice(1):e+n,""))((n?`${n}-${d}`:d).split("-"))
2517e.optional=be(e.optional,u)
2518e.argumentLengthMin=parseInt(v)
2519e.argumentLengthMax=g?y?parseInt(y):1/0:e.argumentLengthMin
2520i.has(d)&&Ee(`duplicate name '${d}'`,e,l,u)
2521i.set(d,e)
2522f&&a.has(f)&&Ee(`duplicate shortName '${f}'`,e,l,u)
2523f&&a.set(f,e)
2524{const t=h.find(e=>i.has(e))
2525t&&Ee(`duplicate aliasName '${t}'`,e,l,u)
2526h.forEach(t=>i.set(t,e))}o.set(e.nameENV,e)
2527s.set(e.nameJSON,e)
2528e.optional?e.optional!==we&&c.add({format:e,checkOptional:e.optional}):r.add(e)
2529e.extendFormatList.forEach((t,n)=>p(t,n,e))};(e=e.map((e,t)=>ke(e,t,null))).forEach((e,t)=>p(e,t,null))
2530return{parseCLI:Te(Ce(i,a)),parseENV:Ae(o),parseJSON:Ne(s),processOptionMap:Be(r,c),formatUsage:(t,n=!1)=>Ve(t&&`Message:\n${Ge(t.toString())}`,`CLI Usage:\n${Ge(Ie(e))}`,!n&&`ENV Usage:\n${Ge(ze(e))}`,!n&&`JSON Usage:\n${Ge($e(e))}`)}})(e)
2531return{parseOption:async()=>(e=>{const t=t=>e[t]?e[t].argumentList:void 0
2532const n=(e,n)=>{const i=t(e)
2533if(!i)throw new Error(`[getOption] expecting option ${e}`)
2534if(void 0!==n&&i.length!==n)throw new Error(`[getOption] expecting option ${e} has ${n} value instead of ${i.length}`)
2535return i}
2536return{optionMap:e,getOptionOptional:t,getOption:n,getSingleOptionOptional:t=>e[t]?e[t].argumentList[0]:void 0,getSingleOption:e=>n(e,1)[0]}})(await(async({parseCLI:e,parseENV:t,parseJSON:n,processOptionMap:a})=>{const o=rt(e(process.argv.slice(2)),process.cwd())
2537const s=o.config&&o.config.argumentList.length&&o.config.argumentList[0]
2538return a({...s?"env"===s?rt(t(process.env),process.cwd()):rt(n(JSON.parse(await c(s,"utf8"))),Object(i.dirname)(s)):null,...o})})({parseCLI:t,parseENV:n,parseJSON:a,processOptionMap:o})),formatUsage:s}})(vt)
2539var xt=n(53)
2540var bt=n.n(xt)
2541var wt=n(52)
2542var kt=n.n(wt)
2543var _t=n(9)
2544const St=e=>new Promise((t,n)=>{const i=[]
2545e.on("error",n)
2546e.on("data",e=>i.push(e))
2547e.on("end",()=>{e.removeListener("error",n)
2548t(Buffer.concat(i))})})
2549const Et=(e,t)=>new Promise((n,i)=>{e.on("error",i)
2550e.write(t,()=>{e.removeListener("error",i)
2551n()})})
2552const Ct=({protocol:e,hostname:t,hash:n,search:i,pathname:a,href:o,port:s,username:r,password:c})=>{const p={protocol:e,hostname:t,hash:n,search:i,pathname:a,href:o,path:`${a}${i}`}
2553""!==s&&(p.port=Number(s));(r||c)&&(p.auth=`${r}:${c}`)
2554return p}
2555const Ot=(e,t=null)=>new Promise((n,i)=>{const a=("https:"===e.protocol?P.request:I.request)(e,n)
2556const o=t=>{a.destroy()
2557t.option=e
2558i(t)}
2559a.on("timeout",()=>o(new Error("request timeout")))
2560a.on("error",o)
2561a.end(t)})
2562const jt=1e4
2563const qt=async(e,t={})=>{const{method:n,headers:i,body:a,timeout:o=jt}=t
2564const s={...Ct(new le.URL(e)),method:n,headers:{"accept-encoding":"gzip",...i},timeout:o}
2565const r=await Ot(s,a)
2566const c=r.headers
2567const p=r.statusCode
2568const l=p>=200&&p<300
2569let u=!1
2570let d
2571process.nextTick(()=>{if(!d){r.destroy()
2572u=!0}})
2573const f=async()=>{if(void 0===d){if(u)throw new Error("[fetch] data already dropped, should call receive data immediately")
2574d=St("gzip"===r.headers["content-encoding"]?r.pipe(Object(_t.createGunzip)()):r)}return d}
2575const h=()=>f().then(e=>e.toString())
2576return{headers:c,status:p,ok:l,buffer:f,text:h,json:()=>h().then(e=>JSON.parse(e))}}
2577const Tt="application/octet-stream"
2578const At=["application/javascript:js;mjs","application/json:json","application/pdf:pdf","application/xml:xml","audio/midi:mid;midi","audio/mpeg:mp3","audio/ogg:ogg","audio/wav:wav","audio/webm:weba","audio/x-flac:flac","font/ttf:ttf","font/woff:woff","font/woff2:woff2","image/bmp:bmp","image/gif:gif","image/jpeg:jpeg;jpg","image/png:png","image/svg+xml:svg","image/webp:webp","image/x-icon:ico","text/css:css","text/csv:csv","text/html:html;htm","text/plain:txt;text;conf;log;ini","text/rtf:rtf","text/xml:xml","video/mp4:mp4;mp4v;mpg4","video/mpeg:mpeg;mpg","video/webm:webm","video/x-flv:flv","video/x-ms-wmv:wmv","video/x-msvideo:avi"].reduce((e,t)=>{const[n,i]=t.split(":")
2579i.split(";").forEach(t=>e[t]=n)
2580return e},{})
2581const Nt=e=>({INFO:e.INFO,id:e.id,rooms:Object.keys(e.rooms)})
2582const Bt=e=>`USER:${Buffer.from(String(e)).toString("base64")}`
2583const Lt=e=>`PROJECT:${Buffer.from(String(e)).toString("base64")}`
2584const Rt=async(e,{type:t="",payload:n={},cookie:i=""})=>{try{const a=await qt(e,{method:"POST",headers:{cookie:i,"content-type":At.json},body:JSON.stringify({type:t,payload:n})})
2585if(!a.ok)return{response:a,responseText:"",error:new Error(`[postServerActionAsync] get unexpected status: ${a.status}`)}
2586return{response:a,responseText:await a.text(),error:null}}catch(e){return{response:null,responseText:"",error:e}}}
2587const It={serveClient:!1,transports:["websocket"],pingInterval:25e3,pingTimeout:5e3,upgradeTimeout:1e4,cookie:!1}
2588const Pt=({socketIoServerUser:e,urlServerSocketAction:t,logger:n})=>{const i=e.of("/")
2589i.use(async(e,i)=>{const{address:a,headers:{cookie:o=""},query:{userId:s=""}}=e.handshake
2590const r=String(s)
2591n.add("pre-connect",a,{cookie:o,userId:r})
2592const{response:c,responseText:p,error:l}=await Rt(t,{type:"verify:user",payload:{userId:r},cookie:o})
2593if(l)throw l
2594const u=o||(c.headers["set-cookie"]||[]).map(e=>e.split(";")[0]).join(";")
2595const d=Boolean(JSON.parse(p).isAllowRequest)
2596e.INFO={tag:r,userId:r,userAuthCookie:u,isAllowRequest:d,urlServerSocketAction:t}
2597return i()})
2598i.on("connect",e=>{const{tag:t}=e.INFO
2599zt({socket:e,tag:t,logger:n})
2600Ft({socket:e,...e.INFO,logger:n})})}
2601const zt=({socket:e,tag:t,logger:n})=>{e.on("disconnect",e=>{n.add("disconnect",t,e)})
2602e.on("error",e=>{n.add("error",t,e)})
2603e.on("request:close",()=>{n.add("request:close",t)
2604e.disconnect(!0)})}
2605const Ft=({socket:e,tag:t,userId:n,userAuthCookie:i,isAllowRequest:a,urlServerSocketAction:o,logger:s})=>{e.join(Bt(n))
2606e.on("join:projects",async({projectCidList:t=[]},a)=>{const{error:s}=await Rt(o,{type:"verify:user-project",payload:{userId:n,projectCidList:t},cookie:i})
2607if(!s){t.forEach(t=>e.join(Lt(t)))
2608a("done")}})
2609e.on("leave:projects",({projectCidList:t=[]},n)=>{t.forEach(t=>e.leave(Lt(t)))
2610n("done")})
2611a&&e.on("request:project:batch-save",async({batchSaveQueue:t=[],rootProjectCid:a="",fromUser:r={}},c)=>{if(String(r.id)!==String(n)){s.add(`[ERROR][request:project:batch-save] user mismatch, expect: ${n}, get: ${JSON.stringify(r)}`)
2612return c({responseText:"",error:`[Error] user mismatch, get: ${JSON.stringify(r)}`})}const{responseText:p,error:l}=await(async(e,t,n,i,a)=>{a.add(`[devBatchSavePatch] userId: ${t}, batchSaveQueue: ${i.length}`)
2613try{for(const{url:o,method:s,body:r}of i){const i=new le.URL(o,e).toString()
2614const{ok:c,status:p}=await qt(i,{method:s,headers:{cookie:n,accept:"*/*","content-type":At.json},body:r})
2615if(!c){a.add(`[ERROR][devBatchSavePatch] get unexpected status: ${p}, userId: ${t}, saveUrl: ${i}`)
2616return{responseText:"",error:new Error(`[devBatchSavePatch] get unexpected status: ${p}, saveUrl: ${i}`)}}}return{responseText:"",error:null}}catch(e){a.add(`[ERROR][devBatchSavePatch] error: ${e}, userId: ${t}`)
2617return{responseText:"",error:e}}})(o,n,i,t,s)
2618l&&s.add(`[ERROR][request:project:batch-save] ${l.toString()}`)
2619c({responseText:p,error:l&&l.toString()})
2620!l&&e.broadcast.to(Lt(a)).emit("broadcast:project:batch-save",{fromUserId:n,fromUser:r,rootProjectCid:a,batchSaveQueue:t})})}
2621n(51)
2622const $t=Object(o.promisify)(_t.gzip)
2623const Ut=(e,t,n,i)=>{t&&e.response.setHeader("etag",t)
2624const a=!t||!e.request.headers["if-none-match"]||!e.request.headers["if-none-match"].includes(t)
2625a?e.response.writeHead(200,{"content-type":n,"content-length":i}):e.response.writeHead(304,{"content-type":n})
2626return a}
2627const Mt=async(e,{buffer:t,bufferGzip:n,entityTag:i,type:a=Tt,length:o=t.length})=>{i&&e.response.setHeader("etag",i)
2628const s=!i||!e.request.headers["if-none-match"]||!e.request.headers["if-none-match"].includes(i)
2629const r=s&&o&&e.request.headers["accept-encoding"]&&e.request.headers["accept-encoding"].includes("gzip")
2630const c=r?n||await $t(t):t
2631s?e.response.writeHead(200,r?{"content-type":a,"content-length":c.length,"content-encoding":"gzip"}:{"content-type":a,"content-length":o}):e.response.writeHead(304,{"content-type":a})
2632return s&&o&&Et(e.response,c)}
2633const Dt=(e,{object:t,entityTag:n})=>((e,{buffer:t,entityTag:n,type:i=Tt,length:a=t.length})=>Ut(e,n,i,a)&&a&&Et(e.response,t))(e,{buffer:Buffer.from(JSON.stringify(t)),type:At.json,entityTag:n})
2634const Ht=(e,t)=>void 0===e[t]?e[t]={}:e[t]
2635const Jt=(e,t)=>{const n=[]
2636return{routeNode:e=t.split("/").reduce((e,i)=>{if("*"===i){n.push("/*")
2637return Ht(e,"/*")}if(":"===i[0]){const a=i.slice(1)
2638if(!a||n.includes(a))throw new Error(`[parseRouteToMap] invalid frag [${i}] for route: ${t}`)
2639n.push(a)
2640return Ht(e,"/:PARAM")}return Ht(e,i)},e),paramNameList:n}}
2641const Vt=(e,t)=>{const n=[]
2642const i=t.split("/")
2643for(let a=0,o=i.length;a<o;a++){const o=i[a]
2644if(e[o])e=e[o]
2645else{if(!e["/:PARAM"]){if(e["/*"]){n.push(i.slice(a).join("/"))
2646e=e["/*"]
2647break}throw new Error(`[findRouteFromMap] stuck at [${o}] for route: ${t}`)}n.push(o)
2648e=e["/:PARAM"]}}return{routeNode:e,paramValueList:n}}
2649const Gt={GET:"/GET",POST:"/POST",PUT:"/PUT",PATCH:"/PATCH",DELETE:"/DELETE",HEAD:"/HEAD",OPTIONS:"/OPTIONS",CONNECT:"/CONNECT",TRACE:"/TRACE"}
2650const Wt=(e,t="/",n="GET",i)=>{if(Array.isArray(t))return t.reduce((t,a)=>Wt(e,a,n,i),e)
2651if(Array.isArray(n))return n.reduce((n,a)=>Wt(e,t,a,i),e)
2652const{routeNode:a,paramNameList:o}=Jt(e,t)
2653if(!Gt[n])throw new Error(`[appendRouteMap] invalid method [${n}] for route: ${t}`)
2654if(a[Gt[n]])throw new Error(`[appendRouteMap] duplicate method [${n}] for route: ${t}`)
2655if("function"!=typeof i)throw new Error(`[appendRouteMap] invalid routeResponder for route: ${t}`)
2656a[Gt[n]]={route:t,paramNameList:o,routeResponder:i}
2657return e}
2658var Yt=n(4)
2659const Kt=()=>({platform:Object(Yt.platform)(),arch:Object(Yt.arch)(),release:Object(Yt.release)()})
2660const Zt=()=>Object(Yt.cpus)()||[{model:"N/A",speed:"N/A",times:{user:0,nice:0,sys:0,idle:0,irq:0}}]
2661const Qt=()=>({total:Object(Yt.totalmem)(),free:Object(Yt.freemem)()})
2662const Xt=()=>({hostname:Object(Yt.hostname)(),networkInterface:Object(Yt.networkInterfaces)()})
2663const en=()=>({uptime:1e3*Object(Yt.uptime)(),loadAverageList:Object(Yt.loadavg)()})
2664const tn=()=>({platform:Kt(),processor:Zt(),memory:Qt(),network:Xt(),activity:en()})
2665const nn=({platform:e,processor:t,memory:n,network:i,activity:a}=tn())=>Object.entries({platform:(({platform:e,arch:t,release:n}=Kt())=>`${e} ${t} [${n}]`)(e),processor:((e=Zt())=>e.map(({model:e,speed:t,times:n})=>`[${e}] speed:${t}MHz ${Object.entries(n).map(([e,t])=>`${e}:${Z(t)}`).join(" ")}`).join("\n"))(t),memory:(({total:e,free:t}=Qt())=>[`Used: ${K((e-t)/e)}`,`Total: ${ne(e)}B`,`Free: ${ne(t)}B`].join("\n"))(n),network:(({hostname:e,networkInterface:t}=Xt())=>[`[hostname] ${e}`,"[interface]",...Object.entries(t).reduce((e,[t,n])=>{e.push(` ${t}`)
2666return e.concat(n.map(({address:e,netmask:t,mac:n,internal:i,family:a,cidr:o})=>` - [${a}${i?"|INTERNAL":""}] ${o||e} (${n})`))},[])].join("\n"))(i),activity:(({uptime:e,loadAverageList:t}=en())=>[`[uptime] ${Z(e)}`,"win32"!==Object(Yt.platform)()&&`[load average] ${t.map(K).join(", ")} (1min, 5min, 15min)`].filter(Boolean).join("\n"))(a)}).map(([e,t])=>`[${e}]\n${ie(t)}`).join("\n")
2667const an=e=>({isTTY:Boolean(process[e].isTTY)})
2668const on=(e,t,n)=>t.reduce((e,t)=>e.to(n(t)),e)
2669const sn=e=>async t=>{await e(JSON.parse(await St(t.request)))
2670return((e,{statusCode:t=500,headerMap:n})=>{if(e.response.finished)return e
2671!e.response.headersSent&&e.response.writeHead(t,n)
2672e.response.end()})(t,{statusCode:200})}
2673const rn=({socketIoServerUser:e},{server:t,option:n,logger:i})=>{const a=e.of("/")
2674const o=(e=>t=>{const{time:n,error:i}=t.getState()
2675e(de(t.request),"|",i?"[ERROR]":"[END]",Z($()-n),t.response.statusCode,i?i.stack||i:"")})(i.add)
2676const s=(e=>e.reduce((e,[t,n,i])=>Wt(e,t,n,i),{}))([["/emit-to-users","POST",sn(({userIdList:e=[],eventName:t,eventData:n})=>on(a,e,Bt).emit(t,n))],["/emit-to-projects","POST",sn(({projectCidList:e=[],eventName:t,eventData:n})=>on(a,e,Lt).emit(t,n))],["/system-status","GET",async e=>{const t={...tn(),...(()=>({title:process.title,pid:process.pid,ppid:process.ppid,uid:b(process,"getuid"),gid:b(process,"getgid"),groups:b(process,"getgroups")||[],euid:b(process,"geteuid"),egid:b(process,"getegid"),stdio:{stdin:an("stdin"),stdout:an("stdout"),stderr:an("stderr")},isConnectedIPC:Boolean(process.connected),execPath:process.execPath,execArgv:process.execArgv,argv:process.argv,cwd:process.cwd(),uptime:1e3*process.uptime(),cpuUsage:process.cpuUsage(),memoryUsage:process.memoryUsage()}))()}
2677i.add("[system-status]",t)
2678return Dt(e,{object:t})}],["/system-status-lite","GET",async e=>{const t=nn()
2679i.add("[system-status-lite]",t)
2680return Mt(e,{buffer:Buffer.from(t),type:At.text})}],[["/","/socket-status"],"GET",async e=>{const t=(e=>Object.entries(e.connected).reduce((e,[t,n])=>{e[t]=Nt(n)
2681return e},{}))(a)
2682i.add("[socket-status]",t)
2683return Dt(e,{object:t})}]].filter(Boolean))
2684t.on("request",(({responderList:e=[],responderEnd:t=ve,responderError:n=((e,t)=>e.setState({error:t}))})=>async(i,a)=>{const o=(e=>({getState:()=>e,setState:t=>e={...e,...t}}))({time:$(),error:null})
2685o.request=i
2686o.response=a
2687try{for(const t of e)await t(o)}catch(e){await n(o,e)}await t(o)})({responderList:[(({baseUrl:e="",baseUrlObject:t=new le.URL(e)})=>e=>{const{url:n,method:i}=e.request
2688e.setState({url:new le.URL(n,t),method:i})})(n),(e=>t=>{e(de(t.request),"|",t.request.headers["user-agent"]||"no-user-agent")})(i.add),e=>e.response.setHeader("access-control-allow-origin","*"),(e=>t=>{const{url:n,method:i}=t.getState()
2689if(!n||!i)throw new Error(`[responderRouter] missing state: ${JSON.stringify({url:n,method:i})}`)
2690if(!Gt[i])throw new Error(`[responderRouter] invalid method [${i}] from route: ${n.pathname}`)
2691const{routeNode:a,paramValueList:o}=Vt(e,n.pathname)
2692if(!a[Gt[i]])throw new Error(`[responderRouter] invalid method [${i}] for route: ${n.pathname}`)
2693const{route:s,paramNameList:r,routeResponder:c}=a[Gt[i]]
2694const p=r.reduce((e,t,n)=>{e[t]=o[n]
2695return e},{})
2696return c(t,t.setState({route:s,paramMap:p}))})(s)],responderEnd:e=>{ue(e)
2697o(e)}}))}
2698var cn=n(26)
2699const pn=async({getOptionOptional:e,getSingleOption:t,getSingleOptionOptional:n})=>{await(async({filePid:e,shouldIgnoreExistPid:t=!1})=>{if(e){!t&&w(()=>{const t=Object(a.readFileSync)(e,{encoding:"utf8"})
2700if(t){console.warn(`[FilePid] get existing pid: ${t}, exit process...`)
2701return process.exit(-1)}})
2702await y(Object(i.dirname)(e))
2703await p(e,`${process.pid}`)
2704N(t=>{w(a.unlinkSync,e)})}})({filePid:n("file-pid"),shouldIgnoreExistPid:e("pid-ignore-exist")})
2705const o=await L({pathLogDirectory:n("path-log"),prefixLogFile:n("log-file-prefix")})
2706const s=n("socket-path")
2707const r=n("port-admin-server")
2708const c={protocol:e("https")?"https:":"http:",hostname:t("hostname"),fileSSLKey:n("file-SSL-key"),fileSSLCert:n("file-SSL-cert"),fileSSLChain:n("file-SSL-chain"),fileSSLDHParam:n("file-SSL-dhparam")}
2709const{server:l,start:u,option:d}=await ge({...c,port:t("port")})
2710const{socketIoServerUser:f}=(({requestAdminActionAsync:e,socketPath:t="/S",urlServerSocketAction:n,isRedisEnabled:i=!1,redisHost:a="localhost",redisPort:o=6379},{server:s,option:r,logger:c})=>{const p=new bt.a(s,{...It,path:t,adapter:i?kt()({host:a,port:o}):void 0})
2711Pt({socketIoServerUser:p,urlServerSocketAction:n,logger:c})
2712c.add(["[createSocketIoServer]",`socket-path: ${t}`,`url-server-socket-action: ${n}`,`${i?`with redis at: ${a}:${o}`:"without redis"}`].join("\n - "))
2713return{socketIoServerUser:p}})({socketPath:s,urlServerSocketAction:t("url-server-socket-action"),isRedisEnabled:Boolean(e("cluster")),redisHost:n("redis-host"),redisPort:n("redis-port")},{server:l,option:d,logger:o})
2714if(r){const{server:e,start:t,option:n}=await ge({...c,port:r})
2715rn({socketIoServerUser:f},{server:e,option:n,logger:o})
2716t()
2717o.add(`[ADMIN SERVER UP] ${n.baseUrl}`)}u()
2718o.add(`[USER SERVER UP] ${d.baseUrl}`)};(async()=>{const e=await gt()
2719e.getSingleOptionOptional("port")?await pn(e).catch(e=>{console.warn("[Error]",e.stack||e)
2720process.exit(2)}):e.getSingleOptionOptional("version")?console.log(JSON.stringify({packageName:cn.a,packageVersion:cn.b},null," ")):console.log(yt())})().catch(e=>{console.warn(yt(e.stack||e,"simple"))
2721process.exit(1)})},function(e,t,n){var i=n(45)
2722var a=n(1);(t=e.exports=n(27)).init=function(e){e.inspectOpts={}
2723var n=Object.keys(t.inspectOpts)
2724for(var i=0;i<n.length;i++)e.inspectOpts[n[i]]=t.inspectOpts[n[i]]}
2725t.log=function(){return s.write(a.format.apply(a,arguments)+"\n")}
2726t.formatArgs=function(e){var n=this.namespace
2727if(this.useColors){var i=this.color
2728var a=" [3"+i+";1m"+n+" "
2729e[0]=a+e[0].split("\n").join("\n"+a)
2730e.push("[3"+i+"m+"+t.humanize(this.diff)+"")}else e[0]=(new Date).toUTCString()+" "+n+" "+e[0]}
2731t.save=function(e){null==e?delete process.env.DEBUG:process.env.DEBUG=e}
2732t.load=r
2733t.useColors=function(){return"colors"in t.inspectOpts?Boolean(t.inspectOpts.colors):i.isatty(o)}
2734t.colors=[6,2,3,4,5,1]
2735t.inspectOpts=Object.keys(process.env).filter(function(e){return/^debug_/i.test(e)}).reduce(function(e,t){var n=t.substring(6).toLowerCase().replace(/_([a-z])/g,function(e,t){return t.toUpperCase()})
2736var i=process.env[t]
2737i=!!/^(yes|on|true|enabled)$/i.test(i)||!/^(no|off|false|disabled)$/i.test(i)&&("null"===i?null:Number(i))
2738e[n]=i
2739return e},{})
2740var o=parseInt(process.env.DEBUG_FD,10)||2
27411!==o&&2!==o&&a.deprecate(function(){},"except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")()
2742var s=1===o?process.stdout:2===o?process.stderr:function(e){var t
2743switch(process.binding("tty_wrap").guessHandleType(e)){case"TTY":(t=new i.WriteStream(e))._type="tty"
2744t._handle&&t._handle.unref&&t._handle.unref()
2745break
2746case"FILE":var a=n(0);(t=new a.SyncWriteStream(e,{autoClose:!1}))._type="fs"
2747break
2748case"PIPE":case"TCP":var o=n(33);(t=new o.Socket({fd:e,readable:!1,writable:!0})).readable=!1
2749t.read=null
2750t._type="pipe"
2751t._handle&&t._handle.unref&&t._handle.unref()
2752break
2753default:throw new Error("Implement me. Unknown stream file type!")}t.fd=e
2754t._isStdio=!0
2755return t}(o)
2756t.formatters.o=function(e){this.inspectOpts.colors=this.useColors
2757return a.inspect(e,this.inspectOpts).split("\n").map(function(e){return e.trim()}).join(" ")}
2758t.formatters.O=function(e){this.inspectOpts.colors=this.useColors
2759return a.inspect(e,this.inspectOpts)}
2760function r(){return process.env.DEBUG}t.enable(r())},function(e,t,n){(t=e.exports=n(27)).log=function(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}
2761t.formatArgs=function(e){var n=this.useColors
2762e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff)
2763if(!n)return
2764var i="color: "+this.color
2765e.splice(1,0,i,"color: inherit")
2766var a=0
2767var o=0
2768e[0].replace(/%[a-zA-Z%]/g,function(e){"%%"!==e&&"%c"===e&&(o=++a)})
2769e.splice(o,0,i)}
2770t.save=function(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(e){}}
2771t.load=i
2772t.useColors=function(){if("undefined"!=typeof window&&window.process&&"renderer"===window.process.type)return!0
2773return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}
2774t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}()
2775t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"]
2776t.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}
2777function i(){var e
2778try{e=t.storage.debug}catch(e){}!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG)
2779return e}t.enable(i())},function(e,t,n){"undefined"!=typeof process&&"renderer"===process.type?e.exports=n(57):e.exports=n(56)},function(e,t,n){"use strict"
2780function i(e){this.offset=0
2781this.buffer=e}i.prototype.array=function(e){var t=new Array(e)
2782for(var n=0;n<e;n++)t[n]=this.parse()
2783return t}
2784i.prototype.map=function(e){var t={}
2785for(var n=0;n<e;n++)t[this.parse()]=this.parse()
2786return t}
2787i.prototype.str=function(e){var t=this.buffer.toString("utf8",this.offset,this.offset+e)
2788this.offset+=e
2789return t}
2790i.prototype.bin=function(e){var t=this.buffer.slice(this.offset,this.offset+e)
2791this.offset+=e
2792return t}
2793i.prototype.arraybuffer=function(e){var t=new ArrayBuffer(e)
2794var n=new Uint8Array(t)
2795for(var i=0;i<e;i++)n[i]=this.buffer[this.offset+i]
2796this.offset+=e
2797return t}
2798i.prototype.parse=function(){var e=this.buffer[this.offset++]
2799var t,n=0,i=0,a=0,o=0
2800if(e<192)return e<128?e:e<144?this.map(15&e):e<160?this.array(15&e):this.str(31&e)
2801if(e>223)return-1*(255-e+1)
2802switch(e){case 192:return null
2803case 194:return!1
2804case 195:return!0
2805case 196:n=this.buffer.readUInt8(this.offset)
2806this.offset+=1
2807return this.bin(n)
2808case 197:n=this.buffer.readUInt16BE(this.offset)
2809this.offset+=2
2810return this.bin(n)
2811case 198:n=this.buffer.readUInt32BE(this.offset)
2812this.offset+=4
2813return this.bin(n)
2814case 199:n=this.buffer.readUInt8(this.offset)
2815i=this.buffer.readInt8(this.offset+1)
2816this.offset+=2
2817return 0===i?this.arraybuffer(n):[i,this.bin(n)]
2818case 200:n=this.buffer.readUInt16BE(this.offset)
2819i=this.buffer.readInt8(this.offset+2)
2820this.offset+=3
2821return 0===i?this.arraybuffer(n):[i,this.bin(n)]
2822case 201:n=this.buffer.readUInt32BE(this.offset)
2823i=this.buffer.readInt8(this.offset+4)
2824this.offset+=5
2825return 0===i?this.arraybuffer(n):[i,this.bin(n)]
2826case 202:t=this.buffer.readFloatBE(this.offset)
2827this.offset+=4
2828return t
2829case 203:t=this.buffer.readDoubleBE(this.offset)
2830this.offset+=8
2831return t
2832case 204:t=this.buffer.readUInt8(this.offset)
2833this.offset+=1
2834return t
2835case 205:t=this.buffer.readUInt16BE(this.offset)
2836this.offset+=2
2837return t
2838case 206:t=this.buffer.readUInt32BE(this.offset)
2839this.offset+=4
2840return t
2841case 207:a=this.buffer.readUInt32BE(this.offset)*Math.pow(2,32)
2842o=this.buffer.readUInt32BE(this.offset+4)
2843this.offset+=8
2844return a+o
2845case 208:t=this.buffer.readInt8(this.offset)
2846this.offset+=1
2847return t
2848case 209:t=this.buffer.readInt16BE(this.offset)
2849this.offset+=2
2850return t
2851case 210:t=this.buffer.readInt32BE(this.offset)
2852this.offset+=4
2853return t
2854case 211:a=this.buffer.readInt32BE(this.offset)*Math.pow(2,32)
2855o=this.buffer.readUInt32BE(this.offset+4)
2856this.offset+=8
2857return a+o
2858case 212:i=this.buffer.readInt8(this.offset)
2859this.offset+=1
2860if(0===i){this.offset+=1
2861return}return[i,this.bin(1)]
2862case 213:i=this.buffer.readInt8(this.offset)
2863this.offset+=1
2864return[i,this.bin(2)]
2865case 214:i=this.buffer.readInt8(this.offset)
2866this.offset+=1
2867return[i,this.bin(4)]
2868case 215:i=this.buffer.readInt8(this.offset)
2869this.offset+=1
2870if(0===i){a=this.buffer.readInt32BE(this.offset)*Math.pow(2,32)
2871o=this.buffer.readUInt32BE(this.offset+4)
2872this.offset+=8
2873return new Date(a+o)}return[i,this.bin(8)]
2874case 216:i=this.buffer.readInt8(this.offset)
2875this.offset+=1
2876return[i,this.bin(16)]
2877case 217:n=this.buffer.readUInt8(this.offset)
2878this.offset+=1
2879return this.str(n)
2880case 218:n=this.buffer.readUInt16BE(this.offset)
2881this.offset+=2
2882return this.str(n)
2883case 219:n=this.buffer.readUInt32BE(this.offset)
2884this.offset+=4
2885return this.str(n)
2886case 220:n=this.buffer.readUInt16BE(this.offset)
2887this.offset+=2
2888return this.array(n)
2889case 221:n=this.buffer.readUInt32BE(this.offset)
2890this.offset+=4
2891return this.array(n)
2892case 222:n=this.buffer.readUInt16BE(this.offset)
2893this.offset+=2
2894return this.map(n)
2895case 223:n=this.buffer.readUInt32BE(this.offset)
2896this.offset+=4
2897return this.map(n)}throw new Error("Could not parse")}
2898e.exports=function(e){var t=new i(e)
2899var n=t.parse()
2900if(t.offset!==e.length)throw new Error(e.length-t.offset+" trailing bytes")
2901return n}},function(e,t,n){"use strict"
2902var i=32
2903function a(e,t,n){var i=0
2904for(var a=0,o=n.length;a<o;a++)if((i=n.charCodeAt(a))<128)e[t++]=i
2905else if(i<2048){e[t++]=192|i>>6
2906e[t++]=128|63&i}else if(i<55296||i>=57344){e[t++]=224|i>>12
2907e[t++]=128|i>>6&63
2908e[t++]=128|63&i}else{a++
2909i=65536+((1023&i)<<10|1023&n.charCodeAt(a))
2910e[t++]=240|i>>18
2911e[t++]=128|i>>12&63
2912e[t++]=128|i>>6&63
2913e[t++]=128|63&i}}e.exports=function(e){var t=[]
2914var n=[]
2915var o=function e(t,n,a){var o=typeof a,s=0,r=0,c=0,p=0,l=0,u=0
2916if("string"===o){if((l=a.length>i?Buffer.byteLength(a):function(e){var t=0,n=0
2917for(var i=0,a=e.length;i<a;i++)if((t=e.charCodeAt(i))<128)n+=1
2918else if(t<2048)n+=2
2919else if(t<55296||t>=57344)n+=3
2920else{i++
2921n+=4}return n}(a))<32){t.push(160|l)
2922u=1}else if(l<256){t.push(217,l)
2923u=2}else if(l<65536){t.push(218,l>>8,l)
2924u=3}else{if(!(l<4294967296))throw new Error("String too long")
2925t.push(219,l>>24,l>>16,l>>8,l)
2926u=5}n.push({str:a,length:l,offset:t.length})
2927return u+l}if("number"===o){if(Math.floor(a)!==a||!isFinite(a)){t.push(203)
2928n.push({float:a,length:8,offset:t.length})
2929return 9}if(a>=0){if(a<128){t.push(a)
2930return 1}if(a<256){t.push(204,a)
2931return 2}if(a<65536){t.push(205,a>>8,a)
2932return 3}if(a<4294967296){t.push(206,a>>24,a>>16,a>>8,a)
2933return 5}c=a/Math.pow(2,32)>>0
2934p=a>>>0
2935t.push(207,c>>24,c>>16,c>>8,c,p>>24,p>>16,p>>8,p)
2936return 9}if(a>=-32){t.push(a)
2937return 1}if(a>=-128){t.push(208,a)
2938return 2}if(a>=-32768){t.push(209,a>>8,a)
2939return 3}if(a>=-2147483648){t.push(210,a>>24,a>>16,a>>8,a)
2940return 5}c=Math.floor(a/Math.pow(2,32))
2941p=a>>>0
2942t.push(211,c>>24,c>>16,c>>8,c,p>>24,p>>16,p>>8,p)
2943return 9}if("object"===o){if(null===a){t.push(192)
2944return 1}if(Array.isArray(a)){if((l=a.length)<16){t.push(144|l)
2945u=1}else if(l<65536){t.push(220,l>>8,l)
2946u=3}else{if(!(l<4294967296))throw new Error("Array too large")
2947t.push(221,l>>24,l>>16,l>>8,l)
2948u=5}for(s=0;s<l;s++)u+=e(t,n,a[s])
2949return u}if(a instanceof Date){var d=a.getTime()
2950c=Math.floor(d/Math.pow(2,32))
2951p=d>>>0
2952t.push(215,0,c>>24,c>>16,c>>8,c,p>>24,p>>16,p>>8,p)
2953return 10}if(a instanceof Buffer){if((l=a.length)<256){t.push(196,l)
2954u=2}else if(l<65536){t.push(197,l>>8,l)
2955u=3}else{if(!(l<4294967296))throw new Error("Buffer too large")
2956t.push(198,l>>24,l>>16,l>>8,l)
2957u=5}n.push({bin:a,length:l,offset:t.length})
2958return u+l}if(a instanceof ArrayBuffer||ArrayBuffer.isView(a)){var f=a.buffer||a
2959if((l=f.byteLength)<256){t.push(199,l,0)
2960u=3}else if(l<65536){t.push(200,l>>8,l,0)
2961u=4}else{if(!(l<4294967296))throw new Error("ArrayBuffer too large")
2962t.push(201,l>>24,l>>16,l>>8,l,0)
2963u=6}n.push({arraybuffer:f,length:l,offset:t.length})
2964return u+l}if("function"==typeof a.toJSON)return e(t,n,a.toJSON())
2965var h=[],m=""
2966var v=Object.keys(a)
2967for(s=0,r=v.length;s<r;s++)"function"!=typeof a[m=v[s]]&&h.push(m)
2968if((l=h.length)<16){t.push(128|l)
2969u=1}else if(l<65536){t.push(222,l>>8,l)
2970u=3}else{if(!(l<4294967296))throw new Error("Object too large")
2971t.push(223,l>>24,l>>16,l>>8,l)
2972u=5}for(s=0;s<l;s++){u+=e(t,n,m=h[s])
2973u+=e(t,n,a[m])}return u}if("boolean"===o){t.push(a?195:194)
2974return 1}if("undefined"===o){t.push(212,0,0)
2975return 3}throw new Error("Could not encode")}(t,n,e)
2976var s=new Buffer(o)
2977var r=0
2978var c=0
2979var p=-1
2980n.length>0&&(p=n[0].offset)
2981var l,u=0,d=0
2982for(var f=0,h=t.length;f<h;f++){s[c+f]=t[f]
2983if(f+1===p){u=(l=n[r]).length
2984d=c+p
2985if(l.bin)if(u>i)l.bin.copy(s,d,0,u)
2986else{var m=l.bin
2987for(var v=0;v<u;v++)s[d+v]=m[v]}else if(l.str)u>i?s.write(l.str,d,u,"utf8"):a(s,d,l.str)
2988else if(void 0!==l.float)s.writeDoubleBE(l.float,d)
2989else if(l.arraybuffer){var g=new Uint8Array(l.arraybuffer)
2990for(var y=0;y<u;y++)s[d+y]=g[y]}c+=u
2991n[++r]&&(p=n[r].offset)}}return s}},function(e,t,n){t.encode=n(60)
2992t.decode=n(59)},function(e,t,n){"use strict"
2993var i=n(28)
2994var a=n(20)
2995var o=n(13).RedisClient
2996var s=n(11)
2997var r=function(){try{Object.defineProperty(function(){},"name",{value:"foobar"})
2998return!0}catch(e){return!1}}()
2999var c=function(e){var t=e.replace(/(?:^([0-9])|[^a-zA-Z0-9_$])/g,"_$1")
3000if(!o.prototype[e]){o.prototype[e.toUpperCase()]=o.prototype[e]=function(){var t
3001var n=arguments.length
3002var i
3003var a=0
3004if(Array.isArray(arguments[0])){t=arguments[0]
30052===n&&(i=arguments[1])}else if(n>1&&Array.isArray(arguments[1])){3===n&&(i=arguments[2])
3006n=arguments[1].length;(t=new Array(n+1))[0]=arguments[0]
3007for(;a<n;a+=1)t[a+1]=arguments[1][a]}else{0===n||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(i=arguments[--n])
3008t=new Array(n)
3009for(;a<n;a+=1)t[a]=arguments[a]}return this.internal_send_command(new s(e,t,i))}
3010t!==e&&(o.prototype[t.toUpperCase()]=o.prototype[t]=o.prototype[e])
3011r&&Object.defineProperty(o.prototype[e],"name",{value:t})}if(!a.prototype[e]){a.prototype[e.toUpperCase()]=a.prototype[e]=function(){var t
3012var n=arguments.length
3013var i
3014var a=0
3015if(Array.isArray(arguments[0])){t=arguments[0]
30162===n&&(i=arguments[1])}else if(n>1&&Array.isArray(arguments[1])){3===n&&(i=arguments[2])
3017n=arguments[1].length;(t=new Array(n+1))[0]=arguments[0]
3018for(;a<n;a+=1)t[a+1]=arguments[1][a]}else{0===n||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(i=arguments[--n])
3019t=new Array(n)
3020for(;a<n;a+=1)t[a]=arguments[a]}this.queue.push(new s(e,t,i))
3021return this}
3022t!==e&&(a.prototype[t.toUpperCase()]=a.prototype[t]=a.prototype[e])
3023r&&Object.defineProperty(a.prototype[e],"name",{value:t})}}
3024i.list.forEach(c)
3025e.exports=c},function(e,t,n){"use strict"
3026var i=n(12)
3027var a=n(21)
3028var o=n(13).RedisClient
3029var s=n(11)
3030var r=function(){}
3031o.prototype.send_command=o.prototype.sendCommand=function(e,t,n){if("string"!=typeof e)throw new TypeError('Wrong input type "'+(null!==e&&void 0!==e?e.constructor.name:e)+'" for command name')
3032e=e.toLowerCase()
3033if(!Array.isArray(t))if(void 0===t||null===t)t=[]
3034else{if("function"!=typeof t||void 0!==n)throw new TypeError('Wrong input type "'+t.constructor.name+'" for args')
3035n=t
3036t=[]}if("function"!=typeof n&&void 0!==n)throw new TypeError('Wrong input type "'+(null!==n?n.constructor.name:"null")+'" for callback function')
3037if("multi"===e||"function"!=typeof this[e])return this.internal_send_command(new s(e,t,n))
3038"function"==typeof n&&(t=t.concat([n]))
3039return this[e].apply(this,t)}
3040o.prototype.end=function(e){e?this.flush_and_error({message:"Connection forcefully ended and command aborted.",code:"NR_CLOSED"}):0===arguments.length&&this.warn("Using .end() without the flush parameter is deprecated and throws from v.3.0.0 on.\nPlease check the doku (https://github.com/NodeRedis/node_redis) and explictly use flush.")
3041if(this.retry_timer){clearTimeout(this.retry_timer)
3042this.retry_timer=null}this.stream.removeAllListeners()
3043this.stream.on("error",r)
3044this.connected=!1
3045this.ready=!1
3046this.closing=!0
3047return this.stream.destroySoon()}
3048o.prototype.unref=function(){if(this.connected){a("Unref'ing the socket connection")
3049this.stream.unref()}else{a("Not connected yet, will unref later")
3050this.once("connect",function(){this.unref()})}}
3051o.prototype.duplicate=function(e,t){if("function"==typeof e){t=e
3052e=null}var n=i.clone(this.options)
3053e=i.clone(e)
3054for(var a in e)n[a]=e[a]
3055var s=new o(n)
3056s.selected_db=this.selected_db
3057if("function"!=typeof t)return s
3058var r=function(e){t(e)
3059s.end(!0)}
3060s.once("ready",function(){t(null,s)
3061s.removeAllListeners(r)})
3062s.once("error",r)}},function(e,t,n){"use strict"
3063var i=n(12)
3064var a=n(21)
3065var o=n(20)
3066var s=n(11)
3067var r=/no password is set/
3068var c=/LOADING/
3069var p=n(13).RedisClient
3070p.prototype.multi=p.prototype.MULTI=function(e){var t=new o(this,e)
3071t.exec=t.EXEC=t.exec_transaction
3072return t}
3073p.prototype.batch=p.prototype.BATCH=function(e){return new o(this,e)}
3074function l(e,t,n){return function(a,o){null===a&&(e.selected_db=t)
3075i.callback_or_emit(e,n,a,o)}}p.prototype.select=p.prototype.SELECT=function(e,t){return this.internal_send_command(new s("select",[e],l(this,e,t)))}
3076o.prototype.select=o.prototype.SELECT=function(e,t){this.queue.push(new s("select",[e],l(this._client,e,t)))
3077return this}
3078p.prototype.monitor=p.prototype.MONITOR=function(e){var t=this
3079return this.internal_send_command(new s("monitor",[],e,function(){t.monitoring=!0}))}
3080o.prototype.monitor=o.prototype.MONITOR=function(e){if(this.exec!==this.exec_transaction){var t=this
3081this.queue.push(new s("monitor",[],e,function(){t._client.monitoring=!0}))
3082return this}this.monitoring=!0
3083return this}
3084function u(e,t){return function(n,a){if(n&&"NR_CLOSED"===n.code){n=null
3085a="OK"}i.callback_or_emit(e,t,n,a)
3086e.stream.writable&&e.stream.destroy()}}p.prototype.QUIT=p.prototype.quit=function(e){var t=this.internal_send_command(new s("quit",[],u(this,e)))
3087this.closing=!0
3088this.ready=!1
3089return t}
3090o.prototype.QUIT=o.prototype.quit=function(e){var t=this._client
3091this.queue.push(new s("quit",[],u(t,e),function(){t.closing=!0
3092t.ready=!1}))
3093return this}
3094function d(e,t){return function(n,a){if(a){var o={}
3095var s=a.toString().split("\r\n")
3096var r,c,p
3097for(var l=0;l<s.length;l++)if((c=s[l].split(":"))[1])if(0===c[0].indexOf("db")){p=c[1].split(",")
3098o[c[0]]={}
3099for(;r=p.pop();){r=r.split("=")
3100o[c[0]][r[0]]=+r[1]}}else o[c[0]]=c[1]
3101o.versions=[]
3102o.redis_version&&o.redis_version.split(".").forEach(function(e){o.versions.push(+e)})
3103e.server_info=o}else e.server_info={}
3104i.callback_or_emit(e,t,n,a)}}p.prototype.info=p.prototype.INFO=function(e,t){var n=[]
3105"function"==typeof e?t=e:void 0!==e&&(n=Array.isArray(e)?e:[e])
3106return this.internal_send_command(new s("info",n,d(this,t)))}
3107o.prototype.info=o.prototype.INFO=function(e,t){var n=[]
3108"function"==typeof e?t=e:void 0!==e&&(n=Array.isArray(e)?e:[e])
3109this.queue.push(new s("info",n,d(this._client,t)))
3110return this}
3111function f(e,t,n){return function(o,s){if(o)if(r.test(o.message)){e.warn("Warning: Redis server does not require a password, but a password was supplied.")
3112o=null
3113s="OK"}else if(c.test(o.message)){a("Redis still loading, trying to authenticate later")
3114setTimeout(function(){e.auth(t,n)},100)
3115return}i.callback_or_emit(e,n,o,s)}}p.prototype.auth=p.prototype.AUTH=function(e,t){a("Sending auth to "+this.address+" id "+this.connection_id)
3116this.auth_pass=e
3117var n=this.ready
3118this.ready=n||0===this.offline_queue.length
3119var i=this.internal_send_command(new s("auth",[e],f(this,e,t)))
3120this.ready=n
3121return i}
3122o.prototype.auth=o.prototype.AUTH=function(e,t){a("Sending auth to "+this.address+" id "+this.connection_id)
3123this.auth_pass=e
3124this.queue.push(new s("auth",[e],f(this._client,t)))
3125return this}
3126p.prototype.client=p.prototype.CLIENT=function(){var e,t,n=arguments.length,i=0
3127if(Array.isArray(arguments[0])){e=arguments[0]
3128t=arguments[1]}else if(Array.isArray(arguments[1])){3===n&&(t=arguments[2])
3129n=arguments[1].length;(e=new Array(n+1))[0]=arguments[0]
3130for(;i<n;i+=1)e[i+1]=arguments[1][i]}else{0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n])
3131e=new Array(n)
3132for(;i<n;i+=1)e[i]=arguments[i]}var a=this
3133var o=void 0
3134if(2===e.length&&"REPLY"===e[0].toString().toUpperCase()){var r=e[1].toString().toUpperCase()
3135"ON"!==r&&"OFF"!==r&&"SKIP"!==r||(o=function(){a.reply=r})}return this.internal_send_command(new s("client",e,t,o))}
3136o.prototype.client=o.prototype.CLIENT=function(){var e,t,n=arguments.length,i=0
3137if(Array.isArray(arguments[0])){e=arguments[0]
3138t=arguments[1]}else if(Array.isArray(arguments[1])){3===n&&(t=arguments[2])
3139n=arguments[1].length;(e=new Array(n+1))[0]=arguments[0]
3140for(;i<n;i+=1)e[i+1]=arguments[1][i]}else{0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n])
3141e=new Array(n)
3142for(;i<n;i+=1)e[i]=arguments[i]}var a=this._client
3143var o=void 0
3144if(2===e.length&&"REPLY"===e[0].toString().toUpperCase()){var r=e[1].toString().toUpperCase()
3145"ON"!==r&&"OFF"!==r&&"SKIP"!==r||(o=function(){a.reply=r})}this.queue.push(new s("client",e,t,o))
3146return this}
3147p.prototype.hmset=p.prototype.HMSET=function(){var e,t,n=arguments.length,i=0
3148if(Array.isArray(arguments[0])){e=arguments[0]
3149t=arguments[1]}else if(Array.isArray(arguments[1])){3===n&&(t=arguments[2])
3150n=arguments[1].length;(e=new Array(n+1))[0]=arguments[0]
3151for(;i<n;i+=1)e[i+1]=arguments[1][i]}else if("object"!=typeof arguments[1]||2!==arguments.length&&(3!==arguments.length||"function"!=typeof arguments[2]&&void 0!==arguments[2])){0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n])
3152e=new Array(n)
3153for(;i<n;i+=1)e[i]=arguments[i]}else{e=[arguments[0]]
3154for(var a in arguments[1])e.push(a,arguments[1][a])
3155t=arguments[2]}return this.internal_send_command(new s("hmset",e,t))}
3156o.prototype.hmset=o.prototype.HMSET=function(){var e,t,n=arguments.length,i=0
3157if(Array.isArray(arguments[0])){e=arguments[0]
3158t=arguments[1]}else if(Array.isArray(arguments[1])){3===n&&(t=arguments[2])
3159n=arguments[1].length;(e=new Array(n+1))[0]=arguments[0]
3160for(;i<n;i+=1)e[i+1]=arguments[1][i]}else if("object"!=typeof arguments[1]||2!==arguments.length&&(3!==arguments.length||"function"!=typeof arguments[2]&&void 0!==arguments[2])){0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n])
3161e=new Array(n)
3162for(;i<n;i+=1)e[i]=arguments[i]}else{e=[arguments[0]]
3163for(var a in arguments[1])e.push(a,arguments[1][a])
3164t=arguments[2]}this.queue.push(new s("hmset",e,t))
3165return this}
3166p.prototype.subscribe=p.prototype.SUBSCRIBE=function(){var e,t,n=arguments.length,i=0
3167if(Array.isArray(arguments[0])){e=arguments[0].slice(0)
3168t=arguments[1]}else{0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n])
3169e=new Array(n)
3170for(;i<n;i+=1)e[i]=arguments[i]}var a=this
3171return this.internal_send_command(new s("subscribe",e,t,function(){a.pub_sub_mode=a.pub_sub_mode||a.command_queue.length+1}))}
3172o.prototype.subscribe=o.prototype.SUBSCRIBE=function(){var e,t,n=arguments.length,i=0
3173if(Array.isArray(arguments[0])){e=arguments[0].slice(0)
3174t=arguments[1]}else{0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n])
3175e=new Array(n)
3176for(;i<n;i+=1)e[i]=arguments[i]}var a=this._client
3177this.queue.push(new s("subscribe",e,t,function(){a.pub_sub_mode=a.pub_sub_mode||a.command_queue.length+1}))
3178return this}
3179p.prototype.unsubscribe=p.prototype.UNSUBSCRIBE=function(){var e,t,n=arguments.length,i=0
3180if(Array.isArray(arguments[0])){e=arguments[0].slice(0)
3181t=arguments[1]}else{0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n])
3182e=new Array(n)
3183for(;i<n;i+=1)e[i]=arguments[i]}var a=this
3184return this.internal_send_command(new s("unsubscribe",e,t,function(){a.pub_sub_mode=a.pub_sub_mode||a.command_queue.length+1}))}
3185o.prototype.unsubscribe=o.prototype.UNSUBSCRIBE=function(){var e,t,n=arguments.length,i=0
3186if(Array.isArray(arguments[0])){e=arguments[0].slice(0)
3187t=arguments[1]}else{0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n])
3188e=new Array(n)
3189for(;i<n;i+=1)e[i]=arguments[i]}var a=this._client
3190this.queue.push(new s("unsubscribe",e,t,function(){a.pub_sub_mode=a.pub_sub_mode||a.command_queue.length+1}))
3191return this}
3192p.prototype.psubscribe=p.prototype.PSUBSCRIBE=function(){var e,t,n=arguments.length,i=0
3193if(Array.isArray(arguments[0])){e=arguments[0].slice(0)
3194t=arguments[1]}else{0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n])
3195e=new Array(n)
3196for(;i<n;i+=1)e[i]=arguments[i]}var a=this
3197return this.internal_send_command(new s("psubscribe",e,t,function(){a.pub_sub_mode=a.pub_sub_mode||a.command_queue.length+1}))}
3198o.prototype.psubscribe=o.prototype.PSUBSCRIBE=function(){var e,t,n=arguments.length,i=0
3199if(Array.isArray(arguments[0])){e=arguments[0].slice(0)
3200t=arguments[1]}else{0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n])
3201e=new Array(n)
3202for(;i<n;i+=1)e[i]=arguments[i]}var a=this._client
3203this.queue.push(new s("psubscribe",e,t,function(){a.pub_sub_mode=a.pub_sub_mode||a.command_queue.length+1}))
3204return this}
3205p.prototype.punsubscribe=p.prototype.PUNSUBSCRIBE=function(){var e,t,n=arguments.length,i=0
3206if(Array.isArray(arguments[0])){e=arguments[0].slice(0)
3207t=arguments[1]}else{0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n])
3208e=new Array(n)
3209for(;i<n;i+=1)e[i]=arguments[i]}var a=this
3210return this.internal_send_command(new s("punsubscribe",e,t,function(){a.pub_sub_mode=a.pub_sub_mode||a.command_queue.length+1}))}
3211o.prototype.punsubscribe=o.prototype.PUNSUBSCRIBE=function(){var e,t,n=arguments.length,i=0
3212if(Array.isArray(arguments[0])){e=arguments[0].slice(0)
3213t=arguments[1]}else{0===(n=arguments.length)||"function"!=typeof arguments[n-1]&&void 0!==arguments[n-1]||(t=arguments[--n])
3214e=new Array(n)
3215for(;i<n;i+=1)e[i]=arguments[i]}var a=this._client
3216this.queue.push(new s("punsubscribe",e,t,function(){a.pub_sub_mode=a.pub_sub_mode||a.command_queue.length+1}))
3217return this}},function(e,t,n){"use strict"
3218var i=n(12)
3219var a=n(3)
3220e.exports=function(e,t,n){if("number"==typeof e||"string"==typeof e&&/^\d+$/.test(e)){var o
3221if("string"==typeof t)o=t
3222else{if(n&&t)throw new TypeError("Unknown type of connection in createClient()")
3223n=n||t}(n=i.clone(n)).host=o||n.host
3224n.port=e}else if("string"==typeof e||e&&e.url){n=i.clone(e.url?e:t||n)
3225var s=e.url||e
3226var r=a.parse(s,!0,!0)
3227if(r.slashes){r.auth&&(n.password=r.auth.split(":")[1])
3228r.protocol&&"redis:"!==r.protocol&&console.warn('node_redis: WARNING: You passed "'+r.protocol.substring(0,r.protocol.length-1)+'" as protocol instead of the "redis" protocol!')
3229r.pathname&&"/"!==r.pathname&&(n.db=r.pathname.substr(1))
3230r.hostname&&(n.host=r.hostname)
3231r.port&&(n.port=r.port)
3232if(""!==r.search){var c
3233for(c in r.query){if(c in n){if(n[c]!==r.query[c])throw new RangeError("The "+c+" option is added twice and does not match")
3234console.warn("node_redis: WARNING: You passed the "+c+" option twice!")}n[c]=r.query[c]}}}else{if(r.hostname)throw new RangeError('The redis url must begin with slashes "//" or contain slashes after the redis protocol')
3235n.path=s}}else if("object"==typeof e||void 0===e){(n=i.clone(e||n)).host=n.host||t
3236if(e&&1!==arguments.length)throw new TypeError("To many arguments passed to createClient. Please only pass the options object")}if(!n)throw new TypeError("Unknown type of connection in createClient()")
3237return n}},function(e){e.exports={append:{arity:3,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},asking:{arity:1,flags:["fast"],keyStart:0,keyStop:0,step:0},auth:{arity:2,flags:["noscript","loading","stale","fast"],keyStart:0,keyStop:0,step:0},bgrewriteaof:{arity:1,flags:["admin"],keyStart:0,keyStop:0,step:0},bgsave:{arity:-1,flags:["admin"],keyStart:0,keyStop:0,step:0},bitcount:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},bitfield:{arity:-2,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},bitop:{arity:-4,flags:["write","denyoom"],keyStart:2,keyStop:-1,step:1},bitpos:{arity:-3,flags:["readonly"],keyStart:1,keyStop:1,step:1},blpop:{arity:-3,flags:["write","noscript"],keyStart:1,keyStop:-2,step:1},brpop:{arity:-3,flags:["write","noscript"],keyStart:1,keyStop:-2,step:1},brpoplpush:{arity:4,flags:["write","denyoom","noscript"],keyStart:1,keyStop:2,step:1},client:{arity:-2,flags:["admin","noscript"],keyStart:0,keyStop:0,step:0},cluster:{arity:-2,flags:["admin"],keyStart:0,keyStop:0,step:0},command:{arity:1,flags:["loading","stale"],keyStart:0,keyStop:0,step:0},config:{arity:-2,flags:["admin","loading","stale"],keyStart:0,keyStop:0,step:0},dbsize:{arity:1,flags:["readonly","fast"],keyStart:0,keyStop:0,step:0},debug:{arity:-1,flags:["admin","noscript"],keyStart:0,keyStop:0,step:0},decr:{arity:2,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},decrby:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},del:{arity:-2,flags:["write"],keyStart:1,keyStop:-1,step:1},discard:{arity:1,flags:["noscript","fast"],keyStart:0,keyStop:0,step:0},dump:{arity:2,flags:["readonly"],keyStart:1,keyStop:1,step:1},echo:{arity:2,flags:["fast"],keyStart:0,keyStop:0,step:0},eval:{arity:-3,flags:["noscript","movablekeys"],keyStart:0,keyStop:0,step:0},evalsha:{arity:-3,flags:["noscript","movablekeys"],keyStart:0,keyStop:0,step:0},exec:{arity:1,flags:["noscript","skip_monitor"],keyStart:0,keyStop:0,step:0},exists:{arity:-2,flags:["readonly","fast"],keyStart:1,keyStop:-1,step:1},expire:{arity:3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},expireat:{arity:3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},flushall:{arity:-1,flags:["write"],keyStart:0,keyStop:0,step:0},flushdb:{arity:-1,flags:["write"],keyStart:0,keyStop:0,step:0},geoadd:{arity:-5,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},geodist:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},geohash:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},geopos:{arity:-2,flags:["readonly"],keyStart:1,keyStop:1,step:1},georadius:{arity:-6,flags:["write","movablekeys"],keyStart:1,keyStop:1,step:1},georadius_ro:{arity:-6,flags:["readonly","movablekeys"],keyStart:1,keyStop:1,step:1},georadiusbymember:{arity:-5,flags:["write","movablekeys"],keyStart:1,keyStop:1,step:1},georadiusbymember_ro:{arity:-5,flags:["readonly","movablekeys"],keyStart:1,keyStop:1,step:1},get:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},getbit:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},getrange:{arity:4,flags:["readonly"],keyStart:1,keyStop:1,step:1},getset:{arity:3,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},hdel:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},hexists:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hget:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hgetall:{arity:2,flags:["readonly"],keyStart:1,keyStop:1,step:1},hincrby:{arity:4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hincrbyfloat:{arity:4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hkeys:{arity:2,flags:["readonly","sort_for_script"],keyStart:1,keyStop:1,step:1},hlen:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hmget:{arity:-3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hmset:{arity:-4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},"host:":{arity:-1,flags:["loading","stale"],keyStart:0,keyStop:0,step:0},hscan:{arity:-3,flags:["readonly","random"],keyStart:1,keyStop:1,step:1},hset:{arity:-4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hsetnx:{arity:4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},hstrlen:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},hvals:{arity:2,flags:["readonly","sort_for_script"],keyStart:1,keyStop:1,step:1},incr:{arity:2,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},incrby:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},incrbyfloat:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},info:{arity:-1,flags:["loading","stale"],keyStart:0,keyStop:0,step:0},keys:{arity:2,flags:["readonly","sort_for_script"],keyStart:0,keyStop:0,step:0},lastsave:{arity:1,flags:["random","fast"],keyStart:0,keyStop:0,step:0},latency:{arity:-2,flags:["admin","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},lindex:{arity:3,flags:["readonly"],keyStart:1,keyStop:1,step:1},linsert:{arity:5,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},llen:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},lpop:{arity:2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},lpush:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},lpushx:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},lrange:{arity:4,flags:["readonly"],keyStart:1,keyStop:1,step:1},lrem:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},lset:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},ltrim:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},memory:{arity:-2,flags:["readonly"],keyStart:0,keyStop:0,step:0},mget:{arity:-2,flags:["readonly","fast"],keyStart:1,keyStop:-1,step:1},migrate:{arity:-6,flags:["write","movablekeys"],keyStart:0,keyStop:0,step:0},module:{arity:-2,flags:["admin","noscript"],keyStart:0,keyStop:0,step:0},monitor:{arity:1,flags:["admin","noscript"],keyStart:0,keyStop:0,step:0},move:{arity:3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},mset:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:2},msetnx:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:2},multi:{arity:1,flags:["noscript","fast"],keyStart:0,keyStop:0,step:0},object:{arity:-2,flags:["readonly"],keyStart:2,keyStop:2,step:2},persist:{arity:2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},pexpire:{arity:3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},pexpireat:{arity:3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},pfadd:{arity:-2,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},pfcount:{arity:-2,flags:["readonly"],keyStart:1,keyStop:-1,step:1},pfdebug:{arity:-3,flags:["write"],keyStart:0,keyStop:0,step:0},pfmerge:{arity:-2,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:1},pfselftest:{arity:1,flags:["admin"],keyStart:0,keyStop:0,step:0},ping:{arity:-1,flags:["stale","fast"],keyStart:0,keyStop:0,step:0},post:{arity:-1,flags:["loading","stale"],keyStart:0,keyStop:0,step:0},psetex:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},psubscribe:{arity:-2,flags:["pubsub","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},psync:{arity:3,flags:["readonly","admin","noscript"],keyStart:0,keyStop:0,step:0},pttl:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},publish:{arity:3,flags:["pubsub","loading","stale","fast"],keyStart:0,keyStop:0,step:0},pubsub:{arity:-2,flags:["pubsub","random","loading","stale"],keyStart:0,keyStop:0,step:0},punsubscribe:{arity:-1,flags:["pubsub","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},quit:{arity:1,flags:["loading","stale","readonly"],keyStart:0,keyStop:0,step:0},randomkey:{arity:1,flags:["readonly","random"],keyStart:0,keyStop:0,step:0},readonly:{arity:1,flags:["fast"],keyStart:0,keyStop:0,step:0},readwrite:{arity:1,flags:["fast"],keyStart:0,keyStop:0,step:0},rename:{arity:3,flags:["write"],keyStart:1,keyStop:2,step:1},renamenx:{arity:3,flags:["write","fast"],keyStart:1,keyStop:2,step:1},replconf:{arity:-1,flags:["admin","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},restore:{arity:-4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},"restore-asking":{arity:-4,flags:["write","denyoom","asking"],keyStart:1,keyStop:1,step:1},role:{arity:1,flags:["noscript","loading","stale"],keyStart:0,keyStop:0,step:0},rpop:{arity:2,flags:["write","fast"],keyStart:1,keyStop:1,step:1},rpoplpush:{arity:3,flags:["write","denyoom"],keyStart:1,keyStop:2,step:1},rpush:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},rpushx:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},sadd:{arity:-3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},save:{arity:1,flags:["admin","noscript"],keyStart:0,keyStop:0,step:0},scan:{arity:-2,flags:["readonly","random"],keyStart:0,keyStop:0,step:0},scard:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},script:{arity:-2,flags:["noscript"],keyStart:0,keyStop:0,step:0},sdiff:{arity:-2,flags:["readonly","sort_for_script"],keyStart:1,keyStop:-1,step:1},sdiffstore:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:1},select:{arity:2,flags:["loading","fast"],keyStart:0,keyStop:0,step:0},set:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},setbit:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},setex:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},setnx:{arity:3,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},setrange:{arity:4,flags:["write","denyoom"],keyStart:1,keyStop:1,step:1},shutdown:{arity:-1,flags:["admin","loading","stale"],keyStart:0,keyStop:0,step:0},sinter:{arity:-2,flags:["readonly","sort_for_script"],keyStart:1,keyStop:-1,step:1},sinterstore:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:1},sismember:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},slaveof:{arity:3,flags:["admin","noscript","stale"],keyStart:0,keyStop:0,step:0},slowlog:{arity:-2,flags:["admin"],keyStart:0,keyStop:0,step:0},smembers:{arity:2,flags:["readonly","sort_for_script"],keyStart:1,keyStop:1,step:1},smove:{arity:4,flags:["write","fast"],keyStart:1,keyStop:2,step:1},sort:{arity:-2,flags:["write","denyoom","movablekeys"],keyStart:1,keyStop:1,step:1},spop:{arity:-2,flags:["write","random","fast"],keyStart:1,keyStop:1,step:1},srandmember:{arity:-2,flags:["readonly","random"],keyStart:1,keyStop:1,step:1},srem:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},sscan:{arity:-3,flags:["readonly","random"],keyStart:1,keyStop:1,step:1},strlen:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},subscribe:{arity:-2,flags:["pubsub","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},substr:{arity:4,flags:["readonly"],keyStart:1,keyStop:1,step:1},sunion:{arity:-2,flags:["readonly","sort_for_script"],keyStart:1,keyStop:-1,step:1},sunionstore:{arity:-3,flags:["write","denyoom"],keyStart:1,keyStop:-1,step:1},swapdb:{arity:3,flags:["write","fast"],keyStart:0,keyStop:0,step:0},sync:{arity:1,flags:["readonly","admin","noscript"],keyStart:0,keyStop:0,step:0},time:{arity:1,flags:["random","fast"],keyStart:0,keyStop:0,step:0},touch:{arity:-2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},ttl:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},type:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},unlink:{arity:-2,flags:["write","fast"],keyStart:1,keyStop:-1,step:1},unsubscribe:{arity:-1,flags:["pubsub","noscript","loading","stale"],keyStart:0,keyStop:0,step:0},unwatch:{arity:1,flags:["noscript","fast"],keyStart:0,keyStop:0,step:0},wait:{arity:3,flags:["noscript"],keyStart:0,keyStop:0,step:0},watch:{arity:-2,flags:["noscript","fast"],keyStart:1,keyStop:-1,step:1},zadd:{arity:-4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},zcard:{arity:2,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zcount:{arity:4,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zincrby:{arity:4,flags:["write","denyoom","fast"],keyStart:1,keyStop:1,step:1},zinterstore:{arity:-4,flags:["write","denyoom","movablekeys"],keyStart:0,keyStop:0,step:0},zlexcount:{arity:4,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zrange:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrangebylex:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrangebyscore:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrank:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zrem:{arity:-3,flags:["write","fast"],keyStart:1,keyStop:1,step:1},zremrangebylex:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},zremrangebyrank:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},zremrangebyscore:{arity:4,flags:["write"],keyStart:1,keyStop:1,step:1},zrevrange:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrevrangebylex:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrevrangebyscore:{arity:-4,flags:["readonly"],keyStart:1,keyStop:1,step:1},zrevrank:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zscan:{arity:-3,flags:["readonly","random"],keyStart:1,keyStop:1,step:1},zscore:{arity:3,flags:["readonly","fast"],keyStart:1,keyStop:1,step:1},zunionstore:{arity:-4,flags:["write","denyoom","movablekeys"],keyStart:0,keyStop:0,step:0}}},function(e,t){e.exports=hiredis},function(e,t,n){"use strict"
3238var i=n(67)
3239var a=n(22)
3240var o=n(29)
3241function s(e,t){try{return e.reader.get()}catch(n){e.reader=new i.Reader(e.options)
3242e.returnFatalError(new o(n.message,JSON.stringify(t),-1))}}function r(e){this.returnError=e.returnError
3243this.returnFatalError=e.returnFatalError||e.returnError
3244this.returnReply=e.returnReply
3245this.name="hiredis"
3246this.options={return_buffers:!!e.returnBuffers}
3247this.reader=new i.Reader(this.options)}r.prototype.execute=function(e){this.reader.feed(e)
3248var t=s(this,e)
3249for(;void 0!==t;){t&&"Error"===t.name?this.returnError(new a(t.message)):this.returnReply(t)
3250t=s(this,e)}}
3251r.prototype.reset=function(){this.reader=new i.Reader(this.options)}
3252e.exports=r},function(e,t){e.exports=require("string_decoder")},function(e,t,n){"use strict"
3253var i=new(0,n(69).StringDecoder)
3254var a=n(22)
3255var o=n(29)
3256var s=d(32768)
3257var r=0
3258var c=null
3259var p=0
3260var l=0
3261var u="function"==typeof Buffer.allocUnsafe
3262function d(e){return u?Buffer.allocUnsafe(e):new Buffer(e)}function f(e){var t=e.offset
3263var n=e.buffer.length-1
3264var i=0
3265var a=1
3266if(45===e.buffer[t]){a=-1
3267t++}for(;t<n;){var o=e.buffer[t++]
3268if(13===o){e.offset=t+1
3269return a*i}i=10*i+(o-48)}}function h(e,t,n){e.offset=n+2
3270return!0===e.optionReturnBuffers?e.buffer.slice(t,n):e.buffer.toString("utf-8",t,n)}function m(e){var t=e.offset
3271var n=t
3272var i=e.buffer
3273var a=i.length-1
3274for(;n<a;)if(13===i[n++])return h(e,t,n-1)}function v(e){var t=f(e)
3275if(void 0!==t)return t}function g(e,t,n){e.arrayCache.push(t)
3276e.arrayPos.push(n)}function y(e){var t=e.arrayCache.pop()
3277var n=e.arrayPos.pop()
3278if(e.arrayCache.length){var i=y(e)
3279if(!i){g(e,t,n)
3280return}t[n++]=i}return x(e,t,n)}function x(e,t,n){var i=e.buffer.length
3281for(;n<t.length;){var a=e.offset
3282if(e.offset>=i){g(e,t,n)
3283return}var o=b(e,e.buffer[e.offset++])
3284if(void 0===o){e.arrayCache.length||(e.offset=a)
3285g(e,t,n)
3286return}t[n]=o
3287n++}return t}function b(e,t){switch(t){case 36:return function(e){var t=v(e)
3288if(void 0!==t){if(-1===t)return null
3289var n=e.offset+t
3290if(!(n+2>e.buffer.length))return h(e,e.offset,n)
3291e.bigStrSize=n+2
3292e.bigOffset=e.offset
3293e.totalChunkSize=e.buffer.length
3294e.bufferCache.push(e.buffer)}}(e)
3295case 58:return function(e){return e.optionStringNumbers?function(e){var t=e.offset
3296var n=e.buffer.length-1
3297var i=0
3298var a=""
3299if(45===e.buffer[t]){a+="-"
3300t++}for(;t<n;){var o=e.buffer[t++]
3301if(13===o){e.offset=t+1
33020!==i&&(a+=i)
3303return a}if(i>429496728){a+=10*i+(o-48)
3304i=0}else 48===o&&0===i?a+=0:i=10*i+(o-48)}}(e):f(e)}(e)
3305case 43:return m(e)
3306case 42:return function(e){var t=v(e)
3307if(void 0!==t)return-1===t?null:x(e,new Array(t),0)}(e)
3308case 45:return function(e){var t=m(e)
3309if(void 0!==t){!0===e.optionReturnBuffers&&(t=t.toString())
3310return new a(t)}}(e)
3311default:return function(e,t){e.buffer=null
3312e.returnFatalError(t)}(e,new o("Protocol error, got "+JSON.stringify(String.fromCharCode(t))+" as reply type byte",JSON.stringify(e.buffer),e.offset))}}var w={returnError:"function",returnFatalError:"function",returnReply:"function",returnBuffers:"boolean",stringNumbers:"boolean",name:"string"}
3313function k(e){if(!(this instanceof k))return new k(e)
3314if(!e||!e.returnError||!e.returnReply)throw new TypeError("Please provide all return functions while initiating the parser")
3315for(var t in e)if(w.hasOwnProperty(t)&&typeof e[t]!==w[t])throw new TypeError('The options argument contains the property "'+t+'" that is either unknown or of a wrong type')
3316if("hiredis"===e.name)try{var i=n(68)
3317console.error(new TypeError("Using hiredis is discouraged. Please use the faster JS parser by removing the name option.").stack.replace("Error","Warning"))
3318return new i(e)}catch(e){console.error(new TypeError("Hiredis is not installed. Please remove the `name` option. The (faster) JS parser is used instead.").stack.replace("Error","Warning"))}this.optionReturnBuffers=!!e.returnBuffers
3319this.optionStringNumbers=!!e.stringNumbers
3320this.returnError=e.returnError
3321this.returnFatalError=e.returnFatalError||e.returnError
3322this.returnReply=e.returnReply
3323this.name="javascript"
3324this.reset()}k.prototype.reset=function(){this.offset=0
3325this.buffer=null
3326this.bigStrSize=0
3327this.bigOffset=0
3328this.totalChunkSize=0
3329this.bufferCache=[]
3330this.arrayCache=[]
3331this.arrayPos=[]}
3332k.prototype.setReturnBuffers=function(e){if("boolean"!=typeof e)throw new TypeError("The returnBuffers argument has to be a boolean")
3333this.optionReturnBuffers=e}
3334k.prototype.setStringNumbers=function(e){if("boolean"!=typeof e)throw new TypeError("The stringNumbers argument has to be a boolean")
3335this.optionStringNumbers=e}
3336function _(){if(s.length>51200)if(1===p||l>2*p){var e=Math.floor(s.length/10)
3337r<=e?r=0:r-=e
3338s=s.slice(e,s.length)}else{l++
3339p--}else{clearInterval(c)
3340p=0
3341l=0
3342c=null}}function S(e){var t=e.bufferCache
3343var n=t.length
3344var i=e.bigStrSize-e.bigOffset-2
3345var a=e.bigStrSize-e.totalChunkSize
3346e.offset=a
3347if(a<=2){if(2===n)return t[0].slice(e.bigOffset,t[0].length+a-2)
3348n--
3349a=t[t.length-2].length+a}!function(e){if(s.length<e+r){r>116391936&&(r=52428800)
3350s=d(e*(e>78643200?2:3)+r)
3351r=0
3352p++
3353null===c&&(c=setInterval(_,50))}}(i)
3354var o=r
3355t[0].copy(s,o,e.bigOffset,t[0].length)
3356r+=t[0].length-e.bigOffset
3357for(var l=1;l<n-1;l++){t[l].copy(s,r)
3358r+=t[l].length}t[l].copy(s,r,0,a-2)
3359r+=a-2
3360return s.slice(o,r)}k.prototype.execute=function(e){if(null===this.buffer){this.buffer=e
3361this.offset=0}else if(0===this.bigStrSize){var t=this.buffer.length
3362var n=t-this.offset
3363var a=d(n+e.length)
3364this.buffer.copy(a,0,this.offset,t)
3365e.copy(a,n,0,e.length)
3366this.buffer=a
3367this.offset=0
3368if(this.arrayCache.length){var o=y(this)
3369if(!o)return
3370this.returnReply(o)}}else{if(!(this.totalChunkSize+e.length>=this.bigStrSize)){this.bufferCache.push(e)
3371this.totalChunkSize+=e.length
3372return}this.bufferCache.push(e)
3373var s=this.optionReturnBuffers?S(this):function(e){var t=e.bufferCache
3374var n=t.length
3375var a=e.bigStrSize-e.totalChunkSize
3376e.offset=a
3377if(a<=2){if(2===n)return t[0].toString("utf8",e.bigOffset,t[0].length+a-2)
3378n--
3379a=t[t.length-2].length+a}var o=i.write(t[0].slice(e.bigOffset))
3380for(var s=1;s<n-1;s++)o+=i.write(t[s])
3381return o+=i.end(t[s].slice(0,a-2))}(this)
3382this.bigStrSize=0
3383this.bufferCache=[]
3384this.buffer=e
3385if(this.arrayCache.length){this.arrayCache[0][this.arrayPos[0]++]=s
3386if(!(s=y(this)))return}this.returnReply(s)}for(;this.offset<this.buffer.length;){var r=this.offset
3387var c=this.buffer[this.offset++]
3388var p=b(this,c)
3389if(void 0===p){this.arrayCache.length||(this.offset=r)
3390return}45===c?this.returnError(p):this.returnReply(p)}this.buffer=null}
3391e.exports=k},function(e,t,n){"use strict"
3392var i=n(1)
3393var a=n(31)
3394var o=n(30).RedisError
3395var s=!1
3396function r(e,t){a(e,"The options argument is required")
3397a.strictEqual(typeof e,"object","The options argument has to be of type object")
3398o.call(this,e.message,s)
3399Object.defineProperty(this,"message",{value:e.message||"",configurable:!0,writable:!0});(t||void 0===t)&&Error.captureStackTrace(this,r)
3400for(var n=Object.keys(e),i=n.pop();i;i=n.pop())this[i]=e[i]}function c(e){a(e,"The options argument is required")
3401a.strictEqual(typeof e,"object","The options argument has to be of type object")
3402r.call(this,e,s)
3403Object.defineProperty(this,"message",{value:e.message||"",configurable:!0,writable:!0})
3404Error.captureStackTrace(this,c)
3405for(var t=Object.keys(e),n=t.pop();n;n=t.pop())this[n]=e[n]}i.inherits(r,o)
3406i.inherits(c,r)
3407Object.defineProperty(r.prototype,"name",{value:"AbortError",configurable:!0,writable:!0})
3408Object.defineProperty(c.prototype,"name",{value:"AggregateError",configurable:!0,writable:!0})
3409e.exports={AbortError:r,AggregateError:c}},function(e,t){e.exports=require("tls")},function(e,t,n){var i=n(5)
3410var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
3411function o(e){var t,n
3412t=[]
3413for(n=0;n<e.length;n++)t.push(a[e[n]%a.length])
3414return t.join("")}e.exports=function(e,t){if(void 0===t)return o(i.pseudoRandomBytes(e))
3415i.pseudoRandomBytes(e,function(e,n){if(e)return t(e)
3416t(null,o(n))})}},function(e,t){function n(e){var t=new Error("Cannot find module '"+e+"'")
3417t.code="MODULE_NOT_FOUND"
3418throw t}n.keys=function(){return[]}
3419n.resolve=n
3420e.exports=n
3421n.id=74},function(e,t,n){"use strict"
3422const i=n(35)
3423let a=0
3424e.exports=class extends i{constructor(e){super(e,"/_"+a++)
3425this.children=new Set}initAdapter(){}emit(){const e=Array.prototype.slice.call(arguments)
3426this.children.forEach(t=>{t.rooms=this.rooms
3427t.flags=this.flags
3428t.emit.apply(t,e)})
3429this.rooms=[]
3430this.flags={}}createChild(e){const t=new i(this.server,e)
3431t.fns=this.fns.slice(0)
3432this.listeners("connect").forEach(e=>t.on("connect",e))
3433this.listeners("connection").forEach(e=>t.on("connection",e))
3434this.children.add(t)
3435this.server.nsps[e]=t
3436return t}}},function(e,t,n){var i=n(7).EventEmitter
3437var a=n(16)
3438var o=n(24)
3439var s=n(3)
3440var r=n(6)("socket.io:socket")
3441e.exports=t=p
3442t.events=["error","connect","disconnect","disconnecting","newListener","removeListener"]
3443var c=i.prototype.emit
3444function p(e,t,n){this.nsp=e
3445this.server=e.server
3446this.adapter=this.nsp.adapter
3447this.id="/"!==e.name?e.name+"#"+t.id:t.id
3448this.client=t
3449this.conn=t.conn
3450this.rooms={}
3451this.acks={}
3452this.connected=!0
3453this.disconnected=!1
3454this.handshake=this.buildHandshake(n)
3455this.fns=[]
3456this.flags={}
3457this._rooms=[]}p.prototype.__proto__=i.prototype;["json","volatile","broadcast","local"].forEach(function(e){Object.defineProperty(p.prototype,e,{get:function(){this.flags[e]=!0
3458return this}})})
3459Object.defineProperty(p.prototype,"request",{get:function(){return this.conn.request}})
3460p.prototype.buildHandshake=function(e){var t=this
3461return{headers:this.request.headers,time:new Date+"",address:this.conn.remoteAddress,xdomain:!!this.request.headers.origin,secure:!!this.request.connection.encrypted,issued:+new Date,url:this.request.url,query:function(){var n=s.parse(t.request.url,!0).query
3462return Object.assign({},e,n)}()}}
3463p.prototype.emit=function(e){if(~t.events.indexOf(e)){c.apply(this,arguments)
3464return this}var n=Array.prototype.slice.call(arguments)
3465var i={type:(void 0!==this.flags.binary?this.flags.binary:o(n))?a.BINARY_EVENT:a.EVENT,data:n}
3466if("function"==typeof n[n.length-1]){if(this._rooms.length||this.flags.broadcast)throw new Error("Callbacks are not supported when broadcasting")
3467r("emitting packet with ack id %d",this.nsp.ids)
3468this.acks[this.nsp.ids]=n.pop()
3469i.id=this.nsp.ids++}var s=this._rooms.slice(0)
3470var p=Object.assign({},this.flags)
3471this._rooms=[]
3472this.flags={}
3473s.length||p.broadcast?this.adapter.broadcast(i,{except:[this.id],rooms:s,flags:p}):this.packet(i,p)
3474return this}
3475p.prototype.to=p.prototype.in=function(e){~this._rooms.indexOf(e)||this._rooms.push(e)
3476return this}
3477p.prototype.send=p.prototype.write=function(){var e=Array.prototype.slice.call(arguments)
3478e.unshift("message")
3479this.emit.apply(this,e)
3480return this}
3481p.prototype.packet=function(e,t){e.nsp=this.nsp.name;(t=t||{}).compress=!1!==t.compress
3482this.client.packet(e,t)}
3483p.prototype.join=function(e,t){r("joining room %s",e)
3484var n=this
3485Array.isArray(e)||(e=[e])
3486if(!(e=e.filter(function(e){return!n.rooms.hasOwnProperty(e)})).length){t&&t(null)
3487return this}this.adapter.addAll(this.id,e,function(i){if(i)return t&&t(i)
3488r("joined room %s",e)
3489e.forEach(function(e){n.rooms[e]=e})
3490t&&t(null)})
3491return this}
3492p.prototype.leave=function(e,t){r("leave room %s",e)
3493var n=this
3494this.adapter.del(this.id,e,function(i){if(i)return t&&t(i)
3495r("left room %s",e)
3496delete n.rooms[e]
3497t&&t(null)})
3498return this}
3499p.prototype.leaveAll=function(){this.adapter.delAll(this.id)
3500this.rooms={}}
3501p.prototype.onconnect=function(){r("socket connected - writing packet")
3502this.nsp.connected[this.id]=this
3503this.join(this.id)
3504"/"===this.nsp.name&&0===this.nsp.fns.length?r("packet already sent in initial handshake"):this.packet({type:a.CONNECT})}
3505p.prototype.onpacket=function(e){r("got packet %j",e)
3506switch(e.type){case a.EVENT:case a.BINARY_EVENT:this.onevent(e)
3507break
3508case a.ACK:case a.BINARY_ACK:this.onack(e)
3509break
3510case a.DISCONNECT:this.ondisconnect()
3511break
3512case a.ERROR:this.onerror(new Error(e.data))}}
3513p.prototype.onevent=function(e){var t=e.data||[]
3514r("emitting event %j",t)
3515if(null!=e.id){r("attaching ack callback to event")
3516t.push(this.ack(e.id))}this.dispatch(t)}
3517p.prototype.ack=function(e){var t=this
3518var n=!1
3519return function(){if(!n){var i=Array.prototype.slice.call(arguments)
3520r("sending ack %j",i)
3521t.packet({id:e,type:o(i)?a.BINARY_ACK:a.ACK,data:i})
3522n=!0}}}
3523p.prototype.onack=function(e){var t=this.acks[e.id]
3524if("function"==typeof t){r("calling ack %s with %j",e.id,e.data)
3525t.apply(this,e.data)
3526delete this.acks[e.id]}else r("bad ack %s",e.id)}
3527p.prototype.ondisconnect=function(){r("got disconnect packet")
3528this.onclose("client namespace disconnect")}
3529p.prototype.onerror=function(e){if(this.listeners("error").length)this.emit("error",e)
3530else{console.error("Missing error handler on `socket`.")
3531console.error(e.stack)}}
3532p.prototype.onclose=function(e){if(!this.connected)return this
3533r("closing socket - reason %s",e)
3534this.emit("disconnecting",e)
3535this.leaveAll()
3536this.nsp.remove(this)
3537this.client.remove(this)
3538this.connected=!1
3539this.disconnected=!0
3540delete this.nsp.connected[this.id]
3541this.emit("disconnect",e)}
3542p.prototype.error=function(e){this.packet({type:a.ERROR,data:e})}
3543p.prototype.disconnect=function(e){if(!this.connected)return this
3544if(e)this.client.disconnect()
3545else{this.packet({type:a.DISCONNECT})
3546this.onclose("server namespace disconnect")}return this}
3547p.prototype.compress=function(e){this.flags.compress=e
3548return this}
3549p.prototype.binary=function(e){this.flags.binary=e
3550return this}
3551p.prototype.dispatch=function(e){r("dispatching an event %j",e)
3552var t=this
3553this.run(e,function(n){process.nextTick(function(){if(n)return t.error(n.data||n.message)
3554c.apply(t,e)})})}
3555p.prototype.use=function(e){this.fns.push(e)
3556return this}
3557p.prototype.run=function(e,t){var n=this.fns.slice(0)
3558if(!n.length)return t(null)
3559!function i(a){n[a](e,function(e){if(e)return t(e)
3560if(!n[a+1])return t(null)
3561i(a+1)})}(0)}},function(e,t,n){var i=n(37)
3562var a=n(36)
3563var o=Object.prototype.toString
3564var s="function"==typeof global.Blob||"[object BlobConstructor]"===o.call(global.Blob)
3565var r="function"==typeof global.File||"[object FileConstructor]"===o.call(global.File)
3566t.deconstructPacket=function(e){var t=[]
3567var n=e.data
3568var o=e
3569o.data=function e(t,n){if(!t)return t
3570if(a(t)){var o={_placeholder:!0,num:n.length}
3571n.push(t)
3572return o}if(i(t)){var s=new Array(t.length)
3573for(var r=0;r<t.length;r++)s[r]=e(t[r],n)
3574return s}if("object"==typeof t&&!(t instanceof Date)){var s={}
3575for(var c in t)s[c]=e(t[c],n)
3576return s}return t}(n,t)
3577o.attachments=t.length
3578return{packet:o,buffers:t}}
3579t.reconstructPacket=function(e,t){e.data=function e(t,n){if(!t)return t
3580if(t&&t._placeholder)return n[t.num]
3581if(i(t))for(var a=0;a<t.length;a++)t[a]=e(t[a],n)
3582else if("object"==typeof t)for(var o in t)t[o]=e(t[o],n)
3583return t}(e.data,t)
3584e.attachments=void 0
3585return e}
3586t.removeBlobs=function(e,t){var n=0
3587var o=e
3588!function e(c,p,l){if(!c)return c
3589if(s&&c instanceof Blob||r&&c instanceof File){n++
3590var u=new FileReader
3591u.onload=function(){l?l[p]=this.result:o=this.result;--n||t(o)}
3592u.readAsArrayBuffer(c)}else if(i(c))for(var d=0;d<c.length;d++)e(c[d],d,c)
3593else if("object"==typeof c&&!a(c))for(var f in c)e(c[f],f,c)}(o)
3594n||t(o)}},function(e,t,n){e.exports=i
3595function i(e){if(e)return function(e){for(var t in i.prototype)e[t]=i.prototype[t]
3596return e}(e)}i.prototype.on=i.prototype.addEventListener=function(e,t){this._callbacks=this._callbacks||{};(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t)
3597return this}
3598i.prototype.once=function(e,t){function n(){this.off(e,n)
3599t.apply(this,arguments)}n.fn=t
3600this.on(e,n)
3601return this}
3602i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(e,t){this._callbacks=this._callbacks||{}
3603if(0==arguments.length){this._callbacks={}
3604return this}var n=this._callbacks["$"+e]
3605if(!n)return this
3606if(1==arguments.length){delete this._callbacks["$"+e]
3607return this}var i
3608for(var a=0;a<n.length;a++)if((i=n[a])===t||i.fn===t){n.splice(a,1)
3609break}return this}
3610i.prototype.emit=function(e){this._callbacks=this._callbacks||{}
3611var t=[].slice.call(arguments,1),n=this._callbacks["$"+e]
3612if(n)for(var i=0,a=(n=n.slice(0)).length;i<a;++i)n[i].apply(this,t)
3613return this}
3614i.prototype.listeners=function(e){this._callbacks=this._callbacks||{}
3615return this._callbacks["$"+e]||[]}
3616i.prototype.hasListeners=function(e){return!!this.listeners(e).length}},function(e,t,n){var i=n(16)
3617var a=n(6)("socket.io:client")
3618var o=n(3)
3619e.exports=s
3620function s(e,t){this.server=e
3621this.conn=t
3622this.encoder=e.encoder
3623this.decoder=new e.parser.Decoder
3624this.id=t.id
3625this.request=t.request
3626this.setup()
3627this.sockets={}
3628this.nsps={}
3629this.connectBuffer=[]}s.prototype.setup=function(){this.onclose=this.onclose.bind(this)
3630this.ondata=this.ondata.bind(this)
3631this.onerror=this.onerror.bind(this)
3632this.ondecoded=this.ondecoded.bind(this)
3633this.decoder.on("decoded",this.ondecoded)
3634this.conn.on("data",this.ondata)
3635this.conn.on("error",this.onerror)
3636this.conn.on("close",this.onclose)}
3637s.prototype.connect=function(e,t){if(this.server.nsps[e]){a("connecting to namespace %s",e)
3638return this.doConnect(e,t)}this.server.checkNamespace(e,t,n=>{if(n){a("dynamic namespace %s was created",n.name)
3639this.doConnect(e,t)}else{a("creation of namespace %s was denied",e)
3640this.packet({type:i.ERROR,nsp:e,data:"Invalid namespace"})}})}
3641s.prototype.doConnect=function(e,t){var n=this.server.of(e)
3642if("/"==e||this.nsps["/"]){var i=this
3643var a=n.add(this,t,function(){i.sockets[a.id]=a
3644i.nsps[n.name]=a
3645if("/"==n.name&&i.connectBuffer.length>0){i.connectBuffer.forEach(i.connect,i)
3646i.connectBuffer=[]}})}else this.connectBuffer.push(e)}
3647s.prototype.disconnect=function(){for(var e in this.sockets)this.sockets.hasOwnProperty(e)&&this.sockets[e].disconnect()
3648this.sockets={}
3649this.close()}
3650s.prototype.remove=function(e){if(this.sockets.hasOwnProperty(e.id)){var t=this.sockets[e.id].nsp.name
3651delete this.sockets[e.id]
3652delete this.nsps[t]}else a("ignoring remove for %s",e.id)}
3653s.prototype.close=function(){if("open"==this.conn.readyState){a("forcing transport close")
3654this.conn.close()
3655this.onclose("forced server close")}}
3656s.prototype.packet=function(e,t){t=t||{}
3657var n=this
3658function i(e){if(!t.volatile||n.conn.transport.writable)for(var i=0;i<e.length;i++)n.conn.write(e[i],{compress:t.compress})}if("open"==this.conn.readyState){a("writing packet %j",e)
3659t.preEncoded?i(e):this.encoder.encode(e,i)}else a("ignoring packet write %j",e)}
3660s.prototype.ondata=function(e){try{this.decoder.add(e)}catch(e){this.onerror(e)}}
3661s.prototype.ondecoded=function(e){if(i.CONNECT==e.type)this.connect(o.parse(e.nsp).pathname,o.parse(e.nsp,!0).query)
3662else{var t=this.nsps[e.nsp]
3663t?process.nextTick(function(){t.onpacket(e)}):a("no socket for namespace %s",e.nsp)}}
3664s.prototype.onerror=function(e){for(var t in this.sockets)this.sockets.hasOwnProperty(t)&&this.sockets[t].onerror(e)
3665this.conn.close()}
3666s.prototype.onclose=function(e){a("client close with reason %s",e)
3667this.destroy()
3668for(var t in this.sockets)this.sockets.hasOwnProperty(t)&&this.sockets[t].onclose(e)
3669this.sockets={}
3670this.decoder.destroy()}
3671s.prototype.destroy=function(){this.conn.removeListener("data",this.ondata)
3672this.conn.removeListener("error",this.onerror)
3673this.conn.removeListener("close",this.onclose)
3674this.decoder.removeListener("decoded",this.ondecoded)}},function(e){e.exports={_from:"socket.io-client@^2.1.1",_id:"socket.io-client@2.1.1",_inBundle:!1,_integrity:"sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==",_location:"/socket.io-client",_phantomChildren:{},_requested:{type:"range",registry:!0,raw:"socket.io-client@^2.1.1",name:"socket.io-client",escapedName:"socket.io-client",rawSpec:"^2.1.1",saveSpec:null,fetchSpec:"^2.1.1"},_requiredBy:["/","/socket.io"],_resolved:"https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz",_shasum:"dcb38103436ab4578ddb026638ae2f21b623671f",_spec:"socket.io-client@^2.1.1",_where:"C:\\Users\\Dr\\Documents\\GitHub\\imock-socket",bugs:{url:"https://github.com/Automattic/socket.io-client/issues"},bundleDependencies:!1,contributors:[{name:"Guillermo Rauch",email:"rauchg@gmail.com"},{name:"Arnout Kazemier",email:"info@3rd-eden.com"},{name:"Vladimir Dronnikov",email:"dronnikov@gmail.com"},{name:"Einar Otto Stangvik",email:"einaros@gmail.com"}],dependencies:{backo2:"1.0.2","base64-arraybuffer":"0.1.5","component-bind":"1.0.0","component-emitter":"1.2.1",debug:"~3.1.0","engine.io-client":"~3.2.0","has-binary2":"~1.0.2","has-cors":"1.1.0",indexof:"0.0.1","object-component":"0.0.3",parseqs:"0.0.5",parseuri:"0.0.5","socket.io-parser":"~3.2.0","to-array":"0.1.4"},deprecated:!1,description:"[![Build Status](https://secure.travis-ci.org/socketio/socket.io-client.svg?branch=master)](http://travis-ci.org/socketio/socket.io-client) [![Dependency Status](https://david-dm.org/socketio/socket.io-client.svg)](https://david-dm.org/socketio/socket.io-client) [![devDependency Status](https://david-dm.org/socketio/socket.io-client/dev-status.svg)](https://david-dm.org/socketio/socket.io-client#info=devDependencies) [![NPM version](https://badge.fury.io/js/socket.io-client.svg)](https://www.npmjs.com/package/socket.io-client) ![Downloads](http://img.shields.io/npm/dm/socket.io-client.svg?style=flat) [![](http://slack.socket.io/badge.svg?)](http://slack.socket.io)",devDependencies:{"babel-core":"^6.24.1","babel-eslint":"4.1.7","babel-loader":"7.0.0","babel-preset-es2015":"6.24.1","concat-stream":"^1.6.0",derequire:"^2.0.6","eslint-config-standard":"4.4.0","eslint-plugin-standard":"1.3.1","expect.js":"0.3.1",gulp:"^3.9.1","gulp-eslint":"1.1.1","gulp-file":"^0.3.0","gulp-istanbul":"^1.1.1","gulp-mocha":"^4.3.1","gulp-task-listing":"1.0.1","imports-loader":"^0.7.1",istanbul:"^0.4.5",mocha:"^3.3.0","socket.io":"2.1.1","socket.io-browsers":"^1.0.0","strip-loader":"0.1.2","text-blob-builder":"0.0.1","webpack-merge":"4.1.2","webpack-stream":"3.2.0",zuul:"^3.11.1 ","zuul-builder-webpack":"^1.2.0","zuul-ngrok":"4.0.0"},files:["lib/","dist/"],homepage:"https://github.com/Automattic/socket.io-client#readme",keywords:["realtime","framework","websocket","tcp","events","client"],license:"MIT",main:"./lib/index",name:"socket.io-client",repository:{type:"git",url:"git+https://github.com/Automattic/socket.io-client.git"},scripts:{test:"gulp test"},version:"2.1.1"}},function(e,t,n){"use strict"
3675const i=n(10)
3676const a=n(7)
3677const o=n(5)
3678const s=n(42)
3679const r=n(8)
3680const c=n(3)
3681const p=n(18)
3682const l=n(41)
3683const u=n(17)
3684const d=n(43)
3685const f=i.Buffer
3686e.exports=class extends a{constructor(e,t){super()
3687if(null==(e=Object.assign({maxPayload:104857600,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null},e)).port&&!e.server&&!e.noServer)throw new TypeError("missing or invalid options")
3688if(null!=e.port){this._server=r.createServer((e,t)=>{const n=r.STATUS_CODES[426]
3689t.writeHead(426,{"Content-Length":n.length,"Content-Type":"text/plain"})
3690t.end(n)})
3691this._server.listen(e.port,e.host,e.backlog,t)}else e.server&&(this._server=e.server)
3692if(this._server){this._ultron=new s(this._server)
3693this._ultron.on("listening",()=>this.emit("listening"))
3694this._ultron.on("error",e=>this.emit("error",e))
3695this._ultron.on("upgrade",(e,t,n)=>{this.handleUpgrade(e,t,n,t=>{this.emit("connection",t,e)})})}!0===e.perMessageDeflate&&(e.perMessageDeflate={})
3696e.clientTracking&&(this.clients=new Set)
3697this.options=e}close(e){if(this.clients)for(const e of this.clients)e.terminate()
3698const t=this._server
3699if(t){this._ultron.destroy()
3700this._ultron=this._server=null
3701if(null!=this.options.port)return t.close(e)}e&&e()}shouldHandle(e){return!this.options.path||c.parse(e.url).pathname===this.options.path}handleUpgrade(e,t,n,i){t.on("error",h)
3702const a=+e.headers["sec-websocket-version"]
3703const o={}
3704if("GET"!==e.method||"websocket"!==e.headers.upgrade.toLowerCase()||!e.headers["sec-websocket-key"]||8!==a&&13!==a||!this.shouldHandle(e))return m(t,400)
3705if(this.options.perMessageDeflate){const n=new p(this.options.perMessageDeflate,!0,this.options.maxPayload)
3706try{const i=l.parse(e.headers["sec-websocket-extensions"])
3707if(i[p.extensionName]){n.accept(i[p.extensionName])
3708o[p.extensionName]=n}}catch(e){return m(t,400)}}var s=(e.headers["sec-websocket-protocol"]||"").split(/, */)
3709if(this.options.handleProtocols){if(!1===(s=this.options.handleProtocols(s,e)))return m(t,401)}else s=s[0]
3710if(this.options.verifyClient){const r={origin:e.headers[`${8===a?"sec-websocket-origin":"origin"}`],secure:!(!e.connection.authorized&&!e.connection.encrypted),req:e}
3711if(2===this.options.verifyClient.length){this.options.verifyClient(r,(r,c,p)=>{if(!r)return m(t,c||401,p)
3712this.completeUpgrade(s,o,a,e,t,n,i)})
3713return}if(!this.options.verifyClient(r))return m(t,401)}this.completeUpgrade(s,o,a,e,t,n,i)}completeUpgrade(e,t,n,i,a,s,r){if(!a.readable||!a.writable)return a.destroy()
3714const c=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${o.createHash("sha1").update(i.headers["sec-websocket-key"]+u.GUID,"binary").digest("base64")}`]
3715e&&c.push(`Sec-WebSocket-Protocol: ${e}`)
3716if(t[p.extensionName]){const e=t[p.extensionName].params
3717const n=l.format({[p.extensionName]:[e]})
3718c.push(`Sec-WebSocket-Extensions: ${n}`)}this.emit("headers",c,i)
3719a.write(c.concat("\r\n").join("\r\n"))
3720const f=new d([a,s],null,{maxPayload:this.options.maxPayload,protocolVersion:n,extensions:t,protocol:e})
3721if(this.clients){this.clients.add(f)
3722f.on("close",()=>this.clients.delete(f))}a.removeListener("error",h)
3723r(f)}}
3724function h(){this.destroy()}function m(e,t,n){if(e.writable){n=n||r.STATUS_CODES[t]
3725e.write(`HTTP/1.1 ${t} ${r.STATUS_CODES[t]}\r\n`+"Connection: close\r\nContent-type: text/html\r\n"+`Content-Length: ${f.byteLength(n)}\r\n`+"\r\n"+n)}e.removeListener("error",h)
3726e.destroy()}},function(e,t){if(typeof utf-8-validate==="undefined"){var n=new Error("Cannot find module 'utf-8-validate'")
3727n.code="MODULE_NOT_FOUND"
3728throw n}e.exports=utf-8-validate},function(e,t,n){"use strict"
3729try{const t=n(82)
3730e.exports="object"==typeof t?t.Validation.isValidUTF8:t}catch(t){e.exports=(()=>!0)}},function(e,t,n){"use strict"
3731class i{constructor(e,t){this.target=t
3732this.type=e}}class a extends i{constructor(e,t){super("message",t)
3733this.data=e}}class o extends i{constructor(e,t,n){super("close",n)
3734this.wasClean=n._closeFrameReceived&&n._closeFrameSent
3735this.reason=t
3736this.code=e}}class s extends i{constructor(e){super("open",e)}}const r={addEventListener(e,t){if("function"==typeof t)if("message"===e){n._listener=t
3737this.on(e,n)}else if("close"===e){i._listener=t
3738this.on(e,i)}else if("error"===e){r._listener=t
3739this.on(e,r)}else if("open"===e){c._listener=t
3740this.on(e,c)}else this.on(e,t)
3741function n(e){t.call(this,new a(e,this))}function i(e,n){t.call(this,new o(e,n,this))}function r(e){e.type="error"
3742e.target=this
3743t.call(this,e)}function c(){t.call(this,new s(this))}},removeEventListener(e,t){const n=this.listeners(e)
3744for(var i=0;i<n.length;i++)n[i]!==t&&n[i]._listener!==t||this.removeListener(e,n[i])}}
3745e.exports=r},function(e,t){if("undefined"==typeof bufferutil){var n=new Error("Cannot find module 'bufferutil'")
3746n.code="MODULE_NOT_FOUND"
3747throw n}e.exports=bufferutil},function(e,t,n){"use strict"
3748function i(e){if(!(this instanceof i))return new i(e)
3749e=e||{}
3750this.concurrency=e.concurrency||1/0
3751this.pending=0
3752this.jobs=[]
3753this.cbs=[]
3754this._done=function(){this.pending--
3755this._run()}.bind(this)}["push","unshift","splice"].forEach(function(e){i.prototype[e]=function(){var t=Array.prototype[e].apply(this.jobs,arguments)
3756this._run()
3757return t}})
3758Object.defineProperty(i.prototype,"length",{get:function(){return this.pending+this.jobs.length}})
3759i.prototype._run=function(){if(this.pending!==this.concurrency){if(this.jobs.length){var e=this.jobs.shift()
3760this.pending++
3761e(this._done)
3762this._run()}if(0===this.pending)for(;0!==this.cbs.length;){var t=this.cbs.pop()
3763process.nextTick(t)}}}
3764i.prototype.onDone=function(e){if("function"==typeof e){this.cbs.push(e)
3765this._run()}}
3766e.exports=i},function(e,t){e.exports=require("buffer")},function(e,t,n){"use strict"
3767const i=n(43)
3768i.Server=n(81)
3769i.Receiver=n(40)
3770i.Sender=n(38)
3771e.exports=i},function(e,t){e.exports=uws},function(e,t,n){"use strict"
3772t.parse=function(e,t){if("string"!=typeof e)throw new TypeError("argument str must be a string")
3773var n={}
3774var a=t||{}
3775var s=e.split(o)
3776var c=a.decode||i
3777for(var p=0;p<s.length;p++){var l=s[p]
3778var u=l.indexOf("=")
3779if(!(u<0)){var d=l.substr(0,u).trim()
3780var f=l.substr(++u,l.length).trim()
3781'"'==f[0]&&(f=f.slice(1,-1))
3782void 0==n[d]&&(n[d]=r(f,c))}}return n}
3783t.serialize=function(e,t,n){var i=n||{}
3784var o=i.encode||a
3785if("function"!=typeof o)throw new TypeError("option encode is invalid")
3786if(!s.test(e))throw new TypeError("argument name is invalid")
3787var r=o(t)
3788if(r&&!s.test(r))throw new TypeError("argument val is invalid")
3789var c=e+"="+r
3790if(null!=i.maxAge){var p=i.maxAge-0
3791if(isNaN(p))throw new Error("maxAge should be a Number")
3792c+="; Max-Age="+Math.floor(p)}if(i.domain){if(!s.test(i.domain))throw new TypeError("option domain is invalid")
3793c+="; Domain="+i.domain}if(i.path){if(!s.test(i.path))throw new TypeError("option path is invalid")
3794c+="; Path="+i.path}if(i.expires){if("function"!=typeof i.expires.toUTCString)throw new TypeError("option expires is invalid")
3795c+="; Expires="+i.expires.toUTCString()}i.httpOnly&&(c+="; HttpOnly")
3796i.secure&&(c+="; Secure")
3797if(i.sameSite){var l="string"==typeof i.sameSite?i.sameSite.toLowerCase():i.sameSite
3798switch(l){case!0:c+="; SameSite=Strict"
3799break
3800case"lax":c+="; SameSite=Lax"
3801break
3802case"strict":c+="; SameSite=Strict"
3803break
3804default:throw new TypeError("option sameSite is invalid")}}return c}
3805var i=decodeURIComponent
3806var a=encodeURIComponent
3807var o=/; */
3808var s=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/
3809function r(e,t){try{return t(e)}catch(t){return e}}},function(e,t,n){var i=n(25)
3810var a=n(19)
3811var o=n(1)
3812var s=n(6)("engine:ws")
3813e.exports=r
3814function r(e){i.call(this,e)
3815var t=this
3816this.socket=e.websocket
3817this.socket.on("message",this.onData.bind(this))
3818this.socket.once("close",this.onClose.bind(this))
3819this.socket.on("error",this.onError.bind(this))
3820this.socket.on("headers",function(e){t.emit("headers",e)})
3821this.writable=!0
3822this.perMessageDeflate=null}o.inherits(r,i)
3823r.prototype.name="websocket"
3824r.prototype.handlesUpgrades=!0
3825r.prototype.supportsFraming=!0
3826r.prototype.onData=function(e){s('received "%s"',e)
3827i.prototype.onData.call(this,e)}
3828r.prototype.send=function(e){var t=this
3829for(var n=0;n<e.length;n++){var i=e[n]
3830a.encodePacket(i,t.supportsBinary,o)}function o(e){s('writing "%s"',e)
3831var n={}
3832i.options&&(n.compress=i.options.compress)
3833if(t.perMessageDeflate){("string"==typeof e?Buffer.byteLength(e):e.length)<t.perMessageDeflate.threshold&&(n.compress=!1)}t.writable=!1
3834t.socket.send(e,n,r)}function r(e){if(e)return t.onError("write error",e.stack)
3835t.writable=!0
3836t.emit("drain")}}
3837r.prototype.doClose=function(e){s("closing")
3838this.socket.close()
3839e&&e()}},function(e,t,n){var i=n(48)
3840var a=n(50)
3841var o=/\\\\n/g
3842var s=/(\\)?\\n/g
3843var r=n(1)
3844e.exports=c
3845function c(e){i.call(this,e)
3846this.head="___eio["+(e._query.j||"").replace(/[^0-9]/g,"")+"]("
3847this.foot=");"}r.inherits(c,i)
3848c.prototype.onData=function(e){if("string"==typeof(e=a.parse(e).d)){e=e.replace(s,function(e,t){return t?e:"\n"})
3849i.prototype.onData.call(this,e.replace(o,"\\n"))}}
3850c.prototype.doWrite=function(e,t,n){var a=JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")
3851e=this.head+a+this.foot
3852i.prototype.doWrite.call(this,e,t,n)}},function(e){e.exports={"application/1d-interleaved-parityfec":{source:"iana"},"application/3gpdash-qoe-report+xml":{source:"iana"},"application/3gpp-ims+xml":{source:"iana"},"application/a2l":{source:"iana"},"application/activemessage":{source:"iana"},"application/alto-costmap+json":{source:"iana",compressible:!0},"application/alto-costmapfilter+json":{source:"iana",compressible:!0},"application/alto-directory+json":{source:"iana",compressible:!0},"application/alto-endpointcost+json":{source:"iana",compressible:!0},"application/alto-endpointcostparams+json":{source:"iana",compressible:!0},"application/alto-endpointprop+json":{source:"iana",compressible:!0},"application/alto-endpointpropparams+json":{source:"iana",compressible:!0},"application/alto-error+json":{source:"iana",compressible:!0},"application/alto-networkmap+json":{source:"iana",compressible:!0},"application/alto-networkmapfilter+json":{source:"iana",compressible:!0},"application/aml":{source:"iana"},"application/andrew-inset":{source:"iana",extensions:["ez"]},"application/applefile":{source:"iana"},"application/applixware":{source:"apache",extensions:["aw"]},"application/atf":{source:"iana"},"application/atfx":{source:"iana"},"application/atom+xml":{source:"iana",compressible:!0,extensions:["atom"]},"application/atomcat+xml":{source:"iana",extensions:["atomcat"]},"application/atomdeleted+xml":{source:"iana"},"application/atomicmail":{source:"iana"},"application/atomsvc+xml":{source:"iana",extensions:["atomsvc"]},"application/atxml":{source:"iana"},"application/auth-policy+xml":{source:"iana"},"application/bacnet-xdd+zip":{source:"iana"},"application/batch-smtp":{source:"iana"},"application/bdoc":{compressible:!1,extensions:["bdoc"]},"application/beep+xml":{source:"iana"},"application/calendar+json":{source:"iana",compressible:!0},"application/calendar+xml":{source:"iana"},"application/call-completion":{source:"iana"},"application/cals-1840":{source:"iana"},"application/cbor":{source:"iana"},"application/cccex":{source:"iana"},"application/ccmp+xml":{source:"iana"},"application/ccxml+xml":{source:"iana",extensions:["ccxml"]},"application/cdfx+xml":{source:"iana"},"application/cdmi-capability":{source:"iana",extensions:["cdmia"]},"application/cdmi-container":{source:"iana",extensions:["cdmic"]},"application/cdmi-domain":{source:"iana",extensions:["cdmid"]},"application/cdmi-object":{source:"iana",extensions:["cdmio"]},"application/cdmi-queue":{source:"iana",extensions:["cdmiq"]},"application/cdni":{source:"iana"},"application/cea":{source:"iana"},"application/cea-2018+xml":{source:"iana"},"application/cellml+xml":{source:"iana"},"application/cfw":{source:"iana"},"application/clue_info+xml":{source:"iana"},"application/cms":{source:"iana"},"application/cnrp+xml":{source:"iana"},"application/coap-group+json":{source:"iana",compressible:!0},"application/coap-payload":{source:"iana"},"application/commonground":{source:"iana"},"application/conference-info+xml":{source:"iana"},"application/cose":{source:"iana"},"application/cose-key":{source:"iana"},"application/cose-key-set":{source:"iana"},"application/cpl+xml":{source:"iana"},"application/csrattrs":{source:"iana"},"application/csta+xml":{source:"iana"},"application/cstadata+xml":{source:"iana"},"application/csvm+json":{source:"iana",compressible:!0},"application/cu-seeme":{source:"apache",extensions:["cu"]},"application/cybercash":{source:"iana"},"application/dart":{compressible:!0},"application/dash+xml":{source:"iana",extensions:["mpd"]},"application/dashdelta":{source:"iana"},"application/davmount+xml":{source:"iana",extensions:["davmount"]},"application/dca-rft":{source:"iana"},"application/dcd":{source:"iana"},"application/dec-dx":{source:"iana"},"application/dialog-info+xml":{source:"iana"},"application/dicom":{source:"iana"},"application/dicom+json":{source:"iana",compressible:!0},"application/dicom+xml":{source:"iana"},"application/dii":{source:"iana"},"application/dit":{source:"iana"},"application/dns":{source:"iana"},"application/docbook+xml":{source:"apache",extensions:["dbk"]},"application/dskpp+xml":{source:"iana"},"application/dssc+der":{source:"iana",extensions:["dssc"]},"application/dssc+xml":{source:"iana",extensions:["xdssc"]},"application/dvcs":{source:"iana"},"application/ecmascript":{source:"iana",compressible:!0,extensions:["ecma"]},"application/edi-consent":{source:"iana"},"application/edi-x12":{source:"iana",compressible:!1},"application/edifact":{source:"iana",compressible:!1},"application/efi":{source:"iana"},"application/emergencycalldata.comment+xml":{source:"iana"},"application/emergencycalldata.control+xml":{source:"iana"},"application/emergencycalldata.deviceinfo+xml":{source:"iana"},"application/emergencycalldata.ecall.msd":{source:"iana"},"application/emergencycalldata.providerinfo+xml":{source:"iana"},"application/emergencycalldata.serviceinfo+xml":{source:"iana"},"application/emergencycalldata.subscriberinfo+xml":{source:"iana"},"application/emergencycalldata.veds+xml":{source:"iana"},"application/emma+xml":{source:"iana",extensions:["emma"]},"application/emotionml+xml":{source:"iana"},"application/encaprtp":{source:"iana"},"application/epp+xml":{source:"iana"},"application/epub+zip":{source:"iana",extensions:["epub"]},"application/eshop":{source:"iana"},"application/exi":{source:"iana",extensions:["exi"]},"application/fastinfoset":{source:"iana"},"application/fastsoap":{source:"iana"},"application/fdt+xml":{source:"iana"},"application/fhir+xml":{source:"iana"},"application/fido.trusted-apps+json":{compressible:!0},"application/fits":{source:"iana"},"application/font-sfnt":{source:"iana"},"application/font-tdpfr":{source:"iana",extensions:["pfr"]},"application/font-woff":{source:"iana",compressible:!1,extensions:["woff"]},"application/framework-attributes+xml":{source:"iana"},"application/geo+json":{source:"iana",compressible:!0,extensions:["geojson"]},"application/geo+json-seq":{source:"iana"},"application/geoxacml+xml":{source:"iana"},"application/gml+xml":{source:"iana",extensions:["gml"]},"application/gpx+xml":{source:"apache",extensions:["gpx"]},"application/gxf":{source:"apache",extensions:["gxf"]},"application/gzip":{source:"iana",compressible:!1,extensions:["gz"]},"application/h224":{source:"iana"},"application/held+xml":{source:"iana"},"application/hjson":{extensions:["hjson"]},"application/http":{source:"iana"},"application/hyperstudio":{source:"iana",extensions:["stk"]},"application/ibe-key-request+xml":{source:"iana"},"application/ibe-pkg-reply+xml":{source:"iana"},"application/ibe-pp-data":{source:"iana"},"application/iges":{source:"iana"},"application/im-iscomposing+xml":{source:"iana"},"application/index":{source:"iana"},"application/index.cmd":{source:"iana"},"application/index.obj":{source:"iana"},"application/index.response":{source:"iana"},"application/index.vnd":{source:"iana"},"application/inkml+xml":{source:"iana",extensions:["ink","inkml"]},"application/iotp":{source:"iana"},"application/ipfix":{source:"iana",extensions:["ipfix"]},"application/ipp":{source:"iana"},"application/isup":{source:"iana"},"application/its+xml":{source:"iana"},"application/java-archive":{source:"apache",compressible:!1,extensions:["jar","war","ear"]},"application/java-serialized-object":{source:"apache",compressible:!1,extensions:["ser"]},"application/java-vm":{source:"apache",compressible:!1,extensions:["class"]},"application/javascript":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["js","mjs"]},"application/jf2feed+json":{source:"iana",compressible:!0},"application/jose":{source:"iana"},"application/jose+json":{source:"iana",compressible:!0},"application/jrd+json":{source:"iana",compressible:!0},"application/json":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["json","map"]},"application/json-patch+json":{source:"iana",compressible:!0},"application/json-seq":{source:"iana"},"application/json5":{extensions:["json5"]},"application/jsonml+json":{source:"apache",compressible:!0,extensions:["jsonml"]},"application/jwk+json":{source:"iana",compressible:!0},"application/jwk-set+json":{source:"iana",compressible:!0},"application/jwt":{source:"iana"},"application/kpml-request+xml":{source:"iana"},"application/kpml-response+xml":{source:"iana"},"application/ld+json":{source:"iana",compressible:!0,extensions:["jsonld"]},"application/lgr+xml":{source:"iana"},"application/link-format":{source:"iana"},"application/load-control+xml":{source:"iana"},"application/lost+xml":{source:"iana",extensions:["lostxml"]},"application/lostsync+xml":{source:"iana"},"application/lxf":{source:"iana"},"application/mac-binhex40":{source:"iana",extensions:["hqx"]},"application/mac-compactpro":{source:"apache",extensions:["cpt"]},"application/macwriteii":{source:"iana"},"application/mads+xml":{source:"iana",extensions:["mads"]},"application/manifest+json":{charset:"UTF-8",compressible:!0,extensions:["webmanifest"]},"application/marc":{source:"iana",extensions:["mrc"]},"application/marcxml+xml":{source:"iana",extensions:["mrcx"]},"application/mathematica":{source:"iana",extensions:["ma","nb","mb"]},"application/mathml+xml":{source:"iana",extensions:["mathml"]},"application/mathml-content+xml":{source:"iana"},"application/mathml-presentation+xml":{source:"iana"},"application/mbms-associated-procedure-description+xml":{source:"iana"},"application/mbms-deregister+xml":{source:"iana"},"application/mbms-envelope+xml":{source:"iana"},"application/mbms-msk+xml":{source:"iana"},"application/mbms-msk-response+xml":{source:"iana"},"application/mbms-protection-description+xml":{source:"iana"},"application/mbms-reception-report+xml":{source:"iana"},"application/mbms-register+xml":{source:"iana"},"application/mbms-register-response+xml":{source:"iana"},"application/mbms-schedule+xml":{source:"iana"},"application/mbms-user-service-description+xml":{source:"iana"},"application/mbox":{source:"iana",extensions:["mbox"]},"application/media-policy-dataset+xml":{source:"iana"},"application/media_control+xml":{source:"iana"},"application/mediaservercontrol+xml":{source:"iana",extensions:["mscml"]},"application/merge-patch+json":{source:"iana",compressible:!0},"application/metalink+xml":{source:"apache",extensions:["metalink"]},"application/metalink4+xml":{source:"iana",extensions:["meta4"]},"application/mets+xml":{source:"iana",extensions:["mets"]},"application/mf4":{source:"iana"},"application/mikey":{source:"iana"},"application/mmt-usd+xml":{source:"iana"},"application/mods+xml":{source:"iana",extensions:["mods"]},"application/moss-keys":{source:"iana"},"application/moss-signature":{source:"iana"},"application/mosskey-data":{source:"iana"},"application/mosskey-request":{source:"iana"},"application/mp21":{source:"iana",extensions:["m21","mp21"]},"application/mp4":{source:"iana",extensions:["mp4s","m4p"]},"application/mpeg4-generic":{source:"iana"},"application/mpeg4-iod":{source:"iana"},"application/mpeg4-iod-xmt":{source:"iana"},"application/mrb-consumer+xml":{source:"iana"},"application/mrb-publish+xml":{source:"iana"},"application/msc-ivr+xml":{source:"iana"},"application/msc-mixer+xml":{source:"iana"},"application/msword":{source:"iana",compressible:!1,extensions:["doc","dot"]},"application/mud+json":{source:"iana",compressible:!0},"application/mxf":{source:"iana",extensions:["mxf"]},"application/n-quads":{source:"iana"},"application/n-triples":{source:"iana"},"application/nasdata":{source:"iana"},"application/news-checkgroups":{source:"iana"},"application/news-groupinfo":{source:"iana"},"application/news-transmission":{source:"iana"},"application/nlsml+xml":{source:"iana"},"application/node":{source:"iana"},"application/nss":{source:"iana"},"application/ocsp-request":{source:"iana"},"application/ocsp-response":{source:"iana"},"application/octet-stream":{source:"iana",compressible:!1,extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{source:"iana",extensions:["oda"]},"application/odx":{source:"iana"},"application/oebps-package+xml":{source:"iana",extensions:["opf"]},"application/ogg":{source:"iana",compressible:!1,extensions:["ogx"]},"application/omdoc+xml":{source:"apache",extensions:["omdoc"]},"application/onenote":{source:"apache",extensions:["onetoc","onetoc2","onetmp","onepkg"]},"application/oxps":{source:"iana",extensions:["oxps"]},"application/p2p-overlay+xml":{source:"iana"},"application/parityfec":{source:"iana"},"application/passport":{source:"iana"},"application/patch-ops-error+xml":{source:"iana",extensions:["xer"]},"application/pdf":{source:"iana",compressible:!1,extensions:["pdf"]},"application/pdx":{source:"iana"},"application/pgp-encrypted":{source:"iana",compressible:!1,extensions:["pgp"]},"application/pgp-keys":{source:"iana"},"application/pgp-signature":{source:"iana",extensions:["asc","sig"]},"application/pics-rules":{source:"apache",extensions:["prf"]},"application/pidf+xml":{source:"iana"},"application/pidf-diff+xml":{source:"iana"},"application/pkcs10":{source:"iana",extensions:["p10"]},"application/pkcs12":{source:"iana"},"application/pkcs7-mime":{source:"iana",extensions:["p7m","p7c"]},"application/pkcs7-signature":{source:"iana",extensions:["p7s"]},"application/pkcs8":{source:"iana",extensions:["p8"]},"application/pkcs8-encrypted":{source:"iana"},"application/pkix-attr-cert":{source:"iana",extensions:["ac"]},"application/pkix-cert":{source:"iana",extensions:["cer"]},"application/pkix-crl":{source:"iana",extensions:["crl"]},"application/pkix-pkipath":{source:"iana",extensions:["pkipath"]},"application/pkixcmp":{source:"iana",extensions:["pki"]},"application/pls+xml":{source:"iana",extensions:["pls"]},"application/poc-settings+xml":{source:"iana"},"application/postscript":{source:"iana",compressible:!0,extensions:["ai","eps","ps"]},"application/ppsp-tracker+json":{source:"iana",compressible:!0},"application/problem+json":{source:"iana",compressible:!0},"application/problem+xml":{source:"iana"},"application/provenance+xml":{source:"iana"},"application/prs.alvestrand.titrax-sheet":{source:"iana"},"application/prs.cww":{source:"iana",extensions:["cww"]},"application/prs.hpub+zip":{source:"iana"},"application/prs.nprend":{source:"iana"},"application/prs.plucker":{source:"iana"},"application/prs.rdf-xml-crypt":{source:"iana"},"application/prs.xsf+xml":{source:"iana"},"application/pskc+xml":{source:"iana",extensions:["pskcxml"]},"application/qsig":{source:"iana"},"application/raml+yaml":{compressible:!0,extensions:["raml"]},"application/raptorfec":{source:"iana"},"application/rdap+json":{source:"iana",compressible:!0},"application/rdf+xml":{source:"iana",compressible:!0,extensions:["rdf"]},"application/reginfo+xml":{source:"iana",extensions:["rif"]},"application/relax-ng-compact-syntax":{source:"iana",extensions:["rnc"]},"application/remote-printing":{source:"iana"},"application/reputon+json":{source:"iana",compressible:!0},"application/resource-lists+xml":{source:"iana",extensions:["rl"]},"application/resource-lists-diff+xml":{source:"iana",extensions:["rld"]},"application/rfc+xml":{source:"iana"},"application/riscos":{source:"iana"},"application/rlmi+xml":{source:"iana"},"application/rls-services+xml":{source:"iana",extensions:["rs"]},"application/route-apd+xml":{source:"iana"},"application/route-s-tsid+xml":{source:"iana"},"application/route-usd+xml":{source:"iana"},"application/rpki-ghostbusters":{source:"iana",extensions:["gbr"]},"application/rpki-manifest":{source:"iana",extensions:["mft"]},"application/rpki-publication":{source:"iana"},"application/rpki-roa":{source:"iana",extensions:["roa"]},"application/rpki-updown":{source:"iana"},"application/rsd+xml":{source:"apache",extensions:["rsd"]},"application/rss+xml":{source:"apache",compressible:!0,extensions:["rss"]},"application/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"application/rtploopback":{source:"iana"},"application/rtx":{source:"iana"},"application/samlassertion+xml":{source:"iana"},"application/samlmetadata+xml":{source:"iana"},"application/sbml+xml":{source:"iana",extensions:["sbml"]},"application/scaip+xml":{source:"iana"},"application/scim+json":{source:"iana",compressible:!0},"application/scvp-cv-request":{source:"iana",extensions:["scq"]},"application/scvp-cv-response":{source:"iana",extensions:["scs"]},"application/scvp-vp-request":{source:"iana",extensions:["spq"]},"application/scvp-vp-response":{source:"iana",extensions:["spp"]},"application/sdp":{source:"iana",extensions:["sdp"]},"application/sep+xml":{source:"iana"},"application/sep-exi":{source:"iana"},"application/session-info":{source:"iana"},"application/set-payment":{source:"iana"},"application/set-payment-initiation":{source:"iana",extensions:["setpay"]},"application/set-registration":{source:"iana"},"application/set-registration-initiation":{source:"iana",extensions:["setreg"]},"application/sgml":{source:"iana"},"application/sgml-open-catalog":{source:"iana"},"application/shf+xml":{source:"iana",extensions:["shf"]},"application/sieve":{source:"iana"},"application/simple-filter+xml":{source:"iana"},"application/simple-message-summary":{source:"iana"},"application/simplesymbolcontainer":{source:"iana"},"application/slate":{source:"iana"},"application/smil":{source:"iana"},"application/smil+xml":{source:"iana",extensions:["smi","smil"]},"application/smpte336m":{source:"iana"},"application/soap+fastinfoset":{source:"iana"},"application/soap+xml":{source:"iana",compressible:!0},"application/sparql-query":{source:"iana",extensions:["rq"]},"application/sparql-results+xml":{source:"iana",extensions:["srx"]},"application/spirits-event+xml":{source:"iana"},"application/sql":{source:"iana"},"application/srgs":{source:"iana",extensions:["gram"]},"application/srgs+xml":{source:"iana",extensions:["grxml"]},"application/sru+xml":{source:"iana",extensions:["sru"]},"application/ssdl+xml":{source:"apache",extensions:["ssdl"]},"application/ssml+xml":{source:"iana",extensions:["ssml"]},"application/tamp-apex-update":{source:"iana"},"application/tamp-apex-update-confirm":{source:"iana"},"application/tamp-community-update":{source:"iana"},"application/tamp-community-update-confirm":{source:"iana"},"application/tamp-error":{source:"iana"},"application/tamp-sequence-adjust":{source:"iana"},"application/tamp-sequence-adjust-confirm":{source:"iana"},"application/tamp-status-query":{source:"iana"},"application/tamp-status-response":{source:"iana"},"application/tamp-update":{source:"iana"},"application/tamp-update-confirm":{source:"iana"},"application/tar":{compressible:!0},"application/tei+xml":{source:"iana",extensions:["tei","teicorpus"]},"application/thraud+xml":{source:"iana",extensions:["tfi"]},"application/timestamp-query":{source:"iana"},"application/timestamp-reply":{source:"iana"},"application/timestamped-data":{source:"iana",extensions:["tsd"]},"application/tnauthlist":{source:"iana"},"application/trig":{source:"iana"},"application/ttml+xml":{source:"iana"},"application/tve-trigger":{source:"iana"},"application/ulpfec":{source:"iana"},"application/urc-grpsheet+xml":{source:"iana"},"application/urc-ressheet+xml":{source:"iana"},"application/urc-targetdesc+xml":{source:"iana"},"application/urc-uisocketdesc+xml":{source:"iana"},"application/vcard+json":{source:"iana",compressible:!0},"application/vcard+xml":{source:"iana"},"application/vemmi":{source:"iana"},"application/vividence.scriptfile":{source:"apache"},"application/vnd.1000minds.decision-model+xml":{source:"iana"},"application/vnd.3gpp-prose+xml":{source:"iana"},"application/vnd.3gpp-prose-pc3ch+xml":{source:"iana"},"application/vnd.3gpp-v2x-local-service-information":{source:"iana"},"application/vnd.3gpp.access-transfer-events+xml":{source:"iana"},"application/vnd.3gpp.bsf+xml":{source:"iana"},"application/vnd.3gpp.gmop+xml":{source:"iana"},"application/vnd.3gpp.mcptt-affiliation-command+xml":{source:"iana"},"application/vnd.3gpp.mcptt-floor-request+xml":{source:"iana"},"application/vnd.3gpp.mcptt-info+xml":{source:"iana"},"application/vnd.3gpp.mcptt-location-info+xml":{source:"iana"},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{source:"iana"},"application/vnd.3gpp.mcptt-signed+xml":{source:"iana"},"application/vnd.3gpp.mid-call+xml":{source:"iana"},"application/vnd.3gpp.pic-bw-large":{source:"iana",extensions:["plb"]},"application/vnd.3gpp.pic-bw-small":{source:"iana",extensions:["psb"]},"application/vnd.3gpp.pic-bw-var":{source:"iana",extensions:["pvb"]},"application/vnd.3gpp.sms":{source:"iana"},"application/vnd.3gpp.sms+xml":{source:"iana"},"application/vnd.3gpp.srvcc-ext+xml":{source:"iana"},"application/vnd.3gpp.srvcc-info+xml":{source:"iana"},"application/vnd.3gpp.state-and-event-info+xml":{source:"iana"},"application/vnd.3gpp.ussd+xml":{source:"iana"},"application/vnd.3gpp2.bcmcsinfo+xml":{source:"iana"},"application/vnd.3gpp2.sms":{source:"iana"},"application/vnd.3gpp2.tcap":{source:"iana",extensions:["tcap"]},"application/vnd.3lightssoftware.imagescal":{source:"iana"},"application/vnd.3m.post-it-notes":{source:"iana",extensions:["pwn"]},"application/vnd.accpac.simply.aso":{source:"iana",extensions:["aso"]},"application/vnd.accpac.simply.imp":{source:"iana",extensions:["imp"]},"application/vnd.acucobol":{source:"iana",extensions:["acu"]},"application/vnd.acucorp":{source:"iana",extensions:["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{source:"apache",extensions:["air"]},"application/vnd.adobe.flash.movie":{source:"iana"},"application/vnd.adobe.formscentral.fcdt":{source:"iana",extensions:["fcdt"]},"application/vnd.adobe.fxp":{source:"iana",extensions:["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{source:"iana"},"application/vnd.adobe.xdp+xml":{source:"iana",extensions:["xdp"]},"application/vnd.adobe.xfdf":{source:"iana",extensions:["xfdf"]},"application/vnd.aether.imp":{source:"iana"},"application/vnd.ah-barcode":{source:"iana"},"application/vnd.ahead.space":{source:"iana",extensions:["ahead"]},"application/vnd.airzip.filesecure.azf":{source:"iana",extensions:["azf"]},"application/vnd.airzip.filesecure.azs":{source:"iana",extensions:["azs"]},"application/vnd.amadeus+json":{source:"iana",compressible:!0},"application/vnd.amazon.ebook":{source:"apache",extensions:["azw"]},"application/vnd.amazon.mobi8-ebook":{source:"iana"},"application/vnd.americandynamics.acc":{source:"iana",extensions:["acc"]},"application/vnd.amiga.ami":{source:"iana",extensions:["ami"]},"application/vnd.amundsen.maze+xml":{source:"iana"},"application/vnd.android.package-archive":{source:"apache",compressible:!1,extensions:["apk"]},"application/vnd.anki":{source:"iana"},"application/vnd.anser-web-certificate-issue-initiation":{source:"iana",extensions:["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{source:"apache",extensions:["fti"]},"application/vnd.antix.game-component":{source:"iana",extensions:["atx"]},"application/vnd.apache.thrift.binary":{source:"iana"},"application/vnd.apache.thrift.compact":{source:"iana"},"application/vnd.apache.thrift.json":{source:"iana"},"application/vnd.api+json":{source:"iana",compressible:!0},"application/vnd.apothekende.reservation+json":{source:"iana",compressible:!0},"application/vnd.apple.installer+xml":{source:"iana",extensions:["mpkg"]},"application/vnd.apple.mpegurl":{source:"iana",extensions:["m3u8"]},"application/vnd.apple.pkpass":{compressible:!1,extensions:["pkpass"]},"application/vnd.arastra.swi":{source:"iana"},"application/vnd.aristanetworks.swi":{source:"iana",extensions:["swi"]},"application/vnd.artsquare":{source:"iana"},"application/vnd.astraea-software.iota":{source:"iana",extensions:["iota"]},"application/vnd.audiograph":{source:"iana",extensions:["aep"]},"application/vnd.autopackage":{source:"iana"},"application/vnd.avalon+json":{source:"iana",compressible:!0},"application/vnd.avistar+xml":{source:"iana"},"application/vnd.balsamiq.bmml+xml":{source:"iana"},"application/vnd.balsamiq.bmpr":{source:"iana"},"application/vnd.bbf.usp.msg":{source:"iana"},"application/vnd.bbf.usp.msg+json":{source:"iana",compressible:!0},"application/vnd.bekitzur-stech+json":{source:"iana",compressible:!0},"application/vnd.bint.med-content":{source:"iana"},"application/vnd.biopax.rdf+xml":{source:"iana"},"application/vnd.blink-idb-value-wrapper":{source:"iana"},"application/vnd.blueice.multipass":{source:"iana",extensions:["mpm"]},"application/vnd.bluetooth.ep.oob":{source:"iana"},"application/vnd.bluetooth.le.oob":{source:"iana"},"application/vnd.bmi":{source:"iana",extensions:["bmi"]},"application/vnd.businessobjects":{source:"iana",extensions:["rep"]},"application/vnd.cab-jscript":{source:"iana"},"application/vnd.canon-cpdl":{source:"iana"},"application/vnd.canon-lips":{source:"iana"},"application/vnd.capasystems-pg+json":{source:"iana",compressible:!0},"application/vnd.cendio.thinlinc.clientconf":{source:"iana"},"application/vnd.century-systems.tcp_stream":{source:"iana"},"application/vnd.chemdraw+xml":{source:"iana",extensions:["cdxml"]},"application/vnd.chess-pgn":{source:"iana"},"application/vnd.chipnuts.karaoke-mmd":{source:"iana",extensions:["mmd"]},"application/vnd.cinderella":{source:"iana",extensions:["cdy"]},"application/vnd.cirpack.isdn-ext":{source:"iana"},"application/vnd.citationstyles.style+xml":{source:"iana"},"application/vnd.claymore":{source:"iana",extensions:["cla"]},"application/vnd.cloanto.rp9":{source:"iana",extensions:["rp9"]},"application/vnd.clonk.c4group":{source:"iana",extensions:["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{source:"iana",extensions:["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{source:"iana",extensions:["c11amz"]},"application/vnd.coffeescript":{source:"iana"},"application/vnd.collabio.xodocuments.document":{source:"iana"},"application/vnd.collabio.xodocuments.document-template":{source:"iana"},"application/vnd.collabio.xodocuments.presentation":{source:"iana"},"application/vnd.collabio.xodocuments.presentation-template":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{source:"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{source:"iana"},"application/vnd.collection+json":{source:"iana",compressible:!0},"application/vnd.collection.doc+json":{source:"iana",compressible:!0},"application/vnd.collection.next+json":{source:"iana",compressible:!0},"application/vnd.comicbook+zip":{source:"iana"},"application/vnd.comicbook-rar":{source:"iana"},"application/vnd.commerce-battelle":{source:"iana"},"application/vnd.commonspace":{source:"iana",extensions:["csp"]},"application/vnd.contact.cmsg":{source:"iana",extensions:["cdbcmsg"]},"application/vnd.coreos.ignition+json":{source:"iana",compressible:!0},"application/vnd.cosmocaller":{source:"iana",extensions:["cmc"]},"application/vnd.crick.clicker":{source:"iana",extensions:["clkx"]},"application/vnd.crick.clicker.keyboard":{source:"iana",extensions:["clkk"]},"application/vnd.crick.clicker.palette":{source:"iana",extensions:["clkp"]},"application/vnd.crick.clicker.template":{source:"iana",extensions:["clkt"]},"application/vnd.crick.clicker.wordbank":{source:"iana",extensions:["clkw"]},"application/vnd.criticaltools.wbs+xml":{source:"iana",extensions:["wbs"]},"application/vnd.ctc-posml":{source:"iana",extensions:["pml"]},"application/vnd.ctct.ws+xml":{source:"iana"},"application/vnd.cups-pdf":{source:"iana"},"application/vnd.cups-postscript":{source:"iana"},"application/vnd.cups-ppd":{source:"iana",extensions:["ppd"]},"application/vnd.cups-raster":{source:"iana"},"application/vnd.cups-raw":{source:"iana"},"application/vnd.curl":{source:"iana"},"application/vnd.curl.car":{source:"apache",extensions:["car"]},"application/vnd.curl.pcurl":{source:"apache",extensions:["pcurl"]},"application/vnd.cyan.dean.root+xml":{source:"iana"},"application/vnd.cybank":{source:"iana"},"application/vnd.d2l.coursepackage1p0+zip":{source:"iana"},"application/vnd.dart":{source:"iana",compressible:!0,extensions:["dart"]},"application/vnd.data-vision.rdz":{source:"iana",extensions:["rdz"]},"application/vnd.datapackage+json":{source:"iana",compressible:!0},"application/vnd.dataresource+json":{source:"iana",compressible:!0},"application/vnd.debian.binary-package":{source:"iana"},"application/vnd.dece.data":{source:"iana",extensions:["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{source:"iana",extensions:["uvt","uvvt"]},"application/vnd.dece.unspecified":{source:"iana",extensions:["uvx","uvvx"]},"application/vnd.dece.zip":{source:"iana",extensions:["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{source:"iana",extensions:["fe_launch"]},"application/vnd.desmume-movie":{source:"iana"},"application/vnd.desmume.movie":{source:"apache"},"application/vnd.dir-bi.plate-dl-nosuffix":{source:"iana"},"application/vnd.dm.delegation+xml":{source:"iana"},"application/vnd.dna":{source:"iana",extensions:["dna"]},"application/vnd.document+json":{source:"iana",compressible:!0},"application/vnd.dolby.mlp":{source:"apache",extensions:["mlp"]},"application/vnd.dolby.mobile.1":{source:"iana"},"application/vnd.dolby.mobile.2":{source:"iana"},"application/vnd.doremir.scorecloud-binary-document":{source:"iana"},"application/vnd.dpgraph":{source:"iana",extensions:["dpg"]},"application/vnd.dreamfactory":{source:"iana",extensions:["dfac"]},"application/vnd.drive+json":{source:"iana",compressible:!0},"application/vnd.ds-keypoint":{source:"apache",extensions:["kpxx"]},"application/vnd.dtg.local":{source:"iana"},"application/vnd.dtg.local.flash":{source:"iana"},"application/vnd.dtg.local.html":{source:"iana"},"application/vnd.dvb.ait":{source:"iana",extensions:["ait"]},"application/vnd.dvb.dvbj":{source:"iana"},"application/vnd.dvb.esgcontainer":{source:"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess":{source:"iana"},"application/vnd.dvb.ipdcesgaccess2":{source:"iana"},"application/vnd.dvb.ipdcesgpdd":{source:"iana"},"application/vnd.dvb.ipdcroaming":{source:"iana"},"application/vnd.dvb.iptv.alfec-base":{source:"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{source:"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{source:"iana"},"application/vnd.dvb.notif-container+xml":{source:"iana"},"application/vnd.dvb.notif-generic+xml":{source:"iana"},"application/vnd.dvb.notif-ia-msglist+xml":{source:"iana"},"application/vnd.dvb.notif-ia-registration-request+xml":{source:"iana"},"application/vnd.dvb.notif-ia-registration-response+xml":{source:"iana"},"application/vnd.dvb.notif-init+xml":{source:"iana"},"application/vnd.dvb.pfr":{source:"iana"},"application/vnd.dvb.service":{source:"iana",extensions:["svc"]},"application/vnd.dxr":{source:"iana"},"application/vnd.dynageo":{source:"iana",extensions:["geo"]},"application/vnd.dzr":{source:"iana"},"application/vnd.easykaraoke.cdgdownload":{source:"iana"},"application/vnd.ecdis-update":{source:"iana"},"application/vnd.ecip.rlp":{source:"iana"},"application/vnd.ecowin.chart":{source:"iana",extensions:["mag"]},"application/vnd.ecowin.filerequest":{source:"iana"},"application/vnd.ecowin.fileupdate":{source:"iana"},"application/vnd.ecowin.series":{source:"iana"},"application/vnd.ecowin.seriesrequest":{source:"iana"},"application/vnd.ecowin.seriesupdate":{source:"iana"},"application/vnd.efi.img":{source:"iana"},"application/vnd.efi.iso":{source:"iana"},"application/vnd.emclient.accessrequest+xml":{source:"iana"},"application/vnd.enliven":{source:"iana",extensions:["nml"]},"application/vnd.enphase.envoy":{source:"iana"},"application/vnd.eprints.data+xml":{source:"iana"},"application/vnd.epson.esf":{source:"iana",extensions:["esf"]},"application/vnd.epson.msf":{source:"iana",extensions:["msf"]},"application/vnd.epson.quickanime":{source:"iana",extensions:["qam"]},"application/vnd.epson.salt":{source:"iana",extensions:["slt"]},"application/vnd.epson.ssf":{source:"iana",extensions:["ssf"]},"application/vnd.ericsson.quickcall":{source:"iana"},"application/vnd.espass-espass+zip":{source:"iana"},"application/vnd.eszigno3+xml":{source:"iana",extensions:["es3","et3"]},"application/vnd.etsi.aoc+xml":{source:"iana"},"application/vnd.etsi.asic-e+zip":{source:"iana"},"application/vnd.etsi.asic-s+zip":{source:"iana"},"application/vnd.etsi.cug+xml":{source:"iana"},"application/vnd.etsi.iptvcommand+xml":{source:"iana"},"application/vnd.etsi.iptvdiscovery+xml":{source:"iana"},"application/vnd.etsi.iptvprofile+xml":{source:"iana"},"application/vnd.etsi.iptvsad-bc+xml":{source:"iana"},"application/vnd.etsi.iptvsad-cod+xml":{source:"iana"},"application/vnd.etsi.iptvsad-npvr+xml":{source:"iana"},"application/vnd.etsi.iptvservice+xml":{source:"iana"},"application/vnd.etsi.iptvsync+xml":{source:"iana"},"application/vnd.etsi.iptvueprofile+xml":{source:"iana"},"application/vnd.etsi.mcid+xml":{source:"iana"},"application/vnd.etsi.mheg5":{source:"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{source:"iana"},"application/vnd.etsi.pstn+xml":{source:"iana"},"application/vnd.etsi.sci+xml":{source:"iana"},"application/vnd.etsi.simservs+xml":{source:"iana"},"application/vnd.etsi.timestamp-token":{source:"iana"},"application/vnd.etsi.tsl+xml":{source:"iana"},"application/vnd.etsi.tsl.der":{source:"iana"},"application/vnd.eudora.data":{source:"iana"},"application/vnd.evolv.ecig.profile":{source:"iana"},"application/vnd.evolv.ecig.settings":{source:"iana"},"application/vnd.evolv.ecig.theme":{source:"iana"},"application/vnd.ezpix-album":{source:"iana",extensions:["ez2"]},"application/vnd.ezpix-package":{source:"iana",extensions:["ez3"]},"application/vnd.f-secure.mobile":{source:"iana"},"application/vnd.fastcopy-disk-image":{source:"iana"},"application/vnd.fdf":{source:"iana",extensions:["fdf"]},"application/vnd.fdsn.mseed":{source:"iana",extensions:["mseed"]},"application/vnd.fdsn.seed":{source:"iana",extensions:["seed","dataless"]},"application/vnd.ffsns":{source:"iana"},"application/vnd.filmit.zfc":{source:"iana"},"application/vnd.fints":{source:"iana"},"application/vnd.firemonkeys.cloudcell":{source:"iana"},"application/vnd.flographit":{source:"iana",extensions:["gph"]},"application/vnd.fluxtime.clip":{source:"iana",extensions:["ftc"]},"application/vnd.font-fontforge-sfd":{source:"iana"},"application/vnd.framemaker":{source:"iana",extensions:["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{source:"iana",extensions:["fnc"]},"application/vnd.frogans.ltf":{source:"iana",extensions:["ltf"]},"application/vnd.fsc.weblaunch":{source:"iana",extensions:["fsc"]},"application/vnd.fujitsu.oasys":{source:"iana",extensions:["oas"]},"application/vnd.fujitsu.oasys2":{source:"iana",extensions:["oa2"]},"application/vnd.fujitsu.oasys3":{source:"iana",extensions:["oa3"]},"application/vnd.fujitsu.oasysgp":{source:"iana",extensions:["fg5"]},"application/vnd.fujitsu.oasysprs":{source:"iana",extensions:["bh2"]},"application/vnd.fujixerox.art-ex":{source:"iana"},"application/vnd.fujixerox.art4":{source:"iana"},"application/vnd.fujixerox.ddd":{source:"iana",extensions:["ddd"]},"application/vnd.fujixerox.docuworks":{source:"iana",extensions:["xdw"]},"application/vnd.fujixerox.docuworks.binder":{source:"iana",extensions:["xbd"]},"application/vnd.fujixerox.docuworks.container":{source:"iana"},"application/vnd.fujixerox.hbpl":{source:"iana"},"application/vnd.fut-misnet":{source:"iana"},"application/vnd.fuzzysheet":{source:"iana",extensions:["fzs"]},"application/vnd.genomatix.tuxedo":{source:"iana",extensions:["txd"]},"application/vnd.geo+json":{source:"iana",compressible:!0},"application/vnd.geocube+xml":{source:"iana"},"application/vnd.geogebra.file":{source:"iana",extensions:["ggb"]},"application/vnd.geogebra.tool":{source:"iana",extensions:["ggt"]},"application/vnd.geometry-explorer":{source:"iana",extensions:["gex","gre"]},"application/vnd.geonext":{source:"iana",extensions:["gxt"]},"application/vnd.geoplan":{source:"iana",extensions:["g2w"]},"application/vnd.geospace":{source:"iana",extensions:["g3w"]},"application/vnd.gerber":{source:"iana"},"application/vnd.globalplatform.card-content-mgt":{source:"iana"},"application/vnd.globalplatform.card-content-mgt-response":{source:"iana"},"application/vnd.gmx":{source:"iana",extensions:["gmx"]},"application/vnd.google-apps.document":{compressible:!1,extensions:["gdoc"]},"application/vnd.google-apps.presentation":{compressible:!1,extensions:["gslides"]},"application/vnd.google-apps.spreadsheet":{compressible:!1,extensions:["gsheet"]},"application/vnd.google-earth.kml+xml":{source:"iana",compressible:!0,extensions:["kml"]},"application/vnd.google-earth.kmz":{source:"iana",compressible:!1,extensions:["kmz"]},"application/vnd.gov.sk.e-form+xml":{source:"iana"},"application/vnd.gov.sk.e-form+zip":{source:"iana"},"application/vnd.gov.sk.xmldatacontainer+xml":{source:"iana"},"application/vnd.grafeq":{source:"iana",extensions:["gqf","gqs"]},"application/vnd.gridmp":{source:"iana"},"application/vnd.groove-account":{source:"iana",extensions:["gac"]},"application/vnd.groove-help":{source:"iana",extensions:["ghf"]},"application/vnd.groove-identity-message":{source:"iana",extensions:["gim"]},"application/vnd.groove-injector":{source:"iana",extensions:["grv"]},"application/vnd.groove-tool-message":{source:"iana",extensions:["gtm"]},"application/vnd.groove-tool-template":{source:"iana",extensions:["tpl"]},"application/vnd.groove-vcard":{source:"iana",extensions:["vcg"]},"application/vnd.hal+json":{source:"iana",compressible:!0},"application/vnd.hal+xml":{source:"iana",extensions:["hal"]},"application/vnd.handheld-entertainment+xml":{source:"iana",extensions:["zmm"]},"application/vnd.hbci":{source:"iana",extensions:["hbci"]},"application/vnd.hc+json":{source:"iana",compressible:!0},"application/vnd.hcl-bireports":{source:"iana"},"application/vnd.hdt":{source:"iana"},"application/vnd.heroku+json":{source:"iana",compressible:!0},"application/vnd.hhe.lesson-player":{source:"iana",extensions:["les"]},"application/vnd.hp-hpgl":{source:"iana",extensions:["hpgl"]},"application/vnd.hp-hpid":{source:"iana",extensions:["hpid"]},"application/vnd.hp-hps":{source:"iana",extensions:["hps"]},"application/vnd.hp-jlyt":{source:"iana",extensions:["jlt"]},"application/vnd.hp-pcl":{source:"iana",extensions:["pcl"]},"application/vnd.hp-pclxl":{source:"iana",extensions:["pclxl"]},"application/vnd.httphone":{source:"iana"},"application/vnd.hydrostatix.sof-data":{source:"iana",extensions:["sfd-hdstx"]},"application/vnd.hyper-item+json":{source:"iana",compressible:!0},"application/vnd.hyperdrive+json":{source:"iana",compressible:!0},"application/vnd.hzn-3d-crossword":{source:"iana"},"application/vnd.ibm.afplinedata":{source:"iana"},"application/vnd.ibm.electronic-media":{source:"iana"},"application/vnd.ibm.minipay":{source:"iana",extensions:["mpy"]},"application/vnd.ibm.modcap":{source:"iana",extensions:["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{source:"iana",extensions:["irm"]},"application/vnd.ibm.secure-container":{source:"iana",extensions:["sc"]},"application/vnd.iccprofile":{source:"iana",extensions:["icc","icm"]},"application/vnd.ieee.1905":{source:"iana"},"application/vnd.igloader":{source:"iana",extensions:["igl"]},"application/vnd.imagemeter.folder+zip":{source:"iana"},"application/vnd.imagemeter.image+zip":{source:"iana"},"application/vnd.immervision-ivp":{source:"iana",extensions:["ivp"]},"application/vnd.immervision-ivu":{source:"iana",extensions:["ivu"]},"application/vnd.ims.imsccv1p1":{source:"iana"},"application/vnd.ims.imsccv1p2":{source:"iana"},"application/vnd.ims.imsccv1p3":{source:"iana"},"application/vnd.ims.lis.v2.result+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolproxy.id+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings+json":{source:"iana",compressible:!0},"application/vnd.ims.lti.v2.toolsettings.simple+json":{source:"iana",compressible:!0},"application/vnd.informedcontrol.rms+xml":{source:"iana"},"application/vnd.informix-visionary":{source:"iana"},"application/vnd.infotech.project":{source:"iana"},"application/vnd.infotech.project+xml":{source:"iana"},"application/vnd.innopath.wamp.notification":{source:"iana"},"application/vnd.insors.igm":{source:"iana",extensions:["igm"]},"application/vnd.intercon.formnet":{source:"iana",extensions:["xpw","xpx"]},"application/vnd.intergeo":{source:"iana",extensions:["i2g"]},"application/vnd.intertrust.digibox":{source:"iana"},"application/vnd.intertrust.nncp":{source:"iana"},"application/vnd.intu.qbo":{source:"iana",extensions:["qbo"]},"application/vnd.intu.qfx":{source:"iana",extensions:["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{source:"iana"},"application/vnd.iptc.g2.conceptitem+xml":{source:"iana"},"application/vnd.iptc.g2.knowledgeitem+xml":{source:"iana"},"application/vnd.iptc.g2.newsitem+xml":{source:"iana"},"application/vnd.iptc.g2.newsmessage+xml":{source:"iana"},"application/vnd.iptc.g2.packageitem+xml":{source:"iana"},"application/vnd.iptc.g2.planningitem+xml":{source:"iana"},"application/vnd.ipunplugged.rcprofile":{source:"iana",extensions:["rcprofile"]},"application/vnd.irepository.package+xml":{source:"iana",extensions:["irp"]},"application/vnd.is-xpr":{source:"iana",extensions:["xpr"]},"application/vnd.isac.fcs":{source:"iana",extensions:["fcs"]},"application/vnd.jam":{source:"iana",extensions:["jam"]},"application/vnd.japannet-directory-service":{source:"iana"},"application/vnd.japannet-jpnstore-wakeup":{source:"iana"},"application/vnd.japannet-payment-wakeup":{source:"iana"},"application/vnd.japannet-registration":{source:"iana"},"application/vnd.japannet-registration-wakeup":{source:"iana"},"application/vnd.japannet-setstore-wakeup":{source:"iana"},"application/vnd.japannet-verification":{source:"iana"},"application/vnd.japannet-verification-wakeup":{source:"iana"},"application/vnd.jcp.javame.midlet-rms":{source:"iana",extensions:["rms"]},"application/vnd.jisp":{source:"iana",extensions:["jisp"]},"application/vnd.joost.joda-archive":{source:"iana",extensions:["joda"]},"application/vnd.jsk.isdn-ngn":{source:"iana"},"application/vnd.kahootz":{source:"iana",extensions:["ktz","ktr"]},"application/vnd.kde.karbon":{source:"iana",extensions:["karbon"]},"application/vnd.kde.kchart":{source:"iana",extensions:["chrt"]},"application/vnd.kde.kformula":{source:"iana",extensions:["kfo"]},"application/vnd.kde.kivio":{source:"iana",extensions:["flw"]},"application/vnd.kde.kontour":{source:"iana",extensions:["kon"]},"application/vnd.kde.kpresenter":{source:"iana",extensions:["kpr","kpt"]},"application/vnd.kde.kspread":{source:"iana",extensions:["ksp"]},"application/vnd.kde.kword":{source:"iana",extensions:["kwd","kwt"]},"application/vnd.kenameaapp":{source:"iana",extensions:["htke"]},"application/vnd.kidspiration":{source:"iana",extensions:["kia"]},"application/vnd.kinar":{source:"iana",extensions:["kne","knp"]},"application/vnd.koan":{source:"iana",extensions:["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{source:"iana",extensions:["sse"]},"application/vnd.las.las+json":{source:"iana",compressible:!0},"application/vnd.las.las+xml":{source:"iana",extensions:["lasxml"]},"application/vnd.liberty-request+xml":{source:"iana"},"application/vnd.llamagraphics.life-balance.desktop":{source:"iana",extensions:["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{source:"iana",extensions:["lbe"]},"application/vnd.lotus-1-2-3":{source:"iana",extensions:["123"]},"application/vnd.lotus-approach":{source:"iana",extensions:["apr"]},"application/vnd.lotus-freelance":{source:"iana",extensions:["pre"]},"application/vnd.lotus-notes":{source:"iana",extensions:["nsf"]},"application/vnd.lotus-organizer":{source:"iana",extensions:["org"]},"application/vnd.lotus-screencam":{source:"iana",extensions:["scm"]},"application/vnd.lotus-wordpro":{source:"iana",extensions:["lwp"]},"application/vnd.macports.portpkg":{source:"iana",extensions:["portpkg"]},"application/vnd.mapbox-vector-tile":{source:"iana"},"application/vnd.marlin.drm.actiontoken+xml":{source:"iana"},"application/vnd.marlin.drm.conftoken+xml":{source:"iana"},"application/vnd.marlin.drm.license+xml":{source:"iana"},"application/vnd.marlin.drm.mdcf":{source:"iana"},"application/vnd.mason+json":{source:"iana",compressible:!0},"application/vnd.maxmind.maxmind-db":{source:"iana"},"application/vnd.mcd":{source:"iana",extensions:["mcd"]},"application/vnd.medcalcdata":{source:"iana",extensions:["mc1"]},"application/vnd.mediastation.cdkey":{source:"iana",extensions:["cdkey"]},"application/vnd.meridian-slingshot":{source:"iana"},"application/vnd.mfer":{source:"iana",extensions:["mwf"]},"application/vnd.mfmp":{source:"iana",extensions:["mfm"]},"application/vnd.micro+json":{source:"iana",compressible:!0},"application/vnd.micrografx.flo":{source:"iana",extensions:["flo"]},"application/vnd.micrografx.igx":{source:"iana",extensions:["igx"]},"application/vnd.microsoft.portable-executable":{source:"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{source:"iana"},"application/vnd.miele+json":{source:"iana",compressible:!0},"application/vnd.mif":{source:"iana",extensions:["mif"]},"application/vnd.minisoft-hp3000-save":{source:"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{source:"iana"},"application/vnd.mobius.daf":{source:"iana",extensions:["daf"]},"application/vnd.mobius.dis":{source:"iana",extensions:["dis"]},"application/vnd.mobius.mbk":{source:"iana",extensions:["mbk"]},"application/vnd.mobius.mqy":{source:"iana",extensions:["mqy"]},"application/vnd.mobius.msl":{source:"iana",extensions:["msl"]},"application/vnd.mobius.plc":{source:"iana",extensions:["plc"]},"application/vnd.mobius.txf":{source:"iana",extensions:["txf"]},"application/vnd.mophun.application":{source:"iana",extensions:["mpn"]},"application/vnd.mophun.certificate":{source:"iana",extensions:["mpc"]},"application/vnd.motorola.flexsuite":{source:"iana"},"application/vnd.motorola.flexsuite.adsi":{source:"iana"},"application/vnd.motorola.flexsuite.fis":{source:"iana"},"application/vnd.motorola.flexsuite.gotap":{source:"iana"},"application/vnd.motorola.flexsuite.kmr":{source:"iana"},"application/vnd.motorola.flexsuite.ttc":{source:"iana"},"application/vnd.motorola.flexsuite.wem":{source:"iana"},"application/vnd.motorola.iprm":{source:"iana"},"application/vnd.mozilla.xul+xml":{source:"iana",compressible:!0,extensions:["xul"]},"application/vnd.ms-3mfdocument":{source:"iana"},"application/vnd.ms-artgalry":{source:"iana",extensions:["cil"]},"application/vnd.ms-asf":{source:"iana"},"application/vnd.ms-cab-compressed":{source:"iana",extensions:["cab"]},"application/vnd.ms-color.iccprofile":{source:"apache"},"application/vnd.ms-excel":{source:"iana",compressible:!1,extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{source:"iana",extensions:["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{source:"iana",extensions:["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{source:"iana",extensions:["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{source:"iana",extensions:["xltm"]},"application/vnd.ms-fontobject":{source:"iana",compressible:!0,extensions:["eot"]},"application/vnd.ms-htmlhelp":{source:"iana",extensions:["chm"]},"application/vnd.ms-ims":{source:"iana",extensions:["ims"]},"application/vnd.ms-lrm":{source:"iana",extensions:["lrm"]},"application/vnd.ms-office.activex+xml":{source:"iana"},"application/vnd.ms-officetheme":{source:"iana",extensions:["thmx"]},"application/vnd.ms-opentype":{source:"apache",compressible:!0},"application/vnd.ms-outlook":{compressible:!1,extensions:["msg"]},"application/vnd.ms-package.obfuscated-opentype":{source:"apache"},"application/vnd.ms-pki.seccat":{source:"apache",extensions:["cat"]},"application/vnd.ms-pki.stl":{source:"apache",extensions:["stl"]},"application/vnd.ms-playready.initiator+xml":{source:"iana"},"application/vnd.ms-powerpoint":{source:"iana",compressible:!1,extensions:["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{source:"iana",extensions:["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{source:"iana",extensions:["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{source:"iana",extensions:["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{source:"iana",extensions:["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{source:"iana",extensions:["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{source:"iana"},"application/vnd.ms-printing.printticket+xml":{source:"apache"},"application/vnd.ms-printschematicket+xml":{source:"iana"},"application/vnd.ms-project":{source:"iana",extensions:["mpp","mpt"]},"application/vnd.ms-tnef":{source:"iana"},"application/vnd.ms-windows.devicepairing":{source:"iana"},"application/vnd.ms-windows.nwprinting.oob":{source:"iana"},"application/vnd.ms-windows.printerpairing":{source:"iana"},"application/vnd.ms-windows.wsd.oob":{source:"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.lic-resp":{source:"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{source:"iana"},"application/vnd.ms-wmdrm.meter-resp":{source:"iana"},"application/vnd.ms-word.document.macroenabled.12":{source:"iana",extensions:["docm"]},"application/vnd.ms-word.template.macroenabled.12":{source:"iana",extensions:["dotm"]},"application/vnd.ms-works":{source:"iana",extensions:["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{source:"iana",extensions:["wpl"]},"application/vnd.ms-xpsdocument":{source:"iana",compressible:!1,extensions:["xps"]},"application/vnd.msa-disk-image":{source:"iana"},"application/vnd.mseq":{source:"iana",extensions:["mseq"]},"application/vnd.msign":{source:"iana"},"application/vnd.multiad.creator":{source:"iana"},"application/vnd.multiad.creator.cif":{source:"iana"},"application/vnd.music-niff":{source:"iana"},"application/vnd.musician":{source:"iana",extensions:["mus"]},"application/vnd.muvee.style":{source:"iana",extensions:["msty"]},"application/vnd.mynfc":{source:"iana",extensions:["taglet"]},"application/vnd.ncd.control":{source:"iana"},"application/vnd.ncd.reference":{source:"iana"},"application/vnd.nearst.inv+json":{source:"iana",compressible:!0},"application/vnd.nervana":{source:"iana"},"application/vnd.netfpx":{source:"iana"},"application/vnd.neurolanguage.nlu":{source:"iana",extensions:["nlu"]},"application/vnd.nintendo.nitro.rom":{source:"iana"},"application/vnd.nintendo.snes.rom":{source:"iana"},"application/vnd.nitf":{source:"iana",extensions:["ntf","nitf"]},"application/vnd.noblenet-directory":{source:"iana",extensions:["nnd"]},"application/vnd.noblenet-sealer":{source:"iana",extensions:["nns"]},"application/vnd.noblenet-web":{source:"iana",extensions:["nnw"]},"application/vnd.nokia.catalogs":{source:"iana"},"application/vnd.nokia.conml+wbxml":{source:"iana"},"application/vnd.nokia.conml+xml":{source:"iana"},"application/vnd.nokia.iptv.config+xml":{source:"iana"},"application/vnd.nokia.isds-radio-presets":{source:"iana"},"application/vnd.nokia.landmark+wbxml":{source:"iana"},"application/vnd.nokia.landmark+xml":{source:"iana"},"application/vnd.nokia.landmarkcollection+xml":{source:"iana"},"application/vnd.nokia.n-gage.ac+xml":{source:"iana"},"application/vnd.nokia.n-gage.data":{source:"iana",extensions:["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{source:"iana",extensions:["n-gage"]},"application/vnd.nokia.ncd":{source:"iana"},"application/vnd.nokia.pcd+wbxml":{source:"iana"},"application/vnd.nokia.pcd+xml":{source:"iana"},"application/vnd.nokia.radio-preset":{source:"iana",extensions:["rpst"]},"application/vnd.nokia.radio-presets":{source:"iana",extensions:["rpss"]},"application/vnd.novadigm.edm":{source:"iana",extensions:["edm"]},"application/vnd.novadigm.edx":{source:"iana",extensions:["edx"]},"application/vnd.novadigm.ext":{source:"iana",extensions:["ext"]},"application/vnd.ntt-local.content-share":{source:"iana"},"application/vnd.ntt-local.file-transfer":{source:"iana"},"application/vnd.ntt-local.ogw_remote-access":{source:"iana"},"application/vnd.ntt-local.sip-ta_remote":{source:"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{source:"iana"},"application/vnd.oasis.opendocument.chart":{source:"iana",extensions:["odc"]},"application/vnd.oasis.opendocument.chart-template":{source:"iana",extensions:["otc"]},"application/vnd.oasis.opendocument.database":{source:"iana",extensions:["odb"]},"application/vnd.oasis.opendocument.formula":{source:"iana",extensions:["odf"]},"application/vnd.oasis.opendocument.formula-template":{source:"iana",extensions:["odft"]},"application/vnd.oasis.opendocument.graphics":{source:"iana",compressible:!1,extensions:["odg"]},"application/vnd.oasis.opendocument.graphics-template":{source:"iana",extensions:["otg"]},"application/vnd.oasis.opendocument.image":{source:"iana",extensions:["odi"]},"application/vnd.oasis.opendocument.image-template":{source:"iana",extensions:["oti"]},"application/vnd.oasis.opendocument.presentation":{source:"iana",compressible:!1,extensions:["odp"]},"application/vnd.oasis.opendocument.presentation-template":{source:"iana",extensions:["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{source:"iana",compressible:!1,extensions:["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{source:"iana",extensions:["ots"]},"application/vnd.oasis.opendocument.text":{source:"iana",compressible:!1,extensions:["odt"]},"application/vnd.oasis.opendocument.text-master":{source:"iana",extensions:["odm"]},"application/vnd.oasis.opendocument.text-template":{source:"iana",extensions:["ott"]},"application/vnd.oasis.opendocument.text-web":{source:"iana",extensions:["oth"]},"application/vnd.obn":{source:"iana"},"application/vnd.ocf+cbor":{source:"iana"},"application/vnd.oftn.l10n+json":{source:"iana",compressible:!0},"application/vnd.oipf.contentaccessdownload+xml":{source:"iana"},"application/vnd.oipf.contentaccessstreaming+xml":{source:"iana"},"application/vnd.oipf.cspg-hexbinary":{source:"iana"},"application/vnd.oipf.dae.svg+xml":{source:"iana"},"application/vnd.oipf.dae.xhtml+xml":{source:"iana"},"application/vnd.oipf.mippvcontrolmessage+xml":{source:"iana"},"application/vnd.oipf.pae.gem":{source:"iana"},"application/vnd.oipf.spdiscovery+xml":{source:"iana"},"application/vnd.oipf.spdlist+xml":{source:"iana"},"application/vnd.oipf.ueprofile+xml":{source:"iana"},"application/vnd.oipf.userprofile+xml":{source:"iana"},"application/vnd.olpc-sugar":{source:"iana",extensions:["xo"]},"application/vnd.oma-scws-config":{source:"iana"},"application/vnd.oma-scws-http-request":{source:"iana"},"application/vnd.oma-scws-http-response":{source:"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{source:"iana"},"application/vnd.oma.bcast.drm-trigger+xml":{source:"iana"},"application/vnd.oma.bcast.imd+xml":{source:"iana"},"application/vnd.oma.bcast.ltkm":{source:"iana"},"application/vnd.oma.bcast.notification+xml":{source:"iana"},"application/vnd.oma.bcast.provisioningtrigger":{source:"iana"},"application/vnd.oma.bcast.sgboot":{source:"iana"},"application/vnd.oma.bcast.sgdd+xml":{source:"iana"},"application/vnd.oma.bcast.sgdu":{source:"iana"},"application/vnd.oma.bcast.simple-symbol-container":{source:"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{source:"iana"},"application/vnd.oma.bcast.sprov+xml":{source:"iana"},"application/vnd.oma.bcast.stkm":{source:"iana"},"application/vnd.oma.cab-address-book+xml":{source:"iana"},"application/vnd.oma.cab-feature-handler+xml":{source:"iana"},"application/vnd.oma.cab-pcc+xml":{source:"iana"},"application/vnd.oma.cab-subs-invite+xml":{source:"iana"},"application/vnd.oma.cab-user-prefs+xml":{source:"iana"},"application/vnd.oma.dcd":{source:"iana"},"application/vnd.oma.dcdc":{source:"iana"},"application/vnd.oma.dd2+xml":{source:"iana",extensions:["dd2"]},"application/vnd.oma.drm.risd+xml":{source:"iana"},"application/vnd.oma.group-usage-list+xml":{source:"iana"},"application/vnd.oma.lwm2m+json":{source:"iana",compressible:!0},"application/vnd.oma.lwm2m+tlv":{source:"iana"},"application/vnd.oma.pal+xml":{source:"iana"},"application/vnd.oma.poc.detailed-progress-report+xml":{source:"iana"},"application/vnd.oma.poc.final-report+xml":{source:"iana"},"application/vnd.oma.poc.groups+xml":{source:"iana"},"application/vnd.oma.poc.invocation-descriptor+xml":{source:"iana"},"application/vnd.oma.poc.optimized-progress-report+xml":{source:"iana"},"application/vnd.oma.push":{source:"iana"},"application/vnd.oma.scidm.messages+xml":{source:"iana"},"application/vnd.oma.xcap-directory+xml":{source:"iana"},"application/vnd.omads-email+xml":{source:"iana"},"application/vnd.omads-file+xml":{source:"iana"},"application/vnd.omads-folder+xml":{source:"iana"},"application/vnd.omaloc-supl-init":{source:"iana"},"application/vnd.onepager":{source:"iana"},"application/vnd.onepagertamp":{source:"iana"},"application/vnd.onepagertamx":{source:"iana"},"application/vnd.onepagertat":{source:"iana"},"application/vnd.onepagertatp":{source:"iana"},"application/vnd.onepagertatx":{source:"iana"},"application/vnd.openblox.game+xml":{source:"iana"},"application/vnd.openblox.game-binary":{source:"iana"},"application/vnd.openeye.oeb":{source:"iana"},"application/vnd.openofficeorg.extension":{source:"apache",extensions:["oxt"]},"application/vnd.openstreetmap.data+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.drawing+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{source:"iana",compressible:!1,extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.slide":{source:"iana",extensions:["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{source:"iana",extensions:["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.template":{source:"iana",extensions:["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{source:"iana",compressible:!1,extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{source:"iana",extensions:["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.theme+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.vmldrawing":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{source:"iana",compressible:!1,extensions:["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{source:"iana",extensions:["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{source:"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{source:"iana"},"application/vnd.openxmlformats-package.core-properties+xml":{source:"iana"},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{source:"iana"},"application/vnd.openxmlformats-package.relationships+xml":{source:"iana"},"application/vnd.oracle.resource+json":{source:"iana",compressible:!0},"application/vnd.orange.indata":{source:"iana"},"application/vnd.osa.netdeploy":{source:"iana"},"application/vnd.osgeo.mapguide.package":{source:"iana",extensions:["mgp"]},"application/vnd.osgi.bundle":{source:"iana"},"application/vnd.osgi.dp":{source:"iana",extensions:["dp"]},"application/vnd.osgi.subsystem":{source:"iana",extensions:["esa"]},"application/vnd.otps.ct-kip+xml":{source:"iana"},"application/vnd.oxli.countgraph":{source:"iana"},"application/vnd.pagerduty+json":{source:"iana",compressible:!0},"application/vnd.palm":{source:"iana",extensions:["pdb","pqa","oprc"]},"application/vnd.panoply":{source:"iana"},"application/vnd.paos+xml":{source:"iana"},"application/vnd.paos.xml":{source:"apache"},"application/vnd.patentdive":{source:"iana"},"application/vnd.pawaafile":{source:"iana",extensions:["paw"]},"application/vnd.pcos":{source:"iana"},"application/vnd.pg.format":{source:"iana",extensions:["str"]},"application/vnd.pg.osasli":{source:"iana",extensions:["ei6"]},"application/vnd.piaccess.application-licence":{source:"iana"},"application/vnd.picsel":{source:"iana",extensions:["efif"]},"application/vnd.pmi.widget":{source:"iana",extensions:["wg"]},"application/vnd.poc.group-advertisement+xml":{source:"iana"},"application/vnd.pocketlearn":{source:"iana",extensions:["plf"]},"application/vnd.powerbuilder6":{source:"iana",extensions:["pbd"]},"application/vnd.powerbuilder6-s":{source:"iana"},"application/vnd.powerbuilder7":{source:"iana"},"application/vnd.powerbuilder7-s":{source:"iana"},"application/vnd.powerbuilder75":{source:"iana"},"application/vnd.powerbuilder75-s":{source:"iana"},"application/vnd.preminet":{source:"iana"},"application/vnd.previewsystems.box":{source:"iana",extensions:["box"]},"application/vnd.proteus.magazine":{source:"iana",extensions:["mgz"]},"application/vnd.publishare-delta-tree":{source:"iana",extensions:["qps"]},"application/vnd.pvi.ptid1":{source:"iana",extensions:["ptid"]},"application/vnd.pwg-multiplexed":{source:"iana"},"application/vnd.pwg-xhtml-print+xml":{source:"iana"},"application/vnd.qualcomm.brew-app-res":{source:"iana"},"application/vnd.quarantainenet":{source:"iana"},"application/vnd.quark.quarkxpress":{source:"iana",extensions:["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{source:"iana"},"application/vnd.radisys.moml+xml":{source:"iana"},"application/vnd.radisys.msml+xml":{source:"iana"},"application/vnd.radisys.msml-audit+xml":{source:"iana"},"application/vnd.radisys.msml-audit-conf+xml":{source:"iana"},"application/vnd.radisys.msml-audit-conn+xml":{source:"iana"},"application/vnd.radisys.msml-audit-dialog+xml":{source:"iana"},"application/vnd.radisys.msml-audit-stream+xml":{source:"iana"},"application/vnd.radisys.msml-conf+xml":{source:"iana"},"application/vnd.radisys.msml-dialog+xml":{source:"iana"},"application/vnd.radisys.msml-dialog-base+xml":{source:"iana"},"application/vnd.radisys.msml-dialog-fax-detect+xml":{source:"iana"},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{source:"iana"},"application/vnd.radisys.msml-dialog-group+xml":{source:"iana"},"application/vnd.radisys.msml-dialog-speech+xml":{source:"iana"},"application/vnd.radisys.msml-dialog-transform+xml":{source:"iana"},"application/vnd.rainstor.data":{source:"iana"},"application/vnd.rapid":{source:"iana"},"application/vnd.rar":{source:"iana"},"application/vnd.realvnc.bed":{source:"iana",extensions:["bed"]},"application/vnd.recordare.musicxml":{source:"iana",extensions:["mxl"]},"application/vnd.recordare.musicxml+xml":{source:"iana",extensions:["musicxml"]},"application/vnd.renlearn.rlprint":{source:"iana"},"application/vnd.restful+json":{source:"iana",compressible:!0},"application/vnd.rig.cryptonote":{source:"iana",extensions:["cryptonote"]},"application/vnd.rim.cod":{source:"apache",extensions:["cod"]},"application/vnd.rn-realmedia":{source:"apache",extensions:["rm"]},"application/vnd.rn-realmedia-vbr":{source:"apache",extensions:["rmvb"]},"application/vnd.route66.link66+xml":{source:"iana",extensions:["link66"]},"application/vnd.rs-274x":{source:"iana"},"application/vnd.ruckus.download":{source:"iana"},"application/vnd.s3sms":{source:"iana"},"application/vnd.sailingtracker.track":{source:"iana",extensions:["st"]},"application/vnd.sbm.cid":{source:"iana"},"application/vnd.sbm.mid2":{source:"iana"},"application/vnd.scribus":{source:"iana"},"application/vnd.sealed.3df":{source:"iana"},"application/vnd.sealed.csf":{source:"iana"},"application/vnd.sealed.doc":{source:"iana"},"application/vnd.sealed.eml":{source:"iana"},"application/vnd.sealed.mht":{source:"iana"},"application/vnd.sealed.net":{source:"iana"},"application/vnd.sealed.ppt":{source:"iana"},"application/vnd.sealed.tiff":{source:"iana"},"application/vnd.sealed.xls":{source:"iana"},"application/vnd.sealedmedia.softseal.html":{source:"iana"},"application/vnd.sealedmedia.softseal.pdf":{source:"iana"},"application/vnd.seemail":{source:"iana",extensions:["see"]},"application/vnd.sema":{source:"iana",extensions:["sema"]},"application/vnd.semd":{source:"iana",extensions:["semd"]},"application/vnd.semf":{source:"iana",extensions:["semf"]},"application/vnd.shana.informed.formdata":{source:"iana",extensions:["ifm"]},"application/vnd.shana.informed.formtemplate":{source:"iana",extensions:["itp"]},"application/vnd.shana.informed.interchange":{source:"iana",extensions:["iif"]},"application/vnd.shana.informed.package":{source:"iana",extensions:["ipk"]},"application/vnd.sigrok.session":{source:"iana"},"application/vnd.simtech-mindmapper":{source:"iana",extensions:["twd","twds"]},"application/vnd.siren+json":{source:"iana",compressible:!0},"application/vnd.smaf":{source:"iana",extensions:["mmf"]},"application/vnd.smart.notebook":{source:"iana"},"application/vnd.smart.teacher":{source:"iana",extensions:["teacher"]},"application/vnd.software602.filler.form+xml":{source:"iana"},"application/vnd.software602.filler.form-xml-zip":{source:"iana"},"application/vnd.solent.sdkm+xml":{source:"iana",extensions:["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{source:"iana",extensions:["dxp"]},"application/vnd.spotfire.sfs":{source:"iana",extensions:["sfs"]},"application/vnd.sqlite3":{source:"iana"},"application/vnd.sss-cod":{source:"iana"},"application/vnd.sss-dtf":{source:"iana"},"application/vnd.sss-ntf":{source:"iana"},"application/vnd.stardivision.calc":{source:"apache",extensions:["sdc"]},"application/vnd.stardivision.draw":{source:"apache",extensions:["sda"]},"application/vnd.stardivision.impress":{source:"apache",extensions:["sdd"]},"application/vnd.stardivision.math":{source:"apache",extensions:["smf"]},"application/vnd.stardivision.writer":{source:"apache",extensions:["sdw","vor"]},"application/vnd.stardivision.writer-global":{source:"apache",extensions:["sgl"]},"application/vnd.stepmania.package":{source:"iana",extensions:["smzip"]},"application/vnd.stepmania.stepchart":{source:"iana",extensions:["sm"]},"application/vnd.street-stream":{source:"iana"},"application/vnd.sun.wadl+xml":{source:"iana",compressible:!0,extensions:["wadl"]},"application/vnd.sun.xml.calc":{source:"apache",extensions:["sxc"]},"application/vnd.sun.xml.calc.template":{source:"apache",extensions:["stc"]},"application/vnd.sun.xml.draw":{source:"apache",extensions:["sxd"]},"application/vnd.sun.xml.draw.template":{source:"apache",extensions:["std"]},"application/vnd.sun.xml.impress":{source:"apache",extensions:["sxi"]},"application/vnd.sun.xml.impress.template":{source:"apache",extensions:["sti"]},"application/vnd.sun.xml.math":{source:"apache",extensions:["sxm"]},"application/vnd.sun.xml.writer":{source:"apache",extensions:["sxw"]},"application/vnd.sun.xml.writer.global":{source:"apache",extensions:["sxg"]},"application/vnd.sun.xml.writer.template":{source:"apache",extensions:["stw"]},"application/vnd.sus-calendar":{source:"iana",extensions:["sus","susp"]},"application/vnd.svd":{source:"iana",extensions:["svd"]},"application/vnd.swiftview-ics":{source:"iana"},"application/vnd.symbian.install":{source:"apache",extensions:["sis","sisx"]},"application/vnd.syncml+xml":{source:"iana",extensions:["xsm"]},"application/vnd.syncml.dm+wbxml":{source:"iana",extensions:["bdm"]},"application/vnd.syncml.dm+xml":{source:"iana",extensions:["xdm"]},"application/vnd.syncml.dm.notification":{source:"iana"},"application/vnd.syncml.dmddf+wbxml":{source:"iana"},"application/vnd.syncml.dmddf+xml":{source:"iana"},"application/vnd.syncml.dmtnds+wbxml":{source:"iana"},"application/vnd.syncml.dmtnds+xml":{source:"iana"},"application/vnd.syncml.ds.notification":{source:"iana"},"application/vnd.tableschema+json":{source:"iana",compressible:!0},"application/vnd.tao.intent-module-archive":{source:"iana",extensions:["tao"]},"application/vnd.tcpdump.pcap":{source:"iana",extensions:["pcap","cap","dmp"]},"application/vnd.tmd.mediaflex.api+xml":{source:"iana"},"application/vnd.tml":{source:"iana"},"application/vnd.tmobile-livetv":{source:"iana",extensions:["tmo"]},"application/vnd.tri.onesource":{source:"iana"},"application/vnd.trid.tpt":{source:"iana",extensions:["tpt"]},"application/vnd.triscape.mxs":{source:"iana",extensions:["mxs"]},"application/vnd.trueapp":{source:"iana",extensions:["tra"]},"application/vnd.truedoc":{source:"iana"},"application/vnd.ubisoft.webplayer":{source:"iana"},"application/vnd.ufdl":{source:"iana",extensions:["ufd","ufdl"]},"application/vnd.uiq.theme":{source:"iana",extensions:["utz"]},"application/vnd.umajin":{source:"iana",extensions:["umj"]},"application/vnd.unity":{source:"iana",extensions:["unityweb"]},"application/vnd.uoml+xml":{source:"iana",extensions:["uoml"]},"application/vnd.uplanet.alert":{source:"iana"},"application/vnd.uplanet.alert-wbxml":{source:"iana"},"application/vnd.uplanet.bearer-choice":{source:"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{source:"iana"},"application/vnd.uplanet.cacheop":{source:"iana"},"application/vnd.uplanet.cacheop-wbxml":{source:"iana"},"application/vnd.uplanet.channel":{source:"iana"},"application/vnd.uplanet.channel-wbxml":{source:"iana"},"application/vnd.uplanet.list":{source:"iana"},"application/vnd.uplanet.list-wbxml":{source:"iana"},"application/vnd.uplanet.listcmd":{source:"iana"},"application/vnd.uplanet.listcmd-wbxml":{source:"iana"},"application/vnd.uplanet.signal":{source:"iana"},"application/vnd.uri-map":{source:"iana"},"application/vnd.valve.source.material":{source:"iana"},"application/vnd.vcx":{source:"iana",extensions:["vcx"]},"application/vnd.vd-study":{source:"iana"},"application/vnd.vectorworks":{source:"iana"},"application/vnd.vel+json":{source:"iana",compressible:!0},"application/vnd.verimatrix.vcas":{source:"iana"},"application/vnd.vidsoft.vidconference":{source:"iana"},"application/vnd.visio":{source:"iana",extensions:["vsd","vst","vss","vsw"]},"application/vnd.visionary":{source:"iana",extensions:["vis"]},"application/vnd.vividence.scriptfile":{source:"iana"},"application/vnd.vsf":{source:"iana",extensions:["vsf"]},"application/vnd.wap.sic":{source:"iana"},"application/vnd.wap.slc":{source:"iana"},"application/vnd.wap.wbxml":{source:"iana",extensions:["wbxml"]},"application/vnd.wap.wmlc":{source:"iana",extensions:["wmlc"]},"application/vnd.wap.wmlscriptc":{source:"iana",extensions:["wmlsc"]},"application/vnd.webturbo":{source:"iana",extensions:["wtb"]},"application/vnd.wfa.p2p":{source:"iana"},"application/vnd.wfa.wsc":{source:"iana"},"application/vnd.windows.devicepairing":{source:"iana"},"application/vnd.wmc":{source:"iana"},"application/vnd.wmf.bootstrap":{source:"iana"},"application/vnd.wolfram.mathematica":{source:"iana"},"application/vnd.wolfram.mathematica.package":{source:"iana"},"application/vnd.wolfram.player":{source:"iana",extensions:["nbp"]},"application/vnd.wordperfect":{source:"iana",extensions:["wpd"]},"application/vnd.wqd":{source:"iana",extensions:["wqd"]},"application/vnd.wrq-hp3000-labelled":{source:"iana"},"application/vnd.wt.stf":{source:"iana",extensions:["stf"]},"application/vnd.wv.csp+wbxml":{source:"iana"},"application/vnd.wv.csp+xml":{source:"iana"},"application/vnd.wv.ssp+xml":{source:"iana"},"application/vnd.xacml+json":{source:"iana",compressible:!0},"application/vnd.xara":{source:"iana",extensions:["xar"]},"application/vnd.xfdl":{source:"iana",extensions:["xfdl"]},"application/vnd.xfdl.webform":{source:"iana"},"application/vnd.xmi+xml":{source:"iana"},"application/vnd.xmpie.cpkg":{source:"iana"},"application/vnd.xmpie.dpkg":{source:"iana"},"application/vnd.xmpie.plan":{source:"iana"},"application/vnd.xmpie.ppkg":{source:"iana"},"application/vnd.xmpie.xlim":{source:"iana"},"application/vnd.yamaha.hv-dic":{source:"iana",extensions:["hvd"]},"application/vnd.yamaha.hv-script":{source:"iana",extensions:["hvs"]},"application/vnd.yamaha.hv-voice":{source:"iana",extensions:["hvp"]},"application/vnd.yamaha.openscoreformat":{source:"iana",extensions:["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{source:"iana",extensions:["osfpvg"]},"application/vnd.yamaha.remote-setup":{source:"iana"},"application/vnd.yamaha.smaf-audio":{source:"iana",extensions:["saf"]},"application/vnd.yamaha.smaf-phrase":{source:"iana",extensions:["spf"]},"application/vnd.yamaha.through-ngn":{source:"iana"},"application/vnd.yamaha.tunnel-udpencap":{source:"iana"},"application/vnd.yaoweme":{source:"iana"},"application/vnd.yellowriver-custom-menu":{source:"iana",extensions:["cmp"]},"application/vnd.youtube.yt":{source:"iana"},"application/vnd.zul":{source:"iana",extensions:["zir","zirz"]},"application/vnd.zzazz.deck+xml":{source:"iana",extensions:["zaz"]},"application/voicexml+xml":{source:"iana",extensions:["vxml"]},"application/voucher-cms+json":{source:"iana",compressible:!0},"application/vq-rtcpxr":{source:"iana"},"application/wasm":{compressible:!0,extensions:["wasm"]},"application/watcherinfo+xml":{source:"iana"},"application/webpush-options+json":{source:"iana",compressible:!0},"application/whoispp-query":{source:"iana"},"application/whoispp-response":{source:"iana"},"application/widget":{source:"iana",extensions:["wgt"]},"application/winhlp":{source:"apache",extensions:["hlp"]},"application/wita":{source:"iana"},"application/wordperfect5.1":{source:"iana"},"application/wsdl+xml":{source:"iana",extensions:["wsdl"]},"application/wspolicy+xml":{source:"iana",extensions:["wspolicy"]},"application/x-7z-compressed":{source:"apache",compressible:!1,extensions:["7z"]},"application/x-abiword":{source:"apache",extensions:["abw"]},"application/x-ace-compressed":{source:"apache",extensions:["ace"]},"application/x-amf":{source:"apache"},"application/x-apple-diskimage":{source:"apache",extensions:["dmg"]},"application/x-arj":{compressible:!1,extensions:["arj"]},"application/x-authorware-bin":{source:"apache",extensions:["aab","x32","u32","vox"]},"application/x-authorware-map":{source:"apache",extensions:["aam"]},"application/x-authorware-seg":{source:"apache",extensions:["aas"]},"application/x-bcpio":{source:"apache",extensions:["bcpio"]},"application/x-bdoc":{compressible:!1,extensions:["bdoc"]},"application/x-bittorrent":{source:"apache",extensions:["torrent"]},"application/x-blorb":{source:"apache",extensions:["blb","blorb"]},"application/x-bzip":{source:"apache",compressible:!1,extensions:["bz"]},"application/x-bzip2":{source:"apache",compressible:!1,extensions:["bz2","boz"]},"application/x-cbr":{source:"apache",extensions:["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{source:"apache",extensions:["vcd"]},"application/x-cfs-compressed":{source:"apache",extensions:["cfs"]},"application/x-chat":{source:"apache",extensions:["chat"]},"application/x-chess-pgn":{source:"apache",extensions:["pgn"]},"application/x-chrome-extension":{extensions:["crx"]},"application/x-cocoa":{source:"nginx",extensions:["cco"]},"application/x-compress":{source:"apache"},"application/x-conference":{source:"apache",extensions:["nsc"]},"application/x-cpio":{source:"apache",extensions:["cpio"]},"application/x-csh":{source:"apache",extensions:["csh"]},"application/x-deb":{compressible:!1},"application/x-debian-package":{source:"apache",extensions:["deb","udeb"]},"application/x-dgc-compressed":{source:"apache",extensions:["dgc"]},"application/x-director":{source:"apache",extensions:["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{source:"apache",extensions:["wad"]},"application/x-dtbncx+xml":{source:"apache",extensions:["ncx"]},"application/x-dtbook+xml":{source:"apache",extensions:["dtb"]},"application/x-dtbresource+xml":{source:"apache",extensions:["res"]},"application/x-dvi":{source:"apache",compressible:!1,extensions:["dvi"]},"application/x-envoy":{source:"apache",extensions:["evy"]},"application/x-eva":{source:"apache",extensions:["eva"]},"application/x-font-bdf":{source:"apache",extensions:["bdf"]},"application/x-font-dos":{source:"apache"},"application/x-font-framemaker":{source:"apache"},"application/x-font-ghostscript":{source:"apache",extensions:["gsf"]},"application/x-font-libgrx":{source:"apache"},"application/x-font-linux-psf":{source:"apache",extensions:["psf"]},"application/x-font-pcf":{source:"apache",extensions:["pcf"]},"application/x-font-snf":{source:"apache",extensions:["snf"]},"application/x-font-speedo":{source:"apache"},"application/x-font-sunos-news":{source:"apache"},"application/x-font-type1":{source:"apache",extensions:["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{source:"apache"},"application/x-freearc":{source:"apache",extensions:["arc"]},"application/x-futuresplash":{source:"apache",extensions:["spl"]},"application/x-gca-compressed":{source:"apache",extensions:["gca"]},"application/x-glulx":{source:"apache",extensions:["ulx"]},"application/x-gnumeric":{source:"apache",extensions:["gnumeric"]},"application/x-gramps-xml":{source:"apache",extensions:["gramps"]},"application/x-gtar":{source:"apache",extensions:["gtar"]},"application/x-gzip":{source:"apache"},"application/x-hdf":{source:"apache",extensions:["hdf"]},"application/x-httpd-php":{compressible:!0,extensions:["php"]},"application/x-install-instructions":{source:"apache",extensions:["install"]},"application/x-iso9660-image":{source:"apache",extensions:["iso"]},"application/x-java-archive-diff":{source:"nginx",extensions:["jardiff"]},"application/x-java-jnlp-file":{source:"apache",compressible:!1,extensions:["jnlp"]},"application/x-javascript":{compressible:!0},"application/x-latex":{source:"apache",compressible:!1,extensions:["latex"]},"application/x-lua-bytecode":{extensions:["luac"]},"application/x-lzh-compressed":{source:"apache",extensions:["lzh","lha"]},"application/x-makeself":{source:"nginx",extensions:["run"]},"application/x-mie":{source:"apache",extensions:["mie"]},"application/x-mobipocket-ebook":{source:"apache",extensions:["prc","mobi"]},"application/x-mpegurl":{compressible:!1},"application/x-ms-application":{source:"apache",extensions:["application"]},"application/x-ms-shortcut":{source:"apache",extensions:["lnk"]},"application/x-ms-wmd":{source:"apache",extensions:["wmd"]},"application/x-ms-wmz":{source:"apache",extensions:["wmz"]},"application/x-ms-xbap":{source:"apache",extensions:["xbap"]},"application/x-msaccess":{source:"apache",extensions:["mdb"]},"application/x-msbinder":{source:"apache",extensions:["obd"]},"application/x-mscardfile":{source:"apache",extensions:["crd"]},"application/x-msclip":{source:"apache",extensions:["clp"]},"application/x-msdos-program":{extensions:["exe"]},"application/x-msdownload":{source:"apache",extensions:["exe","dll","com","bat","msi"]},"application/x-msmediaview":{source:"apache",extensions:["mvb","m13","m14"]},"application/x-msmetafile":{source:"apache",extensions:["wmf","wmz","emf","emz"]},"application/x-msmoney":{source:"apache",extensions:["mny"]},"application/x-mspublisher":{source:"apache",extensions:["pub"]},"application/x-msschedule":{source:"apache",extensions:["scd"]},"application/x-msterminal":{source:"apache",extensions:["trm"]},"application/x-mswrite":{source:"apache",extensions:["wri"]},"application/x-netcdf":{source:"apache",extensions:["nc","cdf"]},"application/x-ns-proxy-autoconfig":{compressible:!0,extensions:["pac"]},"application/x-nzb":{source:"apache",extensions:["nzb"]},"application/x-perl":{source:"nginx",extensions:["pl","pm"]},"application/x-pilot":{source:"nginx",extensions:["prc","pdb"]},"application/x-pkcs12":{source:"apache",compressible:!1,extensions:["p12","pfx"]},"application/x-pkcs7-certificates":{source:"apache",extensions:["p7b","spc"]},"application/x-pkcs7-certreqresp":{source:"apache",extensions:["p7r"]},"application/x-rar-compressed":{source:"apache",compressible:!1,extensions:["rar"]},"application/x-redhat-package-manager":{source:"nginx",extensions:["rpm"]},"application/x-research-info-systems":{source:"apache",extensions:["ris"]},"application/x-sea":{source:"nginx",extensions:["sea"]},"application/x-sh":{source:"apache",compressible:!0,extensions:["sh"]},"application/x-shar":{source:"apache",extensions:["shar"]},"application/x-shockwave-flash":{source:"apache",compressible:!1,extensions:["swf"]},"application/x-silverlight-app":{source:"apache",extensions:["xap"]},"application/x-sql":{source:"apache",extensions:["sql"]},"application/x-stuffit":{source:"apache",compressible:!1,extensions:["sit"]},"application/x-stuffitx":{source:"apache",extensions:["sitx"]},"application/x-subrip":{source:"apache",extensions:["srt"]},"application/x-sv4cpio":{source:"apache",extensions:["sv4cpio"]},"application/x-sv4crc":{source:"apache",extensions:["sv4crc"]},"application/x-t3vm-image":{source:"apache",extensions:["t3"]},"application/x-tads":{source:"apache",extensions:["gam"]},"application/x-tar":{source:"apache",compressible:!0,extensions:["tar"]},"application/x-tcl":{source:"apache",extensions:["tcl","tk"]},"application/x-tex":{source:"apache",extensions:["tex"]},"application/x-tex-tfm":{source:"apache",extensions:["tfm"]},"application/x-texinfo":{source:"apache",extensions:["texinfo","texi"]},"application/x-tgif":{source:"apache",extensions:["obj"]},"application/x-ustar":{source:"apache",extensions:["ustar"]},"application/x-virtualbox-hdd":{compressible:!0,extensions:["hdd"]},"application/x-virtualbox-ova":{compressible:!0,extensions:["ova"]},"application/x-virtualbox-ovf":{compressible:!0,extensions:["ovf"]},"application/x-virtualbox-vbox":{compressible:!0,extensions:["vbox"]},"application/x-virtualbox-vbox-extpack":{compressible:!1,extensions:["vbox-extpack"]},"application/x-virtualbox-vdi":{compressible:!0,extensions:["vdi"]},"application/x-virtualbox-vhd":{compressible:!0,extensions:["vhd"]},"application/x-virtualbox-vmdk":{compressible:!0,extensions:["vmdk"]},"application/x-wais-source":{source:"apache",extensions:["src"]},"application/x-web-app-manifest+json":{compressible:!0,extensions:["webapp"]},"application/x-www-form-urlencoded":{source:"iana",compressible:!0},"application/x-x509-ca-cert":{source:"apache",extensions:["der","crt","pem"]},"application/x-xfig":{source:"apache",extensions:["fig"]},"application/x-xliff+xml":{source:"apache",extensions:["xlf"]},"application/x-xpinstall":{source:"apache",compressible:!1,extensions:["xpi"]},"application/x-xz":{source:"apache",extensions:["xz"]},"application/x-zmachine":{source:"apache",extensions:["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{source:"iana"},"application/xacml+xml":{source:"iana"},"application/xaml+xml":{source:"apache",extensions:["xaml"]},"application/xcap-att+xml":{source:"iana"},"application/xcap-caps+xml":{source:"iana"},"application/xcap-diff+xml":{source:"iana",extensions:["xdf"]},"application/xcap-el+xml":{source:"iana"},"application/xcap-error+xml":{source:"iana"},"application/xcap-ns+xml":{source:"iana"},"application/xcon-conference-info+xml":{source:"iana"},"application/xcon-conference-info-diff+xml":{source:"iana"},"application/xenc+xml":{source:"iana",extensions:["xenc"]},"application/xhtml+xml":{source:"iana",compressible:!0,extensions:["xhtml","xht"]},"application/xhtml-voice+xml":{source:"apache"},"application/xml":{source:"iana",compressible:!0,extensions:["xml","xsl","xsd","rng"]},"application/xml-dtd":{source:"iana",compressible:!0,extensions:["dtd"]},"application/xml-external-parsed-entity":{source:"iana"},"application/xml-patch+xml":{source:"iana"},"application/xmpp+xml":{source:"iana"},"application/xop+xml":{source:"iana",compressible:!0,extensions:["xop"]},"application/xproc+xml":{source:"apache",extensions:["xpl"]},"application/xslt+xml":{source:"iana",extensions:["xslt"]},"application/xspf+xml":{source:"apache",extensions:["xspf"]},"application/xv+xml":{source:"iana",extensions:["mxml","xhvml","xvml","xvm"]},"application/yang":{source:"iana",extensions:["yang"]},"application/yang-data+json":{source:"iana",compressible:!0},"application/yang-data+xml":{source:"iana"},"application/yang-patch+json":{source:"iana",compressible:!0},"application/yang-patch+xml":{source:"iana"},"application/yin+xml":{source:"iana",extensions:["yin"]},"application/zip":{source:"iana",compressible:!1,extensions:["zip"]},"application/zlib":{source:"iana"},"audio/1d-interleaved-parityfec":{source:"iana"},"audio/32kadpcm":{source:"iana"},"audio/3gpp":{source:"iana",compressible:!1,extensions:["3gpp"]},"audio/3gpp2":{source:"iana"},"audio/ac3":{source:"iana"},"audio/adpcm":{source:"apache",extensions:["adp"]},"audio/amr":{source:"iana"},"audio/amr-wb":{source:"iana"},"audio/amr-wb+":{source:"iana"},"audio/aptx":{source:"iana"},"audio/asc":{source:"iana"},"audio/atrac-advanced-lossless":{source:"iana"},"audio/atrac-x":{source:"iana"},"audio/atrac3":{source:"iana"},"audio/basic":{source:"iana",compressible:!1,extensions:["au","snd"]},"audio/bv16":{source:"iana"},"audio/bv32":{source:"iana"},"audio/clearmode":{source:"iana"},"audio/cn":{source:"iana"},"audio/dat12":{source:"iana"},"audio/dls":{source:"iana"},"audio/dsr-es201108":{source:"iana"},"audio/dsr-es202050":{source:"iana"},"audio/dsr-es202211":{source:"iana"},"audio/dsr-es202212":{source:"iana"},"audio/dv":{source:"iana"},"audio/dvi4":{source:"iana"},"audio/eac3":{source:"iana"},"audio/encaprtp":{source:"iana"},"audio/evrc":{source:"iana"},"audio/evrc-qcp":{source:"iana"},"audio/evrc0":{source:"iana"},"audio/evrc1":{source:"iana"},"audio/evrcb":{source:"iana"},"audio/evrcb0":{source:"iana"},"audio/evrcb1":{source:"iana"},"audio/evrcnw":{source:"iana"},"audio/evrcnw0":{source:"iana"},"audio/evrcnw1":{source:"iana"},"audio/evrcwb":{source:"iana"},"audio/evrcwb0":{source:"iana"},"audio/evrcwb1":{source:"iana"},"audio/evs":{source:"iana"},"audio/fwdred":{source:"iana"},"audio/g711-0":{source:"iana"},"audio/g719":{source:"iana"},"audio/g722":{source:"iana"},"audio/g7221":{source:"iana"},"audio/g723":{source:"iana"},"audio/g726-16":{source:"iana"},"audio/g726-24":{source:"iana"},"audio/g726-32":{source:"iana"},"audio/g726-40":{source:"iana"},"audio/g728":{source:"iana"},"audio/g729":{source:"iana"},"audio/g7291":{source:"iana"},"audio/g729d":{source:"iana"},"audio/g729e":{source:"iana"},"audio/gsm":{source:"iana"},"audio/gsm-efr":{source:"iana"},"audio/gsm-hr-08":{source:"iana"},"audio/ilbc":{source:"iana"},"audio/ip-mr_v2.5":{source:"iana"},"audio/isac":{source:"apache"},"audio/l16":{source:"iana"},"audio/l20":{source:"iana"},"audio/l24":{source:"iana",compressible:!1},"audio/l8":{source:"iana"},"audio/lpc":{source:"iana"},"audio/melp":{source:"iana"},"audio/melp1200":{source:"iana"},"audio/melp2400":{source:"iana"},"audio/melp600":{source:"iana"},"audio/midi":{source:"apache",extensions:["mid","midi","kar","rmi"]},"audio/mobile-xmf":{source:"iana"},"audio/mp3":{compressible:!1,extensions:["mp3"]},"audio/mp4":{source:"iana",compressible:!1,extensions:["m4a","mp4a"]},"audio/mp4a-latm":{source:"iana"},"audio/mpa":{source:"iana"},"audio/mpa-robust":{source:"iana"},"audio/mpeg":{source:"iana",compressible:!1,extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{source:"iana"},"audio/musepack":{source:"apache"},"audio/ogg":{source:"iana",compressible:!1,extensions:["oga","ogg","spx"]},"audio/opus":{source:"iana"},"audio/parityfec":{source:"iana"},"audio/pcma":{source:"iana"},"audio/pcma-wb":{source:"iana"},"audio/pcmu":{source:"iana"},"audio/pcmu-wb":{source:"iana"},"audio/prs.sid":{source:"iana"},"audio/qcelp":{source:"iana"},"audio/raptorfec":{source:"iana"},"audio/red":{source:"iana"},"audio/rtp-enc-aescm128":{source:"iana"},"audio/rtp-midi":{source:"iana"},"audio/rtploopback":{source:"iana"},"audio/rtx":{source:"iana"},"audio/s3m":{source:"apache",extensions:["s3m"]},"audio/silk":{source:"apache",extensions:["sil"]},"audio/smv":{source:"iana"},"audio/smv-qcp":{source:"iana"},"audio/smv0":{source:"iana"},"audio/sp-midi":{source:"iana"},"audio/speex":{source:"iana"},"audio/t140c":{source:"iana"},"audio/t38":{source:"iana"},"audio/telephone-event":{source:"iana"},"audio/tone":{source:"iana"},"audio/uemclip":{source:"iana"},"audio/ulpfec":{source:"iana"},"audio/vdvi":{source:"iana"},"audio/vmr-wb":{source:"iana"},"audio/vnd.3gpp.iufp":{source:"iana"},"audio/vnd.4sb":{source:"iana"},"audio/vnd.audiokoz":{source:"iana"},"audio/vnd.celp":{source:"iana"},"audio/vnd.cisco.nse":{source:"iana"},"audio/vnd.cmles.radio-events":{source:"iana"},"audio/vnd.cns.anp1":{source:"iana"},"audio/vnd.cns.inf1":{source:"iana"},"audio/vnd.dece.audio":{source:"iana",extensions:["uva","uvva"]},"audio/vnd.digital-winds":{source:"iana",extensions:["eol"]},"audio/vnd.dlna.adts":{source:"iana"},"audio/vnd.dolby.heaac.1":{source:"iana"},"audio/vnd.dolby.heaac.2":{source:"iana"},"audio/vnd.dolby.mlp":{source:"iana"},"audio/vnd.dolby.mps":{source:"iana"},"audio/vnd.dolby.pl2":{source:"iana"},"audio/vnd.dolby.pl2x":{source:"iana"},"audio/vnd.dolby.pl2z":{source:"iana"},"audio/vnd.dolby.pulse.1":{source:"iana"},"audio/vnd.dra":{source:"iana",extensions:["dra"]},"audio/vnd.dts":{source:"iana",extensions:["dts"]},"audio/vnd.dts.hd":{source:"iana",extensions:["dtshd"]},"audio/vnd.dvb.file":{source:"iana"},"audio/vnd.everad.plj":{source:"iana"},"audio/vnd.hns.audio":{source:"iana"},"audio/vnd.lucent.voice":{source:"iana",extensions:["lvp"]},"audio/vnd.ms-playready.media.pya":{source:"iana",extensions:["pya"]},"audio/vnd.nokia.mobile-xmf":{source:"iana"},"audio/vnd.nortel.vbk":{source:"iana"},"audio/vnd.nuera.ecelp4800":{source:"iana",extensions:["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{source:"iana",extensions:["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{source:"iana",extensions:["ecelp9600"]},"audio/vnd.octel.sbc":{source:"iana"},"audio/vnd.presonus.multitrack":{source:"iana"},"audio/vnd.qcelp":{source:"iana"},"audio/vnd.rhetorex.32kadpcm":{source:"iana"},"audio/vnd.rip":{source:"iana",extensions:["rip"]},"audio/vnd.rn-realaudio":{compressible:!1},"audio/vnd.sealedmedia.softseal.mpeg":{source:"iana"},"audio/vnd.vmx.cvsd":{source:"iana"},"audio/vnd.wave":{compressible:!1},"audio/vorbis":{source:"iana",compressible:!1},"audio/vorbis-config":{source:"iana"},"audio/wav":{compressible:!1,extensions:["wav"]},"audio/wave":{compressible:!1,extensions:["wav"]},"audio/webm":{source:"apache",compressible:!1,extensions:["weba"]},"audio/x-aac":{source:"apache",compressible:!1,extensions:["aac"]},"audio/x-aiff":{source:"apache",extensions:["aif","aiff","aifc"]},"audio/x-caf":{source:"apache",compressible:!1,extensions:["caf"]},"audio/x-flac":{source:"apache",extensions:["flac"]},"audio/x-m4a":{source:"nginx",extensions:["m4a"]},"audio/x-matroska":{source:"apache",extensions:["mka"]},"audio/x-mpegurl":{source:"apache",extensions:["m3u"]},"audio/x-ms-wax":{source:"apache",extensions:["wax"]},"audio/x-ms-wma":{source:"apache",extensions:["wma"]},"audio/x-pn-realaudio":{source:"apache",extensions:["ram","ra"]},"audio/x-pn-realaudio-plugin":{source:"apache",extensions:["rmp"]},"audio/x-realaudio":{source:"nginx",extensions:["ra"]},"audio/x-tta":{source:"apache"},"audio/x-wav":{source:"apache",extensions:["wav"]},"audio/xm":{source:"apache",extensions:["xm"]},"chemical/x-cdx":{source:"apache",extensions:["cdx"]},"chemical/x-cif":{source:"apache",extensions:["cif"]},"chemical/x-cmdf":{source:"apache",extensions:["cmdf"]},"chemical/x-cml":{source:"apache",extensions:["cml"]},"chemical/x-csml":{source:"apache",extensions:["csml"]},"chemical/x-pdb":{source:"apache"},"chemical/x-xyz":{source:"apache",extensions:["xyz"]},"font/collection":{source:"iana",extensions:["ttc"]},"font/otf":{source:"iana",compressible:!0,extensions:["otf"]},"font/sfnt":{source:"iana"},"font/ttf":{source:"iana",extensions:["ttf"]},"font/woff":{source:"iana",extensions:["woff"]},"font/woff2":{source:"iana",extensions:["woff2"]},"image/aces":{source:"iana"},"image/apng":{compressible:!1,extensions:["apng"]},"image/bmp":{source:"iana",compressible:!0,extensions:["bmp"]},"image/cgm":{source:"iana",extensions:["cgm"]},"image/dicom-rle":{source:"iana"},"image/emf":{source:"iana"},"image/fits":{source:"iana"},"image/g3fax":{source:"iana",extensions:["g3"]},"image/gif":{source:"iana",compressible:!1,extensions:["gif"]},"image/ief":{source:"iana",extensions:["ief"]},"image/jls":{source:"iana"},"image/jp2":{source:"iana",compressible:!1,extensions:["jp2","jpg2"]},"image/jpeg":{source:"iana",compressible:!1,extensions:["jpeg","jpg","jpe"]},"image/jpm":{source:"iana",compressible:!1,extensions:["jpm"]},"image/jpx":{source:"iana",compressible:!1,extensions:["jpx","jpf"]},"image/ktx":{source:"iana",extensions:["ktx"]},"image/naplps":{source:"iana"},"image/pjpeg":{compressible:!1},"image/png":{source:"iana",compressible:!1,extensions:["png"]},"image/prs.btif":{source:"iana",extensions:["btif"]},"image/prs.pti":{source:"iana"},"image/pwg-raster":{source:"iana"},"image/sgi":{source:"apache",extensions:["sgi"]},"image/svg+xml":{source:"iana",compressible:!0,extensions:["svg","svgz"]},"image/t38":{source:"iana"},"image/tiff":{source:"iana",compressible:!1,extensions:["tiff","tif"]},"image/tiff-fx":{source:"iana"},"image/vnd.adobe.photoshop":{source:"iana",compressible:!0,extensions:["psd"]},"image/vnd.airzip.accelerator.azv":{source:"iana"},"image/vnd.cns.inf2":{source:"iana"},"image/vnd.dece.graphic":{source:"iana",extensions:["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{source:"iana",extensions:["djvu","djv"]},"image/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"image/vnd.dwg":{source:"iana",extensions:["dwg"]},"image/vnd.dxf":{source:"iana",extensions:["dxf"]},"image/vnd.fastbidsheet":{source:"iana",extensions:["fbs"]},"image/vnd.fpx":{source:"iana",extensions:["fpx"]},"image/vnd.fst":{source:"iana",extensions:["fst"]},"image/vnd.fujixerox.edmics-mmr":{source:"iana",extensions:["mmr"]},"image/vnd.fujixerox.edmics-rlc":{source:"iana",extensions:["rlc"]},"image/vnd.globalgraphics.pgb":{source:"iana"},"image/vnd.microsoft.icon":{source:"iana"},"image/vnd.mix":{source:"iana"},"image/vnd.mozilla.apng":{source:"iana"},"image/vnd.ms-modi":{source:"iana",extensions:["mdi"]},"image/vnd.ms-photo":{source:"apache",extensions:["wdp"]},"image/vnd.net-fpx":{source:"iana",extensions:["npx"]},"image/vnd.radiance":{source:"iana"},"image/vnd.sealed.png":{source:"iana"},"image/vnd.sealedmedia.softseal.gif":{source:"iana"},"image/vnd.sealedmedia.softseal.jpg":{source:"iana"},"image/vnd.svf":{source:"iana"},"image/vnd.tencent.tap":{source:"iana"},"image/vnd.valve.source.texture":{source:"iana"},"image/vnd.wap.wbmp":{source:"iana",extensions:["wbmp"]},"image/vnd.xiff":{source:"iana",extensions:["xif"]},"image/vnd.zbrush.pcx":{source:"iana"},"image/webp":{source:"apache",extensions:["webp"]},"image/wmf":{source:"iana"},"image/x-3ds":{source:"apache",extensions:["3ds"]},"image/x-cmu-raster":{source:"apache",extensions:["ras"]},"image/x-cmx":{source:"apache",extensions:["cmx"]},"image/x-freehand":{source:"apache",extensions:["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{source:"apache",compressible:!0,extensions:["ico"]},"image/x-jng":{source:"nginx",extensions:["jng"]},"image/x-mrsid-image":{source:"apache",extensions:["sid"]},"image/x-ms-bmp":{source:"nginx",compressible:!0,extensions:["bmp"]},"image/x-pcx":{source:"apache",extensions:["pcx"]},"image/x-pict":{source:"apache",extensions:["pic","pct"]},"image/x-portable-anymap":{source:"apache",extensions:["pnm"]},"image/x-portable-bitmap":{source:"apache",extensions:["pbm"]},"image/x-portable-graymap":{source:"apache",extensions:["pgm"]},"image/x-portable-pixmap":{source:"apache",extensions:["ppm"]},"image/x-rgb":{source:"apache",extensions:["rgb"]},"image/x-tga":{source:"apache",extensions:["tga"]},"image/x-xbitmap":{source:"apache",extensions:["xbm"]},"image/x-xcf":{compressible:!1},"image/x-xpixmap":{source:"apache",extensions:["xpm"]},"image/x-xwindowdump":{source:"apache",extensions:["xwd"]},"message/cpim":{source:"iana"},"message/delivery-status":{source:"iana"},"message/disposition-notification":{source:"iana",extensions:["disposition-notification"]},"message/external-body":{source:"iana"},"message/feedback-report":{source:"iana"},"message/global":{source:"iana",extensions:["u8msg"]},"message/global-delivery-status":{source:"iana",extensions:["u8dsn"]},"message/global-disposition-notification":{source:"iana",extensions:["u8mdn"]},"message/global-headers":{source:"iana",extensions:["u8hdr"]},"message/http":{source:"iana",compressible:!1},"message/imdn+xml":{source:"iana",compressible:!0},"message/news":{source:"iana"},"message/partial":{source:"iana",compressible:!1},"message/rfc822":{source:"iana",compressible:!0,extensions:["eml","mime"]},"message/s-http":{source:"iana"},"message/sip":{source:"iana"},"message/sipfrag":{source:"iana"},"message/tracking-status":{source:"iana"},"message/vnd.si.simp":{source:"iana"},"message/vnd.wfa.wsc":{source:"iana",extensions:["wsc"]},"model/3mf":{source:"iana"},"model/gltf+json":{source:"iana",compressible:!0,extensions:["gltf"]},"model/gltf-binary":{source:"iana",compressible:!0,extensions:["glb"]},"model/iges":{source:"iana",compressible:!1,extensions:["igs","iges"]},"model/mesh":{source:"iana",compressible:!1,extensions:["msh","mesh","silo"]},"model/vnd.collada+xml":{source:"iana",extensions:["dae"]},"model/vnd.dwf":{source:"iana",extensions:["dwf"]},"model/vnd.flatland.3dml":{source:"iana"},"model/vnd.gdl":{source:"iana",extensions:["gdl"]},"model/vnd.gs-gdl":{source:"apache"},"model/vnd.gs.gdl":{source:"iana"},"model/vnd.gtw":{source:"iana",extensions:["gtw"]},"model/vnd.moml+xml":{source:"iana"},"model/vnd.mts":{source:"iana",extensions:["mts"]},"model/vnd.opengex":{source:"iana"},"model/vnd.parasolid.transmit.binary":{source:"iana"},"model/vnd.parasolid.transmit.text":{source:"iana"},"model/vnd.rosette.annotated-data-model":{source:"iana"},"model/vnd.valve.source.compiled-map":{source:"iana"},"model/vnd.vtu":{source:"iana",extensions:["vtu"]},"model/vrml":{source:"iana",compressible:!1,extensions:["wrl","vrml"]},"model/x3d+binary":{source:"apache",compressible:!1,extensions:["x3db","x3dbz"]},"model/x3d+fastinfoset":{source:"iana"},"model/x3d+vrml":{source:"apache",compressible:!1,extensions:["x3dv","x3dvz"]},"model/x3d+xml":{source:"iana",compressible:!0,extensions:["x3d","x3dz"]},"model/x3d-vrml":{source:"iana"},"multipart/alternative":{source:"iana",compressible:!1},"multipart/appledouble":{source:"iana"},"multipart/byteranges":{source:"iana"},"multipart/digest":{source:"iana"},"multipart/encrypted":{source:"iana",compressible:!1},"multipart/form-data":{source:"iana",compressible:!1},"multipart/header-set":{source:"iana"},"multipart/mixed":{source:"iana",compressible:!1},"multipart/multilingual":{source:"iana"},"multipart/parallel":{source:"iana"},"multipart/related":{source:"iana",compressible:!1},"multipart/report":{source:"iana"},"multipart/signed":{source:"iana",compressible:!1},"multipart/vnd.bint.med-plus":{source:"iana"},"multipart/voice-message":{source:"iana"},"multipart/x-mixed-replace":{source:"iana"},"text/1d-interleaved-parityfec":{source:"iana"},"text/cache-manifest":{source:"iana",compressible:!0,extensions:["appcache","manifest"]},"text/calendar":{source:"iana",extensions:["ics","ifb"]},"text/calender":{compressible:!0},"text/cmd":{compressible:!0},"text/coffeescript":{extensions:["coffee","litcoffee"]},"text/css":{source:"iana",charset:"UTF-8",compressible:!0,extensions:["css"]},"text/csv":{source:"iana",compressible:!0,extensions:["csv"]},"text/csv-schema":{source:"iana"},"text/directory":{source:"iana"},"text/dns":{source:"iana"},"text/ecmascript":{source:"iana"},"text/encaprtp":{source:"iana"},"text/enriched":{source:"iana"},"text/fwdred":{source:"iana"},"text/grammar-ref-list":{source:"iana"},"text/html":{source:"iana",compressible:!0,extensions:["html","htm","shtml"]},"text/jade":{extensions:["jade"]},"text/javascript":{source:"iana",compressible:!0},"text/jcr-cnd":{source:"iana"},"text/jsx":{compressible:!0,extensions:["jsx"]},"text/less":{extensions:["less"]},"text/markdown":{source:"iana",compressible:!0,extensions:["markdown","md"]},"text/mathml":{source:"nginx",extensions:["mml"]},"text/mizar":{source:"iana"},"text/n3":{source:"iana",compressible:!0,extensions:["n3"]},"text/parameters":{source:"iana"},"text/parityfec":{source:"iana"},"text/plain":{source:"iana",compressible:!0,extensions:["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{source:"iana"},"text/prs.fallenstein.rst":{source:"iana"},"text/prs.lines.tag":{source:"iana",extensions:["dsc"]},"text/prs.prop.logic":{source:"iana"},"text/raptorfec":{source:"iana"},"text/red":{source:"iana"},"text/rfc822-headers":{source:"iana"},"text/richtext":{source:"iana",compressible:!0,extensions:["rtx"]},"text/rtf":{source:"iana",compressible:!0,extensions:["rtf"]},"text/rtp-enc-aescm128":{source:"iana"},"text/rtploopback":{source:"iana"},"text/rtx":{source:"iana"},"text/sgml":{source:"iana",extensions:["sgml","sgm"]},"text/shex":{extensions:["shex"]},"text/slim":{extensions:["slim","slm"]},"text/strings":{source:"iana"},"text/stylus":{extensions:["stylus","styl"]},"text/t140":{source:"iana"},"text/tab-separated-values":{source:"iana",compressible:!0,extensions:["tsv"]},"text/troff":{source:"iana",extensions:["t","tr","roff","man","me","ms"]},"text/turtle":{source:"iana",extensions:["ttl"]},"text/ulpfec":{source:"iana"},"text/uri-list":{source:"iana",compressible:!0,extensions:["uri","uris","urls"]},"text/vcard":{source:"iana",compressible:!0,extensions:["vcard"]},"text/vnd.a":{source:"iana"},"text/vnd.abc":{source:"iana"},"text/vnd.ascii-art":{source:"iana"},"text/vnd.curl":{source:"iana",extensions:["curl"]},"text/vnd.curl.dcurl":{source:"apache",extensions:["dcurl"]},"text/vnd.curl.mcurl":{source:"apache",extensions:["mcurl"]},"text/vnd.curl.scurl":{source:"apache",extensions:["scurl"]},"text/vnd.debian.copyright":{source:"iana"},"text/vnd.dmclientscript":{source:"iana"},"text/vnd.dvb.subtitle":{source:"iana",extensions:["sub"]},"text/vnd.esmertec.theme-descriptor":{source:"iana"},"text/vnd.fly":{source:"iana",extensions:["fly"]},"text/vnd.fmi.flexstor":{source:"iana",extensions:["flx"]},"text/vnd.graphviz":{source:"iana",extensions:["gv"]},"text/vnd.in3d.3dml":{source:"iana",extensions:["3dml"]},"text/vnd.in3d.spot":{source:"iana",extensions:["spot"]},"text/vnd.iptc.newsml":{source:"iana"},"text/vnd.iptc.nitf":{source:"iana"},"text/vnd.latex-z":{source:"iana"},"text/vnd.motorola.reflex":{source:"iana"},"text/vnd.ms-mediapackage":{source:"iana"},"text/vnd.net2phone.commcenter.command":{source:"iana"},"text/vnd.radisys.msml-basic-layout":{source:"iana"},"text/vnd.si.uricatalogue":{source:"iana"},"text/vnd.sun.j2me.app-descriptor":{source:"iana",extensions:["jad"]},"text/vnd.trolltech.linguist":{source:"iana"},"text/vnd.wap.si":{source:"iana"},"text/vnd.wap.sl":{source:"iana"},"text/vnd.wap.wml":{source:"iana",extensions:["wml"]},"text/vnd.wap.wmlscript":{source:"iana",extensions:["wmls"]},"text/vtt":{charset:"UTF-8",compressible:!0,extensions:["vtt"]},"text/x-asm":{source:"apache",extensions:["s","asm"]},"text/x-c":{source:"apache",extensions:["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{source:"nginx",extensions:["htc"]},"text/x-fortran":{source:"apache",extensions:["f","for","f77","f90"]},"text/x-gwt-rpc":{compressible:!0},"text/x-handlebars-template":{extensions:["hbs"]},"text/x-java-source":{source:"apache",extensions:["java"]},"text/x-jquery-tmpl":{compressible:!0},"text/x-lua":{extensions:["lua"]},"text/x-markdown":{compressible:!0,extensions:["mkd"]},"text/x-nfo":{source:"apache",extensions:["nfo"]},"text/x-opml":{source:"apache",extensions:["opml"]},"text/x-org":{compressible:!0,extensions:["org"]},"text/x-pascal":{source:"apache",extensions:["p","pas"]},"text/x-processing":{compressible:!0,extensions:["pde"]},"text/x-sass":{extensions:["sass"]},"text/x-scss":{extensions:["scss"]},"text/x-setext":{source:"apache",extensions:["etx"]},"text/x-sfv":{source:"apache",extensions:["sfv"]},"text/x-suse-ymp":{compressible:!0,extensions:["ymp"]},"text/x-uuencode":{source:"apache",extensions:["uu"]},"text/x-vcalendar":{source:"apache",extensions:["vcs"]},"text/x-vcard":{source:"apache",extensions:["vcf"]},"text/xml":{source:"iana",compressible:!0,extensions:["xml"]},"text/xml-external-parsed-entity":{source:"iana"},"text/yaml":{extensions:["yaml","yml"]},"video/1d-interleaved-parityfec":{source:"iana"},"video/3gpp":{source:"iana",extensions:["3gp","3gpp"]},"video/3gpp-tt":{source:"iana"},"video/3gpp2":{source:"iana",extensions:["3g2"]},"video/bmpeg":{source:"iana"},"video/bt656":{source:"iana"},"video/celb":{source:"iana"},"video/dv":{source:"iana"},"video/encaprtp":{source:"iana"},"video/h261":{source:"iana",extensions:["h261"]},"video/h263":{source:"iana",extensions:["h263"]},"video/h263-1998":{source:"iana"},"video/h263-2000":{source:"iana"},"video/h264":{source:"iana",extensions:["h264"]},"video/h264-rcdo":{source:"iana"},"video/h264-svc":{source:"iana"},"video/h265":{source:"iana"},"video/iso.segment":{source:"iana"},"video/jpeg":{source:"iana",extensions:["jpgv"]},"video/jpeg2000":{source:"iana"},"video/jpm":{source:"apache",extensions:["jpm","jpgm"]},"video/mj2":{source:"iana",extensions:["mj2","mjp2"]},"video/mp1s":{source:"iana"},"video/mp2p":{source:"iana"},"video/mp2t":{source:"iana",extensions:["ts"]},"video/mp4":{source:"iana",compressible:!1,extensions:["mp4","mp4v","mpg4"]},"video/mp4v-es":{source:"iana"},"video/mpeg":{source:"iana",compressible:!1,extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{source:"iana"},"video/mpv":{source:"iana"},"video/nv":{source:"iana"},"video/ogg":{source:"iana",compressible:!1,extensions:["ogv"]},"video/parityfec":{source:"iana"},"video/pointer":{source:"iana"},"video/quicktime":{source:"iana",compressible:!1,extensions:["qt","mov"]},"video/raptorfec":{source:"iana"},"video/raw":{source:"iana"},"video/rtp-enc-aescm128":{source:"iana"},"video/rtploopback":{source:"iana"},"video/rtx":{source:"iana"},"video/smpte291":{source:"iana"},"video/smpte292m":{source:"iana"},"video/ulpfec":{source:"iana"},"video/vc1":{source:"iana"},"video/vnd.cctv":{source:"iana"},"video/vnd.dece.hd":{source:"iana",extensions:["uvh","uvvh"]},"video/vnd.dece.mobile":{source:"iana",extensions:["uvm","uvvm"]},"video/vnd.dece.mp4":{source:"iana"},"video/vnd.dece.pd":{source:"iana",extensions:["uvp","uvvp"]},"video/vnd.dece.sd":{source:"iana",extensions:["uvs","uvvs"]},"video/vnd.dece.video":{source:"iana",extensions:["uvv","uvvv"]},"video/vnd.directv.mpeg":{source:"iana"},"video/vnd.directv.mpeg-tts":{source:"iana"},"video/vnd.dlna.mpeg-tts":{source:"iana"},"video/vnd.dvb.file":{source:"iana",extensions:["dvb"]},"video/vnd.fvt":{source:"iana",extensions:["fvt"]},"video/vnd.hns.video":{source:"iana"},"video/vnd.iptvforum.1dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.1dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.2dparityfec-1010":{source:"iana"},"video/vnd.iptvforum.2dparityfec-2005":{source:"iana"},"video/vnd.iptvforum.ttsavc":{source:"iana"},"video/vnd.iptvforum.ttsmpeg2":{source:"iana"},"video/vnd.motorola.video":{source:"iana"},"video/vnd.motorola.videop":{source:"iana"},"video/vnd.mpegurl":{source:"iana",extensions:["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{source:"iana",extensions:["pyv"]},"video/vnd.nokia.interleaved-multimedia":{source:"iana"},"video/vnd.nokia.mp4vr":{source:"iana"},"video/vnd.nokia.videovoip":{source:"iana"},"video/vnd.objectvideo":{source:"iana"},"video/vnd.radgamettools.bink":{source:"iana"},"video/vnd.radgamettools.smacker":{source:"iana"},"video/vnd.sealed.mpeg1":{source:"iana"},"video/vnd.sealed.mpeg4":{source:"iana"},"video/vnd.sealed.swf":{source:"iana"},"video/vnd.sealedmedia.softseal.mov":{source:"iana"},"video/vnd.uvvu.mp4":{source:"iana",extensions:["uvu","uvvu"]},"video/vnd.vivo":{source:"iana",extensions:["viv"]},"video/vp8":{source:"iana"},"video/webm":{source:"apache",compressible:!1,extensions:["webm"]},"video/x-f4v":{source:"apache",extensions:["f4v"]},"video/x-fli":{source:"apache",extensions:["fli"]},"video/x-flv":{source:"apache",compressible:!1,extensions:["flv"]},"video/x-m4v":{source:"apache",extensions:["m4v"]},"video/x-matroska":{source:"apache",compressible:!1,extensions:["mkv","mk3d","mks"]},"video/x-mng":{source:"apache",extensions:["mng"]},"video/x-ms-asf":{source:"apache",extensions:["asf","asx"]},"video/x-ms-vob":{source:"apache",extensions:["vob"]},"video/x-ms-wm":{source:"apache",extensions:["wm"]},"video/x-ms-wmv":{source:"apache",compressible:!1,extensions:["wmv"]},"video/x-ms-wmx":{source:"apache",extensions:["wmx"]},"video/x-ms-wvx":{source:"apache",extensions:["wvx"]},"video/x-msvideo":{source:"apache",extensions:["avi"]},"video/x-sgi-movie":{source:"apache",extensions:["movie"]},"video/x-smv":{source:"apache",extensions:["smv"]},"x-conference/x-cooltalk":{source:"apache",extensions:["ice"]},"x-shader/x-fragment":{compressible:!0},"x-shader/x-vertex":{compressible:!0}}},function(e,t,n){e.exports=n(93)},function(e,t,n){"use strict"
3853var i=n(94)
3854var a=n(2).extname
3855var o=/^\s*([^;\s]*)(?:;|\s|$)/
3856var s=/^text\//i
3857t.charset=r
3858t.charsets={lookup:r}
3859t.contentType=function(e){if(!e||"string"!=typeof e)return!1
3860var n=-1===e.indexOf("/")?t.lookup(e):e
3861if(!n)return!1
3862if(-1===n.indexOf("charset")){var i=t.charset(n)
3863i&&(n+="; charset="+i.toLowerCase())}return n}
3864t.extension=function(e){if(!e||"string"!=typeof e)return!1
3865var n=o.exec(e)
3866var i=n&&t.extensions[n[1].toLowerCase()]
3867if(!i||!i.length)return!1
3868return i[0]}
3869t.extensions=Object.create(null)
3870t.lookup=function(e){if(!e||"string"!=typeof e)return!1
3871var n=a("x."+e).toLowerCase().substr(1)
3872if(!n)return!1
3873return t.types[n]||!1}
3874t.types=Object.create(null)
3875!function(e,t){var n=["nginx","apache",void 0,"iana"]
3876Object.keys(i).forEach(function(a){var o=i[a]
3877var s=o.extensions
3878if(s&&s.length){e[a]=s
3879for(var r=0;r<s.length;r++){var c=s[r]
3880if(t[c]){var p=n.indexOf(i[t[c]].source)
3881var l=n.indexOf(o.source)
3882if("application/octet-stream"!==t[c]&&(p>l||p===l&&"application/"===t[c].substr(0,12)))continue}t[c]=a}}})}(t.extensions,t.types)
3883function r(e){if(!e||"string"!=typeof e)return!1
3884var t=o.exec(e)
3885var n=t&&i[t[1].toLowerCase()]
3886return n&&n.charset?n.charset:!(!t||!s.test(t[1]))&&"UTF-8"}},function(e,t,n){"use strict"
3887e.exports=r
3888e.exports.preferredMediaTypes=r
3889var i=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/
3890function a(e){var t=function(e){var t=e.split(",")
3891for(var n=1,i=0;n<t.length;n++)u(t[i])%2==0?t[++i]=t[n]:t[i]+=","+t[n]
3892t.length=i+1
3893return t}(e)
3894for(var n=0,i=0;n<t.length;n++){var a=o(t[n].trim(),n)
3895a&&(t[i++]=a)}t.length=i
3896return t}function o(e,t){var n=i.exec(e)
3897if(!n)return null
3898var a=Object.create(null)
3899var o=1
3900var s=n[2]
3901var r=n[1]
3902if(n[3]){var c=function(e){var t=e.split(";")
3903for(var n=1,i=0;n<t.length;n++)u(t[i])%2==0?t[++i]=t[n]:t[i]+=";"+t[n]
3904t.length=i+1
3905for(var n=0;n<t.length;n++)t[n]=t[n].trim()
3906return t}(n[3]).map(d)
3907for(var p=0;p<c.length;p++){var l=c[p]
3908var f=l[0].toLowerCase()
3909var h=l[1]
3910var m=h&&'"'===h[0]&&'"'===h[h.length-1]?h.substr(1,h.length-2):h
3911if("q"===f){o=parseFloat(m)
3912break}a[f]=m}}return{type:r,subtype:s,params:a,q:o,i:t}}function s(e,t,n){var i=o(e)
3913var a=0
3914if(!i)return null
3915if(t.type.toLowerCase()==i.type.toLowerCase())a|=4
3916else if("*"!=t.type)return null
3917if(t.subtype.toLowerCase()==i.subtype.toLowerCase())a|=2
3918else if("*"!=t.subtype)return null
3919var s=Object.keys(t.params)
3920if(s.length>0){if(!s.every(function(e){return"*"==t.params[e]||(t.params[e]||"").toLowerCase()==(i.params[e]||"").toLowerCase()}))return null
3921a|=1}return{i:n,o:t.i,q:t.q,s:a}}function r(e,t){var n=a(void 0===e?"*/*":e||"")
3922if(!t)return n.filter(l).sort(c).map(p)
3923var i=t.map(function(e,t){return function(e,t,n){var i={o:-1,q:0,s:0}
3924for(var a=0;a<t.length;a++){var o=s(e,t[a],n)
3925o&&(i.s-o.s||i.q-o.q||i.o-o.o)<0&&(i=o)}return i}(e,n,t)})
3926return i.filter(l).sort(c).map(function(e){return t[i.indexOf(e)]})}function c(e,t){return t.q-e.q||t.s-e.s||e.o-t.o||e.i-t.i||0}function p(e){return e.type+"/"+e.subtype}function l(e){return e.q>0}function u(e){var t=0
3927var n=0
3928for(;-1!==(n=e.indexOf('"',n));){t++
3929n++}return t}function d(e){var t=e.indexOf("=")
3930var n
3931var i
3932if(-1===t)n=e
3933else{n=e.substr(0,t)
3934i=e.substr(t+1)}return[n,i]}},function(e,t,n){"use strict"
3935e.exports=s
3936e.exports.preferredLanguages=s
3937var i=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/
3938function a(e,t){var n=i.exec(e)
3939if(!n)return null
3940var a=n[1],o=n[2],s=a
3941o&&(s+="-"+o)
3942var r=1
3943if(n[3]){var c=n[3].split(";")
3944for(t=0;t<c.length;t++){var p=c[t].split("=")
3945"q"===p[0]&&(r=parseFloat(p[1]))}}return{prefix:a,suffix:o,q:r,i:t,full:s}}function o(e,t,n){var i=a(e)
3946if(!i)return null
3947var o=0
3948if(t.full.toLowerCase()===i.full.toLowerCase())o|=4
3949else if(t.prefix.toLowerCase()===i.full.toLowerCase())o|=2
3950else if(t.full.toLowerCase()===i.prefix.toLowerCase())o|=1
3951else if("*"!==t.full)return null
3952return{i:n,o:t.i,q:t.q,s:o}}function s(e,t){var n=function(e){var t=e.split(",")
3953for(var n=0,i=0;n<t.length;n++){var o=a(t[n].trim(),n)
3954o&&(t[i++]=o)}t.length=i
3955return t}(void 0===e?"*":e||"")
3956if(!t)return n.filter(p).sort(r).map(c)
3957var i=t.map(function(e,t){return function(e,t,n){var i={o:-1,q:0,s:0}
3958for(var a=0;a<t.length;a++){var s=o(e,t[a],n)
3959s&&(i.s-s.s||i.q-s.q||i.o-s.o)<0&&(i=s)}return i}(e,n,t)})
3960return i.filter(p).sort(r).map(function(e){return t[i.indexOf(e)]})}function r(e,t){return t.q-e.q||t.s-e.s||e.o-t.o||e.i-t.i||0}function c(e){return e.full}function p(e){return e.q>0}},function(e,t,n){"use strict"
3961e.exports=s
3962e.exports.preferredEncodings=s
3963var i=/^\s*([^\s;]+)\s*(?:;(.*))?$/
3964function a(e,t){var n=i.exec(e)
3965if(!n)return null
3966var a=n[1]
3967var o=1
3968if(n[2]){var s=n[2].split(";")
3969for(t=0;t<s.length;t++){var r=s[t].trim().split("=")
3970if("q"===r[0]){o=parseFloat(r[1])
3971break}}}return{encoding:a,q:o,i:t}}function o(e,t,n){var i=0
3972if(t.encoding.toLowerCase()===e.toLowerCase())i|=1
3973else if("*"!==t.encoding)return null
3974return{i:n,o:t.i,q:t.q,s:i}}function s(e,t){var n=function(e){var t=e.split(",")
3975var n=!1
3976var i=1
3977for(var s=0,r=0;s<t.length;s++){var c=a(t[s].trim(),s)
3978if(c){t[r++]=c
3979n=n||o("identity",c)
3980i=Math.min(i,c.q||1)}}n||(t[r++]={encoding:"identity",q:i,i:s})
3981t.length=r
3982return t}(e||"")
3983if(!t)return n.filter(p).sort(r).map(c)
3984var i=t.map(function(e,t){return function(e,t,n){var i={o:-1,q:0,s:0}
3985for(var a=0;a<t.length;a++){var s=o(e,t[a],n)
3986s&&(i.s-s.s||i.q-s.q||i.o-s.o)<0&&(i=s)}return i}(e,n,t)})
3987return i.filter(p).sort(r).map(function(e){return t[i.indexOf(e)]})}function r(e,t){return t.q-e.q||t.s-e.s||e.o-t.o||e.i-t.i||0}function c(e){return e.encoding}function p(e){return e.q>0}},function(e,t,n){"use strict"
3988e.exports=s
3989e.exports.preferredCharsets=s
3990var i=/^\s*([^\s;]+)\s*(?:;(.*))?$/
3991function a(e,t){var n=i.exec(e)
3992if(!n)return null
3993var a=n[1]
3994var o=1
3995if(n[2]){var s=n[2].split(";")
3996for(t=0;t<s.length;t++){var r=s[t].trim().split("=")
3997if("q"===r[0]){o=parseFloat(r[1])
3998break}}}return{charset:a,q:o,i:t}}function o(e,t,n){var i=0
3999if(t.charset.toLowerCase()===e.toLowerCase())i|=1
4000else if("*"!==t.charset)return null
4001return{i:n,o:t.i,q:t.q,s:i}}function s(e,t){var n=function(e){var t=e.split(",")
4002for(var n=0,i=0;n<t.length;n++){var o=a(t[n].trim(),n)
4003o&&(t[i++]=o)}t.length=i
4004return t}(void 0===e?"*":e||"")
4005if(!t)return n.filter(p).sort(r).map(c)
4006var i=t.map(function(e,t){return function(e,t,n){var i={o:-1,q:0,s:0}
4007for(var a=0;a<t.length;a++){var s=o(e,t[a],n)
4008s&&(i.s-s.s||i.q-s.q||i.o-s.o)<0&&(i=s)}return i}(e,n,t)})
4009return i.filter(p).sort(r).map(function(e){return t[i.indexOf(e)]})}function r(e,t){return t.q-e.q||t.s-e.s||e.o-t.o||e.i-t.i||0}function c(e){return e.charset}function p(e){return e.q>0}},function(e,t,n){"use strict"
4010var i=Object.create(null)
4011e.exports=a
4012e.exports.Negotiator=a
4013function a(e){if(!(this instanceof a))return new a(e)
4014this.request=e}a.prototype.charset=function(e){var t=this.charsets(e)
4015return t&&t[0]}
4016a.prototype.charsets=function(e){return(0,o("charset").preferredCharsets)(this.request.headers["accept-charset"],e)}
4017a.prototype.encoding=function(e){var t=this.encodings(e)
4018return t&&t[0]}
4019a.prototype.encodings=function(e){return(0,o("encoding").preferredEncodings)(this.request.headers["accept-encoding"],e)}
4020a.prototype.language=function(e){var t=this.languages(e)
4021return t&&t[0]}
4022a.prototype.languages=function(e){return(0,o("language").preferredLanguages)(this.request.headers["accept-language"],e)}
4023a.prototype.mediaType=function(e){var t=this.mediaTypes(e)
4024return t&&t[0]}
4025a.prototype.mediaTypes=function(e){return(0,o("mediaType").preferredMediaTypes)(this.request.headers.accept,e)}
4026a.prototype.preferredCharset=a.prototype.charset
4027a.prototype.preferredCharsets=a.prototype.charsets
4028a.prototype.preferredEncoding=a.prototype.encoding
4029a.prototype.preferredEncodings=a.prototype.encodings
4030a.prototype.preferredLanguage=a.prototype.language
4031a.prototype.preferredLanguages=a.prototype.languages
4032a.prototype.preferredMediaType=a.prototype.mediaType
4033a.prototype.preferredMediaTypes=a.prototype.mediaTypes
4034function o(e){var t=i[e]
4035if(void 0!==t)return t
4036switch(e){case"charset":t=n(99)
4037break
4038case"encoding":t=n(98)
4039break
4040case"language":t=n(97)
4041break
4042case"mediaType":t=n(96)
4043break
4044default:throw new Error("Cannot find module '"+e+"'")}i[e]=t
4045return t}},function(e,t,n){"use strict"
4046var i=n(100)
4047var a=n(95)
4048e.exports=o
4049function o(e){if(!(this instanceof o))return new o(e)
4050this.headers=e.headers
4051this.negotiator=new i(e)}o.prototype.type=o.prototype.types=function(e){var t=e
4052if(t&&!Array.isArray(t)){t=new Array(arguments.length)
4053for(var n=0;n<t.length;n++)t[n]=arguments[n]}if(!t||0===t.length)return this.negotiator.mediaTypes()
4054if(!this.headers.accept)return t[0]
4055var i=t.map(s)
4056var a=this.negotiator.mediaTypes(i.filter(r))[0]
4057return!!a&&t[i.indexOf(a)]}
4058o.prototype.encoding=o.prototype.encodings=function(e){var t=e
4059if(t&&!Array.isArray(t)){t=new Array(arguments.length)
4060for(var n=0;n<t.length;n++)t[n]=arguments[n]}return t&&0!==t.length?this.negotiator.encodings(t)[0]||!1:this.negotiator.encodings()}
4061o.prototype.charset=o.prototype.charsets=function(e){var t=e
4062if(t&&!Array.isArray(t)){t=new Array(arguments.length)
4063for(var n=0;n<t.length;n++)t[n]=arguments[n]}return t&&0!==t.length?this.negotiator.charsets(t)[0]||!1:this.negotiator.charsets()}
4064o.prototype.lang=o.prototype.langs=o.prototype.language=o.prototype.languages=function(e){var t=e
4065if(t&&!Array.isArray(t)){t=new Array(arguments.length)
4066for(var n=0;n<t.length;n++)t[n]=arguments[n]}return t&&0!==t.length?this.negotiator.languages(t)[0]||!1:this.negotiator.languages()}
4067function s(e){return-1===e.indexOf("/")?a.lookup(e):e}function r(e){return"string"==typeof e}},function(e,t,n){"use strict"
4068e.exports=((e,t)=>{t=t||process.argv
4069const n=e.startsWith("-")?"":1===e.length?"-":"--"
4070const i=t.indexOf(n+e)
4071const a=t.indexOf("--")
4072return-1!==i&&(-1===a||i<a)})},function(e,t,n){"use strict"
4073const i=n(4)
4074const a=n(102)
4075const o=process.env
4076let s
4077a("no-color")||a("no-colors")||a("color=false")?s=!1:(a("color")||a("colors")||a("color=true")||a("color=always"))&&(s=!0)
4078"FORCE_COLOR"in o&&(s=0===o.FORCE_COLOR.length||0!==parseInt(o.FORCE_COLOR,10))
4079function r(e){return function(e){return 0!==e&&{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}(function(e){if(!1===s)return 0
4080if(a("color=16m")||a("color=full")||a("color=truecolor"))return 3
4081if(a("color=256"))return 2
4082if(e&&!e.isTTY&&!0!==s)return 0
4083const t=s?1:0
4084if("win32"===process.platform){const e=i.release().split(".")
4085return Number(process.versions.node.split(".")[0])>=8&&Number(e[0])>=10&&Number(e[2])>=10586?Number(e[2])>=14931?3:2:1}if("CI"in o)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(e=>e in o)||"codeship"===o.CI_NAME?1:t
4086if("TEAMCITY_VERSION"in o)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(o.TEAMCITY_VERSION)?1:0
4087if("truecolor"===o.COLORTERM)return 3
4088if("TERM_PROGRAM"in o){const e=parseInt((o.TERM_PROGRAM_VERSION||"").split(".")[0],10)
4089switch(o.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2
4090case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(o.TERM)?2:/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(o.TERM)?1:"COLORTERM"in o?1:(o.TERM,t)}(e))}e.exports={supportsColor:r,stdout:r(process.stdout),stderr:r(process.stderr)}},function(e,t,n){var i=n(45)
4091var a=n(1);(t=e.exports=n(47)).init=function(e){e.inspectOpts={}
4092var n=Object.keys(t.inspectOpts)
4093for(var i=0;i<n.length;i++)e.inspectOpts[n[i]]=t.inspectOpts[n[i]]}
4094t.log=function(){return process.stderr.write(a.format.apply(a,arguments)+"\n")}
4095t.formatArgs=function(e){var n=this.namespace
4096if(this.useColors){var i=this.color
4097var a="[3"+(i<8?i:"8;5;"+i)
4098var o=" "+a+";1m"+n+" "
4099e[0]=o+e[0].split("\n").join("\n"+o)
4100e.push(a+"m+"+t.humanize(this.diff)+"")}else e[0]=function(){return t.inspectOpts.hideDate?"":(new Date).toISOString()+" "}()+n+" "+e[0]}
4101t.save=function(e){null==e?delete process.env.DEBUG:process.env.DEBUG=e}
4102t.load=s
4103t.useColors=function(){return"colors"in t.inspectOpts?Boolean(t.inspectOpts.colors):i.isatty(process.stderr.fd)}
4104t.colors=[6,2,3,4,5,1]
4105try{var o=n(103)
4106o&&o.level>=2&&(t.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(e){}t.inspectOpts=Object.keys(process.env).filter(function(e){return/^debug_/i.test(e)}).reduce(function(e,t){var n=t.substring(6).toLowerCase().replace(/_([a-z])/g,function(e,t){return t.toUpperCase()})
4107var i=process.env[t]
4108i=!!/^(yes|on|true|enabled)$/i.test(i)||!/^(no|off|false|disabled)$/i.test(i)&&("null"===i?null:Number(i))
4109e[n]=i
4110return e},{})
4111t.formatters.o=function(e){this.inspectOpts.colors=this.useColors
4112return a.inspect(e,this.inspectOpts).split("\n").map(function(e){return e.trim()}).join(" ")}
4113t.formatters.O=function(e){this.inspectOpts.colors=this.useColors
4114return a.inspect(e,this.inspectOpts)}
4115function s(){return process.env.DEBUG}t.enable(s())},function(e,t,n){(t=e.exports=n(47)).log=function(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}
4116t.formatArgs=function(e){var n=this.useColors
4117e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff)
4118if(!n)return
4119var i="color: "+this.color
4120e.splice(1,0,i,"color: inherit")
4121var a=0
4122var o=0
4123e[0].replace(/%[a-zA-Z%]/g,function(e){"%%"!==e&&"%c"===e&&(o=++a)})
4124e.splice(o,0,i)}
4125t.save=function(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(e){}}
4126t.load=i
4127t.useColors=function(){if("undefined"!=typeof window&&window.process&&"renderer"===window.process.type)return!0
4128if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1
4129return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}
4130t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}()
4131t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"]
4132t.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}
4133function i(){var e
4134try{e=t.storage.debug}catch(e){}!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG)
4135return e}t.enable(i())},function(e,t){e.exports=Object.keys||function(e){var t=[]
4136var n=Object.prototype.hasOwnProperty
4137for(var i in e)n.call(e,i)&&t.push(i)
4138return t}},function(e,t){e.exports=function(e,t,i){var a=!1
4139i=i||n
4140o.count=e
4141return 0===e?t():o
4142function o(e,n){if(o.count<=0)throw new Error("after called too many times");--o.count
4143if(e){a=!0
4144t(e)
4145t=i}else 0!==o.count||a||t(null,n)}}
4146function n(){}},function(e,t){var n={}.toString
4147e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t){e.exports=function(e){if(!e.webpackPolyfill){e.deprecate=function(){}
4148e.paths=[]
4149e.children||(e.children=[])
4150Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}})
4151Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}})
4152e.webpackPolyfill=1}return e}},function(e,t,n){(function(e){var i
4153!function(a){var o="object"==typeof t&&t
4154"object"==typeof e&&e&&e.exports
4155var s="object"==typeof global&&global
4156s.global!==s&&s.window!==s||s
4157var r=String.fromCharCode
4158function c(e){var t=[]
4159var n=0
4160var i=e.length
4161var a
4162var o
4163for(;n<i;)if((a=e.charCodeAt(n++))>=55296&&a<=56319&&n<i)if(56320==(64512&(o=e.charCodeAt(n++))))t.push(((1023&a)<<10)+(1023&o)+65536)
4164else{t.push(a)
4165n--}else t.push(a)
4166return t}function p(e,t){if(e>=55296&&e<=57343){if(t)throw Error("Lone surrogate U+"+e.toString(16).toUpperCase()+" is not a scalar value")
4167return!1}return!0}function l(e,t){return r(e>>t&63|128)}function u(e,t){if(0==(4294967168&e))return r(e)
4168var n=""
4169if(0==(4294965248&e))n=r(e>>6&31|192)
4170else if(0==(4294901760&e)){p(e,t)||(e=65533)
4171n=r(e>>12&15|224)
4172n+=l(e,6)}else if(0==(4292870144&e)){n=r(e>>18&7|240)
4173n+=l(e,12)
4174n+=l(e,6)}return n+=r(63&e|128)}function d(){if(v>=m)throw Error("Invalid byte index")
4175var e=255&h[v]
4176v++
4177if(128==(192&e))return 63&e
4178throw Error("Invalid continuation byte")}function f(e){var t
4179var n
4180if(v>m)throw Error("Invalid byte index")
4181if(v==m)return!1
4182t=255&h[v]
4183v++
4184if(0==(128&t))return t
4185if(192==(224&t)){if((n=(31&t)<<6|d())>=128)return n
4186throw Error("Invalid continuation byte")}if(224==(240&t)){if((n=(15&t)<<12|d()<<6|d())>=2048)return p(n,e)?n:65533
4187throw Error("Invalid continuation byte")}if(240==(248&t)&&(n=(7&t)<<18|d()<<12|d()<<6|d())>=65536&&n<=1114111)return n
4188throw Error("Invalid UTF-8 detected")}var h
4189var m
4190var v
4191var g={version:"2.1.2",encode:function(e,t){var n=!1!==(t=t||{}).strict
4192var i=c(e)
4193var a=i.length
4194var o=-1
4195var s=""
4196for(;++o<a;)s+=u(i[o],n)
4197return s},decode:function(e,t){var n=!1!==(t=t||{}).strict
4198h=c(e)
4199m=h.length
4200v=0
4201var i=[]
4202var a
4203for(;!1!==(a=f(n));)i.push(a)
4204return function(e){var t=e.length
4205var n=-1
4206var i
4207var a=""
4208for(;++n<t;){if((i=e[n])>65535){a+=r((i-=65536)>>>10&1023|55296)
4209i=56320|1023&i}a+=r(i)}return a}(i)}}
4210void 0!==(i=function(){return g}.call(t,n,t,e))&&(e.exports=i)}()}).call(this,n(109)(e))},function(e,t,n){var i=n(48)
4211var a=n(1)
4212e.exports=o
4213function o(e){i.call(this,e)}a.inherits(o,i)
4214o.prototype.onRequest=function(e){if("OPTIONS"===e.method){var t=e.res
4215var n=this.headers(e)
4216n["Access-Control-Allow-Headers"]="Content-Type"
4217t.writeHead(200,n)
4218t.end()}else i.prototype.onRequest.call(this,e)}
4219o.prototype.headers=function(e,t){t=t||{}
4220if(e.headers.origin){t["Access-Control-Allow-Credentials"]="true"
4221t["Access-Control-Allow-Origin"]=e.headers.origin}else t["Access-Control-Allow-Origin"]="*"
4222return i.prototype.headers.call(this,e,t)}},function(e,t,n){var i=n(5)
4223var a=function(){}
4224a.prototype.getRandomBytes=function(e){var t=this
4225if((e=e||12)>4096)return i.randomBytes(e)
4226var n=parseInt(4096/e)
4227var a=parseInt(.85*n)
4228if(!a)return i.randomBytes(e)
4229null==this.bytesBufferIndex&&(this.bytesBufferIndex=-1)
4230if(this.bytesBufferIndex==n){this.bytesBuffer=null
4231this.bytesBufferIndex=-1}if(-1==this.bytesBufferIndex||this.bytesBufferIndex>a){if(!this.isGeneratingBytes){this.isGeneratingBytes=!0
4232i.randomBytes(4096,function(e,n){t.bytesBuffer=n
4233t.bytesBufferIndex=0
4234t.isGeneratingBytes=!1})}if(-1==this.bytesBufferIndex)return i.randomBytes(e)}var o=this.bytesBuffer.slice(e*this.bytesBufferIndex,e*(this.bytesBufferIndex+1))
4235this.bytesBufferIndex++
4236return o}
4237a.prototype.generateId=function(){var e=new Buffer(15)
4238if(!e.writeInt32BE)return Math.abs(Math.random()*Math.random()*Date.now()|0).toString()+Math.abs(Math.random()*Math.random()*Date.now()|0).toString()
4239this.sequenceNumber=this.sequenceNumber+1|0
4240e.writeInt32BE(this.sequenceNumber,11)
4241i.randomBytes?this.getRandomBytes(12).copy(e):[0,4,8].forEach(function(t){e.writeInt32BE(Math.random()*Math.pow(2,32)|0,t)})
4242return e.toString("base64").replace(/\//g,"_").replace(/\+/g,"-")}
4243e.exports=new a},function(e,t,n){var i=n(50)
4244var a=n(3).parse
4245var o=n(112)
4246var s=n(49)
4247var r=n(7).EventEmitter
4248var c=n(44)
4249var p=n(1)
4250var l=n(6)("engine")
4251var u=n(90)
4252e.exports=d
4253function d(e){if(!(this instanceof d))return new d(e)
4254this.clients={}
4255this.clientsCount=0
4256e=e||{}
4257this.wsEngine=e.wsEngine||process.env.EIO_WS_ENGINE||"ws"
4258this.pingTimeout=e.pingTimeout||5e3
4259this.pingInterval=e.pingInterval||25e3
4260this.upgradeTimeout=e.upgradeTimeout||1e4
4261this.maxHttpBufferSize=e.maxHttpBufferSize||1e8
4262this.transports=e.transports||Object.keys(s)
4263this.allowUpgrades=!1!==e.allowUpgrades
4264this.allowRequest=e.allowRequest
4265this.cookie=!1!==e.cookie&&(e.cookie||"io")
4266this.cookiePath=!1!==e.cookiePath&&(e.cookiePath||"/")
4267this.cookieHttpOnly=!1!==e.cookieHttpOnly
4268this.perMessageDeflate=!1!==e.perMessageDeflate&&(e.perMessageDeflate||!0)
4269this.httpCompression=!1!==e.httpCompression&&(e.httpCompression||{})
4270this.initialPacket=e.initialPacket
4271var t=this;["perMessageDeflate","httpCompression"].forEach(function(e){var n=t[e]
4272!0===n&&(t[e]=n={})
4273n&&null==n.threshold&&(n.threshold=1024)})
4274this.init()}d.errors={UNKNOWN_TRANSPORT:0,UNKNOWN_SID:1,BAD_HANDSHAKE_METHOD:2,BAD_REQUEST:3,FORBIDDEN:4}
4275d.errorMessages={0:"Transport unknown",1:"Session ID unknown",2:"Bad handshake method",3:"Bad request",4:"Forbidden"}
4276p.inherits(d,r)
4277d.prototype.init=function(){if(~this.transports.indexOf("websocket")){this.ws&&this.ws.close()
4278var e
4279switch(this.wsEngine){case"uws":e=n(89)
4280break
4281case"ws":e=n(88)
4282break
4283default:throw new Error("unknown wsEngine")}this.ws=new e.Server({noServer:!0,clientTracking:!1,perMessageDeflate:this.perMessageDeflate,maxPayload:this.maxHttpBufferSize})}}
4284d.prototype.upgrades=function(e){return this.allowUpgrades&&s[e].upgradesTo||[]}
4285d.prototype.verify=function(e,t,n){var i=e._query.transport
4286if(!~this.transports.indexOf(i)){l('unknown transport "%s"',i)
4287return n(d.errors.UNKNOWN_TRANSPORT,!1)}if(function(e){if((e+="").length<1)return!1
4288if(!h[e.charCodeAt(0)])return!0
4289if(e.length<2)return!1
4290if(!h[e.charCodeAt(1)])return!0
4291if(e.length<3)return!1
4292if(!h[e.charCodeAt(2)])return!0
4293if(e.length<4)return!1
4294if(!h[e.charCodeAt(3)])return!0
4295for(var t=4;t<e.length;++t)if(!h[e.charCodeAt(t)])return!0
4296return!1}(e.headers.origin)){e.headers.origin=null
4297return n(d.errors.BAD_REQUEST,!1)}var a=e._query.sid
4298if(!a)return"GET"!==e.method?n(d.errors.BAD_HANDSHAKE_METHOD,!1):this.allowRequest?this.allowRequest(e,n):n(null,!0)
4299if(!this.clients.hasOwnProperty(a))return n(d.errors.UNKNOWN_SID,!1)
4300if(!t&&this.clients[a].transport.name!==i){l("bad request: unexpected transport without upgrade")
4301return n(d.errors.BAD_REQUEST,!1)}n(null,!0)}
4302d.prototype.prepare=function(e){e._query||(e._query=~e.url.indexOf("?")?i.parse(a(e.url).query):{})}
4303d.prototype.close=function(){l("closing all open clients")
4304for(var e in this.clients)this.clients.hasOwnProperty(e)&&this.clients[e].close(!0)
4305if(this.ws){l("closing webSocketServer")
4306this.ws.close()}return this}
4307d.prototype.handleRequest=function(e,t){l('handling "%s" http request "%s"',e.method,e.url)
4308this.prepare(e)
4309e.res=t
4310var n=this
4311this.verify(e,!1,function(i,a){if(a)if(e._query.sid){l("setting new request for existing client")
4312n.clients[e._query.sid].transport.onRequest(e)}else n.handshake(e._query.transport,e)
4313else f(e,t,i)})}
4314function f(e,t,n){var i={"Content-Type":"application/json"}
4315if(!d.errorMessages.hasOwnProperty(n)){t.writeHead(403,i)
4316t.end(JSON.stringify({code:d.errors.FORBIDDEN,message:n||d.errorMessages[d.errors.FORBIDDEN]}))}else{if(e.headers.origin){i["Access-Control-Allow-Credentials"]="true"
4317i["Access-Control-Allow-Origin"]=e.headers.origin}else i["Access-Control-Allow-Origin"]="*"
4318if(void 0!==t){t.writeHead(400,i)
4319t.end(JSON.stringify({code:n,message:d.errorMessages[n]}))}}}d.prototype.generateId=function(e){return o.generateId()}
4320d.prototype.handshake=function(e,t){var n=this.generateId(t)
4321l('handshaking client "%s"',n)
4322try{var i=new s[e](t)
4323if("polling"===e){i.maxHttpBufferSize=this.maxHttpBufferSize
4324i.httpCompression=this.httpCompression}else"websocket"===e&&(i.perMessageDeflate=this.perMessageDeflate)
4325t._query&&t._query.b64?i.supportsBinary=!1:i.supportsBinary=!0}catch(e){f(t,t.res,d.errors.BAD_REQUEST)
4326return}var a=new c(n,this,i,t)
4327var o=this
4328!1!==this.cookie&&i.on("headers",function(e){e["Set-Cookie"]=u.serialize(o.cookie,n,{path:o.cookiePath,httpOnly:!!o.cookiePath&&o.cookieHttpOnly})})
4329i.onRequest(t)
4330this.clients[n]=a
4331this.clientsCount++
4332a.once("close",function(){delete o.clients[n]
4333o.clientsCount--})
4334this.emit("connection",a)}
4335d.prototype.handleUpgrade=function(e,t,n){this.prepare(e)
4336var i=this
4337this.verify(e,!0,function(a,o){if(o){var s=new Buffer(n.length)
4338n.copy(s)
4339n=null
4340i.ws.handleUpgrade(e,t,s,function(t){i.onWebSocket(e,t)})}else!function(e,t){if(e.writable){var n=d.errorMessages.hasOwnProperty(t)?d.errorMessages[t]:t||""
4341var i=Buffer.byteLength(n)
4342e.write("HTTP/1.1 400 Bad Request\r\nConnection: close\r\nContent-type: text/html\r\nContent-Length: "+i+"\r\n\r\n"+n)}e.destroy()}(t,a)})}
4343d.prototype.onWebSocket=function(e,t){t.on("error",o)
4344if(void 0===s[e._query.transport]||s[e._query.transport].prototype.handlesUpgrades){var n=e._query.sid
4345e.websocket=t
4346if(n){var i=this.clients[n]
4347if(i)if(i.upgrading){l("transport has already been trying to upgrade")
4348t.close()}else if(i.upgraded){l("transport had already been upgraded")
4349t.close()}else{l("upgrading existing transport")
4350t.removeListener("error",o)
4351var a=new s[e._query.transport](e)
4352e._query&&e._query.b64?a.supportsBinary=!1:a.supportsBinary=!0
4353a.perMessageDeflate=this.perMessageDeflate
4354i.maybeUpgrade(a)}else{l("upgrade attempt for closed client")
4355t.close()}}else{t.removeListener("error",o)
4356this.handshake(e._query.transport,e)}}else{l("transport doesnt handle upgraded requests")
4357t.close()}function o(){l("websocket error before upgrade")}}
4358d.prototype.attach=function(e,t){var n=this
4359var i=((t=t||{}).path||"/engine.io").replace(/\/$/,"")
4360var a=t.destroyUpgradeTimeout||1e3
4361i+="/"
4362function o(e){return("OPTIONS"!==e.method||!1!==t.handlePreflightRequest)&&i===e.url.substr(0,i.length)}var s=e.listeners("request").slice(0)
4363e.removeAllListeners("request")
4364e.on("close",n.close.bind(n))
4365e.on("listening",n.init.bind(n))
4366e.on("request",function(a,r){if(o(a)){l('intercepting request for path "%s"',i)
4367"OPTIONS"===a.method&&"function"==typeof t.handlePreflightRequest?t.handlePreflightRequest.call(e,a,r):n.handleRequest(a,r)}else for(var c=0,p=s.length;c<p;c++)s[c].call(e,a,r)})
4368~n.transports.indexOf("websocket")&&e.on("upgrade",function(e,i,s){o(e)?n.handleUpgrade(e,i,s):!1!==t.destroyUpgrade&&setTimeout(function(){if(i.writable&&i.bytesWritten<=0)return i.end()},a)})}
4369var h=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]},function(e,t,n){var i=n(8);(t=e.exports=function(){return arguments.length&&arguments[0]instanceof i.Server?a.apply(this,arguments):t.Server.apply(null,arguments)}).protocol=1
4370t.Server=n(113)
4371t.Socket=n(44)
4372t.Transport=n(25)
4373t.transports=n(49)
4374t.parser=n(19)
4375t.listen=function(e,n,a){if("function"==typeof n){a=n
4376n={}}var o=i.createServer(function(e,t){t.writeHead(501)
4377t.end("Not Implemented")})
4378var s=t.attach(o,n)
4379s.httpServer=o
4380o.listen(e,a)
4381return s}
4382t.attach=a
4383function a(e,n){var i=new t.Server(n)
4384i.attach(e,n)
4385return i}}])